:root{--tap:48px;--tap-lg:72px;--mic-size:76px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--radius-sm:6px;--radius:10px;--radius-lg:16px;--font:system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono:ui-monospace, "SF Mono", Menlo, Consolas, monospace;--text-xs:12px;--text-sm:14px;--text-md:16px;--text-lg:20px;--text-xl:28px;--text-xxl:40px;--bg:#f5f5f2;--surface:#fff;--surface-2:#ecece7;--border:#d4d4ce;--text:#17181b;--text-muted:#5d6068;--accent:#1d5fd1;--accent-text:#fff;--ok:#1f7a3a;--warn:#9a6200;--warn-bg:#fff2d6;--danger:#b3261e;--danger-bg:#fde5e2;--shadow:0 2px 10px #0000001f;--overlay:#00000073;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root{--bg:#14161a;--surface:#1e2127;--surface-2:#272b33;--border:#3a3f49;--text:#eceef2;--text-muted:#a2a8b3;--accent:#6ea0ff;--accent-text:#0d1117;--ok:#5cc27a;--warn:#f0b44c;--warn-bg:#3a2c10;--danger:#ff8a80;--danger-bg:#3d1a18;--shadow:0 2px 12px #00000080;--overlay:#0009;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*,:before,:after{box-sizing:border-box}html,body{background:var(--bg);color:var(--text);font-family:var(--font);font-size:var(--text-md);-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;margin:0}body{overscroll-behavior:none;min-height:100dvh}button,input,select,textarea{font:inherit;color:inherit}button{min-height:var(--tap);min-width:var(--tap);padding:0 var(--space-4);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);cursor:pointer;touch-action:manipulation}button:disabled{opacity:.45;cursor:not-allowed}button.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-text);font-weight:600}button.danger{color:var(--danger);border-color:var(--danger)}button.ghost{background:0 0;border-color:#0000}input,select{min-height:var(--tap);padding:0 var(--space-3);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}label{gap:var(--space-1);font-size:var(--text-sm);color:var(--text-muted);flex-direction:column;display:flex}h1,h2,h3{margin:0}.screen{min-height:100dvh;padding-bottom:env(safe-area-inset-bottom);flex-direction:column;display:flex}.screen-body{padding:var(--space-4);gap:var(--space-4);flex-direction:column;flex:1;display:flex}.row{gap:var(--space-2);flex-wrap:wrap;align-items:center;display:flex}.stack{gap:var(--space-2);flex-direction:column;display:flex}.spacer{flex:1}.muted{color:var(--text-muted)}.money{font-variant-numeric:tabular-nums}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-4)}.warning-box{background:var(--warn-bg);color:var(--warn);border-radius:var(--radius);padding:var(--space-2) var(--space-3);font-size:var(--text-sm)}.table-layout{gap:var(--space-4);padding:var(--space-3);grid-template-columns:1fr;display:grid}.player-grid,.company-grid{gap:var(--space-2);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.table-tabs{gap:var(--space-2);display:flex}.table-tabs button[aria-selected=true]{background:var(--accent);color:var(--accent-text);border-color:var(--accent)}@media (orientation:landscape) and (width>=900px){.table-layout{grid-template-columns:minmax(0,2fr) minmax(0,3fr);align-items:start}.table-tabs{display:none}.table-layout [data-pane]{display:block!important}.company-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}.sheet-backdrop{background:var(--overlay);z-index:22;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{background:var(--surface);border-radius:var(--radius-lg) var(--radius-lg) 0 0;width:100%;max-width:640px;max-height:92dvh;padding:var(--space-4);padding-bottom:calc(var(--space-4) + env(safe-area-inset-bottom));gap:var(--space-3);box-shadow:var(--shadow);flex-direction:column;display:flex;overflow-y:auto}@media (width>=900px){.sheet-backdrop{align-items:center}.sheet{border-radius:var(--radius-lg)}}.sheet-header{align-items:center;gap:var(--space-2);display:flex}.sheet-header h2{font-size:var(--text-lg);flex:1}.choice-grid{gap:var(--space-2);grid-template-columns:repeat(auto-fill,minmax(120px,1fr));display:grid}.toast{left:50%;bottom:calc(var(--space-4) + env(safe-area-inset-bottom));width:min(560px, calc(100% - 2 * var(--space-4)));background:var(--text);color:var(--bg);border-radius:var(--radius-lg);padding:var(--space-3) var(--space-4);gap:var(--space-2);box-shadow:var(--shadow);z-index:30;flex-direction:column;display:flex;position:fixed;transform:translate(-50%)}.mic-area~.toast{left:var(--space-4);right:calc(var(--mic-size) + 2 * var(--space-4));width:auto;max-width:560px;margin-inline:auto;transform:none}.sheet-backdrop~.toast{bottom:auto;top:calc(var(--space-2) + env(safe-area-inset-top))}.toast button{color:var(--bg);border-color:var(--bg);background:0 0}.check-row{align-items:center;gap:.5rem;min-height:48px;display:flex}.check-row input[type=checkbox]{width:24px;height:24px}.big{min-height:var(--tap-lg);font-size:var(--text-lg)}.label{font-size:var(--text-xs);color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;display:block}.negative{color:var(--danger)}.badge{margin-left:var(--space-1);padding:2px var(--space-2);font-size:var(--text-xs);border-radius:999px;font-weight:600;display:inline-block}.badge.danger{background:var(--danger-bg);color:var(--danger)}.badge.warn{background:var(--warn-bg);color:var(--warn)}.badge-button{font-weight:700}.badge-button.danger{background:var(--danger-bg);color:var(--danger);border-color:var(--danger)}button[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:var(--accent-text)}.topbar{z-index:10;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);padding-top:calc(var(--space-2) + env(safe-area-inset-top));background:var(--surface);border-bottom:1px solid var(--border);display:flex;position:sticky;top:0}.topbar-center{min-width:0;font-size:var(--text-lg);text-overflow:ellipsis;white-space:nowrap;flex:1;font-weight:600;overflow:hidden}.topbar-bank{flex-direction:column;align-items:flex-end;font-weight:600;display:flex}.company-badge{border-radius:var(--radius-sm);letter-spacing:.02em;white-space:nowrap;justify-content:center;align-items:center;font-weight:700;display:inline-flex}.company-badge-sm{font-size:var(--text-xs);padding:1px 6px}.company-badge-md{font-size:var(--text-sm);padding:2px 8px}.company-badge-lg{font-size:var(--text-md);padding:4px 10px}.player-tile{align-items:stretch;gap:var(--space-1);padding:var(--space-3);text-align:left;border-radius:var(--radius-lg);border-left-width:6px;flex-direction:column;min-height:120px;display:flex}.player-tile-head{align-items:center;gap:var(--space-2);display:flex}.swatch{border-radius:50%;flex:none;width:14px;height:14px}.player-name{font-weight:600;font-size:var(--text-lg);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.player-cash{font-size:var(--text-xxl);font-weight:700;line-height:1.1}.player-meta,.company-meta{font-size:var(--text-sm)}.holdings{gap:var(--space-1) var(--space-2);flex-wrap:wrap;display:flex}.holding{font-size:var(--text-sm);align-items:center;gap:4px;display:inline-flex}.company-card{align-items:stretch;gap:var(--space-2);padding:var(--space-3);text-align:left;border-radius:var(--radius-lg);flex-direction:column;display:flex}.company-card.current{outline:3px solid var(--accent);outline-offset:1px}.company-card.status-unstarted{opacity:.7}.company-card.status-receivership,.company-card.status-bankrupt{border-style:dashed;border-color:var(--danger)}.company-card.status-closed{opacity:.7;background:var(--surface-2);border-style:dotted}.company-group+.company-group{margin-top:var(--space-4)}.company-group-title{margin:0 0 var(--space-2);font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);font-weight:600}.company-card-head{justify-content:space-between;align-items:center;gap:var(--space-2);display:flex}.company-figures{gap:var(--space-2);font-size:var(--text-lg);grid-template-columns:1fr 1fr;font-weight:600;display:grid}.sheet-figure{font-size:var(--text-xl);margin:0;font-weight:700}.choice-fieldset{gap:var(--space-2);border:none;flex-direction:column;margin:0;padding:0;display:flex}.choice-fieldset legend{margin-bottom:var(--space-2);padding:0;font-weight:600}.holders{margin:0;padding:0;list-style:none}.holders li{padding:var(--space-1) 0;border-bottom:1px solid var(--border);justify-content:space-between;display:flex}.stepper-value{text-align:center;min-width:2ch;font-size:var(--text-lg);font-weight:700}.checkbox{min-height:var(--tap);flex-direction:row;align-items:center}.checkbox input{width:24px;height:24px}.keypad{gap:var(--space-2);flex-direction:column;display:flex}.keypad-display{min-height:var(--tap-lg);padding:var(--space-2) var(--space-3);font-size:var(--text-xxl);text-align:right;background:var(--surface-2);border-radius:var(--radius);font-weight:700;display:block}.keypad-grid{gap:var(--space-2);grid-template-columns:repeat(3,1fr);display:grid}.keypad-grid button{min-height:56px;font-size:var(--text-xl)}.keypad-quick{gap:var(--space-2);grid-template-columns:repeat(4,1fr);display:grid}.toast-summary{font-weight:600}.toast-warning{font-size:var(--text-sm)}.session-list{gap:var(--space-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.session-item{width:100%;padding:var(--space-2) var(--space-3);text-align:left;flex-direction:column;align-items:flex-start;gap:2px;display:flex}.session-row{align-items:stretch;gap:var(--space-2);display:flex}.session-row .session-item{flex:1;min-width:0}.session-row .danger{min-width:var(--tap);min-height:var(--tap)}.player-rows{gap:var(--space-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.player-row{grid-template-columns:var(--tap) 1fr;gap:var(--space-2);align-items:center;display:grid}.player-row input[type=color]{width:var(--tap);padding:2px}.player-row>:nth-child(3),.player-row>:nth-child(4){grid-column:1/-1}.form-grid{gap:var(--space-2);margin-bottom:var(--space-2);grid-template-columns:repeat(auto-fit,minmax(120px,1fr));align-items:end;display:grid}.session-name{font-size:var(--text-md)}.history-list{gap:var(--space-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.history-item{gap:var(--space-1);padding:var(--space-2) var(--space-3);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;display:flex}.history-item.status-reverted{opacity:.6}.history-item.invariant-broken{border-color:var(--danger);border-width:2px}.history-head{align-items:center;gap:var(--space-2);display:flex}.history-summary{flex-direction:column;gap:2px;font-weight:600;display:flex}.transcript{margin:0;font-style:italic}.dependents{padding-left:var(--space-4);margin:0}.field-row{justify-content:space-between;align-items:center;gap:var(--space-2);width:100%;min-height:var(--tap);display:flex}.round-controls{padding:var(--space-2) var(--space-3);flex-wrap:wrap}.payout-modes>button{flex:1}.reason{font-size:var(--text-xs);display:block}.primary.danger{background:var(--danger);border-color:var(--danger);color:#fff}.toast-flows{padding-left:var(--space-4);font-size:var(--text-sm);max-height:30vh;margin:0;overflow-y:auto}.trader-rows,.batch-rows{gap:var(--space-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.trader-row,.batch-row{gap:var(--space-2);grid-template-columns:1fr repeat(3,auto);align-items:center;display:grid}.trader-name{text-overflow:ellipsis;font-weight:600;overflow:hidden}.round-indicator{align-items:center;gap:4px;font-weight:700;display:inline-flex}.end-banner{padding:var(--space-2) var(--space-3);background:var(--warn-bg);color:var(--warn);flex-direction:column;gap:2px;font-weight:600;display:flex}.stepper-label{min-width:10ch}.market-scroll{-webkit-overflow-scrolling:touch;overflow-x:auto}.market-grid{gap:2px;min-width:max-content;display:grid}.market-track{gap:2px;display:flex}.market-cell{min-width:56px;min-height:var(--tap);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);font-size:var(--text-xs);flex-direction:column;align-items:center;gap:2px;padding:2px;display:flex}.market-cell.placeable{cursor:pointer;border-color:var(--accent)}.market-gap{min-width:56px}.market-price{font-weight:700}.market-tokens{flex-direction:column;gap:2px;display:flex}.market-token{min-height:var(--tap);min-width:var(--tap);touch-action:none;padding:2px}.zone-yellow{color:#1b1b1b;background:#fff4bf}.zone-orange{color:#1b1b1b;background:#ffd9a8}.zone-brown{color:#1b1b1b;background:#e3c3a0}.tag-par{border-color:var(--danger);border-width:2px}.tag-receivership,.tag-closed{background:repeating-linear-gradient(45deg, var(--surface-2), var(--surface-2) 6px, var(--surface) 6px, var(--surface) 12px)}.tag-top{outline:2px solid var(--warn)}.chip-strip{align-items:center;gap:var(--space-1) var(--space-2);font-size:var(--text-sm);flex-wrap:wrap;display:flex}.chip-discs{gap:var(--space-2);flex-wrap:wrap;display:inline-flex}.chip{align-items:center;gap:4px;display:inline-flex}.chip-disc{border:2px dashed #00000059;border-radius:50%;flex:none;width:20px;height:20px}.chip-text{font-weight:700}.chip-paid-with{align-items:center;gap:var(--space-1);display:inline-flex}.chip-rows{gap:var(--space-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.chip-row{grid-template-columns:var(--tap) repeat(3, minmax(0, 1fr)) var(--tap);gap:var(--space-2);align-items:end;display:grid}.chip-row input{width:100%}.mic-area{right:var(--space-4);bottom:calc(var(--space-4) + env(safe-area-inset-bottom));z-index:20;align-items:flex-end;gap:var(--space-2);flex-direction:column;max-width:min(80vw,420px);display:flex;position:fixed}.mic-button{width:var(--mic-size);height:var(--mic-size);box-shadow:var(--shadow);touch-action:none;-webkit-user-select:none;user-select:none;border-radius:50%;font-size:32px}.mic-button.listening{background:var(--danger);border-color:var(--danger);color:#fff}.mic-transcript,.mic-reason{padding:var(--space-2) var(--space-3);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);margin:0}.voice-card{left:var(--space-3);right:var(--space-3);bottom:calc(110px + env(safe-area-inset-bottom));z-index:25;gap:var(--space-2);padding:var(--space-3);background:var(--surface);border:2px solid var(--accent);border-radius:var(--radius-lg);max-height:60vh;box-shadow:var(--shadow);flex-direction:column;display:flex;position:fixed;overflow-y:auto}.voice-summary{font-size:var(--text-lg);margin:0;font-weight:700}.turn-summary{padding:var(--space-2) var(--space-3);border-radius:var(--radius);background:var(--surface-2);font-size:var(--text-sm)}.turn-summary ul{margin:var(--space-1) 0 0;padding-left:var(--space-4)}.turn-summary p{margin:var(--space-1) 0 0}.run-recorded{padding:var(--space-3);border-radius:var(--radius);color:var(--ok);text-align:center;margin:0;font-weight:600}.out-of-turn{padding:var(--space-2) var(--space-3);border-radius:var(--radius);background:var(--warn-bg);color:var(--warn);margin:0}.round-next{color:var(--text-muted);font-size:var(--text-sm);align-self:center}.over-limit{text-align:left;background:var(--warn-bg);width:100%;min-height:48px;color:var(--warn);font-weight:600}.rusted-train{color:var(--warn);justify-content:space-between}.forced-purchase{border:2px solid var(--warn);padding:var(--space-2) var(--space-3);border-radius:8px}.forced-purchase legend{color:var(--warn);font-weight:600}.ability-chips{flex-wrap:wrap}.company-alt-name{font-size:var(--text-sm);font-weight:600}.merge-preview .badge,.history-moves summary{margin-left:var(--space-2)}.history-moves summary{cursor:pointer;align-items:center;min-height:48px;display:flex}button.stacked{flex-direction:column;align-items:flex-start;display:inline-flex}button.stacked .subtitle{font-size:var(--text-sm);font-weight:400}.score-table{border-collapse:collapse;width:100%}.score-table th,.score-table td{padding:var(--space-2);text-align:left;border-bottom:1px solid var(--surface-2)}.score-table tr.eliminated{color:var(--text-muted)}.score-table td.num,.score-table th.num{text-align:right;font-variant-numeric:tabular-nums}.score-table tr.winner td{font-weight:700}.badge.winner{background:var(--warn-bg);color:var(--warn)}.badge.ok{border:1px solid var(--ok);color:var(--ok)}.badge.muted{background:var(--surface-2);color:var(--text-muted)}.results-layout{gap:var(--space-4);display:grid}.results-subtitle{margin:0}.results-notice{padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);background:var(--warn-bg);color:var(--warn)}.results-actions{gap:var(--space-2);flex-wrap:wrap;display:flex}.results-actions button{min-height:var(--tap)}.end-banner button{min-height:var(--tap);align-self:flex-start}.finished-banner{width:100%;min-height:var(--tap);background:var(--surface-2);border-radius:0;font-weight:600}@media (width<=480px){.score-table thead{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.score-table tr{border-bottom:1px solid var(--surface-2);grid-template-columns:3em minmax(0,1fr) minmax(0,1fr) auto;grid-template-areas:"rank name name total""rank cash shares total";align-items:center;display:grid}.score-table td{padding:2px var(--space-2);border-bottom:0}.score-table td:first-child{grid-area:rank}.score-table td:nth-child(2){grid-area:name}.score-table td:nth-child(3){grid-area:cash}.score-table td:nth-child(4){grid-area:shares}.score-table td:nth-child(5){grid-area:total}.score-table td:nth-child(3),.score-table td:nth-child(4){text-align:left;font-size:var(--text-sm);color:var(--text-muted)}.score-table td[data-label]:before{content:attr(data-label) " "}}@media (orientation:landscape) and (width>=900px){.results-layout{grid-template-columns:minmax(0,2fr) minmax(0,1fr);align-items:start}}.ability-chips button.used{opacity:.6}.market-strip{flex-wrap:wrap;gap:4px;display:flex}.market-strip .market-cell{flex:none;min-width:56px;min-height:56px}.market-strip .market-tokens{flex-direction:column;display:flex}.market-cell.launch-range{outline:2px solid var(--warn);outline-offset:-2px}.segmented>button{flex:1}button[role=radio][aria-checked=true]{background:var(--accent);border-color:var(--accent);color:var(--accent-text);font-weight:700}
