:root{--bg:#f6f7f9;--surface:#ffffff;--text:#1a1f2b;--muted:#5b6475;--border:#dde1e8;--ok:#1d7a46;--warn:#9a6200;--radius:10px}*{box-sizing:border-box}body,html{margin:0}body{background:var(--bg);color:var(--text);font-family:var(--font-body);font-size:16px;line-height:1.55;min-height:100vh;display:flex;flex-direction:column}h1,h2,h3{font-family:var(--font-heading);line-height:1.2;color:var(--brand-primary)}h1{font-size:1.75rem;margin:0 0 .5rem}h2{font-size:1.2rem;margin:0 0 .4rem}a{color:var(--brand-link)}p{margin:0 0 .8rem}.wrap{width:100%;max-width:960px;margin:0 auto;padding:0 16px}.main{flex:1 1;padding-top:32px;padding-bottom:48px}.site-header{background:var(--brand-primary);color:#fff}.header-row{justify-content:space-between;min-height:60px;gap:12px}.brand,.header-row{display:flex;align-items:center}.brand{color:#fff;text-decoration:none;font-family:var(--font-heading);font-weight:700;font-size:1.1rem;gap:10px}.brand-logo{height:32px;width:auto}.header-nav a{color:#fff;text-decoration:none;font-weight:600}.site-footer{border-top:1px solid var(--border);background:var(--surface);color:var(--muted);font-size:.9rem}.footer-row{display:flex;flex-wrap:wrap;gap:8px 20px;padding-top:16px;padding-bottom:16px}.footer-staff{margin-left:auto;color:var(--muted)}.lede{color:var(--muted);max-width:60ch}.grid{display:grid;grid-gap:16px;gap:16px;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));margin-top:24px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:20px}.card.narrow{max-width:440px}.card .muted{color:var(--muted);font-size:.95rem}.btn{display:inline-block;border:0;border-radius:8px;padding:10px 18px;font:inherit;font-weight:600;background:var(--brand-accent);color:#fff;cursor:pointer;text-decoration:none}.btn.secondary{background:var(--brand-primary)}.btn.ghost{background:transparent;color:var(--brand-primary);border:1px solid var(--border)}.btn:disabled{opacity:.6;cursor:default}label{display:block;font-weight:600;margin:12px 0 4px}input[type=email],input[type=password],input[type=text]{width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:8px;font:inherit;background:#fff}.form-actions{margin-top:16px;display:flex;gap:10px;align-items:center;flex-wrap:wrap}.notice{border-radius:8px;background:#eef4ff;border:1px solid #c9d8f5}.error,.notice{padding:12px 14px;margin-top:16px}.error{border-radius:8px;background:#fdecec;border:1px solid #f3c2c2;color:#8a1c1c}.class-list{list-style:none;padding:0;margin:20px 0 0;display:grid;grid-gap:12px;gap:12px}.class-item{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px 18px}.class-item h2{margin-bottom:4px}.meta{color:var(--muted);font-size:.95rem}.chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.chip{font-size:.8rem;font-weight:600;padding:3px 10px;border-radius:999px;background:#eef0f4;color:var(--muted)}.chip.ok{background:#e6f4ec;color:var(--ok)}.chip.warn{background:#fff4e0;color:var(--warn)}.topbar{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap}.coming{font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}