@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-cyrillic-ext-wght-normal-DjL33-gN.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-cyrillic-wght-normal-BEAKL7Jp.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-vietnamese-wght-normal-6IgcOCM7.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-latin-ext-wght-normal-DC-KSUi6.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-latin-wght-normal-BgDaEnEv.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--felt:#1f3d33;--felt-deep:#17302a;--felt-ink:#d9e3dc;--felt-muted:#93a99d;--felt-line:#d9e3dc29;--felt-shade:#0a0e0d8c;--card-face:#f4f0e6;--card-edge:#d9d3c4;--card-ink:#1b1d1c;--suit-red:#a8332f;--suit-blue:#2c5a9e;--suit-green:#2e7a4f;--card-back:#23282a;--tray:#2b2f2e;--cut-card:#e0c35a;--accent:#b89a62;--accent-ink:#1a1710;--correct:#6fae8a;--mistake:#d98b7a;--chip-10:#3f6fb5;--chip-25:#3f8f62;--chip-100:#2a2d2f;--chip-500:#7a4f8f;--chip-ink:#f4f0e6;--font:"Geist Variable", system-ui, -apple-system, "Segoe UI", sans-serif;--radius-s:6px;--radius-m:10px;--radius-l:16px;--tap:44px;--nav-h:60px;--rail-w:88px;--dur-fast:.15s;--dur:.22s;--dur-slow:.3s;--ease:cubic-bezier(.2, .7, .2, 1);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#141716;--surface:#1c201f;--surface-2:#252a28;--border:#323836;--text:#e8ebe9;--text-muted:#a3aba7}@media (prefers-color-scheme:light){:root:not([data-theme=dark]){--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f3f2ee;--surface:#fff;--surface-2:#ebe9e3;--border:#d8d5cc;--text:#1b1d1c;--text-muted:#5b625e}}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f3f2ee;--surface:#fff;--surface-2:#ebe9e3;--border:#d8d5cc;--text:#1b1d1c;--text-muted:#5b625e}@media (prefers-reduced-motion:reduce){:root{--dur-fast:0s;--dur:0s;--dur-slow:0s}}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg);color:var(--text);font-family:var(--font);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;margin:0;font-size:16px;line-height:1.45;overflow-x:hidden}button{font:inherit;color:inherit}h1,h2,h3{letter-spacing:-.01em;margin:0;font-weight:600;line-height:1.2}.num{font-variant-numeric:tabular-nums}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.meter{border:1px solid var(--border);background:var(--surface);height:38px;color:var(--text-muted);cursor:pointer;min-width:var(--tap);border-radius:19px;align-items:center;gap:2px;padding:0 4px;display:inline-flex}.meter i{opacity:.45;border-radius:14px;place-items:center;width:30px;height:28px;font-style:normal;display:grid}.meter i.on{opacity:1;color:var(--accent-ink);background:var(--accent)}.meter svg{width:16px;height:16px}.meter-label{white-space:nowrap;padding:0 6px 0 4px;font-size:12px}.sheet-backdrop{z-index:30;background:#00000073;place-items:end center;display:grid;position:fixed;inset:0}.assist-sheet{background:var(--surface);width:min(560px,100%);max-height:90dvh;color:var(--text);padding:16px 16px calc(16px + env(safe-area-inset-bottom));animation:sheet-up var(--dur) var(--ease);border-radius:18px 18px 0 0;overflow:auto;box-shadow:0 -10px 30px #0000004d}@keyframes sheet-up{0%{opacity:0;transform:translateY(30px)}}@media (width>=900px){.sheet-backdrop{align-items:center}.assist-sheet{border-radius:18px}}.sheet-head{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.sheet-head h2{font-size:18px}.sheet-close{min-height:var(--tap);border-radius:var(--radius-m);border:1px solid var(--border);background:var(--surface-2);cursor:pointer;padding:0 14px;font-weight:600}.assist-controls{gap:14px;display:grid}.assist-row{gap:6px;display:grid}.assist-row b{font-weight:600;display:block}.assist-row .help{color:var(--text-muted);font-size:13px;display:block}.assist-row.sub{color:var(--text-muted);justify-content:space-between;align-items:center;gap:10px;font-size:14px;display:flex}.assist-row.toggle input{appearance:none;background:var(--surface-2);border:1px solid var(--border);cursor:pointer;border-radius:14px;flex:none;width:46px;height:28px;position:relative}.assist-row.toggle input:after{content:"";background:var(--text-muted);width:20px;height:20px;transition:transform var(--dur-fast) var(--ease);border-radius:50%;position:absolute;top:3px;left:3px}.assist-row.toggle input:checked{background:var(--correct);border-color:var(--correct)}.assist-row.toggle input:checked:after{background:var(--surface);transform:translate(18px)}.assist-controls .segmented,.side-panel .segmented{background:var(--surface-2);border-radius:var(--radius-m);flex-wrap:wrap;gap:3px;padding:3px;display:inline-flex}.assist-controls .segmented button{min-height:40px;color:var(--text-muted);cursor:pointer;background:0 0;border:0;border-radius:7px;padding:0 12px;font-size:14px;font-weight:500}.assist-controls .segmented button[aria-checked=true]{background:var(--surface);color:var(--text);box-shadow:0 0 0 1px var(--border)}.odds-bar{width:100%;min-height:var(--tap);border-radius:var(--radius-m);border:1px solid var(--border);background:var(--surface);text-align:left;cursor:pointer;color:var(--text);justify-content:space-between;align-items:center;gap:10px;padding:0 12px;font-size:13px;display:flex}.odds-bar b{font-weight:600}.odds-bar .muted,.muted{color:var(--text-muted)}.odds-bar .chev{width:18px;height:18px;color:var(--text-muted);transition:transform var(--dur) var(--ease);flex:none}.odds-bar .chev.open{transform:rotate(180deg)}.odds-details{gap:14px;font-size:14px;display:grid}.odds-details h3{letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);margin:0 0 6px;font-size:11px;font-weight:600}.odds-details p{margin:0}.ev-row{border-radius:8px;justify-content:space-between;padding:5px 8px;display:flex}.ev-row.best{background:color-mix(in srgb, var(--accent) 24%, transparent)}.ev-row .num{font-weight:600}.bars{grid-template-columns:repeat(6,1fr);gap:6px;height:92px;display:grid}.bar{grid-template-rows:auto 1fr auto;justify-items:center;gap:3px;min-width:0;font-size:11px;display:grid}.bar .fill-wrap{align-items:flex-end;width:100%;display:flex}.bar .fill{background:color-mix(in srgb, var(--text) 26%, transparent);border-radius:4px 4px 0 0;width:100%}.bar.bust .fill{background:color-mix(in srgb, var(--correct) 70%, transparent)}.bar .lab{color:var(--text-muted)}.wpl{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.wpl div{background:var(--surface-2);border-radius:8px;padding:6px 8px;line-height:1.2;display:grid}.wpl b{font-size:16px;font-weight:600}.wpl span{color:var(--text-muted);font-size:11px}.edge{color:var(--text-muted);font-size:13px}.hint{color:var(--text-muted);margin:0;font-size:13px;line-height:1.35}.hint strong{color:var(--text);font-weight:600}.catch{background:var(--surface-2);box-shadow:inset 3px 0 0 var(--mistake);border-radius:12px;gap:8px;padding:10px 12px;display:grid}.catch p{margin:0;font-size:14px}.bet-row.even{grid-template-columns:1fr 1fr}.act.rec{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.act.rec small{color:var(--accent-ink);opacity:.7}.act.rec:not(:disabled):hover{background:var(--accent);filter:brightness(1.05)}.act.pulse-ok{animation:pulse-ok .7s var(--ease)}.act.mark-miss{box-shadow:0 0 0 2px var(--mistake)}@keyframes pulse-ok{0%{box-shadow:0 0 0 0 var(--correct)}40%{box-shadow:0 0 0 4px var(--correct)}to{box-shadow:0 0 #0000}}.ask-btn{border:1px solid var(--border);background:var(--surface);cursor:pointer;border-radius:18px;flex:none;min-height:36px;padding:0 12px;font-size:13px;font-weight:600}.hint-row{justify-content:space-between;align-items:center;gap:10px;min-height:36px;display:flex}.toast.ok{box-shadow:inset 3px 0 0 var(--correct)}.toast.miss{box-shadow:inset 3px 0 0 var(--mistake)}.count-strip{border-bottom:1px solid var(--border);background:var(--surface);flex:none;justify-content:space-around;gap:8px;padding:6px 12px;display:flex}.count-strip div,.count-card div{justify-items:center;line-height:1.05;display:grid}.count-strip b{letter-spacing:-.02em;font-size:24px;font-weight:600}.count-card{text-align:center;grid-template-columns:repeat(3,1fr);display:grid}.count-card b{letter-spacing:-.02em;font-size:32px;font-weight:600}.count-strip span,.count-card span{letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);margin-top:2px;font-size:10px}.count-hidden{text-align:center;color:var(--text-muted);border-bottom:1px solid var(--border);background:var(--surface);flex:none;margin:0;padding:7px 12px;font-size:12px}.count-pad,.count-result{justify-items:stretch;gap:8px;display:grid}.pad-q{text-align:center;color:var(--text-muted);margin:0;font-size:14px}.pad-q b{color:var(--text)}.pad-value{text-align:center;min-height:44px;font-size:34px;font-weight:600}.pad-keys{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.pad-keys button{border:1px solid var(--border);background:var(--surface);cursor:pointer;border-radius:12px;min-height:48px;font-size:20px;font-weight:600}.count-result p{text-align:center;margin:0}.count-result.ok p b{color:var(--correct)}.recent{flex-wrap:wrap;justify-content:center;gap:6px;display:flex}.recent-card{background:var(--surface-2);border-radius:8px;justify-items:center;padding:4px 8px;font-size:14px;line-height:1.2;display:grid}.recent-card small{color:var(--text-muted);font-size:11px}.card-tag{color:var(--felt-ink);pointer-events:none;font-variant-numeric:tabular-nums;background:#141716e0;border-radius:10px;padding:2px 8px;font-size:12px;font-weight:600;animation:1.1s forwards tag;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}@keyframes tag{0%{opacity:0;transform:translate(-50%,-30%)}15%{opacity:1;transform:translate(-50%,-50%)}75%{opacity:1}to{opacity:0}}.side-panel{border-left:1px solid var(--border);background:var(--surface);align-content:start;gap:14px;padding:14px 16px;display:grid;overflow-y:auto}.side-box{border:1px solid var(--border);border-radius:var(--radius-m);gap:8px;padding:12px;display:grid}.side-box h2{letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);font-size:11px;font-weight:600}@media (prefers-reduced-motion:reduce){.card-tag{animation-duration:1.5s}.act.pulse-ok{box-shadow:0 0 0 2px var(--correct);animation:none}.assist-sheet{animation:none}}.ev-grid{gap:2px;display:grid}.odds-details.compact{gap:10px}.odds-details.compact .ev-grid{grid-template-columns:1fr 1fr;column-gap:8px}.odds-details.compact .ev-row{padding:4px 8px;font-size:13px}.odds-details.compact .bars{height:64px}.odds-details.compact .wpl b{font-size:14px}.play{flex-direction:column;height:100%;min-height:0;display:flex;overflow-y:auto}.play-head{padding:calc(env(safe-area-inset-top) + 4px) 8px 4px 16px;border-bottom:1px solid var(--border);flex:none;justify-content:space-between;align-items:center;gap:8px;min-height:52px;display:flex}.bankroll{line-height:1.1;display:grid}.bankroll b{font-size:18px;font-weight:600}.bankroll span{letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);font-size:10px}.pending-note{color:var(--text-muted);text-align:center;font-size:12px}.felt-wrap{flex:1 0 auto;min-height:min(440px,62dvh);padding:8px;display:flex}.felt{border-radius:var(--radius-l);color:var(--felt-ink);background:radial-gradient(120% 70% at 50% -10%, #ffffff0f, transparent 60%), repeating-radial-gradient(circle at 30% 40%, #00000006 0 1px, transparent 1px 3px), var(--felt);box-shadow:inset 0 0 0 1px var(--felt-deep), inset 0 0 90px #00000061;-webkit-user-select:none;user-select:none;flex:1;position:relative;overflow:hidden}.felt.gestures{touch-action:none;cursor:pointer}.felt>*{position:absolute}.shoe{background:linear-gradient(160deg,#2f3534,#1c2120);border-radius:6px 14px 6px 6px;box-shadow:0 3px 10px #0006}.shoe-cards,.tray-stack{transition:height var(--dur-slow) var(--ease);background:repeating-linear-gradient(0deg,#e9e3d4 0 1px,#cfc8b6 1px 2px);border-radius:3px;position:absolute;bottom:8%;left:14%;right:14%}.shoe-cut{background:var(--cut-card);border-radius:1px;height:3px;position:absolute;left:6%;right:6%}.shoe-cut.out{top:-6px;left:20%;right:-6px;transform:rotate(-12deg)}.tray{background:var(--tray);border-radius:4px;box-shadow:inset 0 0 0 1px #ffffff0f}.felt-label{letter-spacing:.08em;text-transform:uppercase;color:var(--felt-muted);white-space:nowrap;pointer-events:none;font-size:10px;transform:translate(-50%)}.felt-label.you{color:var(--felt-ink)}.placard{pointer-events:none;overflow:visible}.placard text{fill:var(--felt-muted);font-family:var(--font);letter-spacing:.14em;text-transform:uppercase}.placard .big{fill:var(--felt-ink);opacity:.8;font-weight:600}.card{background:var(--card-face);color:var(--card-ink);box-shadow:0 1px 0 var(--card-edge), 0 3px 8px #00000059;border-radius:6px}.card .idx{letter-spacing:-.04em;justify-items:center;font-weight:700;line-height:.9;display:grid;position:absolute;top:4%;left:7%}.card .idx svg{margin-top:3px}.card .pip{display:flex;position:absolute;bottom:8%;right:9%}.card.tone-red{color:var(--suit-red)}.card.tone-blue{color:var(--suit-blue)}.card.tone-green{color:var(--suit-green)}.card.tone-ink{color:var(--card-ink)}.card.dim{filter:brightness(.72)saturate(.7)}.card.back{background:repeating-linear-gradient(45deg, #b89a6221 0 1px, transparent 1px 6px), repeating-linear-gradient(-45deg, #b89a6221 0 1px, transparent 1px 6px), var(--card-back);box-shadow:inset 0 0 0 3px var(--card-back), inset 0 0 0 4px #b89a628c, 0 3px 8px #00000059}.active-mark{box-shadow:0 0 0 2px var(--accent);pointer-events:none;border-radius:9px}.total{text-align:center;white-space:nowrap;background:var(--felt-shade);min-width:30px;color:var(--felt-ink);font-variant-numeric:tabular-nums;border-radius:11px;padding:2px 8px;font-size:13px;font-weight:600;transform:translate(-50%)}.total.outcome.win,.total.outcome.blackjack{color:#0f1f17;background:#6fae8ae6}.total.outcome.push{color:#17302a;background:#d9e3dcd9}.seat-ring{border:1.5px solid var(--felt-line);border-radius:50%}.seat-ring.empty{border-style:dashed}.seat-ring.mine{border-color:#d9e3dc4d}.seat-ring.you{letter-spacing:.08em;text-transform:uppercase;color:var(--felt-ink);border-color:#d9e3dc59;place-items:center;font-size:10px;display:grid}.seat-name{pointer-events:none;justify-items:center;gap:1px;line-height:1.15;display:grid;transform:translate(-50%)}.seat-name .who{color:var(--felt-ink);white-space:nowrap;align-items:center;gap:4px;font-size:12px;display:inline-flex}.seat-name .style{color:var(--felt-muted);white-space:nowrap;font-size:10px}.avatar{width:16px;height:16px;color:var(--felt-deep);border-radius:50%;place-items:center;font-size:9px;font-style:normal;font-weight:700;display:grid}.stack{pointer-events:none}.stack .chip{position:absolute;left:0}.chip{color:var(--chip-ink);letter-spacing:-.02em;font-variant-numeric:tabular-nums;border-radius:50%;place-items:center;font-weight:700;display:inline-grid;position:relative;box-shadow:0 2px #00000059}.chip:before{content:"";background:repeating-conic-gradient(#f4f0e6d9 0 10deg, transparent 10deg 45deg);border-radius:50%;position:absolute;inset:0;-webkit-mask:radial-gradient(circle,#0000 62%,#000 63% 78%,#0000 79%);mask:radial-gradient(circle,#0000 62%,#000 63% 78%,#0000 79%)}.chip:after{content:"";border:1px solid #f4f0e673;border-radius:50%;position:absolute;inset:22%}.chip>span{z-index:1;position:relative}.chip-10{background:var(--chip-10)}.chip-25{background:var(--chip-25)}.chip-100{background:var(--chip-100)}.chip-500{background:var(--chip-500)}.stack.insurance{opacity:.9}.stack.won{animation:chips-in .32s var(--ease) both}.stack.lost{animation:chips-out .36s var(--ease) forwards}@keyframes chips-in{0%{opacity:0;transform:translateY(-60px)}}@keyframes chips-out{to{opacity:0;transform:translateY(-60px)}}.felt-note{text-align:right;max-width:70%;white-space:normal!important}.felt-note,.net{white-space:nowrap;color:var(--felt-ink);pointer-events:none;background:#0a0e0db3;border-radius:14px;padding:4px 12px;font-size:13px;font-weight:500;transform:translate(-50%)}.felt-note{transform:none}.felt-note.shuffling{animation:.9s ease-in-out infinite alternate pulse}.net{font-variant-numeric:tabular-nums;font-size:18px;font-weight:600}.net.up{color:var(--correct)}.net.down{color:var(--felt-ink)}@keyframes pulse{0%{opacity:.55}to{opacity:1}}.play-foot{flex:none;gap:8px;padding:0 8px 8px;display:grid}.actions{grid-template-columns:repeat(5,1fr);gap:6px;display:grid}.act{border:1px solid var(--border);background:var(--surface);cursor:pointer;min-height:54px;transition:background var(--dur-fast) var(--ease), opacity var(--dur-fast) var(--ease);border-radius:12px;align-content:center;place-items:center;padding:0 8px;font-size:14px;font-weight:600;line-height:1.1;display:grid;position:relative}.act small{color:var(--text-muted);letter-spacing:.06em;margin-top:2px;font-size:10px;font-weight:500;display:block}.act:disabled{opacity:.35;cursor:default}.act:not(:disabled):hover{background:var(--surface-2)}.act.primary{background:var(--text);color:var(--bg);border-color:var(--text)}.act.primary small{color:var(--bg);opacity:.7}.act.primary:not(:disabled):hover{opacity:.9;background:var(--text)}.act.ghost{background:0 0}.betting{gap:8px;display:grid}.chip-tray{justify-content:center;gap:12px;display:flex}.chip-btn{cursor:pointer;min-width:var(--tap);min-height:var(--tap);background:0 0;border:0;border-radius:50%;padding:4px}.chip-btn:disabled{opacity:.3;cursor:default}.chip-btn:not(:disabled):active{transform:translateY(1px)}.bet-row{grid-template-columns:1fr 2fr;gap:6px;display:grid}.insurance .bet-row{grid-template-columns:1fr 1fr}.limits{text-align:center;color:var(--text-muted);margin:0;font-size:12px}.ask-line{text-align:center;color:var(--text-muted);margin:0;font-size:14px}.ask-line b{color:var(--text)}.rebuy{text-align:center;gap:8px;display:grid}.rebuy p{color:var(--text-muted);margin:0;font-size:14px}.toast{background:var(--surface-2);border:1px solid var(--border);border-radius:12px;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;font-size:14px;display:flex}.toast.tip{box-shadow:inset 3px 0 0 var(--accent)}.toast-x{border:1px solid var(--border);background:var(--surface);cursor:pointer;border-radius:10px;flex:none;min-height:36px;padding:0 12px;font-weight:600}@media (width>=900px){.play-head{justify-content:flex-end;gap:16px;padding:8px 16px}.play-head .bankroll{justify-items:end}.play-gear{display:none}.play-foot{justify-items:center;padding:0 16px 16px}.actions{grid-template-columns:repeat(5,120px)}.betting,.insurance,.rebuy{width:min(520px,100%)}.felt-wrap{padding:12px 16px 8px}}@media (prefers-reduced-motion:reduce){.felt-note.shuffling,.stack.won{animation:none}.stack.lost{opacity:0;animation:none}.shoe-cards,.tray-stack{transition:none}}.play-body{flex:1;min-height:0;display:flex}.play-main{flex-direction:column;flex:1;min-width:0;display:flex}.play.with-side .play-body{grid-template-columns:1fr 340px;display:grid}.odds-inline{border-radius:var(--radius-m);background:var(--surface);border:1px solid var(--border);padding:12px;overflow-y:visible}@media (width>=900px){.play-head .meter{margin-right:auto}.hint-row,.odds-bar,.odds-inline{width:min(620px,100%)}.catch,.count-pad,.count-result{width:min(520px,100%)}}.settings{gap:14px;display:grid}.settings h1{margin-bottom:0}.settings .lede{margin:0 0 4px}.setting{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-m);gap:10px;min-width:0;margin:0;padding:16px;display:grid}.setting h2{font-size:16px;font-weight:600}.setting-help{color:var(--text-muted);margin:0;font-size:14px;display:block}.segmented{background:var(--surface-2);border-radius:var(--radius-m);flex-wrap:wrap;gap:3px;max-width:100%;padding:3px;display:inline-flex}.segmented button{min-height:var(--tap);border-radius:calc(var(--radius-m) - 3px);color:var(--text-muted);cursor:pointer;background:0 0;border:0;padding:0 12px;font-size:14px;font-weight:500}.segmented button[aria-checked=true]{background:var(--surface);color:var(--text);box-shadow:0 0 0 1px var(--border)}.rules-summary{color:var(--text-muted);margin:0;font-size:14px}.rules-summary:first-letter{text-transform:uppercase}.edge-line{margin:0;font-size:15px}.edge-line b{font-weight:600}.trap-note{border-radius:var(--radius-m);background:var(--surface-2);box-shadow:inset 3px 0 0 var(--mistake);margin:0;padding:10px 12px;font-size:14px}.rule-editor{border-top:1px solid var(--border);gap:10px;padding-top:6px;display:grid}.rule-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px 12px;display:flex}.rule-label{font-weight:500}.toggle-row{min-height:var(--tap);cursor:pointer;justify-content:space-between;align-items:center;gap:12px;display:flex}.toggle-row input{appearance:none;background:var(--surface-2);border:1px solid var(--border);cursor:pointer;width:46px;height:28px;transition:background var(--dur-fast) var(--ease);border-radius:14px;flex:none;position:relative}.toggle-row input:after{content:"";background:var(--text-muted);width:20px;height:20px;transition:transform var(--dur-fast) var(--ease), background var(--dur-fast) var(--ease);border-radius:50%;position:absolute;top:3px;left:3px}.toggle-row input:checked{background:var(--correct);border-color:var(--correct)}.toggle-row input:checked:after{background:var(--surface);transform:translate(18px)}.stepper{align-items:center;gap:4px;display:inline-flex}.stepper button{width:var(--tap);height:var(--tap);border-radius:var(--radius-m);border:1px solid var(--border);background:var(--surface);cursor:pointer;font-size:20px}.stepper button:disabled{opacity:.35;cursor:default}.stepper b{text-align:center;min-width:28px;font-size:18px}.seat-picker{flex-wrap:wrap;gap:4px;display:flex}.seat-picker button{width:var(--tap);height:var(--tap);border:1px solid var(--border);background:var(--surface);cursor:pointer;border-radius:50%;font-weight:600}.seat-picker button[aria-checked=true]{background:var(--text);color:var(--bg);border-color:var(--text)}.btn{min-height:var(--tap);border-radius:var(--radius-m);border:1px solid var(--border);background:var(--surface);cursor:pointer;justify-self:start;padding:0 14px;font-weight:500}.btn:disabled{opacity:.4;cursor:default}.btn.danger{box-shadow:inset 0 0 0 1px var(--mistake)}.confirm-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.text-input{min-height:var(--tap);border-radius:var(--radius-m);border:1px solid var(--border);background:var(--bg);color:var(--text);font:inherit;flex:180px;min-width:0;padding:0 12px}code{font-size:13px}.shell{grid-template-rows:auto 1fr auto;grid-template-areas:"top""main""nav";height:100dvh;min-height:100%;display:grid}.topbar{padding:calc(env(safe-area-inset-top) + 4px) 8px 4px 16px;background:var(--bg);border-bottom:1px solid var(--border);grid-area:top;justify-content:space-between;align-items:center;display:flex}.brand{letter-spacing:.01em;color:var(--text-muted);font-size:15px;font-weight:600}.icon-btn{width:var(--tap);height:var(--tap);border-radius:var(--radius-m);color:var(--text-muted);cursor:pointer;background:0 0;border:0;place-items:center;display:grid}.icon-btn:hover,.icon-btn.is-active{color:var(--text);background:var(--surface-2)}.main{grid-area:main;min-width:0;overflow:hidden auto}.nav{background:var(--surface);border-top:1px solid var(--border);padding-bottom:env(safe-area-inset-bottom);grid-area:nav}.nav ul{grid-template-columns:repeat(4,1fr);margin:0;padding:0;list-style:none;display:grid}.nav-item{width:100%;min-height:var(--nav-h);color:var(--text-muted);cursor:pointer;transition:color var(--dur-fast) var(--ease);background:0 0;border:0;flex-direction:column;justify-content:center;align-items:center;gap:2px;font-size:12px;font-weight:500;display:flex}.nav-item:hover,.nav-item[aria-current=page]{color:var(--text)}.nav-item[aria-current=page] svg{color:var(--accent)}.nav-settings{display:none}@media (width>=900px){.shell{grid-template-areas:"nav main";grid-template-columns:var(--rail-w) 1fr;grid-template-rows:1fr}.topbar{display:none}.nav{border-top:0;border-right:1px solid var(--border);flex-direction:column;justify-content:space-between;padding:12px 0;display:flex}.nav ul{grid-template-columns:1fr;gap:4px}.nav-item{min-height:68px}.nav-settings{display:flex}}.screen{max-width:760px;margin:0 auto;padding:20px 16px 32px}.screen h1{margin-bottom:6px;font-size:24px}.screen .lede{color:var(--text-muted);margin:0 0 20px}.placeholder-list{gap:10px;margin:0;padding:0;list-style:none;display:grid}.placeholder-list li{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-m);padding:14px 16px}.placeholder-list .meta{color:var(--text-muted);font-size:13px;display:block}.shell[data-screen=play] .topbar{display:none}.shell[data-screen=play] .main{overflow:hidden}
