:root{--bg: #0e1116;--panel: #171b22;--line: #262c36;--text: #e8ecf1;--muted: #8b95a5;--win: #1f9d55;--win-hi: #27c46a;--fell: #d6453d;--fell-hi: #f0564d;--back: #72bbef;--warn: #e0a526;color-scheme:dark}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;background:var(--bg);color:var(--text)}body{font:15px/1.3 -apple-system,BlinkMacSystemFont,Inter,system-ui,sans-serif;padding:env(safe-area-inset-top) 0 env(safe-area-inset-bottom);overscroll-behavior:none;-webkit-user-select:none;user-select:none}button{font:inherit;color:inherit;background:none;border:0;cursor:pointer;touch-action:manipulation}input{font:inherit}.muted{color:var(--muted)}.small{font-size:13px}.spacer{flex:1}.empty{text-align:center;color:var(--muted);margin:64px 16px}main{padding:0 12px 32px}.statusbar{position:sticky;top:0;z-index:5;display:flex;align-items:center;gap:8px;padding:10px 12px;background:var(--bg);border-bottom:1px solid var(--line);font-size:13px}.dot{width:9px;height:9px;border-radius:50%}.dot.ok{background:var(--win-hi);box-shadow:0 0 8px var(--win-hi)}.dot.warn{background:var(--warn)}.dot.bad{background:var(--fell)}.pill{font-size:11px;font-weight:700;letter-spacing:.04em;padding:2px 7px;border-radius:99px;background:var(--line)}.pill.danger{background:var(--fell);color:#fff}.icon{font-size:20px;padding:0 4px}.section{font-size:13px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:16px 4px 8px}.races{list-style:none;margin:0;padding:0}.races li+li{border-top:1px solid var(--line)}.races button{display:flex;align-items:center;gap:14px;width:100%;padding:14px 4px;text-align:left}.races .time{font-size:20px;font-weight:700;font-variant-numeric:tabular-nums;width:58px}.races .info{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}.races .info .muted{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.countdown{font-size:13px;color:var(--muted);font-variant-numeric:tabular-nums}.countdown.off{color:var(--warn);font-weight:700}.race-head{display:flex;align-items:center;gap:10px;padding:10px 0 6px}.back{color:var(--back);padding:6px 0;font-size:15px}.title{flex:1;display:flex;flex-direction:column;min-width:0}.title strong{font-size:17px}.title .muted{font-size:13px}.inplay{display:flex;flex-direction:column;align-items:center;font-weight:800;font-size:18px;padding:4px 12px;border-radius:10px;background:var(--panel);border:1px solid var(--line);min-width:64px}.inplay small{font-size:10px;font-weight:600;color:var(--muted);text-transform:uppercase}.inplay.yes{background:var(--win);border-color:var(--win-hi)}.inplay.yes small{color:#d8ffe6}.race-meta{display:flex;align-items:center;gap:10px;font-size:13px;padding:4px 0 10px}.link{color:var(--back);font-size:13px;padding:6px 4px}.arm{display:flex;align-items:center;gap:6px;padding:7px 14px;border-radius:99px;background:var(--panel);border:1px solid var(--line);font-weight:700;font-size:13px}.arm input{display:none}.arm.on{background:var(--warn);color:#1a1300;border-color:var(--warn)}.runners{display:flex;flex-direction:column;gap:6px}.runner{display:grid;grid-template-columns:34px 1fr 64px 62px 64px;gap:5px;align-items:stretch;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:6px 6px 6px 4px}.runner .id{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px}.runner .no{font-size:19px;font-weight:800;line-height:1;font-variant-numeric:tabular-nums}.runner .silk{width:30px;height:22px;object-fit:contain}.runner .silk.none{border-radius:4px;background:var(--line)}.runner .name{display:flex;align-items:center;min-width:0;font-weight:600;font-size:14px;line-height:1.2;overflow-wrap:normal;word-break:normal;-webkit-hyphens:auto;hyphens:auto;overflow:hidden}.btn{border-radius:9px;font-weight:800;font-size:16px;min-height:52px;color:#fff;transition:transform .05s}.btn:active:not(:disabled){transform:scale(.94)}.btn.win{background:var(--win)}.btn.win:active:not(:disabled){background:var(--win-hi)}.btn.fell{background:var(--fell)}.btn.fell:active:not(:disabled){background:var(--fell-hi)}.btn:disabled{background:#2a2f38;color:#5b6472}.odds{display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:9px;background:#1c2a38;transition:background .3s}.odds .price{font-size:19px;font-weight:800;color:var(--back);font-variant-numeric:tabular-nums}.odds .size{font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums}.odds.up{background:#4a2020;transition:none}.odds.down{background:#1b4a2b;transition:none}.runner.dead{opacity:.4}.runner.fell{opacity:.55;border-color:var(--fell)}.runner.win{border-color:var(--win-hi);box-shadow:0 0 0 1px var(--win-hi) inset}.runner.win .btn.win:disabled{background:var(--win);color:#fff}.runner.fell .btn.fell:disabled{background:var(--fell);color:#fff}.betlog{margin-top:20px}.betlog h3{font-size:13px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:0 4px 6px}.bet{display:grid;grid-template-columns:auto 1fr;gap:2px 8px;padding:8px 4px;border-top:1px solid var(--line);font-size:13px}.bet .tag{grid-row:span 2;align-self:center;font-size:11px;font-weight:800;padding:3px 6px;border-radius:6px}.bet .tag.win{background:var(--win)}.bet .tag.fell{background:var(--fell)}.bet .who{font-weight:600}.bet .detail{grid-column:2}.bet .muted{grid-column:2;font-size:11px}.bet.failed .detail{color:var(--fell-hi)}.bet.pending .detail,.bet.unknown .detail{color:var(--warn)}.gate{display:flex;flex-direction:column;gap:12px;padding:25vh 24px 0}.gate h1{margin:0 0 8px}.gate input,.field input{padding:14px;border-radius:10px;border:1px solid var(--line);background:var(--panel);color:var(--text);font-size:17px}.primary{background:var(--back);color:#06121c;font-weight:800;padding:14px;border-radius:10px}.sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#000a;z-index:10;display:flex;align-items:flex-end}.sheet{width:100%;background:var(--panel);border-radius:18px 18px 0 0;padding:20px 16px calc(20px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:14px;max-height:90vh;overflow-y:auto}.sheet h2,.sheet p{margin:0}.field{display:flex;flex-direction:column;gap:6px}.field span{font-weight:600}.field small{color:var(--muted)}.toast{position:fixed;left:12px;right:12px;bottom:calc(16px + env(safe-area-inset-bottom));z-index:20;background:#3a1b1b;border:1px solid var(--fell);color:#fff;padding:12px 14px;border-radius:12px;font-weight:600}
