@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.hidden{display:none}.h-full{height:100%}.min-h-full{min-height:100%}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}}:root{--background:#f7f8f3;--surface:#fff;--surface-subtle:#f0f4ed;--foreground:#17231c;--heading:#0d2a1e;--muted:#5b675e;--border:#dbe3d8;--forest:#163d2d;--forest-strong:#0d2a1e;--emerald:#0f8a5f;--emerald-ink:#075f43;--emerald-soft:#e1f5ec;--amber:#c48618;--amber-ink:#5f3b00;--amber-soft:#fff4d6;--danger:#a33434;--danger-ink:#8a2424;--danger-soft:#fde6e6;--brand-ink:#163d2d;--shadow:0 14px 36px #163d2d1a;--shadow-soft:0 8px 22px #163d2d14;--ring:0 0 0 4px #2ac38633}@media (prefers-color-scheme:dark){:root{--background:#0d120f;--surface:#141b16;--surface-subtle:#1c261f;--foreground:#edf5ef;--heading:#edf5ef;--muted:#a7b4aa;--border:#2c3a31;--forest:#1f5a40;--forest-strong:#143827;--emerald:#2ac386;--emerald-ink:#8fe8bd;--emerald-soft:#143827;--amber:#e0aa35;--amber-ink:#ffd275;--amber-soft:#3a2d12;--danger:#ff8a8a;--danger-ink:#ffb1b1;--danger-soft:#3a1d1d;--brand-ink:#8fcdaa;--shadow:0 14px 36px #00000052;--shadow-soft:0 8px 22px #00000042;--ring:0 0 0 4px #2ac38647}}*{box-sizing:border-box}html{background:var(--background)}body{background:var(--background);min-height:100vh;color:var(--foreground);margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer;-webkit-tap-highlight-color:transparent}button:disabled{cursor:not-allowed;opacity:.65}input,select,textarea{border:1px solid var(--border);background:var(--surface);width:100%;min-width:0;max-width:100%;min-height:44px;color:var(--foreground);border-radius:8px;outline:none;padding:9px 11px}textarea{resize:vertical}input:focus,select:focus,textarea:focus{border-color:var(--emerald);box-shadow:0 0 0 3px #0f8a5f2e}table{border-collapse:collapse;width:100%}th,td{border-bottom:1px solid var(--border);text-align:left;vertical-align:middle;padding:12px 10px}th{color:var(--muted);letter-spacing:0;text-transform:uppercase;font-size:.76rem;font-weight:700}td{font-size:.9rem}code{background:var(--surface-subtle);color:var(--brand-ink);overflow-wrap:anywhere;border-radius:6px;padding:3px 6px;font-size:.8rem}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.login-shell{background:linear-gradient(180deg, #163d2d00 0%, #163d2d14 100%), var(--background);place-items:center;min-height:100vh;padding:24px;display:grid}.login-panel{border:1px solid var(--border);background:var(--surface);width:min(100%,420px);box-shadow:var(--shadow);border-radius:8px;padding:28px}.brand-lockup,.sidebar-brand{align-items:center;gap:12px;display:flex}.brand-lockup h1,.portal-header h1{color:var(--heading);letter-spacing:0;margin:0;font-size:1.7rem;font-weight:760}.eyebrow{color:var(--brand-ink);letter-spacing:0;text-transform:uppercase;margin:0 0 4px;font-size:.76rem;font-weight:800}.login-form,.stack-form{gap:14px;display:grid}.login-form{margin-top:28px}.field,.login-form label{min-width:0;color:var(--muted);gap:6px;font-size:.82rem;font-weight:700;display:grid}.login-form small{color:var(--muted);font-size:.76rem;font-weight:620;line-height:1.35}.form-error{background:var(--danger-soft);color:var(--danger-ink);border:1px solid #a334344d;border-radius:8px;margin:0;padding:10px 12px;font-size:.86rem}.legal-footer{color:var(--muted);flex-wrap:wrap;align-items:center;gap:4px 10px;margin-top:20px;font-size:.76rem;line-height:1.35;display:flex}.legal-footer span{flex:1 0 100%;font-weight:740}.legal-footer a,.legal-nav a{min-width:44px;min-height:44px;color:var(--brand-ink);justify-content:center;align-items:center;font-weight:800;text-decoration:none;display:inline-flex}.legal-footer a:hover,.legal-nav a:hover{color:var(--emerald-ink)}.legal-footer.sidebar{border-top:1px solid var(--border);margin-top:0;padding-top:12px}.legal-footer.sidebar a{min-height:44px}.legal-shell{background:linear-gradient(180deg, #163d2d00 0%, #163d2d14 100%), var(--background);place-items:start center;min-height:100vh;padding:28px;display:grid}.legal-panel{border:1px solid var(--border);background:var(--surface);width:min(100%,840px);box-shadow:var(--shadow);border-radius:8px;padding:28px}.legal-panel h1,.legal-panel h2,.legal-panel p{margin:0}.legal-panel h1{color:var(--heading);letter-spacing:0;font-size:clamp(2rem,4vw,3.1rem);line-height:1.05}.legal-panel h2{color:var(--heading);letter-spacing:0;margin-top:24px;font-size:1.08rem;font-weight:820}.legal-panel p{color:var(--muted);margin-top:10px;font-size:.98rem;line-height:1.65}.legal-panel a{color:var(--brand-ink);font-weight:800}.legal-nav{border-top:1px solid var(--border);flex-wrap:wrap;gap:10px 18px;margin-top:24px;padding-top:14px;display:flex}.primary-action,.icon-button,.nav-item,.row-button,.soft-chip,.copy-invite-button,.filter-chip,.grade-button,.row-action-button,.snapshot-button{border:0;border-radius:8px;transition:background .14s,border-color .14s,color .14s,box-shadow .14s,transform .14s}.primary-action:active,.icon-button:active,.nav-item:active,.row-button:active,.soft-chip:active,.copy-invite-button:active,.filter-chip:active,.grade-button:active,.row-action-button:active,.snapshot-button:active{transform:scale(.98)}.icon-button:focus-visible,.nav-item:focus-visible,.row-button:focus-visible,.soft-chip:focus-visible,.copy-invite-button:focus-visible,.filter-chip:focus-visible,.grade-button:focus-visible,.row-action-button:focus-visible,.snapshot-button:focus-visible{outline-offset:3px;box-shadow:var(--ring);outline:3px solid #2ac386b3}.primary-action{background:var(--forest);color:#fffdf6;justify-content:center;align-items:center;gap:8px;min-height:44px;padding:0 14px;font-weight:760;text-decoration:none;display:inline-flex;box-shadow:0 8px 18px #0d2a1e2e}.primary-action:hover{background:var(--forest-strong);transform:translateY(-1px)}.primary-action svg,.primary-action span{color:inherit;opacity:1}.primary-action:focus{outline:none}.primary-action:focus:not(:focus-visible){box-shadow:0 8px 18px #0d2a1e2e}.primary-action:focus-visible{outline-offset:3px;outline:3px solid #2ac386b8;box-shadow:0 0 0 5px #2ac3862e,0 8px 18px #0d2a1e2e}.primary-action.secondary{background:var(--surface);color:var(--brand-ink);box-shadow:none;border:1px solid #0f8a5f3d}.primary-action.secondary:hover{background:var(--emerald-soft)}.portal-shell{grid-template-columns:264px minmax(0,1fr);min-height:100vh;display:grid}.portal-sidebar{border-right:1px solid var(--border);background:var(--surface);flex-direction:column;align-self:start;gap:18px;height:100vh;min-height:100vh;max-height:100vh;padding:20px;display:flex;position:sticky;top:0;overflow-y:auto}.sidebar-brand{border-bottom:1px solid var(--border);padding:4px 2px 14px}.sidebar-brand span{color:var(--heading);font-weight:800;display:block}.sidebar-brand small,.header-meta small,.row-button small{color:var(--muted);margin-top:2px;font-size:.76rem;display:block}.portal-nav{gap:8px;display:grid}.nav-item{min-height:44px;color:var(--muted);text-align:left;background:0 0;align-items:center;gap:10px;padding:0 12px;font-weight:740;display:flex}.nav-item:hover{background:var(--surface-subtle);color:var(--foreground);transform:translate(1px)}.nav-item.active{background:var(--forest-strong);color:#fffdf6;box-shadow:inset 0 0 0 1px #fffdf62e}.nav-item.active:hover{background:var(--forest-strong);color:#fffdf6}.nav-item.logout{color:var(--danger-ink);margin-top:auto}.portal-main{min-width:0;padding:28px}.portal-header{justify-content:space-between;align-items:center;gap:16px;margin-bottom:18px;display:flex}.header-meta{text-align:right;align-items:center;gap:12px;display:flex}.header-meta span{font-weight:800;display:block}.icon-button{width:44px;border:1px solid var(--border);background:var(--surface);inline-size:44px;min-inline-size:44px;height:44px;block-size:44px;min-block-size:44px;color:var(--brand-ink);flex:0 0 44px;justify-content:center;align-items:center;display:inline-flex}.icon-button:hover{background:var(--surface-subtle);transform:translateY(-1px)}.icon-button.danger{color:var(--danger-ink)}.status-banner{background:var(--emerald-soft);min-height:48px;color:var(--brand-ink);overflow-wrap:anywhere;box-shadow:var(--shadow-soft);border:1px solid #0f8a5f47;border-radius:8px;align-items:center;gap:8px;margin:0 0 18px;padding:10px 12px;font-weight:720;animation:.22s cubic-bezier(.2,.8,.2,1) receipt-in;display:flex}.status-banner svg{flex:none}.status-banner.success{background:var(--emerald-soft);color:var(--brand-ink);border-color:#0f8a5f47}.status-banner.error{background:var(--danger-soft);color:var(--danger-ink);border-color:#a334344d}.workspace{gap:18px;display:grid}.ops-snapshot{gap:12px;margin-bottom:18px;display:grid}.ops-hero{background:linear-gradient(135deg, #0f8a5f1f, #c4861817), var(--surface);box-shadow:var(--shadow);border:1px solid #0f8a5f3d;border-radius:8px;justify-content:space-between;align-items:center;gap:16px;padding:16px;display:flex}.ops-hero h2,.grading-command h2{color:var(--heading);letter-spacing:0;margin:0;font-size:1.12rem;font-weight:820}.ops-hero>div>span,.grading-command-main span{color:var(--muted);margin-top:4px;font-size:.9rem;line-height:1.45;display:block}.ops-metrics{grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;display:grid}.snapshot-button{border:1px solid var(--border);background:var(--surface);min-width:0;min-height:92px;color:var(--foreground);text-align:left;border-radius:8px;align-items:flex-start;gap:10px;padding:12px;transition:border-color .14s,background .14s,transform .14s;display:flex}.snapshot-button:hover,.grading-command:hover{border-color:#0f8a5f6b;transform:translateY(-1px)}.snapshot-button svg{flex:none;margin-top:2px}.snapshot-button strong,.snapshot-button small,.snapshot-button em{overflow-wrap:anywhere;font-style:normal;display:block}.snapshot-button strong{color:var(--heading);font-size:1.35rem;line-height:1}.snapshot-button small{margin-top:4px;font-size:.78rem;font-weight:840}.snapshot-button em{color:var(--muted);margin-top:2px;font-size:.74rem;line-height:1.25}.snapshot-button.forest svg,.snapshot-button.forest small{color:var(--brand-ink)}.snapshot-button.emerald svg,.snapshot-button.emerald small{color:var(--emerald-ink)}.snapshot-button.amber svg,.snapshot-button.amber small{color:var(--amber-ink)}.setup-summary{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));align-items:stretch;gap:10px;display:grid}.setup-metric,.setup-next{border:1px solid var(--border);background:var(--surface);border-radius:8px;min-width:0;padding:12px;transition:border-color .14s,box-shadow .14s,transform .14s}.setup-metric:hover,.setup-next:hover{box-shadow:var(--shadow-soft);border-color:#0f8a5f47;transform:translateY(-1px)}.setup-metric{gap:2px;display:grid}.setup-metric strong{color:var(--brand-ink);font-size:1.25rem;line-height:1}.setup-metric span,.setup-next span{color:var(--muted);font-size:.78rem;line-height:1.35}.setup-next{grid-column:span 2;gap:3px;display:grid}.setup-next strong{color:var(--heading);overflow-wrap:anywhere;font-size:.9rem}.workspace-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;display:grid}.roster-grid{grid-template-columns:minmax(260px,1fr) minmax(260px,.8fr)}.invite-helper{background:linear-gradient(135deg, var(--surface), var(--emerald-soft));box-shadow:var(--shadow-soft);border:1px solid #0f8a5f38;border-radius:8px;grid-template-columns:minmax(260px,.9fr) minmax(320px,1.1fr);align-items:center;gap:16px;padding:18px;display:grid}.invite-helper h2{color:var(--heading);letter-spacing:0;margin:0;font-size:1.05rem;font-weight:840}.invite-helper span,.invite-helper li{color:var(--muted);font-size:.86rem;line-height:1.45}.invite-helper ol{gap:8px;margin:0;padding-left:20px;display:grid}.calendar-grid{grid-template-columns:minmax(280px,.8fr) minmax(360px,1.2fr)}.grading-grid{grid-template-columns:minmax(520px,1.2fr) minmax(340px,.8fr)}.panel{border:1px solid var(--border);background:var(--surface);min-width:0;box-shadow:var(--shadow);border-radius:8px;padding:18px;transition:border-color .14s,box-shadow .14s}.panel:hover{box-shadow:var(--shadow-soft);border-color:#0f8a5f3d}.panel-header{color:var(--brand-ink);align-items:center;gap:8px;margin-bottom:14px;display:flex}.panel-header h2{color:var(--foreground);letter-spacing:0;margin:0;font-size:1rem;font-weight:800}.panel-header p{color:var(--muted);margin:2px 0 0;font-size:.78rem;line-height:1.25}.two-column{grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:12px;display:grid}.check-row{min-height:44px;color:var(--foreground);align-items:center;gap:8px;font-size:.9rem;font-weight:720;display:flex}.check-row input[type=checkbox]{appearance:none;width:44px;min-width:44px;height:44px;min-height:44px;block-size:44px;inline-size:44px;flex:0 0 44px;place-content:center;max-width:44px;padding:0;display:grid}.check-row input[type=checkbox]:before{content:"";transform-origin:50%;clip-path:polygon(14% 44%,0 58%,38% 96%,100% 20%,84% 6%,36% 64%);background:#fff;width:16px;height:16px;transition:transform .12s;transform:scale(0)}.check-row input[type=checkbox]:checked{border-color:var(--forest);background:var(--forest)}.check-row input[type=checkbox]:checked:before{transform:scale(1)}.table-wrap{overflow-x:auto}.table-actions{width:44px}.access-code-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.access-code-row code{border:1px solid var(--border);background:var(--surface-subtle);min-height:36px;color:var(--heading);overflow-wrap:anywhere;border-radius:8px;align-items:center;padding:6px 9px;font-size:.82rem;display:inline-flex}.copy-invite-button{background:var(--surface);min-height:44px;color:var(--brand-ink);border:1px solid #0f8a5f3d;border-radius:8px;justify-content:center;align-items:center;gap:7px;padding:0 11px;font-size:.78rem;font-weight:800;display:inline-flex}.copy-invite-button:hover{background:var(--emerald-soft);transform:translateY(-1px)}.chip-list,.list-stack{gap:8px;display:grid}.empty-state{border:1px dashed var(--border);background:var(--surface-subtle);min-height:84px;color:var(--muted);border-radius:8px;align-content:center;gap:4px;padding:12px;font-size:.84rem;line-height:1.4;display:grid}.empty-state strong{color:var(--foreground);font-size:.9rem}.chip-list{margin-top:14px}.grading-note-bar{margin-bottom:14px}.quick-filters{flex-wrap:wrap;gap:8px;margin-bottom:14px;display:flex}.filter-chip{border:1px solid var(--border);background:var(--surface);min-width:44px;height:44px;min-height:44px;color:var(--foreground);border-radius:8px;justify-content:center;align-items:center;gap:7px;padding:0 12px;font-size:.78rem;font-weight:820;display:inline-flex}.filter-chip:hover{background:var(--surface-subtle);border-color:#0f8a5f73;transform:translateY(-1px)}.filter-chip.pass,.filter-chip.fail,.filter-chip.note{justify-content:flex-start}.filter-chip.pass:before,.filter-chip.fail:before,.filter-chip.note:before{content:"";background:currentColor;border-radius:999px;flex:0 0 7px;width:7px;height:7px}.filter-chip.pass:not(.active){color:var(--emerald-ink);border-color:#04785752}.filter-chip.fail:not(.active){color:var(--danger-ink);border-color:#9f123952}.filter-chip.note:not(.active){color:var(--amber-ink);border-color:#92400e57}.filter-chip.active{border-color:var(--forest);background:var(--forest);color:#fffdf6;box-shadow:inset 0 0 0 1px #fffdf62e}.filter-chip.active.pass{border-color:var(--emerald-ink);background:var(--emerald-ink)}.filter-chip.active.fail{border-color:var(--danger-ink);background:var(--danger-ink)}.filter-chip.active.note{border-color:var(--amber-ink);background:var(--amber-ink)}.grading-command{border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow);border-radius:8px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding:16px;transition:border-color .14s,transform .14s;display:grid}.portal-command{background:linear-gradient(135deg, #0f8a5f1a, #c4861814), var(--surface);box-shadow:var(--shadow);border:1px solid #0f8a5f3d;border-radius:8px;grid-template-columns:minmax(220px,.9fr) minmax(420px,1.25fr) auto;align-items:center;gap:14px;padding:16px;transition:border-color .14s,box-shadow .14s;display:grid}.portal-command:hover{box-shadow:var(--shadow-soft);border-color:#0f8a5f6b}.portal-command-main{min-width:0}.portal-command h2{color:var(--heading);letter-spacing:0;margin:0;font-size:1.12rem;font-weight:820}.portal-command-main span{color:var(--muted);overflow-wrap:anywhere;margin-top:4px;font-size:.9rem;line-height:1.45;display:block}.command-metrics{grid-template-columns:repeat(auto-fit,minmax(104px,1fr));gap:8px;min-width:0;display:grid}.command-metric{border:1px solid var(--border);background:var(--surface);border-radius:8px;min-width:0;padding:9px 10px}.command-metric.zero{background:var(--surface-subtle);opacity:.7}.command-metric strong,.command-metric span{text-overflow:clip;white-space:normal;display:block;overflow:visible}.command-metric strong{color:var(--brand-ink);overflow-wrap:anywhere;font-size:1.02rem;line-height:1.1}.command-metric span{color:var(--muted);text-transform:uppercase;margin-top:3px;font-size:.68rem;font-weight:820;line-height:1.14}.command-metric.emerald strong{color:var(--emerald-ink)}.command-metric.amber strong{color:var(--amber-ink)}.command-metric.zero strong{color:var(--muted)}.command-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.grading-command-main{min-width:0}.grading-command-actions{grid-template-columns:repeat(3,76px);gap:8px;display:grid}.grading-command-chips{grid-column:1/-1;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.progress-summary{min-width:0}.progress-track{background:var(--surface-subtle);border-radius:999px;height:8px;margin-top:6px;overflow:hidden}.progress-label{color:var(--muted);justify-content:space-between;align-items:center;gap:10px;margin-top:12px;font-size:.74rem;font-weight:780;display:flex}.progress-label strong{color:var(--emerald-ink);font-weight:860}.progress-track span{border-radius:inherit;background:linear-gradient(90deg, var(--forest), var(--emerald));max-width:100%;height:100%;transition:width .18s;display:block}.grading-list,.record-stream{gap:10px;display:grid}.grading-row{border:1px solid var(--border);background:var(--surface);border-radius:8px;grid-template-columns:minmax(160px,1fr) auto auto;align-items:center;gap:10px;padding:12px;transition:background .14s,border-color .14s,box-shadow .14s,transform .14s;display:grid}.grading-row:hover,.record-row:hover,.booking-link-row:hover,.booking-sync-row:hover{box-shadow:var(--shadow-soft);border-color:#0f8a5f47;transform:translateY(-1px)}.grading-row.just-saved{background:linear-gradient(90deg, #0f8a5f14, #0f8a5f00 42%), var(--surface);box-shadow:var(--shadow-soft);border-color:#0f8a5f75}.grading-person strong,.record-row strong{overflow-wrap:anywhere;font-size:.92rem;font-weight:820;display:block}.grading-person small,.record-row small{color:var(--muted);overflow-wrap:anywhere;margin-top:3px;font-size:.76rem;line-height:1.35;display:block}.grading-actions{grid-template-columns:repeat(3,76px);gap:6px;display:grid}.grade-button{border:1px solid var(--border);background:var(--surface);min-height:44px;color:var(--foreground);border-radius:8px;font-size:.78rem;font-weight:820;transition:background .14s,border-color .14s,box-shadow .14s,transform .14s}.grade-button.pass{border-color:var(--emerald-ink);background:var(--emerald-soft);color:var(--emerald-ink)}.grade-button.fail{border-color:var(--danger-ink);background:var(--danger-soft);color:var(--danger-ink)}.grade-button.note{border-color:var(--amber-ink);background:var(--amber-soft);color:var(--amber-ink)}.grade-button:hover{box-shadow:var(--shadow-soft);border-color:currentColor;transform:translateY(-1px)}.grade-button:disabled:hover,.soft-chip:disabled:hover{box-shadow:none;transform:none}.grading-meta{justify-items:end;gap:6px;width:min(100%,150px);min-width:0;display:grid}.grading-meta .badge{overflow-wrap:anywhere;text-align:center;white-space:normal;max-width:100%;height:auto;min-height:28px;padding-block:4px;line-height:1.15}.latency{min-width:52px;color:var(--emerald-ink);text-align:right;font-size:.76rem;font-weight:820}.latency.saved{background:var(--emerald-soft);border-radius:999px;align-items:center;min-height:26px;padding:0 9px;display:inline-flex}.grading-chip-row{grid-column:1/-1;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.soft-chip.compact{min-height:44px;font-size:.78rem;font-weight:740}.record-row{border:1px solid var(--border);background:var(--surface);border-radius:8px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px;transition:border-color .14s,box-shadow .14s,transform .14s;display:grid}.record-section-label{color:var(--brand-ink);text-transform:uppercase;margin:4px 0 0;font-size:.76rem;font-weight:840}.record-ok,.record-muted{font-size:.74rem;font-weight:820}.record-ok{color:var(--emerald-ink)}.record-muted{color:var(--muted)}.soft-chip{border:1px solid var(--border);background:var(--surface-subtle);width:100%;min-height:44px;color:var(--foreground);text-align:left;overflow-wrap:anywhere;padding:8px 10px}.row-button{border:1px solid var(--border);background:var(--surface);width:100%;min-height:58px;color:var(--foreground);text-align:left;justify-content:space-between;align-items:center;gap:12px;min-width:0;padding:10px 12px;display:flex}.row-button:hover,.soft-chip:hover{background:var(--surface-subtle);border-color:#0f8a5f73;transform:translateY(-1px)}.row-button-static{cursor:default}.row-button-static:hover{border-color:var(--border);background:var(--surface);box-shadow:none;transform:none}.row-button strong{overflow-wrap:anywhere;font-size:.9rem;font-weight:800;display:block}.row-button small{overflow-wrap:anywhere}.row-button .row-subline{flex-wrap:wrap;align-items:center;gap:5px;line-height:1.35;display:flex}.program-row,.class-session-row{min-height:82px}.row-preview{color:var(--muted);overflow-wrap:anywhere;margin-top:5px;font-size:.76rem;font-style:normal;line-height:1.35;display:block}.row-action-button{border:1px solid var(--border);background:var(--surface);min-width:116px;height:44px;min-height:44px;color:var(--brand-ink);border-radius:8px;justify-content:center;align-items:center;gap:7px;padding:0 12px;font-size:.78rem;font-weight:820;display:inline-flex}.row-action-button:hover{background:var(--emerald-soft);border-color:#0f8a5f73}.form-help{color:var(--muted);margin:0;font-size:.82rem;line-height:1.45}.calendar-grid>.panel:first-child,.feedback-grid>.panel:first-child{order:3}.feedback-grid>.panel:nth-child(2){order:1}.calendar-grid>.panel:nth-child(2){order:2}.calendar-grid>.panel:nth-child(3){order:1;grid-row:span 2}.meeting-pill{background:var(--emerald-soft);min-height:22px;color:var(--emerald-ink);border-radius:999px;align-items:center;padding:0 8px;font-size:.72rem;font-weight:820;display:inline-flex}.event-row{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;display:grid}.badge{border:1px solid var(--border);background:var(--surface-subtle);min-height:26px;color:var(--muted);border-radius:999px;justify-content:center;align-items:center;padding:0 9px;font-size:.74rem;font-weight:800;display:inline-flex}.badge.pass,.badge.live,.badge.class,.badge.booking,.badge.created,.badge.rescheduled{border-color:var(--emerald-ink);background:var(--emerald-soft);color:var(--emerald-ink)}.badge.fail,.badge.break,.badge.cancelled{border-color:var(--danger-ink);background:var(--danger-soft);color:var(--danger-ink)}.badge.note,.badge.event,.badge.holiday{border-color:var(--amber-ink);background:var(--amber-soft);color:var(--amber-ink)}.badge.upcoming{border-color:var(--emerald-ink);background:var(--emerald-soft);color:var(--emerald-ink)}.badge.completed,.badge.muted{background:var(--surface-subtle);color:var(--muted)}.booking-link-list,.booking-sync-list{gap:10px;margin-top:14px;display:grid}.booking-link-row,.booking-sync-row{border:1px solid var(--border);background:var(--surface-subtle);border-radius:8px;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:10px;min-height:58px;padding:10px;transition:border-color .14s,box-shadow .14s,transform .14s;display:grid}.booking-link-row div,.booking-sync-row div{gap:3px;min-width:0;display:grid}.booking-link-row strong,.booking-sync-row strong{color:var(--foreground);text-overflow:ellipsis;white-space:nowrap;font-size:.9rem;font-weight:820;overflow:hidden}.booking-link-row small,.booking-link-row span:not(.badge):not(.sr-only),.booking-sync-row small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:.76rem;line-height:1.35;overflow:hidden}.booking-sync-list h3{color:var(--foreground);margin:4px 0 0;font-size:.9rem;font-weight:820}.booking-sync-row{grid-template-columns:auto minmax(0,1fr)}.portal-loading{min-height:100vh;color:var(--brand-ink);place-items:center;padding:24px;display:grid}.loading-card{border:1px solid var(--border);background:var(--surface);width:min(100%,360px);box-shadow:var(--shadow);text-align:center;border-radius:8px;justify-items:center;gap:8px;padding:24px;display:grid}.loading-card svg{animation:.9s linear infinite spin}.loading-card strong{color:var(--heading);font-size:1rem}.loading-card span{color:var(--muted);font-size:.86rem;line-height:1.45}.portal-retry-state{background:var(--danger-soft);color:var(--danger-ink);border:1px solid #a3343438;border-radius:8px;grid-template-columns:44px minmax(0,1fr) auto;align-items:center;gap:14px;padding:16px;display:grid}.portal-retry-state svg{justify-self:center}.portal-retry-state strong,.portal-retry-state span{display:block}.portal-retry-state strong{color:var(--heading);font-size:1rem}.portal-retry-state span{color:var(--muted);margin-top:3px;font-size:.88rem;line-height:1.45}.portal-retry-state .primary-action span{color:inherit;font-size:inherit;line-height:inherit;margin-top:0}@keyframes spin{to{transform:rotate(360deg)}}@keyframes receipt-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.status-banner,.loading-card svg,.progress-track span,.primary-action,.icon-button,.nav-item,.row-button,.row-action-button,.soft-chip,.copy-invite-button,.filter-chip,.grade-button,.snapshot-button,.setup-metric,.setup-next,.panel,.portal-command,.grading-command,.grading-row,.record-row,.booking-link-row,.booking-sync-row{transition:none;animation:none}}@media (max-width:980px){.portal-shell{grid-template-columns:1fr}.portal-sidebar{border-right:0;border-bottom:1px solid var(--border);grid-template-columns:minmax(0,1fr) 44px;align-self:stretch;align-items:center;gap:12px;height:auto;min-height:auto;max-height:none;display:grid;position:static;overflow-y:visible}.sidebar-brand{border-bottom:0;min-width:0;padding:0}.sidebar-brand div{min-width:0}.sidebar-brand span,.sidebar-brand small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.portal-nav{grid-column:1/-1;grid-template-columns:repeat(5,minmax(0,1fr))}.nav-item{justify-content:center}.nav-item span{display:none}.nav-item.logout{grid-area:1/2;width:44px;min-height:44px;margin-top:0;padding:0}.legal-footer.sidebar{grid-column:1/-1}.workspace-grid,.roster-grid,.calendar-grid,.grading-grid,.setup-summary,.portal-command{grid-template-columns:1fr}.ops-metrics,.command-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.command-actions{justify-content:stretch}.command-actions .primary-action{flex:160px}.portal-retry-state{grid-template-columns:44px minmax(0,1fr)}.portal-retry-state .primary-action{grid-column:1/-1}.setup-next{grid-column:auto}.invite-helper{grid-template-columns:1fr}.grading-row{grid-template-columns:minmax(0,1fr)}.grading-actions,.grading-chip-row,.grading-command-actions,.grading-command-chips{grid-template-columns:repeat(3,minmax(0,1fr))}.grading-meta{grid-template-columns:auto auto;justify-content:space-between;justify-items:start;width:100%}.roster-table,.roster-table thead,.roster-table tbody,.roster-table tr,.roster-table td{display:block}.roster-table thead{clip:rect(0, 0, 0, 0);width:1px;height:1px;position:absolute;overflow:hidden}.roster-table tr{border:1px solid var(--border);background:var(--surface);border-radius:8px;padding:10px 12px}.roster-table tr+tr{margin-top:10px}.roster-table td{overflow-wrap:anywhere;border-bottom:0;grid-template-columns:104px minmax(0,1fr);align-items:center;gap:12px;padding:8px 0;display:grid}.roster-table td:before{content:attr(data-label);color:var(--muted);text-transform:uppercase;font-size:.74rem;font-weight:800}.roster-table .table-actions{justify-content:flex-end;width:100%;padding-top:10px;display:flex}.roster-table .table-actions:before{content:""}.table-wrap{overflow-x:visible}.ops-hero,.grading-command{grid-template-columns:1fr;align-items:stretch}.ops-hero{flex-direction:column}}@media (max-width:620px){.portal-main,.portal-sidebar,.legal-shell{padding:16px}.legal-panel{padding:20px}.portal-header{flex-direction:column;align-items:flex-start}.header-meta{text-align:left;justify-content:space-between;width:100%}.two-column{grid-template-columns:1fr}th,td{padding:10px 8px}.panel{padding:14px}.roster-table td{grid-template-columns:96px minmax(0,1fr)}.grading-actions{gap:8px}.event-row{grid-template-columns:minmax(0,1fr) 44px}}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}
