/* Compact controls retain a 40px touch target; dense card controls have their own sizing. */
:root {--tap:40px;--radius:10px;}
.topbar {min-height:48px;padding:4px 10px;gap:8px;}
.brand {font-size:.95rem;gap:6px;}
.brand-mark.small {width:28px;height:28px;border-radius:7px;}
.top-tabs {gap:2px;}
.top-tabs a {min-height:40px;padding:0 10px;font-size:.9rem;}
.top-actions {gap:6px;flex-wrap:wrap;}
.top-actions select {padding:0 6px;}
button {padding-inline:10px;}
.content {padding:10px;}
.page-head {margin-bottom:8px;gap:8px;flex-wrap:wrap;}
.page-head h1 {font-size:1.05rem;}
.page-head .actions,.row-actions {gap:6px;flex-wrap:wrap;}
.row {padding:8px 10px;gap:8px;}
.row-sub {font-size:.8rem;}
.filters {gap:6px;margin-bottom:8px;}
.filters select {min-width:0;max-width:100%;flex:1;padding-inline:8px;}
.empty {padding:22px 12px;}
dialog form {padding:16px;gap:8px;}
dialog h2 {font-size:1.1rem;}
.error:empty {display:none;}
.room-grid-controls {margin:4px 0 8px;gap:6px;}
.session-layout {display:flex;flex-direction:column;gap:8px;}
.session-panel {order:-2;display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:0;border:0;box-shadow:none;background:transparent;width:100%;}
.session-panel h2,.session-panel #random-result {display:none;}
.session-panel button,.session-panel select {width:auto;margin:0;max-width:100%;font-size:.85rem;}
.session-panel select {min-width:0;}
.session-plan-tools {position:relative;}
.session-plan-tools summary {display:flex;align-items:center;min-height:40px;padding:0 12px;border:1px solid var(--line);border-radius:10px;background:white;cursor:pointer;font-weight:700;font-size:.85rem;}
.session-plan-tools summary::after {content:' ▾';margin-left:6px;}
.session-plan-menu {position:absolute;right:0;top:calc(100% + 5px);z-index:25;width:240px;padding:8px;background:white;border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow);display:grid;gap:6px;}
.session-plan-menu button,.session-plan-menu select {width:100%;}
#session-stage {width:100%;}
.selected-evaluation {order:-1;width:100%;padding:8px;}
.selected-evaluation h2 {font-size:1rem;margin:0 0 6px;}
.selected-evaluation p {display:none;}
.large-scores {display:flex;flex-wrap:wrap;gap:6px;}
.large-scores button {min-height:40px;font-size:.85rem;}
.unplaced {margin-top:8px;padding:8px;}
.unplaced h2 {font-size:1rem;margin:0 0 6px;}
.unplaced p {display:none;}
.unplaced:has(.unplaced-list:empty) {display:none;}
#placement-help {position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);}
.display-toggle {min-width:40px;padding:0;font-size:1.3rem;}
.board-toggle {display:flex;align-items:center;gap:5px;min-height:40px;padding:0 6px;font-size:.82rem;font-weight:700;white-space:nowrap;}
.board-toggle input {width:18px;height:18px;min-height:0;margin:0;}
.sync-status {color:#10b981;font-size:.7rem;}
.sync-status.offline {color:#c33b32;}
.board-mode .seat .eval-dots,.board-mode .selected-evaluation,.board-mode .evaluation-row .score-button {display:none!important;}
.board-mode .seat.has-skill .seat-handle {width:100%;}
.auth-display-toggle {position:absolute;right:10px;top:10px;}
/* Rotate the application, not the operating system. Native hit testing remains intact. */
html.rotate90 {overflow:hidden;}
.rotate90 body {position:fixed;left:100vw;top:0;width:100dvh;height:100dvw;min-height:0;overflow:auto;transform-origin:0 0;transform:rotate(90deg);}
.rotate90 .auth-shell {min-height:100%;}
.rotate90 .workspace {min-height:0;}
/* Top-layer elements are outside the body's transformed coordinate system. */
.rotate90 dialog {transform:rotate(90deg);max-height:calc(100vw - 24px);width:min(520px,calc(100vh - 30px));}
.rotate90 dialog.random-focus {width:min(420px,calc(100vh - 32px),calc(100vw - 112px));}
.rotate90 #place-palette {left:50%!important;top:50%!important;transform:translate(-50%,-50%) rotate(90deg);}
@media(max-width:680px){.topbar{padding:4px 8px;gap:4px}.top-tabs a{padding:0 7px}.content{padding:8px}.brand>span:last-child{display:none}.top-actions{margin-left:auto}.row{grid-template-columns:minmax(0,1fr);}.row-actions{justify-content:flex-end}}
