: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;position:relative}.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}button.odds-cell{font:inherit;color:inherit;cursor:pointer;padding:0;transition:background .12s,border-color .12s}button.odds-cell:hover:not(:disabled){opacity:1;border-color:var(--accent)}button.odds-cell[aria-pressed=true]{background:var(--accent);border-color:var(--accent)}button.odds-cell[aria-pressed=true] .odds-point,button.odds-cell[aria-pressed=true] .odds-price{color:var(--accent-contrast)}.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}.market-headers{display:contents}button.market-header{border-radius:var(--radius-sm);min-height:32px;color:inherit;font:inherit;letter-spacing:inherit;text-transform:inherit;background:0 0;border:none;justify-content:center;align-items:center;gap:3px;padding:0;display:inline-flex}button.market-header:hover:not(:disabled){opacity:1;color:var(--text-h)}button.market-header[aria-expanded=true]{color:var(--accent);background:var(--accent-bg)}.market-header-icon{border:1px solid;border-radius:50%;place-items:center;width:13px;height:13px;font-size:9px;line-height:1;display:inline-grid}.market-tip{z-index:5;padding:var(--space-3);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-raised);text-align:left;text-transform:none;letter-spacing:normal;color:var(--text);font-size:13px;font-weight:400;position:absolute;top:calc(100% + 4px);left:0;right:0;box-shadow:0 6px 20px #0000002e}.market-tip strong{color:var(--text-h);margin-bottom:2px;font-weight:650;display:block}.odds-footnote{text-align:center}@media (width<=360px){.game-row{grid-template-columns:minmax(0,1fr) repeat(3,60px);gap:6px}}h2{margin-top:var(--space-2)}.btn-link{border-radius:var(--radius-md);justify-content:center;align-items:center;min-height:44px;padding:10px 16px;font-weight:500;display:flex}.btn-link:hover{text-decoration:none}.btn-secondary-link{border:1px solid var(--border);color:var(--text-h)}.btn-secondary-link:hover{background:var(--bg-subtle)}.segmented{border-radius:var(--radius-md);background:var(--bg-subtle);border:1px solid var(--border);grid-auto-columns:1fr;grid-auto-flow:column;gap:2px;padding:3px;display:grid}.segmented button{border-radius:var(--radius-sm);min-height:36px;color:var(--text-muted);background:0 0;border:none;padding:4px 8px}.segmented button:hover:not(:disabled){opacity:1;color:var(--text-h)}.segmented button[aria-selected=true],.segmented button[aria-checked=true]{background:var(--bg-raised);color:var(--text-h);box-shadow:0 1px 3px #0000001f}.status-badge{background:var(--bg-subtle);color:var(--text-muted);border-radius:999px;padding:2px 10px;font-size:12px;font-weight:600;display:inline-block}.status-badge--pending{background:var(--accent-bg);color:var(--accent)}.status-badge--won{background:var(--accent);color:var(--accent-contrast)}.status-badge--lost{background:var(--danger-bg);color:var(--danger)}.status-badge--admin{margin-left:var(--space-2);padding:1px 8px;font-size:11px}.modal-header h2{margin:0}.slip-selection,.bet-card-top{justify-content:space-between;align-items:flex-start;gap:var(--space-3);display:flex}.slip-label{color:var(--text-h);font-size:17px;font-weight:650}.slip-price{color:var(--text-h);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:17px;font-weight:700}.slip-notice{padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);background:var(--accent-bg);color:var(--text-h);font-size:13px}.slip-stake{gap:var(--space-1);color:var(--text-h);flex-direction:column;font-size:13px;font-weight:500;display:flex}.money-input{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg);align-items:center;padding-left:12px;display:flex}.money-input:focus-within{outline:2px solid var(--accent);outline-offset:1px}.money-input span{color:var(--text-muted);font-size:16px}.money-input input{font-variant-numeric:tabular-nums;background:0 0;border:none;padding-left:4px}.money-input input:focus-visible{outline:none}.chip-row{gap:var(--space-2);flex-wrap:wrap;display:flex}button.chip{border:1px solid var(--border);background:var(--bg-subtle);min-height:36px;color:var(--text-h);border-radius:999px;flex:1 1 0;padding:4px 10px;font-size:14px}button.chip:hover:not(:disabled){opacity:1;border-color:var(--accent)}.slip-summary,.bet-card-money{gap:var(--space-2);grid-auto-columns:1fr;grid-auto-flow:column;margin:0;display:grid}.slip-summary dt,.bet-card-money dt{color:var(--text-muted);font-size:12px}.slip-summary dd,.bet-card-money dd{color:var(--text-h);font-variant-numeric:tabular-nums;margin:0;font-weight:650}.slip-confirm{text-align:center;gap:var(--space-1);padding:var(--space-2) 0;flex-direction:column;display:flex}.slip-confirm-check{color:var(--accent);font-size:32px;line-height:1}.slip-actions{gap:var(--space-2);grid-template-columns:1fr 1fr;display:grid}.bet-card{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--bg-raised);padding:var(--space-3) var(--space-4);gap:var(--space-2);flex-direction:column;display:flex}.bet-card-bottom{justify-content:space-between;align-items:center;gap:var(--space-2);display:flex}.bet-card-money{padding-top:var(--space-2);border-top:1px solid var(--border)}.ledger-list,.admin-users{border:1px solid var(--border);border-radius:var(--radius-lg);margin:0;padding:0;list-style:none;overflow:hidden}.ledger-list li{justify-content:space-between;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border);display:flex}.ledger-list li:last-child,.admin-users li:last-child .admin-user{border-bottom:none}.ledger-kind{color:var(--text-h);font-weight:500;display:block}.ledger-amounts{text-align:right;font-variant-numeric:tabular-nums;flex-shrink:0}.amount-credit{color:var(--accent);font-weight:600}.amount-debit{color:var(--text-h);font-weight:600}button.admin-user{justify-content:space-between;align-items:center;gap:var(--space-3);width:100%;padding:var(--space-3) var(--space-4);border:none;border-bottom:1px solid var(--border);color:inherit;text-align:left;background:0 0;border-radius:0;display:flex}button.admin-user:hover:not(:disabled){opacity:1;background:var(--bg-subtle)}button.admin-user .hint{display:block}.admin-balance{color:var(--text-h);font-variant-numeric:tabular-nums;font-weight:650}.admin-form{gap:var(--space-3);flex-direction:column;display:flex}.leaderboard{border:1px solid var(--border);border-radius:var(--radius-lg);margin:0;padding:0;list-style:none;overflow:hidden}.leaderboard li{border-bottom:1px solid var(--border)}.leaderboard-row{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);color:inherit;display:flex}a.leaderboard-row--link:hover{background:var(--bg-subtle);text-decoration:none}.row-chevron{color:var(--text-muted);flex:none;font-size:20px;line-height:1}button.back-link{min-height:32px;color:var(--accent);background:0 0;border:none;align-self:flex-start;padding:0;font-weight:500}.leaderboard li:last-child{border-bottom:none}.leaderboard li.leaderboard-me{background:var(--accent-bg)}.leaderboard-rank{background:var(--bg-subtle);width:30px;height:30px;color:var(--text-muted);font-variant-numeric:tabular-nums;border-radius:50%;flex:none;place-items:center;font-size:14px;font-weight:700;display:grid}.leaderboard-rank--1{color:#3d2e00;background:#f5c542}.leaderboard-rank--2{color:#23272e;background:#c9ced6}.leaderboard-rank--3{color:#3a1f06;background:#d99a62}.leaderboard-name{flex:auto;min-width:0}.leaderboard-name .hint{display:block}.leaderboard-profit{font-variant-numeric:tabular-nums;color:var(--text-h);flex:none;font-weight:650}.amount-loss,.leaderboard-profit.amount-loss{color:var(--danger)}.leaderboard-profit.amount-credit{color:var(--accent)}
