@font-face{font-family:"Source Serif 4 Fallback";src:local("Georgia Bold"),local("Georgia-Bold");font-weight:600;size-adjust:87.4%;ascent-override:118.54%;descent-override:38.33%;line-gap-override:0%;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"Source Serif 4 Fallback";src:local("Georgia Bold"),local("Georgia-Bold");font-weight:700;size-adjust:89.2%;ascent-override:116.14%;descent-override:37.56%;line-gap-override:0%;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans Fallback;src:local("Arial"),local("ArialMT");font-weight:400 500;size-adjust:101.16%;ascent-override:101.33%;descent-override:27.18%;line-gap-override:0%;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans Fallback;src:local("Arial Bold"),local("Arial-BoldMT");font-weight:600 700;size-adjust:96.88%;ascent-override:105.81%;descent-override:28.39%;line-gap-override:0%;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono Fallback;src:local("Consolas");font-weight:400 700;size-adjust:109.13%;ascent-override:93.92%;descent-override:25.2%;line-gap-override:0%;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--paper: #f4f5f2;--bg: #f4f5f2;--surface: #ffffff;--surface-2: #f6f6f1;--surface-3: #edeee7;--ink: #1b231f;--ink-2: #3a443d;--muted: #6b7268;--muted-2: #9aa093;--line: #e2e3da;--line-2: #cdcfc2;--accent: #14503c;--accent-ink: #0e3c2d;--accent-weak: #eaf1ec;--accent-weak-border: #bcd3c4;--ring: 0 0 0 3px rgba(20, 80, 60, .18);--seal: #8c2f23;--seal-ink: #6f231a;--brass: #a8842c;--brass-weak: #f5edd6;--brass-ink: #7a5e1c;--emboss: rgba(27, 35, 31, .16);--deep: #0f2e28;--ok: #2f7d5b;--ok-weak: #eaf3ee;--ok-border: #b9d9c8;--warn: #9a6b15;--warn-weak: #fbf4e6;--warn-border: #ecd9a8;--warn-ink: #7a5410;--danger: #8c2f23;--danger-weak: #f7ebe9;--danger-border: #e4c2bc;--danger-ink: #6f231a;--info: #3a5a78;--info-weak: #eaeff4;--info-border: #c3d2e0;--shadow-sm: 0 1px 2px rgba(27, 35, 31, .05), 0 1px 3px rgba(27, 35, 31, .06);--shadow-md: 0 4px 14px rgba(27, 35, 31, .08), 0 2px 6px rgba(27, 35, 31, .05);--shadow-lg: 0 14px 34px rgba(27, 35, 31, .14);--radius: 10px;--radius-md: 8px;--radius-sm: 6px;--radius-xs: 4px;--font-body: "IBM Plex Sans", "IBM Plex Sans Fallback", "IBM Plex Sans Arabic", "Segoe UI", system-ui, -apple-system, Roboto, Helvetica, Arial, sans-serif;--font-display: "Source Serif 4", "Source Serif 4 Fallback", "IBM Plex Sans Arabic", Georgia, "Times New Roman", serif;--font-data: "IBM Plex Mono", "IBM Plex Mono Fallback", "IBM Plex Sans Arabic", ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;--dur-instant: 80ms;--dur-quick: .14s;--dur-base: .22s;--dur-page: .24s;--dur-enter: .32s;--dur-exit: .16s;--dur-stamp: .42s;--dur-draw: .56s;--dur-reveal: .6s;--dur-spin: .8s;--dur-attention: 1.1s;--dur-loop: 1.4s;--dur-cue: 1.6s;--dur-hero: 1.6s;--delay-patience: .3s;--ease-standard: cubic-bezier(.2, 0, 0, 1);--ease-out: cubic-bezier(.16, 1, .3, 1);--ease-in: cubic-bezier(.4, 0, 1, 1);--ease-ink: cubic-bezier(.22, .61, .36, 1);--ease-press: cubic-bezier(.34, 1.4, .64, 1);--stagger: 40ms;--stagger-tick: 30ms;--stagger-reveal: 70ms;--stagger-cap: 6;--rise: 6px;--rise-sheet: 10px;--rise-hero: 16px;--sheet-from: 100%;--lift: 2px;--press-scale: .97;--stamp-scale: 1.45;--stamp-angle: -4deg;--dir: 1;--origin-start: left;--stamp-ink: var(--accent);--brass-light: #e7cf98;--scrim: rgb(15 46 40 / .5);--on-dark-ink: rgb(255 255 255 / .88);--on-dark-wash: rgb(255 255 255 / .12);--on-dark-danger: #e88b7d;--on-dark-warn: #e8c877;--on-dark-ok: #7fc9a3;--tap: 44px;--control-font: 14px;--topbar-h: 48px;--tabbar-h: 56px;--chrome-top: var(--topbar-h);--chrome-bottom: 0px;--content-max: 1320px;color:var(--ink-2);background:var(--bg);font-family:var(--font-body);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}[dir=rtl]{--dir: -1;--origin-start: right}[dir=ltr]{--dir: 1;--origin-start: left}@supports (transition-timing-function: linear(0,1)){:root{--ease-press: linear(0, .52 18%, 1.06 46%, .99 72%, 1)}}@media(pointer:coarse){:root{--control-font: 16px;--press-scale: .96}}@media not (min-width:64em){:root{--topbar-h: 56px}}@media(max-width:40em){:root{--chrome-bottom: calc(var(--tabbar-h) + env(safe-area-inset-bottom))}}html{scroll-padding-block:calc(var(--chrome-top) + 12px) calc(var(--chrome-bottom) + 12px)}@media(prefers-reduced-motion:reduce){:root{--rise: 0px;--rise-sheet: 0px;--rise-hero: 0px;--sheet-from: 0%;--lift: 0px;--press-scale: 1;--stamp-scale: 1;--stagger: 0ms;--stagger-tick: 0ms;--stagger-reveal: 0ms;--dur-page: .12s;--dur-enter: .12s;--dur-base: .12s;--dur-exit: 80ms;--dur-reveal: .12s;--dur-draw: 0ms;--dur-stamp: 0ms;--dur-hero: 0ms;--dur-attention: 0ms;--dur-spin: 2.4s;--dur-loop: 2.4s;--ease-press: var(--ease-standard)}html{scroll-behavior:auto}}:root[data-motion=reduced]{--rise: 0px;--rise-sheet: 0px;--rise-hero: 0px;--sheet-from: 0%;--lift: 0px;--press-scale: 1;--stamp-scale: 1;--stagger: 0ms;--stagger-tick: 0ms;--stagger-reveal: 0ms;--dur-page: .12s;--dur-enter: .12s;--dur-base: .12s;--dur-exit: 80ms;--dur-reveal: .12s;--dur-draw: 0ms;--dur-stamp: 0ms;--dur-hero: 0ms;--dur-attention: 0ms;--dur-spin: 2.4s;--dur-loop: 2.4s;--ease-press: var(--ease-standard)}@keyframes aa-fade{0%{opacity:0}}@keyframes aa-rise{0%{opacity:0;transform:translateY(var(--rise))}}@keyframes aa-lift{0%{transform:translateY(var(--rise))}}@keyframes aa-rule{0%{transform:scaleX(0)}}@keyframes ink-y{0%{transform:scaleY(0)}}@keyframes seal-press{0%{opacity:0;transform:scale(var(--stamp-scale)) rotate(calc((var(--stamp-angle) - 9deg) * var(--dir)))}}@keyframes ink-spread{0%{opacity:.45;transform:scale(.8)}to{opacity:0;transform:scale(1.5)}}@keyframes paper-give{0%,50%{transform:none}58%{transform:translateY(1px)}to{transform:none}}@keyframes aa-spin{to{transform:rotate(1turn)}}@keyframes skel-sweep{0%{transform:translate(calc(-100% * var(--dir)))}to{transform:translate(calc(100% * var(--dir)))}}@keyframes ink-line{0%{transform:translate(calc(-100% * var(--dir))) scaleX(.3)}to{transform:translate(calc(100% * var(--dir))) scaleX(.6)}}@keyframes attention-ring{0%{opacity:0;transform:scale(1.04)}30%{opacity:1;transform:none}to{opacity:0}}.sr-only{position:absolute;inline-size:1px;block-size:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.ltr-data{direction:ltr;unicode-bidi:isolate}.page-enter{animation:aa-fade var(--dur-page) var(--ease-out) backwards}.page-enter .page-head{animation:aa-lift var(--dur-page) var(--ease-out) backwards}.stagger-item{animation:aa-rise var(--dur-enter) var(--ease-out) backwards;animation-delay:calc(min(var(--i, 0),var(--stagger-cap)) * var(--stagger))}.lift{position:relative;transition:transform var(--dur-quick) var(--ease-standard)}.lift:after{content:"";position:absolute;inset:0;border-radius:inherit;box-shadow:var(--shadow-md);opacity:0;pointer-events:none;transition:opacity var(--dur-quick) var(--ease-standard)}@media(hover:hover)and (pointer:fine){.lift:hover{transform:translateY(calc(-1 * var(--lift)))}.lift:hover:after{opacity:1}}.lift:active{transform:scale(.985);transition-duration:var(--dur-instant)}.spin{animation:aa-spin var(--dur-spin) linear infinite}::view-transition-old(root),::view-transition-new(root){animation-duration:var(--dur-base);animation-timing-function:var(--ease-standard)}@media print{.page-enter,.page-enter .page-head,.stagger-item,[data-reveal]{animation:none!important;opacity:1!important;transform:none!important}}.route-fallback{min-block-size:60vh}*{box-sizing:border-box}html{scrollbar-gutter:stable}body{margin:0;min-width:320px;background:var(--bg)}h1,h2,h3,h4{color:var(--ink);font-family:var(--font-display);font-weight:600;letter-spacing:-.003em}h2{font-size:17px;margin:0 0 7px}a{color:var(--accent)}code{font-family:var(--font-data);font-size:.92em}.data-table td,.coordinator-table td,.activities-table td,.metric-card strong,.summary-strip strong{font-variant-numeric:tabular-nums}button,input,select,textarea{font:inherit}:where(button,input,select,textarea):where(:hover,:focus-visible,:active){transition:background-color var(--dur-quick) var(--ease-standard),border-color var(--dur-quick) var(--ease-standard),color var(--dur-quick) var(--ease-standard)}:where(button,.download-link):where(:hover,:focus-visible,:active){transition:background-color var(--dur-quick) var(--ease-standard),border-color var(--dur-quick) var(--ease-standard),color var(--dur-quick) var(--ease-standard),transform var(--dur-instant) var(--ease-out)}button,.download-link{align-items:center;background:var(--surface);border:1px solid var(--line-2);border-radius:var(--radius-sm);color:var(--ink-2);cursor:pointer;display:inline-flex;font-size:13.5px;font-weight:600;gap:7px;min-height:34px;padding:0 12px;text-decoration:none}button:where(:not(.link-button)),.download-link{white-space:nowrap}.link-button{white-space:normal}button:hover,.download-link:hover{background:var(--surface-2);border-color:var(--muted-2);color:var(--ink)}button:active,.download-link:active{transform:scale(var(--press-scale));box-shadow:none}.primary:active{background:var(--accent-ink);border-color:var(--accent-ink)}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,.download-link:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-color:var(--accent);box-shadow:var(--ring)}.tabs button:focus-visible,.auth-tab:focus-visible,.page-nav button:focus-visible{outline:none;box-shadow:inset 0 0 0 2px var(--accent-weak-border)}.link-button:focus-visible,.clo-tag-x:focus-visible,.clo-remove-btn:focus-visible,.grade-mode-toggle button:focus-visible{outline:2px solid var(--accent);outline-offset:2px;box-shadow:none;border-radius:var(--radius-sm)}@media(pointer:coarse){button:not(.link-button,.switch,.clo-tag-x,.example-hint-btn,.file-remove,.helper-close,.role-badge-avatar),.download-link,select{min-block-size:var(--tap)}input:not([type=checkbox],[type=radio],[type=range],[type=file]),select,textarea{font-size:max(16px,1em)}.link-button{position:relative}.link-button:after{content:"";position:absolute;inset:-12px -6px}:is(.example-hint-btn,.file-remove,.helper-close,.role-badge-avatar,.clo-tag-x){position:relative}:is(.example-hint-btn,.file-remove,.helper-close,.role-badge-avatar,.clo-tag-x):after{content:"";position:absolute;inset:-10px}}button:disabled{cursor:not-allowed;opacity:.5}.primary{background:var(--accent);border-color:var(--accent);color:#fff;box-shadow:var(--shadow-sm)}.primary:hover{background:var(--accent-ink);border-color:var(--accent-ink);color:#fff}.danger{color:var(--danger)}.icon-button{justify-content:center;min-width:40px;padding:0;color:var(--muted)}.icon-button:hover{background:var(--surface-2);border-color:var(--muted-2);color:var(--ink)}.icon-button.active{background:var(--accent-weak);border-color:var(--accent-weak-border);color:var(--accent-ink)}.icon-button.danger{background:transparent;border-color:transparent;min-height:32px;min-width:32px}.icon-button.danger:hover{background:var(--danger-weak);border-color:var(--danger-border);color:var(--danger)}.gh-link{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-block-size:var(--tap);min-inline-size:var(--tap);padding-inline:10px;border-radius:var(--radius-sm);color:var(--gh-ink, var(--ink-2));font:400 12.5px/1 var(--font-data);letter-spacing:.01em;text-decoration:none;-webkit-tap-highlight-color:transparent;transition:color var(--dur-quick) var(--ease-standard),transform var(--dur-instant) var(--ease-out)}.gh-link:after{content:"";position:absolute;inset-inline:10px;inset-block-end:9px;block-size:1px;background:var(--gh-rule, var(--accent));transform:scaleX(0);transform-origin:var(--origin-start);transition:transform var(--dur-quick) var(--ease-out)}@media(hover:hover)and (pointer:fine){.gh-link:hover{color:var(--gh-ink-hover, var(--ink))}.gh-link:hover:after{transform:scaleX(1)}}.gh-link:focus-visible{outline:2px solid var(--gh-focus, var(--accent));outline-offset:2px}.gh-link:focus-visible:after{transform:scaleX(1)}.gh-link:active{transform:scale(var(--press-scale))}.gh-link[data-tone=deep]{--gh-ink: var(--on-dark-ink);--gh-ink-hover: #fff;--gh-rule: var(--brass-light);--gh-focus: var(--brass-light)}.gh-link[data-handle=never] .gh-handle{display:none}@media(max-width:40em){.gh-link[data-handle=auto]{padding-inline:0}.gh-link[data-handle=auto] .gh-handle{display:none}.gh-link[data-handle=auto]:after{inset-inline:12px}}.corner-rule{flex:none;inline-size:1px;block-size:20px;background:var(--line-2)}.corner-rule[data-tone=deep]{background:#ffffff47}.seal{--seal-color: var(--stamp-ink);position:relative;display:inline-grid;place-items:center;inline-size:var(--seal-size);block-size:var(--seal-size);flex:none;color:var(--seal-color);transform:rotate(calc(var(--stamp-angle) * var(--dir)))}.seal svg{display:block;inline-size:100%;block-size:100%;overflow:visible}.seal-ring{fill:none;stroke:currentColor;stroke-width:1.6}.seal-ring-inner{stroke-width:1.2}.seal-microtext{fill:currentColor;font-family:var(--font-data);font-size:5.4px;letter-spacing:.12em}.seal-mark{fill:currentColor;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.3}.seal--blind{--seal-color: var(--emboss)}.seal[data-tone=deep]{--seal-color: var(--brass-light)}.seal--busy .seal-ring-inner{stroke:var(--brass);stroke-dasharray:4 5;transform-box:fill-box;transform-origin:center;animation:aa-spin var(--dur-cue) linear infinite}.seal.is-stamping{animation:seal-press var(--dur-stamp) var(--ease-press) backwards}.seal.is-stamping:after{content:"";position:absolute;inset:0;border-radius:50%;border:2px solid var(--brass);opacity:0;animation:ink-spread var(--dur-draw) var(--ease-out) calc(var(--dur-stamp) * .45) forwards}.ink-bar{position:relative;display:block;overflow:hidden;border-radius:999px;background:var(--surface-3);block-size:6px}.ink-bar--sm{block-size:4px}.ink-bar--lg{block-size:10px}.ink-bar>i{position:absolute;inset:0;border-radius:inherit;background:var(--ink-fill, var(--accent));transform:translate(calc((var(--p, 0) - 1) * 100% * var(--dir)));transition:transform var(--dur-draw) var(--ease-ink)}@starting-style{.ink-bar>i{transform:translate(calc(-100% * var(--dir)))}}.ink-bar[data-tone=ok]{--ink-fill: var(--ok)}.ink-bar[data-tone=warn]{--ink-fill: var(--warn)}.ink-bar[data-tone=danger]{--ink-fill: var(--danger)}.ink-bar[data-tone=muted]{--ink-fill: var(--muted-2)}.ink-bar[data-tone=indirect]{--ink-fill: var(--info)}.ink-bar-target{position:absolute;inset-block:0;inset-inline-start:clamp(0px,calc(var(--t) * 100% - 1px),calc(100% - 2px));inline-size:2px;background:var(--ink);opacity:.55}.ledger-num{display:inline-flex;direction:ltr;unicode-bidi:isolate;font-variant-numeric:tabular-nums}.ld-row{display:inline-flex}.ld,.ld-sep{block-size:1.15em;line-height:1.15em}.ld{display:inline-block;overflow:hidden}.ld-sep{white-space:pre}.ld-strip{display:flex;flex-direction:column;transform:translateY(calc(var(--d) * -10%));transition:transform var(--dur-base) var(--ease-out) calc(var(--pos, 0) * var(--stagger-tick))}.ld-strip>span{block-size:1.15em}.ledger-num.is-arrival .ld-strip{transition-duration:var(--dur-draw)}@starting-style{.ledger-num.is-arrival .ld-strip{transform:translateY(0)}}.aa-dialog{padding:0;border:0;background:transparent;color:inherit;inline-size:min(var(--dlg-w, 560px),calc(100vw - 32px));max-inline-size:none;max-block-size:calc(100dvh - 48px);overflow:visible}.aa-dialog[data-size=sm]{--dlg-w: 420px}.aa-dialog[data-size=lg]{--dlg-w: 980px}.aa-dialog::backdrop{background:var(--scrim)}.aa-dialog[open]{opacity:1;transform:none;transition:opacity var(--dur-enter) var(--ease-out),transform var(--dur-enter) var(--ease-out)}@starting-style{.aa-dialog[open]{opacity:0;transform:translateY(var(--rise-sheet)) scale(.985)}}.aa-dialog[open]::backdrop{opacity:1;transition:opacity var(--dur-enter) var(--ease-out)}@starting-style{.aa-dialog[open]::backdrop{opacity:0}}.dlg-panel{display:flex;flex-direction:column;max-block-size:inherit;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-lg);overflow:hidden}.dlg-panel:focus{outline:none}.dlg-head{display:flex;align-items:center;gap:12px;padding-block:8px;padding-inline:16px 8px;border-block-end:1px solid var(--line)}.dlg-title{flex:1;min-inline-size:0;margin:0;font:600 17px/1.25 var(--font-display);color:var(--ink)}.dlg-close{inline-size:var(--tap);min-block-size:var(--tap);padding:0;justify-content:center;background:transparent;border-color:transparent;color:var(--muted)}.dlg-close:hover{background:var(--surface-2);border-color:transparent;color:var(--ink)}.dlg-body{flex:1 1 auto;min-block-size:0;overflow-y:auto;overscroll-behavior:contain;padding:16px;container:dlg / inline-size}.dlg-foot{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px;padding:12px 16px max(12px,env(safe-area-inset-bottom));border-block-start:1px solid var(--line)}.aa-dialog--sheet{margin:auto 0 0;inline-size:100%;max-block-size:calc(100dvh - max(12px,env(safe-area-inset-top)))}.aa-dialog--sheet .dlg-panel{border-radius:var(--radius) var(--radius) 0 0;border-block-end:0}.aa-dialog--sheet .dlg-panel:before{content:"";flex:none;inline-size:36px;block-size:4px;margin:8px auto 0;border-radius:999px;background:var(--line-2)}.aa-dialog--sheet .dlg-body:last-child{padding-block-end:max(16px,env(safe-area-inset-bottom))}@starting-style{.aa-dialog--sheet[open]{opacity:0;transform:translateY(var(--sheet-from))}}@media not (max-width:40em){.aa-dialog--sheet{margin-inline:auto;inline-size:min(var(--dlg-w, 560px),calc(100vw - 32px))}}@media(max-width:40em){.aa-dialog--center{margin:auto 0 0;inline-size:100%;max-block-size:calc(100dvh - max(12px,env(safe-area-inset-top)))}.aa-dialog--center .dlg-panel{border-radius:var(--radius) var(--radius) 0 0;border-block-end:0}.aa-dialog--center .dlg-panel:before{content:"";flex:none;inline-size:36px;block-size:4px;margin:8px auto 0;border-radius:999px;background:var(--line-2)}.aa-dialog--center .dlg-body:last-child{padding-block-end:max(16px,env(safe-area-inset-bottom))}@starting-style{.aa-dialog--center[open]{opacity:0;transform:translateY(var(--sheet-from))}}.aa-dialog--full{margin:0;inline-size:100%;block-size:100dvh;max-block-size:100dvh}.aa-dialog--full .dlg-panel{block-size:100%;border:0;border-radius:0}@starting-style{.aa-dialog--full[open]{opacity:0;transform:translateY(var(--rise-sheet))}}}html:has(dialog[open]){overflow:hidden}.aa-toaster{position:fixed;z-index:1000;inset-block-end:calc(var(--chrome-bottom) + 16px);inset-inline-end:16px;display:grid;gap:8px;inline-size:min(380px,calc(100vw - 32px));pointer-events:none}@media(max-width:40em){.aa-toaster{inset-inline:16px;inline-size:auto}}.aa-toast{pointer-events:auto;position:relative;overflow:hidden;display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:var(--radius-md);background:var(--deep);color:#fff;box-shadow:var(--shadow-lg);font-size:13.5px;animation:toast-in var(--dur-base) var(--ease-out) backwards}@keyframes toast-in{0%{opacity:0;transform:translateY(calc(var(--rise) * 2))}}.aa-toast[data-leaving]{animation:toast-out var(--dur-exit) var(--ease-in) forwards}@keyframes toast-out{to{opacity:0;transform:translateY(var(--rise))}}.aa-toast[data-tone=ok]{box-shadow:inset calc(3px * var(--dir)) 0 var(--on-dark-ok),var(--shadow-lg)}.aa-toast[data-tone=danger]{box-shadow:inset calc(3px * var(--dir)) 0 var(--on-dark-danger),var(--shadow-lg)}.aa-toast-msg{flex:1;min-inline-size:0;line-height:1.4}.aa-toast button{min-block-size:36px;background:transparent;color:#fff;border-color:#fff6}.aa-toast button:hover{background:var(--on-dark-wash);border-color:#fff9;color:#fff}.aa-toast button:focus-visible{outline-color:var(--brass-light);border-color:var(--brass-light);box-shadow:none}.aa-toast .aa-toast-close{flex:none;inline-size:36px;padding:0;justify-content:center;border-color:transparent;color:var(--on-dark-ink)}.aa-toast .aa-toast-close:hover{border-color:transparent;color:#fff}@media(pointer:coarse){.aa-toast button{min-block-size:var(--tap)}.aa-toast .aa-toast-close{inline-size:var(--tap)}}.aa-toast-count{position:absolute;inset-inline:0;inset-block-end:0;block-size:2px;background:var(--brass-light);transform-origin:var(--origin-start);animation:toast-drain var(--toast-ms) linear forwards}@keyframes toast-drain{to{transform:scaleX(0)}}.aa-toaster[data-paused] .aa-toast-count{animation-play-state:paused}.scroll-table{position:relative;min-inline-size:0}.scroll-table-viewport{overflow-x:auto;overscroll-behavior-inline:contain;scrollbar-width:thin}.scroll-table-viewport:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.scroll-table-track{display:inline-flex;min-inline-size:100%;vertical-align:top}.scroll-table-track>table{flex:1 0 auto}.scroll-sentinel{flex:none;inline-size:1px}.scroll-table:before,.scroll-table:after{content:"";position:absolute;z-index:3;inset-block:0;inline-size:28px;pointer-events:none;opacity:0;transition:opacity var(--dur-base) var(--ease-standard)}.scroll-table:before{inset-inline-start:0;background:linear-gradient(to right,var(--surface),transparent)}.scroll-table:after{inset-inline-end:0;background:linear-gradient(to left,var(--surface),transparent)}[dir=rtl] .scroll-table:before{background:linear-gradient(to left,var(--surface),transparent)}[dir=rtl] .scroll-table:after{background:linear-gradient(to right,var(--surface),transparent)}.scroll-table[data-fade-start]:before,.scroll-table[data-fade-end]:after{opacity:1}.scroll-table[data-sticky-first]:before{display:none}.scroll-table[data-sticky-first] :is(th,td):first-child{position:sticky;inset-inline-start:0;z-index:2;background:var(--surface);box-shadow:inset calc(-1px * var(--dir)) 0 var(--line)}.scroll-table[data-sticky-first] thead th:first-child{background:var(--surface-3)}.page-head{display:grid;gap:6px;margin-block:4px 18px}.page-eyebrow{color:var(--brass-ink);font:600 11px/1.35 var(--font-data);letter-spacing:.08em;text-transform:uppercase}[dir=rtl] .page-eyebrow{font-family:var(--font-body);font-size:12.5px;letter-spacing:normal;text-transform:none}.page-title{margin:0;color:var(--ink);font:600 clamp(20px,2.4vw,26px)/1.2 var(--font-display);text-wrap:balance;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}[dir=rtl] .page-title{font-weight:700;line-height:1.4}.page-meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;color:var(--muted);font-size:13px}.page-actions{display:flex;flex-wrap:wrap;gap:8px}.page-rule{display:block;block-size:3px;margin-block-start:8px;border-block-start:2px solid var(--ink);border-block-end:1px solid var(--line);transform-origin:var(--origin-start);animation:aa-rule var(--dur-draw) var(--ease-ink) var(--dur-instant) backwards}@container main (width >= 64rem){.page-head:has(.page-actions){grid-template-columns:minmax(0,1fr) auto}.page-head>:not(.page-actions){grid-column:1}.page-actions{grid-column:2;grid-row:1 / span 3;align-self:end}.page-rule{grid-column:1 / -1}}.skel{position:relative;display:block;overflow:hidden;background:var(--surface-3);border-radius:var(--radius-sm);contain:paint}.skel:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgb(255 255 255 / .55),transparent);transform:translate(calc(-100% * var(--dir)));animation:skel-sweep var(--dur-loop) linear var(--delay-patience) infinite both}.page-skel-body{display:grid;gap:12px;padding-block:4px}.skel-bar{margin-block-end:16px}.skel-rule{display:block;block-size:3px;margin-block:2px 6px;border-block-start:2px solid var(--line-2);border-block-end:1px solid var(--line)}.skel-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px}.skel-row{display:flex;align-items:center;gap:16px;block-size:44px;border-block-end:1px solid var(--line)}.skel-row>.skel{flex:none}.skel-row>.skel-end{margin-inline-start:auto}.seg{position:relative;display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);padding:3px;border-radius:var(--radius-md);background:var(--surface-3);isolation:isolate}.seg>button{position:relative;z-index:1;min-block-size:38px;justify-content:center;gap:6px;border:0;background:transparent;color:var(--muted);font-weight:600}@media(hover:hover)and (pointer:fine){.seg>button:hover{background:transparent;color:var(--ink)}}.seg>button:is([aria-current=page],[aria-pressed=true]){color:var(--accent-ink)}.seg-thumb{position:absolute;z-index:0;inset-block:3px;inset-inline-start:3px;inline-size:calc((100% - 6px) / var(--n));border-radius:var(--radius-sm);background:var(--surface);box-shadow:var(--shadow-sm);transform:translate(calc(var(--i) * 100% * var(--dir)));transition:transform var(--dur-base) var(--ease-out)}.seg[data-empty] .seg-thumb{opacity:0}.seg-label{min-inline-size:0;overflow:hidden;text-overflow:ellipsis}.seg-badge{flex:none;min-inline-size:18px;padding-inline:5px;border-radius:999px;background:var(--seal);color:#fff;font:600 11px/18px var(--font-data);text-align:center}@media(pointer:coarse){.seg>button{min-block-size:var(--tap)}}.grade-bars{margin:0}.grade-bars-title{margin:0 0 4px;color:var(--ink);font:600 14px/1.35 var(--font-body)}.grade-bars-plot{display:grid;grid-template-columns:repeat(var(--n),minmax(0,1fr));align-items:end;gap:6px;block-size:var(--h, 160px);margin-block-end:22px;padding-block-start:18px;border-block-end:1px solid var(--line-2)}.grade-bar{position:relative;block-size:100%;display:flex;align-items:flex-end}.grade-bar-fill{display:block;inline-size:100%;block-size:100%;background:var(--bar, var(--accent));border-radius:var(--radius-xs) var(--radius-xs) 0 0;transform:scaleY(var(--v));transform-origin:bottom;transition:transform var(--dur-draw) var(--ease-ink) calc(min(var(--i),8) * var(--stagger-tick))}@starting-style{.grade-bar-fill{transform:scaleY(0)}}.grade-bar[data-tone=fail]{--bar: var(--danger)}.grade-bar[data-tone=warn]{--bar: var(--warn)}.grade-bar-count{position:absolute;inset-inline:0;inset-block-end:calc(var(--v) * 100% + 4px);text-align:center;font:600 12px/1 var(--font-data);color:var(--ink-2);animation:aa-fade var(--dur-base) var(--ease-out) var(--dur-draw) backwards}.grade-bar-label{position:absolute;inset-inline:0;inset-block-start:calc(100% + 6px);text-align:center;font:600 12px/1 var(--font-data);color:var(--muted)}.gauge-arc{stroke-dasharray:var(--c);stroke-dashoffset:var(--o);transition:stroke-dashoffset var(--dur-draw) var(--ease-ink) calc(min(var(--i, 0),8) * var(--stagger-tick))}@starting-style{.gauge-arc{stroke-dashoffset:var(--c)}}.donut-seg{stroke-dasharray:var(--seg) calc(var(--circ) - var(--seg));transition:stroke-dasharray var(--dur-draw) var(--ease-ink) calc(min(var(--i, 0),8) * var(--stagger-tick))}@starting-style{.donut-seg{stroke-dasharray:0 var(--circ)}}@media(prefers-reduced-motion:reduce){.seal--busy .seal-ring-inner{animation:none}.aa-toast-count,.skel:after{display:none}}:root[data-motion=reduced] .seal--busy .seal-ring-inner{animation:none}:root[data-motion=reduced] .aa-toast-count,:root[data-motion=reduced] .skel:after{display:none}@media print{.gh-link,.aa-toaster{display:none!important}}.report-actions-cell{vertical-align:middle}.report-row-actions{display:flex;gap:6px;align-items:center}.report-term-row td{background:var(--surface-3);border-bottom:2px solid var(--line-2);padding:6px 14px}.report-term-row .report-term{align-items:baseline;display:flex;flex-wrap:wrap;gap:4px 10px}.report-term-row .report-term-heading{color:var(--ink-2);font-family:var(--font-data);font-size:11.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.report-term-row .term-current{align-self:center;background:var(--accent-weak);border:1px solid var(--accent-weak-border);border-radius:999px;color:var(--accent-ink);font-size:10px;font-weight:600;letter-spacing:.05em;padding:1px 8px;text-transform:uppercase}.report-term-row .report-term-count{color:var(--muted-2);font-size:11px;font-weight:500;letter-spacing:0;margin-inline-start:auto;text-transform:none}.link-button{background:transparent;border:none;color:var(--accent);cursor:pointer;font-size:13px;font-weight:600;min-height:0;padding:0;text-decoration:none}.link-button:hover{background:transparent;color:var(--accent-ink);text-decoration:underline}.link-button.open-report{background:var(--accent-weak);border:1px solid var(--accent-weak-border);border-radius:var(--radius-sm);color:var(--accent-ink);padding:5px 14px}.link-button.open-report:hover{background:var(--accent);border-color:var(--accent);color:#fff;text-decoration:none}.site-shell{margin:0 auto;max-width:1320px;padding:0 24px 40px}.app-header{align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);display:flex;gap:16px;justify-content:space-between;margin-top:20px;padding:14px 18px}.app-brand{align-items:center;display:flex;gap:14px;min-width:0}.app-logo-img{display:block;flex:0 0 auto;height:56px;object-fit:contain;width:auto}.app-brand-text{display:grid;gap:2px;min-width:0}.app-brand-text strong{color:var(--ink);font-size:18px;font-weight:700;letter-spacing:-.01em;line-height:1.1}.app-brand-text strong span{color:var(--muted);font-weight:600}.app-brand-sub{color:var(--muted);font-size:12.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.header-actions{align-items:center;display:flex;gap:10px}.role-badge{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md);color:var(--ink-2);display:flex;flex-direction:column;font-size:13px;gap:8px;padding:8px 10px}.role-badge-main{align-items:center;display:flex;gap:10px}.role-badge-avatar{align-items:center;background:var(--accent-weak);border:1px solid var(--accent-weak-border);border-radius:999px;color:var(--accent);display:flex;flex:0 0 auto;height:30px;justify-content:center;padding:0;width:30px}button.role-badge-avatar{cursor:pointer;transition:background-color var(--dur-quick) var(--ease-standard),color var(--dur-quick) var(--ease-standard)}button.role-badge-avatar:hover{background:var(--accent);color:#fff}.role-badge-id{display:flex;flex:1 1 auto;flex-direction:column;gap:1px;min-width:0}.role-badge-name{color:var(--ink);font-size:13px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.role-badge-sub{color:var(--muted);font-size:11.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dev-role-switch{align-items:center;border-top:1px dashed var(--line);display:flex;gap:6px;padding-top:8px}.dev-role-tag{background:var(--accent-weak);border-radius:var(--radius-sm);color:var(--accent-ink);flex:0 0 auto;font-size:9px;font-weight:700;letter-spacing:.06em;padding:2px 5px}.dev-role-menu{flex:1 1 auto;min-width:0;position:relative}.dev-role-trigger{align-items:center;background:var(--surface);border:1px solid var(--line-2);border-radius:var(--radius-sm);color:var(--ink);cursor:pointer;display:flex;font-size:12px;font-weight:600;gap:6px;justify-content:space-between;min-height:30px;padding:4px 9px;width:100%}.dev-role-trigger:hover{background:var(--surface);border-color:var(--accent)}.dev-role-trigger svg{color:var(--muted);flex:0 0 auto}.dev-role-list{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);box-shadow:var(--shadow-lg);inset-block-end:calc(100% + 4px);inset-inline:0;list-style:none;margin:0;padding:4px;position:absolute;z-index:40}.dev-role-option{align-items:center;background:none;border:none;border-radius:var(--radius-xs);color:var(--ink-2);cursor:pointer;display:flex;font-size:12.5px;gap:8px;justify-content:space-between;min-height:32px;padding:6px 9px;width:100%}.dev-role-option:hover{background:var(--surface-2);color:var(--ink)}.dev-role-option.sel{color:var(--accent-ink);font-weight:600}.dev-role-option.sel svg{color:var(--accent);flex:0 0 auto}.role-badge-action{flex:0 0 auto;font-size:12.5px;margin-inline-start:auto}.role-pill{background:#e2e8f0;border:1px solid transparent;border-radius:999px;color:#1e293b;display:inline-block;font-size:11.5px;font-weight:700;letter-spacing:.02em;line-height:1.5;max-width:100%;padding:2px 10px;text-transform:capitalize;white-space:nowrap;width:fit-content}.role-pill.role-instructor{background:#e0f2fe;color:#0369a1;border-color:#bae6fd}.role-pill.role-coordinator{background:#ffedd5;color:#c2410c;border-color:#fed7aa}.role-pill.role-admin{background:#ede9fe;color:#6d28d9;border-color:#ddd6fe}.role-pill.role-consolidated{background:#dcfce7;color:#15803d;border-color:#bbf7d0}.role-pill.role-guest{background:#f1f5f9;color:#475569;border-color:#e2e8f0}.severity-pill{border:1px solid transparent;border-radius:999px;display:inline-block;font-size:11px;font-weight:700;letter-spacing:.02em;padding:2px 9px;text-transform:capitalize}.severity-pill.severity-error,.severity-pill.severity-warning{background:var(--warn-weak);color:var(--warn-ink);border-color:var(--warn-border)}.severity-pill.severity-info{background:var(--accent-weak);color:var(--accent-ink);border-color:var(--accent-weak-border)}.conflict-source strong{color:var(--ink);font-weight:600}.page-nav{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);display:flex;gap:4px;margin-top:14px;overflow-x:auto;padding:6px}.page-nav button{background:transparent;border:1px solid transparent;color:var(--muted);flex:0 0 auto;font-weight:600;min-height:38px}.page-nav button:hover{background:var(--surface-2);border-color:transparent;color:var(--ink)}.page-nav button.active{background:var(--accent-weak);border-color:var(--accent-weak-border);color:var(--accent-ink)}.app-shell{display:grid;grid-template-columns:248px minmax(0,1fr);min-height:100vh}.app-rail{background:var(--surface-2);border-inline-end:1px solid var(--line);display:flex;flex-direction:column;gap:3px;height:100vh;overflow-y:auto;padding:16px 12px;position:sticky;top:0}.rail-brand{align-items:center;display:flex;gap:11px;min-width:0;padding:4px 8px 14px}.rail-brand .app-logo-img{height:40px}.rail-nav{display:flex;flex-direction:column;gap:2px}.rail-nav button{align-items:center;background:transparent;border:1px solid transparent;border-radius:var(--radius-sm);color:var(--ink-2);display:flex;font-size:13.5px;font-weight:500;gap:10px;justify-content:flex-start;min-height:38px;padding:7px 10px;text-align:start;width:100%}.rail-nav button svg{color:var(--muted);flex:0 0 auto}.rail-nav button:hover{background:var(--surface-3);color:var(--ink)}.rail-nav button.active{background:var(--accent-weak);border-color:var(--accent-weak-border);color:var(--accent-ink)}.rail-nav button.active svg{color:var(--accent)}.rail-subnav{border-inline-start:1.5px solid var(--line-2);display:flex;flex-direction:column;gap:2px;margin-inline-start:16px}.rail-nav button.rail-subitem{color:var(--ink-2);font-size:12.5px;font-weight:500;gap:8px;min-height:31px;padding:4px 10px 4px 18px;position:relative}.rail-nav button.rail-subitem svg{height:14px;width:14px}.rail-nav button.rail-subitem:before{background:var(--line-2);content:"";height:1.5px;inset-inline-start:0;position:absolute;top:calc(50% - .75px);width:9px}.rail-nav button.rail-subitem.active{font-weight:600}.rail-nav button.rail-subitem.active:before{background:var(--accent)}.rail-nav button.rail-subitem .rail-nav-badge{margin-inline-start:auto}.rail-spacer{flex:1 1 auto;min-height:12px}.rail-settings-row{align-items:center;display:flex;gap:6px}.rail-settings-row>button{flex:1;min-width:0;width:auto}.rail-lang{align-items:center;background:var(--surface-2);border:1px solid var(--line);border-radius:999px;display:inline-flex;flex:none;gap:2px;padding-block:2px;padding-inline:8px 4px}.rail-lang>svg{color:var(--muted);flex:none}.rail-lang button{background:transparent;border:0;border-radius:999px;color:var(--muted);font-size:11.5px;font-weight:700;justify-content:center;line-height:1;min-height:22px;min-width:22px;padding:4px 7px}.rail-lang button[lang=ar]{font-family:var(--font-body);font-size:13.5px}.rail-lang button:hover{background:var(--surface-3);color:var(--ink)}.rail-lang button.active{background:var(--surface);color:var(--accent-ink);box-shadow:var(--shadow-sm)}.rail-foot{border-top:1px solid var(--line);display:flex;flex-direction:column;gap:8px;padding-top:10px}.rail-foot .icon-button.rail-admin{align-items:center;display:flex;gap:10px;height:auto;justify-content:flex-start;min-height:38px;padding:7px 10px;width:100%}.rail-foot .role-badge{width:100%}.rail-course-wrap{margin:0 6px 10px}.rail-course{align-items:center;background:var(--surface);border:1px solid var(--line-2);border-radius:var(--radius-sm);cursor:pointer;display:flex;font:inherit;gap:8px;padding:9px 11px;text-align:start;width:100%}.rail-course:hover{background:var(--surface-2)}.rail-course-text{display:grid;flex:1;gap:1px;grid-template-columns:minmax(0,1fr);min-width:0}.rail-course-chevron{color:var(--muted-2);flex:0 0 auto;transition:transform var(--dur-quick) var(--ease-standard)}.rail-course[aria-expanded=true] .rail-course-chevron{transform:rotate(180deg)}.rail-course-menu{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);margin-top:4px;max-height:260px;overflow-y:auto;padding:3px}.rail-course-option{background:transparent;border:0;border-radius:var(--radius-xs);cursor:pointer;display:block;padding:7px 9px;text-align:start;width:100%}.rail-course-option:hover{background:var(--surface-2)}.rail-course-option.is-current{background:var(--accent-weak)}.rail-course-option strong{color:var(--ink);display:block;font-size:12.5px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rail-course-option span{color:var(--muted);display:block;font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rail-course-empty{color:var(--muted);font-size:12.5px;padding:8px 9px}.rail-course-close{align-items:center;border:0;border-radius:var(--radius-sm);border-top:1px solid var(--line);color:var(--ink-2);display:flex;font-size:12.5px;font-weight:600;gap:8px;justify-content:flex-start;margin-top:4px;padding:8px 9px;width:100%}.rail-course-close:hover{background:var(--surface-3);color:var(--ink)}.rail-course-close svg{color:var(--muted)}.rail-course-label{color:var(--muted-2);font-size:10.5px;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.rail-course-name{color:var(--ink);font-size:13px;font-weight:600;line-height:1.25;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rail-course.is-empty .rail-course-name{color:var(--muted);font-weight:500}.rail-course-meta{color:var(--muted);font-size:11.5px;margin-top:1px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.settings-page{max-width:640px}.settings-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);margin-bottom:14px;padding:16px 18px}.settings-card-head{align-items:center;display:flex;gap:9px;margin-bottom:12px}.settings-card-head svg{color:var(--accent)}.settings-card-head h3{color:var(--ink);font-size:15px;font-weight:700;margin:0}.settings-row{align-items:center;display:flex;gap:16px;justify-content:space-between}.settings-text strong{color:var(--ink);display:block;font-size:14px;font-weight:600}.settings-text span{color:var(--muted);display:block;font-size:13px;margin-top:2px}.switch{background:var(--line-2);border:0;border-radius:999px;cursor:pointer;flex:0 0 auto;height:24px;min-height:0;padding:0;position:relative;transition:background-color var(--dur-quick) var(--ease-standard);width:42px}.switch:hover{background:var(--muted-2)}.switch:active{transform:none}.switch.is-on,.switch.is-on:hover{background:var(--accent)}.switch-knob{background:#fff;border-radius:50%;box-shadow:0 1px 2px #0f172a40;height:18px;inset-block-start:3px;inset-inline-start:3px;position:absolute;transform:translate(0);transition:transform var(--dur-base) var(--ease-standard);width:18px}.switch.is-on .switch-knob{transform:translate(calc(18px * var(--dir)))}.app-main{min-width:0;padding:16px clamp(14px,2vw,28px) 40px}@media(max-width:860px){.app-shell{grid-template-columns:minmax(0,1fr)}.app-rail,.app-main,.rail-nav{min-width:0}.app-rail{position:sticky;top:0;z-index:30;flex-flow:row wrap;align-items:center;gap:8px 10px;height:auto;max-height:none;overflow:visible;padding:9px 14px;border-bottom:1px solid var(--line);border-inline-end:0}.rail-brand{flex:0 0 auto;order:1;gap:9px;padding:0}.rail-brand .app-logo-img{height:30px}.app-brand-sub{display:none}.rail-course-wrap{flex:1 1 160px;order:2;min-width:130px;margin:0}.rail-lang{flex:0 0 auto;order:3}.rail-foot{flex:0 0 auto;order:4;flex-direction:row;gap:6px;border-top:0;padding-top:0}.rail-foot .role-badge{width:auto}.rail-foot .role-badge-id,.rail-foot .role-badge-sub,.rail-spacer{display:none}.rail-nav{flex:1 1 100%;order:5;flex-direction:row;flex-wrap:nowrap;gap:6px;margin:0;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scroll-snap-type:x proximity;padding-bottom:3px}.rail-nav.rail-nav-settings{order:6}.rail-nav button{flex:0 0 auto;width:auto;min-height:36px;padding:7px 14px;border:1px solid var(--line);border-radius:999px;white-space:nowrap;scroll-snap-align:start}.rail-subnav{display:contents;border:0;margin:0}.rail-nav button.rail-subitem{min-height:36px;padding:7px 14px;font-size:13px}.rail-nav button.rail-subitem:before{display:none}.app-main{padding:16px}}.tabs{border-bottom:1px solid var(--line);display:flex;gap:4px;margin:20px 0 16px;overflow-x:auto;overflow-y:hidden}.tabs button{background:transparent;border:none;border-bottom:2px solid transparent;border-radius:0;color:var(--muted);margin-bottom:-1px}.tabs button:hover{background:transparent;color:var(--ink)}.tabs button.active{background:transparent;border-bottom-color:var(--accent);color:var(--accent-ink)}.tabs button.active svg{color:var(--accent-ink)}.action-row{align-items:center;display:flex;flex-wrap:wrap;gap:12px;justify-content:flex-start;margin-bottom:16px}.hero-band{align-items:center;background:var(--surface);border:1px solid var(--line);border-left:4px solid var(--accent);border-radius:var(--radius);box-shadow:var(--shadow-sm);color:var(--ink-2);display:grid;gap:16px;grid-template-columns:1fr 320px;margin-top:12px;padding:14px 18px}.hero-band h2{color:var(--ink);font-size:22px;margin:8px 0}.hero-band p{color:var(--muted);margin:0;max-width:760px}.service-label{align-items:center;color:var(--accent-ink);display:inline-flex;font-family:var(--font-data);font-size:11.5px;font-weight:600;gap:8px;letter-spacing:.14em;text-transform:uppercase}.hero-stats{display:grid;gap:12px;grid-template-columns:1fr 1fr}.hero-stats div{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-md);padding:14px}.hero-stats span,.hero-stats strong{display:block}.hero-stats span{color:var(--muted);font-size:12px;font-weight:600}.hero-stats strong{color:var(--ink);font-size:24px;margin-top:6px}.folder-tree{border:1px solid var(--line);border-radius:var(--radius-sm);overflow:hidden}.folder-tree .ft-line{align-items:center;border-top:1px solid var(--line);display:flex;font-size:13px;gap:9px;padding:7px 12px}.folder-tree .ft-line:first-child{border-top:0}.folder-tree .ft-line svg{color:var(--accent);flex:0 0 auto}.folder-tree .ft-root{background:var(--surface-2);color:var(--ink);font-weight:600}.folder-tree .ft-line:not(.ft-root){padding-left:30px}.folder-tree .ft-root em{color:var(--muted);font-size:12px;font-style:normal;font-weight:400}.folder-tree .ft-line>span:not(.ft-type){color:var(--ink-2)}.folder-tree .ft-type{background:var(--surface-3);border-radius:999px;color:var(--muted);font-size:11px;font-weight:600;margin-inline-start:auto;padding:1px 8px}.item-hint{font-size:13.5px;max-width:380px}.item-hint-desc{color:var(--ink-2);margin:0 0 12px}.item-hint-meta{align-items:center;display:flex;gap:10px}.item-hint-label{color:var(--muted);font-size:12px;font-weight:600}.import-grid{align-items:start;display:grid;gap:16px;grid-template-columns:minmax(280px,1fr) 180px minmax(320px,.9fr)}.report-context-row{align-items:end;border-bottom:1px solid var(--line);display:flex;flex-wrap:wrap;gap:16px;margin-bottom:18px;padding-bottom:18px}.report-context-row label{display:grid;gap:6px;min-width:150px}.report-context-row select{background:var(--surface);border:1px solid var(--line-2);border-radius:var(--radius-sm);font-size:14px;min-height:40px;padding:0 10px}.report-context-note{align-self:center;color:var(--muted);flex:1 1 220px;font-size:12.5px}label{display:grid;gap:8px;min-width:0}label>span,.summary-strip span,.metric-card span{color:var(--muted);font-size:13px;font-weight:600}label small{color:var(--muted);display:block;font-size:12px;line-height:1.3;min-height:16px;white-space:nowrap}.input-row{align-items:center;background:var(--surface);border:1px solid var(--line-2);border-radius:var(--radius-sm);color:var(--muted);display:flex;gap:8px;min-height:48px;min-width:0;padding:0 12px;transition:border-color var(--dur-quick) var(--ease-standard)}.input-row input{background:transparent;border:0;color:var(--ink-2);flex:1;min-width:0;outline:none}.input-row input[type=file]{align-items:center;display:flex;max-width:100%;min-height:28px;overflow:hidden;width:100%}.input-row input[type=file]::file-selector-button{background:var(--surface-2);border:1px solid var(--line-2);border-radius:6px;color:var(--ink-2);cursor:pointer;margin-inline-end:8px;max-width:130px;padding:5px 10px}.input-row:focus-within{border-color:var(--accent);box-shadow:var(--ring)}.folder-pick-btn{background:var(--surface);border:1px solid var(--line-2);border-radius:var(--radius-sm);color:var(--ink-2);cursor:pointer;flex:1;font-size:13px;font-weight:600;min-height:0;min-width:0;overflow:hidden;padding:8px 10px;text-align:left;text-overflow:ellipsis;white-space:nowrap}.folder-pick-btn:hover:not(:disabled){background:var(--accent-weak);border-color:var(--accent);color:var(--accent-ink)}.folder-pick-btn:disabled{opacity:.5}input[type=number]{-moz-appearance:textfield;appearance:textfield}input[type=number]::-webkit-outer-spin-button,input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.status-badge{align-items:center;border:1px solid currentColor;border-radius:var(--radius-xs);display:inline-flex;font-family:var(--font-data);font-size:11px;font-weight:600;gap:5px;letter-spacing:.06em;padding:2px 7px;text-transform:uppercase}.status-badge svg{flex:0 0 auto}.status-badge.status-missing{color:var(--seal);background:var(--danger-weak);border-color:var(--danger-border)}.status-badge.status-matched{color:var(--ok);background:var(--ok-weak);border-color:var(--ok-border)}.status-badge.status-generated{color:var(--info);background:var(--info-weak);border-color:var(--info-border)}.section-header{align-items:center;display:flex;gap:9px}.section-header .sh-title{color:var(--ink);font-size:13px;font-weight:700}.section-header .sh-count{background:var(--surface-3);border-radius:999px;color:var(--muted);font-size:11.5px;font-weight:600;padding:1px 8px}.section-header .sh-count.tone-needs{background:var(--danger-weak);color:var(--danger)}.section-header .sh-count.tone-done{background:var(--ok-weak);color:var(--ok)}.section-header .sh-hint{color:var(--muted);font-size:12.5px;font-weight:400}.summary-strip .summary-checklist .mini-progress{background:var(--line-2);border-radius:999px;height:5px;margin-top:8px;overflow:hidden}.summary-strip .summary-checklist .mini-progress>i{background:var(--accent);border-radius:999px;display:block;height:100%}.data-table tbody tr.checklist-group td{background:var(--surface-2);padding:14px 14px 7px}.data-table tbody tr.checklist-group:hover td{background:var(--surface-2)}.density-compact .dashboard-page .hero-band{margin-top:10px;padding:12px 16px;gap:14px}.density-compact .dashboard-page .hero-band h2{font-size:17px;margin:2px 0}.density-compact .dashboard-page h2{font-size:16px;margin:0 0 6px}.density-compact .dashboard-page .action-row{margin-bottom:8px}.density-compact .dashboard-page .summary-strip{gap:8px;margin-top:10px}.density-compact .dashboard-page .summary-strip>div{padding:8px 11px}.density-compact .dashboard-page .summary-strip strong{font-size:18px}.density-compact .dashboard-page .grade-overview,.density-compact .dashboard-page .grade-cards{gap:8px}.density-compact .dashboard-page .metric-card{padding:10px 12px}.density-compact .dashboard-page .metric-icon{height:28px;width:28px;margin-bottom:6px}.density-compact .dashboard-page .metric-card strong{font-size:18px}.density-compact .dashboard-page .tabs{margin:12px 0 8px}.density-compact .dashboard-page .data-table th,.density-compact .dashboard-page .data-table td{padding:6px 11px}.density-compact .dashboard-page .data-table tbody tr.checklist-group td{padding:10px 11px 5px}.summary-strip{display:grid;gap:10px;grid-template-columns:repeat(5,1fr);margin-top:12px}.summary-strip>div{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);display:grid;gap:3px;padding:10px 13px}.summary-strip strong{color:var(--ink);font-size:20px;font-weight:700}.grade-overview,.grade-cards{display:grid;gap:10px;grid-template-columns:repeat(4,1fr);margin:10px 0 4px}.metric-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:12px 13px}.metric-icon{align-items:center;background:var(--accent-weak);border-radius:var(--radius-sm);color:var(--accent);display:flex;height:30px;justify-content:center;margin-bottom:8px;width:30px}.metric-card span{font-weight:600}.metric-card strong{color:var(--ink);display:block;font-size:20px;font-weight:700;margin:3px 0;overflow-wrap:anywhere}.metric-card small{color:var(--muted);display:block;overflow-wrap:anywhere}.summary-strip>div,.metric-card{transition:transform var(--dur-quick) var(--ease-standard),border-color var(--dur-quick) var(--ease-standard)}.summary-strip>div:hover,.metric-card:hover{border-color:var(--line-2);box-shadow:var(--shadow-md);transform:translateY(-2px)}.data-table{background:var(--surface);border-collapse:separate;border-spacing:0;border-radius:var(--radius-md);box-shadow:var(--shadow-sm);overflow:hidden;width:100%}.data-table th,.data-table td{border-bottom:1px solid var(--line);padding:7px 12px;text-align:left;vertical-align:top}.data-table tbody tr:last-child td{border-bottom:none}.data-table tbody tr:hover td{background:var(--surface-2)}.data-table th{background:var(--surface-3);color:var(--ink-2);font-size:11.5px;font-weight:700;letter-spacing:.04em;padding:7px 12px;text-transform:uppercase}.data-table thead th{border-bottom:2px solid var(--line-2)}.data-table th span,.data-table th small{display:block}.data-table th small{color:var(--muted);font-size:11px;font-weight:600;margin-top:2px;text-transform:none}.data-table td strong{color:var(--ink);display:block;font-weight:600}.data-table td span{color:var(--muted);display:block;font-size:13px}[dir=rtl] th,[dir=rtl] td,[dir=rtl] .data-table th,[dir=rtl] .data-table td{text-align:right}[dir=rtl] :is(.data-table th,.section-heading>span,.service-label,.rail-course-label,.report-term-heading,.dash-puck-label,.dash-plos-label,.helper-float-header>span){letter-spacing:normal;text-transform:none}[dir=rtl]{font-size:1.02em}.bi{display:inline-flex;flex-direction:column;gap:1px;line-height:1.18;min-width:0;text-align:inherit;vertical-align:middle}.bi__en{display:block}.bi__ar{display:block;font-size:.82em;font-weight:500;letter-spacing:0;line-height:1.25;opacity:.7;text-transform:none}.bi--row{align-items:baseline;flex-direction:row;gap:.4em}.bi--row .bi__ar{opacity:.78}.status{border:1px solid var(--line-2);border-radius:var(--radius-sm);font-weight:600;padding:8px 10px}.status-complete{background:var(--ok-weak);color:var(--ok);border-color:var(--ok-border)}.status-partial{background:var(--warn-weak);color:var(--warn);border-color:var(--warn-border)}.status-missing{background:var(--danger-weak);color:var(--danger);border-color:var(--danger-border)}.file-list{display:flex;flex-direction:column;gap:3px;list-style:none;margin:0;max-width:680px;padding:0}.file-list li{color:var(--ink-2);overflow-wrap:anywhere}.file-list-toggle{align-items:center;background:none;border:0;color:var(--accent-ink);cursor:pointer;display:inline-flex;font-size:12.5px;font-weight:600;gap:4px;margin-top:4px;min-height:0;padding:2px 0}.file-list-toggle:hover{background:none;color:var(--accent)}.file-list-chevron{color:var(--muted);flex:0 0 auto;transition:transform var(--dur-quick) var(--ease-standard)}.file-list-chevron.is-open{transform:rotate(90deg)}.muted{color:var(--muted)}.resolved{opacity:.55}.grades-layout{display:grid;gap:18px;grid-template-columns:minmax(340px,.9fr) minmax(420px,1.1fr)}.clo-ach-list{display:flex;flex-direction:column;gap:12px;list-style:none;margin:12px 0 0;padding:0}.clo-ach-item{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:12px 14px}.clo-ach-top{align-items:baseline;display:flex;gap:10px;justify-content:space-between}.clo-ach-code{color:var(--ink);font-size:13px;font-weight:700;letter-spacing:.02em}.clo-ach-pct{color:var(--accent-ink);font-size:15px;font-variant-numeric:tabular-nums;font-weight:700}.clo-ach-desc{color:var(--ink-2);display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;font-size:12px;line-height:1.4;margin:5px 0 9px;overflow:hidden}.clo-ach-track{background:var(--line);block-size:7px;border-radius:999px;overflow:hidden}.clo-ach-fill{background:var(--accent);block-size:100%;border-radius:999px;display:block;transition:inline-size var(--dur-base) var(--ease-standard)}.clo-ach-fill[data-met=true]{background:var(--ok)}.clo-ach-fill[data-met=false]{background:var(--warn)}.clo-ach-meta{color:var(--muted);font-size:11.5px;margin-top:7px}.students-table-card{margin-top:18px}.students-table-head{align-items:center;display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between;margin-bottom:12px}.students-table-head h2{margin:0}.students-table-sub{color:var(--muted);font-size:12.5px;margin:2px 0 0}.students-table-actions{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.icon-btn{align-items:center;display:inline-flex;gap:6px;font-size:13px}.students-table-scroll{overflow-x:auto}.students-table th.num,.students-table td.num{font-variant-numeric:tabular-nums;text-align:end;white-space:nowrap}.students-table tbody tr:hover td{background:var(--surface-2)}.letter-pill{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-sm);color:var(--ink-2);display:inline-block;font-size:11.5px;font-weight:700;min-inline-size:30px;padding:1px 7px;text-align:center}.letter-pill[data-fail=true]{background:var(--danger-weak);border-color:var(--danger-border);color:var(--danger-ink)}.chart-panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);display:grid;gap:12px;margin-top:12px;padding:16px}.bar-row{align-items:center;display:grid;gap:12px;grid-template-columns:42px 1fr 42px}.bar-row span,.bar-row strong{font-size:13px}.bar-row strong{color:var(--ink);text-align:right}.bar-track{background:var(--surface-3);border-radius:999px;height:10px;overflow:hidden}.bar-track div{background:var(--accent);border-radius:inherit;height:100%}.admin-bar{align-items:center;display:flex;gap:12px;justify-content:flex-start;margin-bottom:16px}.admin-clo-defaults{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);margin:0 0 18px;padding:18px 20px}.admin-clo-defaults h3{font-size:15px;margin:0 0 6px}.admin-clo-defaults .matrix-note{margin:0 0 14px}.admin-defaults-grid{align-items:start;display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.admin-defaults-grid label{display:flex;flex-direction:column;font-size:13px;font-weight:600;gap:6px;min-inline-size:0}.admin-defaults-grid input,.admin-defaults-grid select{background:var(--surface);border:1px solid var(--line-2);border-radius:var(--radius-sm);box-sizing:border-box;font-weight:400;inline-size:100%;min-height:40px;padding:0 10px}.admin-defaults-grid label.admin-toggle{align-items:center;flex-direction:row;gap:8px;grid-column:1 / -1}.admin-defaults-grid label.admin-toggle input{flex:0 0 auto;min-height:0;width:auto}.admin-password{max-width:280px}.admin-wide-input{background:var(--surface);border:1px solid var(--line-2);border-radius:var(--radius-sm);font-weight:400;min-height:40px;padding:0 10px;width:100%}.preset-table input{background:var(--surface);border:1px solid var(--line-2);border-radius:6px;min-height:36px;padding:0 8px;width:100%}.preset-table td:first-child{width:96px}.message{align-items:center;background:var(--accent-weak);border:1px solid var(--accent-weak-border);border-radius:var(--radius-md);color:var(--accent-ink);display:flex;gap:10px;margin-block:16px;padding:12px 14px}.message+.message{margin-top:8px}.action-ready{align-items:center;color:var(--ok);display:inline-flex;font-size:13px;font-weight:600;gap:5px}.message.error{background:var(--danger-weak);border-color:var(--danger-border);color:#991b1b}.report-error{align-items:center;background:var(--danger-weak);border:1px solid var(--danger-border);border-radius:var(--radius-md);color:#991b1b;display:flex;gap:10px;margin:12px 0;padding:12px 14px}.empty{align-items:center;background:var(--surface);border:1px dashed var(--line-2);border-radius:var(--radius);color:var(--muted);display:flex;flex-direction:column;gap:12px;justify-content:center;min-height:220px;padding:32px;text-align:center}.empty svg{color:var(--muted-2);height:34px;width:34px}.empty span{font-size:14px;max-width:440px}.page-section{margin-top:18px}.section-heading{max-width:880px}.section-heading>span{color:var(--accent);font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.section-heading h2{font-size:20px;margin:6px 0 8px}.section-heading p{color:var(--muted);line-height:1.55;margin:0}.matrix-note{color:var(--muted);font-size:12.5px;margin:10px 0 0}.matrix-warning{align-items:center;background:var(--warn-weak);border:1px solid var(--warn-border);border-radius:8px;color:var(--warn-ink);display:flex;font-size:13px;font-weight:600;gap:8px;margin:12px 0 0;padding:9px 12px}.matrix-warning svg{color:var(--warn);flex-shrink:0}.status-pill,.source-pill{background:var(--surface-2);border:1px solid var(--line);border-radius:999px;color:var(--accent-ink);display:inline-block;font-size:12px;padding:4px 10px}.report-empty,.report-page{margin-top:18px}.report-toolbar{align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);display:flex;flex-wrap:wrap;gap:18px;justify-content:space-between;padding:16px 18px}.report-toolbar>div:first-child{display:grid;gap:3px}.report-toolbar span{color:var(--muted);font-size:12.5px}.report-toolbar strong{color:var(--ink);font-size:15px}.report-progress{display:grid;flex:1 1 260px;gap:6px;max-width:360px}.report-progress>div:first-child{align-items:baseline;display:flex;justify-content:space-between}.report-progress strong{color:var(--accent-ink)}.report-progress small{color:var(--muted);font-size:12px}.progress-track{background:var(--surface-3);border-radius:999px;height:10px;overflow:hidden}.progress-track span{background:var(--accent);border-radius:inherit;display:block;height:100%;transition:width var(--dur-base) var(--ease-standard)}.template-selector{display:grid;gap:3px;position:relative}.template-selector-eyebrow{color:var(--muted);font-size:12.5px}.template-chip{align-items:center;background:var(--surface);border:1px solid var(--line-2);border-radius:var(--radius-sm);color:var(--ink);cursor:pointer;display:inline-flex;font-size:15px;font-weight:600;gap:8px;padding:7px 10px}.template-chip:hover:not(:disabled){border-color:var(--accent)}.template-chip:disabled{cursor:default;opacity:.6}.template-chip>svg:first-child{color:var(--accent)}.template-chip .template-chip-name{color:var(--ink);font-size:15px;max-width:240px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.template-chip .template-chip-badge{background:var(--surface-3);border-radius:999px;color:var(--muted);flex-shrink:0;font-size:10.5px;font-weight:600;letter-spacing:.03em;padding:1px 7px;text-transform:uppercase}.template-chip .template-chip-caret{color:var(--muted);flex-shrink:0}.template-popover{background:var(--surface);border:1px solid var(--line-2);border-radius:var(--radius-md);box-shadow:var(--shadow-md, 0 10px 30px rgba(0, 0, 0, .12));inset-inline-start:0;margin-top:6px;max-width:calc(100vw - 32px);overflow:hidden;position:absolute;top:100%;width:380px;z-index:30}.template-popover-list{display:grid;gap:2px;grid-template-columns:minmax(0,1fr);padding:6px}.template-option{align-items:flex-start;background:transparent;border:1px solid transparent;border-radius:var(--radius-sm);cursor:pointer;display:flex;gap:9px;min-width:0;padding:9px 10px;text-align:start;width:100%}.template-option:hover{background:var(--surface-2)}.template-option.is-current{background:var(--accent-weak);border-color:var(--accent-weak)}.template-option-dot{align-items:center;border:1.5px solid var(--line-2);border-radius:999px;color:#fff;display:inline-flex;flex:none;height:18px;justify-content:center;margin-top:1px;width:18px}.template-option.is-current .template-option-dot{background:var(--accent);border-color:var(--accent)}.template-option-text{display:grid;gap:2px;grid-template-columns:minmax(0,1fr);min-width:0}.template-option-name{align-items:center;color:var(--ink);display:flex;font-size:13.5px;font-weight:600;gap:6px}.template-option-tag{background:var(--surface-3);border-radius:999px;color:var(--muted);font-size:10px;font-weight:600;letter-spacing:.03em;padding:1px 6px;text-transform:uppercase}.template-option-desc{color:var(--ink-2);font-size:12px;line-height:1.45;overflow-wrap:anywhere;white-space:normal}.template-popover-manage{align-items:center;background:transparent;border:none;border-top:1px solid var(--line);color:var(--accent-ink, var(--accent));cursor:pointer;display:flex;font-size:12.5px;font-weight:600;gap:7px;padding:10px 14px;width:100%}.template-popover-manage:hover{background:var(--surface-2)}.template-manager .template-cards{display:grid;gap:14px;margin-top:14px}.template-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);display:grid;gap:12px;padding:16px}.template-card-head{align-items:center;display:flex;flex-wrap:wrap;gap:10px}.template-name-input{border:1px solid var(--line);border-radius:var(--radius-sm);flex:1 1 220px;font-size:15px;font-weight:600;padding:7px 10px}.template-tag{background:var(--surface-3);border-radius:999px;color:var(--muted);font-size:10.5px;font-weight:600;letter-spacing:.03em;padding:2px 8px;text-transform:uppercase}.template-tag.custom{background:var(--accent-weak);color:var(--accent-ink, var(--accent))}.template-enable{align-items:center;color:var(--ink-2);display:inline-flex;font-size:13px;gap:6px;margin-inline-start:auto}.template-desc-input{border:1px solid var(--line);border-radius:var(--radius-sm);font-family:inherit;font-size:13px;padding:8px 10px;resize:vertical;width:100%}.template-axes{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.template-axes fieldset{border:1px solid var(--line);border-radius:var(--radius-sm);display:grid;gap:5px;margin:0;min-width:0;padding:8px 10px 10px}.template-axes legend{color:var(--muted);font-size:11.5px;font-weight:600;letter-spacing:.02em;padding:0 4px;text-transform:uppercase}.template-axes label,.template-toggles label{align-items:center;color:var(--ink);cursor:pointer;display:flex;font-size:13px;gap:7px}.template-toggles{display:flex;flex-wrap:wrap;gap:8px 18px}.template-card-actions{border-top:1px solid var(--line);display:flex;flex-wrap:wrap;gap:8px;padding-top:12px}.template-card-actions button,.template-manager-footer button{align-items:center;background:var(--surface);border:1px solid var(--line-2);border-radius:var(--radius-sm);color:var(--ink);cursor:pointer;display:inline-flex;font-size:13px;font-weight:500;gap:6px;padding:7px 12px}.template-card-actions button:hover,.template-manager-footer button:hover{border-color:var(--accent)}.template-card-actions button.danger{color:var(--danger)}.template-card-actions button.danger:hover{border-color:var(--danger)}.template-manager-footer{align-items:center;display:flex;gap:10px;justify-content:space-between;margin-top:16px}.template-manager-footer button.primary{background:var(--accent);border-color:var(--accent);color:#fff}.report-layout{align-items:start;display:grid;gap:18px;grid-template-columns:1fr;margin-top:18px}.report-editor{display:grid;gap:16px;min-width:0}.report-panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);min-width:0;padding:14px 16px}.report-page input,.report-page textarea{box-sizing:border-box;max-width:100%;min-width:0}.report-page textarea{resize:vertical;width:100%}.field-grid,.clo-mini-grid{display:grid;gap:14px;grid-template-columns:repeat(2,minmax(0,1fr));margin-top:14px}.report-field,.clo-card label{display:grid;gap:7px}.report-field input,.report-field textarea,.clo-card input,.clo-card textarea,.compact-table input{background:var(--surface);border:1px solid var(--line-2);border-radius:var(--radius-sm);color:var(--ink-2);min-height:40px;outline:none;padding:8px 11px;width:100%}.report-field textarea,.clo-card textarea{min-height:84px;resize:vertical}.report-field input:focus,.report-field textarea:focus,.clo-card input:focus,.clo-card textarea:focus,.compact-table input:focus{border-color:var(--accent);box-shadow:var(--ring)}.report-field.is-empty input,.report-field.is-empty textarea,.clo-card label.is-empty input,.clo-card label.is-empty textarea,.grade-matrix input.is-empty,.clo-matrix input.is-empty,.clo-matrix textarea.is-empty{background:var(--warn-weak);border-color:var(--warn-border)}.report-field small{color:var(--muted);font-size:12px}.cover-table-wrap,.manual-table-wrap{border:1px solid var(--line);border-radius:var(--radius-md);margin-top:14px;overflow-x:auto}.cover-matrix,.manual-matrix{border-collapse:collapse;table-layout:fixed;width:100%}.cover-matrix{min-width:760px}.cover-matrix td{background:var(--surface);border:1px solid var(--line);padding:8px 10px;vertical-align:middle}.cover-cell{align-items:center;color:var(--ink-2);font-size:13px;line-height:1.3}.cover-cell strong{color:var(--ink-2);display:inline;font-weight:700;margin-inline-end:4px}.cover-cell{vertical-align:top}.cover-cell input,.cover-cell textarea{background:transparent;border:1px solid transparent;border-radius:6px;color:var(--accent-ink);display:inline-block;font-weight:600;margin-inline-start:2px;min-height:26px;padding:2px 6px;width:min(58%,300px)}.cover-cell textarea{font:inherit;font-weight:600;line-height:1.4;resize:vertical;vertical-align:top}.cover-cell input:focus,.cover-cell textarea:focus{background:var(--surface);border-color:var(--accent);box-shadow:var(--ring)}.cover-cell[colspan="2"] input,.cover-cell[colspan="2"] textarea{width:min(74%,540px)}.cover-cell input.is-empty,.cover-cell textarea.is-empty,.manual-matrix input.is-empty,.manual-matrix textarea.is-empty,.remaining-report-layout>section>textarea.is-empty{background:var(--warn-weak);border-color:var(--warn-border)}.cover-cell .coordinator-select{background:var(--surface);border:1px solid var(--line, var(--warn-border));border-radius:6px;color:var(--accent-ink);font-weight:600;margin-inline-start:2px;max-width:min(72%,360px);min-height:26px;padding:2px 6px}.cover-cell .coordinator-select:focus{border-color:var(--accent);box-shadow:var(--ring);outline:none}.cover-cell .coordinator-select.is-empty{background:var(--warn-weak);border-color:var(--warn-border)}.cover-cell .coordinator-custom{display:block;margin-top:4px}.student-lines{display:grid;gap:3px;margin-top:4px}.cover-student-cell>input{width:64px}.student-lines label{align-items:center;display:flex;gap:6px;min-height:0}.student-lines span{color:var(--muted);font-size:12.5px;font-weight:600}.student-lines input{width:64px}.location-field.is-empty .location-checks{background:var(--warn-weak);border-color:var(--warn-border)}.location-checks{align-items:center;background:var(--surface);border:1px solid var(--line-2);border-radius:var(--radius-sm);display:flex;flex-wrap:wrap;gap:12px;min-height:40px;padding:7px 10px}.cover-cell .location-checks{background:transparent;border:0;border-radius:0;display:inline-flex;gap:12px;min-height:0;padding:0}.cover-cell .location-choice{gap:5px;min-height:0}.cover-cell .location-choice input{height:15px;min-height:15px;width:15px}.cover-cell .location-choice span{color:var(--ink-2);font-size:12.5px}.location-choice{align-items:center;color:var(--ink-2);display:inline-flex;gap:8px;min-height:24px}.location-choice input{accent-color:var(--accent);margin:0;min-height:16px;width:16px}.location-choice span{color:var(--ink-2);font-size:14px}.report-table-wrap{margin-top:14px;overflow-x:auto}.remaining-report-layout{display:grid;gap:22px;margin-top:14px}.remaining-report-layout h3{color:var(--ink);font-size:15px;margin:0 0 8px}.evaluation-section{display:grid;gap:16px}.evaluation-subsection{display:grid;gap:8px}.evaluation-subsection h4{color:var(--accent-ink);font-size:13.5px;font-weight:700;margin:0}.remaining-report-layout>section>textarea{background:var(--surface);border:1px solid var(--line-2);border-radius:var(--radius-sm);color:var(--ink-2);min-height:64px;outline:none;padding:8px 11px;resize:vertical}.remaining-report-layout>section>textarea:focus{border-color:var(--accent);box-shadow:var(--ring)}.report-single-field textarea{min-height:90px}.manual-matrix{min-width:760px}.manual-matrix th{background:var(--surface-3);border:1px solid var(--line);color:var(--ink-2);font-size:12px;font-weight:700;line-height:1.2;padding:10px 8px;text-align:center}.manual-matrix td{background:var(--surface);border:1px solid var(--line);padding:7px;vertical-align:middle}.manual-matrix input,.manual-matrix textarea{background:var(--surface);border:1px solid var(--line-2);border-radius:6px;color:var(--ink-2);font-size:13px;min-height:28px;outline:none;padding:5px 8px;width:100%}.manual-matrix textarea{min-height:44px;resize:vertical}.topics-matrix td{vertical-align:top}.topic-picker{background:var(--surface-2);border:1px solid var(--line-2);border-radius:6px;color:var(--ink-2);font-size:12px;inline-size:100%;margin-block-end:5px;padding:4px 6px}.topic-picker:focus{border-color:var(--accent);box-shadow:var(--ring);outline:none}.topics-matrix .topic-text{font-size:12.5px;line-height:1.4;min-height:5.5em;white-space:pre-wrap}.manual-matrix input:focus,.manual-matrix textarea:focus{border-color:var(--accent);box-shadow:var(--ring)}.survey-matrix{min-width:1040px}.survey-matrix tbody th{background:var(--surface-3);color:var(--ink-2);font-size:12.5px;font-weight:700;width:150px}.survey-tools{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-md);display:grid;gap:12px;margin-top:14px;padding:16px}.survey-tools-head p{color:var(--muted);font-size:12.5px;line-height:1.5;margin:4px 0 0}.survey-tools-actions{display:flex;flex-wrap:wrap;gap:10px}.ai-comment-row{align-items:center;display:flex;flex-wrap:wrap;gap:8px;margin-bottom:6px}.ai-generate-button{align-items:center;background:var(--surface);border:1px solid var(--accent);border-radius:var(--radius-sm);color:var(--accent-ink);cursor:pointer;display:inline-flex;font-size:12.5px;font-weight:600;gap:6px;min-height:30px;padding:0 12px}.ai-generate-button:hover:not(:disabled){background:var(--accent);color:#fff}.ai-generate-button:disabled{cursor:not-allowed;opacity:.55}.ai-comment-hint{color:var(--muted);font-size:12px}.ai-comment-error{color:var(--danger, #b42318);font-size:12px}.survey-demo-button{align-items:center;background:transparent;border:1px dashed var(--accent);border-radius:var(--radius-sm);color:var(--accent-ink);cursor:pointer;display:inline-flex;gap:6px;min-height:34px;padding:0 12px}.survey-demo-button:hover:not(:disabled){background:var(--warn-weak)}.survey-demo-button:disabled{cursor:not-allowed;opacity:.55}.clo-achievement-bar{align-items:center;background:var(--accent-weak);border:1px solid var(--accent-weak-border);border-radius:var(--radius);display:flex;flex-wrap:wrap;gap:14px;margin:16px 0;padding:12px 16px}.clo-achievement-gender{align-items:center;display:flex;gap:8px}.clo-achievement-msg{color:var(--accent-ink);font-size:12.5px;font-weight:600}.clo-achievement-msg.is-error{color:var(--danger, #b42318)}.survey-link-row{align-items:center;background:var(--surface);border:1px solid var(--line-2);border-radius:var(--radius-sm);color:var(--muted);display:flex;flex-wrap:wrap;gap:8px;padding:8px 10px}.survey-link-row input{background:transparent;border:0;color:var(--ink-2);flex:1 1 240px;font-size:13px;min-width:0;outline:none}.survey-link-row>button{min-height:34px;padding:0 12px}.survey-msg{color:var(--accent-ink);font-size:12.5px;margin:0}.survey-msg-error{color:var(--danger)}.survey-summary{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md);overflow:hidden}.survey-summary-head{align-items:baseline;border-bottom:1px solid var(--line);display:flex;flex-wrap:wrap;gap:8px;padding:10px 14px}.survey-summary-head strong{color:var(--ink);font-size:18px}.survey-summary-head span{color:var(--muted);font-size:12.5px}.survey-summary-wrap{overflow-x:auto}.survey-summary-table{border-collapse:collapse;min-width:520px;width:100%}.survey-summary-table th,.survey-summary-table td{border-bottom:1px solid var(--line);padding:8px 12px;text-align:left;vertical-align:top}.survey-summary-table thead th{background:var(--surface-3);color:var(--ink-2);font-size:11.5px;font-weight:700;letter-spacing:.03em;text-transform:uppercase}.survey-summary-table tbody th{color:var(--accent-ink);font-weight:700;white-space:nowrap;width:56px}.survey-summary-table tbody tr:last-child th,.survey-summary-table tbody tr:last-child td{border-bottom:0}.survey-clo-desc{color:var(--ink-2);max-width:420px}.grade-mode-toolbar{align-items:center;display:flex;flex-wrap:wrap;gap:12px;margin:20px 0 4px}.grade-mode-label{color:var(--ink-2);font-size:13px;font-weight:600}.grade-mode-toggle{background:var(--surface-3);border:1px solid var(--line);border-radius:999px;display:inline-flex;overflow:hidden;padding:3px}.grade-mode-toggle button{background:transparent;border:none;border-radius:999px;color:var(--muted);cursor:pointer;font-size:12.5px;font-weight:600;min-height:30px;padding:5px 14px;transition:background-color var(--dur-quick) var(--ease-standard),color var(--dur-quick) var(--ease-standard)}.grade-mode-toggle button:hover{background:transparent;color:var(--ink)}.grade-mode-toggle button.active{background:var(--surface);box-shadow:var(--shadow-sm);color:var(--accent-ink)}.gender-set-button{align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:999px;color:var(--ink-2);cursor:pointer;display:inline-flex;font-size:12.5px;font-weight:600;gap:6px;min-height:32px;padding:5px 14px;transition:border-color var(--dur-quick) var(--ease-standard),color var(--dur-quick) var(--ease-standard)}.gender-set-button:hover{border-color:var(--accent-weak-border);box-shadow:var(--shadow-sm);color:var(--accent-ink)}.modal-backdrop{align-items:center;background:#0f172a73;display:flex;inset:0;justify-content:center;padding:24px;position:fixed;z-index:1000}.modal-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-lg);display:flex;flex-direction:column;max-height:min(82vh,760px);max-width:560px;overflow:hidden;width:100%}.modal-head{align-items:flex-start;border-bottom:1px solid var(--line);display:flex;flex-shrink:0;gap:16px;justify-content:space-between;padding:18px 20px}.modal-head h3{font-size:16px;margin:0}.modal-sub{color:var(--ink-2);font-size:13px;margin:4px 0 0}.modal-foot{border-top:1px solid var(--line);display:flex;flex-shrink:0;gap:10px;justify-content:flex-end;padding:14px 20px}.modal-foot-note{align-self:center;color:var(--muted);font-size:12px;margin-inline-end:auto}.modal-foot-note.is-error{color:var(--danger)}.modal-overlay{align-items:center;background:#0f172a73;display:flex;inset:0;justify-content:center;padding:24px;position:fixed;z-index:1000}.modal-box{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-lg);display:flex;flex-direction:column;max-height:min(82vh,720px);overflow:hidden;width:100%}.col-map-modal{max-width:680px}.modal-header{align-items:center;border-bottom:1px solid var(--line);display:flex;flex-shrink:0;gap:16px;justify-content:space-between;padding:16px 20px}.modal-title{font-size:15px;font-weight:700;margin:0}.modal-close{background:transparent;border:0;border-radius:var(--radius-sm);color:var(--muted);cursor:pointer;font-size:16px;line-height:1;padding:4px 6px}.modal-close:hover{background:var(--surface-2);color:var(--ink)}.col-map-hint{border-bottom:1px solid var(--line);color:var(--ink-2);flex-shrink:0;font-size:13px;margin:0;padding:10px 20px}.col-map-empty{color:var(--muted);font-size:13px;margin:20px;text-align:center}.col-map-table{border-collapse:collapse;overflow-y:auto;width:100%}.col-map-table thead{position:sticky;top:0;z-index:1}.col-map-table th{background:var(--surface-2);border-bottom:1px solid var(--line);color:var(--muted);font-size:11.5px;font-weight:600;letter-spacing:.04em;padding:8px 16px;text-align:start;text-transform:uppercase}.col-map-table td{border-bottom:1px solid var(--line-2);padding:8px 16px;vertical-align:middle}.col-map-table tbody tr:last-child td{border-bottom:0}.col-map-orig{align-items:center;display:flex;flex-wrap:wrap;gap:6px}.col-map-raw{color:var(--ink);font-size:13px;font-weight:500}.col-map-badge{background:var(--accent-weak);border:1px solid var(--accent-weak-border, var(--line));border-radius:var(--radius-sm);color:var(--accent-ink);font-size:11px;font-weight:600;padding:1px 6px}.col-map-samples{display:flex;flex-wrap:wrap;gap:4px;min-width:80px}.col-map-sample{background:var(--surface-2);border:1px solid var(--line-2);border-radius:var(--radius-sm);color:var(--ink-2);font-size:11px;padding:1px 5px}.col-map-input{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);color:var(--ink);font-size:13px;padding:5px 8px;width:100%}.col-map-input:focus{border-color:var(--accent);outline:none}.modal-footer{align-items:center;border-top:1px solid var(--line);display:flex;flex-shrink:0;gap:10px;justify-content:flex-end;padding:12px 20px}.grade-col-row{align-items:center;display:flex;flex-wrap:wrap;gap:8px;padding:4px 0;width:100%}.grade-col-label{color:var(--muted);font-size:12.5px;font-weight:600;white-space:nowrap}.grade-col-select{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);color:var(--ink);font-size:13px;max-width:220px;padding:4px 8px}.grade-col-select:focus{border-color:var(--accent);outline:none}@media(max-width:640px){.modal-backdrop{padding:0}.modal-card{border-radius:0;width:100%;max-width:none;height:100vh;height:100dvh;max-height:none}}@media(max-height:560px){.modal-backdrop{padding:8px}.modal-card{height:calc(100vh - 16px);height:calc(100dvh - 16px);max-height:none}}.create-mode-toggle{display:flex;flex-shrink:0;gap:6px;padding:8px 20px 4px}.create-mode-toggle button{align-items:center;background:var(--surface);border:1px solid var(--line-2);border-radius:var(--radius-sm);color:var(--ink-2);cursor:pointer;display:inline-flex;flex:1;font:600 13.5px/1 inherit;gap:7px;justify-content:center;min-height:40px}.create-mode-toggle button:hover{border-color:var(--accent)}.create-mode-toggle button.active{background:var(--accent-weak);border-color:var(--accent);color:var(--accent-ink)}.create-mode-toggle button:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.new-report-modal .import-grid{grid-template-columns:1fr;gap:14px}.new-report-modal .report-context-row{margin-bottom:14px;padding-bottom:14px}.import-context-hint{margin-inline-start:auto}.download-warn-modal{width:min(440px,94vw)}.download-warn-list{display:flex;flex-direction:column;gap:8px;list-style:none;margin:14px 0 0;padding:0}.download-warn-list li{align-items:flex-start;background:var(--warn-weak);border:1px solid var(--warn-border);border-radius:var(--radius-sm);color:var(--warn-ink);display:flex;font-size:13px;gap:8px;line-height:1.4;padding:9px 11px}.download-warn-list li svg{color:var(--warn);flex:0 0 auto;margin-top:2px}.download-warn-note{color:var(--muted);font-size:12.5px;margin:12px 0 0}.download-warn-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:18px}.new-report-modal{max-width:none;width:min(640px,calc(100vw - 48px))}.new-report-modal.is-files-mode{max-height:min(90vh,860px)}.new-report-modal.is-files-mode.has-grades{width:min(980px,calc(100vw - 48px))}.new-report-body{display:flex;flex-direction:column;gap:10px;padding:16px 20px;flex:1 1 auto;min-height:0;overflow-y:auto}@media(min-width:820px){.new-report-modal.is-files-mode.has-grades .new-report-body{align-content:start;display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.new-report-modal.is-files-mode.has-grades .grades-preview{grid-column:1 / -1}}@media(max-width:640px){.new-report-modal,.new-report-modal.is-files-mode{width:100%}}.file-pick{align-items:center;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-md);display:flex;gap:12px;padding:12px 14px}.file-pick.is-filled{background:var(--accent-weak);border-color:var(--accent-weak-border)}.file-pick.is-invalid{background:var(--danger-weak);border-color:var(--danger-border)}.file-pick.is-invalid .file-pick-icon{border-color:var(--danger-border);color:var(--danger)}.file-pick-error{align-items:center;color:var(--danger);display:flex;font-size:12px;font-weight:500;gap:5px;margin-top:1px}.file-pick-error svg{flex:0 0 auto}.grades-preview{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md);display:flex;flex-direction:column;gap:8px;padding:12px 14px}.grades-preview-loading,.grades-preview-note{align-items:center;color:var(--muted);display:flex;font-size:12.5px;gap:6px}.grades-preview-note{color:var(--danger)}.grades-preview-head{align-items:center;color:var(--ink);display:flex;font-size:13.5px;gap:7px}.grades-preview-head svg{color:var(--accent)}.grades-preview-head strong{color:var(--accent-ink);font-family:var(--font-data)}.grades-preview-sub{color:var(--muted);font-size:11.5px;margin:0}.grades-columns{display:flex;flex-direction:column;gap:6px}.sheet-preview{display:flex;flex-direction:column;gap:0}.sheet-tabs{display:flex;gap:0;border-bottom:1px solid var(--line);margin-bottom:0;overflow-x:auto}.sheet-tab{background:var(--surface-2);border:1px solid var(--line);border-bottom:none;border-radius:var(--radius-sm) var(--radius-sm) 0 0;color:var(--ink-2);cursor:pointer;font-size:11.5px;margin-inline-end:2px;padding:4px 12px;white-space:nowrap}.sheet-tab.is-active{background:var(--surface);border-color:var(--accent);color:var(--accent-ink);font-weight:600}.column-map-panel{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-sm);display:flex;flex-direction:column;gap:8px;margin:8px 0;overflow:visible;padding:10px}.column-map-head{align-items:center;display:flex;gap:10px;justify-content:space-between}.column-map-head strong{color:var(--ink);font-size:12.5px}.column-map-head span{color:var(--muted);font-family:var(--font-data);font-size:11px}.column-map-list{display:grid;gap:8px;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));overflow:visible}.column-map-row{align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);display:grid;gap:10px;grid-template-columns:minmax(0,1fr) 28px minmax(170px,.95fr);overflow:visible;padding:9px 10px;position:relative}.column-map-field{display:flex;flex-direction:column;gap:4px;min-width:0}.column-map-label{color:var(--muted);font-size:10.5px;font-weight:700;letter-spacing:0}.column-map-link{align-items:center;align-self:end;background:var(--accent-weak);border:1px solid var(--accent-weak-border);border-radius:var(--radius-sm);color:var(--accent);display:inline-flex;height:34px;justify-content:center;width:28px}.column-map-header{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-sm);color:var(--ink);font-family:var(--font-data);font-size:12px;font-weight:600;min-height:34px;overflow:hidden;padding:6px 8px;text-overflow:ellipsis;white-space:nowrap}.column-map-auto{color:var(--muted);font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.column-map-menu{display:block;min-width:0;position:relative}.column-map-menu.is-open{z-index:50}.column-map-trigger{align-items:center;background:var(--surface);border:1px solid var(--line-2);border-radius:var(--radius-sm);color:var(--accent-ink);cursor:pointer;display:flex;font-size:12px;font-weight:600;gap:8px;justify-content:space-between;min-height:34px;min-width:0;padding:6px 8px;text-align:start;width:100%}.column-map-trigger span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.column-map-trigger svg{color:var(--muted);flex:0 0 auto}.column-map-menu.is-open .column-map-trigger,.column-map-trigger:focus-visible{border-color:var(--accent);box-shadow:var(--ring);outline:none}.column-map-menu.is-open .column-map-trigger svg{color:var(--accent);transform:rotate(180deg)}.column-map-popover{background:var(--surface);border:1px solid var(--line-2);border-radius:var(--radius-sm);box-shadow:var(--shadow-md);display:flex;flex-direction:column;gap:2px;inset-inline:0;margin-top:4px;max-height:min(290px,56vh);overflow-y:auto;padding:4px;position:absolute;top:100%;z-index:40}.column-map-option{align-items:center;background:transparent;border:0;border-radius:calc(var(--radius-sm) - 2px);color:var(--ink-2);cursor:pointer;display:flex;font-size:12px;gap:8px;justify-content:space-between;min-height:30px;padding:5px 8px;text-align:start;width:100%}.column-map-option span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.column-map-option svg{color:var(--accent);flex:0 0 auto}.column-map-option:hover,.column-map-option:focus-visible,.column-map-option.is-selected{background:var(--accent-weak);color:var(--accent-ink);outline:none}.column-map-option.is-selected{font-weight:700}.column-map-group{color:var(--muted);font-size:10px;font-weight:700;letter-spacing:0;margin-top:4px;padding:5px 8px 2px;text-transform:uppercase}.column-map-locked{background:var(--accent-weak);border:1px solid var(--accent-weak-border);border-radius:var(--radius-sm);color:var(--accent-ink);display:block;font-size:12px;font-weight:600;min-width:0;overflow:hidden;padding:6px 8px;text-overflow:ellipsis;white-space:nowrap}@media(max-width:720px){.column-map-list,.column-map-row{grid-template-columns:1fr}.column-map-link{display:none}}.sheet-grid-wrap{border:1px solid var(--line);border-radius:0 var(--radius-sm) var(--radius-sm) var(--radius-sm);max-height:none;overflow-x:auto;overflow-y:hidden}.sheet-grid{border-collapse:collapse;font-family:var(--font-data);font-size:12.5px;min-width:100%;white-space:nowrap}.sheet-grid thead{position:sticky;top:0;z-index:2}.sheet-col-head{background:var(--surface-2);border:1px solid var(--line);min-width:128px;padding:6px 8px 0;text-align:start;vertical-align:top}.sheet-col-head.is-key{background:var(--accent-weak)}.sheet-col-raw{color:var(--ink);font-weight:600;max-width:180px;overflow:hidden;text-overflow:ellipsis}.sheet-col-auto{border-top:1px dashed var(--line);color:var(--accent-ink);font-size:11.5px;font-weight:500;margin-top:4px;max-width:180px;overflow:hidden;padding:3px 0;text-overflow:ellipsis}.sheet-row-num{background:var(--surface-2);border:1px solid var(--line);color:var(--muted);font-size:11.5px;min-width:28px;padding:5px 7px;text-align:end;-webkit-user-select:none;user-select:none}.sheet-cell{border:1px solid var(--line);color:var(--ink-2);max-width:180px;overflow:hidden;padding:5px 8px;text-overflow:ellipsis}.grades-columns-list{display:flex;flex-wrap:wrap;gap:6px}.grades-col-chip{align-items:baseline;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-sm);display:inline-flex;font-size:11.5px;gap:6px;padding:3px 8px}.grades-col-chip.is-key{background:var(--accent-weak);border-color:var(--accent-weak-border)}.grades-col-field{color:var(--muted)}.grades-col-chip.is-key .grades-col-field{color:var(--accent-ink);font-weight:600}.grades-col-header{color:var(--ink);font-family:var(--font-data)}.grades-columns-warn{align-items:center;color:var(--warn-ink);display:flex;font-size:11.5px;gap:5px}.grades-columns-warn svg{flex:0 0 auto}.grades-section-list{display:flex;flex-direction:column;gap:6px;list-style:none;margin:0;max-height:none;overflow:visible;padding:0}.grades-section-row{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-sm);display:flex;flex-direction:column}.grades-section-main{align-items:center;display:flex;gap:10px;justify-content:space-between;padding:7px 10px}.grades-section-row.is-unset{box-shadow:inset 3px 0 0 0 var(--warn)}.grades-section-name{align-items:baseline;display:flex;gap:7px;min-width:0}.grades-section-name strong{color:var(--ink);font-size:13px}.grades-section-name small{color:var(--muted);font-family:var(--font-data);font-size:11px}.grades-names{border-top:1px dashed var(--line);padding:7px 12px 8px}.grades-name-list{display:flex;flex-direction:column;gap:3px;max-height:none;overflow:visible}.grades-name-row{align-items:baseline;display:flex;font-size:12px;gap:7px;justify-content:flex-start;min-width:0}.grades-name-row .grades-name{color:var(--ink-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.grades-name-row small{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-xs);color:var(--muted);flex:0 0 auto;font-family:var(--font-data);font-size:10.5px;padding:0 4px}@media(min-width:820px){.new-report-modal.is-files-mode .grades-name-list{display:grid;gap:3px 18px;grid-template-columns:repeat(2,minmax(0,1fr))}}.grades-see-all{background:none;border:0;color:var(--accent);cursor:pointer;font-size:11.5px;font-weight:600;margin-top:6px;min-height:0;padding:2px 0}.grades-see-all:hover{color:var(--accent-ink);text-decoration:underline}.file-pick-icon{align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);color:var(--accent);display:flex;flex:0 0 auto;height:36px;justify-content:center;width:36px}.file-pick-main{display:flex;flex-direction:column;gap:2px;min-width:0}.file-pick-title{align-items:center;display:flex;gap:7px}.file-pick-main strong{color:var(--ink);font-size:13.5px}.file-pick-hint{color:var(--muted);font-family:var(--font-data);font-size:11.5px}.file-pick-name{color:var(--accent-ink);font-size:12.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-pick-btn{align-items:center;background:var(--surface);border:1px solid var(--line-2);border-radius:var(--radius-sm);color:var(--ink-2);cursor:pointer;display:inline-flex;flex:0 0 auto;font-size:12.5px;font-weight:600;gap:6px;margin-inline-start:auto;min-height:32px;padding:0 12px}.file-pick-btn:hover{background:var(--surface-2);border-color:var(--muted-2);color:var(--ink)}.file-pick-btn input{display:none}.file-pick>.icon-button{margin-inline-start:auto}.student-gender-toolbar{align-items:center;display:flex;justify-content:space-between;padding:12px 20px 4px}.student-gender-stats{display:flex;flex-direction:column;gap:1px}.student-gender-count{color:var(--ink-2);font-size:13px;font-weight:600}.student-gender-meta{color:var(--muted);font-size:12px;font-weight:500}.student-gender-bulk{display:flex;gap:8px}.student-gender-auto{background:var(--accent-weak);border-radius:999px;color:var(--accent-ink);font-size:11.5px;font-weight:600;padding:2px 9px}.student-gender-sections{display:grid;gap:12px;overflow-y:auto;padding:8px 20px 16px}.gender-section{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-sm);padding:8px 12px 10px}.gender-section-head{align-items:center;display:flex;gap:12px;justify-content:space-between}.gender-section-title{align-items:baseline;color:var(--ink);display:flex;gap:8px}.gender-section-title strong{font-size:14px}.gender-section-title small{color:var(--muted);font-size:12px}.gender-section-list{display:flex;flex-direction:column;list-style:none;margin:6px 0 0;padding:0}.gender-section-list .student-gender-row:last-child{border-bottom:0}.gender-section-more{font-size:12.5px;margin-block-start:6px}.student-gender-list{display:flex;flex-direction:column;list-style:none;margin:0;overflow-y:auto;padding:8px 20px 16px}.student-gender-row{align-items:center;border-bottom:1px solid var(--surface-3);display:flex;gap:12px;justify-content:space-between;padding:8px 0}.student-gender-name{display:flex;flex-direction:column;min-width:0}.student-gender-name strong{font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.student-gender-name small{color:var(--muted);font-size:12px}.student-gender-pick{flex:none}.student-gender-empty{padding:24px 20px;text-align:center}.grade-matrix-wrap{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md);margin-top:14px;overflow-x:auto}.grade-matrix{border-collapse:collapse;min-width:980px;table-layout:fixed;width:100%}.grade-matrix th,.grade-matrix td{border:1px solid var(--line);text-align:center;vertical-align:middle}.grade-corner{background:var(--surface-3);width:132px}.grade-group{background:var(--ink-2);color:#fff;font-size:12px;font-weight:700;height:30px}.grade-group-status{background:var(--muted)}.grade-row-label{background:var(--surface-3);color:var(--ink-2);font-size:12px;font-weight:700;line-height:1.2;padding:8px;text-align:left;width:132px}.grade-label{background:var(--surface-2);color:var(--ink-2);font-size:12px;font-weight:700;height:58px;min-width:54px;padding:6px 4px}.status-label{background:var(--surface-2);color:var(--muted);height:92px}.status-label span{display:inline-block;font-size:10px;line-height:1;transform:rotate(180deg);white-space:nowrap;writing-mode:vertical-rl}.grade-matrix tbody td{background:var(--surface);padding:5px}.grade-matrix input{background:var(--surface);border:1px solid var(--line-2);border-radius:6px;color:var(--ink-2);font-size:13px;min-height:32px;outline:none;padding:4px 6px;text-align:center;width:100%}.grade-matrix input:focus{border-color:var(--accent);box-shadow:var(--ring)}.grade-matrix input.derived{background:var(--surface-3);color:var(--accent-ink);cursor:not-allowed}.female-grade-matrix{min-width:980px}.clo-report-page{padding-top:4px}.clo-report-header{align-items:flex-start;display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;margin-bottom:18px}.clo-report-header h2{font-size:20px;margin:6px 0}.clo-report-header p{color:var(--muted);font-size:13.5px;margin:0;max-width:720px}.clo-report-actions{align-items:center;display:flex;flex-wrap:wrap;gap:10px}.clo-table-wrap{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md);margin-top:14px;overflow-x:auto}.clo-matrix{border-collapse:collapse;min-width:1180px;table-layout:fixed;width:100%}.clo-matrix col.clo-col-code{width:3.5%}.clo-matrix col.clo-col-desc{width:17%}.clo-matrix col.clo-col-plo{width:5%}.clo-matrix col.clo-col-methods{width:9%}.clo-matrix col.clo-col-target{width:5.5%}.clo-matrix col.clo-col-count{width:4.5%}.clo-matrix col.clo-col-comment{width:12%}.clo-matrix.clo-matrix-simple{min-width:760px}.clo-matrix-simple col.clo-col-code{width:6.2%}.clo-matrix-simple col.clo-col-desc{width:19.9%}.clo-matrix-simple col.clo-col-plo{width:11.9%}.clo-matrix-simple col.clo-col-methods{width:16.5%}.clo-matrix-simple col.clo-col-target{width:13.6%}.clo-matrix-simple col.clo-col-comment{width:18.4%}.clo-matrix th,.clo-matrix td{border:1px solid var(--line);text-align:center;vertical-align:middle}.clo-matrix thead th{background:var(--ink-2);color:#fff;font-size:11px;font-weight:700;line-height:1.2;padding:7px 4px;word-break:break-word}.clo-matrix thead th.clo-target-default{background:var(--muted)}.clo-matrix.clo-matrix-simple tbody tr.clo-data-row.clo-row-even td{background:#f2f2f2}.clo-matrix.clo-matrix-simple tbody tr.clo-data-row td,.clo-matrix.clo-matrix-simple tbody tr.clo-data-row th.clo-code-cell{border:2px solid #ffffff}.clo-matrix tbody th{background:var(--surface-3);color:var(--ink);font-size:13px;font-weight:700}.clo-code-cell{white-space:nowrap}.clo-matrix tbody td{background:var(--surface);padding:4px}.clo-matrix tbody tr.clo-category-row>th,.clo-matrix tbody tr.clo-category-row>td{background:var(--accent-weak)!important}.clo-category-row strong{color:var(--accent-ink);display:block;font-weight:700;min-height:22px;padding:8px;text-align:left}.clo-add-row td{background:transparent;border:none;padding:5px 0}.clo-add-btn{background:none;border:1px dashed var(--accent-weak-border);border-radius:6px;color:var(--accent-ink);cursor:pointer;font-size:12px;font-weight:600;padding:5px 14px}.clo-add-btn:hover{background:var(--accent-weak);color:var(--accent-ink)}.clo-remove-btn{background:none;border:none;color:var(--danger);cursor:pointer;font-size:15px;line-height:1;margin-inline-start:4px;padding:0 2px;vertical-align:middle}.clo-remove-btn:hover{color:#991b1b}.clo-matrix input,.clo-matrix textarea{background:var(--surface);border:1px solid var(--line-2);border-radius:6px;box-sizing:border-box;color:var(--ink-2);font-size:12px;min-height:32px;outline:none;padding:4px 6px;text-align:center;width:100%}.clo-matrix textarea{line-height:1.35;min-height:86px;resize:vertical;text-align:left}.clo-matrix input:focus,.clo-matrix textarea:focus{border-color:var(--accent);box-shadow:var(--ring)}.activities-editor{display:flex;flex-direction:column;gap:16px}.bulk-drop{align-items:center;background:var(--accent-weak);border:2px dashed var(--accent);border-radius:var(--radius-md);display:flex;flex-wrap:wrap;gap:16px;padding:22px;transition:border-color var(--dur-quick) var(--ease-standard),background-color var(--dur-quick) var(--ease-standard)}.bulk-drop.is-over{background:var(--accent);border-color:var(--accent-ink);border-style:solid;box-shadow:0 0 0 4px var(--accent-weak)}.bulk-drop.is-over .bulk-drop-copy strong,.bulk-drop.is-over .bulk-drop-copy span{color:#fff}.bulk-drop.is-over .bulk-drop-icon{background:#fff;border-color:#fff;color:var(--accent)}.bulk-drop.is-busy{opacity:.7}.bulk-drop-icon{background:var(--surface);border:1px solid var(--accent-weak-border);border-radius:50%;box-sizing:content-box;color:var(--accent);flex-shrink:0;padding:9px}.bulk-drop-copy{display:flex;flex:1 1 320px;flex-direction:column;gap:3px;min-width:0}.bulk-drop-copy strong{color:var(--ink);font-size:15.5px;font-weight:700}.bulk-drop-copy span{color:var(--ink-2);font-size:12.5px;line-height:1.45}.bulk-drop-browse{background:var(--accent);border:1px solid var(--accent);border-radius:var(--radius-sm);color:#fff;cursor:pointer;flex-shrink:0;font-size:13.5px;font-weight:700;padding:10px 18px}.bulk-drop-browse:hover{background:var(--accent-ink);border-color:var(--accent-ink)}.bulk-drop-browse:focus-within{box-shadow:var(--ring);outline:none}.bulk-drop-browse input[type=file]{clip:rect(0 0 0 0);clip-path:inset(50%);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px}.bulk-drop-error{color:var(--danger);flex-basis:100%;font-size:12.5px;margin:0}.bulk-review-backdrop{align-items:center;background:#0f172a73;display:flex;inset:0;justify-content:center;padding:20px;position:fixed;z-index:60}.bulk-review{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);display:flex;flex-direction:column;max-height:min(82vh,760px);max-width:640px;width:100%}.bulk-review-head{align-items:flex-start;border-bottom:1px solid var(--line);display:flex;gap:12px;justify-content:space-between;padding:16px 18px}.bulk-review-head h3{color:var(--ink);font-size:16px;margin:0}.bulk-review-head p{color:var(--muted);font-size:12.5px;line-height:1.45;margin:8px 0 0}.bulk-review-counts{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.bulk-stat{align-items:baseline;background:var(--surface-2);border:1px solid var(--line);border-radius:999px;color:var(--muted);display:inline-flex;font-size:12px;gap:5px;padding:3px 10px}.bulk-stat strong{color:var(--ink);font-size:13px;font-weight:700}.bulk-stat.is-ok{background:var(--accent-weak);border-color:transparent;color:var(--accent-ink)}.bulk-stat.is-ok strong{color:var(--accent-ink)}.bulk-stat.is-warn{background:var(--danger-weak);border-color:var(--danger-border);color:var(--danger)}.bulk-stat.is-warn strong{color:var(--danger)}.bulk-review-breakdown{color:var(--muted);font-size:12px;line-height:1.7;margin:8px 0 0}.bulk-review-breakdown strong{color:var(--ink-2);font-weight:700}.bulk-review-flags{display:flex;flex-direction:column;gap:4px;margin-top:8px}.bulk-review-body{display:flex;flex-direction:column;gap:12px;overflow-y:auto;padding:16px 18px}.bulk-review-list{display:flex;flex-direction:column;gap:10px;list-style:none;margin:0;padding:0}.bulk-review-item{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-sm);display:flex;flex-direction:column;gap:7px;padding:12px 14px}.bulk-review-item-top{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.bulk-review-badge{background:var(--accent-weak);border-radius:999px;color:var(--accent-ink);font-size:11px;font-weight:700;letter-spacing:.02em;padding:2px 9px;text-transform:uppercase}.bulk-review-name{color:var(--ink);font-size:14px}.bulk-review-count,.bulk-review-scores{color:var(--muted);font-size:12.5px}.bulk-review-scores{margin-inline-start:auto}.bulk-review-sources{display:flex;flex-wrap:wrap;gap:6px}.bulk-source{align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);color:var(--ink-2);display:inline-flex;font-size:11.5px;gap:5px;padding:3px 8px}.bulk-source.is-scores{color:var(--accent-ink)}.bulk-review-ai{align-items:center;background:var(--accent);border-radius:999px;color:#fff;display:inline-flex;flex-shrink:0;font-size:10.5px;font-weight:700;gap:3px;letter-spacing:.04em;padding:2px 8px}.bulk-review-warn{align-items:center;color:var(--danger);display:flex;font-size:12px;gap:6px;margin:0}.bulk-review-include{accent-color:var(--accent);cursor:pointer;flex-shrink:0;height:16px;margin-inline-end:2px;width:16px}.bulk-review-flag{align-items:center;color:var(--ink-2);display:flex;font-size:12px;gap:6px;margin:0}.bulk-review-flag svg{color:var(--accent);flex-shrink:0}.bulk-weight-flag.is-over{color:var(--warn-ink);font-weight:600}.bulk-weight-flag.is-over svg{color:var(--warn)}.bulk-weight-flag.is-under{color:var(--danger-ink);font-weight:600}.bulk-weight-flag.is-under svg{color:var(--danger)}.bulk-review-item.is-excluded{opacity:.55}.ai-usage-meter{background:var(--surface-2);border:1px solid var(--line);border-inline-start:3px solid var(--accent);border-radius:var(--radius-sm);display:grid;gap:5px;padding:7px 9px}.ai-usage-top{align-items:center;display:flex;gap:5px}.ai-usage-top svg{color:var(--accent);flex-shrink:0}.ai-usage-title{color:var(--ink-2);font-size:10.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.ai-usage-val{color:var(--ink);font-size:13px;font-variant-numeric:tabular-nums;font-weight:700;margin-inline-start:auto}.ai-usage-val small{color:var(--muted);font-size:9.5px;font-weight:600}.ai-usage-delta{background:var(--accent-weak);border-radius:999px;color:var(--accent-ink);font-size:10px;font-weight:700;padding:0 5px}.ai-usage-bar{background:var(--line-2);block-size:4px;border-radius:999px;overflow:hidden}.ai-usage-bar-fill{background:var(--accent);block-size:100%;border-radius:999px;display:block;transition:inline-size var(--dur-base) var(--ease-standard)}.ai-usage-bar.is-over .ai-usage-bar-fill{background:var(--danger)}.ai-usage-foot{align-items:center;display:flex;gap:8px;justify-content:space-between;min-block-size:14px}.ai-usage-courses{color:var(--accent-ink);font-size:11px;font-weight:600}.ai-usage-blocked{color:var(--danger);font-size:11px;font-weight:600}.ai-usage-guest{color:var(--ink-2);font-size:11px;line-height:1.4;margin:0}.ai-usage-dev{align-items:center;color:var(--muted);display:flex;font-size:10px;font-variant-numeric:tabular-nums;gap:4px}.ai-usage-dev-tag{background:var(--ink);border-radius:3px;color:var(--surface);font-size:8.5px;font-weight:700;letter-spacing:.04em;padding:0 3px}.account-page{display:grid;gap:16px;max-inline-size:920px}.account-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md);padding:16px 20px}.account-card h3{align-items:center;display:flex;font-size:15px;gap:7px;margin:0 0 12px}.account-card h3 svg{color:var(--accent);flex-shrink:0}.account-card-note{color:var(--ink-2);font-size:13px;line-height:1.5;margin:0 0 12px}.account-stats{display:grid;gap:18px;grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}.account-stat{display:grid;gap:5px;align-content:start}.account-stat-label{color:var(--muted);font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.account-stat-value{color:var(--ink);font-size:22px;font-variant-numeric:tabular-nums;font-weight:700;line-height:1.1}.account-stat-value small{color:var(--muted);font-size:13px;font-weight:500}.account-stat-bar{background:var(--line-2);block-size:6px;border-radius:999px;overflow:hidden}.account-stat-bar span{background:var(--accent);block-size:100%;display:block;border-radius:999px;transition:inline-size var(--dur-base) var(--ease-standard)}.account-stat-bar.is-over span{background:var(--danger)}.account-stat-sub{color:var(--muted);font-size:12px}.account-profile{display:grid;gap:12px;max-inline-size:440px}.account-profile label{display:grid;gap:4px}.account-profile label>span{color:var(--ink-2);font-size:12.5px;font-weight:600}.account-profile-meta{color:var(--ink-2);display:grid;gap:4px;font-size:12.5px;margin-block:2px}.account-guest-note{color:var(--ink-2);font-size:13px;line-height:1.6;margin:0}.account-cv{align-items:center;display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between}.account-cv-file{align-items:center;color:var(--ink);display:inline-flex;gap:8px;text-decoration:none}.account-cv-file:hover{text-decoration:underline}.account-cv-file svg{color:var(--accent);flex-shrink:0}.account-cv-file small{color:var(--muted)}.account-cv-actions{display:flex;gap:8px}.account-files{inline-size:100%}.account-files-name{font-weight:600;word-break:break-word}.account-files-size,.account-files-date{color:var(--ink-2);font-variant-numeric:tabular-nums;white-space:nowrap}.account-files-head{align-items:baseline;display:flex;gap:12px;justify-content:space-between;margin-block-end:6px}.account-files-head h3{margin:0}.account-files-total{color:var(--ink-2);font-size:12.5px;white-space:nowrap}.account-filters{display:grid;gap:7px;margin-block-end:12px}.account-filter-group{align-items:baseline;display:flex;flex-wrap:wrap;gap:6px}.account-filter-label{color:var(--muted);flex-shrink:0;font-size:10.5px;font-weight:700;letter-spacing:.04em;min-inline-size:48px;text-transform:uppercase}.account-chips{display:flex;flex-wrap:wrap;gap:6px}.account-chip{background:var(--surface-2);border:1px solid var(--line);border-radius:999px;color:var(--ink-2);cursor:pointer;font-size:12px;font-weight:600;padding:3px 11px;transition:background-color var(--dur-quick) var(--ease-standard),color var(--dur-quick) var(--ease-standard),border-color var(--dur-quick) var(--ease-standard)}.account-chip:hover{border-color:var(--accent);color:var(--accent-ink)}.account-chip.is-active{background:var(--accent);border-color:var(--accent);color:#fff}.account-files-shown{color:var(--muted);font-size:12px;padding-block-start:2px}.account-sort{background:none;border:0;color:inherit;cursor:pointer;font:inherit;font-weight:700;padding:0;white-space:nowrap}.account-sort:hover{color:var(--accent-ink)}.account-files-type{background:var(--surface-3);border-radius:var(--radius-sm);color:var(--ink-2);font-size:11px;font-weight:600;padding:1px 7px;white-space:nowrap}.account-files-course{font-size:12.5px;text-align:start}.account-files-term{color:var(--muted);display:block;font-size:11px;margin-block-start:1px}.danger-text{color:var(--danger)}.startup-error{align-items:center;display:grid;gap:10px;justify-items:center;margin:18vh auto 0;max-inline-size:380px;padding:0 20px;text-align:center}.startup-error svg{color:var(--danger)}.startup-error h2{font-size:19px;margin:2px 0 0}.startup-error p{color:var(--ink-2);font-size:13.5px;line-height:1.55;margin:0}.startup-error button{margin-block-start:6px}.ai-usage-admin{margin-block-start:28px}.ai-usage-table td{vertical-align:middle}.ai-usage-table-sub{color:var(--muted);display:block;font-size:11.5px;margin-block-start:1px}.ai-usage-table-limit{color:var(--muted)}.ai-usage-table td.is-over{color:var(--danger);font-weight:600}.ai-usage-table tr.is-blocked{background:color-mix(in srgb,var(--danger) 6%,transparent)}.ai-usage-cap-input{inline-size:7.5rem;max-inline-size:100%}.field-hint{color:var(--muted);display:block;font-size:11.5px;margin-block-start:4px}.bulk-review-item.is-excluded .bulk-review-name{text-decoration:line-through}.bulk-review-empty{color:var(--muted);font-size:13px;margin:0;padding:20px 0;text-align:center}.bulk-review-unmatched{background:var(--surface-2);border:1px dashed var(--line-2);border-radius:var(--radius-sm);display:flex;flex-direction:column;gap:4px;padding:10px 12px}.bulk-review-unmatched strong{color:var(--ink-2);font-size:12.5px}.bulk-review-unmatched p{align-items:center;color:var(--muted);display:flex;font-size:12px;gap:6px;margin:0}.bulk-unmatched-name{color:var(--ink-2);font-weight:600}.bulk-review-foot{border-top:1px solid var(--line);display:flex;gap:10px;justify-content:flex-end;padding:14px 18px}.activities-table-wrap{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md);padding:10px}.activities-table{border-collapse:collapse;width:100%}.activities-table th,.activities-table td{border-bottom:1px solid var(--line);padding:7px 8px;text-align:left;vertical-align:middle}.activities-table thead th{color:var(--muted);font-size:11.5px;font-weight:700;letter-spacing:.03em;text-transform:uppercase}.activity-group-body{display:flex;flex-direction:column;gap:16px}.add-another-instance{align-items:center;align-self:flex-start;background:var(--surface-2);border:1px dashed var(--line-2);border-radius:var(--radius-sm);color:var(--accent-ink);cursor:pointer;display:inline-flex;font-size:13px;font-weight:600;gap:7px;min-height:0;padding:9px 16px}.add-another-instance:hover{background:var(--accent-weak);border-color:var(--accent-weak-border)}.activities-table tr.is-disabled td{opacity:.5}.activities-table input[type=text],.activities-table input:not([type]),.activities-table input[type=number],.activities-table select.activity-name-select{background:var(--surface);border:1px solid var(--line-2);border-radius:6px;font-size:13px;min-height:34px;padding:4px 8px;width:100%}.activities-table select.activity-name-select{min-width:150px}.activities-col-enabled{width:44px;text-align:center}.activities-col-weeks{width:130px}.activities-col-weight{width:110px}.activities-col-actions{width:48px}.activities-empty{color:var(--muted);font-size:13px;font-style:italic;padding:14px;text-align:center}.activities-foot-label{color:var(--muted);font-size:12px;font-weight:700;text-align:right;text-transform:uppercase}.activities-weight-ok{color:var(--ok);font-weight:700}.activities-weight-warn{color:var(--danger);font-weight:700}.activities-actions{align-items:center;display:flex;gap:12px}.activities-weight-note{color:var(--danger);font-size:12px}.activities-table.is-locked td{color:var(--ink);font-size:13.5px}.activities-table.is-locked .activity-readonly-name{font-weight:600}.activities-locked-note{align-items:center;color:var(--muted);display:inline-flex;font-size:12.5px;gap:6px}.activities-locked-note svg{color:var(--muted);flex:0 0 auto}.activities-questions{display:flex;flex-direction:column;gap:14px}.activity-tabs{display:flex;flex-wrap:wrap;gap:8px}.activity-tab{align-items:center;background:linear-gradient(180deg,#ffffff,var(--surface-3));border:1px solid var(--line);border-radius:999px;box-shadow:var(--shadow-sm);color:var(--ink-2);cursor:pointer;display:inline-flex;font-size:13.5px;font-weight:600;gap:8px;padding:9px 14px;transition:transform var(--dur-quick) var(--ease-standard),border-color var(--dur-quick) var(--ease-standard),background-color var(--dur-quick) var(--ease-standard),color var(--dur-quick) var(--ease-standard)}.activity-tab:hover{border-color:var(--accent-weak-border);box-shadow:var(--shadow-md);transform:translateY(-1px)}.activity-tab:focus-visible{box-shadow:var(--ring);outline:none}.activity-tab-icon{color:var(--accent);display:inline-flex}.activity-tab-name{white-space:nowrap}.activity-tab-count{align-items:center;background:var(--accent-weak);border-radius:999px;color:var(--accent-ink);display:inline-flex;font-size:11.5px;font-weight:700;height:20px;justify-content:center;min-width:20px;padding:0 6px}.activity-tab.is-active{background:linear-gradient(180deg,var(--accent),var(--accent-ink));border-color:var(--accent-ink);box-shadow:var(--shadow-md);color:#fff}.activity-tab.is-active .activity-tab-icon{color:#fff}.activity-tab.is-active .activity-tab-count{background:#ffffff38;color:#fff}.instance-switch{align-items:center;display:flex;flex-wrap:wrap;gap:10px 14px;justify-content:space-between}.instance-tabs{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-md);display:flex;flex-wrap:wrap;gap:3px;padding:3px}.instance-tab{align-items:center;background:transparent;border:1px solid transparent;border-radius:var(--radius-sm);color:var(--ink-2);cursor:pointer;display:inline-flex;font-size:13px;font-weight:600;gap:7px;padding:6px 12px;transition:background-color var(--dur-quick) var(--ease-standard),color var(--dur-quick) var(--ease-standard),border-color var(--dur-quick) var(--ease-standard)}.instance-tab:hover{background:var(--surface);color:var(--ink)}.instance-tab:focus-visible{box-shadow:var(--ring);outline:none}.instance-tab.is-active{background:var(--surface);border-color:var(--line);box-shadow:var(--shadow-sm);color:var(--accent-ink)}.instance-tab-add{color:var(--accent-ink)}.instance-tab-add:hover{background:var(--accent-weak);color:var(--accent-ink)}.instance-tab-count{align-items:center;background:var(--accent-weak);border-radius:999px;color:var(--accent-ink);display:inline-flex;font-size:11px;font-weight:700;height:18px;justify-content:center;min-width:18px;padding:0 5px}.instance-switch-weight{color:var(--muted);font-size:12.5px;font-weight:600;white-space:nowrap}.activity-panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:14px 16px}.activity-panel-head{align-items:center;display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between;margin-bottom:12px}.questions-table-wrap{margin-top:10px;overflow-x:auto}.activity-panel-head h4{color:var(--ink);font-size:16px;margin:0}.activity-panel-head small{color:var(--muted);font-size:12.5px;font-weight:500}.activity-panel-meta{align-items:center;display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.activity-remove-instance{align-items:center;background:transparent;border:1px solid var(--line);border-radius:var(--radius-sm);color:var(--muted);cursor:pointer;display:inline-flex;font-size:12.5px;font-weight:600;gap:5px;padding:4px 9px}.activity-remove-instance:hover{background:color-mix(in srgb,var(--danger) 8%,transparent);border-color:color-mix(in srgb,var(--danger) 40%,var(--line));color:var(--danger)}.activity-remove-instance:focus-visible{outline:2px solid var(--danger);outline-offset:2px}.activity-clo-coverage{align-items:center;background:var(--surface-3);border:1px solid var(--line);border-radius:999px;color:var(--muted);display:inline-flex;font-size:12px;font-weight:600;gap:5px;padding:3px 10px;white-space:nowrap}.activity-clo-coverage.is-complete{background:var(--ok-weak);border-color:var(--ok-border);color:var(--ok)}.activity-clo-coverage.is-warn{background:var(--warn-weak);border-color:var(--warn-border);color:var(--warn)}.activity-toolbar{align-items:center;display:flex;flex-wrap:wrap;gap:8px;margin:4px 0 10px}.activity-tool{align-items:center;background:linear-gradient(180deg,#fff,var(--surface-3));border:1px solid var(--line-2);border-radius:9px;box-shadow:var(--shadow-sm);color:var(--ink);cursor:pointer;display:inline-flex;font-size:12.5px;font-weight:600;gap:7px;min-height:0;padding:8px 13px;transition:border-color var(--dur-quick) var(--ease-standard),transform var(--dur-instant) var(--ease-standard);white-space:nowrap}.activity-tool svg{color:var(--accent);flex:none}.activity-tool:hover{border-color:var(--accent);box-shadow:var(--shadow-md)}.activity-tool:active{transform:translateY(1px)}.activity-tool.danger{color:var(--danger, #b42318)}.activity-tool.danger:hover{background:var(--danger, #b42318);border-color:var(--danger, #b42318);color:#fff}.activity-tool.danger:hover svg{color:#fff}.activity-tool:disabled,.activity-tool.is-disabled{background:var(--surface-2);box-shadow:none;color:var(--muted);cursor:not-allowed}.activity-tool:disabled svg,.activity-tool.is-disabled svg{color:var(--muted)}.activity-tool.is-active{background:linear-gradient(180deg,var(--accent),var(--accent-ink));border-color:var(--accent-ink);color:#fff}.activity-tool.is-active svg{color:#fff}.activity-tool.primary{background:linear-gradient(180deg,var(--accent),var(--accent-ink));border-color:var(--accent-ink);color:#fff;margin-left:auto}.activity-tool.primary svg{color:#fff}.activity-tool.primary:hover{box-shadow:var(--shadow-md);filter:brightness(1.03)}.activity-tool-feedback{color:var(--accent-ink);font-size:12px;margin:4px 0 0}.ai-progress{display:flex;align-items:center;gap:8px;margin:6px 0 0}.ai-progress-track{flex:1;height:6px;background:var(--line);border-radius:99px;overflow:hidden}.ai-progress-fill{height:100%;background:var(--accent);border-radius:99px;transition:width var(--dur-base) var(--ease-standard)}.ai-progress-label{font-size:11px;color:var(--ink-2);white-space:nowrap;min-width:6ch}.upload-hint{display:flex;flex-wrap:wrap;gap:8px;margin:6px 0 2px}.example-hint-btn{align-items:center;background:#fff7ed;border:1px solid #fed7aa;border-radius:999px;color:#b45309;cursor:pointer;display:inline-flex;font-size:11.5px;font-weight:600;gap:5px;padding:3px 10px}.example-hint-btn:hover{background:#ffedd5;border-color:#fdba74}.example-hint-btn svg{color:#f59e0b}.example-hint-btn.icon-only{border-radius:999px;flex:0 0 auto;gap:0;height:24px;justify-content:center;min-height:0;padding:0;width:24px}.checklist-item-name{align-items:center;display:flex;gap:8px}.example-body{display:flow-root}@media not (max-width:40em){.aa-dialog.example-dialog{inline-size:fit-content;max-inline-size:min(var(--dlg-w),calc(100vw - 32px))}.example-dialog .dlg-body{container-type:normal}}.example-caption{color:var(--muted, #6b7280);font-size:12.5px;line-height:1.5;margin:14px 2px 0;max-width:680px}.example-points{color:var(--ink-2, #374151);display:flex;flex-direction:column;gap:6px;list-style:none;margin:0;padding:0}.example-points li{padding-inline-start:16px;position:relative}.example-points li:before{color:#f59e0b;content:"•";inset-inline-start:2px;position:absolute}.example-points strong{color:var(--ink, #111827)}.xl-grid{border-collapse:collapse;color:#1f2937;font-family:Calibri,Segoe UI,Tahoma,Arial,sans-serif;font-size:12px}.xl-grid td,.xl-grid th{border:1px solid #d4d4d4}.xl-colhead th,.xl-rownum{background:#f3f3f3;color:#6b7280;font-size:11px;font-weight:600;text-align:center}.xl-corner{min-width:26px}.xl-collabel{height:18px}.xl-rownum{min-width:26px;padding:2px 4px}.xl-hcell{background:#eef2f7;color:#1f2937;font-weight:700;padding:5px 10px;text-align:center;white-space:nowrap}.xl-cell{padding:4px 10px;text-align:start;white-space:nowrap}.xl-cell.xl-num{text-align:center}.exam-doc{border-collapse:collapse;color:#1f2937;font-family:Calibri,Segoe UI,Tahoma,Arial,sans-serif;font-size:13px;max-width:620px;width:100%}.exam-doc td,.exam-doc th{border:1px solid #bcbcbc;vertical-align:top}.exam-doc th{background:#f3f4f6;font-weight:700;padding:5px 10px;text-align:center}.exam-doc-a{text-align:center;width:48px}.exam-doc-q{padding:8px 12px;text-align:start}.exam-doc td.exam-doc-a{color:#6b7280;font-weight:600;padding:8px 6px}.exam-doc-stem{margin:0 0 6px}.exam-doc-num{font-weight:700;margin-inline-end:4px}.exam-doc-opts{color:var(--ink-2, #374151);display:grid;gap:2px 18px;grid-template-columns:1fr 1fr;padding-inline-start:16px}.exam-doc-opt b{color:#111827;margin-inline-end:3px}.sample-pull{align-items:center;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-md);display:flex;flex-wrap:wrap;gap:10px;margin:4px 0 8px;padding:10px 12px}.sample-pull-label{color:var(--ink-2);font-size:12.5px;font-weight:600}.sample-pull select{background:var(--surface);border:1px solid var(--line-2);border-radius:6px;flex:1 1 220px;font-size:12.5px;max-width:360px;min-height:34px;padding:5px 8px}.import-progress{align-items:center;display:inline-flex;flex-wrap:wrap;gap:10px}.import-progress-text{font-weight:600}.import-progress-bar{background:var(--surface-3);border-radius:999px;height:7px;min-width:160px;overflow:hidden;width:220px}.import-progress-fill{background:linear-gradient(90deg,var(--accent),var(--accent-ink));border-radius:999px;display:block;height:100%;transition:width var(--dur-base) var(--ease-standard)}.autosave-pill{align-items:center;background:var(--surface-2);border:1px solid var(--line);border-radius:999px;color:var(--muted);display:inline-flex;font-size:12px;font-weight:600;gap:6px;padding:4px 12px;white-space:nowrap}.autosave-pill svg{flex:none}.autosave-pill.is-saving{background:var(--accent-weak);border-color:var(--accent-weak-border);color:var(--accent-ink)}.autosave-pill.is-saved{background:var(--ok-weak);border-color:var(--ok-border);color:var(--ok)}.report-warn{align-items:center;background:var(--warn-weak);border:1px solid var(--warn-border);border-radius:var(--radius-md);color:var(--warn);display:flex;font-size:13.5px;font-weight:600;gap:8px;margin-bottom:12px;padding:10px 14px}.report-warn svg{flex:none}.questions-table{border-collapse:collapse;margin-top:10px;width:100%}.questions-table th,.questions-table td{border-bottom:1px solid var(--line);padding:7px 8px;text-align:left;vertical-align:top}.questions-table thead th{color:var(--muted);font-size:11px;font-weight:700;letter-spacing:.03em;text-transform:uppercase}.questions-col-num{width:44px;text-align:center;vertical-align:middle}.questions-col-marks{width:64px;text-align:center}.questions-col-clo{width:190px}.questions-col-actions{width:48px}.questions-table tfoot .questions-total-row td{border-bottom:0;border-top:2px solid var(--line-2);padding-top:9px}.questions-total-label{color:var(--ink-2);font-size:12px;font-weight:700;text-align:end}.questions-total-value{color:var(--ink);font-family:IBM Plex Mono,ui-monospace,monospace;font-weight:700;text-align:center}.questions-table input.question-marks{background:var(--surface);border:1px solid var(--line-2);border-radius:6px;font-size:13px;min-height:34px;padding:4px 6px;text-align:center;width:56px}.clo-tags{align-items:center;display:flex;flex-wrap:wrap;gap:5px}.clo-tag{align-items:center;background:var(--accent-weak);border:1px solid var(--accent-weak-border);border-radius:999px;color:var(--accent-ink);display:inline-flex;font-size:12px;font-weight:600;gap:3px;padding-block:2px;padding-inline:8px 4px}.clo-tag-x{align-items:center;background:none;border:none;border-radius:999px;color:inherit;cursor:pointer;display:inline-flex;font-size:13px;height:16px;justify-content:center;line-height:1;min-height:0;min-width:0;opacity:.65;padding:0;transition:background-color var(--dur-quick) var(--ease-standard),opacity var(--dur-quick) var(--ease-standard);width:16px}.clo-tag-x:hover{opacity:1;background:#0f766e24}.questions-table select.clo-add{min-height:34px;height:34px;width:auto;min-width:96px;max-width:140px}.questions-table select.clo-pick{min-height:34px;height:34px;width:100%;min-width:120px}.question-clo-warn{display:inline-flex;align-items:center;gap:4px;margin-block-start:4px;color:var(--danger);font-size:11.5px;line-height:1.3}.question-clo-warn svg{flex:0 0 auto}.questions-table input.question-marks{display:block;margin:0 auto}.questions-col-num,.questions-col-marks,.questions-col-actions{vertical-align:middle}.questions-empty{text-align:center;padding:28px 16px!important}.questions-empty p{color:var(--muted);margin:0 0 12px}.questions-table textarea{background:var(--surface);border:1px solid var(--line-2);border-radius:6px;font-size:13px;min-height:56px;padding:6px 8px;resize:vertical;width:100%}.questions-table select{background:var(--surface);border:1px solid var(--line-2);border-radius:6px;font-size:13px;min-height:34px;padding:4px 8px;width:100%}.question-ai-conf{align-items:center;border:1px solid transparent;border-radius:999px;cursor:help;display:inline-flex;font-size:11px;font-variant-numeric:tabular-nums;font-weight:700;gap:4px;margin-top:5px;padding:1px 7px 1px 5px}.question-ai-conf svg{flex:0 0 auto}.question-ai-conf[data-level=high]{background:var(--ok-weak);border-color:var(--ok-border);color:var(--ok)}.question-ai-conf[data-level=med]{background:var(--warn-weak);border-color:var(--warn-border);color:var(--warn-ink)}.question-ai-conf[data-level=low]{background:var(--danger-weak);border-color:var(--danger-border);color:var(--danger-ink)}.activity-add-question{align-items:center;background:transparent;border:1px dashed var(--accent-weak-border);border-radius:6px;color:var(--accent-ink);cursor:pointer;display:inline-flex;font-size:12px;gap:4px;margin-top:8px;min-height:0;padding:6px 12px}.activity-add-question:hover{background:var(--accent-weak)}.bulk-add{margin:10px 0 4px}.bulk-add-toggle{align-items:center;background:var(--surface-2);border:1px solid var(--line-2);border-radius:6px;color:var(--accent-ink);cursor:pointer;display:inline-flex;font-size:12px;font-weight:600;gap:6px;min-height:0;padding:7px 12px}.bulk-add-toggle:hover{background:var(--accent-weak)}.bulk-add-panel{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-md);margin-top:8px;padding:14px}.bulk-add-help{color:var(--muted);font-size:12.5px;margin:0 0 8px}.bulk-add-panel textarea{background:var(--surface);border:1px solid var(--line-2);border-radius:6px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;padding:8px;resize:vertical;width:100%}.bulk-add-controls{align-items:center;display:flex;flex-wrap:wrap;gap:12px;margin-top:10px}.bulk-add-file{align-items:center;background:var(--surface);border:1px dashed var(--line-2);border-radius:6px;cursor:pointer;display:inline-flex;font-size:12px;gap:6px;padding:7px 12px}.bulk-add-file input{display:none}.bulk-add-count{color:var(--muted);font-size:12px;margin-left:auto}.bulk-add-actions{display:inline-flex;gap:8px}.bulk-add-feedback{color:var(--accent-ink);font-size:12px;margin:8px 0 0}.bulk-add-samples{align-items:center;display:inline-flex;gap:6px}.bulk-add-samples select{background:var(--surface);border:1px solid var(--line-2);border-radius:6px;font-size:12px;max-width:240px;min-height:34px;padding:4px 6px}.activity-ai-bar{align-items:center;background:var(--accent-weak);border:1px solid var(--accent-weak-border);border-radius:var(--radius-sm);color:var(--accent-ink);display:flex;flex-wrap:wrap;font-size:12px;gap:12px;margin:10px 0 4px;padding:9px 12px}.activity-ai-bar.disabled{background:var(--surface-2);border-color:var(--line);color:var(--muted)}.activity-ai-bar strong{font-weight:700;text-transform:capitalize}.activity-ai-actions{display:inline-flex;gap:8px;margin-left:auto}.activity-ai-feedback{color:var(--accent-ink);font-size:11px;width:100%}.activity-scores-bar{align-items:center;background:var(--ok-weak);border:1px solid var(--ok-border);border-radius:var(--radius-sm);color:var(--ok);display:flex;flex-wrap:wrap;font-size:12px;gap:12px;margin:6px 0;padding:9px 12px}.activity-scores-bar code{background:#dcfce7;border-radius:4px;font-size:11px;padding:1px 5px}.activity-scores-result{background:var(--ok-weak);border:1px solid var(--ok-border);border-radius:var(--radius-md);color:var(--ink-2);display:flex;flex-direction:column;font-size:12px;gap:8px;margin-top:8px;padding:10px 12px;width:100%}.activity-scores-result>.bi:first-child,.activity-scores-summary{color:var(--ok);font-weight:600}.activity-scores-error{background:var(--danger-weak);border:1px solid var(--danger-border);border-radius:var(--radius-md);color:var(--danger-ink);display:block;font-size:12px;margin-top:8px;padding:9px 12px;width:100%}.activity-scores-note{color:var(--warn-ink);display:block;font-size:11.5px;margin-top:4px;width:100%}.scores-perq{color:var(--ink);display:block;margin-top:6px;width:100%}.scores-perq>summary{color:var(--muted);cursor:pointer;font-size:11px}.scores-perq-table{border-collapse:collapse;font-size:11px;margin-top:6px}.scores-perq-table th,.scores-perq-table td{border:1px solid var(--line);padding:2px 8px;text-align:center}.scores-perq-table th{background:var(--surface-3);color:var(--muted);font-weight:600}.scores-perq-table .perq-q{color:var(--muted);font-weight:600}.scores-perq-table .perq-right{background:#c6efce;color:#14532d}.scores-perq-table .perq-wrong{background:#ffc7ce;color:#7f1d1d}.scores-perq-table .perq-blank{color:var(--muted)}.anon-sheets{list-style:none;margin:6px 0 0;padding:0}.anon-sheet{align-items:flex-start;border-top:1px solid var(--line);display:flex;gap:12px;padding:10px 0}.anon-sheet:first-child{border-top:none}.anon-sheet-body{display:flex;flex:1 1 auto;flex-direction:column;gap:8px;min-width:0}.anon-sheet-page{color:var(--ink);font-weight:600}.anon-sheet-badid{color:var(--warn);font-style:normal;font-weight:500}.anon-sheet-controls{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.anon-sheet-select{background:var(--surface);border:1px solid var(--line-2);border-radius:6px;font-size:12.5px;max-width:280px;min-height:30px;padding:4px 8px}.anon-sheet-assign{background:linear-gradient(180deg,var(--accent),var(--accent-ink));border:1px solid var(--accent-ink);border-radius:6px;color:#fff;cursor:pointer;font-size:12px;font-weight:600;min-height:30px;padding:4px 14px}.anon-sheet-assign:disabled{background:var(--surface-3);border-color:var(--line);color:var(--muted);cursor:not-allowed}.pdf-thumb{align-items:center;background:var(--surface-2);border:1px solid var(--line);border-radius:6px;display:inline-flex;flex:none;justify-content:center;min-height:90px;min-width:120px;overflow:hidden}.pdf-thumb-canvas{display:block;height:auto;max-width:100%}.pdf-thumb-status{color:var(--muted);font-size:11px;padding:12px;text-align:center}.activity-scores-unmatched{color:var(--warn);display:block;margin-top:4px}.activity-scores-unmatched summary{cursor:pointer}.activity-scores-unmatched ul{display:flex;flex-wrap:wrap;gap:4px 8px;list-style:none;margin:4px 0 0;max-height:160px;overflow-y:auto;padding:0}.activity-scores-unmatched li{background:var(--warn-weak);border:1px solid var(--warn-border);border-radius:4px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;padding:1px 6px}.clo-editor,.manual-section-list,.warning-list{display:grid;gap:12px;margin-top:14px}.clo-card{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-md);display:grid;gap:12px;padding:16px}.clo-head{align-items:center;display:flex;justify-content:space-between}.clo-head strong{color:var(--ink);font-size:18px}.clo-head span{color:var(--muted);font-size:12px}.warning-list{list-style:none;padding:0}.warning-list li{background:var(--warn-weak);border:1px solid var(--warn-border);border-radius:var(--radius-sm);display:grid;gap:4px;padding:12px 14px}.warning-list strong{color:#92400e}.warning-list span{color:var(--muted)}.report-helper-float{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);bottom:28px;box-shadow:var(--shadow-lg);display:grid;gap:10px;padding:16px;position:fixed;right:28px;width:270px;z-index:900}.helper-close{align-items:center;background:transparent;border:1px solid var(--line);border-radius:6px;color:var(--muted);cursor:pointer;display:flex;justify-content:center;min-height:0;padding:3px;position:absolute;right:10px;top:10px}.helper-close:hover{background:var(--surface-2);color:var(--ink)}.helper-float-header{align-items:baseline;display:flex;gap:8px;justify-content:space-between;padding-right:22px}.helper-float-header>span:first-child{color:var(--muted);font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase}.helper-float-count{background:var(--surface-2);border:1px solid var(--line);border-radius:999px;color:var(--ink-2);font-size:11px;padding:2px 8px}.helper-float-body{align-items:flex-start;background:var(--accent-weak);border:1px solid var(--accent-weak-border);border-radius:var(--radius-sm);display:flex;gap:9px;padding:11px}.helper-float-body svg{color:var(--accent);flex:0 0 auto;margin-top:2px}.helper-float-body span{display:grid;gap:3px;min-width:0}.helper-float-body strong{color:var(--accent-ink);font-size:13px;overflow-wrap:anywhere}.helper-float-body small{color:var(--muted);font-size:12px;overflow-wrap:anywhere}.helper-float-body.helper-conflict,.helper-float-body.helper-warning{background:var(--warn-weak);border-color:var(--warn-border)}.helper-float-body.helper-conflict strong,.helper-float-body.helper-warning strong{color:#92400e}.helper-float-body.helper-conflict svg,.helper-float-body.helper-warning svg{color:var(--warn)}.helper-float-nav{display:flex;gap:8px;justify-content:space-between}.helper-nav-btn{align-items:center;background:var(--surface-2);border:1px solid var(--line-2);border-radius:6px;color:var(--ink-2);cursor:pointer;display:flex;font-size:13px;font-weight:600;gap:4px;min-height:0;padding:7px 12px}.helper-nav-btn:hover:not(:disabled){background:var(--surface-3);border-color:var(--muted-2);color:var(--ink)}.helper-nav-btn:disabled{color:var(--muted-2);cursor:default;opacity:.6}.helper-nav-finish{background:var(--accent);border-color:var(--accent);color:#fff}.helper-nav-finish:hover{background:var(--accent-ink);border-color:var(--accent-ink);color:#fff}.helper-highlight{animation:helper-pulse var(--dur-attention) var(--ease-standard);border-radius:6px}@keyframes helper-pulse{0%,to{box-shadow:none}35%{box-shadow:0 0 0 4px #0f766e47}}.how-page{display:grid;gap:18px}.how-section{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);margin-top:18px;padding:24px}.intro-section{align-items:center;display:grid;gap:22px;grid-template-columns:minmax(0,1fr) minmax(280px,380px)}.intro-stats{display:grid;gap:12px;grid-template-columns:repeat(3,1fr)}.intro-stats div{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-md);display:grid;gap:6px;padding:16px;text-align:center}.intro-stats strong{color:var(--ink);font-size:24px}.intro-stats span{color:var(--muted);font-size:12px}.tech-grid,.rule-grid{display:grid;gap:14px;grid-template-columns:repeat(4,1fr);margin-top:18px}.tech-card,.rule-grid div{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-md);display:grid;gap:8px;padding:16px}.tech-card strong,.rule-grid strong{color:var(--ink)}.tech-card span,.rule-grid span{color:var(--muted);font-size:13px;line-height:1.5}.flow-diagram{align-items:stretch;display:grid;gap:10px;grid-template-columns:1fr auto 1fr auto 1fr auto 1fr auto 1fr;margin-top:18px}.flow-step{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-md);display:grid;gap:6px;min-height:128px;padding:16px}.flow-icon{align-items:center;background:var(--accent-weak);border-radius:var(--radius-sm);color:var(--accent);display:flex;height:36px;justify-content:center;width:36px}.flow-step strong{color:var(--ink)}.flow-step span{color:var(--muted);font-size:13px;line-height:1.4}.flow-arrow{align-self:center;color:var(--muted-2);font-size:22px;font-weight:700}.system-map{display:grid;gap:14px;grid-template-columns:260px 1fr;margin-top:18px}.system-lanes{display:grid;gap:14px;grid-template-columns:repeat(4,1fr)}.system-node{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-md);display:grid;gap:8px;min-height:150px;padding:18px}.system-node svg{color:var(--accent)}.system-node strong{color:var(--ink)}.system-node span{color:var(--muted);font-size:13px;line-height:1.5}.primary-node{background:var(--accent);border-color:var(--accent);color:#fff}.primary-node svg,.primary-node strong{color:#fff}.primary-node span{color:#d1faf3}.api-table-wrap{margin-top:18px}.api-group{overflow-x:auto}.api-group+.api-group{margin-top:22px}.api-group h3{color:var(--ink);font-size:15px;margin:0 0 8px}.api-table code{color:var(--accent-ink);font-weight:600}.method-pill{border-radius:999px;color:#fff;display:inline-block;font-size:12px;font-weight:700;min-width:58px;padding:4px 8px;text-align:center}.data-table td .method-pill{color:#fff;display:inline-block}.method-get{background:#0f766e}.method-post{background:#b45309}.method-patch{background:#1d4ed8}.method-delete{background:#b91c1c}.future-dropdown{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-md);margin-top:16px;overflow:hidden}.future-dropdown summary{color:var(--ink);cursor:pointer;font-weight:700;padding:14px 16px}.future-dropdown summary::marker{color:var(--accent)}.future-grid{border-top:1px solid var(--line);display:grid;gap:10px;grid-template-columns:repeat(3,1fr);padding:16px}.future-grid span{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);color:var(--ink-2);padding:10px 12px}.role-gate{align-items:center;display:flex;flex-direction:column;min-height:100vh;padding:24px 24px 48px}.role-gate .app-header{width:100%}.auth-cancel{align-self:center;margin-block-start:min(4vh,32px)}.auth-sheet-wrap{margin-block-start:min(6vh,48px);width:min(440px,100%)}.auth-tabs{align-items:flex-end;display:flex;gap:6px;padding-inline:16px}.auth-tab{background:var(--surface-3);border:1px solid var(--line-2);border-block-end:none;border-radius:0;border-start-end-radius:var(--radius-xs);border-start-start-radius:var(--radius-xs);box-shadow:none;color:var(--ink-2);font-size:13.5px;font-weight:600;min-height:40px;padding:9px 18px;position:relative}.auth-tab:hover{background:var(--surface-2);border-color:var(--line-2);color:var(--ink)}.auth-tab.active{background:var(--surface);border-block-start:2px solid var(--accent);color:var(--ink);margin-block-end:-1px;padding-block-end:10px;z-index:1}.auth-tab:focus-visible{box-shadow:none;outline:2px solid var(--accent);outline-offset:2px}.auth-sheet{background:var(--surface);border:1px solid var(--line-2);border-radius:var(--radius-xs);box-shadow:var(--shadow-md);padding:26px 32px 24px;position:relative}.auth-masthead{align-items:flex-start;display:flex;gap:14px}.auth-sheet-logo{flex:0 0 auto;height:40px;margin-block-start:4px;width:40px}.auth-masthead-text{display:flex;flex:1 1 auto;flex-direction:column;gap:2px;min-width:0}.auth-eyebrow{color:var(--brass-ink);font-family:var(--font-data);font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}[dir=rtl] .auth-eyebrow{letter-spacing:normal;text-transform:none}.auth-masthead h1{font-size:21px;line-height:1.25;margin:0}[dir=rtl] .auth-masthead h1{font-weight:700}.auth-subline{color:var(--muted);font-size:13.5px;margin:2px 0 0}.auth-seal{flex:0 0 auto;margin-inline-start:auto}.auth-seal svg{display:block;height:64px;width:64px}.auth-seal-ring{fill:none;stroke:var(--emboss);stroke-width:1.6}.auth-seal-ring-inner{stroke-width:1.2}.auth-seal-microtext{fill:var(--emboss);font-family:var(--font-data);font-size:5.4px;letter-spacing:.12em}.auth-seal-mark{fill:var(--emboss);stroke:var(--emboss);stroke-linecap:round;stroke-linejoin:round;stroke-width:1.3}.auth-seal.busy .auth-seal-ring-inner{animation:aa-spin var(--dur-cue) linear infinite;stroke:var(--brass);stroke-dasharray:4 5;transform-box:fill-box;transform-origin:center}@media(prefers-reduced-motion:reduce){.auth-seal.busy .auth-seal-ring-inner{animation:none}}:root[data-motion=reduced] .auth-seal.busy .auth-seal-ring-inner{animation:none}.auth-visually-hidden{clip:rect(0 0 0 0);clip-path:inset(50%);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px}.auth-rule{border-block-end:1px solid var(--line);border-block-start:2px solid var(--ink);height:3px;margin-block:14px 20px}.auth-form{display:flex;flex-direction:column;gap:16px}.auth-providers{display:flex;flex-direction:column;gap:8px}.auth-provider-button{align-items:center;background:var(--surface);border:1px solid var(--line-2);border-radius:var(--radius-sm);color:var(--ink);cursor:pointer;display:inline-flex;font-size:14px;font-weight:600;gap:10px;justify-content:center;min-height:44px;padding:8px 12px}.auth-provider-button:hover{background:var(--surface);border-color:var(--accent);color:var(--accent-ink)}.auth-provider-button:disabled{cursor:wait;opacity:.65}.auth-provider-mark{flex:0 0 auto}.auth-or{align-items:center;color:var(--muted);display:flex;font-family:var(--font-data);font-size:11px;gap:12px;letter-spacing:.08em;text-transform:uppercase}[dir=rtl] .auth-or{font-size:12px;letter-spacing:normal;text-transform:none}.auth-or:before,.auth-or:after{background:var(--line);content:"";flex:1 1 auto;height:1px}.auth-field{display:flex;flex-direction:column;gap:6px}.auth-field>span,.auth-field-head label{color:var(--ink-2);font-size:13px;font-weight:600}.auth-field:focus-within>span,.auth-field:focus-within .auth-field-head label{color:var(--accent-ink)}.auth-field span small{color:var(--muted-2);font-weight:400;margin-inline-start:4px}.auth-field-head{align-items:baseline;display:flex;gap:12px;justify-content:space-between}.auth-forgot-link{font-size:13px}.auth-field input{background:transparent;border:none;border-block-end:1.5px solid var(--line-2);border-radius:0;font-size:15px;min-height:44px;padding:10px 2px;width:100%}.auth-field input:focus{background:var(--accent-weak);border-block-end-color:var(--accent);box-shadow:none;outline:none}.auth-field input:focus-visible{box-shadow:var(--ring);outline:2px solid var(--accent);outline-offset:2px}.auth-field input:user-invalid{border-block-end-color:var(--danger);box-shadow:0 0 0 3px #8c2f2324}.auth-field input:-webkit-autofill{-webkit-box-shadow:0 0 0 1000px var(--surface) inset;-webkit-text-fill-color:var(--ink)}.auth-line{position:relative}.auth-line input{padding-inline-end:64px}.auth-peek{background:none;border:none;border-radius:var(--radius-xs);color:var(--muted);font-family:var(--font-data);font-size:12px;font-weight:600;inset-block-start:50%;inset-inline-end:0;min-height:36px;padding:0 8px;position:absolute;transform:translateY(-50%)}.auth-peek:hover{background:none;border:none;color:var(--ink)}.auth-peek:active{box-shadow:none;transform:translateY(-50%)}.auth-field input.auth-code{direction:ltr;font-family:var(--font-data);font-size:18px;letter-spacing:.25em;padding-inline-start:.25em;text-align:center}.auth-route{align-items:center;color:var(--muted);display:flex;flex-wrap:wrap;font-family:var(--font-data);font-size:11px;letter-spacing:.08em;list-style:none;margin:0;padding:0;text-transform:uppercase}.auth-route-n{font-variant-numeric:tabular-nums;font-weight:600;margin-inline-end:2px}[dir=rtl] .auth-route{font-size:12px;letter-spacing:normal;text-transform:none}.auth-route li{align-items:center;display:flex;gap:6px}.auth-route li+li:before{color:var(--muted-2);content:"·";margin-inline:10px}.auth-route li.current{color:var(--ink);font-weight:600}.auth-route li.done{color:var(--accent)}.auth-note{align-items:flex-start;background:var(--surface-2);border-inline-start:3px solid var(--accent);color:var(--ink-2);display:flex;font-size:13px;gap:10px;line-height:1.5;margin:0;padding:10px 14px}.auth-note svg{color:var(--accent);flex:0 0 auto;margin-block-start:2px}.auth-note.ok{background:var(--ok-weak);border-inline-start-color:var(--ok)}.auth-note.ok svg{color:var(--ok)}.auth-note.danger{background:var(--danger-weak);border-inline-start-color:var(--danger);color:var(--danger-ink)}.auth-note.danger svg{color:var(--danger)}.auth-mfa-qr{align-items:center;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-xs);display:flex;flex-direction:column;gap:10px;padding:14px}.auth-mfa-qr img{background:#fff;border:1px solid var(--line-2);border-radius:var(--radius-xs);height:180px;padding:8px;width:180px}.auth-mfa-qr small{color:var(--muted);font-family:var(--font-data);font-size:11px;overflow-wrap:anywhere;text-align:center}.auth-form .primary{justify-content:center;min-height:46px}.auth-form .primary[aria-busy=true]:before{animation:aa-spin var(--dur-spin) linear infinite;border:2px solid rgba(255,255,255,.35);border-block-start-color:#fff;border-radius:50%;content:"";height:14px;width:14px}.auth-links-row{display:flex;flex-wrap:wrap;gap:8px 20px;justify-content:center}.auth-back{align-self:center}.auth-footnote{border-block-start:1px dashed var(--line-2);color:var(--muted);display:flex;flex-direction:column;font-size:13px;gap:6px;margin-block-start:4px;padding-block-start:12px}.auth-footnote p{margin:0}@media(max-width:480px){.role-gate{padding-inline:16px}.auth-sheet{padding:22px 20px 20px}.auth-tabs{padding-inline:12px}.auth-tab{flex:1 1 0;justify-content:center}.auth-masthead h1{font-size:20px}.auth-seal svg{height:48px;width:48px}}.role-picker{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);margin:40px auto;max-width:880px;padding:32px}.role-picker h2{margin:0 0 8px}.role-picker>p{color:var(--muted);margin:0 0 24px}.role-picker .primary{padding:10px 20px}.role-cards{display:grid;gap:12px;grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:20px}.role-card{align-items:flex-start;background:var(--surface);border:2px solid var(--line);border-radius:var(--radius-md);cursor:pointer;display:flex;flex-direction:column;gap:8px;min-width:0;overflow-wrap:anywhere;padding:16px;text-align:left;transition:border-color var(--dur-quick) var(--ease-standard),background-color var(--dur-quick) var(--ease-standard);white-space:normal;width:100%;word-break:break-word}.role-card:hover{background:var(--surface-2);border-color:var(--line-2)}.role-card svg{color:var(--accent)}.role-card strong{display:block;font-size:16px;width:100%}.role-card span{color:var(--muted);display:block;font-size:13px;line-height:1.45;overflow-wrap:anywhere;white-space:normal;width:100%}.role-card.active{background:var(--accent-weak);border-color:var(--accent)}.role-name-field{display:flex;flex-direction:column;gap:6px;margin-bottom:20px}.role-name-field input,.role-name-field select{background:var(--surface);border:1px solid var(--line-2);border-radius:var(--radius-sm);font-size:15px;padding:10px 12px}.coordinator-panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);margin:12px 0;padding:14px 16px}.coordinator-group{margin:18px 0}.coordinator-group-heading{align-items:center;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-md);display:flex;flex-wrap:wrap;font-size:.98rem;gap:10px;margin:0 0 8px;padding:10px 14px}.coordinator-group-heading small{color:var(--muted);font-weight:400}.coordinator-group-heading .group-select-all{display:inline-flex;margin:0}.coordinator-empty{background:var(--surface-2);border:1px dashed var(--line);border-radius:var(--radius-md);padding:18px}.reports-cap-note{color:var(--warn-ink);font-size:12.5px;margin-block:0 12px}.coordinator-chips{display:flex;flex-wrap:wrap;gap:6px}.coordinator-chip{align-items:center;background:var(--surface-2);border:1px solid var(--line);border-radius:999px;display:inline-flex;gap:4px;padding:2px 6px 2px 10px}.admin-user-form{flex-wrap:wrap}.coordinator-table tr.is-current{background:var(--accent-weak)}.coordinator-table tr.is-current>td:first-child{box-shadow:inset 3px 0 0 0 var(--accent)}.report-title{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.report-open-badge{background:var(--accent-weak);border:1px solid var(--accent-weak-border);border-radius:999px;color:var(--accent-ink);flex:0 0 auto;font-family:var(--font-data);font-size:10px;font-weight:600;letter-spacing:.05em;padding:1px 8px;text-transform:uppercase;white-space:nowrap}.link-button.close-report{background:var(--surface);border:1px solid var(--accent-weak-border);border-radius:var(--radius-sm);color:var(--accent-ink);font-weight:600;padding:5px 14px}.link-button.close-report:hover{background:var(--accent-weak);border-color:var(--accent);color:var(--accent-ink);text-decoration:none}.coordinator-filters{align-items:end;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-md);display:flex;flex-wrap:wrap;gap:12px;margin:14px 0;padding:14px}.coordinator-filters label{display:flex;flex-direction:column;gap:4px;min-width:160px}.coordinator-filters label span{color:var(--muted);font-size:12px;letter-spacing:.03em;text-transform:uppercase}.coordinator-filters select{background:var(--surface);border:1px solid var(--line-2);border-radius:6px;font-size:14px;min-height:40px;padding:8px 10px}.filter-counts{color:var(--muted);font-size:13px;margin-inline-start:auto}.coordinator-actions{align-items:end;display:flex;flex-wrap:wrap;gap:12px;margin:12px 0 16px}.consolidate-name{display:flex;flex:1;flex-direction:column;gap:4px;min-width:220px}.consolidate-name input{background:var(--surface);border:1px solid var(--line-2);border-radius:6px;font-size:14px;min-height:40px;padding:8px 10px}.completion-bar{background:var(--surface-3);border-radius:999px;height:8px;overflow:hidden;width:140px}.completion-bar span{background:var(--muted-2);display:block;height:100%;transition:width var(--dur-base) var(--ease-standard)}.completion-bar.is-low span{background:var(--danger)}.completion-bar.is-mid span{background:var(--warn)}.completion-bar.is-complete span{background:var(--ok)}.completion-percent{color:var(--muted);display:block;font-size:12px;margin-top:4px}.coordinator-table small{color:var(--muted);display:block;font-size:12px}.instructor-cell{align-items:flex-start;display:flex;flex-direction:column;gap:4px}.instructor-cell strong{font-size:14px;line-height:1.3}.consolidated-list{margin-top:12px}.consolidated-list summary{color:var(--ink-2);cursor:pointer;font-weight:600}.consolidated-list ul{list-style:none;margin:8px 0;padding:0}.consolidated-list li{border-bottom:1px solid var(--line);padding:8px 0}.consolidated-list small{color:var(--muted);margin-inline-start:8px}.submissions-page{margin-top:18px}.submissions-header{align-items:flex-start;display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;margin-bottom:18px}.submissions-table-wrap{overflow-x:auto}.submissions-header h2{margin:0 0 4px}.submissions-header p{color:var(--muted);font-size:13.5px;margin:0}.submissions-table td a{align-items:center;display:inline-flex;gap:4px}.submissions-table td strong{display:block}.submissions-table td span{color:var(--muted);font-size:12px}.site-footer{align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);color:var(--ink-2);display:flex;gap:18px;justify-content:space-between;margin-top:32px;padding:18px 22px}.site-footer div{display:grid;gap:4px}.site-footer strong{color:var(--ink);font-size:13px}.site-footer span{color:var(--muted);font-size:13px}.footer-supervisor{text-align:start}.footer-students{text-align:end}.footer-students span{white-space:normal}@media(max-width:1280px){.report-layout{grid-template-columns:1fr}}@media(max-width:1080px){.hero-band,.grades-layout,.report-layout,.flow-diagram,.future-grid,.intro-section,.system-map{grid-template-columns:1fr}.tech-grid,.system-lanes{grid-template-columns:repeat(2,1fr)}.rule-grid{grid-template-columns:1fr}.flow-arrow{justify-self:center;transform:rotate(90deg)}.grade-overview,.grade-cards{grid-template-columns:repeat(2,1fr)}.summary-strip{grid-template-columns:repeat(3,1fr)}.site-shell{padding-inline:16px}}@media(max-width:980px){.import-grid{grid-template-columns:minmax(0,1fr) 240px}.import-grid label:nth-child(3){grid-column:1 / -1}}@media(max-width:720px){.hero-stats,.import-grid,.summary-strip,.grade-overview,.grade-cards,.field-grid,.clo-mini-grid,.tech-grid,.system-lanes,.intro-stats{grid-template-columns:1fr}.data-table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%}.report-layout,.report-editor,.report-panel,.remaining-report-layout,.evaluation-section,.evaluation-subsection,.remaining-report-layout>section,.cover-table-wrap,.grade-matrix-wrap,.manual-table-wrap,.clo-table-wrap{min-width:0;max-width:100%}.remaining-report-layout{grid-template-columns:minmax(0,1fr)}.report-helper-float{left:12px;right:12px;bottom:12px;width:auto}.app-header{align-items:flex-start;flex-direction:column;gap:12px}.header-actions{flex-wrap:wrap}.app-brand-sub{white-space:normal}.report-toolbar{align-items:flex-start;flex-direction:column}.page-nav{overflow-x:auto}label small{white-space:normal}.site-footer{align-items:flex-start;flex-direction:column}.footer-students,.footer-students span{text-align:left;white-space:normal}}.cover-table-wrap{border-color:#4c3c97;border-radius:0}.cover-matrix td{background:#f8f8f8;border:1px solid #4c3c97;padding:4px 6px}.cover-cell{color:#3f68bd}.cover-cell strong{color:#3f68bd;font-weight:700}.cover-cell input{color:#006c70}.cover-cell input:focus{border-color:#006c70;box-shadow:0 0 0 3px #006c701f}.student-lines span{color:#3f68bd}.cover-cell .location-choice span{color:#006c70}.remaining-report-layout h3{color:#2f43a0}.evaluation-subsection h4{color:#55bfc4}.manual-matrix th{background:#4d3f8f;border:2px solid #ffffff;color:#fff}.manual-matrix td{background:#e4e4e4;border:2px solid #ffffff}.survey-matrix tbody th{background:#4d3f8f;color:#fff}.manual-matrix input:focus,.manual-matrix textarea:focus{border-color:#006c70;box-shadow:0 0 0 3px #006c701f}.grade-mode-toggle button.active{background:#4d3f8f;box-shadow:none;color:#fff}.grade-matrix-wrap{background:#f3f5f5}.grade-matrix th,.grade-matrix td{border:2px solid #ffffff}.grade-corner{background:#4d3f8f}.grade-group{background:#4d3f8f;color:#fff}.grade-group-status{background:#463784}.grade-row-label{background:#4d3f8f;color:#fff}.grade-label{background:#8b91ca;color:#fff}.status-label{background:#8087c1;color:#fff}.grade-matrix tbody td{background:#eef0f2}.grade-matrix input:focus{border-color:#006c70;box-shadow:0 0 0 3px #006c701f}.grade-matrix input.derived{background:#f3f7f6;color:#004f52}.grade-matrix input.is-invalid{background:var(--danger-weak);border-color:var(--danger-border);color:var(--danger-ink);font-weight:700}.grade-matrix input.is-invalid:focus{border-color:var(--danger);box-shadow:0 0 0 3px #aa343424}.clo-table-wrap{background:#f3f5f5}.clo-matrix th,.clo-matrix td{border:2px solid #ffffff}.clo-matrix thead th{background:#4d3f8f;color:#fff}.clo-matrix thead th.clo-target-default{background:#6e60ab}.clo-matrix.clo-matrix-simple thead th.clo-subhead{background:#9498cb}.clo-matrix tbody th{background:#8b91ca;color:#fff}.clo-matrix tbody td{background:#eef0f2}.clo-matrix.clo-matrix-simple tbody th.clo-code-cell{background:#9498cb;color:#fff}.clo-matrix.clo-matrix-simple tbody td,.clo-matrix.clo-matrix-simple tbody tr.clo-data-row.clo-row-even td{background:#f2f2f2}.clo-matrix.clo-matrix-simple tbody tr.clo-data-row.clo-row-odd td{background:#d9d9d9}.clo-matrix tbody tr.clo-category-row>th,.clo-matrix tbody tr.clo-category-row>td{background:#55bfc4!important}.clo-category-row strong{color:#fff;text-align:center}.clo-add-btn{border-color:#55bfc4;color:#55bfc4}.clo-add-btn:hover{background:#55bfc4;color:#fff}.clo-remove-btn{color:#b00}.clo-remove-btn:hover{color:red}.clo-matrix input:focus,.clo-matrix textarea:focus{border-color:#006c70;box-shadow:0 0 0 3px #006c701f}.data-table tr.drop-active>td{background:var(--accent-weak);box-shadow:inset 0 0 0 2px var(--accent)}.upload-link{display:inline-flex;align-items:center;gap:6px;margin-top:6px;padding:8px 12px;border:1.5px dashed var(--accent);border-radius:8px;background:var(--accent-weak);font:inherit;font-size:12px;font-weight:600;color:var(--accent-ink);cursor:pointer;-webkit-user-select:none;user-select:none;transition:background-color var(--dur-quick) var(--ease-standard),border-color var(--dur-quick) var(--ease-standard)}.upload-link:hover{background:#d7f6f1;border-color:var(--accent-ink);box-shadow:var(--ring)}.upload-link input[type=file]{display:none}.matched-files-cell{align-items:flex-start;display:flex;flex-direction:column;gap:8px}.matched-files-cell .upload-link{margin-top:0}.import-grid .input-row{border-color:var(--muted-2);background:var(--surface)}.import-grid .folder-pick-btn{color:var(--accent-ink)}.import-grid .input-row input[type=file]::file-selector-button{background:var(--accent-weak);border-color:var(--accent-weak-border);color:var(--accent-ink);font-weight:600}.import-grid button.primary{flex:0 0 auto}.import-grid button.primary:disabled{opacity:.7}.upload-link.is-uploading{cursor:progress;background:var(--surface-2);border-color:var(--muted-2);color:var(--muted)}.file-list li.file-row{align-items:center;display:flex;gap:7px;list-style:none}.file-row-icon{color:var(--muted);flex:0 0 auto}.file-row .file-name{color:var(--ink-2);flex:1;font-size:13px;min-width:0;overflow-wrap:anywhere}.file-remove{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;min-height:0;padding:3px;border:1px solid var(--danger-border);border-radius:6px;background:var(--danger-weak);color:var(--danger);cursor:pointer}.file-remove:hover:not(:disabled){background:var(--danger);border-color:var(--danger);color:#fff}.year-field{display:inline-flex;align-items:center;gap:8px;background:var(--surface);border:1px solid var(--line-2);border-radius:var(--radius-sm);min-height:40px;padding:0 10px}.year-field:focus-within{border-color:var(--accent);box-shadow:var(--ring)}.report-context-row input.year-input{border:none;background:transparent;outline:none;min-height:0;padding:0;width:56px;font-size:14px;color:var(--ink)}.year-field .hijri-badge{white-space:nowrap;padding-inline-start:8px;border-inline-start:1px solid var(--line);color:var(--accent-ink);font-size:13px;font-weight:600}.clo-dashboard{margin:14px 0 4px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);overflow:hidden}.clo-dashboard-empty{display:flex;align-items:center;gap:12px;padding:14px 18px;color:var(--muted);background:var(--surface-2)}.clo-dashboard-empty svg{color:var(--accent);flex:0 0 auto}.clo-dashboard-empty p{margin:0;font-size:13px;line-height:1.5}.clo-dashboard-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 14px;background:linear-gradient(135deg,var(--accent-weak),var(--surface) 65%);border-bottom:1px solid var(--line)}.clo-dashboard.is-collapsed .clo-dashboard-head{border-bottom:none}.dash-collapse{display:inline-flex;align-items:center;gap:8px;border:none;background:transparent;padding:2px;margin:-2px;font:inherit;font-weight:700;color:var(--ink);cursor:pointer;min-width:0}.dash-collapse>svg:first-child{color:var(--muted);flex:0 0 auto}.dash-collapse>svg{color:var(--accent)}.dash-title-text{font-size:14px;white-space:nowrap}.dash-collapsed-summary{display:inline-flex;gap:6px;align-items:baseline;color:var(--muted);font-weight:500;font-size:13px;overflow:hidden;text-overflow:ellipsis}.dash-collapsed-summary em{font-style:normal;font-weight:700;font-variant-numeric:tabular-nums}.dash-mode-toggle{display:inline-flex;gap:2px;padding:3px;background:var(--surface-3);border:1px solid var(--line);border-radius:999px;flex:0 0 auto}.dash-mode-toggle button{display:inline-flex;align-items:center;gap:5px;border:none;background:transparent;color:var(--muted);font-size:12px;font-weight:600;padding:5px 12px;border-radius:999px;cursor:pointer;transition:background-color var(--dur-quick) var(--ease-standard),color var(--dur-quick) var(--ease-standard)}.dash-mode-toggle button:hover{color:var(--ink-2)}.dash-mode-toggle button.active{background:var(--surface);color:var(--accent-ink);box-shadow:var(--shadow-sm)}.clo-dashboard-body{padding:14px;display:flex;flex-direction:column;gap:14px}.dash-strip{display:flex;align-items:center;gap:18px;flex-wrap:wrap}.dash-puck{display:flex;flex-direction:column;align-items:center;gap:5px;flex:0 0 auto}.dash-puck-label{font-size:10.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}.puck-of{font-size:.5em;color:var(--muted-2);font-weight:700}.dash-ministats{margin-inline-start:auto;display:grid;grid-template-columns:1fr 1fr;gap:4px 18px}.dash-ministats span{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;color:var(--muted)}.dash-ministats svg{color:var(--accent)}.dash-ministats b{color:var(--ink);font-variant-numeric:tabular-nums;font-size:14px}.gauge{position:relative;display:grid;place-items:center;flex:0 0 auto}.gauge-svg{display:block}.gauge-center{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.gauge-value{font-weight:700;color:var(--ink);font-variant-numeric:tabular-nums;line-height:1;font-size:20px}.gauge-caption{font-size:10px;color:var(--muted);margin-top:1px}.dash-puck .gauge-value{font-size:21px}.dash-rings{display:grid;grid-template-columns:repeat(auto-fill,minmax(66px,1fr));gap:12px 10px}.clo-ring{position:relative;display:flex;flex-direction:column;align-items:center;gap:3px}.clo-ring .gauge-value{font-size:13.5px}.clo-ring-code{font-size:11px;font-weight:700;color:var(--ink-2);font-variant-numeric:tabular-nums}.clo-ring-badge{position:absolute;top:-2px;inset-inline-end:4px;color:var(--ok);background:var(--surface);border-radius:50%}.clo-ring-warn{position:absolute;top:-2px;inset-inline-end:2px;width:15px;height:15px;border-radius:50%;background:var(--danger);color:#fff;font-size:10px;font-weight:700;display:grid;place-items:center}.dash-plos{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding-top:12px;border-top:1px dashed var(--line)}.dash-plos-label{display:inline-flex;align-items:center;gap:4px;font-size:10.5px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;color:var(--muted)}.dash-plos-label svg{color:var(--accent)}.plo-chip{display:flex;flex-direction:column;align-items:flex-start;gap:0;padding:4px 11px;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-sm);min-width:52px}.plo-chip-code{font-size:10px;font-weight:700;color:var(--muted)}.plo-chip strong{font-size:15px;font-variant-numeric:tabular-nums;line-height:1.15}.dot{width:9px;height:9px;border-radius:999px;display:inline-block;background:var(--muted-2);flex:0 0 auto}.tone-text-ok{color:var(--ok)!important}.tone-text-warn{color:var(--warn)!important}.tone-text-danger{color:var(--danger)!important}.tone-text-accent{color:var(--accent)!important}.tone-text-muted{color:var(--muted-2)!important}.tone-text-indirect{color:#7c3aed!important}.tone-border-ok{border-inline-start:3px solid var(--ok)}.tone-border-warn{border-inline-start:3px solid var(--warn)}.tone-border-danger{border-inline-start:3px solid var(--danger)}.tone-border-muted{border-inline-start:3px solid var(--muted-2)}.tone-border-indirect{border-inline-start:3px solid #7c3aed}.dash-block{border-top:1px solid var(--line);padding-top:13px}.dash-block-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:9px;flex-wrap:wrap}.dash-block-head h4{display:flex;align-items:center;gap:6px;margin:0;font-size:13px;color:var(--ink)}.dash-block-head h4 svg{color:var(--accent)}.dash-hint{margin:2px 0 0;color:var(--muted);font-size:12.5px}.dash-hint-inline{color:var(--muted-2);font-size:11px}.coverage-matrix-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--radius-sm)}.coverage-matrix{border-collapse:collapse;width:100%;font-size:12px}.coverage-matrix th,.coverage-matrix td{border:1px solid var(--line);padding:5px 7px;text-align:center}.coverage-matrix thead th{background:var(--surface-3);color:var(--ink-2);font-weight:700;position:sticky;top:0}.cm-corner{background:var(--surface-3)}.cm-clo{font-variant-numeric:tabular-nums;min-width:38px}.cm-clo.is-uncovered{color:var(--danger);background:var(--danger-weak)}.cm-activity{text-align:start!important;background:var(--surface-2);white-space:nowrap;max-width:200px}.cm-activity-name{display:block;font-weight:600;color:var(--ink);overflow:hidden;text-overflow:ellipsis}.cm-cell{color:var(--muted-2);font-variant-numeric:tabular-nums}.cm-cell.is-on{font-weight:700}.dash-split{display:grid;grid-template-columns:1fr 1fr;gap:20px}.dash-weight h4,.dash-diagnostics h4{display:flex;align-items:center;gap:6px;margin:0 0 9px;font-size:13px;color:var(--ink)}.dash-weight h4 svg,.dash-diagnostics h4 svg{color:var(--accent)}.dash-weight-body{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.donut{position:relative;flex:0 0 auto;display:grid;place-items:center}.donut-center{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center}.donut-center strong{font-size:16px;color:var(--ink);font-variant-numeric:tabular-nums}.donut-center span{font-size:10px;color:var(--muted)}.weight-legend{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;min-width:0;flex:0 1 auto}.weight-legend li{display:flex;align-items:center;gap:7px;font-size:12.5px;color:var(--ink-2)}.weight-legend-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:180px}.weight-legend strong{font-variant-numeric:tabular-nums;color:var(--ink)}.diagnostics-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.diagnostic{display:flex;align-items:flex-start;gap:8px;padding:7px 10px;background:var(--surface-2);border-radius:var(--radius-sm);font-size:12.5px;color:var(--ink-2);line-height:1.4}.diagnostic svg{flex:0 0 auto;margin-top:1px}@media(max-width:980px){.dash-split{grid-template-columns:1fr}}@media(max-width:720px){.clo-dashboard-head{flex-wrap:wrap}.dash-strip{gap:14px;justify-content:space-between}.dash-ministats{margin-inline-start:0;width:100%;grid-template-columns:1fr 1fr}.dash-rings{grid-template-columns:repeat(auto-fill,minmax(58px,1fr))}}.checklist-summary{display:inline-flex;align-items:center;gap:8px;margin:0 0 12px;padding:6px 12px;border-radius:999px;font-size:13px;font-weight:600;background:var(--danger-weak);color:var(--danger);border:1px solid var(--danger-border)}.checklist-summary.is-clear{background:var(--ok-weak);color:var(--ok);border-color:var(--ok-border)}.checklist-summary-dot{width:8px;height:8px;border-radius:999px;background:currentColor;flex:0 0 auto}.checklist-summary-meta{margin-inline-start:4px;padding-inline-start:10px;border-inline-start:1px solid currentColor;font-weight:500;opacity:.8}.checklist-table{table-layout:fixed}.checklist-table col.col-serial{width:72px}.checklist-table col.col-item{width:auto}.checklist-table col.col-status{width:196px}.checklist-table col.col-files{width:40%}.checklist-table th,.checklist-table td{padding:12px 16px;vertical-align:middle;font-size:13px}.checklist-table td.cell-files{vertical-align:top}.checklist-table tbody tr{height:84px}.checklist-table .serial-num{display:inline-block;font-variant-numeric:tabular-nums;font-weight:600;font-size:13px;color:var(--muted)}.checklist-table .checklist-item-name{align-items:center;gap:8px}.checklist-table td strong{display:inline;font-weight:600;color:var(--ink)}.checklist-table .checklist-row>td:first-child{box-shadow:inset 3px 0 0 0 transparent}.checklist-table .row-missing>td:first-child{box-shadow:inset 3px 0 0 0 var(--danger)}.checklist-table .row-partial>td:first-child{box-shadow:inset 3px 0 0 0 var(--warn)}.checklist-table .row-complete>td:first-child{box-shadow:inset 3px 0 0 0 var(--ok)}.checklist-table .status{box-sizing:border-box;width:100%;min-width:0;height:36px;padding:0 12px;border:1px solid var(--line-2);border-radius:var(--radius-sm);font-size:13px;font-weight:600}.checklist-table span.status-generated{display:inline-flex;align-items:center;line-height:1;background:var(--surface-2);color:var(--muted);font-weight:500;border-style:dashed}.checklist-table .matched-files-cell{gap:8px}.checklist-table .file-list{gap:6px;max-width:100%}.checklist-table .file-list li.file-row{gap:8px}.checklist-table .file-row-icon{width:13px;height:13px;flex:0 0 13px}.checklist-table .file-row .file-name{font-size:13px;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.checklist-table .file-list-toggle{margin-top:0;font-size:13px}.checklist-table .matched-files-cell .upload-link{margin-top:0}.checklist-table .upload-link{padding:7px 12px;border:1px dashed var(--line-2);border-radius:var(--radius-sm);background:transparent;color:var(--muted);font-size:13px;font-weight:500;transition:border-color var(--dur-quick) var(--ease-standard),color var(--dur-quick) var(--ease-standard),background-color var(--dur-quick) var(--ease-standard)}.checklist-table .upload-link:hover{border-color:var(--accent);color:var(--accent-ink);background:var(--accent-weak)}.checklist-table .file-remove{border-radius:var(--radius-sm)}.density-compact .checklist-table .status{height:32px}.density-compact .checklist-table .upload-link{padding:6px 10px}.feedback-page{max-width:720px}.feedback-head{margin-bottom:18px}.feedback-head h2{align-items:center;display:flex;gap:8px;margin:6px 0 4px}.feedback-head p{margin:0;max-width:60ch}.feedback-inbox-head{align-items:flex-end;display:flex;gap:16px;justify-content:space-between}.feedback-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);display:flex;flex-direction:column;gap:18px;padding:20px 22px}.feedback-field{display:flex;flex-direction:column;gap:8px}.feedback-field-label{color:var(--ink-2);font-size:12px;font-weight:700;letter-spacing:.03em;text-transform:uppercase}.feedback-cat-picker{display:flex;flex-wrap:wrap;gap:8px}.feedback-cat-option{background:var(--surface-2);border:1px solid var(--line);border-radius:999px;color:var(--ink-2);cursor:pointer;font-size:13px;font-weight:600;min-height:0;padding:7px 15px}.feedback-cat-option:hover{border-color:var(--accent-weak-border);color:var(--ink)}.feedback-cat-option.is-active{background:var(--accent-weak);border-color:var(--accent-weak-border);box-shadow:inset 0 0 0 1px var(--accent-weak-border);color:var(--accent-ink)}.feedback-textarea{background:var(--surface);border:1px solid var(--line-2);border-radius:var(--radius-sm);color:var(--ink);min-height:150px;padding:12px 14px;resize:vertical;width:100%}.feedback-actions{align-items:center;display:flex;gap:12px;justify-content:flex-end}.feedback-guest-note{font-size:13px;margin-inline-end:auto}.feedback-sent{align-items:center;background:var(--ok-weak);border:1px solid var(--ok-border);border-radius:var(--radius-md);color:var(--ok);display:flex;gap:12px;padding:16px 18px}.feedback-sent strong{color:var(--ink);display:block}.feedback-unread-pill{background:var(--danger);border-radius:999px;color:#fff;font-size:12px;font-weight:700;min-width:20px;padding:1px 7px;text-align:center}.feedback-list{display:flex;flex-direction:column;gap:10px;list-style:none;margin:0;padding:0}.feedback-item{background:var(--surface);border:1px solid var(--line);border-inline-start:3px solid var(--accent);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:14px 16px}.feedback-item.is-read{border-inline-start-color:var(--line-2);opacity:.74}.feedback-item-head{align-items:center;display:flex;flex-wrap:wrap;gap:8px;margin-bottom:8px}.feedback-dot{background:var(--danger);border-radius:999px;flex:0 0 auto;height:8px;width:8px}.feedback-cat{background:var(--accent-weak);border:1px solid var(--accent-weak-border);border-radius:999px;color:var(--accent-ink);font-size:11.5px;font-weight:600;padding:1px 9px}.feedback-cat-issue{background:var(--danger-weak);border-color:var(--danger-border);color:var(--danger)}.feedback-cat-idea{background:var(--ok-weak);border-color:var(--ok-border);color:var(--ok)}.feedback-cat-question{background:var(--warn-weak);border-color:var(--warn-border);color:var(--warn)}.feedback-sender{color:var(--ink);font-size:14px}.feedback-email{color:var(--accent-ink);font-size:12.5px;text-decoration:none}.feedback-email:hover{text-decoration:underline}.feedback-date{color:var(--muted);font-size:12px;margin-inline-start:auto;white-space:nowrap}.feedback-message{color:var(--ink-2);margin:0;overflow-wrap:anywhere;white-space:pre-wrap}.feedback-item-actions{align-items:center;display:flex;gap:10px;justify-content:flex-end;margin-top:10px}.rail-nav-badge{background:var(--danger);border-radius:999px;color:#fff;flex:0 0 auto;font-size:11px;font-weight:700;margin-inline-start:auto;min-width:18px;padding:0 6px;text-align:center}html.shell-app .landing-shell{display:none}html:not([lang=ar]) .landing-shell [data-lang=ar],html[lang=ar] .landing-shell [data-lang=en],html:not(.shell-landing) .landing-shell .inst-lang{display:none}html.hero-armed .landing-shell .inst-record{opacity:0}html.hero-armed .landing-shell .ink-phrase:after{transform:scaleX(0)}.landing-inst{--rise: var(--rise-hero);--inst-gutter: clamp(16px, 5vw, 56px);--inst-measure: 1120px;--on-dark-line: rgb(255 255 255 / .55);--on-dark-press: rgb(255 255 255 / .2);--on-dark-hair: rgb(255 255 255 / .14);--on-dark-fill: rgb(255 255 255 / .06);--on-dark-soft: rgb(255 255 255 / .7);background:var(--paper);color:var(--ink-2);min-block-size:100vh;overflow-x:clip}.inst-wrap{max-inline-size:var(--inst-measure);margin-inline:auto;padding-inline:var(--inst-gutter)}.inst-hero{--hero-wash: 11 34 28;--wash-dir: to right;position:relative;z-index:1;isolation:isolate;overflow-x:clip;display:flex;flex-direction:column;min-block-size:min(92svh,820px);padding-block:20px clamp(40px,7vh,72px);padding-inline:max(var(--inst-gutter),env(safe-area-inset-left),env(safe-area-inset-right));background-color:var(--deep);color:#fff}[dir=rtl] .inst-hero{--wash-dir: to left}.inst-hero-photo{position:absolute;inset:0;z-index:-1;background:url(/welcomeBG.jpg) center 42% / cover no-repeat;background-image:image-set(url(/hero/welcome-1600.v1.avif) type("image/avif"),url(/hero/welcome-1600.v1.webp) type("image/webp"),url(/welcomeBG.jpg) type("image/jpeg"))}.inst-hero:after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(125% 82% at 50% 46%,rgb(var(--hero-wash) / .82),rgb(var(--hero-wash) / .52),rgb(var(--hero-wash) / .34)),linear-gradient(180deg,rgb(var(--hero-wash) / .58),rgb(var(--hero-wash) / .34) 42%,rgb(var(--hero-wash) / .76))}.inst-nav{display:flex;align-items:center;justify-content:space-between;gap:16px;inline-size:100%;max-inline-size:calc(var(--inst-measure) - 2 * var(--inst-gutter));margin-inline:auto}.inst-brand{display:flex;align-items:center;gap:13px;color:#fff;font:700 28px/1 var(--font-display)}.inst-logo{block-size:44px;inline-size:44px}.inst-hero .inst-logo-mark{block-size:54px;inline-size:54px;filter:brightness(0) invert(1) drop-shadow(0 2px 6px rgb(0 0 0 / .55))}.inst-nav-links{display:none;gap:4px}.inst-nav-links a,.inst-foot-link{position:relative;display:inline-flex;align-items:center;gap:8px;min-block-size:var(--tap);color:var(--on-dark-ink);font-size:14.5px;font-weight:600;text-decoration:none;transition:color var(--dur-quick) var(--ease-standard)}.inst-nav-links a{padding-inline:10px}.inst-nav-links a:after,.inst-foot-link:after{content:"";position:absolute;inset-inline:10px;inset-block-end:10px;block-size:1px;background:var(--brass-light);transform:scaleX(0);transform-origin:var(--origin-start);transition:transform var(--dur-quick) var(--ease-out)}.inst-foot-link:after{inset-inline:0}@media(hover:hover)and (pointer:fine){.inst-nav-links a:hover,.inst-foot-link:hover{color:#fff}.inst-nav-links a:hover:after,.inst-foot-link:hover:after{transform:scaleX(1)}}.inst-nav-links a:focus-visible:after,.inst-foot-link:focus-visible:after{transform:scaleX(1)}.inst-nav-actions{display:flex;align-items:center;gap:10px}.inst-lang,.inst-signin{min-block-size:var(--tap);font-weight:600;white-space:nowrap}.inst-lang{justify-content:center;gap:6px;min-inline-size:var(--tap);padding-inline:10px;background:none;border:0;border-radius:var(--radius-sm);color:var(--on-dark-ink);font-size:13px}.inst-lang:hover{background:var(--on-dark-wash);color:#fff}.inst-signin{display:inline-flex;align-items:center;padding-inline:18px;background:var(--on-dark-wash);border:1px solid var(--on-dark-line);border-radius:999px;color:#fff;font-size:14px;text-decoration:none}.inst-signin:hover{background:var(--on-dark-press);border-color:#fff;color:#fff}.inst-lang-short,.inst-signin-short{display:none}.inst-hero-inner{display:grid;gap:clamp(28px,4vw,40px);inline-size:100%;max-inline-size:calc(var(--inst-measure) - 2 * var(--inst-gutter));margin:auto;padding-block:clamp(24px,6vh,64px);text-align:start}.inst-hero-copy{max-inline-size:40rem}.inst-eyebrow{margin:0 0 18px;color:var(--brass-light);font:600 clamp(11px,1.4vw,13px)/1.4 var(--font-data);letter-spacing:.14em;text-transform:uppercase}.inst-title{margin:0;max-inline-size:20ch;color:#fff;font:700 clamp(34px,5.4vw,62px)/1.12 var(--font-display);letter-spacing:-.015em;text-shadow:0 1px 24px rgb(0 0 0 / .22);text-wrap:balance}[dir=rtl] .inst-title{letter-spacing:0;line-height:1.45}.ink-phrase{position:relative;white-space:nowrap}.ink-phrase:after{content:"";position:absolute;inset-inline:0;inset-block-end:-.06em;block-size:2px;background:var(--brass-light);transform-origin:var(--origin-start)}.inst-lede{margin:20px 0 0;max-inline-size:56ch;color:var(--on-dark-ink);font-size:clamp(15px,1.8vw,19px);line-height:1.6}.inst-hero-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-block-start:32px}.inst-cta-primary,.inst-cta-ghost{display:inline-flex;align-items:center;justify-content:center;min-block-size:50px;border-radius:999px;font-size:15px;font-weight:700;text-decoration:none}.inst-cta-primary{padding-inline:28px;background:#fff;border:1px solid #fff;box-shadow:var(--shadow-lg);color:var(--accent-ink);transition:color var(--dur-quick) var(--ease-standard),transform var(--dur-quick) var(--ease-standard)}.inst-cta-primary:hover{background:#fff;border-color:#fff;color:var(--accent)}@media(hover:hover)and (pointer:fine){.inst-cta-primary:hover{transform:translateY(calc(-1 * var(--lift)))}}.inst-cta-primary:active{transform:scale(var(--press-scale))}.inst-cta-ghost{padding-inline:24px;border:1.5px solid var(--on-dark-line);color:#fff;font-weight:600;transition:background-color var(--dur-quick) var(--ease-standard),border-color var(--dur-quick) var(--ease-standard)}.inst-cta-ghost:hover{background:var(--on-dark-wash);border-color:#fff}.inst-scroll{align-self:center;display:inline-flex;align-items:center;justify-content:center;inline-size:var(--tap);block-size:var(--tap);border-radius:50%;color:var(--on-dark-soft);animation:inst-bob var(--dur-cue) var(--ease-standard) var(--dur-attention) 3;transition:background-color var(--dur-quick) var(--ease-standard),color var(--dur-quick) var(--ease-standard)}.inst-scroll:hover{animation-play-state:paused;background:var(--on-dark-wash);color:#fff}@keyframes inst-bob{50%{transform:translateY(calc(var(--rise-hero) / 3))}}@keyframes inst-from-start{0%{opacity:0;transform:translate(calc(var(--rise) * -.75 * var(--dir)))}}@keyframes inst-chip-stamp{0%{opacity:0;transform:scale(1.12)}}.inst-record{--rise: var(--rise-sheet);display:grid;gap:14px;inline-size:100%;max-inline-size:34rem;padding:clamp(16px,2.4vw,24px);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-lg);color:var(--ink-2)}.inst-record-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.inst-record-course{min-inline-size:0;color:var(--ink);font:600 12.5px/1.4 var(--font-data)}.inst-record-count{display:inline-flex;flex:none;align-items:baseline;gap:6px;color:var(--accent);font:600 17px/1 var(--font-data)}.inst-record-total{color:var(--muted);font-size:13px}.inst-record-bar{display:block;overflow:hidden;block-size:4px;border-radius:999px;background:var(--surface-3)}.inst-record-bar>i{display:block;block-size:100%;border-radius:inherit;background:var(--accent);transform-origin:var(--origin-start)}.inst-record-list{display:grid;margin:0;padding:0;list-style:none}.inst-record-list li{display:flex;align-items:center;gap:10px;min-block-size:28px;padding-block:4px;border-block-end:1px solid var(--line);font-size:13.5px;line-height:1.35}.inst-record-list li:last-child{border-block-end:0}.inst-record-list svg{flex:none;color:var(--ok)}.inst-record-more{display:none;margin:0;color:var(--muted);font:600 12.5px/1.4 var(--font-data)}.inst-record-flag{display:flex;align-items:flex-start;gap:10px;margin:0;padding:10px 12px;background:var(--warn-weak);border:1px solid var(--warn-border);border-inline-start:3px solid var(--warn);border-radius:var(--radius-sm);color:var(--warn-ink);font-size:13px;font-weight:600;line-height:1.45}.inst-record-flag svg{flex:none;margin-block-start:2px;color:var(--warn)}.inst-record-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-block-start:12px;border-block-start:1px dashed var(--line-2)}.inst-record-chips{display:flex;flex-wrap:wrap;gap:6px}.inst-chip{display:inline-flex;align-items:center;min-block-size:24px;padding-inline:8px;background:var(--surface-2);border:1px solid var(--line-2);border-radius:var(--radius-xs);color:var(--ink-2);font:400 12px/1 var(--font-data);white-space:nowrap}.inst-record{--press-at: calc(var(--dur-hero) - var(--dur-stamp))}.record-seq .inst-record{animation:aa-fade var(--dur-base) var(--ease-out) backwards}.record-seq .inst-record-list li{animation:aa-rise var(--dur-base) var(--ease-out) backwards;animation-delay:calc(var(--i) * var(--stagger-reveal))}.record-seq .inst-record-more{animation:aa-fade var(--dur-base) var(--ease-out) backwards;animation-delay:calc(var(--stagger-reveal) * 4)}.record-seq .inst-record-bar>i{animation:aa-rule var(--dur-draw) var(--ease-ink) backwards;animation-delay:calc(var(--stagger-reveal) * 2)}.record-seq .inst-record-flag{animation:inst-from-start var(--dur-base) var(--ease-out) backwards;animation-delay:calc(var(--stagger-reveal) * 14)}.record-seq .inst-record .seal.is-stamping{animation-delay:var(--press-at)}.record-seq .inst-record .seal.is-stamping:after{animation-duration:calc(var(--dur-stamp) * .55);animation-delay:calc(var(--press-at) + var(--dur-stamp) * .45)}.record-seq .inst-record-chips{animation:paper-give var(--dur-stamp) var(--ease-out) var(--press-at)}.record-seq .ink-phrase:after{animation:aa-rule var(--dur-draw) var(--ease-ink) backwards;animation-delay:calc(var(--stagger-reveal) * 6)}.record-seq .ink-phrase:nth-of-type(2):after{animation-delay:calc(var(--stagger-reveal) * 14)}.record-seq .ink-phrase:nth-of-type(3):after{animation-duration:var(--dur-stamp);animation-delay:calc(var(--dur-hero) - var(--dur-stamp))}.record-play .inst-record-count .ld-strip{transition-duration:calc(var(--stagger-reveal) * 11);transition-delay:var(--stagger-reveal)}.record-armed .inst-record,.record-armed .inst-record *,.record-armed .inst-record .seal:after,.record-armed .ink-phrase:after{animation-play-state:paused}.inst-section{padding-block:clamp(48px,8vh,88px)}.inst-section-head{max-inline-size:640px;margin-block-end:clamp(24px,3.5vw,40px)}.inst-kicker{margin:0;color:var(--brass-ink);font:600 12px/1.4 var(--font-data);letter-spacing:.14em;text-transform:uppercase}.inst-section-head h2{margin:10px 0 0;color:var(--ink);font:600 clamp(23px,3.2vw,32px)/1.25 var(--font-display);letter-spacing:-.008em;text-wrap:balance}.inst-section-lede{margin:14px 0 0;max-inline-size:46ch;font-size:15.5px;line-height:1.6}.landing-inst.reveal-on [data-reveal]:not(.in){opacity:0}.landing-inst.reveal-on [data-reveal].in{animation:aa-rise var(--dur-reveal) var(--ease-out) backwards;animation-delay:calc(min(var(--i, 0),var(--stagger-cap)) * var(--stagger-reveal))}.inst-pipeline{--dot: 12px;--dot-top: 6px;--pipe-gap: 28px;display:grid;gap:var(--pipe-gap);margin:0;padding:0;list-style:none}.inst-node{position:relative;padding-inline-start:calc(var(--dot) + 20px)}.inst-node:before{content:"";position:absolute;inset-inline-start:0;inset-block-start:var(--dot-top);inline-size:var(--dot);block-size:var(--dot);border-radius:50%;background:var(--accent)}.inst-node:not(:last-child):after{content:"";position:absolute;inset-inline-start:calc(var(--dot) / 2 - 1px);inset-block:calc(var(--dot-top) + var(--dot) + 4px) calc(4px - var(--pipe-gap) - var(--dot-top));inline-size:2px;background:var(--accent-weak-border);transform-origin:top}.inst-node h3{display:flex;align-items:center;gap:10px;margin:0 0 6px;color:var(--ink);font:600 17px/1.4 var(--font-display)}.inst-node h3 svg{flex:none;color:var(--accent)}.inst-node p{margin:0 0 12px;max-inline-size:42ch;color:var(--muted);font-size:14.5px;line-height:1.55}.landing-inst.reveal-on .inst-pipeline.in .inst-node:before{animation:aa-fade var(--dur-base) var(--ease-out) backwards;animation-delay:calc(var(--i) * var(--stagger-reveal) * 3)}.landing-inst.reveal-on .inst-pipeline.in .inst-node:after{animation:ink-y var(--dur-draw) var(--ease-ink) backwards;animation-delay:calc((var(--i) * 3 + 1) * var(--stagger-reveal))}.inst-catch{--glow-x: 85%;padding-block:clamp(56px,9vh,96px);background:radial-gradient(120% 140% at var(--glow-x) 0%,color-mix(in srgb,var(--accent) 35%,transparent),transparent 60%),var(--deep);color:var(--on-dark-ink)}[dir=rtl] .inst-catch{--glow-x: 15%}.inst-catch .inst-kicker{color:var(--brass-light)}.inst-catch .inst-section-head h2{color:#fff}.inst-catch .inst-section-lede{color:var(--on-dark-soft)}.inst-conflicts{display:grid;gap:12px;margin:0;padding:0;list-style:none}.inst-conflict{--tone: var(--on-dark-ok);position:relative;display:flex;align-items:flex-start;gap:12px;overflow:hidden;padding-block:14px;padding-inline:19px 16px;background:var(--on-dark-fill);border:1px solid var(--on-dark-hair);border-radius:var(--radius-sm);color:var(--on-dark-ink);font-size:14px;font-weight:500;line-height:1.5}.inst-conflict:before{content:"";position:absolute;inset-block:0;inset-inline-start:0;inline-size:3px;background:var(--tone);transform-origin:top}.inst-conflict svg{flex:none;margin-block-start:3px;color:var(--tone)}.inst-conflict.tone-danger{--tone: var(--on-dark-danger)}.inst-conflict.tone-warn{--tone: var(--on-dark-warn)}.landing-inst.reveal-on .inst-conflicts.in{animation:none}.landing-inst.reveal-on .inst-conflicts.in>li{animation:inst-from-start var(--dur-reveal) var(--ease-out) backwards;animation-delay:calc(var(--i) * var(--stagger-reveal) * 2)}.landing-inst.reveal-on .inst-conflicts.in>li:before{animation:ink-y var(--dur-draw) var(--ease-ink) backwards;animation-delay:calc(var(--i) * var(--stagger-reveal) * 2 + var(--dur-base))}.inst-deliverables{display:grid;gap:16px}.inst-deliverable{display:flex;align-items:flex-start;gap:16px;padding:22px 24px;background:var(--surface);border:1px solid var(--line);border-inline-start:3px solid var(--accent);border-radius:var(--radius);box-shadow:var(--shadow-sm)}.inst-deliverable>svg{flex:none;box-sizing:content-box;inline-size:24px;block-size:24px;padding:10px;border-radius:var(--radius-sm);background:var(--accent-weak);color:var(--accent)}.inst-deliverable h3{margin:0 0 5px;color:var(--ink);font:600 17px/1.35 var(--font-display)}.inst-deliverable p{margin:0 0 12px;color:var(--muted);font-size:14px;line-height:1.5}.inst-deliverable .inst-chip{background:var(--accent-weak);border-color:var(--accent-weak-border);color:var(--accent-ink)}.landing-inst.reveal-on .inst-deliverables.in .inst-chip{animation:inst-chip-stamp var(--dur-base) var(--ease-out) backwards;animation-delay:calc(var(--dur-reveal) / 2 + var(--i, 0) * var(--stagger-reveal))}.inst-final{padding-block:clamp(56px,9vh,96px);background:var(--accent);color:#fff;text-align:center}.inst-final .seal{margin-block-end:20px}.inst-final h2{margin:0 auto 12px;max-inline-size:26ch;color:#fff;font:600 clamp(24px,3.6vw,36px)/1.2 var(--font-display);text-wrap:balance}.inst-final p{margin:0 auto 28px;max-inline-size:46ch;color:var(--on-dark-ink);font-size:16px;line-height:1.55;text-wrap:pretty}.inst-nowrap{white-space:nowrap}.inst-foot{background:var(--deep);color:var(--on-dark-soft)}.inst-foot-inner{display:grid;gap:28px;padding-block:clamp(36px,6vh,56px)}.inst-foot-brand{display:flex;align-items:center;gap:10px;color:#fff;font:600 19px/1 var(--font-display)}.inst-foot-brand .inst-logo{block-size:30px;inline-size:30px;filter:brightness(0) invert(1);opacity:.95}.inst-foot-tag{margin:12px 0 0;max-inline-size:60ch;color:var(--on-dark-soft);font-size:14px;line-height:1.6}.inst-foot-links{display:grid;gap:2px;margin:0;padding:0;list-style:none}.inst-foot-line{margin:0;padding-block-start:18px;border-block-start:1px solid var(--on-dark-hair);color:var(--on-dark-soft);font:400 12px/1.5 var(--font-data);letter-spacing:.04em}.inst-hero :focus-visible,.inst-catch :focus-visible,.inst-final :focus-visible,.inst-foot :focus-visible{outline:2px solid var(--brass-light);outline-offset:3px;box-shadow:none}.inst-signin:focus-visible,.inst-cta-ghost:focus-visible{border-color:#fff}[dir=rtl] :is(.inst-eyebrow,.inst-kicker,.inst-foot-line,.inst-record-more){font-family:var(--font-body);font-weight:600;letter-spacing:normal;text-transform:none}[dir=rtl] .inst-eyebrow{font-size:clamp(13px,1.5vw,14px)}[dir=rtl] .inst-kicker{font-size:13px}[dir=rtl] .inst-chip:not(.ltr-data){font-family:var(--font-body)}@media not (min-width:24em){.inst-brand-name{position:absolute;inline-size:1px;block-size:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}}@media(max-width:40em){.inst-hero-photo{background-image:image-set(url(/hero/welcome-portrait.v1.avif) type("image/avif"),url(/hero/welcome-portrait.v1.webp) type("image/webp"),url(/welcomeBG.jpg) type("image/jpeg"))}.inst-nav{gap:8px}.inst-nav-actions{gap:4px}.inst-brand{gap:8px;font-size:19px}.inst-hero .inst-logo-mark{block-size:36px;inline-size:36px}.inst-lang{padding-inline:8px}.inst-lang svg,.inst-lang-full,.inst-signin-full{display:none}.inst-lang-short,.inst-signin-short{display:inline}.inst-signin{padding-inline:14px}.inst-record-list .is-extra{display:none}.inst-record-more{display:block}}@media not (max-width:40em){.inst-deliverables{grid-template-columns:repeat(2,minmax(0,1fr))}}@media not (min-width:64em){.inst-hero,.inst-hero-inner{padding-block-end:0}.inst-hero .inst-record{margin-block-end:-48px}.inst-hero+.landing-main{padding-block-start:48px}.inst-scroll{display:none}}@media(min-width:64em){.inst-nav-links{display:flex}.inst-hero-inner{grid-template-columns:minmax(0,1.1fr) minmax(320px,.9fr);gap:clamp(32px,5vw,72px);align-items:center;padding-block:clamp(16px,4vh,48px)}.inst-title{font-size:clamp(40px,4.1vw,54px)}.inst-hero .inst-record{justify-self:end}.inst-hero:after{background:linear-gradient(var(--wash-dir),rgb(var(--hero-wash) / .9),rgb(var(--hero-wash) / .45)),linear-gradient(180deg,rgb(var(--hero-wash) / .45),rgb(var(--hero-wash) / 0) 30% 70%,rgb(var(--hero-wash) / .55))}.inst-pipeline{--pipe-gap: 32px;grid-template-columns:repeat(4,minmax(0,1fr))}.inst-node{padding-inline-start:0;padding-block-start:calc(var(--dot) + 24px)}.inst-node:before{inset-block-start:0}.inst-node:not(:last-child):after{inset-block:calc(var(--dot) / 2 - 1px) auto;inset-inline:calc(var(--dot) + 4px) calc(4px - var(--pipe-gap));inline-size:auto;block-size:2px;transform-origin:var(--origin-start)}.landing-inst.reveal-on .inst-pipeline.in .inst-node:after{animation-name:aa-rule}.inst-catch-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(32px,5vw,72px);align-items:start}.inst-catch .inst-section-head{margin-block-end:0}.inst-foot-inner{grid-template-columns:minmax(0,1fr) auto;column-gap:clamp(48px,8vw,120px)}.inst-foot-line{grid-column:1 / -1}}@media(prefers-reduced-motion:reduce){.inst-scroll{animation:none}}:root[data-motion=reduced] .inst-scroll{animation:none}@media print{.landing-inst *,.landing-inst *:after{animation:none!important}.inst-hero-photo,.inst-scroll{display:none}}
