:root{--brand: #8974D8;--brand-strong: #6D54B5;--brand-soft: #F3F0FE;--text: #2B3452;--text-secondary: #5F687A;--page: #F6F7FB;--surface: #FFFFFF;--border: #E3E5EE;--success: #19754B;--success-soft: #EAF7EF;--warning: #8A5700;--warning-soft: #FFF4DE;--danger: #AF3544;--danger-soft: #FDEDF0;--radius-card: 18px;--radius-control: 10px}body{margin:0;font-family:Inter,Segoe UI,Arial,sans-serif;background:var(--page);color:var(--text);font-size:16px;line-height:1.5}*{box-sizing:border-box}.demo-banner{background:var(--warning-soft);color:var(--warning);text-align:center;padding:8px;font-size:14px;font-weight:500}.app-header{display:flex;align-items:center;justify-content:space-between;padding:16px 32px;background:var(--surface);border-bottom:1px solid var(--border)}.brand{font-weight:600;color:var(--text);font-size:18px}.app-main{display:grid;gap:20px;min-width:0;max-width:1440px;margin:0 auto;padding:24px 32px}.app-main>*,.card{min-width:0}.app-header{flex-wrap:wrap;gap:16px}#main-nav{display:flex;flex-wrap:wrap;gap:8px}.nav-link{color:var(--brand-strong);text-decoration:none;padding:8px 10px;border-radius:8px}.nav-link:hover{background:var(--brand-soft)}.btn{text-decoration:none}.btn:disabled{opacity:.55;cursor:not-allowed}.page-header h1{margin:0;font-size:clamp(24px,3vw,32px)}.subtitle,.meta-text{color:var(--text-secondary)}.meta-row,.action-meta,.action-buttons,.review-header,.version-header{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.review-header{justify-content:space-between}.review-queue{display:grid;gap:16px}.version-item{padding:16px 0;border-bottom:1px solid var(--border);overflow-wrap:anywhere}.notice{padding:12px;border-radius:10px;background:var(--brand-soft)}.notice.error{color:var(--danger);background:var(--danger-soft)}.table-scroll{overflow-x:auto}.route-step{font-family:inherit;cursor:pointer}.route{flex-wrap:wrap}input,select,textarea{max-width:100%}form>.btn{margin-top:12px}:focus-visible{outline:3px solid var(--brand-strong);outline-offset:3px}@media (max-width: 600px){.leaderboard{table-layout:fixed;width:100%}.leaderboard th,.leaderboard td{padding:8px 3px;font-size:12px;overflow-wrap:anywhere}.demo-switcher{flex-wrap:wrap}.demo-select{max-width:100%}.route-step{width:100%}.route{align-items:stretch}}@media (prefers-reduced-motion: reduce){*{transition:none!important;scroll-behavior:auto!important}}@media (max-width: 768px){.app-header{flex-direction:column;gap:12px;padding:16px}.app-main{padding:16px}}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-card);padding:20px 24px;box-shadow:0 1px 2px #2b34520a}.card-title{font-size:18px;font-weight:600;color:var(--text);margin:0 0 16px}.card-subtitle{font-size:14px;color:var(--text-secondary);margin:0 0 12px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 18px;border-radius:var(--radius-control);font-size:14px;font-weight:500;border:none;cursor:pointer;transition:background .15s,box-shadow .15s;min-height:44px}.btn-primary{background:var(--brand-strong);color:#fff}.btn-primary:hover{background:#5a4599}.btn-secondary{background:var(--brand-soft);color:var(--brand-strong)}.btn-secondary:hover{background:#e6e0fa}.btn-ghost{background:transparent;color:var(--text);border:1px solid var(--border)}.btn-ghost:hover{background:var(--brand-soft)}.btn:disabled{opacity:.5;cursor:not-allowed}.status-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:12px;font-size:12px;font-weight:500}.status-badge:before{content:"";width:6px;height:6px;border-radius:50%}.status-unknown{background:#f3f4f6;color:#6b7280}.status-unknown:before{background:#9ca3af}.status-not_started{background:#f3f4f6;color:#6b7280}.status-not_started:before{background:#9ca3af}.status-in_progress{background:var(--brand-soft);color:var(--brand-strong)}.status-in_progress:before{background:var(--brand)}.status-submitted{background:var(--warning-soft);color:var(--warning)}.status-submitted:before{background:#d97706}.status-revision_required{background:var(--danger-soft);color:var(--danger)}.status-revision_required:before{background:var(--danger)}.status-accepted{background:var(--success-soft);color:var(--success)}.status-accepted:before{background:var(--success)}.deadline-indicator{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:8px;font-size:13px;font-weight:500}.deadline-accepted{background:var(--success-soft);color:var(--success)}.deadline-active{background:var(--brand-soft);color:var(--brand-strong)}.deadline-overdue{background:var(--danger-soft);color:var(--danger)}.deadline-under_review{background:var(--warning-soft);color:var(--warning)}.deadline-revision{background:var(--danger-soft);color:var(--danger)}.deadline-not_started_yet{background:#f3f4f6;color:#6b7280}.leaderboard{width:100%;border-collapse:collapse}.leaderboard th{text-align:left;padding:10px 12px;font-size:12px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;border-bottom:2px solid var(--border)}.leaderboard td{padding:12px;font-size:14px;border-bottom:1px solid var(--border)}.leaderboard tr:last-child td{border-bottom:none}.leaderboard .rank{font-weight:600;color:var(--brand-strong);width:60px}.leaderboard .team-name{font-weight:500}.leaderboard .score{font-weight:600;color:var(--text)}.leaderboard .highlight{background:var(--brand-soft)}.status-matrix{width:100%;border-collapse:collapse;font-size:13px}.status-matrix th,.status-matrix td{padding:10px 8px;text-align:center;border:1px solid var(--border)}.status-matrix th{background:var(--brand-soft);font-weight:600;color:var(--text);position:sticky;top:0}.status-matrix .team-col{text-align:left;font-weight:500;background:var(--surface);position:sticky;left:0;z-index:1}.status-matrix .cell{cursor:pointer;transition:background .15s}.status-matrix .cell:hover{background:var(--brand-soft)}.route{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.route-step{display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:8px;font-size:13px;font-weight:500;cursor:pointer;transition:background .15s}.route-step:hover{background:var(--brand-soft)}.route-step.accepted{background:var(--success-soft);color:var(--success)}.route-step.current{border:2px solid var(--brand);color:var(--brand-strong)}.route-step.revision{background:var(--danger-soft);color:var(--danger)}.route-step.future{color:var(--text-secondary)}.route-connector{width:20px;height:2px;background:var(--border)}.form-group{margin-bottom:16px}.form-label{display:block;font-size:14px;font-weight:500;color:var(--text);margin-bottom:6px}.form-input,.form-textarea,.form-select{width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius-control);font-size:14px;font-family:inherit;transition:border-color .15s}.form-input:focus,.form-textarea:focus,.form-select:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft)}.form-textarea{min-height:100px;resize:vertical}.demo-switcher{display:flex;align-items:center;gap:8px}.demo-label{font-size:13px;color:var(--text-secondary)}.demo-select{padding:6px 10px;border:1px solid var(--border);border-radius:6px;font-size:13px;background:var(--surface)}.metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:16px;margin-bottom:24px}.metric{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-card);padding:16px}.metric-label{font-size:12px;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px}.metric-value{font-size:28px;font-weight:600;color:var(--text)}.metric-sub{font-size:13px;color:var(--text-secondary);margin-top:4px}@media (max-width: 768px){.card{padding:16px}.metrics{grid-template-columns:repeat(2,1fr)}.route{flex-direction:column;align-items:flex-start}.route-connector{width:2px;height:16px;margin-left:16px}.status-matrix{font-size:11px}.status-matrix th,.status-matrix td{padding:6px 4px}.leaderboard{font-size:13px}.leaderboard th,.leaderboard td{padding:8px}}@media (max-width: 480px){.metrics{grid-template-columns:1fr}}:root{--brand:#e8e404;--brand-strong:#e8e404;--brand-soft:#333a32;--text:#f2f4f1;--text-secondary:#b6c1c2;--page:#191f21;--surface:#242c2e;--border:#414a4c;--radius-card:20px;--success:#b8e3c8;--success-soft:#284338;--warning:#ffda8e;--warning-soft:#493e29;--danger:#ffc0b4;--danger-soft:#4a3330}body{font-family:Inter,Segoe UI,Arial,sans-serif;font-size:15px}h1,h2,h3,p{overflow-wrap:break-word}h1,h2,h3{line-height:1.18}h2{margin:0 0 18px;font-size:22px}a{color:#acd5e0}button,input,select,textarea{font:inherit}.demo-banner{background:#30383a;color:#c4cecd;font-size:12px;padding:7px 16px}.app-header{display:grid;grid-template-columns:auto 1fr auto;gap:20px;padding:20px 40px;background:var(--page)}.brand{display:flex}.brand img{display:block}#main-nav{justify-content:center;gap:4px}.nav-link{color:var(--text-secondary);border-radius:30px;font-size:13px;padding:9px 13px}.nav-link.active{background:#e8e404;color:#22292b}.nav-link:hover{color:#fff;background:#414a42}.nav-link.active:hover{color:#22292b;background:#f4ef39}.demo-switcher{display:grid;gap:3px}.demo-label{font-size:11px}.demo-select{color:var(--text);max-width:215px;border-radius:10px;padding:8px 10px}.app-main{max-width:1440px;padding:32px 40px 48px;gap:24px}.hero{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;padding:10px 0}.eyebrow{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:1.8px;margin-bottom:16px;color:var(--text-secondary)}.hero h1{font-size:clamp(28px,3.2vw,46px);letter-spacing:-1.4px;line-height:1.13;font-weight:800;max-width:900px}.hero-brand{color:var(--brand)}.hero .subtitle{margin:18px 0 0;max-width:700px}.hero .btn{white-space:nowrap;flex-shrink:0}.btn{border-radius:30px;font-weight:600;padding:12px 20px}.btn-primary{background:#e8e404;color:#22292b}.btn-primary:hover{background:#f4ef39}.btn-secondary{background:#3b484b;color:#d0e5eb}.btn-secondary:hover{background:#4e5d60}.card{box-shadow:none;padding:24px}.card-title{color:var(--text)}.overview-metrics{display:grid;grid-template-columns:1fr 1.2fr 1.1fr;gap:20px}.overall-card{background:#e8e404;color:#22292b;border-color:#e8e404}.overall-card .eyebrow{color:#434a2e}.overall-number{font-size:64px;line-height:1;font-weight:750;margin:14px 0 20px;letter-spacing:-3px}.overall-number span{font-size:32px;padding-left:4px}.overall-card p{margin:12px 0 0;font-size:13px}.progress-track{width:100%;height:8px;border-radius:20px;background:#455053;overflow:hidden}.progress-track>span{display:block;height:100%;background:var(--brand);border-radius:inherit;transition:width .35s ease}.overall-card .progress-track{background:#bcb900}.overall-card .progress-track>span{background:#22292b}.program-numbers{display:flex;justify-content:space-between;gap:16px;margin:24px 0}.program-numbers div{display:grid;gap:4px}.program-numbers strong{font-size:38px;line-height:1}.program-numbers span{color:var(--text-secondary);font-size:13px}.program-card p{color:var(--text-secondary);font-size:13px;max-width:280px}.next-deadline{background:#8bb9c4;color:#202a2d;border-color:#8bb9c4;display:flex;flex-direction:column}.next-deadline .eyebrow{color:#314d54}.next-deadline h2{font-size:24px;margin:8px 0 12px}.deadline-info{font-size:14px}.text-link{color:inherit;text-decoration:none;font-weight:650;margin-top:auto}.section-heading{display:flex;justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:6px}.section-heading .subtitle{font-size:12px}.team-progress-row{display:grid;grid-template-columns:44px 160px 1fr 175px;gap:18px;align-items:center;padding:18px 0;border-bottom:1px solid var(--border)}.team-progress-row:last-child{border-bottom:0;padding-bottom:4px}.team-progress-row.highlight{background:#303b35;border-radius:10px;padding:18px 12px}.team-tile{color:#20292c;font-size:23px;font-weight:650;width:44px;height:44px;border-radius:12px;display:grid;place-items:center}.team-caption{display:grid;gap:4px}.team-caption .subtitle{font-size:12px}.progress-caption{display:flex;justify-content:space-between;gap:8px;font-size:12px;margin-bottom:9px;color:var(--text-secondary)}.progress-caption strong{color:var(--text)}.review-count{text-align:right;font-size:12px;color:var(--text-secondary)}.program-route{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:12px}.program-step{border-top:1px solid var(--border);padding:16px 6px 0 0;text-decoration:none;color:var(--text);display:flex;flex-direction:column;gap:12px}.program-step:hover{border-color:var(--brand)}.step-number{color:#8bb9c4;font-size:25px;font-weight:650}.program-step strong{font-size:13px;min-height:48px}.program-step .subtitle{font-size:11px}.status-matrix{min-width:1000px}.status-matrix th{font-size:12px;background:#30393b}.status-matrix .team-col{min-width:100px}.status-matrix .cell{cursor:default}.status-unknown,.status-not_started{background:#394345;color:#ced7d8}.status-badge{white-space:nowrap}.form-input,.form-select,.form-textarea{background:#192123;color:var(--text)}option,optgroup{background:#242c2e;color:var(--text)}.route-step{border:1px solid var(--border);background:#30393b;color:var(--text)}.route-step.future{color:#c5cfd0}.deadline-not_started_yet{background:#394345;color:#ced7d8}.notice:empty{display:none}label{display:block;margin:8px 0}.roster-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.roster-card .team-tile{margin-bottom:20px}.roster-card h2{margin-bottom:8px}.roster-list{list-style:none;padding:0;margin:20px 0 0}.roster-list li{border-top:1px solid var(--border);padding:10px 0}.app-footer{max-width:1440px;margin:auto;padding:24px 40px;color:#a4b0b2;font-size:12px;display:flex;justify-content:space-between;gap:16px;border-top:1px solid var(--border)}@media (max-width:1100px){.app-header{grid-template-columns:auto 1fr}#main-nav{grid-row:2;grid-column:1/-1;justify-content:flex-start}#user-menu{justify-self:end}.hero{align-items:flex-start}.overview-metrics{gap:12px}.team-progress-row{grid-template-columns:44px 125px 1fr}.review-count{display:none}.program-route{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (max-width:760px){.app-header{padding:16px 20px}.app-main{padding:24px 20px;gap:18px}.hero{flex-direction:column}.hero h1{font-size:32px;letter-spacing:-.7px}.overview-metrics{grid-template-columns:1fr 1fr}.next-deadline{grid-column:1/-1}.overall-number{font-size:54px}.program-numbers{gap:10px;flex-wrap:wrap}.program-numbers strong{font-size:30px}.section-heading{display:block;margin-bottom:12px}.section-heading h2{margin-bottom:8px}.roster-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.app-footer{flex-direction:column;padding:20px}}@media (max-width:480px){.app-header{gap:12px;padding:12px 16px}.brand img{width:90px;height:auto}.demo-select{max-width:190px;font-size:12px}.app-main{padding:20px 16px}.hero h1{font-size:29px}.card{padding:20px 16px}.overview-metrics{grid-template-columns:1fr}.next-deadline{grid-column:auto}.program-numbers{margin:10px 0}.overall-card{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center}.overall-card .eyebrow{margin:0}.overall-number{margin:0;font-size:48px;grid-column:2;grid-row:1/3}.overall-card .progress-track{grid-column:1}.overall-card p{grid-column:1/-1;margin:0}.team-progress-row{grid-template-columns:40px 1fr;gap:12px}.team-bar{grid-column:1/-1}.team-tile{width:40px;height:40px}.program-route{grid-template-columns:repeat(2,minmax(0,1fr))}.program-step strong{min-height:32px}.roster-grid{grid-template-columns:1fr}.nav-link{font-size:12px;padding:8px 10px}}
