:root{--table: #161b22;--panel: #1f2630;--panel-border: #2e3845;--text: #e6e9ee;--text-muted: #9aa5b3;--accent: #e8bf3a;--sea: #2f6f9f;--sea-edge: #24587f;--sand: #e6d4a0;--tile-frame: rgba(0, 0, 0, .28);--token: #f6efdc;--token-ink: #2b2b2b;--token-red: #c0342b;--robber: #26262b;--robber-outline: #f3ede0;--debug: #ff3fb4;--piece-outline: #1b1b1f;color-scheme:dark;font-family:system-ui,-apple-system,Segoe UI,sans-serif}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}html{touch-action:manipulation;overscroll-behavior:none}body{background:var(--table);color:var(--text)}.app{display:flex;flex-direction:column;height:100%}.toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;padding:8px 16px;background:var(--panel);border-bottom:1px solid var(--panel-border)}.toolbar__title{margin:0;font-size:18px;letter-spacing:.04em;color:var(--accent)}.toolbar button{font:inherit;font-size:14px;color:var(--text);background:var(--panel-border);border:1px solid #3c4858;border-radius:6px;padding:4px 10px;cursor:pointer}.toolbar button:hover:not(:disabled){background:#3c4858}.toolbar button:disabled{opacity:.45;cursor:not-allowed}.toolbar__short{display:none}kbd{font-size:11px;padding:0 4px;border:1px solid #4a5666;border-radius:3px;color:var(--text-muted)}.table{flex:1;min-height:0;display:grid;grid-template-columns:minmax(0,1fr) 300px}.table__board{min-width:0;min-height:0;padding:12px}@media(max-width:820px){.app{height:100dvh}.table{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr) auto;overflow:hidden}.table__board{padding:4px}.toolbar{gap:6px;padding:6px 10px calc(6px + env(safe-area-inset-top));font-size:13px}.toolbar__title{font-size:16px}.toolbar__title-rest,.toolbar__long{display:none}.toolbar__short{display:inline}kbd{display:none}.panel.panel--compact{--panel-pad-top: 8px;max-height:48dvh;padding:var(--panel-pad-top) 12px calc(8px + env(safe-area-inset-bottom));border-left:none;border-top:1px solid var(--panel-border)}.status__prompt{font-size:15px}.log__list{font-size:12px}}@media(max-width:380px){.toolbar{gap:4px;padding-left:8px;padding-right:8px}.toolbar button{padding-left:7px;padding-right:7px}.toolbar__title{font-size:15px}.score--strip .score__chip{gap:3px;padding:1px 4px;font-size:11px}}@media(pointer:coarse){.action,.build__option,.toolbar button{min-height:44px}.tabs__tab{min-height:36px}.res{min-height:40px;font-size:12px}.discard__row button{min-width:40px;min-height:40px}.offer__pick button{min-height:36px}.offer__answer .action{min-height:40px}}.board__view{position:relative;width:100%;height:100%;overflow:hidden;touch-action:none}.board{display:block;width:100%;height:100%;transform-origin:center}.score{position:absolute;top:6px;left:6px;z-index:2;border-collapse:collapse;font-size:12px;font-variant-numeric:tabular-nums;color:var(--text);background:#161b22d1;border:1px solid var(--panel-border);border-radius:8px;pointer-events:none;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.score th,.score td{padding:3px 7px;text-align:right;white-space:nowrap}.score thead th{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted)}.score tbody th{display:flex;align-items:center;gap:5px;text-align:left;font-weight:600}.score__row--turn{background:#e8bf3a29}.score__row--turn th{color:var(--accent)}.score__award{margin-left:2px;padding:0 4px;font-size:9px;font-weight:700;color:#1d1703;background:var(--accent);border-radius:6px}.score__hidden{margin-left:2px;font-size:10px;color:var(--accent)}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.score--strip{display:flex;flex-direction:column;gap:1px;margin:0;padding:2px;list-style:none}.score__chip{display:flex;align-items:center;gap:4px;padding:2px 6px;border-radius:6px;font-size:12px}.score__chip--turn{background:#e8bf3a38}.score__cards{display:flex;align-items:center;gap:2px;color:var(--text-muted)}.score__card{width:7px;height:10px;border-radius:1px;background:repeating-linear-gradient(45deg,#3a4656,#3a4656 2px,#2e3845 2px,#2e3845 4px);border:1px solid #5a6676}.score__card--dev{background:repeating-linear-gradient(45deg,#5b4a7a,#5b4a7a 2px,#463a60 2px,#463a60 4px);border-color:#8a78ad}.toast{position:absolute;left:10px;bottom:10px;z-index:3;pointer-events:none;animation:toast 3s ease-in-out forwards}.devcard{--frame: #6b5a8e;--ink: #2b2433;display:flex;flex-direction:column;align-items:center;gap:4px;width:148px}.devcard--knight{--frame: #6b5a8e}.devcard--progress{--frame: #3f7a3a}.devcard--point{--frame: #b8892a}.devcard__who{padding:1px 8px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text);background:#161b22e6;border-radius:999px}.devcard__face{display:flex;flex-direction:column;align-items:center;gap:6px;width:100%;height:207px;padding:8px 8px 10px;color:var(--ink);background:#f4ecd8;border:5px solid var(--frame);border-radius:10px;box-shadow:0 10px 28px #00000080}.devcard__banner{width:100%;padding:3px 4px;font-size:12px;font-weight:800;text-align:center;text-transform:uppercase;letter-spacing:.04em;color:#fffaf0;background:var(--frame);border-radius:4px}.devcard__art{flex:1;width:72%;min-height:0}.devcard__fill{fill:var(--frame);opacity:.22}.devcard__line{fill:none;stroke:var(--frame);stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.devcard__line--bold{stroke-width:5}.devcard__road{fill:none;stroke:#8a6a45;stroke-width:9;stroke-linecap:round}.devcard__dash{fill:none;stroke:#f4ecd8;stroke-width:2;stroke-dasharray:4 5;stroke-linecap:round}.devcard__text{margin:0;font-size:11px;line-height:1.3;text-align:center}.devcard__when{text-align:center;font-size:10px;font-weight:700;color:var(--frame)}@keyframes toast{0%{opacity:0;transform:translateY(24px) rotate(-6deg) scale(.9)}10%,85%{opacity:1;transform:none}to{opacity:0;transform:translateY(-6px)}}.route__glow{stroke-width:.34;stroke-linecap:round;opacity:.55;animation:route-pulse 1.4s ease-in-out infinite}@keyframes route-pulse{50%{opacity:.25}}.player__badges{display:flex;flex-wrap:wrap;align-items:center;gap:4px}.player__badges:empty{display:none}.player__road{font:inherit;font-size:11px;font-weight:600;color:var(--text-muted);background:none;border:1px solid;border-radius:999px;padding:1px 8px;cursor:pointer}.player__road:hover,.player__road--on{color:var(--text);background:#ffffff14}.offer__row{display:flex;flex-direction:column;gap:6px}.offer__counter{flex:1;font-size:12px;color:var(--accent)}.board__reset{position:absolute;top:6px;right:6px;z-index:2;font:inherit;font-size:12px;color:var(--text);background:#1f2630e6;border:1px solid var(--panel-border);border-radius:6px;padding:6px 10px;cursor:pointer}.board__sea{fill:var(--sea);stroke:var(--sea-edge);stroke-width:.12;stroke-linejoin:round}.board__sand{fill:var(--sand);stroke:var(--sand);stroke-width:.22;stroke-linejoin:round}.board__tile{stroke:var(--tile-frame);stroke-width:.03;stroke-linejoin:round}.token__disc{fill:var(--token);stroke:#00000059;stroke-width:.02}.token__number{fill:var(--token-ink);font-weight:700;text-anchor:middle;dominant-baseline:central}.token__pip{fill:var(--token-ink)}.token__ring{fill:none;stroke:#fff6c2;stroke-width:.06;animation:glow 1.2s ease-in-out 2}.token--blocked .token__ring{stroke:#9aa5b3;stroke-dasharray:.08 .06}@keyframes glow{50%{stroke-width:.12}}.token--red .token__number,.token--red .token__pip{fill:var(--token-red)}.robber{transition:transform .5s cubic-bezier(.3,.7,.3,1)}.bandit__shadow{fill:#00000059}.bandit__body{fill:var(--robber);stroke:var(--robber-outline);stroke-width:3.6;stroke-linejoin:round}.bandit__body--side{fill:#3b3b44}.bandit__eye{fill:#f6efdc}.bandit__cloth{fill:#a8322a;stroke:var(--robber-outline);stroke-width:2.4;stroke-linejoin:round}.harbor__flag{stroke:#00000059;stroke-width:.03;stroke-linejoin:round}.harbor__ratio{text-anchor:middle;dominant-baseline:central;font-size:.19px;font-weight:700}.road__outline{stroke:var(--piece-outline);stroke-width:.17;stroke-linecap:round}.road__body{stroke-width:.11;stroke-linecap:round}.building{stroke:var(--piece-outline);stroke-width:.03;stroke-linejoin:round}.building,.road{transform-box:fill-box;transform-origin:center;animation:place .32s cubic-bezier(.3,1.6,.5,1)}@keyframes place{0%{transform:scale(.3);opacity:0}}.gain__chip{transform-box:fill-box;transform-origin:center;animation:rise 1.7s ease-out forwards}.gain__disc{stroke:#0000008c;stroke-width:.02}.gain__text{text-anchor:middle;dominant-baseline:central;font-size:.17px;font-weight:800;fill:#fff;paint-order:stroke;stroke:#0000008c;stroke-width:.025px}@keyframes rise{0%{transform:translateY(.05px) scale(.4);opacity:0}15%{transform:translateY(0) scale(1.1);opacity:1}25%{transform:translateY(-.04px) scale(1)}75%{opacity:1}to{transform:translateY(-.5px) scale(1);opacity:0}}.target{cursor:pointer;outline:none}.target__hit{fill:transparent;stroke:none}.target--vertex .target__mark{stroke:#fff;stroke-width:.035;opacity:.75;animation:pulse 1.4s ease-in-out infinite}.target--edge .target__mark{stroke-width:.1;stroke-linecap:round;stroke-dasharray:.08 .06;opacity:.8;animation:pulse 1.4s ease-in-out infinite}.target:hover .target__mark,.target:focus-visible .target__mark{opacity:1;animation:none}.target--vertex:not(.target--upgrade):hover .target__mark,.target--vertex:not(.target--upgrade):focus-visible .target__mark{r:.16px}.target--upgrade .target__mark{stroke-width:.06;stroke-dasharray:.1 .06;opacity:1}.target--upgrade:hover .target__mark,.target--upgrade:focus-visible .target__mark{stroke-width:.09;stroke-dasharray:none}.target--edge:hover .target__mark,.target--edge:focus-visible .target__mark{stroke-width:.15;stroke-dasharray:none}.target:focus-visible .target__hit{stroke:#fff;stroke-width:.03;fill:#ffffff26}.target--tile{fill:#ffffff0f;stroke:#ffffff8c;stroke-width:.04;stroke-dasharray:.12 .08;animation:pulse 1.4s ease-in-out infinite}.target--tile:hover,.target--tile:focus-visible{fill:#14141859;stroke:#fff;stroke-width:.07;stroke-dasharray:none;animation:none}@keyframes pulse{50%{opacity:.35}}@media(prefers-reduced-motion:reduce){.target--tile,.target__mark{animation:none!important}}.panel{--panel-pad-top: 12px;display:flex;flex-direction:column;gap:12px;min-height:0;overflow-y:auto;padding:var(--panel-pad-top) 16px;background:var(--panel);border-left:1px solid var(--panel-border)}.panel__title{margin:0 0 4px;font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--panel-border)}.tabs__tab{flex:1;font:inherit;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);background:none;border:none;border-bottom:2px solid transparent;padding:4px;cursor:pointer}.tabs__tab--on{color:var(--text);border-bottom-color:var(--accent)}.panel--compact{gap:6px}.my-hand{position:sticky;top:calc(-1 * var(--panel-pad-top));box-shadow:0 calc(-1 * var(--panel-pad-top)) 0 var(--panel),0 8px 8px -8px #0009;z-index:1;padding:2px 0 0;background:var(--panel)}.my-hand .hand{margin-top:0}.turn{display:flex;flex-direction:column;gap:8px}.action{font:inherit;font-size:14px;font-weight:600;color:var(--text);background:var(--panel-border);border:1px solid #3c4858;border-radius:8px;padding:8px 12px;cursor:pointer}.action:hover{background:#3c4858}.action--primary{color:#1d1703;background:var(--accent);border-color:var(--accent)}.action--primary:hover{background:#f2cd55}.action:focus-visible,.build__option:focus-visible{outline:2px solid #ffffff;outline-offset:2px}.dice{display:flex;align-items:center;gap:8px}.rollbar{display:flex;flex-direction:column;gap:6px}.rollbar__main{display:flex;align-items:center;gap:12px}.rollbar__action{flex:1;min-width:0}.rollbar__button{width:100%;min-height:44px}.rollbar__earlier{display:flex;flex-wrap:wrap;gap:4px 10px;margin:0;padding:0;list-style:none;font-size:12px;color:var(--text-muted)}.rollbar__roll{display:flex;align-items:center;gap:4px}.rollbar__total{color:var(--text);font-variant-numeric:tabular-nums}.rollbar__total--seven{color:#ff7a6e}.die{width:40px;height:40px;animation:tumble .45s ease-out}.die rect{fill:#f6efdc;stroke:#0006;stroke-width:.1}.die circle{fill:#2b2b2b}.die+.die{animation-delay:.05s}@keyframes tumble{0%{transform:rotate(-160deg) scale(.5);opacity:0}}.dice__total{display:flex;flex-direction:column;margin-left:4px}.dice__sum{font-size:24px;font-weight:800;line-height:1}.dice__who{display:flex;align-items:center;gap:4px;font-size:12px;color:var(--text-muted)}.build{display:flex;flex-direction:column;gap:4px}.build__option{display:grid;grid-template-columns:84px auto 1fr;align-items:center;gap:8px;font:inherit;font-size:14px;text-align:left;color:var(--text);background:transparent;border:1px solid var(--panel-border);border-radius:8px;padding:6px 10px;cursor:pointer}.build__option:hover:not(:disabled){background:#ffffff0d}.build__option:disabled{cursor:not-allowed;color:var(--text-muted)}.build__option--selected{border-color:var(--accent);background:#e8bf3a1f}.build__label{font-weight:600}.build__cost{display:flex;gap:2px}.build__dot{width:9px;height:9px;border-radius:2px;border:1px solid rgba(0,0,0,.4)}.build__option:disabled .build__dot{opacity:.45}.build__status{justify-self:end;font-size:11px;color:var(--text-muted);text-align:right}.build__option--selected .build__status{color:var(--accent)}@media(prefers-reduced-motion:reduce){.die,.token__ring,.route__glow,.building,.road,.chip--up,.chip--down{animation:none}.robber{transition:none}.gain__chip{animation:fade 1.7s linear forwards}@keyframes fade{80%{opacity:1}to{opacity:0}}}.turn__hint{margin:0;font-size:14px;color:var(--text-muted)}.choices{display:flex;flex-direction:column;gap:6px}.choices .action{display:flex;align-items:center;gap:8px;text-align:left}.choices__meta{margin-left:auto;font-size:12px;font-weight:400;color:var(--text-muted)}.discard{display:flex;flex-direction:column;gap:6px;padding:10px;border:1px solid var(--accent);border-radius:8px;background:#e8bf3a0f}.discard__head{display:flex;align-items:center;gap:6px;font-size:14px}.discard__row{display:grid;grid-template-columns:10px 1fr auto 28px 24px 28px;align-items:center;gap:6px;font-size:14px}.discard__have{font-size:12px;color:var(--text-muted)}.discard__count{text-align:center;font-weight:700;font-variant-numeric:tabular-nums}.discard__row button{font:inherit;font-weight:700;color:var(--text);background:var(--panel-border);border:1px solid #3c4858;border-radius:6px;height:28px;cursor:pointer}.discard__row button:disabled{opacity:.35;cursor:not-allowed}.action:disabled{opacity:.5;cursor:not-allowed}.dev{display:flex;flex-direction:column;gap:4px;padding-top:6px;border-top:1px solid var(--panel-border)}.dev__pick{display:flex;flex-wrap:wrap;align-items:center;gap:4px;padding:6px;border:1px solid var(--accent);border-radius:8px}.dev__pick .res{flex:none;padding:4px 6px}.dev__pick .action{padding:4px 8px;font-size:12px}.dev__note{margin:0;font-size:11px;color:var(--text-muted)}.trade{display:flex;flex-direction:column;gap:6px;padding-top:6px;border-top:1px solid var(--panel-border)}.trade__row{display:flex;align-items:center;gap:4px}.trade__label{width:58px;flex:none;font-size:12px;color:var(--text-muted)}.res{display:flex;align-items:center;gap:3px;flex:1;justify-content:center;font:inherit;font-size:11px;font-variant-numeric:tabular-nums;color:var(--text);background:#ffffff0a;border:1px solid var(--panel-border);border-radius:6px;padding:4px 2px;cursor:pointer}.res:hover:not(:disabled){background:#ffffff1a}.res:disabled{opacity:.4;cursor:not-allowed}.res--on{border-color:var(--accent);background:#e8bf3a29}.offer{display:flex;flex-direction:column;gap:6px;padding:8px;border:1px solid var(--panel-border);border-radius:8px}.offer__side{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));align-items:end;gap:4px}.offer__side .trade__label{grid-column:1 / -1;width:auto}.offer__pick{display:flex;flex-direction:column;align-items:stretch;gap:2px;min-width:0}.offer__pick button{font:inherit;font-weight:700;height:22px;color:var(--text);background:var(--panel-border);border:1px solid #3c4858;border-radius:5px;cursor:pointer}.offer__pick--off{opacity:.35}.offer__pick button:disabled{opacity:.35;cursor:not-allowed}.offer__count{display:inline-flex;align-items:center;gap:3px;justify-content:center;font-size:13px;font-weight:700;font-variant-numeric:tabular-nums}.offer__any{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--accent)}.offer__summary{display:flex;align-items:center;gap:6px;margin:0;font-size:13px}.offer__answer{display:flex;align-items:center;gap:6px}.offer__who{flex:1;font-size:13px}.offer__answer .action{padding:4px 8px;font-size:12px}.offer__declined{font-size:12px;color:var(--text-muted)}.player__cards{grid-column:2 / 4;font-size:11px;color:var(--text-muted)}.swatch{display:inline-block;flex:none;width:12px;height:12px;border-radius:3px;border:1px solid rgba(0,0,0,.5)}.status__prompt{display:flex;align-items:center;gap:8px;margin-top:4px;font-size:16px;font-weight:600}.status__tag{font-weight:500;color:var(--text-muted)}.status__error{margin-top:6px;font-size:13px;color:#ff8a80}.hidden-hand{display:flex;flex-wrap:wrap;align-items:center;gap:3px;min-height:30px;margin-top:6px}.hidden-hand__card{width:14px;height:20px;border-radius:3px;background:repeating-linear-gradient(45deg,#3a4656,#3a4656 3px,#2e3845 3px,#2e3845 6px);border:1px solid #4a5666}.hidden-hand__more{margin-left:4px;font-size:12px;color:var(--text-muted)}.status__notice{margin-top:6px;font-size:13px;color:var(--accent)}.save{width:min(520px,100%);max-height:calc(100dvh - 32px);overflow-y:auto}.save__part{display:flex;flex-direction:column;gap:8px}.save__hint,.save__meta{margin:0;font-size:13px;color:var(--text-muted)}.save__code{width:100%;font:12px/1.4 ui-monospace,Consolas,monospace;color:var(--text);background:var(--table);border:1px solid var(--panel-border);border-radius:8px;padding:8px;resize:vertical;word-break:break-all}.save__buttons{display:flex;gap:8px}.save__buttons .action{flex:1}.players{display:flex;flex-direction:column;gap:8px;margin:0;padding:0;list-style:none}.player{padding:8px 10px;border:1px solid var(--panel-border);border-radius:8px}.player--active{border-color:var(--accent);background:#e8bf3a14}.player__head{display:grid;grid-template-columns:auto 1fr auto;align-items:baseline;gap:4px 8px}.player__head .swatch{align-self:center}.player__name{font-weight:600}.player__vp{grid-row:1;grid-column:3;font-size:13px;white-space:nowrap;color:var(--text-muted)}.badge{display:inline-block;margin-top:6px;margin-right:4px;padding:1px 6px;font-size:11px;font-weight:600;color:#1d1703;background:var(--accent);border-radius:10px}.player__bot{margin-left:6px;padding:0 5px;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);border:1px solid var(--panel-border);border-radius:8px}.initiative{display:flex;flex-direction:column;gap:4px;margin:0;padding:0;list-style:none}.initiative__row{display:flex;align-items:center;gap:8px;padding:4px 8px;border:1px solid var(--panel-border);border-radius:6px}.initiative__row--out{opacity:.45}.initiative__name{flex:1;font-size:14px}.initiative__roll{font-size:16px;font-weight:700;font-variant-numeric:tabular-nums}.turn__hint--thinking{font-style:italic}.player__hidden{margin-left:4px;color:var(--accent)}.setup{width:min(520px,100%);max-height:calc(100dvh - 32px);overflow-y:auto}.setup__part{display:flex;flex-direction:column;gap:8px}.setup__seats{display:flex;flex-direction:column;gap:6px}.setup__seat,.setup__row{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:14px}.setup__who{display:flex;align-items:center;gap:6px;min-width:64px;font-weight:600}.setup__choices{display:flex;border:1px solid #3c4858;border-radius:8px;overflow:hidden}.setup__choice{font:inherit;font-size:13px;min-width:56px;min-height:34px;padding:4px 8px;color:var(--text-muted);background:none;border:none;cursor:pointer}.setup__choice+.setup__choice{border-left:1px solid #3c4858}.setup__choice--on{color:#1d1703;font-weight:700;background:var(--accent)}.setup__choice:focus-visible{outline:2px solid #ffffff;outline-offset:-2px}.setup__presets{display:flex;flex-wrap:wrap;gap:6px}.setup__presets .action{flex:1;font-size:13px;padding:6px 8px}.setup__row code{color:var(--text-muted)}@media(max-width:420px){.setup__seat .setup__choice{min-width:0;padding:4px 7px}}.stats{width:min(560px,100%);max-height:calc(100dvh - 32px)}.stats__body{display:flex;flex-direction:column;gap:14px;min-height:0;overflow-y:auto}.stats__figure{margin:0}.stats__readout{margin:0 0 6px;min-height:1.4em;font-size:13px;color:var(--text-muted)}.stats__chart{display:block;width:100%;height:auto;touch-action:manipulation}.stats__baseline{stroke:var(--panel-border);stroke-width:1}.stats__expected{stroke:var(--text-muted);stroke-width:2;stroke-linecap:round}.stats__tick{text-anchor:middle;font-size:11px;fill:var(--text-muted)}.stats__col--on .stats__tick{fill:var(--text);font-weight:700}.stats__col--on path{filter:brightness(1.15)}.stats__hit{fill:transparent;cursor:default}.stats__table{width:100%;border-collapse:collapse;font-size:13px;font-variant-numeric:tabular-nums}.stats__table th,.stats__table td{padding:4px 6px;border-top:1px solid var(--panel-border)}.stats__table thead th{border-top:none;font-size:12px;font-weight:600;text-align:right;white-space:nowrap}.stats__table thead th .swatch{vertical-align:-1px;margin-right:4px}.stats__table tbody th{text-align:left;font-weight:500;color:var(--text-muted)}.stats__table td{text-align:right}.stats__lead th{color:var(--text);font-weight:600}.stats__lead td{font-weight:700}.stats__sub th,.stats__sub td{border-top:none;padding-top:1px;padding-bottom:1px;font-size:12px}.stats__sub th{padding-left:16px}.stats__sub .chip__dot{display:inline-block;margin-right:5px}@media(max-width:420px){.stats__name{display:none}}.rules{width:min(620px,100%);max-height:calc(100dvh - 32px)}.rules__version{margin:0;text-align:center;font-size:12px;color:var(--text-muted)}.rules__body{display:flex;flex-direction:column;gap:14px;min-height:0;overflow-y:auto;font-size:14px;line-height:1.5}.rules__part p,.rules__part ol,.rules__part ul{margin:0}.rules__part ol,.rules__part ul{padding-left:20px}.rules__table{border-collapse:collapse;font-size:13px}.rules__table th,.rules__table td{padding:4px 10px 4px 0;text-align:left;vertical-align:top;border-top:1px solid var(--panel-border)}.rules__table td:last-child{color:var(--text-muted)}.rules__cost{display:flex;flex-wrap:wrap;gap:2px 8px}.rules__res{display:inline-flex;align-items:center;gap:4px;white-space:nowrap}.over{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10;display:grid;place-items:center;padding:16px;background:#0a0c10b8}.over__card{width:min(460px,100%);display:flex;flex-direction:column;gap:12px;padding:20px;background:var(--panel);border:1px solid var(--accent);border-radius:12px;box-shadow:0 18px 50px #00000080}.over__title{display:flex;align-items:center;gap:8px;margin:0;font-size:22px}.over__table{width:100%;border-collapse:collapse;font-size:13px}.over__table th{text-align:right;font-weight:600;color:var(--text-muted);padding-bottom:4px}.over__table th:first-child,.over__table td:first-child{text-align:left}.over__table td{text-align:right;padding:4px 0;border-top:1px solid var(--panel-border)}.over__row--winner{color:var(--accent);font-weight:700}.over__award{margin-left:6px;font-size:11px;font-weight:600;color:var(--text-muted)}.over__total{font-size:15px;font-weight:700;font-variant-numeric:tabular-nums}.over__meta{margin:0;font-size:12px;color:var(--text-muted)}.hand{display:grid;grid-template-columns:repeat(5,1fr);gap:4px;margin-top:6px}.chip{display:flex;flex-direction:column;align-items:center;padding:3px 0;border-radius:6px;background:#ffffff0a}.chip__count{display:flex;align-items:center;gap:4px;font-size:14px;font-weight:700;font-variant-numeric:tabular-nums}.chip__name{font-size:10px;color:var(--text-muted)}.chip--up{animation:chip-up .9s ease-out}.chip--down{animation:chip-down .9s ease-out}@keyframes chip-up{15%{background:#78dc7859;transform:scale(1.08)}}@keyframes chip-down{15%{background:#ff6e644d}}.chip--empty{color:var(--text-muted);opacity:.6}.chip__dot{width:8px;height:8px;border-radius:50%}.log__list{margin:0;padding:0;list-style:none;font-size:13px;line-height:1.5;color:var(--text-muted)}.log__list li:first-child{color:var(--text)}.debug text{text-anchor:middle;dominant-baseline:central;font-family:ui-monospace,Consolas,monospace;font-weight:700;paint-order:stroke;stroke:#fff;stroke-width:.03}.debug__vertex-dot{fill:var(--debug);opacity:.85}.debug__vertex{font-size:.1px;fill:#fff;stroke:none!important}.debug__edge{font-size:.1px;fill:#1a4fd6}.debug__tile{font-size:.14px;fill:var(--debug)}
