@font-face {
  font-family: Geist;
  src: url("/assets/geist.woff2") format("woff2");
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
}

@font-face {
  font-family: "Instrument Serif";
  src: url("/assets/instrument-serif.woff2") format("woff2");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}

:root {
  color-scheme: dark;
  --bg: #0e1514;
  --panel: #151e1b;
  --panel-dark: #101a17;
  --stroke: #293730;
  --stroke-lit: #384940;
  --text: #f2ece1;
  --muted: #9fada3;
  --faint: #85978c;
  --gold: #edc481;
  --deep-gold: #954c28;
  --green: #abd2b2;
  --serif: "Instrument Serif", Georgia, "Songti SC", SimSun, serif;
  --sans: Geist, "PingFang SC", "Microsoft YaHei", "Noto Sans CJK SC", system-ui, sans-serif;
  font-family: var(--sans);
  font-synthesis: none;
  background: var(--bg);
  color: var(--text);
  font-size: 14px;
  font-variant-numeric: tabular-nums;
  -webkit-font-smoothing: antialiased;
}

* { box-sizing: border-box; }
body { margin: 0; min-height: 100vh; background: radial-gradient(ellipse at 43% 13%, #1c2a21 0, transparent 48%), radial-gradient(ellipse at 90% 3%, #282118 0, transparent 32%), var(--bg); }
button, input, select { font: inherit; }
button { cursor: pointer; }
button:disabled { cursor: default; }
button:focus-visible, input:focus-visible, select:focus-visible { outline: 2px solid var(--gold); outline-offset: 3px; }
[hidden] { display: none !important; }

.topbar { height: 68px; background: #0b1211e8; border-bottom: 1px solid #27312b; }
.topbar-inner { display: flex; align-items: center; gap: 15px; height: 100%; max-width: 1512px; margin: 0 auto; padding: 0 44px; }
.topbar .brand { margin-right: auto; }
.brand { display: flex; align-items: center; gap: 11px; font: 29px/1 var(--serif); letter-spacing: .02em; }
.brand-icon { display: grid; place-items: center; width: 34px; height: 34px; border: 1px solid #70572f; border-radius: 9px; background: #2a2418; color: var(--gold); font: 24px/1 Georgia, serif; }
.top-actions { display: flex; gap: 21px; align-items: center; }
.play-chips { display: inline-flex; align-items: center; gap: 7px; font-size: 12px; color: #c5b693; }
.chip-tiny, .pot-chip { border: 1px dashed #e4b87a; border-radius: 50%; background: #6e4c2a; outline: 1px solid #986b3b; outline-offset: 1px; display: inline-block; width: 10px; height: 10px; flex: none; }
.top-button, .quiet-button, .text-button, .icon-button, .small-button {
  color: #e0dfd4;
  background: transparent;
  border: 1px solid var(--stroke-lit);
  border-radius: 8px;
  padding: 9px 13px;
  white-space: nowrap;
}
.top-button { display: flex; align-items: center; gap: 8px; font-size: 12px; border-color: #353d35; }
.help-icon { display: inline-grid; place-items: center; width: 14px; height: 14px; border: 1px solid #879489; color: #c9d0c6; border-radius: 50%; font-size: 10px; line-height: 1; }
.top-button:hover, .quiet-button:hover, .small-button:hover, .icon-button:hover { border-color: #7a846a; background: #ffffff08; }
.text-button { border: 0; padding: 4px 0; color: #c2c9be; font-size: 12px; }
.text-button:hover { color: var(--gold); }
.text-button span { margin-left: 5px; color: #a2ad9d; }
.icon-button { color: var(--muted); padding: 2px 9px 4px; font-size: 20px; line-height: 1.2; }

.room { margin: 0 auto; padding: 31px 44px 21px; max-width: 1512px; }
.room-heading { display: flex; justify-content: space-between; align-items: flex-end; margin-bottom: 22px; }
.game-type { margin: 0 0 3px; color: #d3b88c; font-size: 12px; letter-spacing: .14em; }
h1 { margin: 0; color: #f3eadb; font: 400 clamp(48px, 5.3vw, 76px)/.97 var(--serif); letter-spacing: -.026em; }
.room-heading .quiet-button { margin-bottom: 4px; }

.room-grid { display: grid; grid-template-columns: minmax(0, 1fr) clamp(305px, 28vw, 372px); gap: 21px; align-items: start; }
.room-side { display: grid; gap: 14px; min-width: 0; }
.game-panel { overflow: hidden; background: #111b18; border: 1px solid #2d3a32; border-radius: 17px; box-shadow: 0 20px 75px #0003; min-width: 0; }
.stage { height: clamp(430px, 37vw, 548px); min-width: 0; position: relative; isolation: isolate; background: radial-gradient(ellipse at 50% 52%, #284235 0%, #182920 49%, #101a17 82%); }
.stage::before { content: ""; position: absolute; z-index: -1; inset: 0; opacity: .32; background-image: radial-gradient(#92bba326 .65px, transparent .65px); background-size: 5px 5px; mask-image: radial-gradient(black, transparent 82%); }
.stage-meta { display: flex; gap: 5px; align-items: center; position: absolute; top: 17px; left: 19px; right: 19px; justify-content: space-between; z-index: 4; pointer-events: none; }
.hand-meta, .blind-meta { color: #b3c1b6; font-size: 12px; line-height: 1.25; }
.hand-meta { display: inline-flex; align-items: center; gap: 8px; padding: 6px 9px; border: 1px solid #374a3e; border-radius: 6px; background: #171f1bc9; }
.hand-meta i { display: inline-block; background: #9fb9a4; border-radius: 50%; width: 6px; height: 6px; }
.blind-meta strong { color: #e4ddce; padding-left: 3px; font-weight: 500; }
.stage-tools { display: flex; align-items: center; gap: 9px; }
#coach-shortcut { pointer-events: auto; background: #1c2a23; color: #e8d3a6; }
#coach-shortcut[aria-pressed=true] { background: #35503a; color: #e1f1d9; border-color: #7d996e; }

.table-rail { position: absolute; inset: 18.5% 7.3% 17.5%; border-radius: 46% / 54%; padding: 11px; background: linear-gradient(178deg, #7c644b, #4e3c2f 18%, #2a201a 50%, #684833 94%); border: 1px solid #94734c; box-shadow: 0 5px 0 #241b15, 0 8px 0 #6e512f, 0 11px 0 #1d1711, 0 27px 47px #000a, inset 0 2px 2px #ac8c673d, inset 0 -2px 3px #130e09; }
.table-felt { width: 100%; height: 100%; position: relative; border-radius: inherit; border: 2px solid #a5824b; background-color: #21483a; background-image: radial-gradient(ellipse at 50% 44%, #47866c29, #112f28b5 91%), repeating-linear-gradient(37deg,#ffffff05 0 .7px, transparent .7px 2.2px), radial-gradient(#010a045c .55px, transparent .55px); background-size: auto, auto, 3px 3px; box-shadow: inset 0 0 31px #081d16c9, 0 2px 4px #000a; }
.table-seam { position: absolute; inset: 6.5% 2.4%; border-radius: inherit; border: 1px solid #adbd8a43; box-shadow: 0 0 0 3px #062e1a16, inset 0 0 0 3px #7d9e6022; }
.table-center { position: absolute; z-index: 1; top: 48%; left: 50%; transform: translate(-50%, -50%); width: min(70%, 470px); display: flex; flex-direction: column; align-items: center; gap: 11px; text-align: center; pointer-events: none; }
.pot { display: inline-flex; justify-content: center; gap: 7px; align-items: center; padding: 6px 12px; color: #ded1b7; font-size: 12px; border: 1px solid #66846a81; border-radius: 25px; background: #152e26cf; box-shadow: 0 3px 9px #10251c56; }
.pot strong { color: #f6d89f; font-size: 14px; font-weight: 600; }
.pot-chip { width: 12px; height: 12px; }
.board { display: flex; align-items: center; gap: clamp(4px, .7vw, 10px); }
.table-line { min-height: 34px; max-width: 100%; color: #d1ddcd; font-weight: 500; font-size: 12px; margin-top: 1px; line-height: 1.45; }
.table-line strong { color: #f4d9a9; font-weight: 600; }
.table-line .payout { display: block; margin-top: 2px; color: #c6d2c3; font-size: 11px; font-weight: 400; }
.table-line .preview-sequence { font-size: 11px; color: #aec2b0; letter-spacing: .08em; }
.board .card { animation: deal .22s ease-out; }
@keyframes deal { from { opacity: .15; transform: translateY(5px) rotate(-3deg); } to { opacity: 1; transform: none; } }

.card { display: inline-block; flex: none; width: clamp(46px, 5vw, 66px); height: clamp(65px, 7vw, 93px); border-radius: 7px; background: linear-gradient(145deg, #fff9ed, #ece4d5); border: 1px solid #fffae7; position: relative; color: #252b27; box-shadow: 0 4px 9px #0621178a, inset 0 -1px 0 #d3c8b3ac; font-family: Georgia, serif; }
.card.red { color: #a7333a; }
.card b { position: absolute; left: 7px; top: 6px; font-size: 24px; font-weight: 700; letter-spacing: -.04em; line-height: .95; }
.card .pip { position: absolute; top: 54%; left: 50%; transform: translate(-50%,-50%); font: 35px/1 "Times New Roman", serif; }
.card .pip-small { position: absolute; right: 5px; bottom: 3px; font: 12px/1 "Times New Roman", serif; transform: rotate(180deg); }
.card.blank { background: #142e2680; color: #8bb39c43; border: 1px dashed #8eaf986d; box-shadow: none; display: grid; place-items: center; font: 22px/1 Georgia, serif; }
.card.back { background: #482624; border: 1px solid #b28268; background-image: repeating-linear-gradient(45deg,#5a2c29 0px 1px, transparent 1px 4px), repeating-linear-gradient(-45deg,#703f37 0px 1px, transparent 1px 4px); }
.card.back::after { content: ""; position: absolute; inset: 2px; border: 1px solid #d3a47787; border-radius: 3px; }

.opponents { position: absolute; inset: 0; z-index: 2; pointer-events: none; }
.seat { display: flex; flex-direction: column; align-items: center; justify-content: center; width: 122px; position: absolute; top: var(--y); left: var(--x); transform: translate(-50%, -50%); gap: 0; }
.seat-id { position: relative; display: flex; gap: 8px; align-items: center; width: 100%; min-width: 0; padding: 5px 7px 5px 5px; border: 1px solid #4b5b4e; border-radius: 10px; color: #f3eee3; background: linear-gradient(135deg, #23302a, #151d19); box-shadow: 0 6px 14px #0008; }
.seat.is-active .seat-id, .player.is-active .seat-id { border-color: #dabb7e; box-shadow: 0 0 0 2px #dabb7e24, 0 5px 13px #0008; }
.seat.is-winner .seat-id, .player.is-winner .seat-id { border-color: #be9a61; }
.seat.is-out .seat-id { opacity: .62; }
.seat.is-folded .seat-id { opacity: .75; }
.avatar { flex: none; width: 37px; height: 37px; border: 1px solid #84927a35; border-radius: 7px; background-color: #48544d; background-image: url("/assets/avatars.jpg"); background-size: 300% 300%; background-position: var(--avatar-x) var(--avatar-y); box-shadow: inset 0 0 0 1px #0003; }
.identity { display: grid; gap: 3px; min-width: 0; text-align: left; }
.seat-name { overflow: hidden; font-size: 12px; color: #eae7db; font-weight: 600; line-height: 1.1; text-overflow: ellipsis; white-space: nowrap; }
.stack { font-size: 12px; color: #c4cebf; font-weight: 500; line-height: 1.1; white-space: nowrap; }
.positions { position: absolute; right: -7px; top: -8px; display: flex; gap: 2px; }
.position { display: inline-grid; place-items: center; min-width: 18px; height: 18px; padding: 0 3px; border-radius: 50%; color: #382917; border: 1px solid #d9b77e; background: #efcf9a; font-size: 8px; font-weight: 700; }
.position.blind { color: #dfe7d9; border-color: #677f70; background: #354b3d; }
.opponent-cards { height: 27px; display: flex; align-items: center; justify-content: center; margin: 0 0 -2px; z-index: 1; }
.opponent-cards .card { width: 23px; height: 30px; border-radius: 4px; }
.opponent-cards .card + .card { margin-left: 1px; }
.opponent-cards .back:first-child { transform: rotate(-10deg) translateY(3px); }
.opponent-cards .back + .back { transform: rotate(10deg) translateY(3px); margin-left: -4px; }
.opponent-cards .card b { font-size: 11px; top: 2px; left: 3px; }
.opponent-cards .card .pip { font-size: 15px; top: 66%; }
.opponent-cards .pip-small { display: none; }
.seat-note { position: absolute; top: calc(100% + 5px); left: 50%; transform: translateX(-50%); white-space: nowrap; color: #d8d7c6; background: #182a22e8; border: 1px solid #526554; padding: 1px 7px 2px; border-radius: 9px; line-height: 1.25; font-size: 10px; }
.is-active .seat-note { color: #f4d8a4; border-color: #9b8056; background: #362b19; }
.is-folded .seat-note, .is-out .seat-note { color: #bdc8bb; }
.player { display: flex; flex-direction: column; align-items: center; position: absolute; bottom: 4.4%; left: 50%; transform: translateX(-50%); z-index: 3; }
.player-cards { display: flex; align-items: center; justify-content: center; height: 48px; margin-bottom: -2px; z-index: 1; }
.player-cards .card { width: 43px; height: 57px; border-radius: 6px; }
.player-cards .card:first-child { transform: rotate(-8deg) translateY(1px); }
.player-cards .card + .card { transform: rotate(7deg) translateY(1px); margin-left: -2px; }
.player-cards .card b { font-size: 18px; left: 5px; top: 4px; }
.player-cards .pip { font-size: 26px; top: 57%; }
.player-cards .pip-small { right: 3px; bottom: 2px; font-size: 8px; }
.player .seat-id { min-width: 125px; width: auto; }
.player .avatar { width: 31px; height: 31px; }
.player .seat-note { position: static; transform: none; margin-top: 4px; }

.controls { min-height: 102px; display: flex; align-items: center; justify-content: space-between; gap: 13px 19px; flex-wrap: wrap; padding: 17px 18px; border-top: 1px solid #2d3b31; background: linear-gradient(110deg, #141f1b, #17231e); }
.turn-heading { min-width: 112px; color: #e9e9da; }
.turn-heading strong { display: block; font-size: 15px; line-height: 1.4; font-weight: 600; }
.turn-heading small { display: block; font-size: 12px; color: var(--muted); margin-top: 4px; line-height: 1.5; }
.turn-heading.is-active strong { color: var(--gold); }
.action-set { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.primary, .action-button { min-height: 40px; text-align: center; white-space: nowrap; border: 1px solid transparent; border-radius: 8px; padding: 8px 15px; font-weight: 600; }
.primary { color: #281f11; background: linear-gradient(165deg, #f3d39a, #ddb274); box-shadow: 0 4px 13px #0b0d0861, inset 0 1px 0 #fff1c950; }
.primary:hover:not(:disabled) { background: #f4d49c; }
.primary:disabled { opacity: .55; }
.main-action { padding-left: 20px; padding-right: 20px; font-size: 14px; }
.main-action .arrow { padding-left: 13px; font-size: 18px; line-height: 0; }
.action-button { color: #dedfce; background: #262e28; border-color: #49564a; }
.action-button:hover:not(:disabled) { filter: brightness(1.17); }
.action-button.discard { border-color: #61463f; background: #352621; color: #ecc6b7; }
.action-button.match { border-color: #527259; background: #2c4637; color: #dcf0db; }
.action-button.allin { border-color: #8b6b4b; background: #3b3023; color: #f4d29b; }
.action-set button:disabled { opacity: .55; }
.raise-box { width: 100%; display: grid; grid-template-columns: minmax(105px, 1fr) minmax(125px, 1.4fr) auto; gap: 8px 12px; align-items: center; padding: 9px 10px; border: 1px solid #566552; border-radius: 9px; background: #0f1915; }
.raise-box label { color: #d3daca; font-size: 12px; }
.raise-box input[type=number] { width: 74px; background: #1a2821; border: 1px solid #495c4c; color: var(--text); border-radius: 5px; margin-left: 6px; padding: 5px 6px; }
.raise-box input[type=range] { width: 100%; accent-color: var(--gold); }
.raise-box .primary { min-height: 33px; }
.raise-presets { display: flex; gap: 6px; grid-column: 1 / -1; }
.small-button { padding: 4px 8px; font-size: 11px; border-radius: 5px; }
.inline-error { flex: 0 0 100%; margin: 0; color: #f0b59e; font-size: 12px; }

.sidebar { display: grid; align-content: start; gap: 14px; min-width: 0; }
.side-panel { border: 1px solid var(--stroke); border-radius: 13px; background: linear-gradient(158deg, #1a2520, #141d19 71%); box-shadow: 0 9px 30px #0002; overflow: hidden; }
.settings { padding: 19px 17px 17px; }
h2 { margin: 0; font-size: 17px; font-weight: 600; line-height: 1.4; letter-spacing: .015em; }
.settings h2 { margin-bottom: 17px; }
.settings fieldset { padding: 0; margin: 0 0 15px; border: 0; min-width: 0; }
.settings legend { padding: 0; margin: 0 0 8px; color: #d6dbce; font-size: 12px; font-weight: 500; }
.count-grid { display: grid; gap: 4px; grid-template-columns: repeat(8,minmax(0,1fr)); }
.count-grid button { aspect-ratio: 1 / 1; min-width: 0; border: 1px solid #394a40; border-radius: 6px; background: #111c17; color: #c3cec2; padding: 3px 1px; font-size: 13px; }
.count-grid button:hover { background: #27372d; }
.count-grid button[aria-pressed=true] { color: #f5d8a6; border-color: #ad8d5d; background: #393021; font-weight: 600; }
.mode-list { display: grid; gap: 6px; }
.mode-choice { min-width: 0; display: flex; align-items: center; gap: 9px; border: 1px solid #394a42; background: #111b17; color: var(--text); padding: 8px 9px; border-radius: 8px; width: 100%; text-align: left; }
.mode-choice:hover { background: #24332a; }
.mode-choice[aria-pressed=true] { border-color: #76916f; background: #25372b; }
.mode-icon { color: #dcb781; border: 1px solid #516150; background: #242d24; display: inline-grid; place-items: center; width: 29px; height: 29px; border-radius: 6px; flex: none; font-size: 16px; }
.mode-icon.mcp { font-size: 15px; }
.mode-choice b { display: block; font-size: 13px; font-weight: 550; line-height: 1.25; }
.mode-choice small { display: block; color: var(--muted); font-size: 11px; line-height: 1.35; margin-top: 3px; }
.agent-status { margin: 7px 0 0; color: #becbb8; font-size: 11px; line-height: 1.45; }
.agent-status button { margin-left: 4px; color: #e7ce9e; }
.radio-mark { display: grid; place-items: center; flex: none; width: 12px; height: 12px; border: 1px solid #667a6c; border-radius: 50%; margin-left: auto; }
.mode-choice[aria-pressed=true] .radio-mark { border-color: #b8d3ab; background: radial-gradient(circle,#c2d9b3 0 3px, transparent 3.5px); }
.setting-line { display: flex; justify-content: space-between; align-items: center; gap: 7px; border-top: 1px solid #324039; padding-top: 9px; margin-top: 10px; color: var(--muted); font-size: 12px; }
.setting-line strong { color: #e8e5d8; font-weight: 550; }
.setting-line select { color: #f0eadc; border: 1px solid #475a4b; border-radius: 6px; padding: 5px 6px; background: #131e17; }
.agents-card { padding: 15px 17px; display: grid; grid-template-columns: 32px 1fr auto; gap: 9px; align-items: center; }
.agents-card strong { display: block; color: #dfdfcf; font-size: 13px; font-weight: 600; }
.agents-card small { color: var(--muted); font-size: 11px; display: block; margin-top: 4px; line-height: 1.45; }
.agents-card .text-button { justify-self: end; }

.history-panel { min-height: 336px; }
.history-heading { padding: 15px 16px 13px; display: flex; justify-content: space-between; align-items: center; border-bottom: 1px solid #293a31; }
.history-heading small { color: var(--muted); font-size: 11px; }
.history { list-style: none; min-height: 230px; max-height: 365px; overflow: auto; scrollbar-width: thin; scrollbar-color: #536955 transparent; padding: 0 16px; margin: 0; }
.history li { white-space: normal; overflow-wrap: anywhere; font-size: 12px; color: #c2cbc0; padding: 8px 0; border-bottom: 1px solid #38483b7a; line-height: 1.5; }
.history li:last-child { border-bottom: 0; }
.history li b { color: #e7e6d8; margin-right: 4px; font-weight: 600; }
.history .street-row { color: #aac4ad; }
.history .settled-row { color: #f2cc91; }
.history .action-label { float: right; color: #e5d3b0; margin-left: 6px; }
.result-list { padding: 11px 15px 14px; }
.result-list h2 { margin-bottom: 8px; font-size: 14px; }
.result-list p { display: flex; justify-content: space-between; gap: 8px; font-size: 12px; margin: 5px 0; color: var(--muted); }
.result-list strong { color: #efd19e; font-weight: 550; text-align: right; }

.room-footer { color: #a3afa1; display: flex; gap: 14px; justify-content: space-between; align-items: center; margin-top: 15px; font-size: 11px; }
.footer-actions { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: 5px 12px; }
.foot-suits { color: #9b8a69; letter-spacing: .11em; padding-right: 6px; }
.access-page { display: grid; place-items: center; min-height: 100vh; padding: 20px; }
.access-card { width: min(440px, 100%); padding: 28px; border: 1px solid #4a5a4c; border-radius: 14px; background: #192620; box-shadow: 0 18px 70px #070d09aa; }
.access-card .brand { color: #e8c58c; font-size: 24px; }
.access-top { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.language-links { display: inline-flex; align-items: center; gap: 3px; flex: none; font-size: 12px; }
.language-links a { color: var(--muted); padding: 5px 7px; text-decoration: none; border-radius: 5px; }
.language-links a:hover, .language-links a:focus-visible { color: var(--text); text-decoration: underline; }
.language-links a[aria-current] { color: var(--gold); background: #2c3022; }
.account-name { color: var(--muted); overflow-wrap: anywhere; }
.footer-actions a.text-button, a[data-review-language] { text-decoration: none; }
.access-card h1 { margin: 21px 0 12px; font: 600 24px/1.25 var(--sans); letter-spacing: 0; }
.access-card p { margin: 10px 0 14px; color: #cfdbce; line-height: 1.55; font-size: 13px; }
.access-card .access-error { color: #f2b59c; }
.access-card form, .access-card label { display: grid; gap: 7px; }
.access-card form { gap: 14px; }
.access-card label { font-size: 13px; }
.access-card input { width: 100%; padding: 9px; border: 1px solid #59705e; border-radius: 6px; background: #121b17; color: var(--text); }
.access-card button { margin-top: 2px; }
.access-link { display: inline-block; margin-top: 14px; color: #e8c58c; font-size: 13px; text-underline-offset: 3px; }
.access-links { display: flex; flex-wrap: wrap; gap: 0 16px; }
.access-invite { border: 1px solid #4a5a4c; border-radius: 8px; padding: 12px; margin-bottom: 18px; overflow-wrap: anywhere; }
.access-invite h2 { margin: 0 0 8px; font-size: 15px; }
.access-invite .access-link { margin-top: 0; }
.access-qr { display: block; max-width: 100%; width: 216px; height: auto; margin: 10px auto; border-radius: 5px; }
.access-seed { display: block; margin: 0 0 14px; overflow-wrap: anywhere; text-align: center; font-size: 11px; color: #c6d9c8; user-select: all; }
.dialog { border: 1px solid #4b5c4e; background: #1a2520; color: var(--text); border-radius: 15px; width: min(520px,calc(100% - 30px)); max-height: 85vh; padding: 18px 20px; box-shadow: 0 22px 90px #000b; }
.dialog::backdrop { background: #090e0bd4; backdrop-filter: blur(3px); }
.dialog-heading { display: flex; justify-content: space-between; gap: 10px; align-items: center; margin-bottom: 14px; }
.dialog-heading h2 { font-size: 20px; }
.dialog h3 { margin: 0 0 4px; font-size: 13px; color: #eed7ac; font-weight: 600; }
.rules-grid { display: grid; gap: 12px; }
.rules-grid p, .dialog-note, .connection-body p { margin: 0; color: #bac8bb; font-size: 13px; line-height: 1.65; }
.dialog-note { margin-top: 13px; }
.dialog-actions { display: flex; gap: 9px; flex-wrap: wrap; justify-content: flex-end; margin-top: 14px; }
.compact-dialog { max-width: 420px; }
.endpoint { margin: 11px 0; padding: 8px 9px; border: 1px solid #4b6051; background: #101b15; border-radius: 7px; display: flex; justify-content: space-between; gap: 8px; align-items: center; }
.endpoint code { color: #dcdece; overflow-wrap: anywhere; min-width: 0; font-size: 11px; }
.connection-seats { display: grid; gap: 4px; padding: 0; margin: 9px 0 0; list-style: none; }
.connection-seats li { display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid #3d4f44; gap: 12px; padding: 5px 1px; color: #d9dacd; }
.connection-seats li:last-child { border-bottom: 0; }
.copy-status { color: var(--green); margin: 8px 0 0; font-size: 12px; min-height: 0; }
.copy-status:empty { display: none; }
.toast { position: fixed; z-index: 8; right: 16px; bottom: 16px; max-width: calc(100% - 32px); background: #293b2f; color: #e5ecdf; border: 1px solid #5b785f; padding: 10px 15px; border-radius: 8px; box-shadow: 0 7px 23px #0006; }

@media (max-width: 1180px) {
  .room, .topbar-inner { padding-left: 25px; padding-right: 25px; }
  .room-grid { grid-template-columns: minmax(0,1fr) 280px; gap: 15px; }
  .stage { height: 440px; }
  .seat { width: 105px; }
  .seat-id { gap: 5px; }
  .avatar { width: 29px; height: 29px; }
  .card b { font-size: 21px; }
  .card .pip { font-size: 30px; }
}

@media (max-width: 900px) {
  .room-grid { grid-template-columns: minmax(0, 1fr); }
  .stage { height: clamp(410px, 62vw, 530px); }
  .sidebar { grid-template-columns: 1.14fr 1fr; align-items: start; }
  .side-panel:only-child { grid-column: 1 / -1; }
  .seat { width: 108px; }
  .avatar { width: 31px; height: 31px; }
  .card { width: clamp(46px, 8vw, 66px); height: clamp(65px, 10vw, 88px); }
  .history { max-height: 280px; }
}

@media (max-width: 560px) {
  .room, .topbar-inner { padding-left: 13px; padding-right: 13px; }
  .topbar { height: 55px; }
  .brand { font-size: 24px; gap: 7px; }
  .brand-icon { width: 28px; height: 28px; border-radius: 7px; font-size: 20px; }
  .top-actions { gap: 7px; }
  .top-button { padding: 6px 7px; gap: 4px; }
  .play-chips { font-size: 10px; }
  .chip-tiny { width: 7px; height: 7px; }
  .room { padding-top: 23px; }
  .room-heading { margin-bottom: 14px; }
  h1 { font-size: clamp(43px, 11vw, 60px); }
  .stage { height: 405px; }
  .stage-meta { top: 10px; left: 9px; right: 9px; }
  .hand-meta, .blind-meta { font-size: 10px; }
  .hand-meta { padding: 4px 6px; }
  .table-rail { inset: 19% 5% 17%; padding: 6px; border-radius: 40% / 52%; }
  .table-center { width: 92%; top: 46.5%; gap: 7px; }
  .board { gap: 5px; }
  .card { width: clamp(37px, 10vw, 48px); height: clamp(52px, 14vw, 67px); border-radius: 5px; }
  .card b { left: 4px; top: 3px; font-size: 17px; }
  .card .pip { font-size: 25px; top: 57%; }
  .card .pip-small { right: 3px; bottom: 2px; font-size: 8px; }
  .seat { width: 69px; left: var(--mx); top: var(--my); }
  .seat-id { border-radius: 6px; padding: 3px; gap: 3px; }
  .avatar { width: 20px; height: 22px; border-radius: 4px; }
  .seat-name, .stack, .seat-note { font-size: 9px; }
  .seat-note { top: calc(100% + 2px); padding: 1px 4px; }
  .position { height: 13px; min-width: 13px; font-size: 7px; padding: 0 1px; }
  .positions { right: -4px; top: -6px; }
  .opponent-cards { height: 20px; }
  .opponent-cards .card { width: 17px; height: 23px; }
  .opponent-cards .card b { font-size: 9px; }
  .opponent-cards .card .pip { font-size: 11px; }
  .player .seat-id { min-width: 91px; gap: 5px; }
  .player .avatar { width: 27px; height: 27px; }
  .player .seat-name, .player .stack { font-size: 11px; }
  .player .player-cards { height: 43px; }
  .player-cards .card { width: 36px; height: 49px; }
  .player-cards .pip { font-size: 22px; }
  .player-cards .card b { font-size: 16px; }
  .pot { padding: 5px 8px; font-size: 11px; }
  .pot strong { font-size: 12px; }
  .controls { padding: 11px; min-height: 94px; gap: 9px; }
  .turn-heading { min-width: auto; }
  .turn-heading strong { font-size: 13px; }
  .turn-heading small { font-size: 11px; }
  .action-set { gap: 5px; }
  .action-button, .primary { min-height: 34px; padding: 6px 9px; font-size: 12px; }
  .raise-box { grid-template-columns: minmax(104px, 1fr) minmax(72px, .8fr) auto; gap: 6px; padding: 7px; }
  .raise-box input[type=number] { width: 62px; }
  .sidebar { grid-template-columns: minmax(0,1fr); }
  .settings { padding: 14px; }
  .count-grid button { aspect-ratio: auto; min-height: 33px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
}

.voice-toggle[aria-pressed=true] { color: #cce7cd; background: #244233; border-color: #557f63; }
.voice-toggle span { color: var(--gold); font-size: 14px; line-height: 1; min-width: 13px; text-align: center; }
.seat-settings { max-height: 262px; overflow: auto; scrollbar-width: thin; }
.seat-settings label { display: flex; justify-content: space-between; align-items: center; gap: 6px; padding: 5px 1px; border-bottom: 1px solid #324039; }
.seat-settings label:last-child { border-bottom: 0; }
.seat-choice-name { display: inline-flex; gap: 7px; align-items: center; color: #e4e4d6; font-size: 12px; min-width: 0; }
.seat-settings .avatar { width: 23px; height: 23px; border-radius: 5px; }
.seat-settings select { width: 117px; max-width: 57%; background: #131e17; color: #e5e8d7; border: 1px solid #475a4b; border-radius: 6px; padding: 4px 6px; font-size: 11px; }
.setting-line input[type="checkbox"] { accent-color: #9fc69e; width: 15px; height: 15px; }
.source { color: #bfc9a2; font-size: 10px; padding: 1px 4px; border: 1px solid #516342; border-radius: 4px; }
#raise-extra { color: #e6d6ab; align-self: center; margin-left: auto; font-size: 11px; }
.rebuy-actions .primary { min-width: 81px; }

.review-dialog { width: min(760px, calc(100% - 28px)); padding: 0; }
.review-dialog[open] { display: flex; flex-direction: column; }
.review-dialog > .dialog-heading { padding: 17px 21px 13px; margin: 0; border-bottom: 1px solid #354739; }
.review-body { min-height: 0; padding: 13px 21px 22px; overflow: auto; }
.review-body h3 { margin: 0; }
.review-nav { display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; }
.review-start { display: grid; grid-template-columns: auto minmax(0,1fr) auto; gap: 13px; align-items: center; border: 1px solid #64775c; border-radius: 10px; background: radial-gradient(ellipse at 14% 30%, #344a32, #26352c 63%, #1d2d24); padding: 14px; margin: 10px 0 13px; }
.review-start small { color: #c2c9b5; font-size: 11px; }
.review-start h3 { color: #f3d8a8; font-size: 17px; margin-top: 4px; }
.review-start p { color: #d8ddcc; font-size: 12px; line-height: 1.6; margin: 4px 0 0; }
.review-cards { display: inline-flex; gap: 4px; align-items: center; }
.review-cards .card, .saved-hand .card { width: 31px; height: 43px; border-radius: 5px; }
.review-cards .card b, .saved-hand .card b { top: 3px; left: 4px; font-size: 13px; }
.review-cards .card .pip, .saved-hand .card .pip { top: 61%; font-size: 20px; }
.review-cards .card .pip-small, .saved-hand .card .pip-small { font-size: 7px; right: 2px; bottom: 2px; }
.hero-cards .card { width: 40px; height: 55px; }
.hero-cards .card b { font-size: 17px; }
.hero-cards .card .pip { font-size: 25px; }
.review-tabs { justify-content: start; gap: 6px; }
.review-tabs button[aria-pressed=true] { color: #f5d9a5; border-color: #96794b; background: #3f3523; }
.review-perspective { display: flex; flex-wrap: wrap; gap: 6px; padding: 8px 21px; border-bottom: 1px solid #354739; }
.review-method { color: #aebdad; font-size: 12px; line-height: 1.5; margin: 10px 0 12px; }
.review-steps { display: grid; gap: 7px; }
.review-step { border: 1px solid #34483b; border-radius: 8px; background: #17211c; padding: 10px 12px; scroll-margin-top: 10px; }
.review-step:focus { outline: 2px solid #ac8d55; outline-offset: 2px; }
.review-step.your-decision { border-color: #6b7960; border-left: 3px solid #b9bb87; background: #26332a; }
.review-step-heading { display: flex; justify-content: space-between; align-items: center; gap: 7px; }
.review-step-heading h3 { color: #eee9d7; font-size: 13px; }
.review-step p, .review-result p { color: #d4ddd0; font-size: 12px; line-height: 1.55; margin: 4px 0 0; }
.review-step strong { color: #eee7ce; font-weight: 600; }
.review-step .review-numbers { color: #b0bfb1; font-size: 11px; }
.review-step .review-read { color: #c4d2bf; }
.review-decision-note { margin: 7px 0; padding: 6px 9px; border-left: 2px solid #b99d64; background: #2c3427; font-size: 12px; overflow-wrap: anywhere; }
.review-decision-note p { margin-top: 3px; }
.verdict { font-size: 11px; line-height: 1.35; padding: 2px 7px; border-radius: 4px; background: #293a32; color: #bdcebf; white-space: nowrap; border: 1px solid #5d725f; }
.verdict.good { color: #c1e5bd; border-color: #649768; background: #2a4330; }
.verdict.borderline { color: #f1dbad; border-color: #a28854; background: #453723; }
.verdict.improve { color: #f2c5b4; border-color: #a47a67; background: #483126; }
.review-steps .review-opening, .review-street h3 { color: #edcd97; font-size: 13px; letter-spacing: .035em; }
.review-steps .review-opening { margin-top: 2px; padding-bottom: 6px; border-bottom: 1px solid #51624a; }
.review-street { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; margin-top: 6px; padding: 8px 2px 9px; border-bottom: 1px solid #51624a; }
.review-street > span { margin-left: auto; color: #b1c2b3; font-size: 11px; }
.review-result { border-top: 1px solid #53654e; margin-top: 14px; padding-top: 13px; }
.review-payout { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 7px; margin-top: 5px; }
.review-payout .card { box-shadow: 0 0 0 1px #c9a267; }
.net { color: #d8ded1; font-size: 13px; font-weight: 600; white-space: nowrap; }
.net.gain { color: #bde4bb; }
.net.loss { color: #f0bfae; }
.saved-hands { display: grid; gap: 6px; }
.saved-hand { display: grid; grid-template-columns: 1fr minmax(75px, 1fr) auto auto; align-items: center; gap: 8px; text-align: left; border: 1px solid #44584a; border-radius: 8px; padding: 8px 10px; color: #ebe9d9; background: #18231d; }
.saved-hand:hover { background: #2a3b2e; }
.saved-hand .card { vertical-align: middle; margin-right: 3px; }

@media (max-width: 560px) {
  .top-actions .play-chips { display: none; }
  .voice-toggle { font-size: 11px; }
  .review-dialog > .dialog-heading, .review-body, .review-perspective { padding-left: 12px; padding-right: 12px; }
  .review-start { grid-template-columns: auto minmax(0, 1fr); gap: 6px 10px; padding: 10px; }
  .review-start > .net { grid-column: 2; }
}

.review-dialog { width: min(820px, calc(100% - 24px)); }
.review-toolbar-wrap { padding: 9px 21px; border-bottom: 1px solid #3c4f40; background: #1e3026; }
.review-toolbar-wrap { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 7px; }
.review-header-actions { display: flex; align-items: center; gap: 8px; }
.coach-controls { display: flex; align-items: center; flex-wrap: wrap; gap: 7px 10px; }
.coach-controls .primary { min-height: 33px; padding: 6px 11px; font-size: 12px; }
.coach-playing { color: #ceddca; font-size: 12px; }
.coach-status { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; color: #dddec8; font-size: 12px; margin: 0; min-height: 25px; }
.coach-spinner { flex: none; width: 12px; height: 12px; border-radius: 50%; border: 1px solid #566c5c; border-top-color: #efd19e; animation: coach-spin 1s linear infinite; }
@keyframes coach-spin { to { transform: rotate(360deg); } }
.review-glossary { display: flex; justify-content: space-between; gap: 10px; align-items: flex-start; padding: 9px 21px; border-bottom: 1px solid #6f6242; background: #342f21; }
.review-glossary strong { color: #f2d19b; font-size: 13px; }
.review-glossary p { margin: 3px 0 0; font-size: 12px; line-height: 1.45; color: #e2dcce; }
.glossary-select, .rival-select { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; color: #ced8c8; }
.glossary-select select, .rival-select select { color: #f0eadc; border: 1px solid #566857; border-radius: 5px; padding: 4px 6px; background: #18241c; }
.term { display: inline; padding: 0; border: 0; background: transparent; color: inherit; font: inherit; line-height: inherit; text-decoration: underline dotted #c4a275; text-underline-offset: .22em; }
.term:hover { color: #ffe2a8; }
.equity-panel { margin: 11px 0 15px; padding: 12px; border: 1px solid #536b58; border-radius: 9px; background: #16241d; }
.equity-panel h3 { color: #f1d6a2; }
.equity-panel .review-method { margin: 5px 0 8px; }
.equity-scroll { overflow-x: auto; scrollbar-width: thin; }
.equity-table { width: 100%; min-width: 410px; border-collapse: collapse; color: #e9e8d8; font-size: 12px; font-variant-numeric: tabular-nums; }
.equity-table thead { color: #e6d6b5; }
.equity-table th, .equity-table td { padding: 6px; text-align: center; font-weight: 500; border-bottom: 1px solid #304536; }
.equity-table th:first-child { width: 34%; text-align: left; }
.equity-table tbody tr:last-child > * { border-bottom: 0; }
.equity-table th small, .equity-delta { display: block; margin-top: 2px; color: #a7b5a5; font-size: 10px; white-space: nowrap; }
.equity-table .equity-player { background: #2b3d2d; }
.equity-table .equity-player th { color: #f4d9a5; }
.equity-table .unrecorded { color: #aebbb3; font-size: 10px; white-space: nowrap; }
.equity-cards, .inline-cards { display: inline-flex; gap: 3px; vertical-align: middle; }
.equity-cards { margin-left: 6px; }
.equity-cards .card, .inline-cards .card { width: 24px; height: 31px; border-radius: 4px; box-shadow: none; }
.equity-cards .card b, .inline-cards .card b { font-size: 12px; top: 3px; left: 3px; }
.equity-cards .card .pip, .inline-cards .card .pip { font-size: 15px; top: 66%; }
.equity-cards .card .pip-small, .inline-cards .card .pip-small { display: none; }
.equity-delta.gain { color: #b7dbb0; }
.equity-delta.loss { color: #ebc0ac; }
.equity-pocket, .equity-starting { display: flex; align-items: center; gap: 5px; flex-wrap: wrap; }
.equity-starting { margin-top: 4px; color: #c1cdbd; font-size: 10px; }
.review-start .starting-link { margin-top: 5px; }
.starting-link { display: inline-flex; gap: 4px; align-items: center; padding: 2px 5px; border: 1px solid #607557; border-radius: 4px; background: #223629; color: #ecdcaf; font-size: 11px; white-space: nowrap; }
.starting-link:hover { border-color: #bfa87d; background: #344836; }
.starting-link span { color: #ccdcc7; font-variant-numeric: tabular-nums; }
.review-guide-button { white-space: nowrap; }
.voice-speed { display: inline-flex; align-items: center; gap: 5px; color: #d1dbcc; font-size: 12px; white-space: nowrap; }
.voice-speed select { padding: 5px 4px; border: 1px solid #536556; border-radius: 5px; background: #18241c; color: #f0eadc; font-variant-numeric: tabular-nums; }
.live-coach { min-width: 0; padding: 12px; border: 1px solid #34483e; border-radius: 14px; background: #17251e; }
.live-coach.is-coaching { border-top-color: #57704f; }
.live-coach-heading, .live-coach-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 6px 8px; }
.live-coach-heading { justify-content: space-between; }
.live-coach-heading h2 { color: #f1d8a8; font-size: 14px; }
.live-coach-actions button[aria-pressed=true] { border-color: #77976e; background: #2c4533; color: #e0f0dc; }
.coach-stage { position: relative; margin-top: 9px; overflow: hidden; aspect-ratio: 16 / 10; border-radius: 9px; border: 1px solid #425746; background: radial-gradient(ellipse at 50% 39%, #364839, #19291f 72%, #122019); isolation: isolate; }
.coach-stage[data-framing=full] { aspect-ratio: 2 / 3; background: #1b261d; }
.coach-portrait { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center top; transform: scale(1.16); transform-origin: top center; }
.coach-stage[data-framing=full] .coach-portrait { object-fit: contain; transform: none; }
.coach-stage-status { position: absolute; left: 8px; bottom: 8px; margin: 0; border-radius: 5px; padding: 3px 7px; background: #142019d9; color: #cbd9c8; font-size: 11px; pointer-events: none; }
.coach-stage-status:empty { display: none; }
.coach-framing { position: absolute; bottom: 8px; right: 8px; background: #18251eed; border-color: #67836b; font-size: 11px; }
.coach-selects { display: grid; gap: 6px; padding: 9px 0; border-bottom: 1px solid #34453a; color: #c8d4c8; font-size: 12px; }
.coach-selects label { display: grid; grid-template-columns: 78px minmax(0,1fr); gap: 7px; align-items: center; }
.coach-selects select, .coach-question input { width: 100%; min-width: 0; padding: 5px 7px; border: 1px solid #52695a; border-radius: 6px; background: #102019; color: var(--text); font: inherit; }
.coach-conversation { max-height: 166px; margin-top: 8px; overflow: auto; scrollbar-width: thin; }
.coach-turn { padding: 5px 8px; border-left: 2px solid #718364; background: #203329; border-radius: 3px; font-size: 12px; line-height: 1.5; overflow-wrap: anywhere; }
.coach-turn + .coach-turn { margin-top: 6px; }
.coach-turn p { margin: 2px 0; color: #e0eade; }
.coach-turn p:first-child { color: #c5cabb; }
.coach-question { display: flex; gap: 5px; margin-top: 8px; align-items: stretch; }
.coach-question input { flex: 1 1 auto; font-size: 12px; }
.coach-question button { padding-inline: 6px; white-space: nowrap; }
.coach-question button[aria-pressed=true] { border-color: #bb815f; color: #fff0dc; }
.coach-question-status { margin: 6px 0 0; color: #b9cbb9; font-size: 11px; }
.coach-question-status.inline-error { color: #f0b59e; }
.coach-question-status:empty { display: none; }
.live-coach-status { margin: 6px 0 0; color: #b8c7b7; font-size: 11px; }
.live-coach-status.inline-error { color: #f0b59e; }
.live-coach-status:empty { display: none; }
.live-coach-strength { margin-top: 8px; padding: 8px 10px; border: 1px solid #4c624d; border-radius: 6px; background: #233629; }
.live-coach-strength-head { display: flex; align-items: baseline; flex-wrap: wrap; gap: 3px 9px; font-size: 12px; color: #c7d6c3; }
.live-coach-strength-head h3 { margin: 0; color: #f1d8a8; font-size: 12px; }
.live-coach-strength-head strong { color: #eef1dc; }
.live-coach-strength-read { margin: 5px 0 0; color: #dce5d7; font-size: 13px; line-height: 1.55; }
.live-coach-detail { padding-top: 6px; }
.live-coach-detail strong { color: #f1d7aa; font-size: 14px; }
.live-coach-detail p { margin: 3px 0 0; color: #dce5d7; font-size: 13px; line-height: 1.55; }
.live-coach-detail .live-coach-read { color: #becfc0; }
.live-coach > .live-coach-actions button:not([hidden]) { margin-top: 7px; }
.starting-guide { width: min(650px, calc(100% - 24px)); padding: 16px 18px; max-height: min(90vh, 90dvh); }
.starting-guide .dialog-heading { margin-bottom: 10px; }
.starting-modes, .starting-key { display: flex; flex-wrap: wrap; align-items: center; gap: 5px; }
.starting-modes button { padding: 6px 8px; font-size: 12px; }
.starting-modes button[aria-pressed=true] { color: #f6deaf; border-color: #a48a5c; background: #3c3324; }
.starting-guide p { margin: 7px 0; color: #c6d0bf; font-size: 12px; line-height: 1.5; }
.starting-key { padding: 0; margin: 7px 0; list-style: none; }
.starting-guide .starting-notation { color: #dddecc; }
.starting-notation span { margin: 0 2px; color: #91a48f; }
.starting-detail { min-height: 66px; margin: 8px 0; padding: 8px 10px; border: 1px solid #596c54; border-radius: 6px; background: #23342a; }
.starting-detail-head { display: flex; align-items: center; flex-wrap: wrap; gap: 6px 9px; color: #dddac7; font-size: 12px; }
.starting-detail-head strong { color: #f2d4a1; font-size: 15px; }
.starting-detail p { margin: 4px 0 0; }
.heat-swatch { display: inline-block; padding: 2px 5px; border-radius: 3px; font-size: 11px; line-height: 1.35; background: var(--heat-color); color: var(--heat-text); }
.heat-1 { --heat-color: #eecf89; --heat-text: #2d220e; }
.heat-2 { --heat-color: #b8bd7e; --heat-text: #242712; }
.heat-3 { --heat-color: #7fa576; --heat-text: #142716; }
.heat-4 { --heat-color: #4c806c; --heat-text: #fcfff6; }
.heat-5 { --heat-color: #35635e; --heat-text: #f2fcf6; }
.heat-6 { --heat-color: #284652; --heat-text: #e9f5f7; }
.starting-grid { width: 100%; table-layout: fixed; border-collapse: separate; border-spacing: 2px; }
.starting-grid th, .starting-grid td { padding: 0; text-align: center; }
.starting-grid th { color: #bcc8b9; font-size: 11px; font-weight: 600; }
.starting-grid button { width: 100%; aspect-ratio: 1.28; border: 0; border-radius: 3px; padding: 0; background: var(--heat-color); color: var(--heat-text); font-size: clamp(8px, 2.55vw, 13px); font-weight: 650; font-variant-numeric: tabular-nums; }
.starting-grid button[aria-pressed=true] { box-shadow: inset 0 0 0 2px #fff4d4; }
.starting-grid button:hover, .starting-grid button:focus-visible { outline: 2px solid #fff4d4; outline-offset: 1px; position: relative; z-index: 1; }
.starting-guide:has(.starting-grid button:focus-visible) { scroll-padding: 10px; }
.step-tools { display: flex; gap: 6px; flex-wrap: wrap; align-items: center; justify-content: flex-end; }
.clip-button { font-size: 10px; }
.review-step.is-narrating, .review-street.is-narrating { box-shadow: 0 0 0 1px #c9a36d; background: #33392b; }

@media (max-width: 560px) {
  .review-toolbar-wrap, .review-glossary { padding-left: 12px; padding-right: 12px; }
  .equity-panel { padding: 7px; }
  .equity-table { min-width: 255px; font-size: 11px; }
  .equity-table th, .equity-table td { padding: 5px 3px; }
  .equity-table th:first-child { width: 35%; }
  .equity-table th small, .equity-delta, .equity-table .unrecorded { font-size: 9px; }
  .equity-cards { margin: 0; }
  .equity-cards .card { width: 20px; height: 26px; }
  .equity-cards .card b { font-size: 10px; }
  .equity-cards .card .pip { font-size: 13px; }
  .review-step-heading { flex-wrap: wrap; }
  .starting-guide { padding: 11px 8px; }
  .starting-grid { border-spacing: 1px; }
  .review-guide-button { padding-inline: 4px; }
  .review-dialog .dialog-heading h2 { white-space: nowrap; font-size: 16px; }
  .review-header-actions { gap: 5px; }
  .glossary-select > span { display: none; }
  .glossary-select select { max-width: 84px; }
  .live-coach { padding: 10px 11px; }
  .top-actions .voice-speed span { display: none; }
}

@media (max-width: 460px) {
  .top-actions { gap: 5px; }
  .top-actions .rules-label, .top-actions .voice-toggle span, .top-actions .model-button span { display: none; }
  .top-actions .top-button { padding-inline: 5px; white-space: nowrap; }
  .topbar .brand { white-space: nowrap; }
}

@media (max-width: 350px) {
  .topbar-inner { padding-inline: 9px; }
  .topbar .brand { font-size: 21px; }
  .topbar .brand-icon { display: none; }
  .top-actions .voice-speed select { width: 51px; }
}

.model-button span { color: var(--gold); }
.model-dialog .model-intro { margin: 0 0 13px; }
.model-methods { display: grid; gap: 5px; margin: 0 0 12px; padding: 0; border: 0; }
.model-methods legend { color: #c2cec1; font-size: 12px; margin-bottom: 6px; padding: 0; }
.model-methods label { display: flex; gap: 8px; align-items: center; padding: 7px 9px; background: #15221b; border: 1px solid #405247; border-radius: 7px; cursor: pointer; }
.model-methods label:has(input:checked) { border-color: #799a76; background: #293c2e; }
.model-methods input { accent-color: #b4d4a9; }
.model-methods b, .model-fields label, .model-wait { color: #ebebd9; font-size: 12px; font-weight: 600; }
.model-methods small, .model-note { color: #aab8aa; font-size: 11px; }
.model-methods small { display: block; margin-top: 2px; }
.model-fields { display: grid; gap: 8px; }
.model-fields > label, .model-fields-row > label { display: grid; gap: 4px; min-width: 0; }
.model-fields-row { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr); gap: 8px; }
.model-fields input, .model-fields select, .model-wait input { color: #f0eadc; border: 1px solid #526856; border-radius: 6px; padding: 6px; background: #141f18; font: inherit; }
.model-fields input, .model-fields select { width: 100%; }
.model-wait { display: flex; justify-content: space-between; align-items: center; gap: 8px; margin-top: 12px; }
.model-wait input { width: 66px; }
.model-note, .model-status { margin: 0; line-height: 1.5; }
.model-status { color: #c9d2c3; font-size: 12px; margin-top: 9px; }
.model-status[data-kind="success"] { color: #b9e1b5; }
.model-status[data-kind="error"] { color: #f5c2aa; }
@media (max-width: 560px) {
  .topbar { height: auto; min-height: 55px; }
  .topbar-inner { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 6px 10px; padding-block: 7px; }
  .topbar-inner .language-links { grid-row: 1; grid-column: 2; }
  .top-actions { grid-column: 1 / -1; justify-content: flex-end; flex-wrap: wrap; }
  .top-actions .model-button span { display: none; }
  .top-actions { gap: 4px; }
  .top-actions .top-button { padding-left: 5px; padding-right: 5px; font-size: 11px; }
  .review-dialog .dialog-heading { flex-wrap: wrap; }
  .review-header-actions { flex-wrap: wrap; }
}
