.confirm-link{flex-wrap:wrap;align-items:center;gap:4px 12px;margin-top:6px;display:flex}.resign-heading{flex-basis:100%;align-items:center;min-height:44px;margin:0;display:flex}.result-scrim{z-index:10;background:#00000073;border-radius:6px;place-items:center;padding:8px;display:grid;position:absolute;inset:0;overflow:auto}.result-card{background:var(--card);text-align:center;border-radius:12px;width:100%;max-width:440px;padding:16px 20px;position:relative;box-shadow:0 12px 32px #0000004d}.result-card h2{margin:0 0 4px;padding:0 32px}.result-card h2.won{color:var(--accent)}.result-score{margin:0;font-size:2rem;font-weight:700}.result-how{margin:4px 0}.result-card .error{margin:6px 0 0}.result-rematch,.result-links{flex-wrap:wrap;justify-content:center;align-items:center;gap:8px 16px;display:flex}.result-rematch{margin-top:10px}.result-wait{margin:0}.show-result{margin-top:8px}.result-hide{min-width:44px;position:absolute;top:4px;right:12px;text-decoration:none!important}@media (orientation:landscape) and (height<=500px){.result-card{padding:10px 14px}.result-score{font-size:1.5rem}}.replay:focus,.replay-invalid:focus{outline:none}.replay{max-width:1280px;margin:0 auto;padding:8px 12px 16px}:fullscreen .replay{max-width:none}.replay-heading{min-width:0;margin:0;font-size:1rem;font-weight:600}.replay-caption{min-height:1.4em;margin:8px 0;font-weight:600}.replay-score p{margin:0}.replay-score-line{font-variant-numeric:tabular-nums;align-items:center;gap:4px;display:flex}.replay-score-line strong{font-size:1.2rem}.replay-score.compact{flex-wrap:wrap;align-items:baseline;gap:2px 10px;display:flex}.replay-transport{justify-content:center;align-items:center;gap:4px;display:flex}button.replay-nav{min-width:44px;padding:0 8px}.replay-counter{text-align:center;font-variant-numeric:tabular-nums;min-width:4.5em;color:var(--muted);font-size:.85rem}.replay-games{flex-wrap:wrap;gap:4px;display:flex}.replay-games button{border-radius:999px;padding:0 12px}.replay-games button[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:var(--accent-text)}.replay-moves{background:var(--card);border:1px solid var(--border);border-radius:10px;min-height:0;margin:0;padding:4px;font-size:.9rem;list-style:none;overflow-y:auto}.replay-moves button{text-align:left;background:0 0;border:none;border-radius:6px;align-items:center;width:100%;min-height:36px;padding:4px 8px;display:flex}.replay-moves button[aria-current=step]{background:var(--highlight);font-weight:600}.replay-header{align-items:center;gap:12px;display:flex}.replay-header .replay-heading{flex:1}.replay-body{grid-template-columns:minmax(0,1fr) 280px;align-items:start;gap:16px;display:grid}.replay-main{min-width:0}.replay-stacked .board{max-height:calc(100svh - 170px)}.replay-controls{flex-wrap:wrap;justify-content:center;gap:8px 12px;display:flex}.replay-moves-toggle{display:none}.replay-panel{flex-direction:column;gap:10px;max-height:calc(100svh - 80px);display:flex}@media (width<=900px){.replay-body{grid-template-columns:minmax(0,1fr)}button.replay-moves-toggle{padding:0 14px;display:inline-block}.replay-panel{display:none}.replay-panel.open{max-height:none;display:flex}.replay-panel.open .replay-moves{max-height:50svh}}.replay-sideways{grid-template-columns:auto minmax(0,1fr);align-items:start;gap:8px;padding:4px 8px;display:grid}.replay-sideways .replay-board{width:min(143.333svh - 11.4667px,68vw)}.replay-sideways .board{max-height:calc(100svh - 8px)}.replay-rail{flex-direction:column;gap:4px;max-height:calc(100svh - 8px);font-size:.85rem;display:flex}.replay-rail-top{justify-content:space-between;display:flex}.replay-rail .replay-heading{font-size:.85rem}.replay-rail .replay-caption{margin:2px 0}.replay-rail .replay-transport{gap:2px}.replay-rail button.replay-nav{flex:1;min-width:0;padding:0}.replay-rail .replay-counter{min-width:3.5em;font-size:.75rem}.replay-rail .replay-moves{flex:1}.replay-invalid{background:var(--card);border:1px solid var(--border);border-radius:12px;max-width:560px;margin:16px auto 0;padding:16px 20px 20px}.replay-invalid h2{margin:0 0 8px;font-size:1.15rem}.replay-invalid p{overflow-wrap:anywhere}.open-record{border:2px dashed var(--border);border-radius:12px;max-width:560px;margin:16px auto 0;padding:16px 20px}.open-record.dragging{border-color:var(--accent);background:var(--card)}.open-record h2{margin:0 0 4px;font-size:1.1rem}.open-record-input{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.open-record-button{border:1px solid var(--border);background:var(--card);cursor:pointer;border-radius:8px;align-items:center;min-height:44px;padding:0 18px;display:inline-flex}.open-record-input:focus-visible+.open-record-button{outline:2px solid var(--accent);outline-offset:2px}.open-record .error{margin:8px 0 0}.remote-input{font:inherit;border:1px solid var(--border);background:var(--card);width:100%;min-height:44px;color:var(--text);border-radius:8px;padding:8px}.invite{background:var(--card);border:2px solid var(--accent);border-radius:10px;flex-direction:column;gap:8px;padding:10px 12px;display:flex}.invite p{margin:0}.player-card .presence{margin:4px 0 0}.outdated{border:1px solid var(--error);background:var(--error-bg);border-radius:8px;flex-wrap:wrap;align-items:center;gap:8px 12px;margin:0 0 8px;padding:10px 12px;display:flex}.outdated p{margin:0}.player-card.claimable{border-color:var(--highlight);box-shadow:0 0 0 2px var(--highlight) inset}:root{--bg:#f4f1ea;--text:#1f1d1a;--muted:#6b665d;--card:#fff;--border:#ddd6c8;--accent:#2f6d4f;--accent-text:#fff;--frame:#5b3a1e;--felt:#2f5d46;--bar:#4a2f18;--point-a:#d8b779;--point-b:#9c3d2c;--white-checker:#f7f0de;--white-edge:#8f836a;--black-checker:#2b2b2b;--black-edge:#000;--highlight:#ffd54a;--destination:#7ef0b4;--error:#b3261e;--error-bg:#fde8e6;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:var(--text);background:var(--bg);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}body{background:var(--bg);margin:0}.app{max-width:1280px;margin:0 auto;padding:12px 16px 32px}.app-header{flex-wrap:wrap;align-items:baseline;gap:12px;display:flex}.app-header h1{margin:0;font-size:1.5rem}.tagline,.muted{color:var(--muted)}.small{font-size:.8rem}.layout{grid-template-columns:minmax(0,1fr) 300px;gap:16px;margin-top:12px;display:grid}@media (width<=900px){.layout{grid-template-columns:minmax(0,1fr)}}@media (orientation:landscape) and (height<=500px){.app{padding-top:4px}.app-header{display:none}.layout{margin-top:0}}:fullscreen .app{max-width:none}:fullscreen .app-header{display:none}:fullscreen .layout{margin-top:0}:fullscreen .board-stage{max-width:calc(143.333svh - 143.333px);margin:0 auto}.board-area{min-width:0}.board-stage{position:relative}.board{-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;width:100%;height:auto;display:block}.frame{fill:var(--frame)}.felt{fill:var(--felt)}.bar{fill:var(--bar)}.tray{fill:#3d2714}.tray.destination,.tray-landed{fill:#2f6d4f}.tray-divider{stroke:var(--frame);stroke-width:4px}.point-odd{fill:var(--point-a)}.point-even{fill:var(--point-b)}.point.destination{fill:#3fae76}.point-number{fill:#e9dcc3;text-anchor:middle;font-size:11px}.checker-white>circle:first-child{fill:var(--white-checker);stroke:var(--white-edge);stroke-width:2px}.checker-black>circle:first-child{fill:var(--black-checker);stroke:var(--black-edge);stroke-width:2px}.checker-inner{fill:none;stroke-width:1.5px}.checker-white .checker-inner{stroke:#d9ccae}.checker-black .checker-inner{stroke:#4a4a4a}.checker-highlight{fill:none;stroke:var(--highlight);stroke-width:3px;pointer-events:none}.checker-highlight.selected{stroke-width:6px}.checker-label{text-anchor:middle;pointer-events:none;font-size:18px;font-weight:700}.checker-white .checker-label{fill:#3a3325}.checker-black .checker-label{fill:#f2f2f2}.slab.checker-white{fill:var(--white-checker);stroke:var(--white-edge)}.slab.checker-black{fill:var(--black-checker);stroke:#555}.destination-marker{fill:var(--destination);fill-opacity:.55;stroke:var(--destination);stroke-width:3px;pointer-events:none}.die rect{stroke-width:2px}.die-white rect{fill:var(--white-checker);stroke:var(--white-edge)}.die-white .pip{fill:#222}.die-black rect{fill:var(--black-checker);stroke:#b5b5b5}.die-black .pip{fill:#f2f2f2}.die.used{opacity:.35}.hit-area{fill:#0000}.hit-area.active{cursor:pointer}.hit-area:focus-visible{stroke:var(--highlight);stroke-width:3px;outline:none}@media (orientation:landscape) and (height<=500px){.board{max-height:calc(100svh - 8px)}:fullscreen .board-stage{max-width:none}}.board-portrait-hint{color:var(--muted);text-align:center;margin:0 0 6px;font-size:.85rem}.status{min-height:1.5em;margin:10px 0 6px;font-size:1.05rem}.error{color:var(--error);margin:0 0 6px}.controls{flex-wrap:wrap;gap:8px;display:flex}button{font:inherit;border:1px solid var(--border);background:var(--card);color:var(--text);cursor:pointer;border-radius:8px;min-height:44px;padding:10px 18px}button.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-text)}button.danger{background:var(--error);border-color:var(--error);color:var(--accent-text)}button:disabled{opacity:.45;cursor:default}button.link{min-height:44px;color:var(--accent);background:0 0;border:none;padding:0;text-decoration:underline}.panel{flex-direction:column;gap:12px;display:flex}.panel .full-screen-toggle{align-self:flex-end}.player-card{background:var(--card);border:1px solid var(--border);border-radius:10px;padding:10px 12px}.player-card.active{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent) inset}.player-title{align-items:center;gap:6px;font-weight:600;display:flex}.turn-badge{background:var(--accent);color:var(--accent-text);white-space:nowrap;border-radius:999px;margin-left:auto;padding:2px 8px;font-size:.75rem}.player-card dl{gap:16px;margin:8px 0 0;display:flex}.player-card dt{color:var(--muted);font-size:.75rem}.player-card dd{font-variant-numeric:tabular-nums;margin:0;font-weight:600}.swatch{vertical-align:-1px;border-radius:50%;flex:none;width:12px;height:12px;margin-right:6px;display:inline-block}.swatch-white{background:var(--white-checker);border:1px solid var(--white-edge)}.swatch-black{background:var(--black-checker);border:1px solid var(--black-edge)}.opponent-select{color:var(--muted);flex-direction:column;gap:4px;font-size:.85rem;display:flex}.opponent-select select{font:inherit;border:1px solid var(--border);background:var(--card);color:var(--text);border-radius:8px;padding:8px}.history{background:var(--card);border:1px solid var(--border);border-radius:10px;max-height:320px;padding:10px 12px;overflow-y:auto}.history h2{margin:0 0 6px;font-size:1rem}.history ol{font-variant-numeric:tabular-nums;margin:0;padding-left:1.6em;font-size:.9rem}.history li{padding:2px 0}.history li.by-none{color:var(--muted)}.cube rect{fill:#fbf8f1;stroke:#3a3325;stroke-width:2px}.cube text{fill:#1f1d1a;text-anchor:middle;font-size:22px;font-weight:700}.cube.offered rect{fill:var(--highlight);stroke-width:3px}.cube text.long{font-size:15px}.cube-slot{fill:none;stroke:#fbf8f1;stroke-opacity:.25;stroke-width:1.5px;stroke-dasharray:4 4}.board-actions-row{align-items:center;gap:8px;height:100%;display:flex}.board-actions-row.against-bar{justify-content:flex-end}.board-actions-row .reserved{visibility:hidden}.board-actions-row button{white-space:nowrap;min-height:44px;padding:6px 14px;font-size:17px;box-shadow:0 2px 6px #00000059}.setup{background:var(--card);border:1px solid var(--border);border-radius:12px;max-width:560px;margin:16px auto 0;padding:16px 20px 20px}.setup h2{margin:0 0 12px;font-size:1.25rem}.setup form{flex-direction:column;gap:14px;display:flex}.lengths{border:none;flex-wrap:wrap;gap:8px;margin:0;padding:0;display:flex}.lengths legend{color:var(--muted);margin-bottom:8px;font-size:.85rem}.length{border:1px solid var(--border);cursor:pointer;border-radius:8px;align-items:center;gap:6px;min-height:44px;padding:0 14px;display:inline-flex}.length.checked{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent) inset}.length:focus-within{outline:2px solid var(--accent);outline-offset:2px}.scoreboard{background:var(--card);border:1px solid var(--border);border-radius:10px;padding:10px 12px}.score-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;font-weight:600;display:flex}.badge{white-space:nowrap;border-radius:999px;padding:2px 8px;font-size:.75rem}.badge.crawford{color:#fff;background:#7a4b12}.scores{flex-direction:column;gap:4px;margin:8px 0 0;display:flex}.scores>div{justify-content:space-between;align-items:baseline;display:flex}.scores dt{align-items:center;display:flex}.scores dd{font-variant-numeric:tabular-nums;margin:0}.scores strong{font-size:1.25rem}.scores .winner strong{color:var(--accent)}.cube-info{margin:8px 0 0;font-size:.9rem}.match-status{margin:0 0 8px;font-weight:600}button.secondary{margin-left:auto}.dice-note{margin-top:16px}
