@import url("https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap");:root{color-scheme:dark;--bg:#0a0f14;--panel:#121924;--panel-border:#1c2532;--text:#f5f7fb;--muted:#9aa4b2;--accent:#14b8a6;--accent-strong:#0f766e;--danger:#ef4444;--success:#22c55e;--cell:clamp(44px,6vw,72px);--header:clamp(42px,5.6vw,64px);--radius:14px;--seahawks:#69be28;--seahawks-navy:#002244;--patriots:#c60c30;--patriots-navy:#002244}*{box-sizing:border-box}body{margin:0;font-family:Inter,system-ui,-apple-system,Segoe UI,sans-serif;background:var(--bg);color:var(--text)}.app{max-width:1200px;margin:0 auto;padding:32px 20px 48px}.hero{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px;margin-bottom:28px}.hero h1{margin:0 0 8px;font-size:clamp(1.8rem,2.6vw,2.6rem)}.hero p{margin:0;color:var(--muted)}.hero-actions{display:flex;flex-wrap:wrap;gap:10px}.hero-controls{width:100%;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px}.layout{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));grid-gap:16px;gap:16px;margin-bottom:28px}.panel{background:var(--panel);border:1px solid var(--panel-border);border-radius:var(--radius);padding:16px;display:flex;flex-direction:column;gap:12px;min-height:240px;box-shadow:0 18px 40px rgba(5,10,20,.45)}.panel h2{margin:0 0 4px;font-size:1.1rem}.field-grid{display:grid;grid-gap:12px;gap:12px}.field{display:flex;flex-direction:column;gap:6px;font-size:.9rem;color:var(--muted)}button,input,select{font:inherit}input,select{border-radius:10px;border:1px solid #273142;background:#0d131c;color:var(--text);padding:8px 10px;transition:border .2s ease}input:focus,select:focus{outline:none;border-color:var(--accent)}input:disabled,select:disabled{opacity:.6;cursor:not-allowed}button{border:none;border-radius:999px;padding:10px 16px;cursor:pointer;font-weight:600;transition:transform .15s ease,box-shadow .15s ease}button:hover{transform:translateY(-1px)}button:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none}.primary{background:var(--accent);color:#fff;box-shadow:0 16px 28px rgba(20,184,166,.28)}.ghost{background:#1b2432}.ghost,.toggle{color:var(--text)}.toggle{display:flex;align-items:center;gap:10px;font-size:.95rem}.toggle-inline{background:#0c131c;border:1px solid #1d2734;border-radius:999px;padding:6px 12px}.toggle input{width:18px;height:18px}.hint{margin:0;color:var(--muted);font-size:.85rem}.hint.error{color:var(--danger)}.hint.success{color:var(--success)}.status{min-height:22px;font-size:.9rem}.status,.sync{color:var(--muted)}.sync{display:flex;align-items:center;gap:8px;font-size:.8rem}.sync-dot{width:8px;height:8px;border-radius:50%;background:#64748b}.sync-dot.connected{background:var(--success)}.sync-dot.connecting{background:#f59e0b}.sync-dot.offline{background:var(--danger)}.auth-block{gap:12px}.auth-block,.auth-login,.auth-user{display:flex;align-items:center;flex-wrap:wrap}.auth-login,.auth-user{gap:10px}.auth-label{font-size:.85rem;color:var(--muted);font-weight:600}.auth-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:32px 20px;background:var(--bg)}.live-panel{margin-bottom:28px;gap:16px}.live-header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px}.live-status{font-size:.85rem;color:var(--muted);padding:6px 12px;border-radius:999px;background:#0c131c;border:1px solid #1d2734}.live-scoreboard{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));grid-gap:12px;gap:12px}.live-team{display:grid;grid-template-columns:auto 1fr auto;align-items:center;grid-gap:10px;gap:10px;padding:10px 12px;border-radius:12px;background:#0c131c;border:1px solid #1d2734}.team-abbr{font-weight:700;font-size:.85rem;color:var(--muted);letter-spacing:.08em}.team-name{font-weight:600}.team-score{font-size:1.4rem;font-weight:700}.quarter-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));grid-gap:12px;gap:12px}.quarter-card{padding:12px;border-radius:12px;background:#0c131c;border:1px solid #1d2734;display:flex;flex-direction:column;gap:6px}.quarter-top{display:flex;align-items:center;justify-content:space-between;gap:8px}.quarter-label{font-weight:700}.quarter-status{font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.quarter-status.won{color:var(--success)}.quarter-status.live{color:var(--accent)}.quarter-score{font-size:.85rem;color:var(--muted)}.quarter-owner{font-weight:600}.quarter-digits{font-size:.75rem;color:var(--muted)}.odds-section h3{margin:0 0 8px;font-size:.95rem}.odds-list{display:grid;grid-gap:8px;gap:8px}.odds-row{display:grid;grid-template-columns:minmax(120px,1fr) 1.4fr auto;align-items:center;grid-gap:10px;gap:10px}.odds-name{font-weight:600}.odds-bar{height:6px;background:#1e293b;border-radius:999px;overflow:hidden}.odds-fill{display:block;height:100%;border-radius:999px}.odds-value{font-size:.85rem;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.status.error{color:var(--danger)}.status.success{color:var(--success)}.player-header,.player-row{display:grid;grid-template-columns:46px minmax(0,1.6fr) minmax(0,1fr) 80px;grid-gap:8px;gap:8px;align-items:center}.player-header{font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.player-list{display:grid;grid-gap:10px;gap:10px}.player-actions{display:flex;flex-wrap:wrap;gap:10px}.player-text{display:flex;flex-direction:column;gap:2px}.player-name{font-weight:600}.player-tag{color:var(--muted);font-size:.85rem}.color-swatch{width:36px;height:20px;border-radius:999px;border:1px solid rgba(255,255,255,.2);justify-self:start}.profile-panel{margin-bottom:28px}.profile-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.profile-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.profile-panel input[type=color]{width:64px;height:36px;padding:0;border:none;background:none}.pick-badge{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:999px;background:#1f2937;border:1px solid #2d3748;font-size:.85rem;font-weight:700}.board{display:flex;flex-direction:column;gap:12px}.board-header{align-items:center;justify-content:space-between}.board-badges,.board-header{display:flex;flex-wrap:wrap;gap:10px}.team-badge{display:inline-flex;align-items:center;gap:10px;background:#0c131c;border-radius:999px;padding:6px 14px;font-size:.85rem;border:1px solid #1d2734;box-shadow:0 10px 18px rgba(6,10,18,.4)}.team-badge.team-away{border-color:rgba(105,190,40,.4)}.team-badge.team-home{border-color:rgba(198,12,48,.4)}.team-logo{height:28px;width:auto;max-width:100px;object-fit:contain}.legend{display:flex;align-items:center;gap:8px;font-size:.8rem;color:var(--muted)}.legend-bar{width:120px;height:8px;border-radius:999px;background:linear-gradient(90deg,#ef4444,#f59e0b,#22c55e)}.grid-wrap{overflow:auto;border-radius:var(--radius);border:1px solid var(--panel-border);background:#0c131c;padding:8px}.grid{display:grid;grid-template-columns:var(--header) repeat(10,var(--cell));grid-auto-rows:var(--cell);grid-gap:6px;gap:6px;width:max-content}.cell,.cell-corner,.cell-header{border-radius:12px;background:#1f2937;display:flex;align-items:center;justify-content:center;text-align:center;font-weight:600;font-size:.85rem;position:relative;color:#f8fafc}.cell-header{font-weight:700}.cell-corner,.cell-header{background:#0f172a;border:1px solid #1f2937;color:var(--muted)}.cell-corner{padding:6px;font-size:.75rem}.corner-label{display:flex;flex-direction:column;gap:2px;font-size:.65rem;line-height:1.1;text-align:left}.cell{background:var(--cell-bg,#1f2937);padding:6px;cursor:pointer;transition:transform .1s ease}.cell:hover{transform:translateY(-1px)}.cell-won{box-shadow:0 0 0 2px rgba(34,197,94,.8),0 0 12px rgba(34,197,94,.25)}.cell-live{box-shadow:0 0 0 2px rgba(20,184,166,.75),0 0 12px rgba(20,184,166,.2)}.cell-flags{position:absolute;top:6px;right:6px;display:flex;gap:4px;z-index:2}.cell-flag{font-size:.55rem;padding:2px 6px;border-radius:999px;background:rgba(8,12,20,.7);border:1px solid rgba(148,163,184,.6);color:#e2e8f0}.cell-flag.won{border-color:rgba(34,197,94,.9);color:#86efac}.cell-flag.live{border-color:rgba(20,184,166,.9);color:#5eead4}.cell-label{font-size:.85rem;font-weight:700;line-height:1.1;z-index:1}.player-dot{position:absolute;top:6px;left:6px;width:10px;height:10px;border-radius:50%;background:var(--player-color,transparent);border:1px solid rgba(255,255,255,.4);opacity:.9}.cell-prob{position:absolute;bottom:6px;right:8px;font-size:.65rem;color:rgba(255,255,255,.85)}@media (max-width:900px){.player-header,.player-row{grid-template-columns:36px minmax(0,1fr) minmax(0,1fr) 70px}}@media (max-width:700px){.hero-actions{width:100%}.panel{min-height:auto}.player-header{display:none}.player-row{grid-template-columns:36px minmax(0,1fr)}}