#farkle-app{margin:12px 0 0}.fk-game{--die:76px;--mini:34px;gap:12px;min-width:0;display:grid}.fk-topbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 16px;display:flex}.fk-info{flex-wrap:wrap;gap:2px 16px;font-size:1.1rem;display:flex}.fk-target{font-weight:700}.fk-note{border-left:6px solid var(--gingham);background:var(--surface-2);padding:4px 12px;font-weight:700}.fk-table{gap:8px;min-width:0;padding:12px 16px;display:grid}.fk-board{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px;margin:0;padding:0;list-style:none;display:grid}.fk-player{background:#00000047;border:3px solid #ffffff59;border-radius:14px;grid-template-columns:1fr auto;align-items:center;gap:4px 12px;min-width:0;padding:8px 14px;display:grid}.fk-player.is-turn{border-color:var(--highlight);box-shadow:0 0 0 2px var(--highlight);background:#00000080}.fk-player.is-winner{border-color:var(--brass-light)}.fk-name{overflow-wrap:anywhere;min-width:0;font-family:var(--font-display);font-size:1.35rem;font-weight:700}.fk-score{font-variant-numeric:tabular-nums;font-size:1.6rem;font-weight:800}.fk-bar{background:#00000059;border:1px solid #ffffff80;border-radius:999px;grid-column:1/-1;height:10px;overflow:hidden}.fk-bar>span{background:var(--brass-light);height:100%;display:block}.fk-badges{flex-wrap:wrap;grid-column:1/-1;gap:4px;display:flex}.fk-badge{white-space:nowrap;border:2px solid;border-radius:999px;padding:0 10px;font-size:.95rem;font-weight:800;display:inline-block}.fk-badge-turn{border-color:var(--highlight);background:var(--highlight);color:#221d16}.fk-badge-soft{border-style:dashed;font-weight:700}.fk-badge-warn{color:#ffd9d3;border-color:#ffb3a8}.fk-final{border:3px solid var(--highlight);background:#00000073;border-radius:12px;margin:0;padding:6px 12px;font-weight:800}.fk-goal{opacity:.95;margin:0;font-size:1.05rem}.fk-dock{border:3px solid var(--border);border-radius:var(--radius);background:var(--surface);gap:8px;min-width:0;padding:10px 14px;display:grid}.fk-dock.is-your-turn{border-color:var(--highlight);box-shadow:0 0 0 2px var(--highlight) inset}.fk-turnline{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:2px 16px;display:flex}.fk-whose{font-family:var(--font-display);font-size:1.7rem;font-weight:800;line-height:1.2}.fk-turnpts{font-variant-numeric:tabular-nums;font-size:1.4rem;font-weight:800}.fk-turnpts.is-lost{text-decoration:line-through}.fk-kept{border:2px dashed var(--border-strong);background:var(--surface-2);border-radius:12px;align-items:center;gap:10px;min-width:0;padding:6px 10px;display:flex}.fk-kept-label{flex:none;max-width:7.5em;font-weight:800;line-height:1.15}.fk-kept-dice{min-width:0;min-height:calc(var(--die) * .75);align-items:center;gap:10px;padding:5px 4px;display:flex}.fk-kept-none{color:var(--muted);font-size:1.05rem}.fk-kept-group{flex:none;align-items:center;gap:2px;display:inline-flex}.fk-kept-pts{font-variant-numeric:tabular-nums;margin-left:4px;font-weight:800}.fk-mini{width:var(--mini);height:var(--mini)}.fk-kept.is-lost .fk-kept-group{opacity:.55;text-decoration:line-through}.fk-roll{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.fk-die{width:var(--die);min-width:48px;color:inherit;font:inherit;background:0 0;border:0;flex-direction:column;flex:none;align-items:center;gap:2px;margin:0;padding:0;display:inline-flex;position:relative}button.fk-die{cursor:pointer;-webkit-tap-highlight-color:transparent}button.fk-die:focus-visible{outline:4px solid var(--focus);outline-offset:3px;border-radius:14px}.fk-die-svg{width:var(--die);height:var(--die);border-radius:20%;display:block}.fk-die-face{fill:var(--tile);stroke:var(--tile-edge);stroke-width:3px}.fk-die-shadow{fill:#28190a4d}.fk-die-shine{fill:none;stroke:#ffffffe6;stroke-width:3px;stroke-linecap:round}.fk-pip{fill:var(--pip)}.fk-die.is-scoring .fk-die-face{stroke:var(--primary);stroke-width:7px}.fk-die.is-scoring .fk-die-svg{box-shadow:0 0 0 4px var(--highlight)}.fk-die.is-plain .fk-die-face{fill:var(--tile-shade)}.fk-die.is-picked .fk-die-svg{box-shadow:0 0 0 4px var(--success)}.fk-label{background:var(--primary);min-height:1.45em;color:var(--on-primary);white-space:nowrap;border-radius:999px;padding:0 6px;font-size:.95rem;font-weight:800;line-height:1.45}.fk-label-none{background:0 0}.fk-die.is-picked .fk-label{background:var(--success)}.fk-slot{width:var(--die);height:var(--die);border:3px dashed var(--border-strong);border-radius:20%;display:block}.fk-roll.is-farkle .fk-die-svg{box-shadow:0 0 0 4px var(--gingham)}.fk-explain{min-height:1.4em;margin:0;font-size:1.15rem;font-weight:600}.fk-die.is-rolling .fk-die-svg{animation:fk-tumble var(--fk-roll-ms,.45s) ease-out}@keyframes fk-tumble{0%{opacity:.2;transform:rotate(-200deg)scale(.6)}70%{opacity:1;transform:rotate(12deg)scale(1.05)}to{transform:none}}.reduce-motion .fk-die.is-rolling .fk-die-svg{animation:none}.fk-controls{flex-wrap:wrap;gap:10px;display:flex}.fk-controls .btn{min-height:60px;font-size:var(--text-lg);flex:auto}.fk-controls .btn[disabled]{opacity:.5;cursor:not-allowed}.fk-controls .fk-hinted{outline:5px solid var(--highlight);outline-offset:3px}.fk-wait{min-height:60px;color:var(--muted);flex:1;align-items:center;margin:0;font-weight:700;display:flex}.fk-results .fk-badge{margin-left:6px}.fk-all-turns{margin-top:12px}.fk-all-turns>summary{cursor:pointer;min-height:48px;padding:8px 0;font-weight:800}.fk-turns-wrap{max-height:50vh;overflow:auto}.fk-turns th,.fk-turns td{white-space:nowrap}.fk-settings .fk-sub{margin:8px 0}.fk-names{grid-template-columns:auto 1fr;align-items:center;gap:6px 12px;margin-top:8px;display:grid}.fk-names .text-input{max-width:16em;min-height:48px}@media (width<=767px){.fk-game{--die:clamp(48px, 13.2vw, 58px);--mini:26px}.fk-local-only{display:none}.fk-info{font-size:1rem}.fk-table{max-height:calc(100svh - var(--dock-h,380px) - 12px);border-width:5px;gap:4px;padding:6px 8px;overflow-y:auto}.fk-board{grid-template-columns:1fr;gap:4px}.fk-player{border-width:2px;grid-template-columns:auto 1fr auto;gap:0 10px;padding:2px 10px}.fk-name{font-size:1.1rem}.fk-score{grid-area:1/3;font-size:1.25rem}.fk-bar{grid-area:1/2;height:8px}.fk-badges{gap:2px 4px}.fk-badge{padding:0 6px;font-size:.85rem}.fk-final,.fk-goal{font-size:.95rem;line-height:1.3}.fk-final{padding:2px 8px}.fk-dock{border-width:2px;gap:4px;padding:4px 6px 6px}.fk-whose{font-size:1.3rem}.fk-turnpts{font-size:1.15rem}.fk-kept{gap:6px;padding:2px 6px}.fk-kept-label{max-width:4.5em;font-size:.9rem}.fk-kept-dice{flex-wrap:nowrap;gap:6px;min-height:52px}.fk-kept-none{font-size:.95rem;line-height:1.2}.fk-roll{flex-wrap:nowrap;justify-content:space-between;gap:2px}.fk-label{padding:0 4px;font-size:.85rem}.fk-explain{font-size:1rem;line-height:1.3}.fk-controls{flex-wrap:nowrap;gap:8px}.fk-controls .btn{flex:1 1 0;min-height:56px;padding:4px 8px;font-size:1.15rem;line-height:1.15}.fk-wait{min-height:56px;font-size:1.05rem}.fk-results{font-size:1.05rem}.fk-results th,.fk-results td{overflow-wrap:anywhere;padding:6px 3px}}
