:root{--bg: #17212b;--bg2: #1d2935;--card: #232e3c;--accent: #2ea6ff;--accent2: #50a8eb;--text: #e9edf0;--muted: #7d8e9e;--green: #4dd07f;--red: #ec5b56;--gold: #e6b34d;--border: #0e1621}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{margin:0;height:100%}body{background:var(--bg);color:var(--text);font-family:-apple-system,SF Pro Text,PingFang SC,Roboto,system-ui,sans-serif;font-size:15px;overscroll-behavior:none}.app{display:flex;flex-direction:column;height:100vh;height:100dvh}.header{padding:14px 16px;display:flex;align-items:center;justify-content:space-between;background:var(--bg2);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:5}.header .title{font-weight:700;font-size:17px}.balance{background:var(--card);border-radius:999px;padding:6px 12px;font-weight:700;color:var(--gold);font-size:14px}.content{flex:1;overflow-y:auto;padding:12px 12px 80px}.tabbar{position:fixed;bottom:0;left:0;right:0;display:flex;background:var(--bg2);border-top:1px solid var(--border);padding:6px 0 calc(6px + env(safe-area-inset-bottom))}.tabbar button{flex:1;background:none;border:none;color:var(--muted);font-size:11px;display:flex;flex-direction:column;align-items:center;gap:3px;padding:4px;cursor:pointer}.tabbar button.active{color:var(--accent)}.tabbar .ico{font-size:20px}.card{background:var(--card);border-radius:12px;padding:12px;margin-bottom:10px}.match-card{cursor:pointer}.match-top{display:flex;justify-content:space-between;align-items:center}.league-chip{font-size:11px;color:var(--accent2);background:#2ea6ff1f;padding:2px 8px;border-radius:6px}.match-teams{font-weight:600;margin:8px 0 4px}.muted{color:var(--muted);font-size:12px}.score{font-weight:800;font-size:18px;font-variant-numeric:tabular-nums}.score.live{color:var(--green)}.dot-live{display:inline-block;width:7px;height:7px;background:var(--red);border-radius:50%;margin-right:5px;animation:pulse 1.2s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.3}}.odds-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:10px}.odds-grid.two{grid-template-columns:repeat(2,1fr)}.odds-grid.four{grid-template-columns:repeat(4,1fr)}.odds-btn{background:var(--bg2);border:1px solid transparent;border-radius:10px;padding:10px 6px;display:flex;flex-direction:column;align-items:center;gap:3px;color:var(--text);cursor:pointer;font-size:13px}.odds-btn .o{color:var(--accent);font-weight:700}.odds-btn.sel{border-color:var(--accent);background:#2ea6ff24}.section-title{font-size:12px;color:var(--muted);margin:14px 2px 6px;text-transform:uppercase;letter-spacing:.04em}.btn{background:var(--accent);color:#fff;border:none;border-radius:10px;padding:12px;width:100%;font-weight:700;font-size:15px;cursor:pointer}.btn:disabled{opacity:.5}.btn.ghost{background:var(--card);color:var(--text)}.row{display:flex;align-items:center;justify-content:space-between;gap:10px}.slip-bar{position:fixed;bottom:64px;left:8px;right:8px;background:var(--accent);color:#fff;border-radius:12px;padding:10px 14px;display:flex;justify-content:space-between;align-items:center;box-shadow:0 6px 20px #0006;cursor:pointer}.stake-input{width:100%;background:var(--bg2);border:1px solid var(--border);border-radius:10px;padding:12px;color:var(--text);font-size:16px;margin:8px 0}.chip{display:inline-block;background:var(--bg2);border-radius:8px;padding:4px 10px;margin:0 6px 6px 0;font-size:13px;cursor:pointer}.chip.active{background:var(--accent);color:#fff}.modal-bg{position:fixed;inset:0;background:#0009;display:flex;align-items:flex-end;z-index:20}.sheet{background:var(--bg2);border-radius:16px 16px 0 0;padding:16px;width:100%;max-height:85vh;overflow-y:auto}.handle{width:36px;height:4px;background:var(--muted);border-radius:2px;margin:0 auto 12px}.rank-row{display:flex;align-items:center;gap:10px;padding:8px 4px;border-bottom:1px solid var(--border)}.rank-row .pos{width:28px;text-align:center;font-weight:700}.rank-row .delta.pos{color:var(--green)}.tag{font-size:11px;padding:2px 7px;border-radius:6px}.tag.WIN{background:#4dd07f29;color:var(--green)}.tag.LOSE{background:#ec5b5629;color:var(--red)}.tag.OPEN{background:#e6b34d29;color:var(--gold)}.tag.VOID{background:#7d8e9e29;color:var(--muted)}.empty{text-align:center;color:var(--muted);padding:40px 20px}.toast{position:fixed;top:60px;left:50%;transform:translate(-50%);background:var(--card);padding:10px 16px;border-radius:10px;z-index:30;box-shadow:0 4px 16px #0006}
