:root{--bg: #f8fafc;--fg: #0f172a;--banner: #1e3a8a;--banner-fg: #ffffff;--accent: #dc2626;--card: #ffffff;--border: #e2e8f0;--muted: #64748b;--link: #1d4ed8}[data-theme=dark]{--bg: #0f172a;--fg: #f1f5f9;--banner: #1e40af;--banner-fg: #ffffff;--card: #1e293b;--border: #334155;--muted: #94a3b8;--link: #60a5fa}*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,sans-serif;background:var(--bg);color:var(--fg)}a{color:var(--link)}.banner{background:var(--banner);color:var(--banner-fg);padding:1rem 1.25rem}.banner h1{margin:0;font-size:1.4rem}.banner p{margin:.25rem 0 0;font-size:.9rem;opacity:.95}.bottom-nav{position:fixed;bottom:0;left:0;right:0;display:flex;justify-content:space-around;align-items:center;background:var(--card);border-top:1px solid var(--border);padding:.4rem 0;z-index:20;font-size:.8rem}.bottom-nav a,.bottom-nav button{color:var(--fg);text-decoration:none;background:none;border:none;cursor:pointer;padding:.4rem}.bottom-nav a.active{color:var(--banner);font-weight:600}.fab{position:fixed;bottom:4.2rem;left:50%;transform:translate(-50%);width:56px;height:56px;border-radius:50%;background:var(--accent);color:#fff;border:none;font-size:1.6rem;z-index:21;box-shadow:0 4px 12px #00000040;display:flex;align-items:center;justify-content:center;cursor:pointer}.fab-badge{position:absolute;top:-4px;right:-4px;background:#111;color:#fff;border-radius:10px;font-size:.7rem;min-width:18px;height:18px;display:flex;align-items:center;justify-content:center;padding:0 4px}.menu-sheet{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;z-index:30;display:flex;align-items:flex-end}.menu-sheet-inner{background:var(--card);width:100%;border-radius:12px 12px 0 0;padding:1rem;display:flex;flex-direction:column;gap:.5rem}.menu-sheet-inner button{padding:.75rem;font-size:1rem;background:var(--bg);border:1px solid var(--border);border-radius:8px;cursor:pointer}.desktop-tabs{display:none;gap:.75rem;padding:.5rem 1rem;background:var(--card);border-bottom:1px solid var(--border);align-items:center}.desktop-tabs a{color:var(--fg);text-decoration:none;padding:.4rem .6rem;border-radius:6px}.desktop-tabs a.active{background:var(--banner);color:#fff}.desktop-tabs .brand{display:flex;align-items:center;gap:.4rem;font-weight:700;margin-right:.5rem}.desktop-tabs .brand img{width:28px;height:28px}.header-btn{background:var(--bg);border:1px solid var(--border);border-radius:6px;padding:.35rem .6rem;cursor:pointer}.app-footer{margin-top:2rem;padding:1rem;font-size:.8rem;color:var(--muted);border-top:1px solid var(--border);text-align:center}.lay-d .bottom-nav,.lay-d .fab,.lay-d .mobile-search{display:none}.lay-d .desktop-tabs{display:flex}.lay-m .desktop-tabs{display:none}html.lay-m body{padding-bottom:6rem}.mobile-search{display:none;padding:.6rem 1rem;background:var(--card);border-bottom:1px solid var(--border)}.lay-m .mobile-search{display:block}.mobile-search input{width:100%;padding:.7rem;font-size:1rem;border:1px solid var(--border);border-radius:8px}.tile-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.75rem;padding:1rem}.freshmen-grid{display:grid;grid-template-columns:1fr;gap:.75rem;padding:1rem}.lay-d .freshmen-grid{grid-template-columns:repeat(3,1fr)}.race-cards{display:none;padding:0 1rem 1rem}.lay-m .race-cards{display:block}.lay-m .race-table{display:none}.race-card{background:var(--card);border:1px solid var(--border);border-radius:8px;padding:.75rem;margin-bottom:.5rem}.tile{background:var(--card);border:1px solid var(--border);border-radius:8px;padding:.75rem}.tile .num{font-size:1.6rem;font-weight:700}.table-wrap{overflow-x:auto;padding:0 1rem 1rem}table{width:100%;border-collapse:collapse;font-size:.9rem}th,td{text-align:left;padding:.5rem;border-bottom:1px solid var(--border)}th{background:var(--card);font-weight:600}.pill{display:inline-block;padding:.25rem .6rem;border-radius:999px;background:var(--card);border:1px solid var(--border);margin-right:.4rem;font-size:.8rem;cursor:pointer}.pill.active{background:var(--banner);color:#fff;border-color:var(--banner)}.party-D{background:#1d4ed8;color:#fff;padding:.1rem .4rem;border-radius:4px;font-size:.75rem}.party-R{background:#dc2626;color:#fff;padding:.1rem .4rem;border-radius:4px;font-size:.75rem}.auth-canvas{min-height:100vh;background:#f7f3ea;display:flex;align-items:center;justify-content:center;padding:1.5rem}.auth-card{background:#fff;border:1px solid #e7e1d4;border-radius:12px;padding:1.5rem;width:100%;max-width:380px;box-shadow:0 8px 24px #1e3a8a14;text-align:center}.auth-card img{width:64px;height:64px}.auth-card h1{margin:.5rem 0 0;color:#1e3a8a}.auth-card .sub{color:#64748b;margin:.25rem 0 1rem;font-size:.9rem}.auth-card label{display:block;text-align:left;font-size:.85rem;margin-top:.6rem}.auth-card input{width:100%;padding:.55rem;margin-top:.2rem;border:1px solid #e2e8f0;border-radius:6px}.auth-card button[type=submit]{width:100%;margin-top:1rem;padding:.7rem;background:#1e3a8a;color:#fff;border:none;border-radius:8px;font-weight:600;cursor:pointer}.auth-card .signout{background:none;border:none;color:#1d4ed8;cursor:pointer;margin-top:.75rem}.best-contact{background:#eff6ff;border:2px solid #1e3a8a;border-radius:8px;padding:.75rem 1rem}.coming-soon{position:fixed;bottom:8.5rem;left:50%;transform:translate(-50%);background:#111;color:#fff;padding:.4rem .7rem;border-radius:6px;font-size:.8rem;z-index:22;white-space:nowrap}
