: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:1rem;padding:.5rem 1rem;background:var(--card);border-bottom:1px solid var(--border)}.desktop-tabs a{color:var(--fg);text-decoration:none;padding:.4rem .6rem;border-radius:6px}.desktop-tabs a.active{background:var(--banner);color:#fff}.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{display:none}.lay-d .desktop-tabs{display:flex}.lay-m .desktop-tabs{display:none}.tile-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.75rem;padding:1rem}.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}
