:root{--paper:#f3f5ef;--surface:#fbfcf8;--surface-raised:#fff;--ink:#172025;--ink-soft:#536168;--line:#ccd3ce;--line-strong:#aeb8b1;--blue:#2349d8;--blue-dark:#17349f;--blue-pale:#e7ebff;--green:#19724d;--green-pale:#e2f2e9;--red:#b9412f;--red-pale:#fae8e3;--gold:#a9690e;--gold-pale:#f8eedc;--wall:#233039;--wall-ink:#f4f7f1;--font-body:"Atkinson Hyperlegible Next", "Trebuchet MS", sans-serif;--font-display:"Bricolage Grotesque", "Trebuchet MS", sans-serif;color:var(--ink);background:var(--paper);font-family:var(--font-body);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;letter-spacing:0}*{box-sizing:border-box;letter-spacing:0}html{background:var(--paper)}body{background:linear-gradient(#17202506 1px, transparent 1px), linear-gradient(90deg, #17202506 1px, transparent 1px), var(--paper);background-size:24px 24px;min-height:100vh;margin:0}button,input,select,textarea{color:inherit;font:inherit}button,select{cursor:pointer}button:disabled,select:disabled{cursor:not-allowed}button svg,.button svg,.toolbar-button svg,.save-state svg,.privacy-footer svg,.fit-status svg,.inline-warning svg,.edit-mode-banner svg,.room-status svg,.notice svg{stroke-width:1.8px;flex:0 0 17px;width:17px;height:17px}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid color-mix(in srgb, var(--blue) 35%, transparent);outline-offset:2px}::selection{color:var(--surface-raised);background:var(--blue)}.app-shell{flex-direction:column;min-height:100vh;display:flex}.app-header{z-index:20;border-bottom:1px solid var(--line-strong);background:color-mix(in srgb, var(--surface) 94%, transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);grid-template-columns:auto minmax(220px,1fr) auto auto;align-items:center;gap:22px;min-height:68px;padding:12px 20px;display:grid;position:sticky;top:0}.brand{color:var(--ink);font-family:var(--font-display);align-items:center;gap:10px;font-size:19px;font-weight:750;text-decoration:none;display:inline-flex}.brand-mark{border:1px solid var(--ink);border-radius:4px;grid-template-columns:repeat(2,1fr);gap:3px;width:27px;height:27px;padding:3px;display:grid;transform:rotate(-3deg)}.brand-mark b{background:var(--blue);border-radius:1px;display:block}.brand-mark b:nth-child(2),.brand-mark b:nth-child(3){background:var(--green)}.class-name-field{align-items:center;gap:10px;min-width:0;display:flex}.class-name-field span{color:var(--ink-soft);text-transform:uppercase;font-size:12px;font-weight:700}.class-name-field input{width:min(100%,440px);min-width:0;font-family:var(--font-display);background:0 0;border:1px solid #0000;border-radius:4px;padding:7px 9px;font-size:16px;font-weight:650}.class-name-field input:hover,.class-name-field input:focus{border-color:var(--line);background:var(--surface-raised)}.save-state{color:var(--green);white-space:nowrap;align-items:center;gap:7px;font-size:12px;font-weight:700;display:inline-flex}.save-state.has-error{color:var(--red)}.header-actions{align-items:center;gap:7px;display:flex}.icon-button{border:1px solid var(--line);width:38px;height:38px;color:var(--ink-soft);background:var(--surface-raised);border-radius:4px;place-items:center;padding:0;display:inline-grid}.icon-button:hover:not(:disabled){color:var(--blue);border-color:var(--blue)}.icon-button:disabled{opacity:.42}.icon-button.quiet{background:0 0;border-color:#0000}.button{border:1px solid var(--line-strong);background:var(--surface-raised);min-height:40px;font-family:var(--font-display);border-radius:4px;justify-content:center;align-items:center;gap:8px;padding:9px 13px;font-size:13px;font-weight:700;display:inline-flex}.button:hover:not(:disabled){border-color:var(--ink);transform:translateY(-1px)}.button:active:not(:disabled){transform:translateY(0)}.button:disabled{opacity:.4}.button.primary{color:var(--surface-raised);border-color:var(--blue);background:var(--blue)}.button.primary:hover:not(:disabled),.generate-button:hover:not(:disabled){border-color:var(--blue-dark);background:var(--blue-dark)}.button.secondary{color:var(--ink);background:0 0}.print-button{color:var(--surface-raised);border-color:var(--ink);background:var(--ink)}.pro-button{color:#6f470c;background:var(--gold-pale);white-space:nowrap;border-color:#c8923e}.pro-button:hover:not(:disabled){color:#553504;border-color:var(--gold)}.pro-state{border:1px solid var(--green);height:34px;color:var(--green);background:var(--green-pale);border-radius:4px;align-items:center;gap:5px;padding:0 9px;font-size:11px;font-weight:800;display:inline-flex}.pro-state svg{width:14px;height:14px}.full-width{width:100%}.workspace{flex:1;grid-template-columns:350px minmax(0,1fr);min-height:calc(100vh - 100px);display:grid}.control-rail{border-right:1px solid var(--line-strong);background:var(--surface);flex-direction:column;min-width:0;display:flex}.workflow-tabs{border-bottom:1px solid var(--line);grid-template-columns:repeat(4,1fr);display:grid}.workflow-tabs button{border:0;border-right:1px solid var(--line);min-width:0;min-height:60px;color:var(--ink-soft);background:0 0;border-bottom:3px solid #0000;flex-direction:column;justify-content:center;align-items:center;gap:5px;padding:8px;font-size:11px;font-weight:700;display:flex}.workflow-tabs button:last-child{border-right:0}.workflow-tabs button[aria-pressed=true]{color:var(--blue);border-bottom-color:var(--blue);background:var(--blue-pale)}.workflow-tabs svg{width:18px;height:18px}.control-panel{flex:1;min-height:0;padding:25px 22px 32px;overflow-y:auto}.panel-heading{justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:25px;display:flex}.eyebrow,.section-label{color:var(--blue);text-transform:uppercase;margin-bottom:4px;font-size:10px;font-weight:800;display:block}.panel-heading h2{font-family:var(--font-display);margin:0;font-size:27px;line-height:1}.count-badge{min-width:30px;height:30px;color:var(--blue-dark);background:var(--blue-pale);border-radius:15px;place-items:center;padding:0 8px;font-size:12px;font-weight:800;display:inline-grid}.pro-price{color:#704608;background:var(--gold-pale);border-radius:15px;place-items:center;min-width:42px;height:30px;padding:0 9px;font-size:12px;font-weight:850;display:inline-grid}.pro-panel{border:1px solid color-mix(in srgb, var(--gold) 35%, var(--line));background:linear-gradient(#a9690e09 1px, transparent 1px), linear-gradient(90deg, #a9690e09 1px, transparent 1px), color-mix(in srgb, var(--gold-pale) 52%, var(--surface-raised));background-size:18px 18px;border-radius:5px;padding:19px}.pro-lock{color:#704608;background:var(--gold-pale);border-radius:4px;place-items:center;width:42px;height:42px;margin-bottom:17px;display:grid}.pro-lock svg{width:20px;height:20px}.pro-panel h3{font-family:var(--font-display);margin:0 0 8px;font-size:19px;line-height:1.1}.pro-panel>p{color:var(--ink-soft);margin:0;font-size:12px;line-height:1.55}.pro-panel ul{gap:7px;margin:16px 0 18px;padding:0;list-style:none;display:grid}.pro-panel li{align-items:center;gap:7px;font-size:11px;font-weight:700;display:flex}.pro-panel li svg{width:14px;height:14px;color:var(--green)}.pro-panel a.button{text-decoration:none}.license-divider{color:var(--ink-soft);grid-template-columns:1fr auto 1fr;align-items:center;gap:8px;margin:18px 0;font-size:10px;font-weight:700;display:grid}.license-divider:before,.license-divider:after{content:"";background:var(--line);height:1px}.license-form{grid-template-columns:minmax(0,1fr) auto;gap:7px;display:grid}.license-form input{border:1px solid var(--line-strong);background:var(--surface-raised);border-radius:4px;min-width:0;height:40px;padding:0 9px}.pro-panel>small{color:var(--ink-soft);margin-top:10px;font-size:9px;line-height:1.45;display:block}.field-label,.field-group legend{color:var(--ink-soft);text-transform:uppercase;margin-bottom:8px;font-size:11px;font-weight:800;display:block}.roster-input,.field-group select,.inline-form select{border:1px solid var(--line-strong);background:var(--surface-raised);border-radius:4px;width:100%}.roster-input{resize:vertical;min-height:225px;padding:12px;line-height:1.55}.roster-input::placeholder{color:#89958f}.field-group select,.inline-form select{min-width:0;height:40px;padding:0 34px 0 10px}.panel-actions{gap:8px;margin-top:12px;display:flex}.split-actions>*{flex:1 1 0}.panel-summary,.capacity-line{color:var(--ink-soft);justify-content:space-between;align-items:center;gap:14px;font-size:12px;font-weight:700;display:flex}.panel-summary{border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-top:18px;padding:11px 0}.panel-summary.is-warning,.capacity-line.is-over{color:var(--red)}.inline-warning{color:var(--red);align-items:center;gap:7px;margin:12px 0 0;font-size:12px;font-weight:700;display:flex}.text-button{color:var(--blue);text-underline-offset:3px;background:0 0;border:0;margin-top:14px;padding:5px 0;font-size:12px;font-weight:750;text-decoration:underline}.room-controls{border-top:1px solid var(--line)}.stepper-row{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;min-height:54px;font-size:13px;font-weight:700;display:flex}.stepper{border:1px solid var(--line);border-radius:4px;grid-template-columns:34px 38px 34px;align-items:center;display:grid;overflow:hidden}.stepper button{width:34px;height:32px;color:var(--ink-soft);background:var(--surface-raised);border:0;place-items:center;padding:0;display:grid}.stepper button:hover:not(:disabled){color:var(--blue);background:var(--blue-pale)}.stepper output{border-right:1px solid var(--line);border-left:1px solid var(--line);background:var(--paper);place-items:center;height:32px;font-weight:800;display:grid}.field-group{border:0;min-width:0;margin:24px 0 0;padding:0}.segmented-control{border:1px solid var(--line-strong);border-radius:4px;grid-template-columns:repeat(2,1fr);display:grid;overflow:hidden}.segmented-control button{border:0;border-right:1px solid var(--line-strong);min-height:38px;color:var(--ink-soft);background:var(--surface-raised);padding:7px 10px;font-size:12px;font-weight:750}.segmented-control button:last-child{border-right:0}.segmented-control button[aria-pressed=true]{color:var(--surface-raised);background:var(--ink)}.segmented-control.compact button{min-height:34px}.edit-mode-banner{border:1px solid color-mix(in srgb, var(--blue) 25%, var(--line));min-height:46px;color:var(--blue-dark);background:var(--blue-pale);border-radius:4px;grid-template-columns:auto 1fr auto;align-items:center;gap:9px;margin:20px 0 10px;padding:9px 10px;font-size:12px;font-weight:700;display:grid}.edit-mode-banner strong{font-size:11px}.inline-form{grid-template-columns:minmax(0,1fr) 40px;gap:7px;display:grid}.add-button{width:40px;height:40px;color:var(--surface-raised);border-color:var(--blue);background:var(--blue)}.pair-group .segmented-control{margin-bottom:9px}.pair-group select{margin-bottom:5px}.pair-join{height:24px;color:var(--ink-soft);grid-template-columns:1fr auto 1fr;align-items:center;gap:8px;display:grid}.pair-join span{background:var(--line);height:1px}.pair-join svg{width:15px;height:15px}.pair-group .full-width{margin-top:8px}.rules-section{border-top:1px solid var(--line);margin-top:28px;padding-top:18px}.rules-list{gap:5px;margin:10px 0 0;padding:0;list-style:none;display:grid}.rule-row{border-bottom:1px solid var(--line);grid-template-columns:20px minmax(0,1fr) 34px;align-items:center;gap:9px;min-height:48px;padding:5px 2px 5px 8px;display:grid}.rule-row>svg{width:16px;height:16px;color:var(--blue)}.rule-row span{min-width:0}.rule-row strong,.rule-row small{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.rule-row strong{font-size:12px}.rule-row small{color:var(--ink-soft);font-size:10px}.rule-row .icon-button{width:32px;height:32px}.small-empty{color:var(--ink-soft);padding:18px 0;font-size:12px}.generate-dock{border-top:1px solid var(--line-strong);background:var(--surface-raised);padding:14px 18px 18px}.capacity-line{margin-bottom:9px}.generate-button{width:100%;min-height:48px;color:var(--surface-raised);border-color:var(--blue);background:var(--blue);font-size:14px}.draft-workspace{background:var(--paper);flex-direction:column;min-width:0;display:flex}.draft-toolbar{border-bottom:1px solid var(--line-strong);background:var(--surface);justify-content:space-between;align-items:stretch;gap:16px;min-height:54px;padding:0 18px;display:flex}.draft-tabs,.draft-actions{align-items:center;gap:5px;display:flex}.draft-placeholder{color:var(--ink-soft);font-size:12px;font-weight:700}.draft-tab{color:var(--ink-soft);background:0 0;border:0;border-bottom:3px solid #0000;align-self:stretch;align-items:center;gap:7px;padding:0 13px;font-size:12px;font-weight:800;display:inline-flex}.draft-tab[aria-pressed=true]{color:var(--blue);border-bottom-color:var(--blue)}.draft-dot{background:var(--green);border-radius:50%;width:7px;height:7px}.draft-dot.has-warning{background:var(--gold)}.toolbar-button{min-height:34px;color:var(--ink-soft);background:0 0;border:1px solid #0000;border-radius:4px;align-items:center;gap:6px;padding:6px 8px;font-size:11px;font-weight:750;display:inline-flex}.toolbar-button:hover:not(:disabled){color:var(--blue);border-color:var(--line);background:var(--surface-raised)}.toolbar-button:disabled{opacity:.42}.room-floor{background-color:#e9ede5;background-image:linear-gradient(#2349d80e 1px,#0000 1px),linear-gradient(90deg,#2349d80e 1px,#0000 1px),none;background-position:0 0,0 0,0 0;background-repeat:repeat,repeat,repeat;background-size:22px 22px;background-attachment:scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box;flex-direction:column;flex:1;gap:24px;min-height:620px;padding:28px 30px 38px;display:flex;position:relative;overflow:auto}.room-floor.front-bottom .teaching-wall{order:3}.room-floor.front-bottom .room-status{order:1}.room-floor.front-bottom .desk-grid{order:2}.teaching-wall{min-width:520px;min-height:52px;color:var(--wall-ink);background:var(--wall);border-radius:4px;grid-template-columns:1fr auto 1fr;align-items:center;gap:22px;padding:10px 18px;display:grid;box-shadow:0 7px #1720251f}.teaching-wall span{color:#c9d1cd;text-transform:uppercase;font-size:10px;font-weight:800}.teaching-wall span:last-child{text-align:right}.teaching-wall strong{max-width:420px;font-family:var(--font-display);text-overflow:ellipsis;white-space:nowrap;font-size:15px;overflow:hidden}.room-status{border:1px dashed var(--line-strong);min-width:300px;color:var(--ink-soft);background:color-mix(in srgb, var(--surface) 78%, transparent);border-radius:4px;align-self:center;align-items:center;gap:11px;padding:12px 14px;display:flex}.room-status.is-ready{color:var(--blue-dark);border-color:color-mix(in srgb, var(--blue) 38%, var(--line));background:color-mix(in srgb, var(--blue-pale) 80%, transparent)}.room-status span,.room-status strong,.room-status small{display:block}.room-status strong{color:var(--ink);font-family:var(--font-display);font-size:13px}.room-status small{margin-top:1px;font-size:10px}.desk-grid{grid-template-columns:repeat(var(--desk-columns), 108px);grid-template-rows:repeat(var(--desk-rows), 82px);place-content:center;gap:16px;width:max-content;min-width:100%;margin:auto;display:grid}.desk-slot{width:108px;height:82px;position:relative}.desk-seat,.desk-slot.is-disabled>button{border-radius:5px;width:100%;height:100%}.desk-seat{color:var(--ink);background:var(--surface-raised);text-align:left;border:1px solid #9aa69f;flex-direction:column;justify-content:center;align-items:flex-start;gap:3px;padding:11px 12px;display:flex;position:relative;overflow:hidden;box-shadow:0 3px #aeb7b1,0 8px 14px #17202514}.desk-seat:not(:disabled):hover{border-color:var(--blue);transform:translateY(-1px)}.desk-seat:disabled{color:var(--ink-soft)}.desk-coordinate{color:#6d7972;text-transform:uppercase;font-size:9px;font-weight:800}.desk-seat strong{width:100%;font-family:var(--font-display);text-overflow:ellipsis;white-space:nowrap;font-size:13px;line-height:1.15;overflow:hidden}.desk-slot.is-empty .desk-seat{color:var(--ink-soft);background:#fbfcf894;border-style:dashed;box-shadow:0 3px #aeb7b194}.desk-slot.is-occupied .desk-seat{background:var(--surface-raised)}.desk-slot.is-locked .desk-seat{border-color:var(--green);background:var(--green-pale);box-shadow:0 3px 0 color-mix(in srgb, var(--green) 55%, #aeb7b1), 0 8px 14px #19724d1a}.desk-slot.is-selected .desk-seat{outline:3px solid var(--blue);outline-offset:3px}.swap-label{color:var(--surface-raised);background:var(--blue);text-transform:uppercase;border-radius:2px;padding:2px 4px;font-size:8px;font-weight:800;position:absolute;bottom:5px;right:6px}.pin-button{z-index:2;width:25px;height:25px;color:var(--ink-soft);background:#ffffffd6;border:0;border-radius:3px;place-items:center;padding:0;display:grid;position:absolute;top:5px;right:5px}.pin-button:hover{color:var(--blue);background:var(--blue-pale)}.desk-slot.is-locked .pin-button{color:var(--surface-raised);background:var(--green)}.pin-button svg{width:13px;height:13px}.desk-slot.is-disabled>button{color:#77837c;background:repeating-linear-gradient(135deg,#0000 0 6px,#1720250f 6px 8px),#fbfcf861;border:1px dashed #9fa9a3;place-items:center;padding:0;display:grid}.desk-slot.is-disabled>button:hover{color:var(--blue);border-color:var(--blue)}.draft-footer{border-top:1px solid var(--line-strong);background:var(--surface);justify-content:space-between;align-items:center;gap:18px;min-height:48px;padding:9px 20px;display:flex}.legend,.rule-status,.fit-status{align-items:center;display:flex}.legend{color:var(--ink-soft);gap:16px;font-size:10px;font-weight:700}.legend span{white-space:nowrap;align-items:center;gap:6px;display:inline-flex}.legend-swatch{border:1px solid var(--line-strong);background:var(--surface-raised);border-radius:2px;width:10px;height:10px}.legend-swatch.pinned{border-color:var(--green);background:var(--green-pale)}.legend-swatch.open{background:0 0;border-style:dashed}.rule-status{color:var(--ink-soft);text-align:right;font-size:11px;font-weight:700}.fit-status{gap:6px}.fit-status.is-good{color:var(--green)}.fit-status.is-warning{color:var(--gold)}.violation-strip{border-top:1px solid color-mix(in srgb, var(--gold) 30%, var(--line));color:#704608;background:var(--gold-pale);flex-wrap:wrap;gap:6px 18px;padding:9px 20px;font-size:11px;font-weight:700;display:flex}.print-field-group{margin-top:16px}.print-scale-control{margin-top:22px;display:block}.print-scale-control>span{color:var(--ink-soft);text-transform:uppercase;justify-content:space-between;align-items:center;gap:16px;margin-bottom:10px;font-size:11px;font-weight:800;display:flex}.print-scale-control output{color:var(--blue);font-size:12px}.print-scale-control input{appearance:none;background:var(--line-strong);border-radius:2px;width:100%;height:3px}.print-scale-control input::-webkit-slider-thumb{appearance:none;border:1px solid var(--blue-dark);background:var(--blue);border-radius:3px;width:15px;height:19px}.print-scale-control input::-moz-range-thumb{border:1px solid var(--blue-dark);background:var(--blue);border-radius:3px;width:15px;height:19px}.print-copy-fields{border-top:1px solid var(--line);gap:11px;margin-top:24px;padding-top:20px;display:grid}.print-copy-fields label>span{color:var(--ink-soft);text-transform:uppercase;margin-bottom:6px;font-size:10px;font-weight:800;display:block}.print-copy-fields input{border:1px solid var(--line-strong);background:var(--surface-raised);border-radius:4px;width:100%;height:39px;padding:0 9px;font-size:12px}.print-toggles{border-top:1px solid var(--line);margin-top:22px;display:grid}.print-toggle{border-bottom:1px solid var(--line);grid-template-columns:1fr auto;align-items:center;gap:12px;min-height:43px;font-size:12px;font-weight:700;display:grid}.print-toggle input{opacity:0;width:1px;height:1px;position:absolute}.print-toggle b{border:1px solid var(--line-strong);background:#dfe4df;border-radius:10px;width:34px;height:19px;position:relative}.print-toggle b:after{content:"";background:var(--surface-raised);border-radius:50%;width:13px;height:13px;transition:transform .16s ease-out;position:absolute;top:2px;left:2px;box-shadow:0 1px 2px #1720253d}.print-toggle input:checked+b{border-color:var(--blue);background:var(--blue)}.print-toggle input:checked+b:after{transform:translate(15px)}.print-toggle input:focus-visible+b{outline:3px solid color-mix(in srgb, var(--blue) 35%, transparent);outline-offset:2px}.print-actions{margin-top:22px}.print-preview-workspace{background:#dce1da;flex-direction:column;flex:1;min-width:0;min-height:640px;display:flex}.print-preview-meta{border-bottom:1px solid var(--line-strong);min-height:42px;color:var(--ink-soft);background:var(--surface);justify-content:space-between;align-items:center;gap:18px;padding:7px 18px;font-size:10px;font-weight:750;display:flex}.print-preview-meta span{align-items:center;gap:6px;display:inline-flex}.print-preview-meta svg{width:14px;height:14px}.print-preview-viewport{background-color:#dce1da;background-image:linear-gradient(#1720250b 1px,#0000 1px),linear-gradient(90deg,#1720250b 1px,#0000 1px),none;background-position:0 0,0 0,0 0;background-repeat:repeat,repeat,repeat;background-size:18px 18px;background-attachment:scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box;flex:1;place-items:center;min-width:0;padding:clamp(22px,4vw,46px);display:grid;overflow:auto}.print-document{width:min(100%,960px);min-width:620px;aspect-ratio:var(--print-page-ratio);color:#172025;background:#fff;grid-template-rows:auto minmax(0,1fr) auto;gap:clamp(10px,1.4vw,18px);padding:clamp(22px,3.5vw,44px);display:grid;box-shadow:0 1px #17202514,0 22px 60px #17202533;container-type:inline-size}.print-document-header{border-bottom:1px solid #c9d0cb;justify-content:space-between;align-items:flex-start;gap:22px;padding-bottom:clamp(8px,1.2vw,14px);display:flex}.print-document-header>div{min-width:0}.print-document-header span{color:#536168;text-transform:uppercase;margin-bottom:4px;font-size:clamp(7px,1.25cqw,11px);font-weight:800;display:block}.print-document-header h2{overflow-wrap:anywhere;font-family:var(--font-display);margin:0;font-size:clamp(18px,4cqw,36px);line-height:1}.print-document-header p{color:#536168;margin:5px 0 0;font-size:clamp(8px,1.5cqw,13px)}.print-document-header time{color:#536168;flex:none;font-size:clamp(7px,1.25cqw,11px);font-weight:700}.print-document-room{flex-direction:column;justify-content:center;gap:clamp(8px,1.2vw,14px);min-height:0;display:flex}.print-document-room.front-bottom .print-teaching-wall{order:2}.print-document-room.front-bottom .print-desk-grid{order:1}.print-teaching-wall{color:#f4f7f1;text-transform:uppercase;background:#233039;border-radius:2px;justify-content:space-between;align-items:center;gap:18px;min-height:clamp(24px,3.8cqw,40px);padding:5px 12px;font-size:clamp(7px,1.2cqw,10px);font-weight:800;display:flex}.print-desk-grid{width:min(100%, calc(82% * var(--print-preview-scale)));grid-template-columns:repeat(var(--print-columns), minmax(0, 1fr));flex:1;grid-auto-rows:minmax(34px,1fr);align-self:center;gap:clamp(4px,.75cqw,9px);min-height:0;display:grid}.print-desk{text-align:left;background:#f4f7ff;border:1px solid #9ca8a1;border-radius:2px;flex-direction:column;justify-content:center;gap:2px;min-width:0;min-height:0;padding:clamp(4px,.8cqw,9px);display:flex;overflow:hidden}.print-desk>span{color:#65716a;text-transform:uppercase;font-size:clamp(6px,.95cqw,9px);font-weight:800}.print-desk strong{font-family:var(--font-display);text-overflow:ellipsis;white-space:nowrap;font-size:clamp(7px,1.45cqw,13px);line-height:1.1;overflow:hidden}.print-desk.is-open{color:#637068;background:0 0;border-style:dashed}.print-desk.is-disabled{opacity:.35;background:repeating-linear-gradient(135deg,#0000 0 5px,#1720251a 5px 7px),#f2f3f0;border-style:dashed}.print-document-footer{color:#536168;border-top:1px solid #c9d0cb;justify-content:space-between;align-items:flex-end;gap:18px;min-height:22px;padding-top:clamp(7px,1vw,12px);font-size:clamp(7px,1.2cqw,10px);font-weight:700;display:flex}.print-footer-note{overflow-wrap:anywhere}.print-legend{flex:none;align-items:center;gap:5px;display:flex}.print-legend b{background:#f4f7ff;border:1px solid #9ca8a1;border-radius:1px;width:9px;height:9px;margin-left:6px;display:inline-block}.print-legend b:first-child{margin-left:0}.print-legend b.is-open{background:0 0;border-style:dashed}.print-grayscale .print-teaching-wall{color:#fff;background:#383b39}.print-grayscale .print-desk,.print-grayscale .print-legend b{background:#f1f1f1}.print-preview-empty{border:1px dashed var(--line-strong);width:min(100%,620px);min-height:360px;color:var(--ink-soft);background:color-mix(in srgb, var(--surface) 75%, transparent);text-align:center;border-radius:5px;flex-direction:column;justify-content:center;align-items:center;gap:7px;padding:35px;display:flex}.print-preview-empty svg{width:28px;height:28px;color:var(--blue);margin-bottom:8px}.print-preview-empty strong{color:var(--ink);font-family:var(--font-display);font-size:16px}.print-preview-empty span{font-size:11px}.privacy-footer{border-top:1px solid var(--line-strong);min-height:32px;color:var(--ink-soft);background:var(--surface);justify-content:space-between;align-items:center;gap:18px;padding:7px 20px;font-size:10px;display:flex}.privacy-footer span:first-child{color:var(--green);align-items:center;gap:6px;font-weight:800;display:inline-flex}.privacy-footer svg{flex-basis:14px;width:14px;height:14px}.privacy-footer nav{align-items:center;gap:14px;display:flex}.privacy-footer a{color:var(--blue);text-underline-offset:2px;font-weight:750}.seo-content{color:var(--ink);background:var(--surface)}html:not(.app-ready) .seo-content{visibility:hidden}.seo-content>section{border-top:1px solid var(--line-strong);width:min(100% - 40px,1120px);margin:0 auto;padding:clamp(52px,8vw,96px) 0}.seo-intro{border-top:0!important}.seo-eyebrow,.seo-content section>header>span{color:var(--blue);text-transform:uppercase;margin-bottom:8px;font-size:10px;font-weight:800;display:block}.seo-intro h1{max-width:900px;font-family:var(--font-display);margin:0;font-size:clamp(36px,7vw,72px);line-height:.98}.seo-intro p{max-width:760px;color:var(--ink-soft);margin:24px 0 28px;font-size:clamp(16px,2vw,20px);line-height:1.65}.seo-intro>a{border:1px solid var(--blue);color:#fff;background:var(--blue);min-height:42px;font-family:var(--font-display);border-radius:4px;align-items:center;padding:9px 14px;font-size:13px;font-weight:750;text-decoration:none;display:inline-flex}.seo-process,.seo-guides,.seo-faq{grid-template-columns:minmax(170px,.45fr) minmax(0,1.55fr);gap:clamp(32px,7vw,110px);display:grid}.seo-content section>header h2{font-family:var(--font-display);margin:0;font-size:clamp(24px,3vw,34px);line-height:1.05}.seo-process ol{counter-reset:seo-step;margin:0;padding:0;list-style:none}.seo-process li{border-top:1px solid var(--line);counter-increment:seo-step;grid-template-columns:minmax(170px,.7fr) minmax(0,1.3fr);gap:24px;min-height:70px;padding:20px 0 20px 48px;display:grid;position:relative}.seo-process li:before{content:counter(seo-step, decimal-leading-zero);color:var(--green);font-size:11px;font-weight:850;position:absolute;top:20px;left:0}.seo-process li strong{font-family:var(--font-display);font-size:15px}.seo-process li span,.seo-guides a span,.seo-faq p{color:var(--ink-soft);font-size:13px;line-height:1.6}.seo-guides>div{border-top:1px solid var(--line)}.seo-guides a{border-bottom:1px solid var(--line);color:var(--ink);grid-template-columns:minmax(190px,.8fr) minmax(0,1.2fr);gap:25px;padding:24px 0;text-decoration:none;display:grid}.seo-guides a:hover strong{color:var(--blue)}.seo-guides a strong{font-family:var(--font-display);font-size:15px}.seo-faq>div{border-top:1px solid var(--line)}.seo-faq details{border-bottom:1px solid var(--line);padding:19px 0}.seo-faq summary{cursor:pointer;font-family:var(--font-display);font-size:14px;font-weight:750}.seo-faq p{max-width:720px;margin:10px 0 0}.notice{z-index:50;border:1px solid var(--green);max-width:min(380px,100vw - 40px);min-height:44px;color:var(--green);background:var(--green-pale);border-radius:5px;align-items:center;gap:9px;padding:10px 13px;font-size:12px;font-weight:800;animation:.24s cubic-bezier(.22,1,.36,1) both notice-in;display:flex;position:fixed;bottom:20px;right:20px;box-shadow:0 14px 35px #17202529}.notice-warning{color:#704608;border-color:var(--gold);background:var(--gold-pale)}.notice-error{color:var(--red);border-color:var(--red);background:var(--red-pale)}.app-header,.control-rail,.draft-workspace{animation:.42s cubic-bezier(.22,1,.36,1) both surface-in}#app.has-rendered .app-header,#app.has-rendered .control-rail,#app.has-rendered .draft-workspace{animation:none}.control-rail{animation-delay:60ms}.draft-workspace{animation-delay:.11s}@keyframes surface-in{0%{opacity:0;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}@keyframes notice-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (width<=1080px){.app-header{gap:13px}.workspace{grid-template-columns:320px minmax(0,1fr)}.control-panel{padding-left:18px;padding-right:18px}.desk-grid{grid-template-columns:repeat(var(--desk-columns), 96px);grid-template-rows:repeat(var(--desk-rows), 76px);gap:13px}.desk-slot{width:96px;height:76px}}@media (width<=860px){.app-header{grid-template-columns:auto minmax(180px,1fr) auto;position:static}.save-state{display:none}.workspace{display:block}.control-rail{border-right:0;border-bottom:1px solid var(--line-strong)}.control-panel{min-height:330px;max-height:540px}.draft-workspace{min-height:650px}.room-floor{min-height:560px}}@media (width<=620px){.app-header{grid-template-columns:minmax(0,1fr);gap:10px;padding:10px 12px 12px}.brand{grid-area:1/1;font-size:17px}.class-name-field{grid-area:3/1}.class-name-field input{border-color:var(--line);background:var(--surface-raised);width:100%}.header-actions{grid-area:2/1;justify-content:flex-end}.header-actions .icon-button{width:36px;height:36px}.print-button{width:36px;min-height:36px;padding:0}.print-button span{display:none}.pro-button{width:36px;min-height:36px;padding:0;font-size:0}.pro-state{justify-content:center;width:36px;height:36px;padding:0;font-size:0}.workflow-tabs button{min-height:55px}.control-panel{min-height:360px;max-height:none;padding:22px 16px 28px}.generate-dock{padding-left:14px;padding-right:14px}.draft-toolbar{flex-direction:column;align-items:stretch;gap:0;min-height:92px;padding:0 12px}.draft-tabs{min-height:48px;overflow-x:auto}.draft-tab{flex:none;min-height:48px}.draft-actions{border-top:1px solid var(--line);justify-content:flex-end;min-height:42px}.room-floor{gap:19px;min-height:520px;padding:20px 12px 28px}.teaching-wall{grid-template-columns:auto minmax(160px,1fr) auto;gap:14px;min-width:470px}.teaching-wall strong{text-align:center}.desk-grid{grid-template-columns:repeat(var(--desk-columns), 82px);grid-template-rows:repeat(var(--desk-rows), 70px);gap:9px}.desk-slot{width:82px;height:70px}.desk-seat{padding:8px 9px}.desk-seat strong{font-size:11px}.desk-coordinate{font-size:8px}.pin-button{width:22px;height:22px;top:3px;right:3px}.draft-footer{flex-direction:column;align-items:flex-start;gap:8px;padding:11px 12px}.print-preview-workspace{min-height:540px}.print-preview-meta{padding-left:12px;padding-right:12px}.print-preview-viewport{padding:18px 12px 26px;display:block}.print-document{min-width:560px}.legend{justify-content:space-between;gap:8px;width:100%}.privacy-footer{flex-direction:column;align-items:flex-start;gap:3px;padding:9px 12px}.privacy-footer nav{flex-wrap:wrap}.seo-process,.seo-guides,.seo-faq{grid-template-columns:1fr;gap:24px}.seo-process li,.seo-guides a{grid-template-columns:1fr;gap:7px}.notice{max-width:calc(100vw - 24px);bottom:12px;right:12px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media print{:root,html,body{background:#fff!important}.app-header,.control-rail,.draft-toolbar,.draft-footer,.violation-strip,.privacy-footer,.notice,.print-preview-meta,.seo-content{display:none!important}.app-shell,.workspace,.draft-workspace{background:#fff;min-height:0;display:block}.print-preview-workspace,.print-preview-viewport{min-height:0;padding:0;display:block;overflow:visible;background:#fff!important}.print-document{aspect-ratio:auto;width:100%;min-width:0;max-width:none;min-height:0;box-shadow:none;break-inside:avoid;-webkit-print-color-adjust:exact;print-color-adjust:exact;gap:.16in;padding:0}.print-document-header{min-height:.54in;padding-bottom:.1in}.print-document-header span,.print-document-header time{font-size:8pt}.print-document-header h2{font-size:22pt}.print-document-header p{margin-top:.04in;font-size:9pt}.print-document-room{gap:.1in}.print-teaching-wall{min-width:0;min-height:.32in;padding:.04in .1in;font-size:7pt;color:#fff!important;background:var(--wall)!important}.print-desk-grid{grid-template-columns:repeat(var(--print-columns), var(--print-desk-width));grid-auto-rows:var(--print-desk-height);gap:var(--print-gap);flex:none;width:max-content;min-width:0;margin:0 auto}.print-desk{width:var(--print-desk-width);height:var(--print-desk-height);break-inside:avoid;-webkit-print-color-adjust:exact;print-color-adjust:exact;padding:.05in .07in;color:#172025!important;background:#f4f7ff!important}.print-desk>span{font-size:6pt}.print-desk strong{font-size:9pt}.print-desk.is-open,.print-desk.is-disabled{background:0 0!important}.print-document-footer{min-height:.25in;padding-top:.08in;font-size:7pt}.print-grayscale .print-teaching-wall{background:#383b39!important}.print-grayscale .print-desk,.print-grayscale .print-legend b{background:#f1f1f1!important}}
