:root{--ink: #1c1917;--muted: #57534e;--paper: #f5efe4;--panel: #fffaf2;--line: #d6d3d1;--accent: #0f766e;--accent-ink: #f0fdfa;--danger: #991b1b;--danger-bg: #fef2f2;font-family:IBM Plex Sans,system-ui,sans-serif;color:var(--ink);background:var(--paper)}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:radial-gradient(ellipse at 20% 0%,#e7dcc8 0%,transparent 50%),radial-gradient(ellipse at 90% 10%,#c5d5c8 0%,transparent 40%),var(--paper)}html.mobile-play-active,body.mobile-play-active{overflow:hidden;overscroll-behavior:none;height:100%}#root:has(.game--mobile-play){height:100svh;max-height:100svh;overflow:hidden;overscroll-behavior:none}h1,h2{font-family:"Source Serif 4",Georgia,serif;font-weight:700;margin:0 0 .4rem}button,input{font:inherit}button{cursor:pointer;border:1px solid var(--line);background:#fff;border-radius:6px;padding:.55rem .9rem}button:disabled{opacity:.45;cursor:not-allowed}button.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);font-weight:600}button.danger{background:var(--danger);border-color:var(--danger);color:#fff;font-weight:600}code{font-size:.9em}.lobby{max-width:720px;margin:0 auto;padding:3rem 1.25rem 4rem}.lobby-hero h1{font-size:clamp(2.4rem,5vw,3.4rem);letter-spacing:-.02em}.room-tag{font-weight:600;letter-spacing:.02em;color:var(--muted);font-size:.55em;vertical-align:middle}.lobby-hero .room-tag{font-size:.45em}.eyebrow{text-transform:uppercase;letter-spacing:.12em;font-size:.75rem;color:var(--muted);margin:0 0 .5rem}.lede{color:var(--muted);font-size:1.05rem;line-height:1.5;max-width:36rem}.lobby-panel{margin-top:1.75rem;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:1.25rem;display:grid;gap:1rem}.lobby-options{margin:0;padding:.65rem .75rem;border:1px solid var(--line);border-radius:8px;display:grid;gap:.45rem}.lobby-options legend{padding:0 .25rem;font-size:.78rem;font-weight:700;color:var(--muted)}.lobby-option{display:flex;align-items:flex-start;gap:.45rem;margin:0;cursor:pointer;font-size:.88rem}.lobby-option input:disabled{cursor:not-allowed}.lobby-win-fields{display:grid;gap:.35rem;padding-top:.35rem;border-top:1px solid var(--line);margin-top:.15rem}.lobby-win-heading{margin:0;font-size:.88rem;font-weight:700}.lobby-win-row{display:flex;flex-wrap:wrap;align-items:flex-end;gap:.65rem}.lobby-win-field{min-width:7rem;flex:0 1 auto}.lobby-win-field input{width:5.5rem}.lobby-async{margin-top:.75rem;display:grid;gap:.65rem}.lobby-async h3{margin:0;font-size:.95rem}.lobby-async-form{display:flex;flex-wrap:wrap;gap:.5rem;align-items:flex-end}.lobby-async-form .field{min-width:8rem;flex:1 1 8rem}.lobby-vault{display:grid;gap:.5rem;padding:.65rem .75rem;border:1px solid color-mix(in srgb,var(--text, #1c1917) 18%,transparent);border-radius:.35rem}.lobby-vault h4{margin:0;font-size:.9rem}.lobby-vault-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem}.lobby-vault-list{list-style:none;margin:0;padding:0;display:grid;gap:.45rem}.lobby-vault-list>li{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem}.lobby-vault-contact{display:grid;gap:.1rem;min-width:0}.lobby-vault-contact strong{font-size:.92rem}.lobby-vault-actions{display:flex;flex-wrap:wrap;gap:.35rem}.admin-games-panel{display:grid;gap:.85rem}.admin-games-toolbar{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.admin-games-filter{display:inline-flex;align-items:center;gap:.35rem;margin-left:auto;font-size:.9rem}.admin-games-list{list-style:none;margin:0;padding:0;display:grid;gap:.75rem}.admin-game-card{display:grid;gap:.65rem;padding:.75rem .85rem;border:1px solid color-mix(in srgb,var(--text, #1c1917) 16%,transparent);border-radius:.4rem}.admin-game-head{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.75rem}.admin-game-head h2{margin:0;font-size:1.05rem;display:flex;flex-wrap:wrap;align-items:center;gap:.4rem}.admin-game-metrics{display:flex;gap:1rem}.admin-game-metrics>div{display:grid;gap:.1rem;text-align:right}.admin-metric-label{font-size:.75rem;opacity:.7}.admin-status{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em;padding:.15rem .4rem;border-radius:.25rem;background:color-mix(in srgb,var(--text, #1c1917) 10%,transparent)}.admin-status-playing{background:color-mix(in srgb,#15803d 22%,transparent)}.admin-status-lobby{background:color-mix(in srgb,#a16207 22%,transparent)}.admin-status-finished{background:color-mix(in srgb,#57534e 22%,transparent)}.admin-game-players{list-style:none;margin:0;padding:0;display:grid;gap:.35rem}.admin-game-players>li{display:flex;flex-wrap:wrap;align-items:center;gap:.45rem}.admin-game-players>li .hint{margin-left:auto}.admin-game-actions{display:flex;flex-wrap:wrap;gap:.45rem;align-items:center}button.linkish{background:none;border:none;color:var(--accent, #0b57d0);text-decoration:underline;cursor:pointer;padding:0;font:inherit}.auth-gate .panel{max-width:22rem;margin:0 auto;display:grid;gap:.75rem}.lobby-bots{margin:.75rem 0 .25rem}.lobby-bot-row{display:flex;gap:.5rem;align-items:center;margin-top:.35rem}.lobby-bot-row select,.lobby-player-label{flex:1;min-width:0}.lobby-remove-bot{margin-left:auto;font-size:.8rem;padding:.2rem .55rem}.lobby-option-desc{display:block;color:var(--muted);font-size:.75rem;font-weight:500;margin-top:.1rem}.conn{display:flex;align-items:center;gap:.5rem;color:var(--muted);font-size:.9rem;flex-wrap:wrap}.dot{width:.55rem;height:.55rem;border-radius:50%;background:#a8a29e}.dot.open{background:#16a34a}.dot.connecting{background:#ca8a04}.dot.closed{background:#dc2626}.field{display:grid;gap:.35rem;font-weight:500}.field input,.field select,.join input{padding:.55rem .7rem;border:1px solid var(--line);border-radius:6px;background:#fff}.field select:disabled{opacity:.7;cursor:not-allowed}.row{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center}.join{display:flex;gap:.4rem}.join input{width:6.5rem;text-transform:uppercase;letter-spacing:.08em;font-weight:600}.hint{color:var(--muted);font-size:.9rem;margin:0;line-height:1.45}.room-code{font-size:1.15rem}.players{list-style:none;margin:0;padding:0;display:grid;gap:.45rem}.players li{display:flex;align-items:center;gap:.5rem}.players.roster{display:flex;flex-direction:row;flex-wrap:nowrap;gap:.3rem;align-items:stretch}.players.roster .player-card{flex:1 1 0;min-width:0;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:.12rem;padding:.3rem .15rem .35rem;border:2px solid var(--line);border-radius:6px;background:#ffffff73;text-align:center;cursor:default}.players.roster .player-card.is-me{background:#ffffffbf}.players.roster .player-card.is-turn{border-color:var(--player-accent, var(--accent));border-width:2px;box-shadow:0 0 0 1px var(--player-accent, var(--accent))}.players.roster .player-card-swatch{width:.55rem;height:.55rem;border-radius:50%;flex:0 0 auto}.players.roster .player-card-money-tier{position:absolute;top:.18rem;right:.22rem;font-size:.72rem;font-weight:700;line-height:1.15;color:var(--muted);pointer-events:none;letter-spacing:-.02em}.player-money-legend{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.35rem .75rem;margin:.2rem 0 .35rem;font-size:.62rem;color:var(--muted)}.player-money-legend-item{display:inline-flex;align-items:center;gap:.28rem;white-space:nowrap}.player-money-legend-tier{font-weight:800;color:var(--ink);min-width:1.35em;text-align:center;letter-spacing:-.02em}.players.roster .player-card-name{font-size:.72rem;font-weight:700;line-height:1.15;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.players.roster .player-card-cash{font-size:.68rem;font-weight:700;font-variant-numeric:tabular-nums;line-height:1.1;color:var(--ink)}.players.roster .player-card-debt{font-weight:600;color:#a33}.players.roster .player-card-loco{font-size:.58rem;font-weight:600;color:var(--muted);line-height:1.1;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.players.roster .player-card-pct{font-size:.68rem;font-weight:700;font-variant-numeric:tabular-nums;color:var(--muted)}.my-cash-row{display:flex;flex-wrap:wrap;align-items:center;gap:.45rem .75rem;margin:.15rem 0 .1rem}.my-cash{font-size:.85rem;font-weight:700}.inline-bank{display:inline-flex;flex-direction:row;align-items:center;gap:.3rem}.inline-bank .player-bank-label{display:inline-flex;align-items:center;gap:.1rem;font-size:.72rem;color:var(--muted)}.inline-bank .player-bank-label input{width:2.6rem;padding:.15rem .2rem;font-size:.75rem}.inline-bank .player-bank-btn{padding:.2rem .4rem;font-size:.72rem;line-height:1.2;white-space:nowrap}.players.compact li{display:grid;grid-template-columns:auto 1fr auto;grid-template-rows:auto auto;column-gap:.5rem;row-gap:.1rem;padding:.35rem 0;border-bottom:1px solid var(--line);align-items:center}.players.compact li.player-row-bank{grid-template-columns:auto auto 1fr auto 1fr auto}.players.compact .swatch{grid-row:span 2}.players.compact .player-name{grid-column:2;grid-row:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.players.compact .player-timer{font-size:.72rem;font-weight:600;color:var(--muted);font-variant-numeric:tabular-nums}.players.compact .player-bank{grid-column:4;grid-row:1 / span 2;display:flex;flex-direction:column;align-items:stretch;gap:.2rem;justify-self:center}.players.compact .player-bank-label{display:flex;align-items:center;gap:.1rem;font-size:.72rem;color:var(--muted);white-space:nowrap}.players.compact .player-bank-label input{width:2.6rem;padding:.15rem .2rem;font-size:.75rem}.players.compact .player-bank-btn{padding:.2rem .4rem;font-size:.72rem;line-height:1.2;white-space:nowrap}.players.compact .cash{grid-column:3;grid-row:1;font-weight:600;justify-self:end}.players.compact li.player-row-bank .cash{grid-column:6;grid-row:1 / span 2;align-self:center;justify-self:end}.players.compact .debt{color:var(--danger);font-weight:700}.players.compact .loco{grid-column:2;grid-row:2;display:inline-flex;align-items:center;gap:.3rem;font-size:.8rem;color:var(--muted);min-width:0}.players.compact .loco .train-icon{flex-shrink:0}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.swatch{width:.85rem;height:.85rem;border-radius:3px;display:inline-block}.banner{display:flex;justify-content:space-between;gap:.75rem;align-items:center;padding:.65rem .75rem;border-radius:8px}.game{display:flex;flex-direction:row;height:100vh;overflow:hidden;align-items:stretch}.sidebar-shell{position:relative;display:flex;flex-direction:column;align-self:stretch;min-height:0;height:100%;z-index:1}.sidebar{flex:1 1 auto;width:100%;min-width:0;max-width:none;padding:.75rem .85rem;background:#fffaf2f5;border-right:1px solid var(--line);display:flex;flex-direction:column;gap:.45rem;overflow-y:auto;min-height:0}.sidebar-resize-handle{position:absolute;top:0;right:0;z-index:30;width:10px;height:100%;transform:translate(50%);cursor:col-resize;touch-action:none;-webkit-user-select:none;user-select:none}.sidebar-resize-handle:after{content:"";position:absolute;top:0;bottom:0;left:4px;width:2px;background:transparent;transition:background .12s ease}.sidebar-resize-handle:hover:after,.game-sidebar-resizing .sidebar-resize-handle:after{background:var(--accent, #0f766e)}.game-sidebar-resizing{cursor:col-resize;-webkit-user-select:none;user-select:none}.game-sidebar-resizing .board-stage{pointer-events:none}.sidebar-head h1{font-size:1.2rem;margin:0}.sidebar-head-row{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.sidebar-head-row h1{flex:1 1 auto;min-width:0}.game-version-mark{display:inline-flex;align-items:center;gap:.15rem;margin-left:.2rem;margin-right:.15rem;vertical-align:middle}.game-version{font-family:IBM Plex Sans,system-ui,sans-serif;font-size:.68rem;font-weight:600;letter-spacing:.02em;color:var(--muted);white-space:nowrap}.game-version-info{display:inline-flex;align-items:center;justify-content:center;width:1.15rem;height:1.15rem;margin:0;padding:0;border:none;border-radius:999px;background:transparent;color:var(--muted);cursor:pointer}.game-version-info:hover,.game-version-info:focus-visible{color:var(--accent)}.game-version-link{margin:0;padding:0;border:none;background:transparent;cursor:pointer;text-decoration:underline;text-decoration-color:color-mix(in srgb,var(--muted) 55%,transparent);text-underline-offset:.12em}.game-version-link:hover,.game-version-link:focus-visible{color:var(--accent);text-decoration-color:currentColor}.changelog-dialog{max-width:min(28rem,calc(100vw - 2rem));max-height:min(36rem,calc(100vh - 2rem))}.changelog-dialog .confirm-dialog-body{flex-direction:column;align-items:stretch;min-height:0}.changelog-lede{margin:0 0 .5rem!important}.changelog-list{list-style:none;margin:0;padding:.15rem .15rem .15rem 0;display:flex;flex-direction:column;gap:.85rem;max-height:min(24rem,calc(100vh - 12rem));overflow-y:auto;overflow-x:hidden}.changelog-item{padding-bottom:.75rem;border-bottom:1px solid var(--line)}.changelog-item:last-child{padding-bottom:0;border-bottom:none}.changelog-item-head{display:flex;align-items:baseline;justify-content:space-between;gap:.5rem;margin-bottom:.15rem}.changelog-item-ver{font-size:.82rem;font-weight:700;color:var(--ink)}.changelog-item-date{font-size:.72rem;color:var(--muted);white-space:nowrap}.changelog-item-title{display:block;font-size:.85rem;margin-bottom:.2rem;color:var(--ink)}.changelog-dialog .changelog-item p{font-size:.8rem}.rules-btn{display:inline-flex;align-items:center;margin:0 0 0 .35rem;padding:.12rem .55rem;border:1px solid var(--line);border-radius:999px;background:#ffffffa6;color:var(--ink);font-size:.72rem;font-weight:600;letter-spacing:.02em;vertical-align:middle;cursor:pointer}.rules-btn:hover{background:#fff;border-color:var(--accent)}.rules-lede{margin:0 0 .75rem!important;font-size:.88rem;color:var(--muted)}.rules-scroll{overflow-y:auto;max-height:min(32rem,calc(100vh - 12rem));padding-right:.25rem}.rules-section{margin-bottom:1.1rem}.rules-section:last-child{margin-bottom:0}.rules-section h4{margin:0 0 .35rem;font-size:.92rem}.rules-section p{margin:0 0 .5rem;font-size:.84rem;line-height:1.45}.rules-section p:last-child{margin-bottom:0}.rules-where{font-size:.8rem!important;color:var(--muted)}.rules-steps,.rules-list{margin:.35rem 0 .5rem;padding-left:1.25rem;font-size:.84rem;line-height:1.45}.rules-steps li,.rules-list li{margin-bottom:.35rem}.rules-table{width:100%;margin:.35rem 0 .65rem;border-collapse:collapse;font-size:.82rem}.rules-table th,.rules-table td{padding:.3rem .45rem;border:1px solid var(--line);text-align:left}.rules-table th{background:#0000000a;font-weight:600}.game[data-board-theme=night] .rules-btn{background:#111827;border-color:#475569;color:#e2e8f0}.game[data-board-theme=night] .rules-btn:hover{border-color:#94a3b8;background:#1e293b}.game[data-board-theme=night] .rules-table th{background:#ffffff0f}.game[data-board-theme=night] .rules-where,.game[data-board-theme=night] .rules-lede,.game[data-board-theme=night] .game-version,.game[data-board-theme=night] .game-version-info{color:#94a3b8}.game[data-board-theme=night] .game-version-info:hover,.game[data-board-theme=night] .game-version-info:focus-visible{color:var(--accent)}.game[data-board-theme=night] .game-version-link:hover,.game[data-board-theme=night] .game-version-link:focus-visible{color:var(--accent)}.interface-guide-dialog{width:min(94vw,82rem);height:min(92vh,54rem);max-width:min(94vw,82rem);max-height:min(92vh,54rem);display:flex;flex-direction:column}.interface-guide-body{flex:1 1 auto;flex-direction:column;gap:.75rem;min-height:0;overflow:hidden;display:flex;align-items:stretch;width:100%;position:relative}.interface-guide-lede{margin:0;font-size:.95rem;color:var(--muted)}.interface-guide-stage{position:relative;flex:1 1 auto;min-height:0;border:1px solid var(--line);border-radius:.55rem;overflow:auto;background:#f8fafc}.interface-guide-mock{display:flex;height:100%;min-height:28rem}.interface-guide-mock-sidebar{flex:0 0 32rem;width:32rem;min-width:32rem;padding:.85rem 1rem 1rem;background:var(--panel, #fff);border-right:1px solid var(--line);display:flex;flex-direction:column;gap:.55rem;font-size:.82rem;overflow:visible}.interface-guide-mock-head{margin:0}.interface-guide-mock-head h1{margin:0;font-size:1.2rem;line-height:1.35}.interface-guide-mock-chips{margin:0}.interface-guide-mock-finished{margin:0;font-size:.78rem;line-height:1.4;padding:.45rem .55rem;justify-content:flex-start}.interface-guide-map-other{flex:0 0 auto;margin-top:.35rem;padding-top:.5rem;border-top:1px solid var(--line)}.interface-guide-map-other-title{margin:0 0 .35rem;font-size:.82rem;font-weight:700;color:var(--ink)}.interface-guide-map-other-list{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:.45rem}.interface-guide-map-other-list li{margin:0;font-size:.76rem;line-height:1.35;color:var(--ink)}.interface-guide-map-other-list strong{display:block;font-size:.78rem;font-weight:700;margin-bottom:.1rem}.interface-guide-map-other-list p{margin:0;color:var(--muted)}.interface-guide-mock-turn{margin:0;font-size:.84rem}.interface-guide-mock-chat,.interface-guide-mock-notes{margin:0}.interface-guide-mock-chat .sidebar-heading-row,.interface-guide-mock-notes .sidebar-heading-row{width:100%}.interface-guide-mock-chat .sidebar-heading-row h2,.interface-guide-mock-notes .sidebar-heading-row h2{margin:.35rem 0 .15rem;flex:0 0 auto}.interface-guide-mock-roster{margin:0}.interface-guide-mock-roster .interface-guide-roster-hotspot{flex:1 1 0;min-width:0;display:flex;position:relative}.interface-guide-money-tier-card{position:relative}.interface-guide-hotspot-btn.interface-guide-money-tier-btn{position:absolute;top:.12rem;right:.15rem;z-index:2;min-width:1.35em;padding:.06rem .18rem;margin:0;font-size:.72rem;font-weight:700;line-height:1.15;color:var(--muted);letter-spacing:-.02em;background:#ffffffeb;border:2px solid color-mix(in srgb,#0f766e 50%,var(--line));border-radius:4px;box-shadow:0 0 0 1px color-mix(in srgb,#14b8a6 22%,transparent);animation:interface-guide-hotspot-pulse 2.4s ease-in-out infinite;cursor:pointer}.interface-guide-hotspot-btn.interface-guide-money-tier-btn:hover,.interface-guide-hotspot-btn.interface-guide-money-tier-btn.is-active{border-color:#0f766e;color:var(--ink);box-shadow:0 0 0 3px color-mix(in srgb,#14b8a6 35%,transparent);animation:none}.interface-guide-money-tier-legend{gap:.28rem .55rem}.interface-guide-money-tier-legend .player-money-legend-label{font-size:.62rem;color:var(--muted);white-space:nowrap}.interface-guide-hotspot-btn.interface-guide-money-tier-legend-btn{min-width:1.35em;padding:.08rem .28rem;margin:0;font-size:.62rem;font-weight:800;line-height:1;color:var(--ink);letter-spacing:-.02em;background:#ffffffeb;border:2px solid color-mix(in srgb,#0f766e 50%,var(--line));border-radius:4px;box-shadow:0 0 0 1px color-mix(in srgb,#14b8a6 22%,transparent);animation:interface-guide-hotspot-pulse 2.4s ease-in-out infinite;cursor:pointer}.interface-guide-hotspot-btn.interface-guide-money-tier-legend-btn:hover,.interface-guide-hotspot-btn.interface-guide-money-tier-legend-btn.is-active{border-color:#0f766e;box-shadow:0 0 0 3px color-mix(in srgb,#14b8a6 35%,transparent);animation:none}.interface-guide-hotspot-btn.interface-guide-player-card-btn{flex:1 1 auto;width:100%;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:.12rem;padding:.3rem .15rem .35rem;margin:0;text-align:center;font:inherit;color:inherit;background:#ffffff73;border:2px solid color-mix(in srgb,#0f766e 50%,var(--line));border-radius:6px;box-shadow:0 0 0 1px color-mix(in srgb,#14b8a6 22%,transparent);animation:interface-guide-hotspot-pulse 2.4s ease-in-out infinite}.interface-guide-hotspot-btn.interface-guide-player-card-btn:hover,.interface-guide-hotspot-btn.interface-guide-player-card-btn.is-active{border-color:#0f766e;color:inherit;box-shadow:0 0 0 3px color-mix(in srgb,#14b8a6 35%,transparent);animation:none}.interface-guide-mock-dot{width:.55rem;height:.55rem;border-radius:999px;flex:0 0 auto}.interface-guide-mock-hand{display:flex;gap:.35rem;margin:0}.interface-guide-mock-card{flex:1 1 0;height:4.5rem;border-radius:.35rem;border:2px solid #fbbf24;background:linear-gradient(180deg,#fffbeb,#fef3c7)}.interface-guide-mock-log{margin-top:auto}.interface-guide-mock-log h2{margin:0 0 .35rem;font-size:.95rem}.interface-guide-mock-log .game-log-list{margin:0;padding-left:1rem;font-size:.78rem;color:var(--muted)}.interface-guide-mock-map{position:relative;flex:1 1 auto;min-width:0;background:#f1f5f9;overflow:hidden;display:flex;flex-direction:column}.interface-guide-map-heading{margin:0;padding:.85rem 1rem 0;font-size:.95rem;font-weight:700;color:var(--ink);flex:0 0 auto}.interface-guide-map-panels{display:flex;flex-direction:column;gap:.5rem;padding:.5rem 1rem .85rem;flex:1 1 auto;min-height:0;box-sizing:border-box}.interface-guide-map-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem;flex:1 1 auto;align-content:start}.interface-guide-map-panel{display:flex;flex-direction:column;width:100%;margin:0;padding:0;border:2px solid color-mix(in srgb,#0f766e 45%,var(--line));border-radius:.5rem;background:#fff;cursor:pointer;text-align:left;overflow:hidden;opacity:1;box-shadow:0 0 0 1px color-mix(in srgb,#14b8a6 18%,transparent);animation:interface-guide-map-pulse 2.4s ease-in-out infinite}@keyframes interface-guide-map-pulse{0%,to{box-shadow:0 0 0 1px color-mix(in srgb,#14b8a6 18%,transparent)}50%{box-shadow:0 0 0 3px color-mix(in srgb,#14b8a6 28%,transparent)}}.interface-guide-map-panel:hover,.interface-guide-map-panel.is-active{border-color:#0f766e;box-shadow:0 0 0 3px color-mix(in srgb,#14b8a6 35%,transparent);animation:none}.interface-guide-map-thumb-canvas{display:block;width:100%;height:7.5rem;vertical-align:top}.interface-guide-map-svg{display:block;width:100%;height:auto;vertical-align:top}.interface-guide-map-panel-label{display:block;padding:.4rem .6rem;font-size:.82rem;font-weight:600;color:var(--ink);border-top:1px solid var(--line);background:#fafaf9}.interface-guide-hotspot-btn{opacity:1;cursor:pointer;color:#1c1917;flex:0 0 auto;position:relative}.interface-guide-hotspot-btn.interface-guide-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:1.7rem;height:1.7rem;min-width:1.7rem;min-height:1.7rem;padding:0;margin:.2rem 0 0;border:2px solid color-mix(in srgb,#0f766e 50%,var(--line));border-radius:6px;background:#fff;box-shadow:0 0 0 1px color-mix(in srgb,#14b8a6 22%,transparent);animation:interface-guide-hotspot-pulse 2.4s ease-in-out infinite}.interface-guide-hotspot-btn.interface-guide-chip-btn{padding:.12rem .45rem;font-size:inherit;font-weight:inherit;line-height:inherit;border:2px solid color-mix(in srgb,#0f766e 45%,var(--line));border-radius:6px;background:#fff;box-shadow:0 0 0 1px color-mix(in srgb,#14b8a6 20%,transparent);animation:interface-guide-hotspot-pulse 2.4s ease-in-out infinite}@keyframes interface-guide-hotspot-pulse{0%,to{box-shadow:0 0 0 1px color-mix(in srgb,#14b8a6 22%,transparent)}50%{box-shadow:0 0 0 3px color-mix(in srgb,#14b8a6 32%,transparent)}}.interface-guide-hotspot-btn.game-switcher-trigger{display:inline-flex;align-items:center;gap:.15rem;vertical-align:middle}.interface-guide-hotspot-btn.rules-btn.interface-guide-chip-btn{margin-left:.35rem;font-size:.62em;font-weight:700;letter-spacing:.04em;vertical-align:middle}.interface-guide-mock-sidebar .sidebar-heading-row>.interface-guide-hotspot-btn.interface-guide-trailing{margin-left:auto}.interface-guide-hotspot-btn:hover,.interface-guide-hotspot-btn.is-active{border-color:#0f766e;color:#0f766e;box-shadow:0 0 0 3px color-mix(in srgb,#14b8a6 35%,transparent);animation:none}.interface-guide-index-row{display:flex;flex-wrap:wrap;gap:1rem 1.5rem;flex:0 0 auto}.interface-guide-index-group{flex:1 1 14rem;min-width:0}.interface-guide-index-title{margin:0 0 .35rem;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.interface-guide-detail{position:absolute;inset:50% auto auto 50%;transform:translate(-50%,-50%);width:min(26rem,calc(100% - 2.5rem));max-width:26rem;z-index:10;padding:.85rem 1rem;border-radius:.55rem;border:2px solid color-mix(in srgb,#0f766e 50%,var(--line));background:#fff;box-shadow:0 0 0 1px color-mix(in srgb,#14b8a6 22%,transparent);animation:interface-guide-hotspot-pulse 2.4s ease-in-out infinite}.interface-guide-detail h4{margin:0 0 .4rem;font-size:1rem}.interface-guide-detail p{margin:0 0 .65rem;font-size:.9rem;line-height:1.5;color:var(--muted)}.interface-guide-detail button{font-size:.85rem}.interface-guide-index{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.4rem;flex:0 0 auto}.interface-guide-index button{margin:0;padding:.28rem .6rem;border:1px solid var(--line);border-radius:999px;background:#fff;font-size:.8rem;cursor:pointer}.interface-guide-index button:hover,.interface-guide-index button.is-active{border-color:#0f766e;color:#0f766e;background:#ecfdf5}@media(max-width:720px){.interface-guide-dialog{width:calc(100vw - 1rem);height:calc(100vh - 1rem);max-width:calc(100vw - 1rem);max-height:calc(100vh - 1rem)}.interface-guide-mock{flex-direction:column;min-height:0}.interface-guide-mock-sidebar{flex:1 1 auto;width:auto;min-width:0}.interface-guide-mock-map{flex:0 0 8rem}.interface-guide-detail{width:min(22rem,calc(100% - 1.5rem))}}.dropped-loads-menu{position:relative;flex:0 0 auto;align-self:flex-start}.dropped-loads-btn{padding:.2rem .45rem;font-size:.68rem;font-weight:700;white-space:nowrap}.dropped-loads-popover{display:none;position:absolute;right:0;top:calc(100% + .25rem);z-index:40;min-width:12rem;max-width:min(18rem,70vw);max-height:16rem;overflow:auto;padding:.45rem .55rem;background:var(--panel);border:1px solid var(--line);border-radius:8px;box-shadow:0 8px 24px #00000024}.dropped-loads-menu:hover .dropped-loads-popover,.dropped-loads-menu:focus-within .dropped-loads-popover{display:block}.dropped-loads-empty{margin:0;font-size:.75rem;color:var(--muted);font-style:italic}.dropped-loads-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.45rem;font-size:.78rem}.dropped-loads-list>li>ul{list-style:none;margin:.15rem 0 0 1.6rem;padding:0;color:var(--muted);font-size:.72rem}.dropped-loads-commodity{display:flex;align-items:center;gap:.35rem}.city-load-tip-dropped .city-load-tip-supply{color:#0f766e;font-weight:700}.sidebar-meta-chips{display:flex;flex-wrap:wrap;align-items:center;gap:.3rem;margin-top:.3rem}.meta-chip{display:inline-flex;align-items:center;gap:.25rem;max-width:100%;padding:.12rem .4rem;border:1px solid var(--line);border-radius:999px;background:#ffffffb3;font-size:.68rem;font-weight:600;color:var(--muted);line-height:1.25;white-space:nowrap}.meta-chip-control{cursor:pointer;-webkit-user-select:none;user-select:none;margin:0}.meta-chip-control input{margin:0;accent-color:var(--accent, #0f766e)}.meta-chip.board-theme-picker{padding-right:.2rem}.meta-chip .board-theme-label{white-space:nowrap}.meta-chip.board-theme-picker select{max-width:7.5rem;min-width:0;font:inherit;font-size:.68rem;font-weight:600;color:var(--ink);background:#fff;border:1px solid var(--line);border-radius:999px;padding:.05rem .25rem;cursor:pointer}.sidebar-head-controls{flex:0 1 auto;display:flex;flex-direction:column;align-items:flex-end;gap:.25rem;max-width:min(13.5rem,52%);margin-left:auto}.turn-reminder{flex:0 0 auto;display:inline-flex;align-items:center;gap:.3rem;margin:0;font-size:.72rem;font-weight:600;color:var(--muted);white-space:nowrap;cursor:pointer;-webkit-user-select:none;user-select:none}.turn-reminder input{margin:0;accent-color:var(--accent, #0f766e)}.board-theme-picker{display:flex;align-items:center;justify-content:flex-end;gap:.35rem;margin:0;font-size:.72rem;font-weight:600;color:var(--muted)}.board-theme-label{white-space:nowrap;flex:0 0 auto}.board-theme-picker select{flex:1 1 auto;min-width:0;max-width:100%;font:inherit;font-size:.72rem;font-weight:600;color:var(--ink);background:#fff;border:1px solid var(--line);border-radius:6px;padding:.2rem .3rem;cursor:pointer}.game[data-board-theme=slate]{--ink: #0f172a;--muted: #64748b;--paper: #eef2f7;--panel: #f8fafc;--line: #cbd5e1;--accent: #0d9488;--accent-ink: #f0fdfa;--danger: #b91c1c;--danger-bg: #fef2f2}.game[data-board-theme=slate] .sidebar{background:#f8fafcf5;border-right-color:#cbd5e1}.game[data-board-theme=slate] .dock-panel{background:#f8fafceb;border-color:#94a3b873;box-shadow:0 10px 28px #0f172a2e}.game[data-board-theme=night]{--ink: #e2e8f0;--muted: #94a3b8;--paper: #0b1220;--panel: #111827;--line: #334155;--accent: #22d3ee;--accent-ink: #082f49;--danger: #f87171;--danger-bg: #450a0a}.game[data-board-theme=night] .sidebar{background:#111827f5;border-right-color:#334155;color:var(--ink)}.game[data-board-theme=night] .sidebar h1,.game[data-board-theme=night] .sidebar h2{color:#f8fafc}.game[data-board-theme=night] .meta-chip{background:#1e293be6;border-color:#475569;color:#cbd5e1}.game[data-board-theme=night] .meta-chip.board-theme-picker select{background:#0f172a;border-color:#475569;color:#e2e8f0}.game[data-board-theme=night] .game-log-list{background:#0f172ad9;border-color:#475569;color:#e2e8f0}.game[data-board-theme=night] button{background:#1f2937;border-color:#475569;color:#e2e8f0}.game[data-board-theme=night] button.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.game[data-board-theme=night] .dock-panel{background:#111827e6;border-color:#475569b3;box-shadow:0 12px 32px #00000073;color:#e2e8f0}.game[data-board-theme=night] .train-card,.game[data-board-theme=night] .dock-train .train-card{background:transparent;color:#e2e8f0}.game[data-board-theme=night] .train-slot{background:#1f2937;border-color:#64748b}.game[data-board-theme=night] .train-slot.filled{background:#0f172a;border-color:var(--accent)}.game[data-board-theme=night] .players.roster .player-card{background:#0f172aa6;border-color:#475569}.game[data-board-theme=night] .players.roster .player-card.is-me{background:#1e293be6}.game[data-board-theme=night] .players.roster .player-card.is-turn{border-color:#67e8f9;border-width:2px;box-shadow:0 0 0 2px #0b1220,0 0 0 4px #67e8f9,0 0 14px #67e8f980}.game[data-board-theme=night] .board-theme-picker select,.game[data-board-theme=night] .players.compact li{background:transparent;border-color:#334155;color:#e2e8f0}.game[data-board-theme=night] .board-theme-picker select{background:#1f2937}.game[data-board-theme=night] .confirm-dialog{background:#111827;border-color:#334155;color:#e2e8f0}.game[data-board-theme=night] .confirm-dialog-body h3{color:#f8fafc}.game[data-board-theme=night] .confirm-dialog-body p{color:#e2e8f0}.game[data-board-theme=night] .event-announce-dialog{background:#0f172a;border-color:#64748b;color:#f8fafc;box-shadow:0 16px 48px #0000008c}.game[data-board-theme=night] .event-announce-eyebrow{color:#94a3b8}.game[data-board-theme=night] .event-announce-body h3{color:#f8fafc}.game[data-board-theme=night] .event-announce-text{color:#f1f5f9;font-weight:500}.game[data-board-theme=night] .event-announce-summary,.game[data-board-theme=night] .event-announce-cash{background:#22d3ee1f;border:1px solid rgba(103,232,249,.35);color:#f8fafc}.game[data-board-theme=night] .event-announce-players li{background:#1e293bf2;border:1px solid #475569;color:#f1f5f9}.game[data-board-theme=night] .event-announce-players li.acked{background:#16a34a47;border-color:#4ade80}.game[data-board-theme=night] .event-announce-name{color:#f8fafc}.game[data-board-theme=night] .event-announce-check{background:#0b1220;border-color:#94a3b8;color:transparent}.game[data-board-theme=night] .event-announce-check.on{border-color:#4ade80;background:#15803d;color:#f0fdf4}.game[data-board-theme=night] .event-announce-waiting{color:#cbd5e1}.game[data-board-theme=night] .event-announce-cloud{background:#1e293b;border-color:#64748b}.game[data-board-theme=night] .event-banner{background:#164e63;border-color:#22d3ee;color:#ecfeff}.game[data-board-theme=night] .event-card{background:#0f172a;border-color:#22d3ee;color:#e2e8f0}.game[data-board-theme=night] .event-card strong{color:#f8fafc}.game[data-board-theme=night] .demand-card,.hand-popover[data-board-theme=night] .demand-card{background:#0a0a0a;color:#e2e8f0}.game[data-board-theme=night] .demand-col .demand-city,.hand-popover[data-board-theme=night] .demand-col .demand-city{color:#f8fafc}.game[data-board-theme=night] .demand-col+.demand-col,.hand-popover[data-board-theme=night] .demand-col+.demand-col{border-left-color:#334155}.game[data-board-theme=night] .demand-col:hover,.game[data-board-theme=night] .demand-col-hot,.hand-popover[data-board-theme=night] .demand-col:hover,.hand-popover[data-board-theme=night] .demand-col-hot{background:#eab30829;border-color:#eab30866}.game[data-board-theme=atlas]{--ink: #0a0a0a;--muted: #525252;--paper: #f5f5f5;--panel: #ffffff;--line: #e5e5e5;--accent: #059669;--accent-ink: #ecfdf5;--danger: #dc2626;--danger-bg: #fef2f2}.game[data-board-theme=atlas] .sidebar{background:#fffffffa;border-right-color:#e5e5e5}.game[data-board-theme=atlas] .dock-panel{background:#fffffff0;border-color:#a3a3a359;box-shadow:0 8px 24px #0000001f}.sidebar-head .room-tag{display:inline-block;margin-left:.25rem;padding:.05rem .35rem;border:1px solid var(--line);border-radius:999px;font-size:.62em;font-weight:700;letter-spacing:.04em;vertical-align:middle;color:var(--muted);background:#ffffffa6}.game-switcher{position:relative;display:inline-flex;vertical-align:middle;margin-left:.25rem}.game-switcher-trigger{display:inline-flex;align-items:center;gap:.2rem;margin:0;padding:.05rem .3rem .05rem .1rem;border:1px solid var(--line);border-radius:999px;background:#ffffffa6;color:inherit;font:inherit;cursor:pointer;line-height:1.2}.game-switcher-trigger .room-tag{margin:0;border:none;padding:.05rem .2rem;background:transparent}.game-switcher-caret{font-size:.65em;color:var(--muted)}.game-switcher-badge{min-width:1.1em;padding:.05rem .3rem;border-radius:999px;background:#0f766e;color:#fff;font-size:.58em;font-weight:700;line-height:1.3}.game-switcher-panel{position:absolute;top:calc(100% + .35rem);left:0;z-index:40;width:min(18.5rem,calc(100vw - 2rem));padding:.45rem;border:1px solid var(--line);border-radius:8px;background:#fff;box-shadow:0 10px 28px #0f172a2e}.game-switcher-panel-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.35rem;font-size:.78rem}.game-switcher-error{margin:0 0 .35rem;color:#b91c1c;font-size:.75rem}.game-switcher-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.3rem;max-height:16rem;overflow:auto}.game-switcher-item{display:flex;flex-direction:column;gap:.25rem;width:100%;margin:0;padding:.4rem .45rem;border:1px solid var(--line);border-radius:6px;background:#fafaf9;color:inherit;font:inherit;text-align:left;cursor:pointer}.game-switcher-item:hover:not(:disabled){border-color:#0f766e;background:#f0fdfa}.game-switcher-item.is-here{cursor:default;opacity:.85;background:#f5f5f4}.game-switcher-item.is-your-turn{border-color:#0f766e;box-shadow:inset 3px 0 #0f766e}.game-switcher-item-top{display:flex;flex-wrap:wrap;align-items:baseline;gap:.35rem .5rem;font-size:.78rem}.game-switcher-item-top .meta{color:var(--muted);font-size:.72rem}.game-switcher-seats{display:flex;flex-wrap:wrap;align-items:center;gap:.28rem}.game-switcher-seat{width:.7rem;height:.7rem;border-radius:999px;border:1px solid rgba(0,0,0,.2);flex:0 0 auto}.game-switcher-seat.is-current{outline:2px solid #0f172a;outline-offset:1px}.game-switcher-turn-name{font-size:.72rem;font-weight:600;color:var(--ink);margin-left:.15rem}.game-switcher-turn-name.meta{font-weight:500;color:var(--muted)}.game[data-board-theme=night] .game-switcher-trigger,.game[data-board-theme=night] .game-switcher-panel{background:#111827;border-color:#475569;color:#e2e8f0;box-shadow:0 12px 32px #00000073}.game[data-board-theme=night] .game-switcher-item{background:#1e293b;border-color:#475569;color:#e2e8f0}.game[data-board-theme=night] .game-switcher-item:hover:not(:disabled){background:#0f766e33;border-color:#22d3ee}.game[data-board-theme=night] .game-switcher-seat.is-current{outline-color:#f8fafc}.game[data-board-theme=night] .game-switcher-turn-name{color:#f1f5f9}.sidebar h2{font-size:.95rem;margin:.35rem 0 .15rem}.sidebar-heading-row{display:flex;align-items:center;gap:.35rem}.sidebar-heading-row h2{margin:.35rem 0 .15rem}.player-notes-toggle,.player-chat-toggle,.load-directory-toggle,.own-track-toggle,.demand-slot-toggle{position:relative;display:inline-flex;align-items:center;justify-content:center;width:1.7rem;height:1.7rem;margin:.2rem 0 0;padding:0;border-radius:6px;border:1px solid var(--line);background:#fff;color:var(--ink);cursor:pointer}.demand-slot-toggle{--demand-slot-group: #d6d3d1;--demand-slot-new: #0f766e}.demand-slot-toggle:hover,.demand-slot-toggle[aria-pressed=true]{border-color:var(--accent)}.demand-slot-graphic{display:block}.load-directory-toggle,.own-track-toggle{margin-left:auto}.player-notes-toggle:hover,.player-notes-toggle.is-open,.player-chat-toggle:hover,.player-chat-toggle.is-open,.load-directory-toggle:hover,.load-directory-toggle.is-open,.own-track-toggle:hover,.own-track-toggle.is-active{border-color:var(--accent);color:var(--accent)}.player-notes-badge,.player-chat-badge{position:absolute;top:-.35rem;right:-.35rem;min-width:1rem;height:1rem;padding:0 .2rem;border-radius:999px;background:var(--accent);color:var(--accent-ink);font-size:.62rem;font-weight:700;line-height:1rem;text-align:center}.player-notes-panel{margin:.15rem 0 .25rem;padding:.4rem;border:1px solid var(--line);border-radius:8px;background:#ffffffb3;display:flex;flex-direction:column;gap:.35rem}.player-notes-empty{margin:0;font-size:.78rem;color:var(--muted);font-style:italic}.player-notes-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.3rem;max-height:12rem;overflow-y:auto}.player-notes-item{display:flex;align-items:flex-start;gap:.3rem}.player-notes-check{display:flex;align-items:center;margin-top:.35rem;flex:0 0 auto}.player-notes-check input{margin:0;accent-color:var(--accent)}.player-notes-bullet{flex:0 0 auto;margin-top:.2rem;font-size:.95rem;line-height:1.2;color:var(--ink)}.player-notes-input{flex:1 1 auto;min-width:0;resize:vertical;min-height:2.4em;font:inherit;font-size:.78rem;line-height:1.35;color:var(--ink);background:#fff;border:1px solid var(--line);border-radius:4px;padding:.25rem .35rem}.player-notes-actions{display:flex;flex-wrap:wrap;gap:.35rem}.player-notes-actions button{font-size:.78rem;padding:.3rem .55rem}.player-notes-delete:disabled{opacity:.45;cursor:not-allowed}.game[data-board-theme=night] .player-notes-toggle,.game[data-board-theme=night] .player-chat-toggle,.game[data-board-theme=night] .load-directory-toggle,.game[data-board-theme=night] .demand-slot-toggle{background:#1f2937;border-color:#475569;color:#e2e8f0}.game[data-board-theme=night] .demand-slot-toggle{--demand-slot-group: #475569;--demand-slot-new: #2dd4bf}.game[data-board-theme=night] .player-notes-toggle:hover,.game[data-board-theme=night] .player-notes-toggle.is-open,.game[data-board-theme=night] .player-chat-toggle:hover,.game[data-board-theme=night] .player-chat-toggle.is-open,.game[data-board-theme=night] .load-directory-toggle:hover,.game[data-board-theme=night] .load-directory-toggle.is-open,.game[data-board-theme=night] .demand-slot-toggle:hover,.game[data-board-theme=night] .demand-slot-toggle[aria-pressed=true]{border-color:var(--accent);color:var(--accent)}.load-directory-pane{position:absolute;inset:0;z-index:60;display:flex;flex-direction:column;gap:.65rem;padding:.85rem 1rem 1rem;background:#fffaf2fa;border-left:1px solid var(--line);overflow:hidden}.load-directory-pane-head{display:flex;flex-direction:column;align-items:stretch;gap:.5rem;flex:0 0 auto}.load-directory-pane-title-row{display:flex;align-items:center;justify-content:space-between;gap:.65rem;width:100%}.load-directory-pane-head h3{margin:0;font-size:1.35rem;font-family:"Source Serif 4",Georgia,serif;white-space:nowrap;min-width:0;overflow:hidden;text-overflow:ellipsis}.load-directory-close{flex:0 0 auto;font-size:.92rem;padding:.4rem .75rem;min-height:40px}.load-directory-backdrop{position:absolute;inset:0;z-index:69;margin:0;padding:0;border:none;background:#1c191759;cursor:pointer}.load-directory-pane--mobile{z-index:70;inset:0;max-height:none;border-left:none;border-radius:0;box-shadow:none;padding-top:calc(.85rem + env(safe-area-inset-top,0px));padding-bottom:calc(1rem + env(safe-area-inset-bottom,0px))}.load-directory-sort{display:flex;gap:.35rem;flex:0 1 auto}.load-directory-sort button{flex:0 1 auto;font-size:.88rem;padding:.35rem .65rem;white-space:nowrap}.load-directory-sort button.is-active{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.load-directory-scroll{flex:1 1 auto;min-height:0;min-width:0;display:flex;flex-direction:column;overflow:hidden}.load-directory-list{list-style:none;margin:0;padding:.15rem 0 0;flex:1 1 auto;min-height:0;width:100%;overflow:auto;overscroll-behavior:contain;column-gap:1.35rem;column-fill:auto}.load-directory-list--commodity{column-width:14rem}.load-directory-list--city{column-width:12.5rem}.load-directory-list--mobile{column-width:auto;column-count:1;columns:unset}.load-directory-list--mobile>li{padding-bottom:.4rem;margin-bottom:.4rem}.load-directory-list--mobile.load-directory-list--commodity>li{flex-direction:row;flex-wrap:wrap;align-items:baseline;column-gap:.5rem;row-gap:.1rem}.load-directory-list--mobile .load-directory-chip{font-size:.88rem;gap:.3rem}.load-directory-list--mobile .load-directory-chip img{width:18px;height:18px}.load-directory-list--mobile .load-directory-supply{font-size:.76rem}.load-directory-list--mobile .load-directory-cities{font-size:.78rem;flex-basis:100%}.load-directory-list--mobile .load-directory-city{font-size:.92rem;margin-bottom:.15rem}.load-directory-list>li{break-inside:avoid;page-break-inside:avoid;padding-bottom:.55rem;margin-bottom:.55rem;border-bottom:1px solid rgba(214,211,209,.65);line-height:1.35}.load-directory-list>li:last-child{border-bottom:none}.load-directory-list--commodity>li{display:flex;flex-direction:column;gap:.2rem}.load-directory-supply{font-size:.84rem;font-weight:600;color:var(--ink);line-height:1.3}.load-directory-cities{font-size:.88rem;color:var(--muted);line-height:1.35}.load-directory-city{display:block;font-size:1rem;margin-bottom:.25rem}.load-directory-loads{display:flex;flex-wrap:wrap;gap:.35rem .55rem}.load-directory-chip{display:inline-flex;align-items:center;gap:.35rem;font-size:.92rem;font-weight:600;color:var(--ink);white-space:nowrap}.load-directory-chip img{width:22px;height:22px;object-fit:contain;flex-shrink:0}.load-directory-list--commodity .load-directory-chip{font-size:1.08rem;gap:.45rem}.load-directory-list--commodity .load-directory-chip img{width:26px;height:26px}.load-directory-list--city .load-directory-chip{font-size:.9rem}.load-directory-list--city .load-directory-chip img{width:20px;height:20px}.game[data-board-theme=night] .load-directory-pane{background:#0f172af7;border-left-color:#475569}.game[data-board-theme=night] .load-directory-pane-head h3{color:#e2e8f0}.game[data-board-theme=night] .load-directory-list>li{border-bottom-color:#475569a6}.game[data-board-theme=night] .load-directory-chip{color:#e2e8f0}.game[data-board-theme=night] .load-directory-supply{color:#cbd5e1}.game[data-board-theme=night] .load-directory-cities{color:#94a3b8}.game[data-board-theme=night] .load-directory-city{color:#e2e8f0}.game[data-board-theme=night] .player-notes-panel{background:#0f172ad9;border-color:#475569}.game[data-board-theme=night] .player-notes-input{background:#0f172a;border-color:#475569;color:#e2e8f0}.game[data-board-theme=night] .player-notes-bullet{color:#e2e8f0}.player-chat-panel{margin:.15rem 0 .25rem;padding:.4rem;border:1px solid var(--line);border-radius:8px;background:#ffffffb3;display:flex;flex-direction:column;gap:.35rem}.player-chat-empty{margin:0;font-size:.78rem;color:var(--muted);font-style:italic}.player-chat-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.4rem;max-height:14rem;overflow-y:auto;overflow-x:hidden}.player-chat-msg{min-width:0;padding:.2rem .3rem;border-radius:4px;background:#ffffff8c}.player-chat-msg.is-me{background:#0f766e1a}.player-chat-msg.is-resume{box-shadow:0 1px 0 0 var(--accent)}.player-chat-msg-head{display:flex;align-items:baseline;justify-content:space-between;gap:.4rem}.player-chat-name{font-size:.72rem;font-weight:700;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.player-chat-time{flex:0 0 auto;font-size:.64rem;color:var(--muted)}.player-chat-text{margin:.12rem 0 0;font-size:.78rem;line-height:1.35;word-break:break-word}.player-chat-compose{display:flex;gap:.3rem}.player-chat-input{flex:1 1 auto;min-width:0;font:inherit;font-size:.78rem;border:1px solid var(--line);border-radius:4px;padding:.3rem .4rem;background:#fff;color:var(--ink)}.player-chat-compose button{flex:0 0 auto;font-size:.78rem;padding:.3rem .55rem}.player-chat-compose button:disabled{opacity:.45;cursor:not-allowed}.game[data-board-theme=night] .player-chat-panel{background:#0f172ad9;border-color:#475569}.game[data-board-theme=night] .player-chat-msg{background:#0f172aa6}.game[data-board-theme=night] .player-chat-msg.is-me{background:#22d3ee1f}.game[data-board-theme=night] .player-chat-input{background:#0f172a;border-color:#475569;color:#e2e8f0}.sidebar .phase,.sidebar .turn,.sidebar .spend{margin:0;color:var(--muted);font-size:.82rem}.sidebar .win-conditions{margin:.15rem 0 0;color:var(--ink);font-size:.8rem;font-weight:600;letter-spacing:.01em}.sidebar .turn .meta{font-weight:400;color:var(--muted)}.sidebar .muted{color:var(--muted);font-size:.78rem}.game-log{margin-top:.35rem;flex:0 0 auto;min-width:0;padding-top:.35rem;border-top:1px solid var(--line)}.game-log h2{margin:0 0 .25rem}.game-log-list{list-style:none;margin:0;padding:.25rem .35rem;max-height:calc(6.75em + .5rem);overflow-y:auto;overflow-x:hidden;background:#ffffff8c;border:1px solid var(--line);border-radius:4px;font-size:.78rem;line-height:1.35;color:#1c1917}.game-log-list li{padding:.05rem 0;word-break:break-word}.game-log-empty{color:var(--muted);font-style:italic}.howto{margin:0;padding-left:1.1rem;color:var(--muted);font-size:.9rem;line-height:1.45}.upgrade-row{display:flex;flex-direction:column;gap:.35rem}.upgrade-row button{padding:.4rem .55rem;font-size:.85rem}.player-row{position:relative}.hand{display:flex;flex-direction:column;gap:.35rem}.exchange-cards-btn{margin-top:.35rem;width:100%;font-size:.82rem;padding:.4rem .55rem}.demand-card{position:relative;background:#fff;border:2.5px solid var(--line);border-radius:8px;padding:.85rem .4rem .4rem;font-size:.78rem}.demand-card-match-0{border-color:#eab308}.demand-card-match-1{border-color:#16a34a}.demand-card-match-many{border-color:#ea580c}.game[data-board-theme=night] .demand-card-match-0,.hand-popover[data-board-theme=night] .demand-card-match-0{border-color:#facc15}.game[data-board-theme=night] .demand-card-match-1,.hand-popover[data-board-theme=night] .demand-card-match-1{border-color:#4ade80}.game[data-board-theme=night] .demand-card-match-many,.hand-popover[data-board-theme=night] .demand-card-match-many{border-color:#fb923c}.demand-card-compact{padding:.8rem .35rem .35rem}.demand-card-id{position:absolute;top:.25rem;left:.4rem;color:var(--muted);font-size:.65rem;font-weight:600;line-height:1;z-index:1}.demand-cols{display:grid;grid-template-columns:repeat(3,1fr);gap:.2rem;min-height:7.75rem}.demand-card-compact .demand-cols{min-height:7.25rem}.demand-col{display:flex;flex-direction:column;align-items:center;justify-content:space-between;gap:.15rem;text-align:center;border-radius:6px;padding:.15rem .15rem .2rem;border:1px solid transparent;min-width:0;min-height:0;height:100%;cursor:help}.demand-col+.demand-col{border-left:1px solid var(--line)}.demand-col:hover,.demand-col-hot{background:#eab3082e;border-color:#eab30859}.demand-col .demand-city{font-size:.7rem;line-height:1.1;font-weight:700;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;width:100%;flex:0 0 auto}.demand-city-markable{cursor:pointer;border-radius:3px;padding:.05rem .1rem}.demand-city-markable:hover{outline:1px dashed rgba(22,163,74,.45)}.demand-col .demand-city-marked{color:#15803d}.game[data-board-theme=night] .demand-col .demand-city-marked,.hand-popover[data-board-theme=night] .demand-col .demand-city-marked{color:#4ade80}.demand-icon-wrap{flex:1 1 auto;display:flex;align-items:center;justify-content:center;width:100%;min-height:0;padding:.05rem 0;position:relative}.demand-col .demand-load-icon,.demand-icon-wrap .load-icon{width:min(100%,5.25rem);height:auto;max-height:5.25rem;aspect-ratio:1;object-fit:contain}.demand-col .reward{color:var(--ink);font-weight:700;font-size:.78rem;flex:0 0 auto;line-height:1;padding:.12rem .28rem;border:1px solid transparent;border-radius:4px}.demand-col .reward-carried{color:#15803d;border-color:#15803d;background:#16a34a14}.game[data-board-theme=night] .demand-col .reward,.hand-popover[data-board-theme=night] .demand-col .reward{color:#f8fafc}.game[data-board-theme=night] .demand-col .reward-carried,.hand-popover[data-board-theme=night] .demand-col .reward-carried{color:#4ade80;border-color:#4ade80;background:#4ade801f}.load-icon{display:block;flex-shrink:0;object-fit:contain;-webkit-user-select:none;user-select:none}.load-chip-row{display:flex;flex-wrap:wrap;gap:.35rem;align-items:center}.dump-pickup-slots{margin-top:.65rem}.load-chip-btn{position:relative;padding:.15rem;border-radius:8px;background:#ffffffe6;line-height:0}.load-chip-btn.danger{border-color:var(--danger)}.load-chip-btn .supply-badge{position:absolute;right:-2px;bottom:-2px;min-width:1.1rem;height:1.1rem;padding:0 .2rem;border-radius:999px;background:var(--accent);color:#fff;font-size:.65rem;font-weight:700;line-height:1.1rem;text-align:center}.board-stage{position:relative;flex:0 0 auto;height:100vh;min-width:0;min-height:0;display:flex;background:#1a4a5c}.board-stage-scroll{display:block}.board-stage-scroll .board-scroll{width:100%;height:100%;overflow:auto;overscroll-behavior:contain}.board-map-grabbing .board-scroll{cursor:grabbing}.board-map-autoscroll .board-scroll{cursor:all-scroll}.board-map-grabbing .board-scroll-inner,.board-map-autoscroll .board-scroll-inner{pointer-events:none}.board-stage-scroll .board-scroll-pad{display:flex;align-items:center;justify-content:center;box-sizing:border-box}.board-stage-scroll .board-scroll-inner{position:relative;flex:0 0 auto}.board-stage-scroll .board-wrap,.board-stage-scroll .board-wrap-flush{height:100%}.map-minimap-stack{position:absolute;top:12px;right:12px;z-index:6;display:flex;flex-direction:column;gap:6px;align-items:stretch;pointer-events:none}.map-minimap-stack>*{pointer-events:auto}.map-minimap{position:relative;border:1px solid rgba(15,40,55,.55);border-radius:4px;box-shadow:0 2px 10px #00000059;background:#1a4a5ce6;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;overflow:hidden}.map-minimap-fit{cursor:default}.map-minimap:active:not(.map-minimap-fit){cursor:grabbing}.map-minimap-canvas{display:block;width:100%;height:100%;pointer-events:none}.map-minimap-band{position:absolute;border:2px solid rgba(255,255,255,.92);background:#ffffff2e;box-sizing:border-box;pointer-events:none}.map-zoom-bar{display:flex;align-items:center;gap:4px;padding:4px 5px;border:1px solid rgba(15,40,55,.55);border-radius:4px;background:#1a4a5ceb;box-shadow:0 2px 8px #0000004d}.map-zoom-btn{flex:0 0 auto;width:22px;height:22px;padding:0;border:1px solid rgba(255,255,255,.35);border-radius:3px;background:#ffffff1f;color:#f8fafc;font-size:14px;font-weight:700;line-height:1;cursor:pointer}.map-zoom-btn:disabled{opacity:.35;cursor:default}.map-zoom-btn:not(:disabled):hover{background:#ffffff38}.map-zoom-slider{flex:1 1 auto;min-width:0;margin:0;accent-color:#e2e8f0;cursor:pointer}.board-stage .board-wrap,.board-wrap-flush{flex:1;min-width:0;min-height:0;width:100%;height:100%;padding:0;margin:0;overflow:hidden;display:flex;justify-content:flex-end;align-items:stretch}.board-stage .board-modern{display:block;width:100%;height:100%;max-width:none;max-height:none}.train-card{background:#fff;border:1px solid var(--line);border-radius:8px;padding:.45rem .55rem;display:flex;flex-direction:row;align-items:stretch;gap:.55rem;width:max-content}.train-card-meta{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:.12rem;min-width:5.5rem;line-height:1.15}.train-card-icon{flex-shrink:0;width:52px;height:32px;margin-bottom:.1rem}.train-icon{display:block;flex-shrink:0}.train-card-label{font-weight:700;font-size:.88rem;white-space:nowrap}.train-card-speed{font-size:.75rem;color:var(--muted);white-space:nowrap}.train-card-move{color:var(--accent);font-weight:600;font-size:.75rem;white-space:nowrap}.train-slots{display:flex;gap:.4rem;justify-content:flex-start;align-items:center;flex-wrap:nowrap}.train-slot{width:76px;height:76px;border-radius:50%;border:2px dashed #a8a29e;background:#f5f5f4;display:flex;align-items:center;justify-content:center;padding:0;flex:0 0 76px;box-sizing:border-box}.train-slot.filled{border-style:solid;border-color:var(--accent);background:#fff;cursor:pointer}.train-slot.filled:disabled{cursor:default;opacity:1}.confirm-backdrop{position:fixed;inset:0;z-index:100;background:#1c191773;display:flex;align-items:center;justify-content:center;padding:1rem}.confirm-dialog{background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 12px 40px #0000002e;max-width:22rem;width:100%;padding:1rem 1.1rem;display:flex;flex-direction:column;gap:.85rem}.confirm-dialog-body{display:flex;gap:.75rem;align-items:flex-start}.confirm-dialog-body h3{margin:0 0 .35rem;font-size:1.05rem;font-family:"Source Serif 4",Georgia,serif}.confirm-dialog-body p{margin:0;font-size:.9rem;line-height:1.35;color:var(--muted)}.confirm-dialog-body .confirm-warn{color:var(--danger)}.nowrap{white-space:nowrap}.confirm-dialog-actions{display:flex;justify-content:flex-end;gap:.45rem}.confirm-dialog.seat-password-dialog{max-width:min(32rem,calc(100vw - 2rem));width:100%}.confirm-dialog.seat-password-dialog .confirm-dialog-body{flex-direction:column;align-items:stretch;width:100%}.confirm-dialog.seat-password-dialog form{display:flex;flex-direction:column;gap:.75rem;width:100%}.confirm-dialog.seat-password-dialog .field input{width:100%;box-sizing:border-box}.confirm-dialog.rules-dialog{width:min(68rem,calc(100vw - 2rem));max-width:min(68rem,calc(100vw - 2rem));max-height:min(42rem,calc(100vh - 2rem))}.confirm-dialog.rules-dialog .confirm-dialog-body{flex-direction:column;align-items:stretch;min-height:0}.future-plan-float{position:absolute;z-index:40;width:min(15.5rem,calc(100% - 1.5rem));background:#fffcf5f5;border:1px solid var(--line);border-radius:8px;box-shadow:0 6px 18px #00000029;overflow:hidden;-webkit-user-select:none;user-select:none}.future-plan-float-drag{display:flex;align-items:baseline;justify-content:space-between;gap:.5rem;padding:.4rem .55rem;cursor:grab;background:linear-gradient(180deg,#efe6d8,#e7ddd0);border-bottom:1px solid var(--line);font-family:"Source Serif 4",Georgia,serif;font-size:.95rem}.future-plan-float-drag:active{cursor:grabbing}.future-plan-float-hint{font-family:system-ui,sans-serif;font-size:.7rem;color:var(--muted);font-weight:500}.future-plan-float-body{padding:.5rem .55rem .55rem;display:flex;flex-direction:column;gap:.45rem}.future-plan-float-body p{margin:0;font-size:.82rem;line-height:1.35;color:var(--ink, #1c1917)}.future-plan-float-actions{display:flex;gap:.35rem}.future-plan-float-actions button{flex:1;font-size:.8rem;padding:.28rem .4rem}.game[data-board-theme=night] .future-plan-float{background:#24221ef5;border-color:#4a453c}.game[data-board-theme=night] .future-plan-float-drag{background:linear-gradient(180deg,#3a3630,#322e28);border-bottom-color:#4a453c}.game[data-board-theme=night] .future-plan-float-body p{color:#e8e2d6}.map-dock-se .end-turn-plan{width:100%;margin-bottom:.35rem;font-size:.82rem;line-height:1.2;white-space:normal}.map-dock-se button.end-turn-guarded{opacity:.48;cursor:pointer}.map-dock-se button.primary.end-turn-guarded{background:#78716c;border-color:#78716c;color:#fafaf9}.future-drop-alert-list{margin:.45rem 0;padding-left:1.1rem;font-size:.9rem;line-height:1.4;color:var(--ink, #1c1917)}.future-drop-alert-list .hint{color:var(--muted);font-weight:400}.future-plan-auto-continue{display:flex;align-items:flex-start;gap:.5rem;margin-top:.75rem;font-size:.88rem;line-height:1.35;cursor:pointer}.future-plan-auto-continue input{margin-top:.2rem;flex-shrink:0}.future-plan-summary-dialog{max-width:32rem;max-height:min(85vh,36rem);overflow:auto}.future-plan-summary-heading{margin:.75rem 0 .35rem;font-size:.9rem;font-weight:600}.future-plan-event-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.75rem}.future-plan-event-item{padding:.55rem .65rem;border:1px solid var(--line);border-radius:8px;background:#fff}.future-plan-event-item h4{margin:0 0 .25rem;font-size:.95rem}.future-plan-event-item .event-announce-text,.future-plan-event-item .event-announce-summary{margin:.2rem 0;font-size:.88rem;line-height:1.35}.future-plan-event-item .event-cash-changes{margin:.35rem 0 0;padding-left:1rem;font-size:.85rem}.route-choice-dialog{max-width:26rem}.route-options{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.4rem}.route-option{display:flex;align-items:flex-start;gap:.55rem;padding:.5rem .6rem;border:1px solid var(--line);border-radius:8px;cursor:pointer}.route-option:hover{background:#1c19170a}.route-option.is-selected{border-color:var(--accent, #1c1917);background:#1c19170f}.route-option input{margin-top:.2rem}.route-option-text{display:flex;flex-direction:column;gap:.1rem}.route-option-name{font-weight:600;font-size:.92rem}.route-option-meta{font-size:.82rem;color:var(--muted)}.route-choice-hint{margin:0;font-size:.82rem;color:var(--muted)}.event-announce-backdrop{z-index:40}.event-announce-dialog{max-width:28rem;width:min(92vw,28rem)}.event-announce-body{align-items:flex-start;gap:.75rem;flex-wrap:wrap}.event-announce-copy{flex:1 1 12rem;min-width:0}.event-announce-cloud{flex:0 0 auto;display:block;width:128px;height:76px;border-radius:12px;background:#ffffff8c;border:1px solid rgba(168,162,158,.45);margin-left:auto}.event-announce-eyebrow{margin:0 0 .25rem;text-transform:uppercase;letter-spacing:.1em;font-size:.72rem;color:var(--muted);font-weight:700}.event-announce-body h3{margin-bottom:.45rem}.event-announce-text{margin:0;line-height:1.45}.event-announce-summary{margin:.65rem 0 0;padding:.55rem .65rem;background:#0f766e14;border-radius:6px;font-size:.9rem}.event-impacted-block{margin-top:.65rem}.event-impacted-label{margin:0 0 .35rem;font-size:.82rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:#0f766e}.event-impacted-none{margin-top:.65rem}.event-impacted-players{margin-top:0}.event-impacted-players li{justify-content:flex-start}.event-announce-cash{margin-top:.65rem;padding:.6rem .7rem;background:#0f766e14;border:1px solid rgba(15,118,110,.18);border-radius:7px;display:grid;gap:.35rem;font-size:.88rem}.event-announce-cash-row{display:flex;justify-content:space-between;gap:.75rem}.event-announce-cash-row>span{white-space:nowrap;font-variant-numeric:tabular-nums}.event-announce-players{list-style:none;margin:.85rem 0 0;padding:0;display:flex;flex-direction:column;gap:.35rem}.event-announce-players li{display:flex;align-items:center;gap:.5rem;padding:.35rem .45rem;border-radius:6px;background:#00000008}.event-announce-players li.acked{background:#16a34a1a}.event-announce-name{flex:1 1 auto;font-weight:600;font-size:.92rem}.event-announce-check{width:1.35rem;height:1.35rem;border-radius:4px;border:1.5px solid #a8a29e;display:inline-flex;align-items:center;justify-content:center;font-size:.85rem;font-weight:700;color:transparent;background:#fff}.event-announce-check.on{border-color:#15803d;background:#15803d;color:#fff}.event-announce-waiting{margin:0;width:100%;text-align:center;color:var(--muted);font-size:.9rem}.endgame-dialog{max-width:min(32rem,94vw)}.endgame-dialog.is-victory{border-color:#ca8a04}.endgame-celebration{position:relative;overflow:hidden;text-align:center;padding:.85rem .75rem .35rem;background:linear-gradient(180deg,#facc1547,#fff0);border-radius:10px 10px 0 0}.endgame-trophy{font-size:2.4rem;line-height:1;color:#ca8a04;text-shadow:0 2px 0 rgba(120,53,15,.25)}.endgame-winner-banner{margin:.25rem 0 0;font-family:"Source Serif 4",Georgia,serif;font-size:1.45rem;font-weight:700;color:var(--ink)}.endgame-confetti{pointer-events:none;position:absolute;inset:0}.endgame-confetti-bit{position:absolute;top:-8px;width:7px;height:10px;border-radius:1px;animation:endgame-fall 1.8s linear infinite}.endgame-confetti-bit.bit-0{left:8%;background:#ef4444;animation-delay:0s}.endgame-confetti-bit.bit-1{left:22%;background:#3b82f6;animation-delay:.2s}.endgame-confetti-bit.bit-2{left:38%;background:#22c55e;animation-delay:.45s}.endgame-confetti-bit.bit-3{left:55%;background:#eab308;animation-delay:.1s}.endgame-confetti-bit.bit-4{left:72%;background:#a855f7;animation-delay:.35s}.endgame-confetti-bit.bit-5{left:88%;background:#f97316;animation-delay:.55s}@keyframes endgame-fall{0%{transform:translateY(0) rotate(0);opacity:1}to{transform:translateY(110px) rotate(240deg);opacity:0}}.endgame-standings{width:100%;border-collapse:collapse;margin-top:.75rem;font-size:.88rem}.endgame-standings th,.endgame-standings td{text-align:left;padding:.35rem .4rem;border-bottom:1px solid var(--line)}.endgame-standings th{color:var(--muted);font-weight:600;font-size:.75rem;text-transform:uppercase;letter-spacing:.03em}.endgame-standings td:nth-child(2),.endgame-standings td:nth-child(3),.endgame-standings th:nth-child(2),.endgame-standings th:nth-child(3){text-align:right;white-space:nowrap}.endgame-standings td .swatch{display:inline-block;width:.7rem;height:.7rem;border-radius:999px;margin-right:.35rem;vertical-align:middle}.endgame-standings tr.meets td{font-weight:600}.endgame-standings tr.winner td{background:#facc1533;color:var(--ink)}.advanced-stats-backdrop{z-index:60}.advanced-stats-dialog{max-width:min(96vw,50.4rem);width:min(96vw,50.4rem)}.advanced-stats-scroll{overflow:auto;max-height:min(75vh,40rem);margin-top:.5rem}.advanced-stats-table{border-collapse:collapse;font-size:.82rem;width:100%}.advanced-stats-table th,.advanced-stats-table td{border-bottom:1px solid color-mix(in srgb,var(--ink) 12%,transparent);padding:.28rem .5rem;text-align:right;white-space:nowrap;vertical-align:baseline}.advanced-stats-table thead th{position:sticky;top:0;background:var(--panel, #fff);z-index:2;font-weight:700;color:var(--ink);border-bottom:1px solid color-mix(in srgb,var(--ink) 22%,transparent)}.advanced-stats-place{display:block;font-size:.72rem;font-weight:600;color:var(--muted);line-height:1.2}.advanced-stats-table tbody th{text-align:left;font-weight:600;color:var(--muted);position:sticky;left:0;background:var(--panel, #fff);z-index:1}.train-loads-inline{display:flex;flex-direction:column;gap:.25rem}.train-loads-inline .empty-loads{font-size:.78rem}.map-dock{position:absolute;z-index:12;pointer-events:none;max-width:min(340px,40vw)}.map-dock>*{pointer-events:auto}.map-dock-sw{left:.65rem;bottom:.65rem;max-width:min(360px,48vw)}.map-dock-sw .dock-ops{max-height:min(42vh,320px);overflow-y:auto}.dock-stack{display:flex;flex-direction:column;gap:.45rem;align-items:stretch}.dock-train{padding:.55rem .75rem;width:max-content;max-width:100%}.dock-train .train-card{border:none;padding:0;background:transparent;width:max-content}.map-dock-se{right:.65rem;bottom:.65rem}.map-dock-gulf{left:66.25%;bottom:.2rem;transform:translate(-50%);max-width:none;width:max-content}.map-dock-nw{left:.65rem;top:.65rem;bottom:auto;transform:none;max-width:none;width:max-content}.map-dock-nw-stack{left:.65rem;top:.65rem;bottom:auto;transform:none;max-width:min(360px,48vw);width:max-content;display:flex;flex-direction:column;align-items:flex-start;gap:.45rem}.map-dock-nw-stack .dock-ops{max-height:min(42vh,320px);overflow-y:auto}.map-dock-gulf .dock-train,.map-dock-nw .dock-train,.map-dock-nw-stack .dock-train{padding:.35rem .5rem}.map-dock-gulf .train-card,.map-dock-nw .train-card,.map-dock-nw-stack .train-card{gap:.45rem;padding:.35rem .45rem;align-items:center}.map-dock-gulf .train-card-meta,.map-dock-nw .train-card-meta,.map-dock-nw-stack .train-card-meta{min-width:4.8rem;gap:.08rem}.map-dock-gulf .train-card-icon,.map-dock-nw .train-card-icon,.map-dock-nw-stack .train-card-icon{width:46px;height:28px}.map-dock-gulf .train-card-label,.map-dock-nw .train-card-label,.map-dock-nw-stack .train-card-label{font-size:.82rem}.map-dock-gulf .train-card-speed,.map-dock-gulf .train-card-move,.map-dock-nw .train-card-speed,.map-dock-nw .train-card-move,.map-dock-nw-stack .train-card-speed,.map-dock-nw-stack .train-card-move{font-size:.7rem}.map-dock-gulf .train-slots,.map-dock-nw .train-slots,.map-dock-nw-stack .train-slots{gap:.3rem}.map-dock-gulf .train-slot,.map-dock-nw .train-slot,.map-dock-nw-stack .train-slot{width:76px;height:76px;flex:0 0 76px}.dock-panel{background:#fffaf2f0;border:1px solid rgba(255,255,255,.35);border-radius:10px;padding:.55rem .65rem;box-shadow:0 8px 24px #00000038;display:flex;flex-direction:column;gap:.4rem;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.dock-title{margin:0;font-family:"Source Serif 4",Georgia,serif;font-size:.95rem;font-weight:700}.dock-title.tip{cursor:help;text-decoration:underline dotted rgba(0,0,0,.35);text-underline-offset:3px;width:fit-content}.dock-hint{margin:0;color:var(--muted);font-size:.78rem;line-height:1.3}.dock-panel .loan-row{display:flex;flex-wrap:wrap;gap:.35rem;align-items:center}.dock-panel .loan-row input[type=number]{width:3.6rem;margin:0 .15rem;padding:.25rem .3rem}.dock-panel .debt-owed{margin:0;color:var(--danger);font-weight:600;font-size:.8rem}.dock-panel .deliver-btn{display:flex;align-items:center;gap:.35rem;justify-content:flex-start;padding:.35rem .55rem;font-size:.82rem}.dock-panel .end-turn{margin-top:.15rem}.event-badge{align-self:flex-start;background:#0e7490;color:#fff;border:none;border-radius:6px;padding:.3rem .55rem;font:inherit;font-size:.78rem;font-weight:600;cursor:pointer}.event-panel{display:flex;flex-direction:column;gap:.35rem}.event-card{background:#ecfeff;border:1px solid #a5f3fc;border-radius:6px;padding:.35rem .45rem;font-size:.78rem}.event-card p{margin:.2rem 0;line-height:1.3}.event-banner{background:#ecfeff;border-color:#67e8f9}.hand-popover{position:absolute;left:100%;top:0;margin-left:.5rem;z-index:20;width:min(320px,70vw);background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:.45rem;box-shadow:0 8px 24px #0000001f;display:flex;flex-direction:column;gap:.3rem}.hand-popover-portal{position:fixed;left:auto;top:auto;margin:0;z-index:200;width:min(320px,calc(100vw - 16px));max-height:calc(100vh - 16px);overflow-y:auto;box-shadow:0 12px 36px #00000047}.hand-popover-spotlight{border-width:2px;border-color:var(--player-accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--player-accent) 38%,transparent),0 12px 36px #00000047}.hand-popover-title{font-weight:600;font-size:.9rem}.hand-popover-timer,.hand-popover-cash{display:flex;flex-direction:column;gap:.1rem;padding:.15rem 0 .25rem}.hand-popover-cash-detail,.hand-popover-timer-detail{font-size:.78rem;font-variant-numeric:tabular-nums;color:var(--ink)}.hand-popover-loads{padding:.35rem 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.hand-popover-section-title{color:var(--muted);font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.hand-popover-load-list{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.3rem}.hand-popover-load{display:inline-flex;align-items:center;gap:.25rem;padding:.15rem .4rem .15rem .2rem;border:1px solid var(--line);border-radius:999px;background:#fff;font-size:.76rem;font-weight:600}.hand-popover-empty{margin-top:.25rem;color:var(--muted);font-size:.76rem}.chip{display:inline-block;margin-right:.25rem;margin-bottom:.2rem;padding:.15rem .4rem;font-size:.78rem}.banner{display:flex;justify-content:space-between;gap:.5rem;align-items:center;flex-wrap:wrap;padding:.45rem .55rem;border-radius:8px;font-size:.82rem}.banner.error{background:var(--danger-bg);color:var(--danger)}.bank-loan{margin:0}.city-load-tip{position:absolute;z-index:30;pointer-events:none;min-width:140px;max-width:240px;padding:.45rem .6rem;background:#fffcf5f7;border:1px solid var(--line);border-radius:6px;box-shadow:0 6px 18px #00000024;font-size:.8rem;color:#1c1917}.city-load-tip-title{font-weight:700;margin-bottom:.25rem}.city-load-tip-empty{color:var(--muted);font-size:.78rem}.city-load-tip-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.25rem}.city-load-tip-list li{display:flex;align-items:center;gap:.4rem}.city-load-tip-name{font-weight:600;flex:1 1 auto;min-width:0}.city-load-tip-supply{color:var(--muted);font-size:.75rem;white-space:nowrap}.board-wrap{overflow:auto;padding:1rem;display:flex;justify-content:center;align-items:flex-start;position:relative}.board-modern{background:#1a4a5c;max-width:min(100%,1400px);width:100%;height:auto}.map-preview{display:grid;grid-template-columns:minmax(260px,320px) 1fr;min-height:100vh;background:#1a4a5c}.map-preview-side{padding:1.25rem;background:var(--panel);border-right:1px solid var(--line);display:flex;flex-direction:column;gap:.75rem;overflow:auto}.map-preview-side .lede{color:var(--muted);font-size:.95rem;line-height:1.45;margin:0}.hint-list{margin:0;padding-left:1.1rem;color:var(--muted);font-size:.9rem;line-height:1.5}.map-preview-board{overflow:auto;padding:1rem;display:flex;justify-content:center;align-items:flex-start}@media(max-width:900px){.map-preview{grid-template-columns:1fr}.game:not(.game--mobile-play){flex-direction:column;height:auto;overflow:visible}.game:not(.game--mobile-play) .sidebar-shell{width:100%!important;max-width:none!important;min-width:0!important;flex:1 1 auto!important;height:auto}.game:not(.game--mobile-play) .sidebar{border-right:none;border-bottom:1px solid var(--line);max-height:42vh;max-width:none!important;min-width:0!important;width:100%!important;flex:1 1 auto!important}.game:not(.game--mobile-play) .sidebar-resize-handle{display:none}.game:not(.game--mobile-play) .board-stage{width:100%!important;flex:1 1 auto!important;height:55vh;min-height:55vh}.game:not(.game--mobile-play) .map-dock{max-width:min(240px,46vw)}.game:not(.game--mobile-play) .map-dock-sw{max-width:min(320px,92vw)}.game:not(.game--mobile-play) .map-dock-gulf{left:66.25%;max-width:min(320px,78vw)}.game:not(.game--mobile-play) .map-dock-nw{left:.5rem;top:.5rem;max-width:min(320px,78vw)}.game:not(.game--mobile-play) .map-dock-nw-stack{left:.5rem;top:.5rem;max-width:min(320px,92vw)}}.mobile-panel,.board-stage-host{display:contents}.game.game--mobile-play{--mobile-dock-height: 9rem;--mobile-top-height: 3.25rem;position:relative;display:flex;flex-direction:column;width:100%;max-width:100vw;height:100%;min-height:0;overflow:hidden;box-sizing:border-box;background:var(--paper)}.game.game--mobile-play .mobile-game-top{position:relative;flex:0 0 auto;z-index:30;padding:calc(.55rem + env(safe-area-inset-top,0px)) .75rem .45rem;border-bottom:1px solid var(--line);background:var(--panel)}.mobile-game-top-row{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;font-size:.82rem}.mobile-game-top-sub{margin-top:.25rem;color:var(--muted);font-size:.78rem}.mobile-game-room{font-weight:600;letter-spacing:.04em}.mobile-game-pill{font-size:.72rem;padding:.15rem .45rem;border-radius:999px;background:var(--line);color:var(--muted)}.mobile-game-pill-turn{background:#166534;color:#ecfdf5}.mobile-game-phase{margin-left:auto;color:var(--muted)}.mobile-game-player{font-weight:500;color:var(--ink)}.mobile-game-meta{margin-left:auto;text-align:right}.mobile-game-top-loads{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem;margin-top:.35rem}.mobile-game-top-load-btn{display:flex;align-items:center;justify-content:center;padding:.15rem;border:1px solid var(--line);border-radius:6px;background:var(--panel);min-width:2.25rem;min-height:2.25rem}.mobile-game-top-load-btn:not(:disabled):active{transform:scale(.96)}.mobile-game-top-load-btn:disabled{opacity:.85;cursor:default}.mobile-game-top-load-empty{display:inline-block;width:2.25rem;height:2.25rem;border:1px dashed var(--line);border-radius:6px;opacity:.35}.mobile-map-viewport{position:relative;flex:1 1 0;min-height:0;width:100%;overflow:hidden;z-index:1;touch-action:none}.game.game--mobile-play .mobile-map-viewport .board-stage{position:absolute;inset:0;width:100%!important;height:100%!important;max-width:none!important;max-height:none!important;min-height:0!important;flex:none!important;overflow:hidden}.game.game--mobile-play .mobile-map-viewport .board-stage.board-stage-scroll{display:flex;flex-direction:column}.game.game--mobile-play .mobile-map-viewport .board-stage .board-scroll{flex:1 1 0;min-height:0;height:0;width:100%;overflow:auto;overscroll-behavior:contain;touch-action:pan-x pan-y pinch-zoom}.game.game--mobile-play .map-dock,.game.game--mobile-play .map-dock-nw-stack{display:none!important}.game.game--mobile-play .mobile-game-dock{position:relative;flex:0 0 auto;z-index:30;display:flex;flex-direction:column;padding:0;padding-bottom:env(safe-area-inset-bottom,0px);border-top:1px solid var(--line);background:var(--panel);max-height:min(50svh,440px);overflow:hidden}.mobile-game-dock-main{padding:.55rem .65rem .4rem;flex:0 0 auto}.mobile-demand-strip{margin-bottom:.45rem}.mobile-demand-strip-head{display:flex;align-items:center;justify-content:space-between;gap:.45rem;margin-bottom:.3rem}.mobile-demand-strip-hint{margin:0;flex:1 1 auto;min-width:0;font-size:.65rem;color:var(--muted);line-height:1.2}.mobile-demand-strip-head .own-track-toggle{flex:0 0 auto}.mobile-sidebar-sheet-head{display:flex;align-items:center;justify-content:space-between;gap:.65rem;position:sticky;top:0;z-index:3;margin:0 0 .55rem;padding:.15rem 0 .55rem;border-bottom:1px solid var(--line);background:var(--panel)}.mobile-sidebar-sheet-title{margin:0;font-size:1.05rem;font-weight:600}.mobile-sidebar-sheet-close{flex-shrink:0;min-height:36px;padding:.35rem .75rem;border:1px solid var(--line);border-radius:6px;background:#f5f5f4;font-size:.88rem}.mobile-demand-strip-scroll{display:flex;gap:.45rem;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:.15rem}.mobile-demand-mini-card{position:relative;flex:0 0 auto;min-width:min(92vw,280px);padding:1.1rem .35rem .35rem;border:1px solid var(--line);border-radius:8px;background:#fff}.mobile-demand-mini-id{position:absolute;top:.2rem;left:.4rem;font-size:.62rem;font-weight:600;color:var(--muted)}.mobile-demand-mini-cols{display:grid;grid-template-columns:repeat(3,1fr);gap:.25rem}.mobile-demand-mini-seg{display:flex;flex-direction:column;align-items:center;gap:.1rem;min-height:64px;padding:.25rem .15rem;border:1px solid var(--line);border-radius:6px;background:#fafaf9;font:inherit;color:inherit;cursor:pointer}.mobile-demand-mini-seg-active{border-color:#eab308d9;background:#eab30829;box-shadow:0 0 0 1px #eab30859}.mobile-demand-mini-seg-carried:not(.mobile-demand-mini-seg-active){border-color:#16a34a73}.mobile-demand-mini-icon{width:26px;height:26px;object-fit:contain}.mobile-demand-mini-city{font-size:.62rem;font-weight:700;line-height:1.15;text-align:center;max-width:100%}.mobile-demand-mini-city.demand-city-markable{cursor:pointer;border-radius:2px;padding:0 .1rem}.mobile-demand-mini-seg .demand-city-marked{color:#15803d}.game[data-board-theme=night] .mobile-demand-mini-seg .demand-city-marked{color:#4ade80}.mobile-demand-mini-reward{font-size:.62rem;color:var(--muted);font-weight:600}.mobile-game-dock-chips{display:flex;gap:.4rem;overflow-x:auto;padding-bottom:.45rem;-webkit-overflow-scrolling:touch}.mobile-game-dock-chips .load-chip-btn{flex-shrink:0}.mobile-game-dock-chips .deliver-btn{flex-shrink:0;font-size:.78rem;padding:.35rem .55rem}.mobile-game-dock-primary-row{display:flex;flex-wrap:wrap;align-items:stretch;gap:.45rem;margin-bottom:0}.mobile-game-dock-primary-row .mobile-game-dock-btn,.mobile-game-dock-primary-row .primary{flex:1 1 0;min-height:44px;font-size:.88rem}.mobile-game-dock-upgrade{flex:0 1 auto;min-height:44px;font-size:.78rem;padding:.4rem .5rem;border:1px solid var(--line);border-radius:8px;background:#fff;white-space:nowrap}.mobile-game-dock-btn{border:1px solid var(--line);border-radius:8px;background:#fff;padding:.45rem .5rem}.mobile-game-dock-tabs{display:grid;grid-template-columns:repeat(4,1fr);gap:.35rem;margin-top:auto;padding:.4rem .65rem calc(.55rem + env(safe-area-inset-bottom,0px));border-top:1px solid var(--line);background:var(--panel)}.mobile-game-dock-tab{min-height:40px;border:none;border-radius:6px;background:#f5f5f4;font-size:.72rem;color:var(--muted)}.mobile-game-dock-tab-active{background:#e7e5e4;color:var(--ink);font-weight:600}.game.game--mobile-play .sidebar-shell{position:fixed;left:0;right:0;bottom:0;z-index:60;max-height:min(78vh,640px);width:100%!important;max-width:none!important;min-width:0!important;flex:none!important;transform:translateY(105%);transition:transform .22s ease;pointer-events:none;box-shadow:0 -8px 32px #0000002e}.game.game--mobile-play .sidebar-shell.mobile-sheet-open{transform:translateY(0);pointer-events:auto}.game.game--mobile-play .sidebar-resize-handle{display:none}.game.game--mobile-play .sidebar{border-right:none;border-top:1px solid var(--line);max-height:min(78vh,640px);width:100%!important;overflow:auto}.game.game--mobile-play .mobile-panel{display:none}.game.game--mobile-play .mobile-panel.mobile-panel-active{display:block}.mobile-sheet-backdrop{position:fixed;inset:0;z-index:55;background:#1c191773}.game.game--mobile-play .map-minimap-stack{display:none!important}.game.game--mobile-play .player-card{cursor:pointer}.game.game--mobile-play .player-card-spotlight-open{outline:2px solid var(--player-accent);outline-offset:1px}.mobile-player-spotlight{margin-top:.65rem;padding:.55rem .45rem .75rem;border:2px solid var(--player-accent);border-radius:8px;background:#fff}.mobile-player-spotlight-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.45rem;position:sticky;top:0;background:#fff;z-index:1;padding-bottom:.25rem}.mobile-player-spotlight-close{flex-shrink:0;min-height:36px;padding:.35rem .65rem;border:1px solid var(--line);border-radius:6px;background:#f5f5f4;font-size:.82rem}.mobile-player-spotlight-meta{margin:0 0 .5rem;font-size:.85rem}.mobile-player-spotlight-hint{margin:.35rem 0 0;font-size:.82rem}.digitizer{display:grid;grid-template-columns:minmax(280px,340px) 1fr;height:100vh;overflow:hidden;background:#1c1917}.dig-sidebar{overflow:auto;padding:1rem;background:var(--panel);border-right:1px solid var(--line);display:flex;flex-direction:column;gap:.65rem;color:var(--ink)}.dig-top{display:flex;flex-direction:column;align-items:flex-start;gap:.5rem}.dig-top h1{font-size:1.35rem}.dig-status{background:#f5f5f4;border-radius:6px;padding:.5rem .65rem}.dig-tools,.dig-types{display:flex;flex-wrap:wrap;gap:.35rem}.dig-tools button,.dig-types button{font-size:.85rem;padding:.4rem .55rem}.dig-sidebar .field select{padding:.45rem .55rem;border:1px solid var(--line);border-radius:6px;background:#fff}.check{display:flex;align-items:center;gap:.45rem;font-size:.92rem}.dig-canvas{width:100%;height:100%;display:block;cursor:crosshair;touch-action:none}@media(max-width:900px){.digitizer{grid-template-columns:1fr;grid-template-rows:auto 55vh}}.my-games-panel{display:flex;flex-direction:column;gap:1rem;max-width:36rem}.my-games-install .privacy-note{margin-top:.65rem}.my-games-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.75rem}.my-games-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.85rem}.my-games-card{border:1px solid var(--line);border-radius:10px;padding:.85rem .95rem;background:#fff;display:flex;flex-direction:column;gap:.45rem}.my-games-card-mine{border-color:var(--accent);box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 35%,transparent)}.my-games-card-top{display:flex;flex-wrap:wrap;align-items:baseline;gap:.5rem .75rem}.my-games-code{font-size:1.15rem;letter-spacing:.04em}.my-games-phase{margin:0;color:var(--muted);font-size:.9rem}.my-games-turn{margin:0;display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}.my-games-current-name{font-size:1.05rem}.my-games-players{list-style:none;margin:.15rem 0 .35rem;padding:0;display:flex;flex-wrap:wrap;gap:.35rem .75rem;font-size:.88rem;color:var(--muted)}.my-games-players li{display:inline-flex;align-items:center;gap:.3rem}.my-games-players li.is-current{color:var(--ink);font-weight:600}.meta-chip-btn{cursor:pointer;border:1px solid var(--line);background:var(--panel);font:inherit;color:var(--ink)}.meta-chip-btn:hover{border-color:#0f766e;color:#0f766e}.game-replay{position:fixed;inset:0;z-index:260;display:flex;flex-direction:column;width:100vw;height:100dvh;background:#0f172a;overflow:hidden}.game-replay-head{flex:0 0 auto;display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:.65rem 1rem;border-bottom:1px solid var(--line);background:var(--panel)}.game-replay-eyebrow{margin:0;font-size:.72rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.game-replay-head h2{margin:.1rem 0 0;font-size:1.05rem}.game-replay-meta{margin:.15rem 0 0;font-size:.78rem;color:var(--muted)}.game-replay-close{flex-shrink:0}.game-replay-stage{position:relative;flex:1 1 auto;min-height:0;width:100%;height:auto}.game-replay-stage .board-scroll{width:100%;height:100%}.game-replay-treasury{position:absolute;left:12px;top:12px;z-index:7;width:min(220px,calc(100% - 180px));max-height:calc(100% - 24px);overflow-y:auto;padding:.65rem .75rem;border:1px solid rgba(15,40,55,.45);border-radius:8px;background:#fffaf2f0;box-shadow:0 8px 24px #00000047;pointer-events:auto}.game-replay-treasury h3{margin:0 0 .45rem;font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.game-replay-treasury ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.4rem}.game-replay-treasury li{display:grid;grid-template-columns:auto 1fr auto;gap:.35rem;align-items:center;font-size:.82rem}.game-replay-swatch{width:10px;height:10px;border-radius:999px}.game-replay-player-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.game-replay-money{font-variant-numeric:tabular-nums;font-weight:700}.game-replay-track-hint{margin:.6rem 0 0;font-size:.72rem;color:var(--muted);line-height:1.35}.game-replay-controls{flex:0 0 auto;display:flex;align-items:center;gap:.75rem;padding:.65rem 1rem;border-top:1px solid var(--line);background:var(--panel)}.game-replay-play{min-width:5.5rem}.game-replay-slider-label{flex:1;min-width:0}.game-replay-slider{width:100%}.game-replay-slider-readout{font-size:.82rem;font-variant-numeric:tabular-nums;color:var(--muted);white-space:nowrap}.game[data-board-theme=night] .game-replay-treasury{background:#1c1917f0;border-color:#78716c73}.confirm-dialog.interface-guide-dialog{width:min(94vw,82rem);max-width:min(94vw,82rem);height:min(92vh,54rem);max-height:min(92vh,54rem);padding:1.15rem 1.25rem}.confirm-dialog.interface-guide-dialog .confirm-dialog-body{display:flex;flex-direction:column;align-items:stretch;width:100%;min-height:0}.confirm-dialog.interface-guide-dialog .confirm-dialog-actions{flex:0 0 auto}.interface-guide-backdrop .interface-guide-hotspot-btn.interface-guide-icon-btn{opacity:1;color:#1c1917;background:#fff}.game[data-board-theme=night] .interface-guide-backdrop .interface-guide-hotspot-btn.interface-guide-icon-btn,.game[data-board-theme=night] .interface-guide-backdrop .interface-guide-hotspot-btn.interface-guide-chip-btn,.game[data-board-theme=night] .interface-guide-backdrop .interface-guide-hotspot-btn.interface-guide-player-card-btn{background:#1f2937;border-color:color-mix(in srgb,#14b8a6 55%,#475569);color:#e2e8f0}.game[data-board-theme=night] .interface-guide-map-panel{background:#1f2937;border-color:color-mix(in srgb,#14b8a6 45%,#475569)}.game[data-board-theme=night] .interface-guide-map-panel-label{background:#0f172a;color:#e2e8f0;border-color:#475569}
