:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0e1013;--surface:#171a1f;--surface-2:#20242b;--border:#2b3038;--text:#e9edf2;--muted:#8b94a1;--accent:#3ddc84;--accent-ink:#062814;--gold:#f5c542;--red:#e5484d;--green:#30a46c;--radius:12px;--gap:12px;--safe-l:env(safe-area-inset-left,0px);--safe-r:env(safe-area-inset-right,0px);--safe-t:env(safe-area-inset-top,0px);--safe-b:env(safe-area-inset-bottom,0px)}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;overscroll-behavior:none;margin:0;font:16px/1.4 system-ui,-apple-system,Segoe UI,sans-serif}button{font:inherit;color:var(--text);background:var(--surface-2);border:1px solid var(--border);cursor:pointer;touch-action:manipulation;-webkit-user-select:none;user-select:none;border-radius:10px;min-height:44px;padding:10px 14px}button:active:not(:disabled){transform:scale(.97)}button:disabled{opacity:.4;cursor:default}button.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);font-weight:700}button.accent{background:var(--gold);border-color:var(--gold);color:#2a2000;font-weight:700}button.ghost{background:0 0;border-color:#0000}button.on{border-color:var(--accent);color:var(--accent)}button.wide{width:100%}input{font:inherit;color:var(--text);background:var(--surface-2);border:1px solid var(--border);border-radius:10px;width:100%;min-height:44px;padding:10px 12px}h1,h2{margin:0}h1{font-size:18px}h2{font-size:16px}.muted{color:var(--muted)}.hidden{display:none!important}.screen{min-height:100dvh;padding:calc(var(--safe-t) + 12px) calc(var(--safe-r) + 16px) calc(var(--safe-b) + 16px) calc(var(--safe-l) + 16px);gap:var(--gap);flex-direction:column;display:flex}.topbar{align-items:center;gap:8px;display:flex}.topbar h1{white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:15px;font-weight:600;overflow:hidden}.topbar .ghost{padding-left:0}.seg{background:var(--surface-2);border:1px solid var(--border);border-radius:10px;gap:3px;padding:3px;display:flex}.seg button{background:0 0;border:none;flex:1;min-height:38px;padding:6px 10px}.seg button.on{background:var(--accent);color:var(--accent-ink);font-weight:700}.seg.small button{min-height:32px;font-size:14px}.setup{width:100%;max-width:560px;margin:0 auto}.brand{align-items:center;gap:10px;padding:4px 0;display:flex}.brand h1{font-size:22px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:10px;padding:16px;display:flex}.card-row{justify-content:space-between;align-items:center;gap:12px;display:flex}.card-row p{margin:2px 0 0;font-size:14px}.field-label{color:var(--muted);margin-top:4px;font-size:13px}.toggles{flex-wrap:wrap;gap:16px;display:flex}.toggle{align-items:center;gap:8px;min-height:44px;display:flex}.toggle input{width:22px;height:22px;min-height:0;accent-color:var(--accent)}.players{flex-direction:column;gap:8px;display:flex}.player-input{gap:6px;display:flex}.add{color:var(--accent);align-self:flex-start}.stage-wrap{justify-content:center;display:flex}.stage{width:min(100%, calc(62dvh * var(--aspect)));border-radius:var(--radius);background:#000;position:relative;overflow:hidden}.stage.tapping{cursor:crosshair;outline:2px solid var(--gold)}.media,.overlay{object-fit:contain;width:100%;height:100%;display:block;position:absolute;inset:0}.stage-msg{text-align:center;color:var(--muted);place-items:center;padding:24px;display:grid;position:absolute;inset:0}.note{min-height:2.8em;color:var(--muted);margin:0;font-size:14px}.note.warn{color:var(--gold)}.actions{flex-wrap:wrap;gap:8px;display:flex}.actions button{flex:auto}.screen.game{height:100dvh;min-height:0;padding-bottom:calc(var(--safe-b) + 8px);gap:8px;overflow:hidden}.game .topbar h1{color:var(--muted);font-weight:500}.topbar .icon{padding:6px 8px;font-size:20px}.chart-btn{color:var(--gold);padding-right:0;font-weight:600}.board-view{flex-direction:column;flex:1;gap:10px;min-height:0;display:flex;container-type:size}.hero{background:var(--surface);border:2px solid var(--accent);border-radius:18px;flex-direction:column;flex:auto;justify-content:center;min-height:0;padding:1.5cqh 16px;display:flex;overflow:hidden}.hero.won{border-color:var(--gold)}.hero-head{flex-wrap:wrap;align-items:baseline;gap:12px;display:flex}.hero-name{font-size:clamp(20px,5.5cqh,44px);font-weight:700}.hero-meta{color:var(--muted);font-variant-numeric:tabular-nums;font-size:clamp(14px,3cqh,24px)}.legs{background:var(--surface-2);border-radius:8px;padding:0 10px;font-size:clamp(14px,3cqh,24px);font-weight:700}.hero-score{color:var(--accent);font-variant-numeric:tabular-nums;letter-spacing:-.03em;font-size:min(40cqw,32cqh);font-weight:800;line-height:.95}.hero.won .hero-score{color:var(--gold)}.turn{grid-template-columns:1fr 1fr 1fr 1.15fr;gap:8px;display:grid}.dart-slot,.turn-total{background:var(--surface);border:1px solid var(--border);height:clamp(48px,11cqh,120px);color:var(--muted);font-variant-numeric:tabular-nums;border-radius:12px;place-items:center;font-size:clamp(22px,7cqh,72px);font-weight:800;display:grid}.dart-slot.filled{color:var(--text)}.turn-total{background:var(--surface-2);color:var(--text)}.advice-area{align-items:center;min-height:clamp(56px,15cqh,160px);display:flex}.advice{flex-direction:column;gap:.6cqh;display:flex}.advice-main{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.advice-label{color:var(--muted);flex-basis:100%;font-size:clamp(14px,3cqh,26px)}.advice-alt{color:var(--muted);font-size:clamp(13px,3cqh,26px)}.chip{color:var(--gold);background:#f5c54226;border-radius:10px;padding:2px 12px;font-weight:800}.chip-double{color:#5fd39a;background:#30a46c33}.advice .chip{font-size:clamp(24px,min(8cqh,11cqw),84px);line-height:1.15}.others{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px;display:grid}.other{background:var(--surface);border:1px solid var(--border);border-radius:12px;grid-template-columns:1fr auto;align-items:baseline;column-gap:8px;padding:6px 12px;display:grid}.other-name{text-overflow:ellipsis;white-space:nowrap;font-size:clamp(14px,3.2cqh,26px);font-weight:600;overflow:hidden}.other-score{font-variant-numeric:tabular-nums;grid-row:span 2;font-size:clamp(28px,9cqh,80px);font-weight:800}.other-meta{color:var(--muted);font-variant-numeric:tabular-nums;font-size:clamp(12px,2.6cqh,20px)}.banner{border:1px solid var(--accent);border-radius:var(--radius);background:#3ddc841f;flex-direction:column;gap:4px;padding:12px 14px;font-size:clamp(16px,4cqh,32px);display:flex}.banner span{color:var(--muted);font-size:.75em}.dock{flex-direction:column;gap:8px;display:flex}.controls{grid-template-columns:1fr 1.4fr 1fr;gap:8px;display:grid}.keypad{flex-direction:column;gap:6px;animation:.18s ease-out slide-up;display:flex}@keyframes slide-up{0%{opacity:0;transform:translateY(16px)}}.keypad-mods{grid-template-columns:1fr 1fr;gap:6px;display:grid}.mod.on.double{background:var(--green);border-color:var(--green);color:#fff}.mod.on.treble{background:var(--red);border-color:var(--red);color:#fff}.keypad-grid{grid-template-columns:repeat(6,1fr);gap:6px;display:grid}.num{font-variant-numeric:tabular-nums;min-height:46px;padding:4px 0;font-size:18px;font-weight:600}.num.miss{color:var(--muted);grid-column:span 2}.modal.chart{width:min(100%,560px);height:min(90dvh,900px);overflow:hidden}.chart-head{justify-content:space-between;align-items:center;display:flex}.chart-controls{flex-direction:column;gap:8px;display:flex}.chart-list{-webkit-overflow-scrolling:touch;flex:1;margin:0 -8px;overflow-y:auto}.chart-row{border-bottom:1px solid var(--border);align-items:center;gap:12px;padding:7px 8px;display:flex}.chart-row.no-out .chart-score{color:var(--muted)}.chart-score{text-align:right;font-variant-numeric:tabular-nums;width:3ch;font-size:18px;font-weight:800}.chart-route{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.chart-alt{color:var(--muted);margin-left:4px;font-size:13px}.chart-alt.strong{color:var(--text);font-weight:600}@media (orientation:landscape) and (width>=640px){.screen.game{padding-top:calc(var(--safe-t) + 6px);grid-template-rows:auto 1fr auto;grid-template-columns:1fr auto;column-gap:12px;display:grid}.game .topbar{grid-column:1/-1}.game .topbar button{min-height:36px}.board-view{grid-column:1/-1;grid-template-rows:1fr auto auto;grid-template-columns:1.1fr 1fr;column-gap:12px;display:grid}.game.pad-open .board-view{grid-area:2/1/4}.hero{grid-row:1/-1}.hero-score{font-size:min(22cqw,55cqh)}.advice .chip{font-size:clamp(22px,min(9cqh,5.5cqw),72px)}.turn{align-self:end}.dock{grid-column:1/-1}.game.pad-open .dock{grid-area:2/2/4;justify-content:flex-end;width:min(46vw,420px)}.num{min-height:38px}.calibrate .stage{width:min(100%, calc(70dvh * var(--aspect)))}}.modal-backdrop{z-index:10;background:#000000b3;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.modal{background:var(--surface);border:1px solid var(--border);border-radius:16px;flex-direction:column;gap:14px;width:min(100%,480px);max-height:90dvh;padding:20px;display:flex;overflow:auto}.modal h2{color:var(--accent);font-size:22px}.stats{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%}.stats th,.stats td{text-align:right;border-bottom:1px solid var(--border);padding:6px 4px}.stats th:first-child,.stats td:first-child{text-align:left;color:var(--muted)}.modal-actions{flex-wrap:wrap;gap:8px;display:flex}.modal-actions button{flex:1}
