:root{font-family:IBM Plex Sans,Segoe UI,sans-serif;color:#10243a;background:radial-gradient(circle at top left,rgba(247,203,92,.28),transparent 28%),radial-gradient(circle at top right,rgba(56,189,248,.16),transparent 24%),linear-gradient(180deg,#fffdf8,#f6f8fb);line-height:1.5;font-weight:400;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--panel: rgba(255, 255, 255, .92);--panel-strong: #ffffff;--border: rgba(16, 36, 58, .12);--shadow: 0 18px 44px rgba(18, 38, 63, .08);--ink-soft: #5e738d;--teal: #0b7285;--teal-dark: #095c6a;--gold: #f59f00;--danger: #c92a2a}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}pre{margin:0;white-space:pre-wrap;word-break:break-word}.app-shell{max-width:1400px;margin:0 auto;padding:28px 24px 48px}.topbar{display:flex;justify-content:space-between;gap:24px;align-items:flex-start}.brand{display:inline-block;font-size:1.6rem;font-weight:700;letter-spacing:-.04em}.brand-copy{margin:10px 0 0;max-width:720px;color:var(--ink-soft)}.topbar-actions{display:flex;gap:12px;align-items:center}.user-chip{display:flex;flex-direction:column;align-items:flex-end;gap:2px;padding:10px 14px;border-radius:999px;background:#ffffffb3;border:1px solid var(--border)}.user-chip span{color:var(--ink-soft);font-size:.86rem}.main-nav{display:flex;gap:10px;margin:24px 0 28px;flex-wrap:wrap}.nav-link{padding:10px 16px;border-radius:999px;border:1px solid var(--border);background:#ffffffc7;color:var(--ink-soft)}.nav-link-active{background:linear-gradient(135deg,#0b7285,#095c6a);color:#fff;border-color:transparent}.page-shell{display:flex;flex-direction:column;gap:24px}.route-live-dashboard .hero-card,.route-progress .section-header,.route-progress .content-card:first-child,.route-progress .sidebar-card,.route-staff-courses .section-header,.route-reports .section-header{position:relative;overflow:hidden}.route-live-dashboard .hero-card:before,.route-progress .content-card:first-child:before,.route-progress .sidebar-card:before,.route-staff-courses .section-header:before,.route-reports .section-header:before{content:"";position:absolute;inset:0 auto auto 0;width:100%;height:6px;background:linear-gradient(90deg,#0b7285,#74c0fc,#f59f00)}.route-live-dashboard .hero-card{background:radial-gradient(circle at top right,rgba(116,192,252,.2),transparent 28%),radial-gradient(circle at bottom left,rgba(245,159,0,.14),transparent 26%),var(--panel)}.route-live-dashboard .metric-card:nth-child(1){border-top:4px solid #0b7285}.route-live-dashboard .metric-card:nth-child(2){border-top:4px solid #2b8a3e}.route-live-dashboard .metric-card:nth-child(3){border-top:4px solid #5f3dc4}.route-live-dashboard .metric-card:nth-child(4){border-top:4px solid #f59f00}.route-progress .section-header{padding:26px 28px;border-radius:24px;background:radial-gradient(circle at top right,rgba(95,61,196,.15),transparent 24%),radial-gradient(circle at bottom left,rgba(11,114,133,.12),transparent 24%),var(--panel);border:1px solid var(--border);box-shadow:var(--shadow)}.route-progress .content-card:first-child{background:linear-gradient(180deg,#fffffffa,#f3f8fcf5)}.route-progress .sidebar-card{background:linear-gradient(180deg,#fffffffa,#f7f8fff0)}.hero-card,.content-card,.sidebar-card,.table-card,.callout-card,.state-card{background:var(--panel);border:1px solid var(--border);border-radius:24px;box-shadow:var(--shadow)}.hero-card{display:flex;justify-content:space-between;gap:24px;padding:32px}.hero-card h1,.section-header h1{margin:8px 0 12px;font-size:clamp(2rem,3vw,3rem);line-height:1.04;letter-spacing:-.04em}.hero-copy,.section-header p,.callout-card p,.content-card p{color:var(--ink-soft)}.hero-stats,.stats-grid,.card-grid{display:grid;gap:16px}.hero-stats{grid-template-columns:repeat(1,minmax(160px,1fr));min-width:260px}.stat-tile,.metric-card{padding:18px 20px;border-radius:20px;background:linear-gradient(180deg,#fffffff5,#eff5fae6);border:1px solid rgba(16,36,58,.08)}.stat-tile strong,.metric-card strong{display:block;font-size:1.35rem;margin-bottom:6px}.stat-tile span,.metric-card span{color:var(--ink-soft)}.card-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.feature-card{padding:24px;text-align:left;border:1px solid var(--border);border-radius:24px;background:linear-gradient(180deg,#fffffff2,#f3f7fbeb);box-shadow:var(--shadow);transition:transform .18s ease,box-shadow .18s ease}.feature-card:hover{transform:translateY(-2px);box-shadow:0 24px 48px #12263f1f}.feature-card h2{margin:10px 0}.feature-card p{color:var(--ink-soft)}.feature-card-kicker,.eyebrow{display:inline-flex;align-items:center;gap:6px;color:var(--teal);font-size:.82rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.feature-card-link{display:inline-block;margin-top:18px;font-weight:700}.section-header{display:flex;justify-content:space-between;gap:18px;align-items:flex-start}.compact-header h2{margin-top:6px;margin-bottom:8px}.table-card,.content-card,.sidebar-card{padding:24px}.data-table{width:100%;border-collapse:collapse}.data-table th,.data-table td{text-align:left;padding:14px 10px;border-bottom:1px solid rgba(16,36,58,.08);vertical-align:top}.data-table th{color:var(--ink-soft);font-size:.86rem;text-transform:uppercase;letter-spacing:.08em}.table-link{border:none;background:none;color:var(--teal);padding:0;font-weight:700}.primary-button,.secondary-button,.danger-button{border-radius:999px;padding:11px 18px;border:1px solid transparent;transition:opacity .16s ease,transform .16s ease}.primary-button:hover,.secondary-button:hover,.danger-button:hover{transform:translateY(-1px)}.primary-button{background:linear-gradient(135deg,#0b7285,#095c6a);color:#fff}.secondary-button{background:#fff;border-color:var(--border);color:#10243a}.danger-button{background:#fff1f0;color:var(--danger);border-color:#c92a2a2e}.state-card,.callout-card{padding:32px;text-align:center}.state-card-error{border-color:#c92a2a33}.spinner{width:42px;height:42px;margin:0 auto 16px;border-radius:999px;border:4px solid rgba(11,114,133,.18);border-top-color:var(--teal);animation:spin 1s linear infinite}.callout-actions{display:flex;justify-content:center;gap:12px;margin-top:20px;flex-wrap:wrap}.inline-error{margin-top:16px;color:var(--danger)}.reports-filter-bar{display:flex;gap:12px;align-items:end;flex-wrap:wrap;margin-bottom:20px}.reports-filter-bar label,.rescore-fields label{display:grid;gap:7px;font-weight:700}.reports-filter-bar input,.reports-filter-bar select,.rescore-fields input,.rescore-fields textarea{min-height:46px;border-radius:14px;border:1px solid var(--border);padding:0 14px;background:#fff;color:#10243a}.reports-filter-bar input{min-width:280px}.reports-table-wrap{overflow-x:auto}.reports-table td small{display:block;margin-top:6px;color:var(--ink-soft)}.report-row-active{background:#0b72850d}.report-detail-row>td{padding:0 10px 18px;background:#0b72850a}.report-detail-panel{display:grid;gap:18px;margin:10px 0 0;padding:22px;border-radius:20px;border:1px solid rgba(16,36,58,.1);background:#fff}.report-detail-header,.rescore-actions{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.report-detail-header h3{margin:6px 0 4px}.report-meta-grid,.report-detail-grid,.rescore-fields{display:grid;gap:14px}.report-meta-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.report-meta-grid div{display:grid;gap:5px;padding:14px;border-radius:16px;background:#f7fafde0;border:1px solid rgba(16,36,58,.08)}.report-meta-grid strong{color:var(--ink-soft);font-size:.82rem;text-transform:uppercase;letter-spacing:.08em}.report-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.rescore-form{display:grid;gap:12px;padding-top:4px}.rescore-fields{grid-template-columns:minmax(160px,.35fr) minmax(280px,1fr)}.rescore-fields textarea{min-height:108px;padding-top:12px;resize:vertical}.status-badge{display:inline-flex;align-items:center;border-radius:999px;padding:7px 11px;font-size:.84rem;font-weight:700;white-space:nowrap}.status-pending{background:#f59f0024;color:#8f5b00}.status-reviewed{background:#5f3dc41f;color:#4c2ea2}.status-rescored{background:#2b8a3e1f;color:#2b7a3d}.empty-table-state{padding:24px;border-radius:18px;border:1px dashed rgba(16,36,58,.18);background:#ffffff9e}.empty-table-state h3{margin-top:0}.search-form{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin-bottom:20px}.search-input,.search-form select{min-height:46px;border-radius:14px;border:1px solid var(--border);padding:0 14px;background:#fff}.search-input{flex:1 1 260px}.split-layout{display:grid;grid-template-columns:320px minmax(0,1fr);gap:20px}.sidebar-heading{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:16px}.sidebar-list,.stack-list{display:flex;flex-direction:column;gap:14px}.student-pill,.source-button,.course-choice{display:flex;justify-content:space-between;gap:12px;align-items:center;width:100%;text-align:left;padding:14px 16px;border-radius:18px;border:1px solid var(--border);background:#fff}.student-pill-main{flex:1;display:flex;justify-content:flex-start;align-items:center;text-align:left;border:none;background:transparent;padding:0}.student-pill-active,.source-button-active{border-color:#0b728552;box-shadow:inset 0 0 0 1px #0b728538;background:#0b72850d}.student-pill strong{display:block}.student-pill small,.muted-text{color:var(--ink-soft)}.student-pill-reset{border:none;background:transparent;color:var(--danger);font-weight:700}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.attempt-card{padding:20px;border-radius:20px;border:1px solid var(--border);background:linear-gradient(180deg,#fffffffa,#f6f8fbe6)}.attempt-card-top{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.attempt-label{margin:0 0 6px;color:var(--ink-soft);text-transform:uppercase;font-size:.8rem;letter-spacing:.08em}.attempt-card h3,.subheading{margin:0}.score-pill{border-radius:999px;padding:10px 12px;background:#f59f001f;color:#8f5b00;font-weight:700}.attempt-metrics,.file-links{display:flex;gap:16px;flex-wrap:wrap;margin-top:16px}.attempt-metrics span,.file-links a{color:var(--ink-soft)}.file-preview-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}.file-preview-card{display:flex;flex-direction:column;gap:10px;padding:16px;border-radius:16px;background:#f7fafde0;border:1px solid rgba(16,36,58,.08)}.file-preview-card a{color:var(--teal);font-weight:600}.file-preview-embed{width:100%;min-height:420px;border:1px solid rgba(16,36,58,.12);border-radius:12px;background:#fff}.file-preview-image{width:100%;max-height:520px;object-fit:contain;border:1px solid rgba(16,36,58,.12);border-radius:12px;background:#fff}.detail-block{padding:16px;border-radius:16px;background:#f7fafde0;border:1px solid rgba(16,36,58,.08)}.detail-block strong{display:block;margin-bottom:10px}.rich-text{color:#10243a}.rich-text>:first-child{margin-top:0}.rich-text>:last-child{margin-bottom:0}.rich-text p,.rich-text ul,.rich-text ol,.rich-text blockquote,.rich-text pre{margin:0 0 12px}.rich-text ul,.rich-text ol{padding-left:20px}.rich-text code{background:#10243a0f;border-radius:6px;padding:2px 6px}.rich-text pre code{display:block;padding:12px;overflow-x:auto}.detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 14px}.progress-layout{display:grid;grid-template-columns:260px minmax(0,1fr);gap:20px}.content-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(280px,.9fr);gap:20px}.content-grid-stacked{grid-template-columns:1fr}.chart-wrap{display:flex;flex-direction:column;gap:14px}.chart-svg{width:100%;height:auto;overflow:visible}.axis-line{stroke:#10243a33;stroke-width:1.5}.grid-line{stroke:#10243a14;stroke-width:1}.axis-label{fill:#61758f;font-size:12px}.axis-label-bottom{text-anchor:middle}.chart-point{cursor:pointer;transition:r .12s ease}.chart-point:hover{r:7}.chart-legend{display:flex;gap:14px;flex-wrap:wrap;color:var(--ink-soft)}.chart-legend span{display:inline-flex;align-items:center;gap:8px}.chart-legend i{width:12px;height:12px;border-radius:999px;display:inline-block}.source-button{font-weight:600}.course-choice{justify-content:flex-start;font-weight:600}code{font-family:IBM Plex Mono,SFMono-Regular,monospace}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.report-row{transition:background .14s ease;cursor:pointer}.report-row:hover{background:#0b72850a}.reports-filter-bar input:focus,.reports-filter-bar select:focus,.rescore-fields input:focus,.rescore-fields textarea:focus{outline:2px solid rgba(11,114,133,.4);outline-offset:1px;border-color:var(--teal)}.report-detail-panel{border-top:3px solid var(--teal)}.source-button{transition:box-shadow .16s ease,background .16s ease}.feature-card-link:after{content:" →"}@media (max-width: 1080px){.split-layout,.progress-layout,.content-grid{grid-template-columns:1fr}.hero-card{flex-direction:column}}@media (max-width: 720px){.app-shell{padding:18px 14px 36px}.topbar,.section-header,.sidebar-heading,.attempt-card-top{flex-direction:column}.detail-grid,.report-detail-grid,.rescore-fields{grid-template-columns:1fr}.main-nav{overflow-x:auto;padding-bottom:4px}}
