*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}:root{--bg: #0f172a;--surface: #1e293b;--surface-2: #283548;--text: #e2e8f0;--muted: #94a3b8;--accent: #38bdf8;--tile-bg: #f2d8a7;--tile-text: #46320f;--gold: #fbbf24;--danger: #f87171}html,body{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,sans-serif;overscroll-behavior:none}button{font:inherit;color:inherit;background:var(--surface-2);border:none;border-radius:8px;padding:.55em 1em;cursor:pointer}button:disabled{opacity:.45;cursor:default}button.primary{background:var(--accent);color:#082f49;font-weight:700}button.danger{color:var(--danger)}button.link{background:none;padding:.25em .4em;color:var(--accent)}.muted{color:var(--muted)}.error{color:var(--danger);font-size:.9em}.login-page{min-height:100dvh;display:grid;place-items:center;padding:1rem}.login-card{display:flex;flex-direction:column;gap:.8rem;width:min(20rem,90vw)}.login-card h1{text-align:center;margin:0 0 .5rem}.login-card input{font:inherit;padding:.6em .8em;border-radius:8px;border:1px solid var(--surface-2);background:var(--surface);color:var(--text)}.list-page{max-width:32rem;margin:0 auto;padding:1rem;padding-top:max(1rem,env(safe-area-inset-top))}.list-header{display:flex;justify-content:space-between;align-items:center}.list-header h1{margin:0;font-size:1.5rem}.list-header-right{display:flex;align-items:center;gap:.5rem}.me{color:var(--muted)}.new-game{width:100%;margin:1rem 0;padding:.8em}.game-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.6rem}.game-card{width:100%;display:flex;align-items:center;gap:.8rem;background:var(--surface);padding:.9em 1em;text-align:left}.game-vs{font-weight:600;flex:1}.game-score{color:var(--muted)}.badge{font-size:.75rem;font-weight:700;padding:.3em .7em;border-radius:999px;background:var(--surface-2);color:var(--muted)}.badge.your-turn{background:var(--accent);color:#082f49}.badge.done{background:var(--surface-2);color:var(--gold)}.stats-cards{display:grid;grid-template-columns:1fr 1fr;gap:.6rem;margin:1rem 0}.stats-card{background:var(--surface);border-radius:.5rem;padding:.9em 1em}.stats-card h2{margin:0 0 .5em;font-size:1rem}.stats-card dl{margin:0;display:flex;flex-direction:column;gap:.35em}.stats-card dl div{display:flex;justify-content:space-between;gap:.5em}.stats-card dt{color:var(--muted);font-size:.8rem}.stats-card dd{margin:0;font-size:.9rem;text-align:right}.history-card{flex-wrap:wrap}.game-date{color:var(--muted);font-weight:400;font-size:.8rem}.best-plays{flex-basis:100%;display:flex;gap:1rem;color:var(--muted);font-size:.8rem}.game-page{max-width:34rem;margin:0 auto;padding:.5rem .5rem calc(.75rem + env(safe-area-inset-bottom));padding-top:max(.5rem,env(safe-area-inset-top));display:flex;flex-direction:column;gap:.55rem;min-height:100dvh}.game-header{display:flex;align-items:center;gap:.5rem}.scores{flex:1;text-align:center;font-weight:600;display:flex;justify-content:center;gap:.5rem}.scores .on-turn{color:var(--accent)}.score-sep{color:var(--muted)}.bag-count{color:var(--muted);font-size:.85rem}.status-row{text-align:center;font-size:.9rem;min-height:1.3em}.status.your-turn{color:var(--accent);font-weight:700}.status.waiting{color:var(--muted)}.status.over{color:var(--gold);font-weight:700}.board-viewport{width:min(100%,calc(100dvh - 16rem));margin:0 auto;aspect-ratio:1;overflow:hidden;border-radius:8px;touch-action:none;position:relative}.board-pan{width:100%;height:100%;transform-origin:0 0;transition:transform .3s ease}.board-pan.gesturing{transition:none}.board{display:grid;grid-template-columns:repeat(15,1fr);gap:2px;width:100%;aspect-ratio:1;background:#0b1120;padding:3px;border-radius:8px}.cell{position:relative;aspect-ratio:1;background:var(--surface);border-radius:2px;padding:0;display:grid;place-items:center;overflow:hidden}.cell.p-dl{background:#1d5f8a}.cell.p-tl{background:#1e40af}.cell.p-dw{background:#92580c}.cell.p-tw{background:#991b1b}.premium-label{font-size:clamp(4px,1.6vw,9px);font-weight:700;color:#ffffffa6}.tile{position:absolute;inset:0;background:var(--tile-bg);color:var(--tile-text);border-radius:3px;display:grid;place-items:center}.tile.tentative{outline:2px solid var(--gold);outline-offset:-2px}.cell.selected .tile{outline:3px solid var(--accent);outline-offset:-3px}.tile.blank .tile-letter{color:#1d4ed8}.tile-letter{font-weight:800;font-size:clamp(8px,3.4vw,18px);line-height:1}.tile-value{position:absolute;right:1px;bottom:0;font-size:clamp(4px,1.5vw,8px);font-weight:700}.rack{display:flex;justify-content:center;gap:6px;min-height:3.2rem}.rack-tile,.rack-slot{position:relative;width:min(3rem,11.5vw);aspect-ratio:1;border-radius:6px;padding:0;background:none}.rack-slot{border:1px dashed var(--surface-2)}.rack-tile .tile{border-radius:6px}.rack-tile .tile-letter{font-size:clamp(14px,5vw,24px)}.rack-tile .tile-value{font-size:clamp(7px,2.2vw,11px);right:3px;bottom:2px}.rack-tile.selected{transform:translateY(-6px)}.rack-tile.selected .tile{outline:3px solid var(--accent);outline-offset:-3px}.rack-tile.exchange .tile{outline:3px solid var(--danger);outline-offset:-3px;opacity:.75}.power-meter{display:flex;align-items:center;gap:.5rem}.power-track{flex:1;height:8px;border-radius:4px;background:var(--surface-2);overflow:hidden}.power-fill{height:100%;border-radius:4px;background:var(--accent);transition:width .25s ease,background .25s ease}.power-meter.max .power-fill{background:var(--gold);box-shadow:0 0 8px var(--gold)}.power-pct{color:var(--muted);font-size:.8rem;min-width:3.5ch;text-align:right;font-variant-numeric:tabular-nums}.power-meter.max .power-pct{color:var(--gold);font-weight:700}.power-hint{margin:0;text-align:center;font-size:.8rem}.move-bar{display:flex;justify-content:center;align-items:center;gap:.5rem;flex-wrap:wrap}.hint{width:100%;text-align:center;color:var(--muted);font-size:.8rem;order:10}.history{color:var(--muted);font-size:.85rem}.history summary{cursor:pointer}.history ul{margin:.4rem 0 0;padding-left:1.2rem;display:flex;flex-direction:column-reverse;gap:.2rem}.history b{color:var(--text)}.toast{position:fixed;left:50%;bottom:calc(2rem + env(safe-area-inset-bottom));transform:translate(-50%);background:var(--surface-2);border:1px solid var(--accent);padding:.7em 1.2em;border-radius:10px;max-width:90vw;z-index:20}.overlay{position:fixed;inset:0;background:#0009;display:grid;place-items:center;z-index:30}.blank-picker{background:var(--surface);border-radius:12px;padding:1rem;width:min(20rem,92vw);text-align:center}.blank-picker p{margin:0 0 .7rem}.blank-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:6px;margin-bottom:.7rem}.blank-grid button{aspect-ratio:1;padding:0;font-weight:700;background:var(--tile-bg);color:var(--tile-text)}.notify-row{display:flex;justify-content:center;margin-top:.5rem}.ios-hint{text-align:center;color:var(--muted);font-size:.8rem;margin:.5rem 0 0}
