.school-shell{--s-1:6px;--s-2:12px;--s-3:20px;--s-4:32px;--t-eyebrow:.6875rem;--t-small:.8125rem;--t-body:.9375rem;--t-title:1.0625rem;--t-page:clamp(1.5rem, 1.2rem + 1.3vw, 1.9rem);--school-radius:12px;--school-radius-sm:8px;--panel-bg:var(--bg-card);--panel-line:var(--border);--panel-line-strong:var(--border-strong);--sunken:var(--bg-subtle);background:var(--bg-primary);min-height:100vh;color:var(--text-primary);font-size:var(--t-body)}.school-shell.with-sidebar{margin-left:var(--sidebar-width)}.school-landing,.school-classes,.school-class,.school-people,.school-tools,.school-lines,.school-join,.school-welcome{max-width:1600px;padding:var(--s-3) var(--s-4) 64px;gap:var(--s-3);flex-direction:column;display:flex}.school-welcome,.school-join{max-width:620px;margin:0 auto}.prose{max-width:72ch}.school-columns{gap:var(--s-3);grid-template-columns:minmax(0,1fr);align-items:start;display:grid}@media (min-width:1250px){.school-columns{grid-template-columns:minmax(0,1fr) 360px}.school-columns.wide-aside{grid-template-columns:minmax(0,1fr) 440px}.school-aside{top:var(--s-3);gap:var(--s-3);flex-direction:column;display:flex;position:sticky}}.sidebar-school{border-bottom:1px solid var(--sidebar-border);padding-bottom:var(--space-2);flex:none;margin-bottom:4px}.school-shell h1{font-size:var(--t-page);letter-spacing:-.022em;margin:0;line-height:1.15}.school-shell h2{font-size:var(--t-title);letter-spacing:-.012em;margin:0;line-height:1.25}.school-shell h3{font-size:var(--t-body);margin:0;font-weight:650}.school-shell p{margin:0;line-height:1.55}.school-shell header>p,.class-tally,.calc-hint,.school-note,.calc-disclaimer,.submission-tally,.assignment-due,.resource-desc{color:var(--text-tertiary);font-size:var(--t-small);line-height:1.5}.welcome-eyebrow,.task-eyebrow{font-size:var(--t-eyebrow);text-transform:uppercase;letter-spacing:.08em;color:var(--text-tertiary);font-weight:700}.crumbs ol{align-items:center;gap:var(--s-1);font-size:var(--t-small);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.crumbs li{align-items:center;gap:var(--s-1);display:inline-flex}.crumbs a{color:var(--text-tertiary);text-decoration:none}.crumbs a:hover{color:var(--text-primary);text-decoration:underline}.crumbs [aria-current=page]{color:var(--text-secondary)}.crumb-sep{color:var(--text-tertiary);opacity:.5}.class-header{gap:var(--s-1);flex-direction:column;display:flex}.school-card,.calc{background:var(--panel-bg);border:1px solid var(--panel-line);border-radius:var(--school-radius);padding:var(--s-3);gap:var(--s-2);flex-direction:column;display:flex}.class-row,.staff-row,.assignment-row,.domain-row,.line-row,.resource-row,.submission-row>.submission-toggle{align-items:center;gap:var(--s-2);padding:10px var(--s-2);border:1px solid var(--panel-line);border-radius:var(--school-radius-sm);background:var(--panel-bg);transition:border-color .12s,background .12s;display:flex}.class-row:hover,.resource-row:hover,.submission-row>.submission-toggle:hover{border-color:var(--panel-line-strong);background:var(--bg-hover)}.class-list,.staff-list,.assignment-list,.domain-list,.line-list,.resource-list,.submission-list,.feed-list,.roster-problem,.gate-list{gap:var(--s-1);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.board-grid{gap:var(--s-2);grid-template-columns:repeat(auto-fill,minmax(210px,1fr));display:grid}.board-tile{gap:var(--s-2);padding:var(--s-2);border:1px solid var(--panel-line);border-radius:var(--school-radius);background:var(--panel-bg);color:var(--text-primary);flex-direction:column;text-decoration:none;transition:border-color .12s,transform .12s,box-shadow .12s;display:flex}.board-tile:hover{border-color:var(--panel-line-strong);box-shadow:var(--shadow-sm);transform:translateY(-1px)}.board-tile-plate{border-radius:var(--school-radius-sm);background:var(--sunken);border:1px solid var(--panel-line);justify-content:center;align-items:center;height:78px;font-size:30px;line-height:1;display:flex}.board-tile-title{overflow-wrap:anywhere;font-weight:600;line-height:1.3}.board-tile-note{font-size:var(--t-small);color:var(--text-tertiary);line-height:1.45}.board-tile-foot{align-items:center;gap:var(--s-1);flex-wrap:wrap;margin-top:auto;display:flex}.badge-live,.badge-draft,.badge-none,.badge-submitted,.badge-returned,.grade-chip,.feed-class,.class-level{align-items:center;gap:var(--s-1);font-size:var(--t-eyebrow);letter-spacing:.03em;text-transform:uppercase;white-space:nowrap;border:1px solid var(--panel-line);background:var(--sunken);color:var(--text-secondary);border-radius:999px;padding:2px 8px;font-weight:600;display:inline-flex}.badge-live,.badge-returned{background:var(--accent);border-color:var(--accent);color:var(--text-inverse)}.calc-ok{color:#16a34a}.calc-bad{color:#dc2626}.form-error{color:#dc2626;font-size:var(--t-small)}.form-notice{color:var(--accent);font-size:var(--t-small)}.class-code,.class-code-large code{letter-spacing:.16em;background:var(--sunken);border:1px solid var(--panel-line);border-radius:var(--school-radius-sm);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:var(--t-small);padding:3px 8px}.class-code-large{align-items:center;gap:var(--s-2);flex-wrap:wrap;display:flex}.class-code-large code{letter-spacing:.22em;padding:10px 16px;font-size:1.4rem}.class-name,.assignment-title{color:var(--text-primary);flex:1;min-width:0;font-weight:600;text-decoration:none}.class-name:hover,.assignment-title:hover{text-decoration:underline}.class-programme,.class-year,.staff-role,.domain-role,.assignment-count{font-size:var(--t-small);color:var(--text-tertiary)}.staff-name{flex:1;min-width:0}.domain-role{margin-left:auto}.school-shell label{font-size:var(--t-small);color:var(--text-secondary);font-weight:550}.school-shell input,.school-shell select,.school-shell textarea{border:1px solid var(--panel-line);border-radius:var(--school-radius-sm);background:var(--bg-primary);color:var(--text-primary);font:inherit;font-size:var(--t-body);padding:9px 11px}.school-shell textarea{resize:vertical;font-family:inherit;line-height:1.5}.school-shell input:focus-visible,.school-shell select:focus-visible,.school-shell textarea:focus-visible{outline:2px solid var(--border-focus);outline-offset:1px;border-color:#0000}.feed-composer,.assignment-form,.domain-form,.staff-grant,.grade-panel,.admin-form{gap:var(--s-1);padding:var(--s-2);border:1px solid var(--panel-line);border-radius:var(--school-radius-sm);background:var(--sunken);flex-direction:column;display:flex}.feed-composer label:not(:first-child),.assignment-form label:not(:first-child),.domain-form label:not(:first-child),.grade-panel label:not(:first-child){margin-top:var(--s-1)}.grade-check{align-items:center;gap:var(--s-1);font-weight:500;display:inline-flex}.grade-picker{border:1px solid var(--panel-line);border-radius:var(--school-radius-sm);padding:var(--s-2);align-items:center;gap:var(--s-2);flex-wrap:wrap;display:flex}.grade-picker legend{font-size:var(--t-small);color:var(--text-secondary);padding:0 4px}.feed-head{align-items:center;gap:var(--s-2);flex-wrap:wrap;display:flex}.feed-head h2{flex:1}.feed-list{gap:var(--s-2)}.feed-item{padding:var(--s-2) var(--s-3);border:1px solid var(--panel-line);border-left:3px solid var(--panel-line-strong);border-radius:var(--school-radius-sm);background:var(--panel-bg);gap:var(--s-1);flex-direction:column;display:flex}.feed-item.pinned{border-left-color:var(--accent);background:var(--sunken)}.feed-meta{align-items:center;gap:var(--s-1);font-size:var(--t-eyebrow);color:var(--text-tertiary);flex-wrap:wrap;display:flex}.feed-body,.task-brief,.assignment-brief{white-space:pre-wrap}.feed-actions{gap:var(--s-1);margin-top:var(--s-1);display:flex}.resource-link{align-items:center;gap:var(--s-2);min-width:0;color:inherit;flex:1;text-decoration:none;display:flex}.resource-icon{font-size:20px;line-height:1}.resource-desc{margin-top:2px;display:block}.class-setup,.line-group{padding:0;overflow:hidden}.setup-toggle,.line-toggle,.submission-toggle{align-items:center;gap:var(--s-2);width:100%;padding:var(--s-2) var(--s-3);background:var(--bg-secondary);color:var(--text-secondary);font:inherit;text-align:left;cursor:pointer;border:0;font-weight:600;display:flex}.setup-toggle:hover,.line-toggle:hover{background:var(--bg-hover);color:var(--text-primary)}.setup-toggle .calc-hint,.line-toggle .calc-hint{margin-left:auto}.setup-body,.line-body{padding:var(--s-3);gap:var(--s-3);border-top:1px solid var(--panel-line);flex-direction:column;display:flex}.setup-body>.school-card{background:0 0;border:0;padding:0}.submission-toggle{border-radius:var(--school-radius-sm)}.submission-score{margin-left:auto;font-weight:700}.submission-group{gap:var(--s-1);flex-direction:column;display:flex}.submission-feedback{border-top:1px solid var(--panel-line);padding-top:var(--s-2)}.class-filters{gap:var(--s-1);flex-wrap:wrap;display:flex}.class-filters input[type=search]{flex:220px}.grade-group h4{margin:0 0 var(--s-1);font-size:var(--t-eyebrow);text-transform:uppercase;letter-spacing:.07em;color:var(--text-tertiary)}.line-head{align-items:center;gap:var(--s-2);flex-wrap:wrap;width:100%;display:flex}.line-head .calc-hint{margin-left:auto}.line-row{flex-direction:column;align-items:stretch}.grade-chips{align-items:center;gap:var(--s-1);flex-wrap:wrap;display:flex}.grade-chip{text-transform:none;letter-spacing:0}.grade-chip button{color:var(--text-tertiary);cursor:pointer;background:0 0;border:0;padding:0 0 0 2px;font-size:14px;line-height:1}.grade-chip button:hover{color:#dc2626}.grade-add{gap:var(--s-1);display:inline-flex}.grade-add input{width:108px}.calc-stack{gap:var(--s-3);flex-direction:column;display:flex}.calc-grid{gap:var(--s-2);grid-template-columns:repeat(auto-fit,minmax(148px,1fr));display:grid}.calc-field{flex-direction:column;gap:4px;display:flex}.calc-unit{color:var(--text-tertiary);font-weight:400}.calc-result{gap:var(--s-2);padding:var(--s-2);background:var(--sunken);border-radius:var(--school-radius-sm);grid-template-columns:repeat(auto-fit,minmax(104px,1fr));margin:0;display:grid}.calc-result dt{font-size:var(--t-eyebrow);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.06em}.calc-result dd{font-variant-numeric:tabular-nums;margin:0;font-weight:700}.gate-row{align-items:center;gap:var(--s-1);padding:var(--s-1);border:1px solid var(--panel-line);border-radius:var(--school-radius-sm);flex-wrap:wrap;display:flex}.truth-table,.roster-passwords table{border-collapse:collapse;font-variant-numeric:tabular-nums;font-size:var(--t-small)}.truth-table th,.truth-table td,.roster-passwords th,.roster-passwords td{border:1px solid var(--panel-line);text-align:center;padding:5px 12px}.roster-passwords th,.roster-passwords td{text-align:left}.truth-table th,.truth-out{background:var(--sunken)}.truth-out{font-weight:700}.truth-table code,.roster-passwords code{font-family:ui-monospace,Menlo,monospace}.domain-warning,.domain-lockout{padding:var(--s-2);border:1px solid var(--panel-line-strong);border-left:3px solid var(--accent);border-radius:var(--school-radius-sm);background:var(--sunken);font-size:var(--t-small);gap:var(--s-1);flex-direction:column;display:flex}.roster-passwords{gap:var(--s-2);flex-direction:column;display:flex}.roster-problem li{font-size:var(--t-small);color:var(--text-secondary)}.school-links{gap:var(--s-2);flex-wrap:wrap;display:flex}.task-panel{z-index:40;background:var(--bg-card);border:1px solid var(--border);width:min(324px,100vw - 32px);max-height:calc(100vh - 100px);box-shadow:var(--shadow-lg);border-radius:12px;flex-direction:column;font-size:.9375rem;display:flex;position:fixed;top:72px;right:16px;overflow-y:auto}.task-panel.collapsed{width:auto}.task-toggle{color:var(--text-secondary);font:inherit;cursor:pointer;text-align:left;background:0 0;border:0;align-items:center;gap:10px;padding:10px 14px;display:flex}.task-toggle:hover{color:var(--text-primary)}.task-toggle .task-eyebrow{flex:1}.task-body{border-top:1px solid var(--border);flex-direction:column;gap:10px;padding:14px 16px 16px;display:flex}.task-body h2{margin:0;font-size:1.0625rem;line-height:1.25}.task-body h3{margin:0;font-size:.8125rem}.task-meta{color:var(--text-tertiary);flex-wrap:wrap;align-items:center;gap:8px;font-size:.6875rem;display:flex}.task-brief{font-size:.8125rem;line-height:1.5}.task-marked{background:var(--bg-subtle);border:1px solid var(--border);border-radius:8px;flex-direction:column;gap:6px;padding:10px 12px;display:flex}.task-marked .submission-score{margin:0;font-size:1.25rem}.sidebar-school{border-bottom:1px solid var(--sidebar-border);flex:none;margin-bottom:4px;padding-bottom:0}.sidebar-school .sidebar-item{font-weight:600}.school-shell a:focus-visible,.school-shell button:focus-visible,.board-tile:focus-visible,.task-panel button:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px;border-radius:var(--school-radius-sm)}@media (prefers-reduced-motion:reduce){.school-shell *,.task-panel *{transition:none!important}.board-tile:hover{transform:none}}@media (max-width:900px){.school-shell.with-sidebar{margin-left:0}}@media (max-width:640px){.school-shell{--s-3:16px;--s-4:16px}.board-grid{grid-template-columns:repeat(auto-fill,minmax(148px,1fr))}.calc-grid,.calc-result{grid-template-columns:1fr}.class-row,.staff-row,.assignment-row,.domain-row,.resource-row,.line-head{flex-direction:column;align-items:flex-start}.domain-role,.line-head .calc-hint,.submission-score{margin-left:0}.truth-table,.roster-passwords table{display:block;overflow-x:auto}.class-filters{flex-direction:column}.class-filters input[type=search]{flex:none}.grade-picker{flex-direction:column;align-items:flex-start}.feed-head .btn,.school-links .btn{width:100%}.school-shell input,.school-shell select,.school-shell textarea{width:100%;font-size:16px}.task-panel{border-radius:12px 12px 0 0;width:auto;max-height:58vh;inset:auto 0 0}}.school-col{gap:var(--s-3);flex-direction:column;display:flex}.school-aside .board-grid{grid-template-columns:minmax(0,1fr)}.class-list.dense{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));display:grid}.class-list.dense .class-row{padding:9px var(--s-2)}.calc-board{gap:var(--s-3);grid-template-columns:minmax(0,1fr);align-items:start;display:grid}.calc-column{gap:var(--s-3);flex-direction:column;display:flex}@media (min-width:1000px){.calc-board{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr)}}.school-summary{gap:var(--s-2);grid-template-columns:repeat(auto-fit,minmax(200px,1fr));display:grid}.stat{padding:var(--s-3);border:1px solid var(--panel-line);border-radius:var(--school-radius);background:var(--panel-bg);flex-direction:column;gap:2px;display:flex}.stat-figure{letter-spacing:-.03em;font-variant-numeric:tabular-nums;font-size:2rem;font-weight:700;line-height:1}.stat-label{font-size:var(--t-small);color:var(--text-tertiary)}.stat-action{justify-content:space-between;gap:var(--s-2)}.line-list.grid{gap:var(--s-2);grid-template-columns:repeat(auto-fill,minmax(320px,1fr));display:grid}.queue-list{gap:var(--s-1);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.queue-row{align-items:center;gap:var(--s-2);padding:10px var(--s-2);border:1px solid var(--panel-line);border-radius:var(--school-radius-sm);background:var(--panel-bg);transition:border-color .12s,background .12s;display:flex}.queue-row:hover{border-color:var(--panel-line-strong);background:var(--bg-hover)}.queue-who{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.queue-who a{color:inherit;text-decoration:none}.queue-who a:hover{text-decoration:underline}.queue-who .calc-hint{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.queue-when{white-space:nowrap}.queue-progress{align-items:center;gap:var(--s-1);white-space:nowrap;display:flex}.progress-track{background:var(--sunken);border:1px solid var(--panel-line);border-radius:999px;width:76px;height:5px;display:inline-block;overflow:hidden}.progress-fill{background:var(--accent);height:100%;display:block}@media (max-width:720px){.queue-row{flex-direction:column;align-items:stretch}.queue-progress{justify-content:space-between}.queue-row .btn{width:100%}}
