:root{--text:#3f3b46;--text-h:#08060d;--text-muted:#6b6572;--bg:#fff;--bg-subtle:#f6f5f8;--bg-raised:#fff;--border:#e5e4e7;--accent:#15803d;--accent-bg:#15803d1a;--accent-contrast:#fff;--danger:#b3261e;--danger-bg:#b3261e14;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--radius-sm:6px;--radius-md:8px;--radius-lg:14px;--topbar-h:52px;--tabbar-h:60px;--safe-bottom:env(safe-area-inset-bottom,0px);--safe-top:env(safe-area-inset-top,0px);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;font:15px/1.5 system-ui,Segoe UI,Roboto,sans-serif}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--text:#d1d0d6;--text-h:#f3f4f6;--text-muted:#96939e;--bg:#16171d;--bg-subtle:#1e1f26;--bg-raised:#1b1c23;--border:#2e303a;--accent:#4ade80;--accent-bg:#4ade8024;--accent-contrast:#0b1a10;--danger:#ff8178;--danger-bg:#ff81781f}}*{box-sizing:border-box}body{background:var(--bg);margin:0}h1,h2{color:var(--text-h);letter-spacing:-.01em;margin:0;font-weight:650}h1{font-size:24px}h2{text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);font-size:13px;font-weight:600}p{margin:0}button{font:inherit;border-radius:var(--radius-md);border:1px solid var(--accent);background:var(--accent);min-height:44px;color:var(--accent-contrast);cursor:pointer;padding:10px 16px;font-weight:500;transition:opacity .12s,background .12s,border-color .12s}button:hover:not(:disabled){opacity:.88}button:disabled{opacity:.5;cursor:default}button.btn-secondary{border-color:var(--border);color:var(--text-h);background:0 0}button.btn-secondary:hover:not(:disabled){background:var(--bg-subtle);opacity:1}.btn-block{width:100%}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.app-shell{flex-direction:column;min-height:100svh;display:flex}.topbar{z-index:10;justify-content:space-between;align-items:center;gap:var(--space-3);height:calc(var(--topbar-h) + var(--safe-top));padding:var(--safe-top) var(--space-4) 0;background:var(--bg);border-bottom:1px solid var(--border);display:flex;position:sticky;top:0}.brand{color:var(--text-h);letter-spacing:-.01em;font-size:16px;font-weight:700}.balance-pill{font-variant-numeric:tabular-nums;color:var(--accent);background:var(--accent-bg);border-radius:999px;padding:4px 12px;font-size:14px;font-weight:650}.page{width:100%;max-width:640px;padding:var(--space-4) var(--space-4) calc(var(--tabbar-h) + var(--safe-bottom) + var(--space-5));gap:var(--space-4);flex-direction:column;flex:1;margin:0 auto;display:flex}.page-loading{padding:var(--space-6) var(--space-4);text-align:center;color:var(--text-muted)}.tabbar{z-index:10;height:calc(var(--tabbar-h) + var(--safe-bottom));padding-bottom:var(--safe-bottom);background:var(--bg-raised);border-top:1px solid var(--border);grid-template-columns:repeat(4,1fr);display:grid;position:fixed;bottom:0;left:0;right:0}.tabbar-item{color:var(--text-muted);flex-direction:column;justify-content:center;align-items:center;gap:2px;font-size:11px;font-weight:500;display:flex}.tabbar-item:hover{color:var(--text-h);text-decoration:none}.tabbar-item.active{color:var(--accent)}.tabbar-item svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:24px;height:24px}.hint{color:var(--text-muted);font-size:13px}.empty-state{border:1px dashed var(--border);border-radius:var(--radius-lg);padding:var(--space-6) var(--space-4);text-align:center;gap:var(--space-1);color:var(--text-h);flex-direction:column;display:flex}.detail-list{border:1px solid var(--border);border-radius:var(--radius-lg);margin:0;overflow:hidden}.detail-list>div{justify-content:space-between;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border);display:flex}.detail-list>div:last-child{border-bottom:none}.detail-list dt{color:var(--text-muted)}.detail-list dd{color:var(--text-h);text-align:right;overflow-wrap:anywhere;margin:0;font-weight:500}.auth-card{max-width:380px;margin:calc(var(--space-6) + var(--safe-top)) auto var(--space-6);padding:var(--space-6) var(--space-5);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--bg-raised)}.auth-card h1{font-size:22px}.auth-card .hint{margin-top:var(--space-1)}.auth-card form{gap:var(--space-3);margin:var(--space-4) 0;flex-direction:column;display:flex}.auth-card label{gap:var(--space-1);color:var(--text-h);flex-direction:column;font-size:13px;font-weight:500;display:flex}.auth-card p{color:var(--text-muted);font-size:13px}input{font:inherit;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg);width:100%;min-height:44px;color:var(--text-h);padding:8px 12px;font-size:16px}input:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.form-error{color:var(--danger);font-size:13px}.modal-overlay{z-index:100;background:#0006;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.modal-panel{background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--radius-lg) var(--radius-lg) 0 0;padding:var(--space-5) var(--space-4) calc(var(--space-5) + var(--safe-bottom));gap:var(--space-3);flex-direction:column;width:100%;max-width:640px;max-height:85svh;display:flex;overflow-y:auto}.modal-header{justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}@media (width<=480px){.auth-card{margin:var(--safe-top) 0 0;padding:var(--space-6) var(--space-4);border:none;border-radius:0;max-width:none}}.game-day{gap:var(--space-2);flex-direction:column;display:flex}.game-card{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--bg-raised);padding:var(--space-2) var(--space-3) var(--space-3);gap:var(--space-2);flex-direction:column;display:flex}.game-row{gap:var(--space-2);grid-template-columns:minmax(0,1fr) repeat(3,68px);align-items:center;display:grid}.game-row--header{text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);text-align:center;font-size:11px;font-weight:600}.game-kickoff{text-align:left;text-transform:none;letter-spacing:0;font-size:12px}.team-name{flex-direction:column;min-width:0;line-height:1.2;display:flex}.team-city{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.team-nickname{color:var(--text-h);white-space:nowrap;text-overflow:ellipsis;font-weight:650;overflow:hidden}.odds-cell{border-radius:var(--radius-md);background:var(--bg-subtle);border:1px solid var(--border);font-variant-numeric:tabular-nums;flex-direction:column;justify-content:center;align-items:center;min-height:48px;line-height:1.2;display:flex}.odds-cell--empty{color:var(--text-muted)}.odds-point{color:var(--text-muted);font-size:12px}.odds-price{color:var(--text-h);font-weight:650}.odds-footnote{text-align:center}@media (width<=360px){.game-row{grid-template-columns:minmax(0,1fr) repeat(3,60px);gap:6px}}
