
:root{--navy:#0C2D52;--teal:#0F9DB0;--tealb:#2BC4D4;--coral:#EE6B36;--amber:#F2A93B;--ink:#21303F;--muted:#5E7183;--line:#D7E2EC;--cloud:#EEF4FA;--cloud2:#F6F9FC;--white:#fff;--green:#1FA37A}
*{box-sizing:border-box}html,body{margin:0;padding:0}
body{font-family:-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;color:var(--ink);background:var(--cloud2);line-height:1.5}
a{color:var(--teal);text-decoration:none}a:hover{text-decoration:underline}
.wrap{max-width:1080px;margin:0 auto;padding:0 24px}
header.site{background:linear-gradient(135deg,var(--navy),#16406e);color:#fff;padding:34px 0 30px}
header.site .wrap{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.logo{width:46px;height:46px;border-radius:11px;background:var(--teal);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:20px;color:#fff;box-shadow:0 4px 14px rgba(0,0,0,.25)}
header.site h1{font-size:23px;margin:0;font-weight:700}
header.site p{margin:3px 0 0;color:#cfe0ef;font-size:14px}
.controls{margin:26px 0 8px;display:flex;gap:12px;flex-wrap:wrap;align-items:center}
#q{flex:1;min-width:240px;padding:13px 16px;border:1px solid var(--line);border-radius:11px;font-size:15px;background:#fff;box-shadow:0 1px 3px rgba(20,40,70,.05)}
#q:focus{outline:none;border-color:var(--teal);box-shadow:0 0 0 3px rgba(15,157,176,.15)}
.tags{display:flex;gap:8px;flex-wrap:wrap;margin:6px 0 22px}
.chip{font-size:12.5px;padding:6px 12px;border-radius:999px;border:1px solid var(--line);background:#fff;color:var(--muted);cursor:pointer;user-select:none;transition:.12s}
.chip:hover{border-color:var(--teal);color:var(--teal)}.chip.on{background:var(--teal);border-color:var(--teal);color:#fff}
.count{color:var(--muted);font-size:13px;margin:0 0 14px}
.course{margin:30px 0 8px}.course h2{font-size:18px;margin:0 0 3px;color:var(--navy)}
.course .sub{color:var(--muted);font-size:14px;margin:0 0 16px}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(248px,1fr));gap:16px}
.card{display:block;background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px;transition:.14s;position:relative;overflow:hidden}
.card:hover{transform:translateY(-2px);box-shadow:0 10px 26px rgba(20,40,70,.10);text-decoration:none;border-color:#bcd2e8}
.card .num{font-size:12px;font-weight:700;color:var(--teal);letter-spacing:1px}
.card h3{font-size:15.5px;margin:6px 0 8px;color:var(--navy);line-height:1.32}
.card p{font-size:13px;color:var(--muted);margin:0 0 12px;min-height:34px}
.card .ct{display:flex;gap:6px;flex-wrap:wrap}.ct .t{font-size:11px;color:var(--muted);background:var(--cloud);border-radius:6px;padding:2px 7px}
.card.ready .num::after{content:"● READY";float:right;color:var(--green);font-size:10px}
.card.planned{opacity:.6;pointer-events:none}.card.planned .num::after{content:"SOON";float:right;color:var(--muted);font-size:10px}
.empty{color:var(--muted);padding:40px 0;text-align:center}
footer.site{color:var(--muted);font-size:12.5px;text-align:center;padding:40px 0 30px}
.crumb{color:var(--muted);font-size:13px;margin:18px 0 0}.crumb a{color:var(--teal)}
