.guide-backdrop{position:fixed;inset:0;z-index:2000;display:flex;align-items:center;justify-content:center;padding:24px;background:#0614128c;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);animation:guide-fade .2s ease}@keyframes guide-fade{0%{opacity:0}to{opacity:1}}.guide-modal{width:min(940px,96vw);max-height:92vh;overflow:hidden;display:flex;flex-direction:column;background:#fff;border-radius:18px;box-shadow:0 30px 80px #0006;animation:guide-pop .22s cubic-bezier(.2,.9,.3,1.2);font-family:inherit}@keyframes guide-pop{0%{opacity:0;transform:translateY(14px) scale(.985)}to{opacity:1;transform:none}}.guide-modal.closing{animation:guide-out .18s ease forwards}@keyframes guide-out{to{opacity:0;transform:translateY(8px) scale(.985)}}.guide-head{display:flex;align-items:center;gap:14px;padding:16px 20px;border-bottom:1px solid #eef1f0;background:linear-gradient(180deg,#f3faf8,#fff)}.guide-head.auto{background:linear-gradient(180deg,#fbf6ea,#fff)}.guide-badge{width:46px;height:46px;border-radius:13px;flex:none;display:grid;place-items:center;color:#fff;background:linear-gradient(135deg,#0f766e,#0b5f58)}.guide-head.auto .guide-badge{background:linear-gradient(135deg,#b88a2b,#9c7320)}.guide-titles{flex:1;min-width:0}.guide-titles .k{font-size:11px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:#6b8b86}.guide-titles h2{margin:2px 0 0;font-size:22px;font-weight:800;color:#0f2a27;line-height:1.15}.guide-x{flex:none;width:36px;height:36px;border-radius:10px;border:1px solid #e3e8e7;background:#fff;color:#5b716d;cursor:pointer;display:grid;place-items:center;transition:background .15s,color .15s}.guide-x:hover{background:#f1f5f4;color:#0f2a27}.guide-tabs{display:flex;gap:8px;padding:10px 20px 0;border-bottom:1px solid #eef1f0}.guide-tab{display:inline-flex;align-items:center;gap:7px;padding:9px 15px 11px;border:none;background:none;cursor:pointer;font-size:14px;font-weight:600;color:#6b8b86;border-bottom:3px solid transparent;margin-bottom:-1px;border-radius:8px 8px 0 0;transition:color .15s,background .15s}.guide-tab:hover{color:#0f2a27;background:#f4f8f7}.guide-tab.on{color:#0f766e;border-bottom-color:#0f766e;background:#eefaf7}.guide-body{display:flex;min-height:0;flex:1}.guide-video{position:relative;flex:1.7;min-width:0;background:#0b1f1d;display:flex;align-items:center;justify-content:center}.guide-video video{width:100%;height:100%;max-height:62vh;object-fit:contain;display:block}.guide-live{position:absolute;top:12px;right:12px;display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:20px;font-size:11px;font-weight:700;color:#fff;background:#081e1c9e;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.guide-live i{width:7px;height:7px;border-radius:50%;background:#4ade80;box-shadow:0 0 #4ade8099;animation:guide-pulse 1.8s infinite}@keyframes guide-pulse{0%{box-shadow:0 0 #4ade8080}70%{box-shadow:0 0 0 7px #4ade8000}to{box-shadow:0 0 #4ade8000}}.guide-ctrls{position:absolute;left:14px;bottom:14px;display:flex;align-items:flex-end;gap:10px}.guide-cbtn{display:inline-flex;align-items:center;gap:7px;padding:8px 13px;border-radius:10px;border:none;background:#081e1c9e;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:#fff;font-size:13px;font-weight:600;cursor:pointer}.guide-cbtn:hover{background:#081e1ccc}.guide-vol{display:flex;flex-direction:column;align-items:center;gap:6px;padding:11px 7px 8px;border-radius:11px;background:#081e1c9e;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);animation:guide-volin .2s ease;transition:opacity .5s ease,transform .5s ease}.guide-vol.dim{opacity:0;transform:translateY(6px);pointer-events:none}@keyframes guide-volin{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.guide-vol input[type=range]{writing-mode:vertical-lr;direction:rtl;-webkit-appearance:slider-vertical;width:6px;height:84px;accent-color:#cba14f;cursor:pointer}.guide-vol .vpct{color:#fff;font-size:10.5px;font-weight:700;opacity:.85}.guide-vol .vbtn{background:none;border:none;color:#fff;cursor:pointer;padding:2px;display:grid;place-items:center}.guide-side{flex:1;min-width:220px;padding:20px 22px;overflow-y:auto}.guide-side h3{display:flex;align-items:center;gap:8px;margin:0 0 14px;font-size:13px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:#0f766e}.guide-note{display:flex;gap:9px;padding:10px 12px;margin-bottom:14px;border-radius:10px;background:#fbf6ea;color:#8a6516;font-size:13px;line-height:1.4}.guide-note svg{flex:none;margin-top:1px}.guide-side ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}.guide-side li{display:flex;gap:10px;font-size:14px;line-height:1.45;color:#243b38}.guide-side li svg{flex:none;margin-top:3px;color:#0f766e}.guide-example{flex:1;min-width:0;max-height:62vh;overflow:auto;padding:20px 22px}.guide-example .example-points{margin:16px 0 0;padding-inline-start:18px;display:flex;flex-direction:column;gap:6px;color:#243b38;font-size:13px;line-height:1.5}.guide-foot{display:flex;justify-content:flex-end;padding:14px 20px;border-top:1px solid #eef1f0}.guide-primary{display:inline-flex;align-items:center;gap:8px;padding:10px 18px;border-radius:11px;border:none;background:#0f766e;color:#fff;font-size:14px;font-weight:700;cursor:pointer;transition:background .15s}.guide-primary:hover{background:#0b5f58}.guide-btn{display:inline-grid;place-items:center;width:24px;height:24px;margin-left:8px;vertical-align:middle;border-radius:50%;border:1px solid #d6e2e0;background:#f1f8f6;color:#0f766e;cursor:pointer;transition:background .15s,color .15s,border-color .15s}.guide-btn:hover{background:#0f766e;color:#fff;border-color:#0f766e}@media(max-width:760px){.guide-body{flex-direction:column}.guide-video{flex:none}.guide-video video{max-height:42vh}.guide-side{min-width:0}}: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 Arabic", "Segoe UI", system-ui, -apple-system, Roboto, Helvetica, Arial, sans-serif;--font-display: "Source Serif 4", "IBM Plex Sans Arabic", Georgia, "Times New Roman", serif;--font-data: "IBM Plex Mono", "IBM Plex Sans Arabic", ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;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}*{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;transition:background .15s ease,border-color .15s ease,color .15s ease,box-shadow .15s ease}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;transition:background .15s ease,border-color .15s ease,color .15s ease,box-shadow .15s ease,transform .1s ease;white-space:nowrap}button:hover,.download-link:hover{background:var(--surface-2);border-color:var(--muted-2);color:var(--ink)}button:active,.download-link:active{transform:translateY(1px);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)}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)}.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 .15s,color .15s}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 .15s ease}.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 .16s ease;width:42px}.switch:hover{background:var(--muted-2)}.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;transition:inset-inline-start .16s ease;width:18px}.switch.is-on .switch-knob{inset-inline-start:21px}.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 .15s ease,box-shadow .15s ease}.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:box-shadow .18s ease,transform .18s ease,border-color .18s ease}.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]{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 .15s ease}.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 .3s ease}.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}.grade-curve{width:100%}.grade-curve-count{fill:var(--ink);font-family:var(--font-data);font-size:12px;font-weight:600}.grade-curve-label{fill:var(--muted);font-family:var(--font-data);font-size:11px;letter-spacing:.02em}.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}.spin{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.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 .25s ease}.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 .15s ease,color .15s ease}.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 .15s ease,color .15s ease,box-shadow .15s ease}.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 .15s ease,background .15s ease,box-shadow .15s ease}.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 .3s ease}.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 .3s ease}.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 .12s,color .12s,border-color .12s}.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 .12s ease,box-shadow .12s ease,border-color .12s ease,background .12s ease,color .12s ease}.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 .12s ease,color .12s ease,border-color .12s ease}.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 .15s ease,box-shadow .15s ease,transform .05s ease;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 .3s ease}.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-modal-backdrop{align-items:center;background:#0f172a8c;display:flex;inset:0;justify-content:center;padding:24px;position:fixed;z-index:1000}.example-modal{background:var(--surface, #fff);border-radius:12px;box-shadow:0 24px 60px #00000059;display:flex;flex-direction:column;max-height:90vh;max-width:min(960px,95vw);overflow:hidden}.example-modal-head{align-items:center;border-bottom:1px solid var(--line, #e5e7eb);display:flex;gap:12px;justify-content:space-between;padding:12px 16px}.example-modal-head strong{font-size:14px}.example-modal-close{background:none;border:none;border-radius:6px;color:var(--muted, #6b7280);cursor:pointer;display:inline-flex;padding:4px}.example-modal-close:hover{background:var(--surface-2, #f3f4f6)}.example-modal-body{overflow:auto;padding:16px}.example-modal-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}@keyframes aa-spin{to{transform:rotate(360deg)}}.spin{animation:aa-spin .8s linear infinite}.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 .25s ease}.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 .12s ease,opacity .12s ease;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 1.15s ease;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:800}.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:auth-seal-turn 1.6s linear infinite;stroke:var(--brass);stroke-dasharray:4 5;transform-box:fill-box;transform-origin:center}@keyframes auth-seal-turn{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.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:auth-spin .7s linear infinite;border:2px solid rgba(255,255,255,.35);border-block-start-color:#fff;border-radius:50%;content:"";height:14px;width:14px}@keyframes auth-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.auth-form .primary[aria-busy=true]:before{display:none}}.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 .15s ease,background .15s ease;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 .25s ease}.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:800}.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 .15s ease,border-color .15s ease,box-shadow .15s ease}.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:800;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 .15s,color .15s}.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-arc{transition:stroke-dashoffset .6s cubic-bezier(.22,.61,.36,1)}.gauge-center{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.gauge-value{font-weight:800;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:800;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 .12s,color .12s,background .12s}.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}.landing-inst{background:var(--paper);color:var(--ink-2);min-height:100vh;overflow-x:hidden}.inst-announce{align-items:center;background:var(--deep);color:#ffffffeb;display:flex;font-size:13px;gap:8px;justify-content:center;padding:9px 16px;text-align:center}.inst-announce svg{color:var(--brass);flex:0 0 auto}.inst-hero{background:radial-gradient(125% 82% at 50% 46%,#0b221cd1,#0b221c85,#0b221c57),linear-gradient(180deg,#0f2a2494,#0f2a2457 42%,#0f2a24c2),url(/welcomeBG.jpg) center 42% / cover no-repeat;color:#fff;display:flex;flex-direction:column;min-height:min(92vh,820px);padding:20px clamp(20px,5vw,56px) clamp(40px,7vh,72px);position:relative}.inst-nav{align-items:center;display:flex;gap:16px;justify-content:space-between}.inst-brand{align-items:center;color:#fff;display:flex;font-family:var(--font-display);font-size:28px;font-weight:700;gap:13px}.inst-logo{height:44px;width:44px}.inst-hero .inst-logo-mark{filter:brightness(0) invert(1) drop-shadow(0 2px 6px rgba(0,0,0,.55));height:54px;width:54px}.inst-nav-links{display:flex;gap:26px}.inst-nav-links a{color:#ffffffe6;font-size:14.5px;font-weight:600;text-decoration:none}.inst-nav-links a:hover{color:#fff;text-decoration:underline;text-underline-offset:4px}.inst-nav-actions{align-items:center;display:flex;gap:10px}.inst-lang{align-items:center;background:none;border:none;color:#ffffffe6;cursor:pointer;display:inline-flex;font-size:13px;font-weight:600;gap:6px;padding:6px}.inst-lang:hover{background:none;color:#fff}.inst-signin{background:#ffffff1f;border:1px solid rgba(255,255,255,.55);border-radius:999px;color:#fff;cursor:pointer;font-size:14px;font-weight:600;min-height:40px;padding:0 18px}.inst-signin:hover{background:#fff3;border-color:#fff;color:#fff}.inst-hero-inner{margin:auto;max-width:820px;padding-block:clamp(24px,6vh,64px);text-align:center}.inst-eyebrow{color:#e7cf98;display:inline-block;font-family:var(--font-data);font-size:clamp(11px,1.4vw,13px);font-weight:600;letter-spacing:.14em;margin-bottom:18px;text-transform:uppercase}[dir=rtl] .inst-eyebrow{letter-spacing:normal;text-transform:none}.inst-title{color:#fff;font-family:var(--font-display);font-size:clamp(34px,5.4vw,62px);font-weight:700;letter-spacing:-.015em;line-height:1.12;margin:0 auto;max-width:20ch;text-shadow:0 1px 24px rgba(0,0,0,.22);text-wrap:balance}[dir=rtl] .inst-title{letter-spacing:0;line-height:1.45}.inst-lede{color:#ffffffeb;font-size:clamp(15px,1.8vw,19px);line-height:1.6;margin:20px auto 0;max-width:56ch}.inst-hero-actions{align-items:center;display:flex;flex-wrap:wrap;gap:14px;justify-content:center;margin-top:32px}.inst-cta-primary{background:#fff;border:1px solid #fff;border-radius:999px;box-shadow:0 10px 30px #0000002e;color:var(--accent-ink);cursor:pointer;font-size:15.5px;font-weight:700;min-height:50px;padding:0 28px}.inst-cta-primary:hover{background:#fff;border-color:#fff;color:var(--accent);transform:translateY(-1px)}.inst-cta-ghost{align-items:center;border:1.5px solid rgba(255,255,255,.7);border-radius:999px;color:#fff;display:inline-flex;font-size:15px;font-weight:600;min-height:50px;padding:0 24px;text-decoration:none}.inst-cta-ghost:hover{background:#ffffff1f;border-color:#fff}.inst-scroll{align-items:center;align-self:center;animation:inst-bob 2s ease-in-out infinite;color:#fffc;display:inline-flex;justify-content:center}.inst-scroll:hover{color:#fff}@keyframes inst-bob{0%,to{transform:translateY(0)}50%{transform:translateY(5px)}}.landing-main{margin:0 auto;max-width:1120px;padding-inline:clamp(20px,5vw,56px)}.inst-kicker{color:var(--brass-ink);display:inline-block;font-family:var(--font-data);font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase}[dir=rtl] .inst-kicker{letter-spacing:normal;text-transform:none}.inst-section-head{margin-bottom:clamp(22px,3.5vw,36px);max-width:640px}.inst-section-head h2{color:var(--ink);font-family:var(--font-display);font-size:clamp(23px,3.2vw,32px);font-weight:600;letter-spacing:-.008em;margin:10px 0 0;text-wrap:balance}[data-reveal]{opacity:0;transform:translateY(16px);transition:opacity .6s ease,transform .6s cubic-bezier(.22,.7,.3,1)}[data-reveal].in{opacity:1;transform:none}.inst-stats{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-md);display:grid;gap:0;grid-template-columns:repeat(3,1fr);margin-block:-44px 0;position:relative;z-index:3}.inst-stat{padding:22px 24px;text-align:center}.inst-stat+.inst-stat{border-inline-start:1px solid var(--line)}.inst-stat b{color:var(--accent);display:block;font-family:var(--font-data);font-size:clamp(22px,3vw,30px);font-weight:700}.inst-stat span{color:var(--muted);font-size:13px}.inst-section{padding-block:clamp(40px,7vh,76px)}.inst-steps{display:grid;gap:18px;grid-template-columns:repeat(4,1fr);list-style:none;margin:0;padding:0}.inst-step{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);overflow:hidden;padding:24px 22px 26px;position:relative;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}.inst-step:before{background:var(--accent);content:"";height:3px;inset-block-start:0;inset-inline:0;opacity:0;position:absolute;transition:opacity .16s ease}.inst-step:hover{border-color:var(--accent-weak-border);box-shadow:var(--shadow-md);transform:translateY(-3px)}.inst-step:hover:before{opacity:1}.inst-step-icon{align-items:center;background:var(--accent-weak);border-radius:var(--radius-sm);color:var(--accent);display:inline-flex;height:48px;justify-content:center;width:48px}.inst-step-n{color:var(--brass-weak);font-family:var(--font-data);font-size:40px;font-weight:700;line-height:1;inset-block-start:14px;inset-inline-end:16px;position:absolute}.inst-step h3{color:var(--ink);font-family:var(--font-display);font-size:17px;font-weight:600;margin:16px 0 6px;position:relative}.inst-step p{color:var(--muted);font-size:14px;line-height:1.55;margin:0;position:relative}.inst-catch{background:radial-gradient(120% 140% at 85% 0%,#14503c59,#0f2e2800 60%),var(--deep);color:#ffffffe6;margin-block:clamp(24px,5vh,56px);margin-inline:calc(50% - 50vw);padding-block:clamp(48px,8vh,84px);width:100vw}.inst-catch .inst-wrap{margin:0 auto;max-width:1120px;padding-inline:clamp(20px,5vw,56px)}.inst-catch .inst-kicker{color:#e7cf98}.inst-catch .inst-section-head h2{color:#fff}.inst-conflicts{display:flex;flex-direction:column;gap:12px;list-style:none;margin:0;max-width:720px;padding:0}.inst-conflict{align-items:center;background:#ffffff0f;border:1px solid rgba(255,255,255,.1);border-inline-start-width:3px;border-radius:var(--radius-sm);color:#ffffffeb;display:flex;font-size:14px;font-weight:500;gap:11px;padding:14px 16px}.inst-conflict svg{flex:0 0 auto}.inst-conflict.tone-danger{border-inline-start-color:#e88b7d}.inst-conflict.tone-danger svg{color:#e88b7d}.inst-conflict.tone-warn{border-inline-start-color:#e8c877}.inst-conflict.tone-warn svg{color:#e8c877}.inst-conflict.tone-ok{border-inline-start-color:#7fc9a3}.inst-conflict.tone-ok svg{color:#7fc9a3}.inst-deliverables{display:grid;gap:16px;grid-template-columns:1fr 1fr}.inst-deliverable{align-items:flex-start;background:var(--surface);border:1px solid var(--line);border-inline-start:3px solid var(--accent);border-radius:var(--radius);box-shadow:var(--shadow-sm);display:flex;gap:16px;padding:22px 24px;transition:transform .16s ease,box-shadow .16s ease}.inst-deliverable:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.inst-deliverable>svg{background:var(--accent-weak);border-radius:var(--radius-sm);box-sizing:content-box;color:var(--accent);flex:0 0 auto;height:24px;padding:10px;width:24px}.inst-deliverable h3{color:var(--ink);font-family:var(--font-display);font-size:17px;font-weight:600;margin:0 0 5px}.inst-deliverable p{color:var(--muted);font-size:13.5px;line-height:1.5;margin:0}.inst-final{background:var(--accent);color:#fff;margin-inline:calc(50% - 50vw);margin-block:clamp(24px,5vh,56px) 0;padding:clamp(48px,8vh,88px) 24px;text-align:center;width:100vw}.inst-final-seal{filter:brightness(0) invert(1);height:66px;margin:0 auto 18px;opacity:.9;width:66px}.inst-final h2{color:#fff;font-family:var(--font-display);font-size:clamp(24px,3.6vw,36px);font-weight:600;margin:0 auto 12px;max-width:20ch;text-wrap:balance}.inst-final p{color:#ffffffe6;font-size:16px;margin:0 auto 26px;max-width:46ch}.inst-cta-onpine{box-shadow:0 10px 30px #00000038;margin:0 auto}.inst-foot{background:var(--deep);color:#ffffffbf}.inst-foot-inner{margin:0 auto;max-width:1120px;padding:clamp(32px,5vh,52px) clamp(20px,5vw,56px)}.inst-foot-brand{align-items:center;color:#fff;display:flex;font-family:var(--font-display);font-size:19px;font-weight:600;gap:10px}.inst-foot-brand .inst-logo{filter:brightness(0) invert(1);height:30px;opacity:.95;width:30px}.inst-foot-tag{color:#ffffffb3;font-size:14px;margin:12px 0 0;max-width:46ch}.inst-foot-line{align-items:center;border-top:1px solid rgba(255,255,255,.14);color:#fff9;display:flex;flex-wrap:wrap;font-family:var(--font-data);font-size:12px;gap:8px 12px;letter-spacing:.04em;margin-top:24px;padding-top:18px}[dir=rtl] .inst-foot-line{letter-spacing:normal}.inst-foot-sep{color:#ffffff4d}@media(max-width:860px){.inst-nav-links{display:none}.inst-steps{grid-template-columns:repeat(2,1fr)}.inst-deliverables{grid-template-columns:1fr}.inst-stats{margin-block:-32px 0}}@media(max-width:560px){.inst-stats{grid-template-columns:1fr}.inst-stat+.inst-stat{border-inline-start:none;border-block-start:1px solid var(--line)}.inst-hero{min-height:auto;padding-block-end:48px}.inst-brand span,.inst-foot-brand span{font-size:18px}}@media(prefers-reduced-motion:reduce){[data-reveal]{opacity:1;transform:none;transition:none}.inst-scroll{animation:none}.inst-cta-primary:hover{transform:none}}
