:root{color-scheme:light dark;--bg:#f3f5fa;--surface:#fff;--ink:#192538;--muted:#627087;--line:#dce3ed;--accent:#315bd8;--tint:#edf2ff;--error:#b02b3d;font-family:system-ui,-apple-system,"Segoe UI",sans-serif;background:var(--bg);color:var(--ink)}
*{box-sizing:border-box}body{margin:0}main{max-width:900px;margin:auto;padding:28px 20px calc(24px + env(safe-area-inset-bottom))}[hidden]{display:none!important}header{padding:8px 4px 24px}.brand{display:flex;align-items:center;gap:10px;font-weight:750;font-size:20px}.brand-icon{display:grid;place-items:center;width:34px;height:34px;background:var(--accent);color:#fff;border-radius:11px}.tag{margin-left:auto;border:1px solid var(--line);padding:5px 10px;border-radius:20px;font-size:12px;font-weight:500;color:var(--muted)}h1{font-size:clamp(29px,5.5vw,46px);line-height:1.15;letter-spacing:-1.2px;margin:28px 0 14px}h1 span{color:var(--accent)}header p{max-width:560px;color:var(--muted);line-height:1.6;margin-bottom:0}.panel{background:var(--surface);border:1px solid var(--line);border-radius:22px;padding:24px;margin-bottom:18px}.section-heading,.results-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}h2{font-size:20px;margin:0}.step{font-size:13px;color:var(--accent);background:var(--tint);padding:7px 10px;border-radius:10px}.muted,.hint{color:var(--muted);line-height:1.5}.hint{font-size:13px}.subjects,.filters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.subjects label,.filters label{display:flex;flex-direction:column;gap:7px;font-size:13px;font-weight:600;min-width:0}.subjects input,select{width:100%;border:1px solid var(--line);background:var(--bg);color:var(--ink);border-radius:12px;min-height:48px;padding:11px 12px;font:inherit;font-size:16px}.subjects input:focus,select:focus{border-color:var(--accent)}button,a,input,select,summary{-webkit-tap-highlight-color:transparent}button{font:inherit;font-weight:600;cursor:pointer;border-radius:12px;padding:13px 18px;border:1px solid var(--line);color:var(--ink);background:var(--surface);min-height:44px}button:disabled{opacity:.5;cursor:wait}.primary{display:flex;width:100%;justify-content:space-between;background:var(--accent);color:#fff;border:0}.secondary{width:100%;background:var(--tint);color:var(--accent)}.text-button{color:var(--accent);background:none;border:0;padding:8px 0;font-size:13px}a{color:var(--accent);text-underline-offset:3px}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid var(--accent);outline-offset:3px}.filters{margin-top:20px}.results-heading{font-size:13px;margin:10px 0}.program{border:1px solid var(--line);border-radius:16px;padding:18px;margin-bottom:14px;overflow-wrap:anywhere}.program .code{font-size:12px;color:var(--muted);margin:0 0 7px}.program h3{font-size:18px;line-height:1.35;margin:0 0 8px}.program p{line-height:1.5}.program .location{font-size:13px;color:var(--muted);margin:0 0 14px}.metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;background:var(--bg);border-radius:12px;padding:12px}.metric{font-size:12px;color:var(--muted)}.metric strong{display:block;font-size:21px;color:var(--ink);margin-bottom:3px}.metric:first-child strong{color:var(--accent)}.price{font-size:14px}.statistics{font-size:13px;color:var(--muted)}summary{cursor:pointer;color:var(--accent);padding:10px 0;font-size:14px;font-weight:600}details{border-top:1px solid var(--line)}.details-body{font-size:14px}.details-body ul{padding-left:20px}.source-links{display:flex;gap:16px;flex-wrap:wrap;font-size:13px}.notes{padding:12px 6px;color:var(--muted);font-size:13px;line-height:1.65}.notes h2{font-size:16px;color:var(--ink)}.error{color:var(--error);font-size:14px}.empty{padding:24px 12px;background:var(--bg);border-radius:12px;color:var(--muted);line-height:1.6}footer{text-align:center;color:var(--muted);font-size:12px;margin-top:28px}
@media(max-width:420px){main{padding:16px 12px}.panel{padding:18px 14px;border-radius:18px}.subjects,.filters{gap:12px 10px}h2{font-size:18px}.metrics{gap:6px;padding:10px}.program{padding:14px}.metric strong{font-size:19px}.results-heading{align-items:baseline}select{font-size:14px;padding:10px 7px}}
@media(prefers-color-scheme:dark){:root{--bg:#121923;--surface:#1b2533;--ink:#e6edf7;--muted:#a5b2c5;--line:#344155;--accent:#91acff;--tint:#293855;--error:#ff9dab}.primary,.brand-icon{background:#466bdf;color:#fff}}
