/* Room palettes: warm paper, restrained accents, clear seating labels. */
body{--ink:#293e37;--muted:#61756a;--accent:#315e4d;--accent-soft:#e4eee6;--paper:#f3f5ef;--panel:#fafbf7;--room:#f8faf5;--line:#d4dfd4;--dot:#cdd9cb;--desk-top:#f2f5e9;--desk-bottom:#dbe5d3;--desk-rim:#9fae97;--seat-bg:#ffffff;--seat-ink:var(--ink);--teacher:#cddfd8;--teacher-rim:#7f9c91;--selection:#aa7730;background:var(--paper);color:var(--ink)}
body[data-room-theme=religion]{--ink:#363c2d;--muted:#71755f;--accent:#596544;--accent-soft:#e9eadb;--paper:#f4f1e8;--panel:#fdfaf2;--room:#faf7ee;--line:#dedac8;--dot:#ded7c3;--desk-top:#f5efd9;--desk-bottom:#e6d9b7;--desk-rim:#b4a16e;--teacher:#e3dfc9;--teacher-rim:#939773;--selection:#a46d26}
body[data-room-theme=art]{--ink:#373b42;--muted:#796e68;--accent:#a34d35;--accent-soft:#f4e4d9;--paper:#f5ede5;--panel:#fffaf4;--room:#fff9f1;--line:#e7d6c8;--dot:#e5d5c8;--desk-top:#f5ddca;--desk-bottom:#e4bea1;--desk-rim:#ba8b68;--teacher:#c5d7db;--teacher-rim:#7d9ca5;--selection:#884130}
body[data-room-theme=photography]{--ink:#2f3540;--muted:#697380;--accent:#354351;--accent-soft:#e2e8ee;--paper:#edf0f3;--panel:#fafbfc;--room:#f5f7fa;--line:#d4dbe3;--dot:#d0d8e2;--desk-top:#eef1f6;--desk-bottom:#cdd5df;--desk-rim:#939fae;--teacher:#cad8e5;--teacher-rim:#8196aa;--selection:#527da3}
header,aside{background:var(--panel);border-color:var(--line)}button,input,select,textarea{color:var(--ink);border-color:var(--line)}button:hover{background:var(--accent-soft)}button.primary,.steps button[aria-current=step],#multiMode[aria-pressed=true],.brand span{background:var(--accent);border-color:var(--accent);color:white}.hint,p,.legend,.sub,summary{color:var(--muted)}h1{letter-spacing:-1.2px}h2{font-size:11px;letter-spacing:1.6px;color:var(--accent)}.separator,.student{border-color:var(--line)}.tag{background:var(--accent-soft);color:var(--accent)}#status{color:var(--accent)}.toolbar{border-color:var(--line);box-shadow:0 3px 12px #263b3210}.bank{border-color:var(--line)}
.theme-picker{display:grid;grid-template-columns:1fr 1fr;gap:8px}.theme-choice{display:flex;align-items:center;gap:8px;text-align:left;padding:9px 7px;border:1px solid var(--line);border-radius:11px;background:white;font-size:11px;min-width:0}.theme-choice>span:last-child{min-width:0}.theme-choice small{display:block;font-size:9px;font-weight:400;margin-top:4px;line-height:1.25;color:#6c746c}.theme-choice[aria-pressed=true]{border:2px solid var(--accent);padding:8px 6px;box-shadow:0 0 0 2px var(--accent-soft)}.theme-swatch{width:29px;height:36px;flex-shrink:0;display:grid;place-items:center;font-size:21px;border-radius:7px;background:#e0e9dc;color:#42614a}.theme-choice[data-palette=religion] .theme-swatch{background:linear-gradient(145deg,#ebe4c9,#c8bb8c);color:#586044}.theme-choice[data-palette=art] .theme-swatch{background:linear-gradient(145deg,#edc5a8 50%,#9baeb4 50%);color:#633f34}.theme-choice[data-palette=photography] .theme-swatch{background:linear-gradient(145deg,#d5dce5,#8091a4);color:#2d3a4b}
.room{background:var(--room);border:1px solid var(--line);border-radius:20px;box-shadow:0 12px 36px #25382808;padding:22px}.room-identity{display:flex;align-items:center;gap:12px;padding:0 2px 20px;margin-bottom:20px;border-bottom:1px solid var(--line)}#roomThemeIcon{font-size:29px;width:42px;height:42px;display:grid;place-items:center;color:var(--accent);background:var(--accent-soft);border-radius:12px}.room-identity small{display:block;letter-spacing:2px;font-size:9px;color:var(--muted);margin-bottom:5px}.room-identity strong{font-size:19px;letter-spacing:-.4px;font-weight:650}.room-edition{margin-left:auto;color:var(--muted);font-size:11px;letter-spacing:.5px}.board{background:var(--accent-soft);border-top:3px solid var(--accent);border-radius:3px 3px 9px 9px;color:var(--accent);font-size:10px;letter-spacing:2.5px;box-shadow:0 3px 0 #00000005;margin-bottom:22px}.grid{background-image:radial-gradient(var(--dot) .8px,transparent .8px)}
/* Vector-like furniture with a bevel, inner contour and restrained shadow. */
.desk{filter:drop-shadow(0 5px 2px #293c3015)}.desk-surface{background:linear-gradient(145deg,var(--desk-top),var(--desk-bottom));border:1.5px solid var(--desk-rim);border-radius:14px;box-shadow:inset 0 2px 0 #ffffffd9,inset 0 -4px 0 #00000009}.desk-surface:after{content:'';position:absolute;inset:6px;border:1px solid #ffffff75;border-radius:9px;pointer-events:none}.desk.oval .desk-surface:after,.desk.round .desk-surface:after{border-radius:50%}.desk.l .desk-surface{background:linear-gradient(145deg,var(--desk-top),var(--desk-bottom));border:0}.desk.l .desk-surface:after{inset:0;border:0;border-radius:0;box-shadow:inset 2px 2px 0 #ffffffa0}.desk .seat{background:var(--seat-bg);color:var(--seat-ink);border:1px solid #26372d1c;border-bottom:3px solid #26372d26;border-radius:8px;box-shadow:0 2px 3px #283e2910;transition:background .12s,box-shadow .12s}.desk .seat strong{font-weight:650;letter-spacing:-.15px}.desk .seat small{color:var(--muted);font-size:9px;font-weight:500;letter-spacing:.6px}.desk .seat.empty{border:1px dashed var(--desk-rim);background:#ffffff65;box-shadow:none;color:var(--muted)}.desk .seat.empty strong{font-size:11px;font-weight:500}.arranging .seat{opacity:.92}.desk-handle,.arranging .desk-handle{background:var(--accent);color:white;border-radius:6px 6px 3px 3px;padding:3px 8px;letter-spacing:.2px;font-size:10px;font-weight:600;box-shadow:0 2px 0 #00000008}.room:not(.arranging) .desk-handle{background:var(--accent-soft);color:var(--accent)}.desk.teacher .desk-surface{background:linear-gradient(145deg,#ffffffbf,var(--teacher));border-color:var(--teacher-rim)}.teacher-label{color:var(--accent);font-size:15px;letter-spacing:.4px}.desk.active .desk-surface,.desk.teacher.active .desk-surface{background:linear-gradient(145deg,var(--desk-top),var(--desk-bottom));border-color:var(--selection)}.desk.active .desk-hit{border:2px solid var(--selection);border-radius:14px;box-shadow:0 0 0 4px #bd904a23}.desk.oval .desk-hit,.desk.round .desk-hit{border-radius:50%}.desk .seat.selected{outline:3px solid var(--selection);background:var(--accent-soft)}.desk .seat.over{background:var(--accent-soft);box-shadow:0 0 0 3px var(--accent)}.danger{color:#a63e35}
@media(max-width:1050px){.room-edition{display:none}.workspace{padding:22px}}@media print{body{background:white;color:#222}.room{background:white;border:0;border-radius:0;padding:0;box-shadow:none}.room-identity{display:none}.grid{background:none}.desk{filter:none}.desk-surface,.desk.l .desk-surface,.desk.active .desk-surface,.desk.teacher .desk-surface,.desk.teacher.active .desk-surface{background:#f1f2ef!important;border:1px solid #7e847b;box-shadow:none;print-color-adjust:exact}.desk-surface:after{display:none}.desk .seat,.desk .seat.empty{background:white!important;color:#222;border-color:#9aa097;box-shadow:none;opacity:1}.desk-handle,.room:not(.arranging) .desk-handle,.arranging .desk-handle{background:white;color:#222;box-shadow:none}.board{background:white;box-shadow:none;color:#222}.teacher-label{color:#222}}

/* Seat Studio / interface refinement */
body{--muted:#596b62;--line:#d7dfd7;--seat-ink:var(--ink);font-size:14px;line-height:1.45;-webkit-font-smoothing:antialiased}
body[data-room-theme=religion]{--ink:#343c2c;--muted:#636a55;--accent:#58664b;--accent-soft:#e8ecde;--paper:#f3f1e9;--panel:#fdfcf7;--room:#fcfaf3;--desk-top:#f1ebd8;--desk-bottom:#e3d8b6;--desk-rim:#a8996f}
body[data-room-theme=art]{--ink:#393837;--muted:#716357;--accent:#914b38;--accent-soft:#f2e1d7;--paper:#f4efe8;--panel:#fdfbf8;--room:#fcf9f3;--desk-top:#f4e1cf;--desk-bottom:#e4c7ad;--desk-rim:#ac876b}
body[data-room-theme=photography]{--ink:#30353c;--muted:#626b77;--accent:#3e596b;--accent-soft:#e3ebef;--paper:#edf0f2;--panel:#fafbfc;--room:#f7f8fa;--desk-top:#e0e5ea;--desk-bottom:#bdc7d0;--desk-rim:#8495a2;--selection:#3e7899}
button,input,select,textarea{font-size:13px}button{min-height:40px;padding:9px 13px;border-radius:9px;transition:background .15s,border-color .15s,box-shadow .15s;line-height:1.3}button:disabled{cursor:default;opacity:.55}button:not(:disabled):active{box-shadow:inset 0 1px 3px #00000014}button.primary:hover{filter:brightness(1.08);background:var(--accent)}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible,#canvasWrap:focus-visible{outline:3px solid var(--accent);outline-offset:3px}input,select,textarea{min-height:40px;background:#fff;border-color:var(--line);border-radius:8px}label{font-size:12px;color:var(--ink);font-weight:600;margin:14px 0 7px}.danger{background:#fffaf8;color:#9d392e}.danger:hover{background:#fbeae5}.wide{margin-top:10px}.row{gap:8px}.row>button{padding-left:8px;padding-right:8px}p{line-height:1.6}.hint{font-size:12px;line-height:1.65}header{padding:18px 30px;min-height:86px;position:relative;z-index:5;border-bottom:1px solid var(--line);box-shadow:0 2px 12px #1f302405}.brand{font-size:23px;letter-spacing:-.8px;display:flex;align-items:center}.brand span{width:38px;height:38px;border-radius:12px;box-shadow:inset 0 1px 0 #ffffff35}.brand img{width:24px;height:24px;filter:brightness(0) invert(1)}.sub{margin:2px 0 0 48px;font-size:11px;letter-spacing:.4px}.header-actions button{font-size:12px;background:var(--panel)}.header-actions #print{background:var(--accent);color:white;border-color:var(--accent)}
main{max-width:1920px;grid-template-columns:310px minmax(0,1fr);align-items:start}aside{padding:20px 18px 32px;position:sticky;top:0;max-height:100vh;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--line) transparent;background:var(--panel);border-right:1px solid var(--line)}.class-controls{border:1px solid var(--line);border-radius:14px;padding:16px;background:#ffffffb8;box-shadow:0 3px 12px #22332404}.class-controls h2{margin:0 0 12px}.class-controls #className{font-weight:500}.class-controls .row button{font-size:12px}.steps{margin-top:20px;gap:4px;background:var(--accent-soft);padding:4px;border-radius:12px}.steps button{border:0;background:transparent;font-size:12px;min-height:43px;border-radius:9px}.steps button[aria-current=step]{box-shadow:0 2px 5px #23312b19}.separator{margin:22px 0}#roomControls>h2,#studentControls>h2{margin-top:22px}#selectedDeskTools{padding:14px;border:1px solid var(--line);border-radius:13px;background:white;box-shadow:0 4px 12px #26332906}#deskLabel{margin:0 0 14px;font-weight:650;color:var(--accent);border-bottom:1px solid var(--line);padding-bottom:10px}#groupCount{font-weight:650;color:var(--accent);margin-bottom:6px}#roomControls>details{border:1px solid var(--line);padding:12px;border-radius:10px}#roomControls>details summary{font-size:12px;font-weight:600}#modeHint{padding:0 2px;margin:13px 0 20px}#names{min-height:190px}.roster{max-height:340px}.student{padding:8px 0}.student span{font-size:13px}.student select{min-height:36px}
.workspace{padding:28px 30px 40px;min-width:0}.intro{align-items:center;margin-bottom:18px}h1{font-size:30px;line-height:1.15;letter-spacing:-1px;font-weight:700;overflow-wrap:anywhere}.intro p{margin:9px 0 0;font-size:13px;max-width:58ch}.tag{font-size:10px;padding:8px 11px;border:1px solid var(--line);flex-shrink:0}.toolbar{margin:16px 0 0;padding:12px;gap:8px;border-radius:13px;box-shadow:0 3px 10px #25362605}.toolbar button{font-size:12px}.toolbar #undo{background:var(--panel)}#status{min-height:20px;font-size:12px;margin:10px 4px 12px}.foot{align-items:start;font-size:12px;margin:14px 3px 22px}.legend{font-size:11px;line-height:1.5}#count{font-variant-numeric:tabular-nums;text-align:right;min-width:180px}.bank{min-height:56px;padding:12px;background:#ffffff90;border-radius:12px}.bank button{border-radius:8px;background:white;font-weight:500;box-shadow:0 2px 4px #23302508}.bank button.selected{outline:2px solid var(--accent)}
/* Appearance is independent of the room-editing step. */
.appearance-panel{margin:0;background:var(--panel);border:1px solid var(--line);border-radius:13px;overflow:hidden}.appearance-panel>summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 16px;color:var(--ink);min-height:52px}.appearance-panel>summary::-webkit-details-marker{display:none}.appearance-heading{font-weight:650;font-size:13px;display:flex;align-items:center;gap:10px}.appearance-heading small{font-size:11px;font-weight:500;color:var(--accent);padding:3px 8px;border-radius:20px;background:var(--accent-soft)}.appearance-action{font-size:11px;color:var(--muted);white-space:nowrap}.appearance-action:after{content:'⌄';padding-left:12px;font-size:15px}.appearance-panel[open] .appearance-action:after{content:'⌃'}.appearance-panel[open]>summary{border-bottom:1px solid var(--line)}.appearance-content{padding:16px}.appearance-content>p{font-size:12px;margin:0 0 12px}.theme-picker{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.theme-choice{position:relative;display:flex;flex-direction:column;align-items:stretch;gap:0;padding:0!important;overflow:hidden;border-radius:11px;border:2px solid transparent;box-shadow:0 0 0 1px var(--line);background:white;text-align:left;min-height:132px}.theme-choice:hover{background:white;box-shadow:0 0 0 2px var(--desk-rim)}.theme-choice[aria-pressed=true]{border:2px solid var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}.theme-preview{display:block;width:100%;height:84px;object-fit:cover}.theme-copy{padding:10px 12px;display:block}.theme-copy strong{font-size:13px;letter-spacing:0;font-weight:650}.theme-copy small{font-size:11px;margin-top:3px;color:#59655f;font-weight:400}.theme-check{position:absolute;right:10px;top:10px;display:none;width:23px;height:23px;border-radius:50%;color:white;background:var(--accent);font-size:13px;text-align:center;line-height:23px;box-shadow:0 2px 4px #00000014}.theme-choice[aria-pressed=true] .theme-check{display:block}.appearance-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:12px;color:var(--muted);font-size:11px}.appearance-footer button{min-height:32px;font-size:11px;padding:6px 10px;background:white}.appearance-footer button[aria-pressed=true]{border-color:var(--accent);background:var(--accent-soft)}
/* Decorative subject graphics stay above the working canvas. */
.room{padding:0;overflow:hidden;min-height:0;border-radius:18px;box-shadow:0 7px 25px #27362509;border:1px solid var(--line)}.room-identity{padding:20px 24px;margin:0 0 20px;min-height:92px;position:relative;border-bottom:1px solid var(--line);background:var(--room) url('assets/classic.svg') no-repeat right center;background-size:auto 160px;isolation:isolate}.room-identity:before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,var(--room) 30%,transparent 90%);z-index:-1}body[data-room-theme=religion] .room-identity{background-image:url('assets/religion.svg')}body[data-room-theme=art] .room-identity{background-image:url('assets/art.svg')}body[data-room-theme=photography] .room-identity{background-image:url('assets/photography.svg')}.room-icon{width:44px;height:44px;border:1px solid var(--line);background:#ffffffcf;border-radius:12px;display:grid;place-items:center;flex-shrink:0}#roomThemeIcon{display:block;width:25px;height:25px;border-radius:0;background:none}.room-identity small{font-size:9px;letter-spacing:2px;color:var(--muted)}.room-identity strong{font-size:20px;font-weight:650}.room-edition{display:none}.board{width:48%;padding:8px 12px;border-radius:3px 3px 8px 8px;margin:0 auto 12px;min-width:210px;letter-spacing:2px;font-size:9px;border-top-width:3px}.canvas-controls{display:flex;gap:9px;align-items:center;padding:6px 20px 10px}.canvas-hint{margin-right:auto;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:1.5px;font-weight:600}.canvas-controls label{margin:0;font-size:11px;font-weight:500}.canvas-controls select{width:104px;min-height:34px;font-size:11px;padding:6px 8px;background:var(--panel)}#canvasWrap{height:auto!important;max-height:75vh;overflow:auto;padding:0;scrollbar-width:thin;scrollbar-color:var(--desk-rim) var(--room);border-top:1px solid var(--line);overscroll-behavior:contain;position:relative}#canvasStage{position:relative;min-width:0}.grid{position:absolute;top:0;left:0;min-width:0;background-image:radial-gradient(var(--dot) .65px,transparent .65px);background-size:20px 20px;transform-origin:top left}.empty-room{font-size:16px;line-height:1.8;max-width:560px}
/* Desk surfaces remain calm; the student names carry the strongest contrast. */
.desk{filter:drop-shadow(0 4px 2px #29362c19)}.desk-surface{border-width:1.5px;border-radius:13px;box-shadow:inset 0 2px 0 #ffffffba,inset 0 -4px 0 #0000000b}.desk-surface:after{inset:5px;border-color:#ffffff65}.desk .seat{min-height:0;min-width:0;padding:4px!important;border-radius:7px;border-bottom-width:2px;box-shadow:0 1px 3px #28332913;line-height:1.22;gap:3px}.desk .seat strong{font-size:14px;font-weight:650;letter-spacing:-.15px;color:#25322c;overflow-wrap:anywhere}.desk .seat small{font-size:9px;color:#56695c;letter-spacing:.3px}.desk .seat.empty{background:#ffffff85;border:1px dashed var(--desk-rim);color:var(--muted)}.desk .seat.empty strong{font-size:12px;font-weight:500;color:var(--muted)}.arranging .seat{opacity:1}.desk-handle,.arranging .desk-handle{min-height:0;height:22px;top:-24px;font-size:10px;padding:3px 8px!important;line-height:16px;letter-spacing:.2px}.desk.active .desk-hit{outline:2px solid var(--selection);outline-offset:3px;border-color:var(--selection);box-shadow:0 0 0 5px #bd904a15}.desk-hit{min-height:0;padding:0!important}.desk.dragging{filter:drop-shadow(0 10px 7px #24332c30)}.desk .seat.over{outline:3px solid var(--accent);outline-offset:1px}.desk .seat.selected{outline-offset:1px}.teacher-label{font-size:15px;font-weight:650}.room:not(.arranging) .desk-handle{background:var(--accent-soft);color:var(--accent);border:1px solid var(--line)}.desk.l .desk-surface{clip-path:polygon(0 0,48% 0,48% 52%,100% 52%,100% 100%,0 100%)}
@media(min-width:1700px){.workspace{padding-left:42px;padding-right:42px}}
@media(max-width:1100px){main{grid-template-columns:280px minmax(0,1fr)}aside{padding:16px 14px}.workspace{padding:22px 18px}.intro{align-items:start}.tag{max-width:128px;white-space:normal;text-align:center;font-size:9px}h1{font-size:26px}.theme-picker{gap:8px}.theme-copy{padding:9px 8px}.theme-copy strong{font-size:12px}.theme-copy small{font-size:10px}.header-actions{gap:5px}.header-actions button{padding:9px 10px}.toolbar button{padding:9px 10px}.room-identity{padding:17px 18px}}
@media(max-width:760px){header{padding:15px 18px;flex-wrap:wrap;gap:14px}.header-actions{width:100%}.header-actions button{flex:1}.brand{font-size:22px}main{display:flex;flex-direction:column}aside{position:static;max-height:none;width:100%;border-right:0;border-bottom:1px solid var(--line);padding:18px}.class-controls{padding:14px}.workspace{width:100%;padding:22px 14px}.theme-picker{grid-template-columns:1fr}.theme-choice{flex-direction:row;min-height:82px}.theme-preview{width:40%;height:82px}.theme-copy{padding:16px 12px;align-self:center}.theme-check{top:8px;right:8px}.appearance-footer{align-items:start}.appearance-heading{gap:6px;flex-wrap:wrap}.appearance-action{font-size:10px}.intro{gap:8px}h1{font-size:25px}.tag{display:none}.foot{flex-direction:column;gap:8px}#count{text-align:left}.canvas-controls{padding-left:12px;padding-right:12px}#canvasWrap{max-height:65vh}.room-identity strong{font-size:19px}.toolbar .spacer{display:none}.toolbar button{flex:1 1 auto;min-height:44px}.steps button{min-height:46px}}
@media(pointer:coarse){button{min-height:44px}.desk .seat,.desk-hit,.desk-handle{min-height:0}.canvas-controls select{min-height:40px}.theme-choice{min-height:90px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;scroll-behavior:auto!important}}
@media print{.appearance-panel,.canvas-controls{display:none!important}header,aside,.toolbar{display:none!important}main{display:block!important}.workspace{padding:0!important;width:100%}.room{overflow:visible!important;padding:0;border:0;background:white;box-shadow:none}.room-identity{display:none!important}#canvasWrap{height:162mm!important;max-height:none!important;overflow:visible!important;border:0}#canvasStage{width:1200px!important;height:900px!important}.grid{transform:scale(.68)!important;background:none}.desk{filter:none}.desk .seat{box-shadow:none;color:#222!important;border-color:#a1a69c;background:white!important}.desk .seat strong{color:#222!important;font-size:14px}.desk .seat small{color:#555!important}.desk-handle,.arranging .desk-handle,.room:not(.arranging) .desk-handle{background:white!important;color:#222!important;border:0;box-shadow:none}.board{margin-bottom:20px;background:white;color:#222}.desk-hit{display:none}.desk-surface{box-shadow:none!important}.teacher-label{color:#222}}
/* Classroom workspace: bounded panels, generous canvas, independent view tools. */
html,body{height:100%;overflow:hidden}body{display:flex;flex-direction:column}header{min-height:64px;padding:10px 22px;flex:0 0 auto}.brand{font-size:21px}.brand span{width:34px;height:34px}.sub{display:none}main{width:100%;max-width:none;min-height:0;height:auto;flex:1;grid-template-columns:300px minmax(0,1fr);overflow:hidden;align-items:stretch}aside{position:relative;top:auto;height:100%;max-height:none;padding:14px;min-height:0;overflow:auto}.class-controls{padding:12px}.class-controls h2{margin-bottom:5px}.compact{font-size:10px;margin:0 0 10px}.class-controls .row button{min-height:36px}.class-controls label{margin-top:10px}.steps{margin-top:14px}#modeHint{font-size:11px;margin:10px 0 14px}.workspace{height:100%;min-height:0;display:flex;flex-direction:column;padding:18px 20px 12px;overflow:hidden}.intro{flex:0 0 auto;margin-bottom:10px;align-items:center}h1{font-size:26px}.intro p{font-size:11px;margin-top:5px}.room-heading{display:flex;gap:10px;align-items:center;min-width:0}#headingIcon{width:28px;height:28px;background:#fff;padding:3px;border-radius:6px;flex-shrink:0}.toolbar{flex:0 0 auto;margin:0;padding:8px;gap:7px}.toolbar button{min-height:38px;font-size:11px;padding:8px 11px}.toolbar #layoutMode{margin-left:auto}.toolbar .spacer{display:none}#status{flex:0 0 auto;margin:7px 2px;min-height:18px;font-size:11px;max-height:36px;overflow:auto}.room{display:flex;flex-direction:column;flex:1;min-height:180px;border-radius:14px}.room-identity{flex:0 0 auto;min-height:58px;padding:10px 18px;margin:0 0 7px;background-size:auto 100px}.room-identity:before{background:linear-gradient(90deg,var(--room) 40%,transparent)}.room-identity .room-icon{width:34px;height:34px}.room-identity strong{font-size:17px;color:var(--room-ink)}.room-identity small{font-size:8px;color:var(--room-ink);opacity:.75;margin-bottom:3px}.board{flex:0 0 auto;font-size:8px;padding:5px 9px;margin-bottom:4px}.canvas-controls{flex:0 0 auto;padding:5px 12px 8px;gap:6px;flex-wrap:wrap}.canvas-controls button{min-height:32px;font-size:11px;padding:5px 9px;background:var(--panel)}.canvas-controls #zoomIn,.canvas-controls #zoomOut{font-size:18px;width:34px;padding:0}.canvas-controls label{font-size:10px}.canvas-controls select{width:101px;min-height:32px}.canvas-hint{font-size:9px}.canvas-controls{color:var(--room-ink)}#canvasWrap{height:auto!important;flex:1;min-height:80px;max-height:none!important;border-color:var(--room-line)}#canvasStage{flex:none}.grid{background-color:var(--room)}.foot{flex:0 0 auto;margin:8px 0 4px;gap:8px}.legend{font-size:10px}#studentBank{flex:0 0 auto;max-height:120px;overflow:auto}#studentBank h2{margin:8px 0;font-size:10px}.bank{min-height:42px;padding:7px;gap:6px}.bank button{min-height:34px;font-size:11px}.workspace>p.hint{display:none}
body[data-tools-hidden=true] main{grid-template-columns:minmax(0,1fr)}body[data-tools-hidden=true] aside{display:none}.appearance-panel{margin:12px 0}.appearance-panel>summary{padding:12px 10px;gap:6px}.appearance-heading{font-size:12px;gap:5px}.appearance-action{font-size:10px}.appearance-action:after{padding-left:4px}.appearance-content{padding:10px}.appearance-content>p{font-size:11px}.appearance-panel .theme-picker{grid-template-columns:1fr;gap:8px}.appearance-panel .theme-choice{flex-direction:row;min-height:64px}.appearance-panel .theme-preview{width:39%;height:64px;flex-shrink:0}.appearance-panel .theme-copy{padding:10px 8px;align-self:center}.appearance-panel .theme-copy strong{font-size:12px}.appearance-panel .theme-copy small{font-size:9px}.appearance-panel .theme-check{right:4px;top:4px;width:17px;height:17px;line-height:17px;font-size:10px}.appearance-footer{font-size:10px;flex-direction:column;align-items:start;gap:8px}.appearance-footer button{min-height:32px}aside:has(#appearancePanel[open]) #roomControls,aside:has(#appearancePanel[open]) #studentControls,aside:has(#appearancePanel[open]) #modeHint{display:none}.icon-section,.colour-section{padding-top:17px;margin-top:17px;border-top:1px solid var(--line)}.icon-section h2,.colour-section h2{margin:0 0 12px}.icon-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.icon-choice{min-width:0;min-height:70px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:8px 3px;font-size:10px;font-weight:500;background:white}.icon-choice img{width:25px;height:25px}.icon-choice[aria-pressed=true]{border:2px solid var(--accent);box-shadow:0 0 0 2px var(--accent-soft);background:var(--accent-soft)}.colour-row{margin:14px 0 20px}.colour-row label{font-size:12px}.colour-inputs{display:flex;gap:8px}.colour-inputs input[type=color]{width:49px;height:40px;flex-shrink:0;padding:3px;cursor:pointer}.colour-inputs input[type=text]{min-width:0;flex:1;font-family:ui-monospace,monospace;font-size:12px}.colour-inputs [aria-invalid=true]{border:2px solid #ac332b}.colour-swatches{display:flex;flex-wrap:wrap;gap:7px;margin-top:9px}.colour-swatches button{width:28px;height:28px;min-height:28px;padding:0;border:2px solid white;box-shadow:0 0 0 1px #8d9991;border-radius:50%}.colour-swatches button:focus-visible{outline-offset:3px}.theme-decision{padding:11px;background:var(--accent-soft);border:1px solid var(--line);border-radius:9px;margin-top:10px}.theme-decision p{font-size:12px;color:#24332b}.theme-decision button{font-size:11px;margin:4px 2px;min-height:36px}.saved-rooms{margin-top:10px}.saved-rooms summary{font-size:11px;padding:5px 0}.saved-room-card{width:100%;display:flex;align-items:center;gap:9px;text-align:left;padding:9px;margin-top:7px;background:white;min-height:55px}.saved-room-card img{width:27px;height:27px;flex-shrink:0}.saved-room-card span{min-width:0}.saved-room-card strong{display:block;font-size:12px;overflow-wrap:anywhere}.saved-room-card small{display:block;font-size:10px;color:#5d6c62;margin-top:3px}.saved-room-card[aria-pressed=true]{background:var(--accent-soft);outline:1px solid var(--accent)}
/* Adaptive contrast: student cards stay opaque and high contrast. */
button.primary,.steps button[aria-current=step],#multiMode[aria-pressed=true],.brand span,.header-actions #print,.theme-check,.desk-handle,.arranging .desk-handle{color:var(--accent-ink)!important}.brand img{filter:none;background:#fff;border-radius:4px}.hint,p,.legend,summary{color:var(--muted)}h2,#status,#deskLabel,#groupCount,.tag,.appearance-heading small,.room:not(.arranging) .desk-handle{color:var(--accent-label)}.desk .seat,.desk .seat.empty{background:#ffffff!important;color:#25322c!important}.desk .seat strong,.desk .seat.empty strong{color:#25322c!important}.desk .seat small{color:#56695c!important}.desk .seat.selected,.desk .seat.over{background:#edf1f5!important;outline:3px solid #1d4b6c;outline-offset:1px}.teacher-label{color:var(--desk-ink)}.desk.teacher .desk-surface{background:linear-gradient(145deg,var(--desk-top),var(--desk-bottom));border-color:var(--desk-rim)}.room-icon{background:white}.empty-room{color:var(--room-ink)}.room-identity{border-color:var(--room-line)}
@media(max-width:1100px){main{grid-template-columns:270px minmax(0,1fr)}.workspace{padding:12px}aside{padding:11px}.toolbar{flex-wrap:wrap}.canvas-hint{display:none}.toolbar #layoutMode{margin-left:0}.intro .tag{display:none}.canvas-controls label{display:none}.intro p{display:none}.room-identity{min-height:51px;padding:8px 12px}.room-identity small{display:none}.foot{flex-wrap:wrap}#count{min-width:0}.toolbar button{min-height:36px}}
@media(max-width:760px){header{min-height:55px;padding:8px 12px;flex-wrap:nowrap;gap:8px}.brand{font-size:17px}.brand span{width:28px;height:28px;margin-right:6px}.brand img{width:20px;height:20px}.header-actions{width:auto;gap:4px}.header-actions button{font-size:10px;padding:5px 7px;min-height:36px}.header-actions #backup,.header-actions #restore{max-width:69px}main{display:flex;flex-direction:column;min-height:0}aside{height:auto;max-height:32dvh;width:100%;flex:0 1 auto;border-bottom:1px solid var(--line);padding:10px}.class-controls{padding:10px}.class-controls .compact{display:none}.workspace{flex:1;min-height:0;width:100%;padding:9px;overflow:hidden}.room{min-height:100px}.intro{margin-bottom:8px}h1{font-size:20px}.room-heading #headingIcon{width:23px;height:23px}.steps{margin-top:8px}.toolbar{gap:5px;padding:6px}.toolbar button{flex:0 1 auto;font-size:10px;min-height:36px;padding:7px 8px}.room-identity{display:none}.board{min-width:150px;padding:3px 6px;margin-top:5px;min-height:0}.canvas-controls{gap:4px;padding:4px 6px}.canvas-controls button{font-size:10px;min-height:32px;padding:5px 6px}.canvas-controls select{font-size:10px;width:92px;min-height:32px}.foot{margin:5px 0 0;flex-direction:row}.foot .legend{font-size:9px}#interactionHint{display:none}#studentBank{max-height:80px}.appearance-panel .theme-picker{grid-template-columns:repeat(3,minmax(0,1fr))}.appearance-panel .theme-choice{flex-direction:column}.appearance-panel .theme-preview{width:100%;height:50px}.icon-grid{grid-template-columns:repeat(7,minmax(0,1fr))}.icon-choice{font-size:9px}.colour-section #colourFields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.colour-inputs{gap:4px}.colour-inputs input[type=color]{width:35px}.colour-inputs input[type=text]{font-size:10px;padding:4px}.colour-swatches{gap:6px}.colour-swatches button{width:24px;height:24px;min-height:24px}body[data-tools-hidden=true] aside{display:none}}
@media(pointer:coarse){.toolbar button,.canvas-controls button,.canvas-controls select{min-height:40px}.colour-swatches button{width:32px;height:32px;min-height:32px}.icon-choice{min-height:76px}.desk .seat{min-height:0}}
@media print{html,body{height:auto!important;overflow:visible!important;display:block!important}main,.workspace{height:auto!important;overflow:visible!important;display:block!important}.room{display:block!important;overflow:visible!important}#canvasWrap{display:block;flex:none;height:162mm!important;max-height:none!important;overflow:visible!important}#canvasStage{position:relative!important;width:1200px!important;height:900px!important}.room-heading{display:none!important}.desk-handle,.arranging .desk-handle{color:#222!important}.desk .seat strong{color:#222!important}}
.icon-choice[aria-pressed=true],.theme-choice[aria-pressed=true]{border-color:var(--accent-label)}.saved-room-card[aria-pressed=true]{outline-color:var(--accent-label)}.room .canvas-hint{color:var(--room-ink)}.desk .seat.empty{border-color:var(--desk-rim)}
@media(max-width:430px){.colour-section #colourFields{grid-template-columns:1fr}.icon-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.appearance-panel .theme-picker{grid-template-columns:1fr}.appearance-panel .theme-choice{flex-direction:row}.appearance-panel .theme-preview{width:35%;height:60px}.header-actions button{font-size:9px}.canvas-controls button{padding:5px}.canvas-controls select{width:83px}}
.compass-import{border:1px solid var(--line);border-radius:12px;background:#fff;padding:12px;margin:0 0 20px}.compass-import summary{font-size:12px;font-weight:650;color:var(--accent-label)}.compass-import p{font-size:11px;line-height:1.6}.compass-import textarea{min-height:130px;font-size:12px;line-height:1.5}.compass-import #compassPreview{min-height:200px}.compass-import #compassFeedback{padding:8px 0;margin:6px 0;font-weight:600;color:var(--accent-label)}#compassReview{margin-top:10px;padding-top:10px;border-top:1px solid var(--line)}
