.game{gap:var(--tr-space-3);--tr-rail-w:340px;--tr-comms-w:320px;flex:1;min-height:0;display:grid}.game--rail{grid-template-columns:minmax(0, 1fr) var(--tr-rail-w);grid-template-rows:minmax(0,1fr);grid-template-areas:"board rail"}.game--tray{grid-template-columns:minmax(0, 1fr) var(--tr-rail-w);grid-template-rows:minmax(0,1fr) auto;grid-template-areas:"board rail""hand hand"}.game-board{gap:var(--tr-space-2);flex-direction:column;grid-area:board;min-width:0;min-height:0;display:flex}.game-rail{gap:var(--tr-space-3);scrollbar-width:thin;scrollbar-color:var(--tr-line) transparent;flex-direction:column;grid-area:rail;min-width:0;min-height:0;display:flex;overflow-y:auto}.game-rail::-webkit-scrollbar{width:6px}.game-rail::-webkit-scrollbar-track{background:0 0}.game-rail::-webkit-scrollbar-thumb{background:var(--tr-line);border-radius:999px}.game-rail::-webkit-scrollbar-thumb:hover{background:var(--tr-ink-soft)}.game-hand-strip{grid-area:hand;min-width:0}@media (width>=1300px){.game--rail{grid-template-columns:minmax(0, 1fr) var(--tr-rail-w) var(--tr-comms-w);grid-template-areas:"board rail comms"}.game--tray{grid-template-columns:minmax(0, 1fr) var(--tr-rail-w) var(--tr-comms-w);grid-template-areas:"board rail comms""hand hand hand"}.game--sandbox.game--rail{grid-template-columns:minmax(0, 1fr) var(--tr-rail-w);grid-template-areas:"board rail"}.game--sandbox.game--tray{grid-template-columns:minmax(0, 1fr) var(--tr-rail-w);grid-template-areas:"board rail""hand hand"}}.game-comms{grid-area:comms;min-width:0;min-height:0;display:flex}.comms{gap:var(--tr-space-3);background:var(--tr-surface);border:1px solid var(--tr-line);border-radius:var(--tr-radius);flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.comms .log-panel{min-height:0;padding:var(--tr-space-3) var(--tr-space-3) 0;flex-direction:column;flex:1;display:flex}.log-list-shell{flex:1;min-height:0;display:flex;position:relative}.log-list{scrollbar-width:thin;scrollbar-color:var(--tr-line) transparent;flex-direction:column;flex:1;gap:2px;min-width:0;min-height:0;display:flex;overflow-y:auto}.log-scroll-bottom{right:var(--tr-space-2);bottom:var(--tr-space-2);z-index:1;border:1px solid var(--tr-line);background:var(--tr-surface);width:32px;height:32px;color:var(--tr-ink);box-shadow:var(--tr-shadow);cursor:pointer;border-radius:999px;justify-content:center;align-items:center;padding:0;display:inline-flex;position:absolute}.log-scroll-bottom:hover{background:var(--tr-surface-2)}.log-empty,.chat-empty{color:var(--tr-ink-soft);padding:var(--tr-space-2);font-size:.85em}.log-line{align-items:baseline;gap:var(--tr-space-2);padding:3px var(--tr-space-2);border-radius:var(--tr-radius-sm);font-size:.82rem;line-height:1.3;display:flex}.log-line .log-dot{border-radius:999px;flex:none;align-self:center;width:8px;height:8px}.log-line .log-text{min-width:0}.log-chip{border:1px solid #0003;border-radius:3px;flex:none;align-self:center;width:12px;height:12px}.log-line.log-highlight{background:color-mix(in srgb, var(--tr-ink) 5%, transparent);font-weight:600}.log-line.log-alert{background:color-mix(in srgb, var(--tr-ember) 12%, transparent);font-weight:700}.chat-panel{border-top:1px solid var(--tr-line);max-height:45%;padding:var(--tr-space-2) var(--tr-space-3) var(--tr-space-3);gap:var(--tr-space-2);flex-direction:column;flex:none;display:flex}.chat-messages{scrollbar-width:thin;scrollbar-color:var(--tr-line) transparent;flex-direction:column;flex:1;gap:3px;min-height:4rem;display:flex;overflow-y:auto}.chat-msg{word-break:break-word;font-size:.82rem;line-height:1.3}.chat-msg .chat-author{margin-right:6px;font-weight:700}.chat-hint{min-height:1.2em;color:var(--tr-ember);visibility:hidden;margin:0;font-size:.75rem;line-height:1.2}.chat-hint--visible{visibility:visible}.chat-preset-picker{flex:none}.chat-preset-trigger{border:1px solid var(--tr-line);background:var(--tr-surface-2);width:2.1rem;height:2.1rem;color:var(--tr-ink);cursor:pointer;border-radius:999px;justify-content:center;align-items:center;padding:0;display:flex}.chat-preset-picker.open .chat-preset-trigger{background:var(--tr-ember);border-color:var(--tr-ember);color:#fff}.chat-preset-panel{bottom:calc(100% + var(--tr-space-2));z-index:5;gap:var(--tr-space-2);max-height:12rem;padding:var(--tr-space-2);border-radius:var(--tr-radius);border:1px solid var(--tr-line);background:var(--tr-surface);box-shadow:var(--tr-shadow);flex-wrap:wrap;display:flex;position:absolute;left:0;right:0;overflow-y:auto}.chat-preset-btn{border:1px solid var(--tr-line);background:var(--tr-surface-2);color:var(--tr-ink);cursor:pointer;border-radius:999px;padding:2px 8px;font-size:.78rem}.chat-preset-btn:disabled{opacity:.5;cursor:default}.chat-input{align-items:center;gap:var(--tr-space-2);display:flex;position:relative}.chat-input input{flex:1;min-width:0}.comms-tabs{gap:var(--tr-space-2);margin-bottom:var(--tr-space-3);display:flex}.comms-tabs button{background:var(--tr-surface-2);border:1px solid var(--tr-line);flex:1}.comms-tabs button.active{background:var(--tr-ember);border-color:var(--tr-ember);color:#fff}.comms-tabpanel{display:contents}.board-viewport{--inv-scale:.53;--marker-scale:.72;background:var(--tr-sea);border:1px solid var(--tr-line);border-radius:var(--tr-radius);flex:1;min-width:0;min-height:360px;position:relative;overflow:hidden;box-shadow:inset 0 0 0 1px #1f23280a}.board-viewport:fullscreen{border:none;border-radius:0;width:100vw;height:100vh}.board-transform,.board-content{width:100%;height:100%}.board-content{cursor:grab}.board-content:active{cursor:grabbing}.board{touch-action:none;width:100%;height:100%;display:block}.map-controls{top:var(--tr-space-2);right:var(--tr-space-2);z-index:5;flex-direction:column;gap:4px;display:flex;position:absolute}.map-controls button{background:var(--tr-surface);border:1px solid var(--tr-line);width:32px;height:32px;box-shadow:var(--tr-shadow);justify-content:center;align-items:center;padding:0;display:inline-flex}.map-controls button.follow-toggle[aria-pressed=true]{background:var(--tr-ember);border-color:var(--tr-ember);color:#fff}.sea{fill:var(--tr-sea)}.graticule line{stroke:var(--tr-sea-line);stroke-width:calc(var(--m-grat-w) * 1px * var(--inv-scale));stroke-dasharray:calc(var(--m-grat-dash-a) * 1px * var(--inv-scale)) calc(var(--m-grat-dash-b) * 1px * var(--inv-scale))}.land-surf{fill:none;stroke:var(--tr-sea);stroke-width:calc(var(--m-land-surf-w) * 1px);opacity:var(--m-land-surf-o)}.land{fill:var(--tr-land);stroke:var(--tr-coast);stroke-width:calc(var(--m-land-stroke-w) * 1px);stroke-linejoin:round}.country-border{fill:none;stroke:var(--tr-coast);stroke-width:calc(var(--m-border-w) * 1px);stroke-dasharray:var(--m-border-dash);opacity:var(--m-border-o);pointer-events:none}.relief{fill:var(--tr-relief);opacity:var(--m-relief-o)}.relief-ridge{fill:none;stroke:var(--tr-coast);stroke-width:calc(var(--m-relief-ridge-w) * 1px);stroke-dasharray:var(--m-relief-ridge-dash);opacity:var(--m-relief-o)}.islands circle{fill:var(--tr-land);stroke:var(--tr-coast);stroke-width:calc(var(--m-geo-island-w) * 1px)}.compass circle{fill:var(--tr-surface);stroke:var(--tr-coast);stroke-width:.3px;opacity:.85}.compass-n{fill:var(--tr-ember)}.compass-s{fill:var(--tr-ink-soft)}.compass text{fill:var(--tr-ink-soft);text-anchor:middle;font-size:2px;font-weight:700}.bed{fill:none;stroke:var(--tr-surface);stroke-width:calc(var(--m-bed-w) * 1px * var(--inv-scale));stroke-linecap:round;opacity:var(--m-bed-o)}[data-theme=dark] .bed{stroke:#ddd8cc}@media (prefers-color-scheme:dark){:root:not([data-theme=light]):not([data-theme=dark]) .bed{stroke:#ddd8cc}}.route.owned .bed{stroke-width:calc(var(--m-bed-owned-w) * 1px * var(--inv-scale));stroke:color-mix(in srgb, var(--seat,var(--tr-surface)) 50%, var(--tr-surface));opacity:1}.slot{y:calc(var(--m-slot-h) / -2 * 1px * var(--inv-scale));height:calc(var(--m-slot-h) * 1px * var(--inv-scale));rx:calc(var(--m-slot-rx) * 1px * var(--inv-scale));stroke:var(--m-car-edge);stroke-width:calc(var(--m-slot-stroke-w) * 1px * var(--inv-scale));stroke-linejoin:round}.route.owned .slot{stroke-width:calc(var(--m-slot-owned-stroke-w) * 1px * var(--inv-scale))}.tunnel-bg{fill:none;stroke:var(--m-tunnel-bg-ink);stroke-opacity:var(--m-tunnel-bg-o);stroke-width:calc(var(--m-tunnel-bg-w) * 1px * var(--inv-scale));stroke-linecap:round}.tunnel-tie{x:calc(var(--m-tie-w) / -2 * 1px * var(--inv-scale));width:calc(var(--m-tie-w) * 1px * var(--inv-scale));y:calc(var(--m-tie-h) / -2 * 1px * var(--inv-scale));height:calc(var(--m-tie-h) * 1px * var(--inv-scale));fill:var(--m-tie-ink);fill-opacity:var(--m-tie-o)}.ferry-line{fill:none;stroke:var(--m-ferry-line-ink);stroke-width:calc(var(--m-ferry-line-w) * 1px * var(--inv-scale));stroke-linecap:round;stroke-dasharray:var(--m-ferry-dash)}.ferry-pip{stroke:var(--m-car-edge);stroke-width:calc(var(--m-ferry-pip-stroke-w) * 1px * var(--inv-scale));r:calc(var(--m-ferry-pip-r) * 1px * var(--inv-scale))}.slot.ferry-loco{stroke:var(--m-ferry-loco-edge);stroke-width:calc(var(--m-ferry-loco-stroke-w) * 1px * var(--inv-scale))}.route.broken .slot.broken-car{fill-opacity:.16;stroke:var(--m-car-edge);stroke-dasharray:calc(.9px * var(--inv-scale)) calc(.7px * var(--inv-scale))}.break-mark path{fill:#c5221f;stroke:var(--tr-surface);stroke-width:.28px;stroke-linejoin:round;transform:scale(var(--inv-scale))}.hit{fill:none;stroke:#0000;stroke-linecap:round;stroke-width:calc(var(--m-hit-w) * 1px * var(--inv-scale))}.route.claimable{cursor:pointer}.route.claimable:hover .slot{stroke:var(--tr-ink);stroke-width:calc(.5px * var(--inv-scale))}.route.claimable:hover .bed{stroke:color-mix(in srgb, var(--tr-ember) 32%, var(--tr-surface));stroke-width:calc(3px * var(--inv-scale))}.route.claimable:hover .ferry-pip{stroke:var(--tr-ink)}.glyph-badge circle{fill:var(--tr-surface);stroke:var(--tr-ink-soft);stroke-width:calc(var(--m-glyph-stroke-w) * 1px * var(--inv-scale));r:calc(var(--m-glyph-r) * 1px * var(--inv-scale))}.glyph-badge text{fill:var(--tr-ink);font-size:calc(2.3px * var(--inv-scale));text-anchor:middle;dominant-baseline:central;font-weight:700}.city-dot{fill:var(--tr-surface);stroke:var(--tr-ink);stroke-width:calc(var(--m-city-stroke-w) * 1px * var(--marker-scale));r:calc(var(--m-city-r) * 1px * var(--marker-scale))}.city.island .city-dot{stroke:var(--tr-blue);r:calc(var(--m-island-r) * 1px * var(--marker-scale))}.city-dot.buildable{cursor:pointer}.city-dot.buildable:hover{fill:color-mix(in srgb, var(--tr-ember) 35%, var(--tr-surface))}.city-hub{x:calc(var(--m-hub-w) / -2 * 1px * var(--marker-scale));y:calc(var(--m-hub-h) / -2 * 1px * var(--marker-scale));width:calc(var(--m-hub-w) * 1px * var(--marker-scale));height:calc(var(--m-hub-h) * 1px * var(--marker-scale));rx:calc(var(--m-hub-rx) * 1px * var(--marker-scale));fill:var(--tr-surface);stroke:var(--tr-ink);stroke-width:calc(var(--m-city-stroke-w) * 1px * var(--marker-scale))}.city-hub.buildable{cursor:pointer}.city-hub.buildable:hover{fill:color-mix(in srgb, var(--tr-ember) 35%, var(--tr-surface))}[data-theme=dark] .city-dot,[data-theme=dark] .city-hub{fill:#fffdf8;stroke:#1f2328}@media (prefers-color-scheme:dark){:root:not([data-theme=light]):not([data-theme=dark]) .city-dot,:root:not([data-theme=light]):not([data-theme=dark]) .city-hub{fill:#fffdf8;stroke:#1f2328}}.station{r:calc(.7px * var(--marker-scale));stroke:var(--tr-surface);stroke-width:calc(.28px * var(--marker-scale));paint-order:stroke fill}.station-hub{x:calc(-.75px * var(--marker-scale));y:calc(-.45px * var(--marker-scale));width:calc(1.5px * var(--marker-scale));height:calc(.9px * var(--marker-scale));rx:calc(.4px * var(--marker-scale));stroke:var(--tr-surface);stroke-width:calc(.28px * var(--marker-scale));paint-order:stroke fill}.city-label{fill:var(--tr-ink);font-size:calc(4px * var(--inv-scale));text-anchor:middle;paint-order:stroke;stroke:var(--tr-land);stroke-width:calc(1.1px * var(--inv-scale));stroke-linejoin:round;pointer-events:none;transform:translateY(calc(-3.6px * var(--marker-scale)));font-weight:700}.city.island .city-label{stroke:var(--tr-sea)}.ticket-target-halo{fill:var(--tr-ember);opacity:.22;r:calc(2.6px * var(--marker-scale));pointer-events:none;animation:2.6s ease-in-out infinite tr-ticket-target}@keyframes tr-ticket-target{0%,to{opacity:.14}50%{opacity:.32}}@media (prefers-reduced-motion:reduce){.ticket-target-halo{opacity:.22;animation:none}}[data-zoom=far] .city:not(.major):not(.island) .city-label,[data-zoom=regional] .city:not(.major):not(.secondary):not(.island) .city-label,[data-zoom=district] .city:not(.major):not(.secondary):not(.tertiary):not(.island) .city-label,[data-zoom=far] .glyph-badge,[data-zoom=regional] .glyph-badge{display:none}.hud-block{gap:var(--tr-space-3);padding:var(--tr-space-3);background:var(--tr-surface);border:1px solid var(--tr-line);border-radius:var(--tr-radius);flex-direction:column;display:flex}.hud-actions{gap:var(--tr-space-2);display:flex}.hud-actions button{flex:1}.event-action-bar{justify-content:center;align-items:center;gap:var(--tr-space-2);padding:var(--tr-space-2) var(--tr-space-3);border:1px solid color-mix(in srgb, var(--tr-accent) 55%, var(--tr-line));border-radius:var(--tr-radius);background:color-mix(in srgb, var(--tr-accent) 12%, var(--tr-surface));box-shadow:var(--tr-shadow);flex-wrap:wrap;display:flex}.event-action-bar strong{margin-right:var(--tr-space-2)}.event-hive-cards{align-items:center;gap:4px;display:inline-flex}.event-inline-action{align-items:center;gap:var(--tr-space-1);flex-wrap:wrap;display:flex}.event-inline-action select{min-width:72px}.turn-countdown{align-items:center;gap:var(--tr-space-2);padding:var(--tr-space-1) var(--tr-space-2);border:1px solid var(--tr-line);border-radius:var(--tr-radius);background:var(--tr-surface-2);font-variant-numeric:tabular-nums;display:flex}.turn-countdown-secs{text-align:right;min-width:2.25ch;color:var(--tr-ink);font-weight:700}.turn-countdown-ring{background:color-mix(in srgb, var(--tr-line) 65%, transparent);border-radius:999px;flex:1;height:6px;position:relative;overflow:hidden}.turn-countdown-ring:after{content:"";transform-origin:0;transform:scaleX(var(--frac,1));background:var(--tr-ember);transition:transform .2s linear;position:absolute;inset:0}.turn-countdown.is-paused{color:var(--tr-ink-soft);font-size:.85rem}.turn-countdown.is-warning{border-color:var(--tr-danger)}.turn-countdown.is-warning .turn-countdown-secs{color:var(--tr-danger)}.turn-countdown.is-warning .turn-countdown-ring:after{background:var(--tr-danger)}.turn-countdown.is-warning.is-self{animation:1s ease-in-out infinite turn-countdown-pulse}@keyframes turn-countdown-pulse{0%,to{box-shadow:0 0 #0000}50%{box-shadow:0 0 0 3px color-mix(in srgb, var(--tr-danger) 32%, transparent)}}@media (prefers-reduced-motion:reduce){.turn-countdown.is-warning.is-self{animation:none}.turn-countdown-ring:after{transition:none}}.trackers{gap:var(--tr-space-1);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.tracker-slot{display:flex}.tracker{align-items:center;gap:var(--tr-space-2);min-width:0;padding:7px var(--tr-space-2) 8px;border:1px solid var(--tr-line);border-radius:var(--tr-radius-sm);color:inherit;font:inherit;text-align:left;background:0 0;flex:1;font-size:.85em;line-height:1.15;display:flex;position:relative;overflow:hidden}button.tracker{cursor:pointer;transition:background-color .12s,border-color .12s}button.tracker:hover{background:color-mix(in srgb, var(--tr-ink) 5%, transparent)}.tracker.current{border-color:var(--tr-ember);background:color-mix(in srgb, var(--tr-ember) 8%, transparent)}.tracker.inspected{border-color:var(--tr-blue)}.tracker-name{white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.seat-avatar{border:2px solid var(--seat);background:var(--tr-surface-2);color:var(--tr-ink-soft);border-radius:50%;flex:none;justify-content:center;align-items:center;font-weight:700;line-height:1;display:inline-flex;overflow:hidden}.seat-avatar img{object-fit:cover;border-radius:50%;width:100%;height:100%;display:block}.tracker-team{color:#fff;border-radius:999px;flex:none;padding:1px 7px;font-size:.7em;font-weight:700}.tracker-cars{font-variant-numeric:tabular-nums;min-width:3.4ch;color:var(--tr-ink-soft);flex:none;justify-content:flex-end;align-items:center;gap:2px;margin-inline-start:auto;display:inline-flex}.tracker.low .tracker-cars{color:var(--tr-ember);font-weight:700}.tracker-score{text-align:end;letter-spacing:-.02em;font-variant-numeric:tabular-nums;flex:none;min-width:3.1ch;font-size:1.35em;font-weight:600;line-height:1}.tracker-gauge{inset-inline:0;background:color-mix(in srgb, var(--tr-ink) 8%, transparent);height:3px;position:absolute;bottom:0}.tracker-gauge i{background:var(--seat);height:100%;display:block}.tracker.low .tracker-gauge i{background:var(--tr-ember)}.player-card{--pcard-pad:var(--tr-space-3);z-index:20;background:var(--tr-surface);border:1px solid var(--tr-line);border-radius:var(--tr-radius);min-width:0;min-height:0;box-shadow:var(--tr-shadow);scrollbar-width:thin;scrollbar-color:var(--tr-line) transparent;grid-area:rail;animation:.16s ease-out pcard-in;overflow-y:auto}@keyframes pcard-in{0%{opacity:0;transform:translate(10px)}}.pcard-head{align-items:flex-start;gap:var(--tr-space-2);padding:var(--pcard-pad);border-bottom:1px solid var(--tr-line);background:var(--tr-surface-2);display:flex}.pcard-who{flex-direction:column;gap:2px;min-width:0;display:flex}.pcard-name{align-items:center;gap:var(--tr-space-1);flex-wrap:wrap;margin:0;font-size:1em;display:flex}.pcard-chip{color:#fff;background:var(--tr-ember);letter-spacing:.04em;border-radius:3px;flex:none;padding:1px 6px;font-size:.68em;font-weight:700}.pcard-meta{letter-spacing:.05em;color:var(--tr-ink-soft);margin:0;font-size:.75em}.pcard-head .icon-button{flex:none;margin-inline-start:auto}.pcard-sec{padding:var(--pcard-pad);border-bottom:1px solid var(--tr-line)}.pcard-sec:last-child{border-bottom:0}.pcard-label{margin:0 0 var(--tr-space-2);letter-spacing:.1em;color:var(--tr-ink-soft);align-items:center;gap:var(--tr-space-1);font-size:.7em;font-weight:600;display:flex}.pcard-public{border:1px solid var(--tr-line);letter-spacing:.02em;border-radius:999px;padding:0 6px;font-weight:400}.pcard-total{align-items:baseline;gap:var(--tr-space-1);margin:0;display:flex}.pcard-total b{letter-spacing:-.03em;font-variant-numeric:tabular-nums;font-size:2.1em;font-weight:600;line-height:1}.pcard-total span{color:var(--tr-ink-soft);font-size:.8em}.pcard-ledger{margin:var(--tr-space-2) 0 0;flex-direction:column;gap:2px;font-size:.85em;display:flex}.pcard-ledger div{align-items:baseline;gap:var(--tr-space-2);color:var(--tr-ink-soft);display:flex}.pcard-ledger dt{border-bottom:1px dotted var(--tr-line);flex:1;min-width:0}.pcard-ledger dd{color:var(--tr-ink);font-variant-numeric:tabular-nums;margin:0;font-weight:600}.pcard-cars{margin:0 0 var(--tr-space-2);align-items:baseline;gap:var(--tr-space-1);display:flex}.pcard-cars b{font-variant-numeric:tabular-nums;font-size:1.4em;font-weight:600}.pcard-cars span{color:var(--tr-ink-soft);font-size:.85em}.pcard-cars em{color:var(--tr-ember);margin-inline-start:auto;font-size:.78em;font-style:normal;font-weight:600}.pcard-gauge{background:color-mix(in srgb, var(--tr-ink) 8%, transparent);border-radius:3px;height:6px;display:block;overflow:hidden}.pcard-gauge i{background:var(--seat);height:100%;display:block}.pcard-gauge.low i{background:var(--tr-ember)}.pcard-grid{background:var(--tr-line);border:1px solid var(--tr-line);border-radius:var(--tr-radius-sm);grid-template-columns:repeat(3,1fr);gap:1px;margin:0;display:grid;overflow:hidden}.pcard-grid div{background:var(--tr-surface);padding:6px var(--tr-space-2);flex-direction:column;gap:1px;display:flex}.pcard-grid dt{color:var(--tr-ink-soft);font-size:.72em}.pcard-grid dd{font-variant-numeric:tabular-nums;margin:0;font-size:1.1em;font-weight:600}.pcard-grid dd small{color:var(--tr-ink-soft);font-size:.7em;font-weight:400}.pcard-net,.pcard-resources,.pcard-empty{color:var(--tr-ink-soft);margin:0;font-size:.85em}.pcard-net{margin-bottom:var(--tr-space-2)}.pcard-action{justify-content:center;align-items:center;gap:var(--tr-space-1);width:100%;color:var(--tr-accent);border-color:color-mix(in srgb, var(--tr-accent) 55%, var(--tr-line));background:color-mix(in srgb, var(--tr-accent) 8%, var(--tr-surface));font-size:.85em;font-weight:600;display:flex}.pcard-action.on{background:var(--tr-blue);border-color:var(--tr-blue);color:#fff}.pcard-tickets{flex-direction:column;gap:5px;margin:0;padding:0;font-size:.85em;list-style:none;display:flex}.pcard-tickets li{align-items:center;gap:var(--tr-space-1);display:flex}.pcard-rail{min-width:var(--tr-space-4);border-top:1px solid var(--tr-line);flex:1}.pcard-tickets b{color:var(--tr-ok);font-variant-numeric:tabular-nums}.pcard-foot{padding:var(--tr-space-2) var(--pcard-pad);border-top:1px solid var(--tr-line);display:flex}.pcard-report{color:var(--tr-ink-soft);align-self:auto;margin-inline-start:auto;font-size:.75em}.pcard-report:hover{color:var(--tr-danger)}.player-action-dialog{gap:var(--tr-space-3);width:min(380px,92vw)}.pad-reasons{gap:var(--tr-space-1);border:0;flex-direction:column;margin:0;padding:0;display:flex}.pad-reasons legend{padding:0 0 var(--tr-space-2);font-size:.8rem;font-weight:600}.pad-reason{align-items:center;gap:var(--tr-space-2);padding:7px var(--tr-space-2);border:1px solid var(--tr-line);border-radius:var(--tr-radius-sm);cursor:pointer;font-size:.85rem;display:flex}.pad-reason.active{border-color:var(--tr-blue);background:color-mix(in srgb, var(--tr-blue) 8%, transparent)}.pad-reason:focus-within{outline:2px solid var(--tr-accent);outline-offset:1px}.pad-message{resize:vertical;width:100%}.pad-action{width:100%;padding:var(--tr-space-3);font-weight:600}.pad-done{color:var(--tr-ok);margin:0}.pad-note{margin:0;font-size:.8rem}.chat-report{color:var(--tr-ink-soft);vertical-align:middle;opacity:0;background:0 0;border:0;padding:0 2px;transition:opacity .12s}.chat-msg:hover .chat-report,.chat-report:focus-visible{opacity:1}.chat-report:hover{color:var(--tr-danger)}.game--dock .player-card{border-inline:0;border-radius:var(--tr-radius-lg) var(--tr-radius-lg) 0 0;max-height:62dvh;padding-bottom:env(safe-area-inset-bottom,0px);border-bottom:0;grid-area:auto;animation:.18s ease-out pcard-up;position:fixed;inset:auto 0 0}.pcard-sheet{--pcard-pad:var(--tr-space-4);transition:transform .18s ease-out}.pcard-sheet .pcard-head,.pcard-sheet .pcard-sec,.pcard-sheet .pcard-foot{padding-inline:calc(var(--pcard-pad) + env(safe-area-inset-left,0px)) calc(var(--pcard-pad) + env(safe-area-inset-right,0px))}.pcard-sheet .pcard-head{padding-top:calc(var(--pcard-pad) + 8px);touch-action:none;cursor:grab;position:relative}.pcard-dragging{cursor:grabbing;transition:none}.pcard-grab{background:color-mix(in srgb, var(--tr-ink) 20%, transparent);border-radius:2px;width:40px;height:4px;margin-inline-start:-20px;position:absolute;top:7px;left:50%}@keyframes pcard-up{0%{opacity:0;transform:translateY(16px)}}@media (prefers-reduced-motion:reduce){.player-card{animation:none}.pcard-sheet{transition:none}}.end-vote{gap:var(--tr-space-2);padding-top:var(--tr-space-3);border-top:1px solid var(--tr-line);flex-direction:column;display:flex}.end-vote-head{justify-content:space-between;align-items:center;gap:var(--tr-space-2);display:flex}.end-vote-head h4{align-items:center;gap:6px;margin:0;display:inline-flex}.end-vote-tally{background:color-mix(in srgb, var(--tr-danger) 12%, transparent);color:var(--tr-danger);font-variant-numeric:tabular-nums;border-radius:999px;flex:none;padding:2px 8px;font-size:.78rem;font-weight:700}.end-vote-hint,.end-vote-error{margin:0;font-size:.78rem}.end-vote-hint{color:var(--tr-ink-soft)}.end-vote>button{width:100%}.market{gap:var(--tr-space-2);align-items:center;display:flex}.deck{flex-direction:column;align-items:center;gap:2px;min-width:44px;display:flex}.market-slots{gap:var(--tr-space-1);flex-wrap:wrap;display:flex}.market-slot{justify-content:center;align-items:center;width:34px;height:46px;font-size:1.1em;font-weight:700;display:flex}.swatch{border-radius:var(--tr-radius-sm);border:1px solid #00000026;justify-content:center;align-items:center;font-weight:700;display:inline-flex;position:relative}.swatch-count{background:var(--tr-ink);color:var(--tr-paper);border-radius:999px;justify-content:center;align-items:center;min-width:16px;height:16px;padding:0 3px;font-size:.7em;display:flex;position:absolute;bottom:-4px;right:-4px}.tray-section{background:var(--tr-surface);border:1px solid var(--tr-line);border-radius:var(--tr-radius);box-shadow:var(--tr-shadow);padding:var(--tr-space-3) var(--tr-space-4) var(--tr-space-4);min-width:0}.tray-head{align-items:center;gap:var(--tr-space-2);margin-bottom:var(--tr-space-3);display:flex}.tray-head h4{letter-spacing:.04em;margin:0;font-size:.95rem}.tray-head:after{content:"";background:repeating-linear-gradient(to right, var(--tr-line) 0 6px, transparent 6px 10px);flex:1;height:1px}.tray-count{background:var(--tr-surface-2);min-width:22px;height:22px;color:var(--tr-ink-soft);font-variant-numeric:tabular-nums;border-radius:999px;order:1;justify-content:center;align-items:center;padding:0 6px;font-size:.8rem;font-weight:700;display:inline-flex}.tray-hint{color:var(--tr-ink-soft);white-space:nowrap;order:1;font-size:.75rem}.hud-block .tray-head{margin-bottom:0}.hand{gap:var(--tr-space-3);flex-wrap:wrap;display:flex}.train-card{aspect-ratio:132/92;border:1px solid var(--tr-coast);width:132px;box-shadow:inset 0 0 0 1.5px #ffffff59, var(--tr-shadow);border-radius:10px;transition:transform .12s,box-shadow .12s;position:relative;overflow:hidden}.train-card.is-stacked{box-shadow:3px 4px 0 -1px var(--tr-surface), 3px 4px 0 0 var(--tr-coast), inset 0 0 0 1.5px #ffffff59, var(--tr-shadow);margin-bottom:5px;margin-right:4px}.train-card.is-stacked.is-stacked-deep{box-shadow:3px 4px 0 -1px var(--tr-surface), 3px 4px 0 0 var(--tr-coast), 6px 8px 0 -1px var(--tr-surface), 6px 8px 0 0 var(--tr-coast), inset 0 0 0 1.5px #ffffff59, var(--tr-shadow);margin-bottom:8px;margin-right:6px}.hand .train-card:hover{transform:translateY(-4px)}.train-card-edge{opacity:.9;height:5px;position:absolute;inset:0 0 auto}.train-card-gloss{pointer-events:none;mix-blend-mode:screen;background:linear-gradient(118deg,#ffffff57 0%,#ffffff12 20%,#0000 42% 64%,#ffffff29 100%);position:absolute;inset:0}.is-loco{border-color:color-mix(in srgb, var(--tr-blue) 28%, var(--tr-coast))}.is-loco .train-card-edge{opacity:1;height:7px;box-shadow:inset 0 1px #ffffff8c,0 1px 2px #00000040}.rs-art{width:100%;height:100%;padding:13px 0 21px;display:block}.rs-art.rs-skin-classic{padding:9px 6px 4px}.train-card-glyph{border-radius:6px;justify-content:center;align-items:center;width:20px;height:20px;font-size:.78rem;font-weight:700;display:inline-flex;position:absolute;bottom:6px;left:6px;box-shadow:0 1px 2px #0003}.train-card-count{background:var(--tr-ink);min-width:26px;height:22px;color:var(--tr-paper);font-variant-numeric:tabular-nums;border-radius:7px;justify-content:center;align-items:center;padding:0 6px;font-size:.82rem;font-weight:800;display:inline-flex;position:absolute;bottom:6px;right:6px}.ticket-cards{gap:var(--tr-space-3);flex-wrap:wrap;display:flex}.tray-missions .ticket-cards{grid-template-columns:repeat(2,1fr);display:grid}.tray-missions .ticket-card{width:100%}.ticket-card{appearance:none;text-align:left;font:inherit;color:inherit;background:var(--tr-surface);border:1px solid var(--tr-coast);width:150px;box-shadow:var(--tr-shadow);border-radius:10px;flex-direction:column;padding:0;transition:transform .12s,box-shadow .12s;display:flex;overflow:hidden}button.ticket-card{cursor:pointer}button.ticket-card:hover{transform:translateY(-3px)}.ticket-card.is-selected{border-color:var(--tr-blue);box-shadow:0 0 0 2px var(--tr-blue), var(--tr-shadow)}.ticket-map{background:var(--tr-sea);border-bottom:1px dashed var(--tr-coast);height:158px;position:relative}.tone-long .ticket-map{background:color-mix(in srgb, var(--tr-blue) 14%, var(--tr-sea))}.tone-short .ticket-map{background:color-mix(in srgb, var(--tr-ember) 10%, var(--tr-sea))}.ticket-flag{background:var(--tr-blue);color:#fff;letter-spacing:.05em;border-radius:999px;padding:1px 7px;font-size:.68rem;font-weight:700;position:absolute;top:6px;left:6px;box-shadow:0 1px 2px #00000040}.ticket-check{border:2px solid var(--tr-surface);background:#0000002e;border-radius:999px;width:18px;height:18px;position:absolute;top:6px;right:6px;box-shadow:0 1px 2px #00000040}.is-selected .ticket-check{background:var(--tr-blue)}.is-selected .ticket-check:after{content:"✓";color:#fff;justify-content:center;align-items:center;font-size:.72rem;font-weight:900;display:flex;position:absolute;inset:0}.ticket-card.is-completed{position:relative}.ticket-card.is-completed .ticket-map,.ticket-card.is-completed .ticket-foot{filter:grayscale(.85);opacity:.5}.ticket-done{pointer-events:none;z-index:2;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.ticket-done:after{content:"✓";background:var(--tr-ok);border:2px solid var(--tr-surface);color:#fff;border-radius:999px;justify-content:center;align-items:center;width:44px;height:44px;font-size:1.5rem;font-weight:900;display:flex;box-shadow:0 2px 6px #00000059}.ticket-foot{align-items:center;gap:var(--tr-space-2);padding:var(--tr-space-2) var(--tr-space-3);display:flex;position:relative}.ticket-foot:before,.ticket-foot:after{content:"";background:var(--tr-paper);border:1px solid var(--tr-coast);border-radius:999px;width:10px;height:10px;position:absolute;top:-6px}.ticket-foot:before{left:-6px}.ticket-foot:after{right:-6px}.ticket-route{flex:1;align-items:center;gap:5px;min-width:0;font-size:.84rem;line-height:1.15;display:flex}.ticket-route b{font-weight:700}.ticket-dash{border-top:2px dotted var(--tr-ink-soft);opacity:.6;flex:1;min-width:8px;height:0}.ticket-value{color:#fff;font-variant-numeric:tabular-nums;border-radius:999px;flex:none;justify-content:center;align-items:center;width:30px;height:30px;font-weight:800;display:inline-flex;box-shadow:inset 0 0 0 2px #ffffff59}.tone-long .ticket-value{background:var(--tr-blue)}.tone-short .ticket-value{background:var(--tr-ember)}.route-preview{width:100%;height:100%;display:block}.rp-short{color:var(--tr-ember)}.rp-long{color:var(--tr-blue)}.rp-land-surf{fill:none;stroke:var(--tr-sea);stroke-width:2.2px;opacity:.5}.rp-land{fill:var(--tr-land);stroke:var(--tr-coast);stroke-width:.5px;stroke-linejoin:round}.rp-relief{fill:var(--tr-relief);opacity:.5}.rp-islands circle{fill:var(--tr-land);stroke:var(--tr-coast);stroke-width:.4px}.rp-net{fill:none;stroke:var(--tr-coast);stroke-width:.35px;stroke-linecap:round;opacity:.4}.rp-cities circle{fill:var(--tr-coast);opacity:.55}.rp-arc-casing{fill:none;stroke:var(--tr-surface);stroke-width:2.6px;stroke-linecap:round;opacity:.85}.rp-arc{fill:none;stroke:currentColor;stroke-width:1.4px;stroke-linecap:round;stroke-dasharray:2.4 1.9}.rp-pin-halo{fill:currentColor;opacity:.2}.rp-pin-dot{fill:currentColor;stroke:var(--tr-surface);stroke-width:.5px}.rp-pin-core{fill:var(--tr-surface)}.ticket-chooser{gap:var(--tr-space-3);padding:var(--tr-space-3) var(--tr-space-4) var(--tr-space-4);background:var(--tr-surface);border:1px solid var(--tr-line);border-radius:var(--tr-radius);box-shadow:var(--tr-shadow);flex-direction:column;display:flex}.chooser-hint{margin:0;font-size:.82rem}.chooser-offer{gap:var(--tr-space-3);grid-template-columns:repeat(2,1fr);display:grid}.chooser-offer .ticket-slot{min-width:0}.chooser-offer .ticket-card{width:100%}.chooser-peeks{gap:var(--tr-space-2);border-top:1px solid var(--tr-line);padding-top:var(--tr-space-3);flex-direction:column;display:flex}.peek-toggle{align-items:center;gap:var(--tr-space-2);background:var(--tr-surface-2);border:1px solid var(--tr-line);justify-content:flex-start;width:100%;display:flex}.peek-label{font-weight:600}.peek-toggle .tray-count{margin-left:auto}.peek-body{padding:var(--tr-space-1) 0}.peek-body .ticket-cards{grid-template-columns:repeat(2,1fr);display:grid}.peek-body .ticket-card,.chooser-confirm{width:100%}@media (width<=920px){.app-main--game{display:block;overflow:visible}.game--rail,.game--tray{flex-direction:column;height:auto;display:flex}.game-board{min-height:60vh}.game-rail{overflow:visible}}@media (prefers-reduced-motion:reduce){.train-card,.ticket-card{transition:none}.hand .train-card:hover,button.ticket-card:hover{transform:none}.card-options .payment-card{transition:none}.card-options .payment-card:hover:not(:disabled){transform:none}}.payment-options{gap:var(--tr-space-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.payment-options button{align-items:center;gap:var(--tr-space-2);width:100%;display:flex}.card-options{gap:var(--tr-space-3)}.card-options .payment-card{justify-content:center;gap:var(--tr-space-3);padding:var(--tr-space-3);background:var(--tr-surface-2);border:1px solid var(--tr-line);border-radius:var(--tr-radius);flex-wrap:wrap;transition:transform .12s,box-shadow .12s,border-color .12s;position:relative}.card-options .payment-card:hover:not(:disabled){border-color:var(--tr-blue);box-shadow:var(--tr-shadow);filter:none;transform:translateY(-2px)}.card-options .payment-card:focus-visible{outline:2px solid var(--tr-blue);outline-offset:2px}.card-options .payment-card--readonly{cursor:default}.card-options .payment-card--readonly:hover{border-color:var(--tr-line);box-shadow:none;transform:none}.payment-card .train-card-glyph{width:17px;height:17px;font-size:.7rem}.payment-card .train-card-count{min-width:22px;height:19px;font-size:.72rem}.tunnel-reveal{justify-content:center;gap:var(--tr-space-3);flex-wrap:wrap;display:flex}.tunnel-result{gap:var(--tr-space-3);flex-direction:column;animation:.35s ease-out anim-fanfare-in;display:flex}.tunnel-surcharge{text-align:center;margin:0;font-weight:600}.tunnel-cannot{text-align:center;color:var(--tr-ember,#c0392b);margin:0;font-weight:600}.payment-confirm{min-height:64px;padding:0 var(--tr-space-4);justify-content:center;align-items:center;font-weight:700;display:inline-flex}.modal.scoreboard{max-width:min(880px,95vw)}.scoreboard-scroll{scrollbar-width:thin;scrollbar-color:var(--tr-line) transparent;max-height:45dvh;overflow:auto}.scoreboard-scroll::-webkit-scrollbar{width:6px;height:6px}.scoreboard-scroll::-webkit-scrollbar-track{background:0 0}.scoreboard-scroll::-webkit-scrollbar-thumb{background:var(--tr-line);border-radius:999px}.scoreboard-scroll::-webkit-scrollbar-thumb:hover{background:var(--tr-ink-soft)}.scoreboard table{border-collapse:collapse;width:100%}.scoreboard th,.scoreboard td{text-align:left;padding:4px 6px}.scoreboard th{word-break:keep-all;color:var(--tr-ink-soft);font-size:.82em;font-weight:600}.scoreboard td.player{max-width:150px}.scoreboard .player-cell{align-items:center;gap:5px;min-width:0;display:flex}.scoreboard .player-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.scoreboard td.num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.scoreboard td.longest{white-space:normal}.scoreboard td.gain{color:var(--tr-ok)}.scoreboard td.loss{color:var(--tr-danger)}.scoreboard td.total{font-size:1.05em}.scoreboard tr.winner{background:color-mix(in srgb, var(--tr-ember) 12%, transparent)}@media (width<=820px){.scoreboard-scroll{max-height:50dvh}.scoreboard thead{display:none}.scoreboard table,.scoreboard tbody,.scoreboard tr,.scoreboard td{display:block}.scoreboard tr{border:1px solid var(--tr-line);border-radius:var(--tr-radius);padding:var(--tr-space-2)}.scoreboard tr+tr{margin-top:var(--tr-space-2)}.scoreboard td.player{border-bottom:1px solid var(--tr-line);max-width:none;padding-bottom:6px;font-weight:700}.scoreboard td.num{justify-content:space-between;align-items:center;gap:var(--tr-space-3);display:flex}.scoreboard td.num:before{content:attr(data-label);color:var(--tr-ink-soft);font-size:.82em;font-weight:600}.scoreboard td.longest{white-space:nowrap}}.scoreboard-guest-card{margin-bottom:var(--tr-space-3)}.scoreboard-actions{justify-content:flex-end;gap:var(--tr-space-3);display:flex}.scoreboard-actions button{align-items:center;gap:6px;display:inline-flex}.scoreboard-rating{align-items:center;gap:var(--tr-space-2);padding:var(--tr-space-3) 0;border-top:1px solid var(--tr-line);flex-direction:column;display:flex}.scoreboard-rating-label{font-size:14px;font-weight:600}.scoreboard-rating-thanks{color:var(--tr-ok);font-weight:600}.scoreboard-rating-feedback{width:100%;max-width:360px;font:inherit;padding:var(--tr-space-2) var(--tr-space-3);border:1px solid var(--tr-line);border-radius:var(--tr-radius-sm);background:var(--tr-surface);color:var(--tr-ink);resize:vertical}.scoreboard-rating-feedback:disabled{opacity:.7}.star-rating{gap:var(--tr-space-1);display:flex}.star-rating-star{color:var(--tr-ember,#c0392b);cursor:pointer;background:0 0;border:none;padding:2px;display:inline-flex}.star-rating-star:disabled{cursor:default;opacity:.7}.scoreboard-discord{padding-bottom:var(--tr-space-2);justify-content:center;display:flex}.cell-value{justify-content:flex-end;align-items:center;gap:4px;display:inline-flex}.cell-view{color:var(--tr-ink-soft);cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;padding:2px;display:inline-flex}.cell-view:hover{color:var(--tr-ink);background:color-mix(in srgb, var(--tr-ink) 12%, transparent)}.modal.ticket-list-modal{max-width:min(680px,95vw)}.ticket-list-head{justify-content:space-between;align-items:center;gap:var(--tr-space-3);display:flex}.ticket-list-head h3{margin:0}.ticket-list-grid{gap:var(--tr-space-3);flex-wrap:wrap;justify-content:center;display:flex}.ticket-list-grid .ticket-card{width:150px}.icon-button{color:var(--tr-ink-soft);cursor:pointer;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;padding:6px;display:inline-flex}.icon-button:hover{background:color-mix(in srgb, var(--tr-ink) 12%, transparent)}.scoreboard-review{z-index:50;pointer-events:none;padding:var(--tr-space-4);justify-content:center;align-items:flex-start;display:flex;position:fixed;inset:0}.review-bar{pointer-events:auto;align-items:center;gap:var(--tr-space-4);background:var(--tr-surface);box-shadow:var(--tr-shadow);padding:var(--tr-space-2) var(--tr-space-2) var(--tr-space-2) var(--tr-space-4);border-radius:999px;display:flex}.review-caption{align-items:center;gap:6px;font-weight:600;display:inline-flex}.spectator-banner{background:color-mix(in srgb, var(--accent,#4a7) 14%, transparent);color:var(--text-muted,#889);text-align:center;border-radius:8px;grid-column:1/-1;padding:.4rem .75rem;font-size:.9rem}@media (pointer:coarse){.map-controls button,.log-scroll-bottom{width:40px;height:40px}.comms-tabs button{min-height:40px}.icon-button{min-width:40px;min-height:40px}}@media (width<=700px){.app-main--game{padding:var(--tr-space-2);display:flex;overflow:hidden}.game--dock{gap:var(--tr-space-2);--tr-dock-h:min(34dvh, 300px);grid-template:"banner""board"minmax(0,1fr)"dock"/minmax(0,1fr);display:grid}.game--dock .spectator-banner{grid-area:banner}.game--dock .game-board{min-height:0}.game--dock .board-viewport{min-height:200px}.game-dock{gap:var(--tr-space-1);min-height:0;padding-bottom:env(safe-area-inset-bottom,0px);flex-direction:column;grid-area:dock;display:flex}.dock-tabs{gap:var(--tr-space-1);display:flex}.dock-tabs button{min-width:0;min-height:40px;padding:var(--tr-space-1);white-space:nowrap;background:var(--tr-surface-2);border:1px solid var(--tr-line);flex:1;justify-content:center;align-items:center;gap:4px;font-size:.8rem;display:inline-flex;overflow:hidden}.dock-tabs button.active{background:var(--tr-ember);border-color:var(--tr-ember);color:#fff}.dock-panel{height:var(--tr-dock-h);gap:var(--tr-space-2);flex-direction:column;display:flex;overflow-y:auto}.game-dock--chooser{--tr-dock-h:min(55dvh, 480px)}.game-dock--chooser .dock-panel{height:auto;max-height:var(--tr-dock-h)}.dock-panel .hand{padding-bottom:var(--tr-space-1);flex-wrap:nowrap;overflow-x:auto}.card-options .payment-card{flex-wrap:wrap}}.route.evt-closed .bed,.route.evt-closed .slot{filter:grayscale(.85);opacity:.5}.evt-badge-bg{fill:var(--tr-surface);stroke:var(--tr-ink-soft);stroke-width:calc(.22px * var(--inv-scale));r:calc(2.1px * var(--inv-scale));filter:drop-shadow(0 0 calc(.5px * var(--inv-scale)) #00000073)}.evt-badge-nw circle{cx:calc(-2.7px * var(--inv-scale));cy:calc(-2.7px * var(--inv-scale))}.evt-badge-nw text{transform:translate(calc(-2.7px * var(--inv-scale)), calc(-2.7px * var(--inv-scale)))}.evt-badge-ne circle{cx:calc(2.7px * var(--inv-scale));cy:calc(-2.7px * var(--inv-scale))}.evt-badge-ne text{transform:translate(calc(2.7px * var(--inv-scale)), calc(-2.7px * var(--inv-scale)))}.evt-badge-sw circle{cx:calc(-2.7px * var(--inv-scale));cy:calc(2.7px * var(--inv-scale))}.evt-badge-sw text{transform:translate(calc(-2.7px * var(--inv-scale)), calc(2.7px * var(--inv-scale)))}.evt-badge-se circle{cx:calc(2.7px * var(--inv-scale));cy:calc(2.7px * var(--inv-scale))}.evt-badge-se text{transform:translate(calc(2.7px * var(--inv-scale)), calc(2.7px * var(--inv-scale)))}.evt-typhoon-glyph{font-size:calc(3px * var(--inv-scale));text-anchor:middle;dominant-baseline:central}.route.evt-sky .bed{filter:drop-shadow(0 0 calc(1.4px * var(--inv-scale)) #f0a528f2)}.payment-free-label{color:var(--tr-ok);font-weight:800}.payment-modifiers{flex-wrap:wrap;flex:1 0 100%;justify-content:center;gap:4px;display:flex}.payment-modifier{background:color-mix(in srgb, var(--tr-accent) 15%, var(--tr-surface));color:var(--tr-ink);border-radius:999px;padding:2px 7px;font-size:11px;font-weight:700}.route.evt-harvest .bed{filter:drop-shadow(0 0 calc(1.2px * var(--inv-scale)) #2a975be6)}.evt-reopen-chip circle{fill:var(--tr-ok);stroke:#fff;stroke-width:calc(.32px * var(--inv-scale));r:calc(2.6px * var(--inv-scale));filter:drop-shadow(0 0 calc(.5px * var(--inv-scale)) #00000073)}.evt-reopen-chip text{fill:#fff;font-size:calc(2.8px * var(--inv-scale));text-anchor:middle;dominant-baseline:central;font-weight:800}.broken-exclusive-chip circle{fill:#e08a1e;stroke:#fff;stroke-width:calc(.32px * var(--inv-scale));r:calc(2.6px * var(--inv-scale));filter:drop-shadow(0 0 calc(.5px * var(--inv-scale)) #00000073)}.broken-exclusive-chip text{font-size:calc(2.8px * var(--inv-scale));text-anchor:middle;dominant-baseline:central}.evt-hotspot .evt-badge-bg{fill:#e08a1e;stroke:#fff;stroke-width:calc(.36px * var(--inv-scale));r:calc(2.6px * var(--inv-scale))}.evt-hotspot-text{fill:#fff;font-size:calc(2.8px * var(--inv-scale));text-anchor:middle;dominant-baseline:central;font-weight:800}.evt-charter-chip{fill:none;stroke:var(--tr-blue);stroke-width:calc(.55px * var(--inv-scale));stroke-dasharray:calc(.9px * var(--inv-scale)) calc(.7px * var(--inv-scale));r:calc(2.6px * var(--marker-scale));filter:drop-shadow(0 0 calc(.4px * var(--inv-scale)) #00000059)}.evt-lucky-chip{fill:none;stroke:#d49a18;stroke-width:calc(.62px * var(--inv-scale));stroke-dasharray:calc(.7px * var(--inv-scale)) calc(.45px * var(--inv-scale));r:calc(3.1px * var(--marker-scale));filter:drop-shadow(0 0 calc(.4px * var(--inv-scale)) #00000059)}.evt-city-badge circle{r:calc(2.6px * var(--inv-scale));stroke:#fff;stroke-width:calc(.36px * var(--inv-scale));filter:drop-shadow(0 0 calc(.5px * var(--inv-scale)) #00000073)}.evt-city-badge text{fill:#fff;font-size:calc(2.5px * var(--inv-scale));text-anchor:middle;dominant-baseline:central;font-weight:850}.evt-lantern-host circle{fill:#d96c24}.evt-procession circle{fill:#8b4eb5}.evt-bento circle{fill:#b8643a}.evt-night-market circle{fill:#314d92}.evt-procession-trail{fill:none;stroke:#9a62bd;stroke-width:calc(.65px * var(--inv-scale));stroke-dasharray:calc(1.2px * var(--inv-scale)) calc(.8px * var(--inv-scale));opacity:.72}.evt-lucky-link{stroke:#d49a18;stroke-width:calc(.45px * var(--inv-scale));stroke-dasharray:calc(.9px * var(--inv-scale)) calc(.8px * var(--inv-scale));opacity:.58}.board-viewport[data-zoom=far] .evt-typhoon,.board-viewport[data-zoom=far] .evt-reopen-chip,.board-viewport[data-zoom=far] .evt-hotspot,.board-viewport[data-zoom=far] .evt-city-badge,.board-viewport[data-zoom=far] .evt-lucky-chip,.board-viewport[data-zoom=far] .broken-exclusive-chip,.board-viewport[data-zoom=regional] .evt-hotspot{display:none}.events-panel .tray-head{align-items:center;display:flex}.events-panel .events-chip{background:var(--tr-accent);color:#fff;border-radius:999px;margin-left:auto;padding:2px 8px;font-size:12px;font-weight:700}.events-body{gap:var(--tr-space-1);margin-top:var(--tr-space-2);flex-direction:column;display:flex}.event-row{border-radius:var(--tr-radius-sm);background:var(--tr-surface-2);flex-wrap:wrap;align-items:baseline;gap:6px;padding:4px 8px;font-size:13px;display:flex}.event-row .event-name{font-weight:700}.event-row .event-summary,.event-row .event-rounds,.event-row .event-note,.event-row .event-won{color:var(--tr-ink-soft);font-size:12px}.event-row .event-rounds{margin-left:auto}.event-free{color:var(--tr-ok);background:#3a9d5c29;font-weight:600}.event-persistent{border-left:3px solid var(--tr-accent)}.event-lucky{border-left-color:#d49a18}.event-resources{background:color-mix(in srgb, var(--tr-accent) 8%, var(--tr-surface-2))}.event-forecast{opacity:.74;border:1px dashed var(--tr-ink-soft);background:0 0}.event-forecast .event-label{color:var(--tr-accent);font-weight:700}.event-route-section{margin-top:var(--tr-space-3);padding-top:var(--tr-space-3);border-top:1px solid var(--tr-surface-2)}.event-route-section h4{margin:0 0 var(--tr-space-2);color:var(--tr-ink-soft);font-size:13px}.event-route-list{flex-direction:column;gap:2px;max-height:220px;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.event-route-item{text-align:left;border-radius:var(--tr-radius-sm);width:100%;color:var(--tr-ink);cursor:pointer;background:0 0;border:none;padding:6px 8px;font-size:13px}.event-route-item:hover{background:color-mix(in srgb, var(--tr-ink) 12%, transparent)}.notification-stack{top:var(--tr-space-6);align-items:center;gap:var(--tr-space-2);z-index:61;pointer-events:none;flex-direction:column;display:flex;position:fixed;left:50%;transform:translate(-50%)}.notification-chip{padding:var(--tr-space-2) var(--tr-space-4);background:var(--tr-ink);color:var(--tr-surface);box-shadow:var(--tr-shadow);border-radius:999px;font-size:13px;font-weight:600;animation:.28s cubic-bezier(.22,1,.36,1) tr-toast-in}.notification-chip.notification-chip--exit{animation:.2s ease-in forwards tr-toast-out}@keyframes tr-toast-in{0%{opacity:0;transform:translateY(14px)scale(.94)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes tr-toast-out{0%{opacity:1;transform:translateY(0)scale(1)}to{opacity:0;transform:translateY(10px)scale(.96)}}.notification-chip--error{background:var(--tr-danger);color:#fff}.notification-chip--notice{background:var(--tr-blue);color:#fff}.notification-chip--success{background:var(--tr-ok);color:#fff}.notification-chip--announced{background:var(--tr-accent);color:#fff}.notification-chip--bonus{background:var(--tr-ok);color:#fff}@media (prefers-reduced-motion:reduce){.notification-chip,.notification-chip.notification-chip--exit{animation:none}}.team-tally{flex-direction:column;gap:5px;display:flex;position:relative}.team-tally-head{align-items:baseline;gap:var(--tr-space-2);font-size:.7rem;line-height:1;display:flex}.team-tally-eyebrow{color:var(--tr-ink-soft);text-transform:uppercase;letter-spacing:.12em;font-weight:700}.team-tally-lead{color:var(--tr-ember);font-variant-numeric:tabular-nums;white-space:nowrap;margin-inline-start:auto;font-weight:700}.team-tally-lead.is-level{color:var(--tr-ink-soft);font-weight:600}.team-tally-bar{border-radius:var(--tr-radius-sm);background:var(--tr-surface-2);align-items:stretch;height:22px;display:flex;position:relative}.team-tally-seg{justify-content:flex-end;align-items:center;gap:var(--tr-space-1);white-space:nowrap;color:#fff;min-width:0;transition:width .35s cubic-bezier(.22,.61,.36,1);display:flex;overflow:hidden}.team-tally-seg.is-first{border-start-start-radius:var(--tr-radius-sm);border-end-start-radius:var(--tr-radius-sm);justify-content:flex-start}.team-tally-seg.is-last{border-start-end-radius:var(--tr-radius-sm);border-end-end-radius:var(--tr-radius-sm)}.team-tally-seg+.team-tally-seg{box-shadow:inset 1px 0 0 color-mix(in srgb, var(--tr-surface) 72%, transparent)}.team-tally-seg-name{letter-spacing:.02em;text-overflow:ellipsis;opacity:.82;margin-inline-start:5px;font-size:.66rem;font-weight:600;overflow:hidden}.team-tally-seg.is-mine .team-tally-seg-name{opacity:1;font-weight:800}.team-tally-seg-total{font-family:var(--tr-font-mono);font-variant-numeric:tabular-nums;letter-spacing:-.02em;flex:none;margin-inline-end:5px;font-size:.8rem;font-weight:700}.team-tally-post{inset-block:0;pointer-events:none;background:#fffc;width:1px;margin-inline-start:-.5px;position:absolute;left:50%}@media (prefers-reduced-motion:reduce){.team-tally-seg{transition:none}}.team-pool{border:1px solid var(--tr-line);background:color-mix(in srgb, var(--tr-surface) 92%, transparent);border-radius:10px;flex-direction:column;gap:.45rem;margin-top:.6rem;padding:.5rem .6rem;display:flex}.team-pool header{align-items:center;font-size:.85rem}.team-pool-cards{flex-wrap:wrap;align-items:center;gap:.3rem;min-height:1.6rem;display:flex}.team-pool-card{cursor:pointer;border:1px solid #00000040;border-radius:6px;place-items:center;width:2rem;height:2.5rem;padding:0;font-weight:700;display:grid;position:relative}.team-pool-card:disabled{opacity:.45;cursor:default}.team-pool-card.is-push{opacity:.85;width:1.7rem;height:2.1rem}.team-pool-card.is-push:disabled{opacity:.3}.team-pool-qty{background:var(--tr-ink);min-width:1rem;color:var(--tr-paper);text-align:center;border-radius:999px;padding:0 2px;font-size:.65rem;line-height:1rem;position:absolute;bottom:-3px;right:-3px}.team-pool-push{flex-direction:column;gap:.25rem;font-size:.75rem;display:flex}.team-badge{color:#fff;font-size:.7rem}.team-standings{flex-direction:column;gap:.4rem;margin-bottom:.8rem;display:flex}.team-standing{border:2px solid var(--tr-line);border-radius:10px;grid-template-columns:auto 1fr auto;align-items:center;gap:.6rem;padding:.45rem .7rem;display:grid}.team-standing.winner{background:color-mix(in srgb, var(--tr-ok) 12%, transparent)}.team-standing-name{align-items:center;gap:.3rem;font-weight:700;display:inline-flex}.team-standing-members{color:var(--tr-muted);text-overflow:ellipsis;white-space:nowrap;font-size:.85rem;overflow:hidden}.team-standing-total{font-variant-numeric:tabular-nums;font-size:1.15rem;font-weight:800}.team-standing-trail{color:var(--tr-muted);grid-column:1/-1;font-size:.8rem}.team-standing-trail.earned{color:var(--tr-ok);font-weight:700}.chat-channels{border:1px solid var(--tr-line);border-radius:999px;gap:2px;padding:2px;display:inline-flex}.chat-channel{cursor:pointer;color:var(--tr-muted);background:0 0;border:none;border-radius:999px;padding:.1rem .55rem;font-size:.72rem}.chat-channel.active{background:var(--tr-accent);color:#fff}.chat-msg.is-team{background:color-mix(in srgb, var(--tr-accent) 8%, transparent);border-radius:6px}.chat-team-tag{color:var(--tr-accent);margin-right:.25rem;font-size:.68rem}.team-board-wrap{gap:var(--tr-space-3);flex-direction:column;display:flex}.team-board-head h4{margin:0 0 2px}.team-shuffle-btn{align-items:center;gap:var(--tr-space-2);flex:none;display:inline-flex}.team-board{gap:var(--tr-space-3);flex-wrap:wrap;display:flex}.team-column{background:var(--tr-surface);border:1px solid var(--tr-line);border-radius:var(--tr-radius-lg);flex-direction:column;flex:220px;min-width:200px;display:flex;overflow:hidden}.team-column-header{justify-content:space-between;align-items:center;gap:var(--tr-space-2);padding:var(--tr-space-2) var(--tr-space-3);color:#fff;letter-spacing:.02em;cursor:default;border:none;font-weight:700;display:flex}.team-column-header.team-column-drop{cursor:pointer;animation:1.6s ease-in-out infinite team-column-pulse}.team-column-count{background:#ffffff40;border-radius:999px;padding:1px 8px;font-size:.75rem;font-weight:700}.team-chip-list{padding:var(--tr-space-2);gap:var(--tr-space-2);flex-direction:column;flex:1;margin:0;list-style:none;display:flex}.team-chip-list li{align-items:center;gap:var(--tr-space-1);display:flex}.team-chip{align-items:center;gap:var(--tr-space-2);min-width:0;padding:var(--tr-space-2);border:1px solid var(--tr-line);border-radius:var(--tr-radius-sm);background:var(--tr-surface-2);text-align:left;color:var(--tr-ink);font:inherit;flex:1;animation:.22s ease-out team-chip-land;display:flex}.team-chip svg{flex-shrink:0}.team-chip-name{white-space:nowrap;text-overflow:ellipsis;flex:auto;min-width:0;overflow:hidden}.team-chip-name em{font-style:normal}button.team-chip{cursor:grab}button.team-chip:hover{border-color:var(--tr-accent)}.team-chip.selected{border-color:var(--tr-ember);box-shadow:0 0 0 2px color-mix(in srgb, var(--tr-ember) 35%, transparent);transform:translateY(-1px)}.team-chip.dragging{opacity:.4;cursor:grabbing}.team-chip.swap-target{border-color:var(--tr-accent);border-style:dashed}button.team-chip.swap-target:hover{background:color-mix(in srgb, var(--tr-accent) 12%, var(--tr-surface-2))}.team-chip-swap-icon{color:var(--tr-accent)}.team-column.team-column-drop-target{outline:2px dashed var(--tr-accent);outline-offset:-2px}.team-join-btn{margin:0 var(--tr-space-2) var(--tr-space-2);border:1px dashed var(--tr-line);border-radius:var(--tr-radius-sm);padding:var(--tr-space-2);cursor:pointer;background:0 0;font-weight:600}@keyframes team-chip-land{0%{opacity:0;transform:translateY(-6px)scale(.97)}to{opacity:1;transform:none}}@keyframes team-column-pulse{0%,to{box-shadow:inset 0 0 0 9999px #fff0}50%{box-shadow:inset 0 0 0 9999px #ffffff1f}}@media (prefers-reduced-motion:reduce){.team-chip,.team-column-header.team-column-drop{animation:none}}
