:root{font-family:var(--pf-body);font-size:var(--pf-size-body);font-weight:var(--pf-weight-normal);color:var(--pf-hud-text);background:var(--pf-desk);font-synthesis:none}*{box-sizing:border-box}html,body,#region-root{overscroll-behavior:none;width:100%;height:100%;margin:0;overflow:hidden}#region-root{height:100dvh;position:relative}button,input{font:inherit;color:inherit}button{cursor:pointer;border:1px solid var(--pf-names-town);background:var(--pf-desk-panel);border-radius:12px;min-height:44px;padding:9px 13px}button:hover{background:var(--pf-board-paper)}button:disabled{opacity:.5;cursor:default}button:focus-visible,input:focus-visible{outline:3px solid var(--pf-town-side);outline-offset:3px}button[aria-pressed=true],.primary{background:var(--pf-hud-text);color:var(--pf-white);border-color:var(--pf-hud-text)}.primary:hover{background:var(--pf-muted-text)}svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;vertical-align:middle;flex-shrink:0;width:21px;height:21px}h1,h2,h3,p{margin:0}h1{font-size:var(--pf-size-heading);font-weight:var(--pf-weight-bold)}h2{font-size:var(--pf-size-heading)}h3{font-size:var(--pf-size-body)}.region-header{z-index:20;top:max(12px, env(safe-area-inset-top));left:max(16px, env(safe-area-inset-left));right:max(16px, env(safe-area-inset-right));pointer-events:none;align-items:center;gap:12px;display:flex;position:absolute}.region-header>*,.header-actions>*{pointer-events:auto}.region-title{background:var(--pf-desk-panel);box-shadow:0 2px 6px var(--pf-shadow);border-radius:16px;padding:12px 16px}.header-actions{align-items:center;gap:8px;margin-left:auto;display:flex}.menu-toggle{width:48px;height:48px;box-shadow:0 2px 6px var(--pf-shadow);border-radius:50%;padding:12px}.world-menu{z-index:50;right:max(16px, env(safe-area-inset-right));top:calc(max(12px, env(safe-area-inset-top)) + 60px);border:1px solid var(--pf-names-town);background:var(--pf-desk-panel);width:min(280px,100% - 32px);box-shadow:0 3px 12px var(--pf-shadow);border-radius:20px;padding:18px;position:absolute}.world-menu>button:not(.menu-close){text-align:left;width:100%;margin-top:12px;display:block}.world-menu .menu-close{border-radius:50%;width:48px;height:48px;padding:12px;position:absolute;top:8px;right:8px}.world-menu h2{margin-bottom:20px}.world-menu[hidden]{display:none}.layer-panel{z-index:50;top:calc(max(12px, env(safe-area-inset-top)) + 68px);right:max(72px, calc(env(safe-area-inset-right) + 72px));width:min(300px,100% - 88px);max-height:calc(100dvh - max(12px, env(safe-area-inset-top)) - max(12px, env(safe-area-inset-bottom)) - 92px);overscroll-behavior:contain;border:1px solid var(--pf-names-town);background:var(--pf-desk-panel);box-shadow:0 3px 12px var(--pf-shadow);border-radius:20px;padding:16px;position:absolute;overflow-y:auto}.layer-panel[hidden]{display:none}.layers-close{z-index:1;float:right;border-radius:50%;width:48px;height:48px;margin:-10px -10px 0 0;padding:12px;position:sticky;top:0}.layer-panel h2{font-size:var(--pf-size-body);margin:4px 40px 8px 0}.layer-panel p{font-size:var(--pf-size-small);color:var(--pf-muted-text)}.layer-panel label{cursor:pointer;border-bottom:1px solid var(--pf-names-town);align-items:center;gap:12px;min-height:60px;padding:9px 0;display:flex}.layer-panel input{width:22px;height:22px;accent-color:var(--pf-hud-text);flex-shrink:0}.layer-panel label span{font-size:var(--pf-size-label)}.layer-panel small{font-size:var(--pf-size-small);color:var(--pf-muted-text);margin-top:3px;display:block}.route-legend{font-size:var(--pf-size-small);flex-wrap:wrap;gap:8px 12px;margin:12px 0;display:flex}.route-legend svg{width:17px;height:17px}.route-legend [data-cargo=vegetables] svg{color:var(--pf-vegetables)}.route-legend [data-cargo=fish] svg{color:var(--pf-fish)}.route-legend [data-cargo=logs] svg{color:var(--pf-logs)}.route-legend [data-cargo=planks] svg{color:var(--pf-planks)}.update-banner{z-index:40;background:var(--pf-desk-panel);border:1px solid var(--pf-board-edge);box-shadow:0 2px 8px var(--pf-shadow);border-radius:16px;justify-content:space-between;gap:10px;padding:12px;display:flex;position:fixed;bottom:16px;left:16px;right:16px}.update-banner .hud-btn{border-radius:50%;width:48px;height:48px;padding:12px}.money{background:var(--pf-desk-panel);font-size:var(--pf-size-heading);font-weight:var(--pf-weight-bold);font-variant-numeric:tabular-nums;box-shadow:0 2px 6px var(--pf-shadow);border-radius:16px;padding:12px 16px}.saving{color:var(--pf-warning-text);background:var(--pf-debt);border:0}.saving.is-saved{color:var(--pf-white);background:var(--pf-town-side)}.money.in-debt{color:var(--pf-debt)}.storage-notice{z-index:35;border:1px solid var(--pf-board-edge);background:var(--pf-desk-panel);max-width:460px;box-shadow:0 2px 8px var(--pf-shadow);border-radius:16px;align-items:center;gap:12px;padding:14px;display:flex;position:absolute;top:80px;left:16px;right:84px}.storage-notice[hidden]{display:none}.storage-notice p{font-size:var(--pf-size-label);flex:1}.storage-notice button{border-radius:50%;flex-shrink:0;width:48px;height:48px;padding:12px}.fleet-panel{gap:10px;display:grid}.issues-chip{font-size:var(--pf-size-small);white-space:nowrap;color:var(--pf-warning-text);background:var(--pf-debt);border:0;padding:9px}.issues-chip:hover{background:var(--pf-debt)}.issues-chip[hidden]{display:none}.cockpit-card{border:1px solid var(--pf-board-edge);border-radius:12px;gap:8px;padding:12px;display:grid}.cockpit-card>button{text-align:left}.cockpit-card>small,.cockpit-card>p{font-size:var(--pf-size-small)}.wagon-stepper{align-items:center;gap:8px;display:flex}.wagon-stepper span{flex:1}.wagon-stepper button{flex-shrink:0;width:44px;padding:8px}.wagon-stepper strong{text-align:center;min-width:20px}.capacity-stepper>p{margin-top:6px}.cockpit-confirm>*+*{margin-top:14px}.cockpit-confirm .primary{margin-right:8px}.fleet-panel select{width:100%;min-height:44px;font:inherit;color:inherit;background:var(--pf-desk-panel);border:1px solid var(--pf-board-edge);border-radius:10px;margin-top:6px;padding:8px;display:block}.wagon-row{border-bottom:1px solid var(--pf-names-town);gap:8px;padding:12px 0;display:grid}.wagon-row small{color:var(--pf-muted-text);display:block}.wagon-row label,.service-metrics{font-size:var(--pf-size-small);line-height:1.5}.service-metrics{grid-template-columns:1fr 1fr;gap:8px;display:grid}.service-metrics>div{background:var(--pf-board-paper);border-radius:10px;padding:9px}.service-metrics small,.service-metrics strong{display:block}.service-metrics strong{font-size:var(--pf-size-body)}.metrics-caption{color:var(--pf-muted-text);grid-column:1/-1}.profit-positive{color:var(--pf-town-side)}.profit-negative{color:var(--pf-debt)}.profit-summary small,.profit-summary strong{display:block}.profit-summary small{font-size:var(--pf-size-small)}.profit-summary strong{font-size:var(--pf-size-heading)}.service-row .income.profit-negative{color:var(--pf-debt)}.starting-fleet{align-items:center;gap:8px;display:flex}.starting-fleet span{flex:1}.starting-fleet button{width:44px;padding:8px}.route-options{grid-template-columns:repeat(auto-fit,minmax(125px,1fr));gap:7px;display:grid}.route-option{text-align:left;width:100%;font-size:var(--pf-size-label);padding:10px}.route-option strong,.route-price{display:block}.route-price{font-size:var(--pf-size-body);font-weight:var(--pf-weight-bold);margin-top:5px}.route-option small{font-size:var(--pf-size-small);margin-top:4px;line-height:1.4;display:block}.route-tools{flex-wrap:wrap;gap:7px;display:flex}.route-tools button{font-size:var(--pf-size-small)}.route-summary{grid-template-columns:1fr 1fr;gap:7px;display:grid}.route-summary>div{background:var(--pf-board-paper);border-radius:10px;padding:9px}.route-summary small,.route-summary strong{display:block}.route-summary small{font-size:var(--pf-size-small)}.route-summary strong{font-size:var(--pf-size-label)}.preview-legend{font-size:var(--pf-size-small);flex-wrap:wrap;gap:5px 12px;display:flex}.preview-new{color:var(--pf-hud-text)}.preview-bridge{color:var(--pf-logs)}.preview-reuse{color:var(--pf-town-side)}.waypoint-prompt{z-index:26;border:1px solid var(--pf-board-edge);max-width:420px;box-shadow:0 2px 8px var(--pf-shadow);background:var(--pf-desk-panel);border-radius:16px;padding:14px;position:absolute;bottom:80px;left:16px;right:84px}.waypoint-prompt p{font-size:var(--pf-size-label);margin-bottom:10px;line-height:1.4}.waypoint-prompt button{margin-right:6px}.waypoint-prompt[hidden]{display:none}.placing-waypoint{cursor:crosshair}.placing-waypoint .place{pointer-events:none}.placing-waypoint canvas:focus-visible{outline:3px solid var(--pf-town-side);outline-offset:-3px}.region-stage,.map-board{margin:0;position:absolute;inset:0}.map-board{background:var(--pf-off-map);overflow:hidden}.map-viewport{touch-action:none;position:absolute;inset:0;overflow:hidden}.map-board canvas{touch-action:none;width:100%;height:100%;display:block}.place-layer{pointer-events:none;position:absolute;inset:0;overflow:hidden}.place{pointer-events:auto;touch-action:none;-webkit-user-select:none;user-select:none;text-align:center;background:var(--pf-desk-panel);width:150px;max-width:150px;min-height:44px;box-shadow:0 2px 5px var(--pf-shadow);border-radius:12px;padding:6px 9px;position:absolute;transform:translate(-50%)}.place .place-name{font-size:var(--pf-size-label);font-weight:var(--pf-weight-bold);white-space:nowrap;display:block}.place .place-cargo{font-size:var(--pf-size-small);justify-content:center;align-items:center;gap:4px;margin-top:2px;display:flex}.place .place-cargo svg{width:16px;height:16px}.place .place-stock{font-size:var(--pf-size-small);margin-top:2px;display:block}.place.match{outline:3px solid var(--pf-town-side);outline-offset:3px}.place.selected{background:var(--pf-hud-text);color:var(--pf-white);border-color:var(--pf-hud-text)}.place[data-cargo=vegetables] .place-cargo svg{color:var(--pf-vegetables)}.place[data-cargo=fish] .place-cargo svg{color:var(--pf-fish)}.place[data-cargo=logs] .place-cargo svg{color:var(--pf-logs)}.place[data-cargo=planks] .place-cargo svg{color:var(--pf-planks)}.place.selected .place-cargo svg{color:var(--pf-white)}.map-viewport.overview .place{width:140px;max-width:140px;padding:5px 8px}.map-viewport.overview .place-stock,.map-viewport:not(.show-names) .place-name,.map-viewport:not(.show-cargo) .place-cargo,.map-viewport:not(.show-cargo) .place-stock{display:none}.map-viewport:not(.show-cargo) .place{width:max-content;max-width:150px}.map-viewport.markers-only .place{width:44px;height:44px;min-height:44px;box-shadow:none;background:0 0;border:0;border-radius:50%;padding:0}.map-viewport.markers-only .place.selected{outline:3px solid var(--pf-hud-text);outline-offset:2px}.map-viewport.markers-only .place.match{outline:3px solid var(--pf-town-side);outline-offset:2px}.map-viewport.markers-only .place:focus-visible{outline:3px solid var(--pf-town-side);outline-offset:4px}.map-controls{z-index:15;top:calc(max(12px, env(safe-area-inset-top)) + 68px);right:max(16px, env(safe-area-inset-right));gap:7px;display:grid;position:absolute}.map-controls button{width:44px;height:44px;box-shadow:0 2px 5px var(--pf-shadow);padding:9px}.speed-controls{z-index:20;bottom:max(12px, env(safe-area-inset-bottom));left:max(16px, env(safe-area-inset-left));background:var(--pf-desk-panel);box-shadow:0 2px 5px var(--pf-shadow);border-radius:16px;gap:5px;padding:5px;display:flex;position:absolute}.speed-controls span{display:none}.speed-controls button{min-width:44px}.map-credit{font-size:var(--pf-size-small);color:var(--pf-muted-text);pointer-events:none;position:absolute;bottom:28px;left:220px}.inspector{z-index:21;right:max(16px, env(safe-area-inset-right));top:calc(max(12px, env(safe-area-inset-top)) + 68px);border:1px solid var(--pf-names-town);background:var(--pf-desk-panel);width:320px;max-height:calc(100dvh - 172px);box-shadow:0 3px 14px var(--pf-shadow);border-radius:20px;flex-direction:column;padding:20px;display:flex;position:absolute}.inspector[hidden]{display:none}.inspector-close{z-index:1;border-radius:50%;width:48px;height:48px;padding:12px;position:absolute;top:8px;right:8px}.inspector-body{overscroll-behavior:contain;touch-action:pan-y;min-height:0;overflow-y:auto}.inspector-context{min-height:32px;font-size:var(--pf-size-label);font-weight:var(--pf-weight-bold);flex-shrink:0;margin:0 40px 12px 0}.inspector-body>h2,.inspector-body>.eyebrow{margin-right:42px}.inspector-actions{flex-shrink:0;gap:8px;padding-top:12px;display:grid}.inspector-actions[hidden]{display:none}.start-prompt{z-index:16;bottom:calc(max(12px, env(safe-area-inset-bottom)) + 70px);left:max(16px, env(safe-area-inset-left));background:var(--pf-desk-panel);border:1px solid var(--pf-names-town);width:min(300px,100% - 96px);box-shadow:0 3px 12px var(--pf-shadow);border-radius:20px;padding:16px;position:absolute}.start-prompt[hidden]{display:none}.start-prompt h2{font-size:var(--pf-size-body);margin-right:35px}.start-prompt p{font-size:var(--pf-size-label);margin:6px 30px 12px 0}.start-prompt .primary{width:100%}.objective-close{background:0 0;border:0;width:48px;height:48px;padding:12px;position:absolute;top:4px;right:4px}.eyebrow{color:var(--pf-muted-text);font-size:var(--pf-size-small)}.inspector .muted{color:var(--pf-muted-text);font-size:var(--pf-size-label)}.inspector .instruction{font-size:var(--pf-size-label);line-height:1.5}.cargo-panel{background:var(--pf-board-paper);border-radius:14px;padding:14px}.cargo-panel .cargo-title{align-items:center;gap:7px;margin-bottom:9px;display:flex}.cargo-panel .amount{font-size:var(--pf-size-heading);font-weight:var(--pf-weight-bold);font-variant-numeric:tabular-nums}progress{appearance:none;background:var(--pf-names-town);border:0;border-radius:8px;width:100%;height:8px;margin:10px 0 0;overflow:hidden}progress::-webkit-progress-bar{background:var(--pf-names-town)}progress::-webkit-progress-value{background:var(--pf-town-side)}progress::-moz-progress-bar{background:var(--pf-town-side)}.choice-list{gap:7px;display:grid}.choice-list button{text-align:left}.choice-list small{color:var(--pf-muted-text);font-size:var(--pf-size-small);margin-top:3px;display:block}.explore summary{cursor:pointer;min-height:48px;padding:12px 0}.inspector .primary{width:100%}.cost-row{font-size:var(--pf-size-label);justify-content:space-between;gap:10px;margin-top:7px;display:flex}.cost-row.total{font-weight:var(--pf-weight-bold);font-size:var(--pf-size-body);border-top:1px solid var(--pf-names-town);padding-top:8px}.service-row{border-top:1px solid var(--pf-names-town);padding:12px 0}.service-row p+p{margin-top:6px}.service-row .income{color:var(--pf-town-side)}.toast{left:16px;right:84px;top:calc(max(12px, env(safe-area-inset-top)) + 68px);background:var(--pf-desk-panel);max-width:440px;box-shadow:0 2px 8px var(--pf-shadow);border:1px solid var(--pf-town-side);font-size:var(--pf-size-label);z-index:25;border-radius:14px;align-items:center;gap:12px;padding:12px 14px;display:flex;position:absolute}.toast span{flex:1}.toast button{border-radius:50%;flex-shrink:0;width:48px;height:48px;padding:12px}.toast[hidden]{display:none}dialog{border:1px solid var(--pf-names-town);background:var(--pf-desk-panel);width:calc(100% - 32px);max-width:440px;color:var(--pf-hud-text);border-radius:20px;padding:24px}dialog::backdrop{background:var(--pf-backdrop)}dialog h2{margin-bottom:14px;margin-right:40px}dialog p{margin:12px 0;line-height:1.5}dialog .close{border-radius:50%;width:48px;height:48px;padding:12px;position:absolute;top:12px;right:12px}dialog label{margin:16px 0;display:block}dialog input{border:1px solid var(--pf-board-edge);background:var(--pf-white);border-radius:10px;width:100%;min-height:44px;margin-top:6px;padding:9px;display:block}.seed-caption{font-size:var(--pf-size-small);overflow-wrap:anywhere}.region-preview canvas{border:1px solid var(--pf-board-edge);border-radius:12px;width:100%;height:auto;margin:12px 0;display:block}.region-preview p,.replacement-note{font-size:var(--pf-size-label)}.region-preview .preview-key,.region-preview .seed-caption{font-size:var(--pf-size-small)}.region-preview .preview-count{font-weight:var(--pf-weight-bold)}.world-confirm-actions{background:var(--pf-desk-panel);gap:8px;margin-bottom:-12px;padding:12px 0;display:grid;position:sticky;bottom:-24px}.current-region{font-weight:var(--pf-weight-bold)}@media (width<=900px){.region-title{display:none}.region-header{gap:8px}.header-actions{gap:7px;margin:0}.menu-toggle{margin-left:auto}.money{font-size:var(--pf-size-body);padding:12px}.saving{font-size:var(--pf-size-small);padding:9px}.saving svg{width:18px;height:18px}.inspector{top:auto;left:max(12px, env(safe-area-inset-left));right:max(12px, env(safe-area-inset-right));bottom:calc(max(12px, env(safe-area-inset-bottom)) + 70px);width:auto;max-height:min(44dvh,390px);padding:16px}.map-credit,.map-viewport.overview.show-cargo:not(.show-names) .place:not([data-kind=town]) .place-cargo span{display:none}.map-viewport.overview.show-cargo:not(.show-names) .place:not([data-kind=town]){width:44px;padding:9px}.map-viewport.overview.show-cargo:not(.show-names) .place:not([data-kind=town]) .place-cargo{margin:0}.map-viewport.overview .place{max-width:145px}}@media (width>=901px){#region-root:has(.inspector:not([hidden])) .map-controls{right:352px}}@media (width<=559px),(width<=900px) and (height>=521px){.inspector:has(.cockpit-card){max-height:min(60dvh,500px)}.inspector:has(.fleet-panel){max-height:min(60dvh,500px)}.inspector:has(.starting-fleet){max-height:min(56dvh,460px)}}@media (width>=560px) and (width<=900px) and (height<=520px){dialog[data-dialog=confirm-world][open]{grid-template-columns:1fr 1fr;gap:8px 16px;max-width:760px;padding:16px;display:grid}dialog[data-dialog=confirm-world] h2{grid-column:1/-1;margin:0 48px 0 0}dialog[data-dialog=confirm-world] .replacement-note{font-size:var(--pf-size-small);grid-column:1;margin:4px 0}dialog[data-dialog=confirm-world] .region-preview{grid-area:2/2/span 3}dialog[data-dialog=confirm-world] .region-preview p{font-size:var(--pf-size-small);margin:3px 0;line-height:1.3}dialog[data-dialog=confirm-world] .region-preview canvas{object-fit:contain;background:var(--pf-off-map);height:140px;margin:6px 0}dialog[data-dialog=confirm-world]>button[data-action=another-region]{grid-column:1}dialog[data-dialog=confirm-world] .world-confirm-actions{grid-column:1;margin:0;padding:0;position:static}.map-controls{grid-template-columns:repeat(2,44px)}.inspector{width:300px;max-height:calc(100dvh - 160px);inset:80px 12px auto auto}#region-root:has(.inspector:not([hidden])) .map-controls{right:324px}.start-prompt{width:280px;padding:10px}.start-prompt h2{display:none}.start-prompt p{font-size:var(--pf-size-small);margin:0 32px 8px 0}}#region-root button{border-radius:7px}#region-root button[hidden],#region-root [hidden]{display:none}.region-header{min-height:64px;padding:8px max(16px,env(safe-area-inset-right)) 8px max(16px,env(safe-area-inset-left));background:var(--pf-desk-panel);border-bottom:1px solid var(--pf-names-town);gap:12px;top:0;left:0;right:0}.region-title{box-shadow:none;background:0 0;border-radius:0;padding:0}.region-title h1{font-size:var(--pf-size-body)}.company-date{font-size:var(--pf-size-small);color:var(--pf-muted-text);display:block}.money{box-shadow:none;font-size:var(--pf-size-heading);background:0 0;border-radius:0;padding:4px 8px}.saving.is-saved{color:var(--pf-town-side);background:0 0;border:0}.menu-toggle{box-shadow:none;border:0}.world-menu{border-radius:10px;top:70px}.dispatch-nav{z-index:22;background:var(--pf-desk-panel);border-right:1px solid var(--pf-names-town);flex-direction:column;gap:8px;width:88px;padding:20px 8px;display:flex;position:absolute;top:64px;bottom:0;left:0}.dispatch-nav button{min-height:68px;font-size:var(--pf-size-small);background:0 0;border:0;flex-direction:column;justify-content:center;align-items:center;gap:6px;display:flex}.dispatch-nav button[aria-pressed=true]{background:var(--pf-board-paper);color:var(--pf-hud-text);box-shadow:inset 3px 0 var(--pf-town-side)}.dispatch-nav button[data-section=build]{background:var(--pf-town-side);color:var(--pf-white);margin-top:12px}.dispatch-nav button[data-section=build][aria-pressed=true]{box-shadow:inset 0 0 0 2px var(--pf-hud-text)}.map-controls{background:var(--pf-desk-panel);border:1px solid var(--pf-names-town);border-radius:8px;gap:4px;padding:4px;top:80px;right:16px}.map-controls button{box-shadow:none;background:0 0;border:0}.map-controls button:hover{background:var(--pf-board-paper)}.layer-panel{border-radius:10px;top:80px;right:80px}.speed-controls{border:1px solid var(--pf-names-town);box-shadow:none;border-radius:8px;gap:2px;padding:3px;bottom:16px;left:104px}.speed-controls button{font-size:var(--pf-size-label);border:0;padding:8px 10px}.map-credit{left:300px}#region-root .inspector{width:380px;max-height:none;box-shadow:0 4px 14px var(--pf-shadow);border-radius:10px;padding:16px;inset:80px 16px 80px auto}.inspector-context{min-height:32px;font-size:var(--pf-size-small);text-transform:uppercase;letter-spacing:.06em;border-bottom:1px solid var(--pf-names-town);align-items:center;margin:0 46px 12px 0;padding-bottom:8px;display:flex}.inspector-close{background:0 0;border:0;top:6px;right:6px}.inspector-body{scrollbar-gutter:stable}.inspector-body>*+*{margin-top:12px}.inspector-body>h2{margin-right:0}.inspector-body h3{font-size:var(--pf-size-label)}.inspector-actions{border-top:1px solid var(--pf-names-town);gap:6px;margin-top:12px;padding-top:10px}.inspector-actions>button{min-height:44px;font-size:var(--pf-size-label);padding:8px 10px}.inspector-actions:empty,.sheet-size{display:none}.start-prompt{border-radius:10px;width:310px;padding:16px;bottom:82px;left:104px}.start-prompt h2{font-size:var(--pf-size-heading)}.start-prompt p{margin:8px 28px 12px 0}.toast{border-radius:8px;max-width:390px;top:78px;left:104px}.storage-notice{border-radius:8px;top:78px;left:104px}.update-banner{bottom:76px;left:104px;right:16px}.waypoint-prompt{border-radius:8px;bottom:80px;left:104px}.cargo-panel{border-radius:6px;padding:12px}.cargo-panel .amount{font-size:var(--pf-size-body)}.choice-list{gap:0}.choice-list button{border:0;border-bottom:1px solid var(--pf-names-town);background:0 0;border-radius:0;padding:10px 8px}.choice-list button:hover{background:var(--pf-board-paper)}.choice-list small{font-size:var(--pf-size-small)}.service-row{grid-template-columns:1fr auto;gap:6px 10px;padding:14px 0;display:grid}.service-row>button{text-align:left;font-weight:var(--pf-weight-bold);background:0 0;border:0;grid-column:1/-1;min-height:44px;padding:0}.service-row .route-status,.service-row>.instruction{font-size:var(--pf-size-small);grid-column:1/-1}.service-row .profit-summary{text-align:right;grid-area:2/2}.service-row .profit-summary small{font-size:var(--pf-size-small)}.service-row .profit-summary strong{font-size:var(--pf-size-body)}.service-row .capacity-stepper{grid-column:1/-1}.service-row .capacity-stepper>p{font-size:var(--pf-size-small)}.service-metrics>div{border-radius:5px}.fleet-panel{gap:8px}.fleet-panel>button{text-align:left}.cockpit-card{border:0;border-top:1px solid var(--pf-names-town);border-radius:0;gap:6px;padding:12px 0}.cockpit-card>button:first-of-type{text-align:left;font-weight:var(--pf-weight-bold);border:0;padding:4px 0}.company-stats{border-top:1px solid var(--pf-names-town);border-bottom:1px solid var(--pf-names-town);grid-template-columns:1fr 1fr;gap:16px 12px;padding:16px 0;display:grid}.company-stats small,.company-stats strong{display:block}.company-stats small{font-size:var(--pf-size-small);color:var(--pf-muted-text)}.company-stats strong{font-size:var(--pf-size-heading);font-variant-numeric:tabular-nums;margin-top:4px}.company-history svg{stroke:none;fill:none;width:100%;height:110px;display:block}.company-history .chart-zero{stroke:var(--pf-board-edge)}.company-history .chart-profit{fill:var(--pf-town-side)}.company-history .chart-loss{fill:var(--pf-debt)}.company-history text{fill:var(--pf-muted-text);font-size:var(--pf-size-small)}.dispatch-issue{border-bottom:1px solid var(--pf-names-town);padding:12px 0}.dispatch-issue>button:first-child{text-align:left;font-weight:var(--pf-weight-bold);background:0 0;border:0;padding:0;display:block}.dispatch-issue>p{margin:4px 0 8px}.dispatch-issue>button:last-child{font-size:var(--pf-size-label)}.town-supply{text-align:left;border:0;border-bottom:1px solid var(--pf-names-town);background:0 0;width:100%;padding:10px 0;display:block}.town-supply small{font-size:var(--pf-size-small);color:var(--pf-muted-text);margin-top:4px;display:block}.dispatch-links{gap:8px;display:grid}.build-steps{border-bottom:1px solid var(--pf-names-town);grid-template-columns:repeat(4,1fr);gap:2px;padding-bottom:10px;display:grid}.build-steps button{font-size:var(--pf-size-small);background:0 0;border:0;padding:6px 2px}.build-steps button[aria-current=step]{background:var(--pf-board-paper);color:var(--pf-hud-text);box-shadow:inset 0 -3px var(--pf-town-side)}.place-signal{display:none}.map-viewport.markers-only .place-signal{background:var(--pf-desk-panel);color:var(--pf-hud-text);font-size:var(--pf-size-small);white-space:nowrap;box-shadow:0 1px 3px var(--pf-shadow);pointer-events:none;border-radius:5px;justify-content:center;align-items:center;gap:3px;padding:3px 5px;display:flex;position:absolute;top:28px;left:20px}.place-signal svg{width:13px;height:13px}.map-viewport.overview .place-signal{display:none}@media (width>=901px){#region-root:has(.inspector:not([hidden])) .map-controls{right:412px}}@media (width<=900px){.region-header{min-height:calc(60px + env(safe-area-inset-top));padding:calc(6px + env(safe-area-inset-top)) max(10px,env(safe-area-inset-right)) 6px max(10px,env(safe-area-inset-left));gap:4px}.region-title{display:none}.world-menu{top:calc(70px + env(safe-area-inset-top))}.header-actions{flex:1;gap:4px}.money{font-size:var(--pf-size-body);margin-right:auto;padding:4px}.saving.is-saved{width:44px;padding:10px}.saving.is-saved span{display:none}.saving.is-saved svg{width:20px;height:20px}.issues-chip{font-size:var(--pf-size-small);padding:6px 8px}.menu-toggle{width:44px;height:44px}.dispatch-nav{width:auto;height:calc(64px + env(safe-area-inset-bottom));padding:4px max(8px,env(safe-area-inset-right)) max(4px,env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left));border:0;border-top:1px solid var(--pf-names-town);flex-direction:row;gap:4px;top:auto;bottom:0;right:0}.dispatch-nav button{flex:1;gap:3px;min-height:52px;padding:5px}.dispatch-nav button[aria-pressed=true]{box-shadow:inset 0 3px var(--pf-town-side)}.dispatch-nav button[data-section=build]{margin:0}.dispatch-nav svg{width:19px;height:19px}.speed-controls{left:12px;bottom:calc(74px + env(safe-area-inset-bottom))}.map-controls{top:calc(74px + env(safe-area-inset-top));right:10px}.layer-panel{top:calc(74px + env(safe-area-inset-top));max-height:calc(100dvh - 160px);right:72px}#region-root .inspector{top:auto;left:10px;right:10px;bottom:calc(132px + env(safe-area-inset-bottom));width:auto;max-height:46dvh;padding:12px}:is(#region-root .inspector:has(.cockpit-card),#region-root .inspector:has(.fleet-panel),#region-root .inspector:has(.starting-fleet)){max-height:52dvh}#region-root .inspector.expanded{max-height:calc(100dvh - 210px - env(safe-area-inset-top) - env(safe-area-inset-bottom))}.inspector-context{min-height:36px;margin-bottom:8px;margin-right:88px}.inspector-close{top:4px;right:4px}.sheet-size{background:0 0;border:0;width:44px;height:44px;padding:10px;display:block;position:absolute;top:4px;right:52px}.inspector-actions{margin-top:8px;padding-top:8px}.start-prompt{left:12px;bottom:calc(132px + env(safe-area-inset-bottom));width:calc(100% - 84px);max-width:330px;padding:14px}.start-prompt h2{font-size:var(--pf-size-body)}.toast,.storage-notice{left:10px;top:calc(74px + env(safe-area-inset-top));max-width:400px;right:72px}.update-banner{left:10px;bottom:calc(74px + env(safe-area-inset-bottom));right:10px}.waypoint-prompt{left:12px;bottom:calc(132px + env(safe-area-inset-bottom))}}@media (width>=560px) and (width<=900px) and (height<=520px){#region-root .inspector,#region-root .inspector.expanded,#region-root[data-section=company] .inspector{width:300px;max-height:none;inset:70px 10px 74px auto}#region-root .inspector:has(.fleet-panel){width:300px;max-height:none;inset:70px 10px 74px auto}#region-root .inspector:has(.starting-fleet){width:300px;max-height:none;inset:70px 10px 74px auto}#region-root .inspector:has(.cockpit-card){width:300px;max-height:none;inset:70px 10px 74px auto}#region-root:has(.inspector:not([hidden])) .map-controls{right:320px}.speed-controls{bottom:74px}.start-prompt{width:260px;bottom:130px}.sheet-size{display:none}.inspector-context{margin-right:44px}}@media (prefers-reduced-motion:no-preference){.dispatch-nav button{transition:background .15s}}.region-boundary{pointer-events:none;border:1px solid var(--pf-board-edge);box-shadow:0 0 0 4px var(--pf-desk-panel),0 3px 16px var(--pf-shadow);position:absolute}.place-overview{display:none}.resource-icon[data-resource=vegetables]{color:var(--pf-vegetables)}.resource-icon[data-resource=fish]{color:var(--pf-fish)}.resource-icon[data-resource=logs]{color:var(--pf-logs)}.resource-icon[data-resource=planks]{color:var(--pf-planks)}.place[data-cargo=vegetables]{--resource-color:var(--pf-vegetables)}.place[data-cargo=fish]{--resource-color:var(--pf-fish)}.place[data-cargo=logs]{--resource-color:var(--pf-logs)}.place[data-cargo=planks]{--resource-color:var(--pf-planks)}.place-resource-label{font-size:var(--pf-size-small);font-weight:var(--pf-weight-bold);color:var(--pf-hud-text);line-height:1.2}.place-level{font-size:var(--pf-size-small);color:var(--pf-hud-text);background:var(--pf-board-paper);white-space:nowrap;border-radius:3px;width:max-content;padding:2px 4px;line-height:1.2;display:none}.map-viewport.show-names .place-level{display:inline-block}.map-viewport.markers-only .place-level{pointer-events:none;box-shadow:0 1px 3px var(--pf-shadow);display:block;position:absolute;top:-14px;left:50%;transform:translate(-50%)}.network-mode .place-level{display:none!important}.map-viewport.strategic-map .place{background:var(--pf-desk-panel);border:1px solid var(--pf-board-edge);border-radius:8px;justify-content:center;align-items:center;gap:5px;width:max-content;min-width:44px;max-width:150px;min-height:44px;padding:5px 8px;display:flex}.map-viewport.strategic-map .place-overview{flex-shrink:0;display:flex}.place-overview svg{width:26px;height:26px}.map-viewport.strategic-map .place:not([data-kind=town]){background:color-mix(in srgb,var(--resource-color) 12%,var(--pf-desk-panel))}.map-viewport.strategic-map .place:not([data-kind=town]) .place-overview{flex-direction:column;align-items:center;gap:2px}.map-viewport.strategic-map .place[data-kind=town] .place-name{font-size:var(--pf-size-small);white-space:normal;grid-area:1/2;display:block}.map-viewport.strategic-map .place[data-kind=town]{text-align:left;grid-template-columns:26px 1fr;gap:2px 6px;max-width:154px;display:grid}.map-viewport.strategic-map .place[data-kind=town] .place-overview{color:var(--pf-town-side);grid-row:1/3}.map-viewport.strategic-map .place-level{grid-area:2/2;display:block}.map-viewport.strategic-map .place .place-cargo,.map-viewport.strategic-map .place .place-stock,.map-viewport.strategic-map .place .place-signal{display:none}.map-viewport.strategic-map.show-cargo .place{flex-direction:column}.map-viewport.strategic-map.show-cargo .place .place-cargo{display:flex}.map-viewport.strategic-map.show-cargo .place[data-kind=town] .place-cargo{grid-column:1/-1}.map-viewport.strategic-map.show-cargo .place-overview{display:none}.map-viewport.strategic-map .place.selected{background:var(--pf-hud-text);color:var(--pf-white)}.map-viewport.strategic-map .place.selected .place-resource-label,.map-viewport.strategic-map .place.selected svg{color:var(--pf-white)}.map-viewport.compact-overview .place{width:44px;min-width:44px;max-width:44px;height:44px;min-height:44px;padding:5px}#region-root .map-viewport.compact-overview .place .place-name,#region-root .map-viewport.compact-overview .place .place-cargo,#region-root .map-viewport.compact-overview .place .place-stock{display:none}#region-root .map-viewport.compact-overview .place .place-overview{display:flex}#region-root .map-viewport.compact-overview .place-resource-label,#region-root .map-viewport.compact-overview .level-word{display:none}#region-root .map-viewport.compact-overview .place[data-kind=town]{flex-direction:column;gap:0;padding:2px;display:flex}#region-root .map-viewport.compact-overview .place-level{padding:0 3px}#region-root .map-viewport.compact-overview .place[data-kind=town] .place-overview svg{width:21px;height:21px}.map-controls{align-items:center;gap:2px;padding:3px;display:flex}.map-controls .network-home{width:auto;font-size:var(--pf-size-small);white-space:nowrap;align-items:center;gap:6px;padding:8px;display:flex}.map-controls .network-home svg{width:18px;height:18px}.layer-panel{top:136px;right:16px}.place-heading{justify-content:space-between;align-items:center;gap:8px;display:flex}.place-heading h2{font-size:var(--pf-size-body);margin:0}.place-heading button{min-height:44px;font-size:var(--pf-size-small);flex-shrink:0;padding:8px 10px}#region-root[data-place-card=true] .inspector{max-height:480px;top:auto;bottom:80px}#region-root[data-place-card=true] .inspector-context{display:none}#region-root[data-place-card=true] .eyebrow{min-height:32px;margin-right:88px}#region-root[data-place-card=true] .cargo-panel{grid-template-columns:1fr auto;align-items:center;gap:6px;padding:8px;display:grid}#region-root[data-place-card=true] .cargo-panel>*{margin:0}#region-root[data-place-card=true] .cargo-panel .muted,#region-root[data-place-card=true] .cargo-panel progress{grid-column:1/-1}@media (width>=901px){#region-root:has(.inspector:not([hidden])) .map-controls{right:412px}#region-root:has(.inspector:not([hidden])) .layer-panel{right:412px}}@media (width<=900px){.layer-panel{top:calc(128px + env(safe-area-inset-top));width:min(300px,100% - 20px);right:10px}#region-root[data-place-card=true] .inspector{bottom:calc(132px + env(safe-area-inset-bottom));max-height:42dvh}#region-root[data-place-card=true] .inspector.expanded{max-height:calc(100dvh - 210px - env(safe-area-inset-top) - env(safe-area-inset-bottom))}}@media (width>=560px) and (width<=900px) and (height<=520px){#region-root:not(:has(.inspector:not([hidden]))) .map-controls{top:auto;bottom:74px;right:10px}#region-root[data-place-card=true] .inspector,#region-root[data-place-card=true] .inspector.expanded{max-height:none;top:70px;bottom:74px}#region-root:has(.inspector:not([hidden])) .layer-panel{right:320px}}.network-markers{pointer-events:none;z-index:5;position:absolute;inset:0}#region-root .network-marker{pointer-events:auto;width:44px;height:44px;min-height:44px;box-shadow:none;background:0 0;border:0;padding:6px;position:absolute;transform:translate(-50%,-50%)}.network-marker span,.route-badge{border:2px solid var(--pf-desk-panel);background:var(--route-color);min-width:28px;height:28px;color:var(--pf-white);font-size:var(--pf-size-small);font-weight:var(--pf-weight-bold);font-variant-numeric:tabular-nums;border-radius:7px;justify-content:center;align-items:center;padding:0 5px;display:inline-flex}.network-marker[aria-pressed=true] span{outline:2px solid var(--pf-hud-text);outline-offset:2px}.network-marker.dimmed{opacity:.55}.network-mode .place-signal{display:none!important}.network-mode .place.match,.network-mode .place.selected{outline:none!important}.service-row>button .route-badge{vertical-align:middle;margin-right:8px}.network-legend{gap:6px;padding:2px;display:flex;overflow-x:auto}.network-legend button{border:0;align-items:center;gap:4px;min-width:64px;padding:4px;display:flex}.network-legend svg,.network-cargo svg{width:16px;height:16px}.network-hint,.network-status{font-size:var(--pf-size-small)}.network-card-meta{justify-content:space-between;align-items:center;gap:12px;display:flex}.network-cargo{font-size:var(--pf-size-small)}.network-card-meta .profit-summary{text-align:right}.network-card-meta .profit-summary small{font-size:var(--pf-size-small)}.network-card-meta .profit-summary strong{font-size:var(--pf-size-body)}#region-root[data-network-compact=true] .inspector{max-height:430px;top:auto;bottom:80px}#region-root[data-network-compact=true] .inspector-context,#region-root[data-network-compact=true] .sheet-size{display:none}#region-root[data-network-compact=true] .inspector-body>h2{font-size:var(--pf-size-body);margin-right:30px}#region-root[data-network-compact=true] h2 .route-badge{margin-right:6px}#region-root[data-network-compact=true] .inspector-body>*+*{margin-top:8px}#region-root[data-network-compact=true] .capacity-stepper>p{font-size:var(--pf-size-small)}#region-root[data-network-compact=true] .inspector-actions{display:flex}#region-root[data-network-compact=true] .inspector-actions button{flex:1}@media (width<=900px){#region-root[data-network-compact=true] .inspector{top:auto;bottom:calc(132px + env(safe-area-inset-bottom));max-height:34dvh}#region-root[data-network-compact=true][data-network-selected=true] .inspector{max-height:43dvh}}@media (width>=560px) and (width<=900px) and (height<=520px){#region-root[data-network-compact=true] .inspector,#region-root[data-network-compact=true][data-network-selected=true] .inspector{max-height:calc(100dvh - 150px);top:auto;bottom:74px}}.region-goals{top:calc(136px + env(safe-area-inset-top));z-index:6;max-width:calc(100% - 28px);min-height:44px;font-size:var(--pf-size-small);background:var(--pf-board-paper);border:1px solid var(--pf-board-edge);border-radius:8px;padding:8px 12px;position:absolute;right:12px}:is(#region-root:has(.inspector:not([hidden])) .region-goals,#region-root:has(.layer-panel:not([hidden])) .region-goals){visibility:hidden}@media (width<=900px) and (height>=521px){:is(#region-root:has(.inspector:not([hidden])) .region-goals,#region-root:has(.layer-panel:not([hidden])) .region-goals){display:none}}.company-progression{border:1px solid var(--pf-board-edge);background:var(--pf-board-paper);border-radius:10px;margin:12px 0;padding:14px}.company-progression h3{margin:4px 0 10px}.company-progression li{margin:6px 0}.company-progression button{white-space:normal;width:100%}.company-districts{grid-template-columns:1fr 1fr;gap:8px;display:grid}.company-districts h3{grid-column:1/-1}.company-districts button{white-space:normal}.company-upgrade{border-bottom:1px solid var(--pf-board-edge);padding:12px 0}.company-upgrade h4{margin:0 0 6px}@media (width>=901px){.region-goals{top:136px}}@media (width>=560px) and (height<=520px){.region-goals{top:calc(68px + env(safe-area-inset-top))}}.district-overview{pointer-events:none;z-index:4;position:absolute;inset:0}.district-overview button{pointer-events:auto;background:var(--pf-desk-panel);border:1px solid var(--pf-board-edge);width:136px;max-width:40vw;min-height:58px;box-shadow:0 2px 6px var(--pf-shadow);border-radius:8px;flex-direction:column;align-items:center;gap:4px;padding:8px;display:flex;position:absolute;transform:translate(-50%,-50%)}.district-overview strong{font-size:var(--pf-size-label)}.district-overview small{font-size:var(--pf-size-small)}.district-overview [data-locked=true]{background:var(--pf-board-paper);border-style:dashed}
