:root{--bg:#0b1220;--bg-elev:#121a2b;--bg-card:#162036;--border:#243352;--text:#e8eef9;--muted:#93a4c3;--accent:#3dd6c6;--accent-2:#f0b429;--uni:#5b8def;--college:#3dd6c6;--tech:#f0b429;--hs:#a78bfa;--work:#64748b;--danger:#f87171;--ok:#34d399;--radius:14px;--shadow:0 8px 30px #00000059;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;font-family:DM Sans,system-ui,sans-serif;line-height:1.45}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{background:radial-gradient(1200px 600px at 10% -10%, #1a3a4a55, transparent), radial-gradient(900px 500px at 90% 0%, #3a2a1055, transparent), var(--bg)}a{color:var(--accent)}code,.mono{font-family:IBM Plex Mono,ui-monospace,monospace}.app{max-width:1180px;margin:0 auto;padding:1.25rem 1.25rem 3rem}.banner{border:1px solid var(--border);border-radius:calc(var(--radius) + 4px);box-shadow:var(--shadow);background:linear-gradient(135deg,#1a2f4a 0%,#12353a 55%,#2a2410 100%);margin-bottom:1.25rem;padding:1.5rem 1.75rem}.banner h1{letter-spacing:-.02em;margin:0 0 .4rem;font-size:clamp(1.45rem,3vw,2rem)}.banner .sub{color:var(--muted);max-width:70ch;margin:0 0 1rem}.pill-row{flex-wrap:wrap;gap:.5rem;display:flex}.pill{border:1px solid var(--border);color:var(--muted);background:#0d1524aa;border-radius:999px;padding:.28rem .7rem;font-size:.78rem}.pill strong{color:var(--text);font-weight:600}.toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:1rem;display:flex}.toggle{background:var(--bg-elev);border:1px solid var(--border);border-radius:999px;gap:2px;padding:3px;display:inline-flex}.toggle button{color:var(--muted);cursor:pointer;font:inherit;background:0 0;border:0;border-radius:999px;padding:.45rem .9rem;font-size:.9rem;font-weight:600}.toggle button.active{background:var(--accent);color:#06241f}.hint{color:var(--muted);max-width:42ch;font-size:.85rem}.grid{grid-template-columns:repeat(12,1fr);gap:1rem;display:grid}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:1rem 1.1rem 1.15rem}.card h2{margin:0 0 .15rem;font-size:1.05rem}.card .desc{color:var(--muted);margin:0 0 .85rem;font-size:.82rem}.span-12{grid-column:span 12}.span-8{grid-column:span 8}.span-6{grid-column:span 6}.span-4{grid-column:span 4}@media (width<=900px){.span-8,.span-6,.span-4{grid-column:span 12}}.kpi-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.65rem;display:grid}.kpi{border:1px solid var(--border);background:#0e1728;border-radius:12px;padding:.7rem .8rem}.kpi .label{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:.72rem}.kpi .value{font-variant-numeric:tabular-nums;margin-top:.15rem;font-size:1.25rem;font-weight:700}.kpi .note{color:var(--muted);margin-top:.2rem;font-size:.72rem}.funnel{grid-template-columns:1.1fr .15fr 1fr;align-items:stretch;gap:.5rem;min-height:280px;display:grid}@media (width<=700px){.funnel{grid-template-columns:1fr}.funnel .arrow{display:none}}.funnel-box{border:1px solid var(--border);border-radius:12px;flex-direction:column;justify-content:center;padding:.9rem;display:flex}.funnel-box.hs{background:linear-gradient(#2a2150,#1a1630)}.funnel-box.paths{background:#0e1728;gap:.45rem}.path-row{border:1px solid var(--border);background:#121c30;border-radius:8px;justify-content:space-between;align-items:center;padding:.45rem .6rem;font-size:.88rem;display:flex}.path-row .tag{font-weight:600}.path-row .num{font-variant-numeric:tabular-nums;font-family:IBM Plex Mono,monospace;font-size:.82rem}.tag-uni{color:var(--uni)}.tag-cd{color:var(--college)}.tag-tc{color:var(--tech)}.tag-work{color:var(--work)}.arrow{color:var(--muted);justify-content:center;align-items:center;font-size:1.6rem;display:flex}.caveat{color:var(--accent-2);background:#2a220e;border:1px solid #5a4a20;border-radius:8px;margin-top:.75rem;padding:.55rem .7rem;font-size:.78rem}.legend{color:var(--muted);flex-wrap:wrap;gap:.7rem;margin:.3rem 0 .6rem;font-size:.8rem;display:flex}.legend span:before{content:"";vertical-align:middle;border-radius:2px;width:10px;height:10px;margin-right:.35rem;display:inline-block}.lg-uni:before{background:var(--uni)}.lg-cd:before{background:var(--college)}.lg-tc:before{background:var(--tech)}.lg-hs:before{background:var(--hs)}.chart-wrap{width:100%;height:300px}.chart-wrap.tall{height:340px}.gap-table{border-collapse:collapse;width:100%;font-size:.85rem}.gap-table th,.gap-table td{text-align:left;border-bottom:1px solid var(--border);padding:.45rem .35rem}.gap-table th{color:var(--muted);text-transform:uppercase;font-size:.75rem;font-weight:500}.uncertain{color:var(--accent-2);font-size:.78rem}.term-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:.5rem;display:grid}.term{border:1px solid var(--border);background:#0e1728;border-radius:10px;padding:.6rem .7rem;font-size:.82rem}.term b{margin-bottom:.15rem;display:block}.footer{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-elev);color:var(--muted);margin-top:1.25rem;padding:1rem 1.1rem;font-size:.82rem}.footer h3{color:var(--text);margin:0 0 .5rem;font-size:.95rem}.footer ul{columns:2;gap:1.5rem;margin:0;padding-left:1.1rem}@media (width<=700px){.footer ul{columns:1}}.footer li{break-inside:avoid;margin-bottom:.35rem}.badge{vertical-align:middle;border-radius:4px;margin-left:.35rem;padding:.12rem .4rem;font-size:.68rem;font-weight:700;display:inline-block}.badge-obs{color:var(--ok);background:#123528}.badge-mod{color:var(--accent-2);background:#3a2a10}.loading,.error{text-align:center;color:var(--muted);padding:3rem}.error{color:var(--danger)}
