/* LTW · Immersive World / Midnight Harbour. Presentation only. */
:root {
 --midnight-background:#0d1c29; --midnight-surface:#172f41; --midnight-raised:#244358;
 --midnight-selected:#254d59; --midnight-cyan:#70d4cf; --midnight-amber:#efbd66;
 --ink:#f0f5f7; --muted:#b2c8d7; --line:#48677c; --iw-header:74px; --iw-nav:82px;
 --iw-surface:linear-gradient(145deg,#203c50,#132c3e); --iw-shadow:0 8px 24px #03111d55,inset 0 1px #ffffff0b;
}
.ltw-immersive { background:#0d1c29; }
.ltw-immersive .shell:not(.map-expanded) { display:flex;flex-direction:column;height:100dvh;min-height:0;padding:0;overflow:hidden; }
.ltw-immersive .shell>.topbar { flex:none;height:var(--iw-header);min-height:0;display:flex;flex-wrap:nowrap;padding:7px clamp(10px,2vw,26px);gap:14px;background:linear-gradient(#253e53,#132a3c);border-bottom:1px solid #637c8d;box-shadow:0 3px 12px #04131c55; }
.ltw-immersive .shell>.content { flex:1;min-height:0;height:auto;padding:0;overflow:auto; }
.ltw-immersive .page-shell>.content { background:linear-gradient(#0b2238a8,#0a1e31d9),url('/immersive-harbour.webp') center/cover no-repeat; }
.ltw-immersive .shell>.sidebar { position:relative;inset:auto;display:grid;flex:none;width:100%;height:var(--iw-nav);grid-template-columns:repeat(5,minmax(0,146px));justify-content:center;gap:10px;padding:8px max(10px,env(safe-area-inset-right)) max(8px,env(safe-area-inset-bottom));background:linear-gradient(#203b4e,#102738);border:0;border-top:1px solid #526f81;border-radius:0;box-shadow:0 -3px 14px #06162155; }
.ltw-immersive .nav { position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:0;height:100%;padding:3px 8px;gap:2px;border:1px solid #527083;border-radius:12px;background:var(--iw-surface);box-shadow:0 2px 3px #07172355;color:#e8f1f6;font-size:13px;line-height:1.15; }
.ltw-immersive .nav.active { border:1px solid #d8c58c;background:linear-gradient(135deg,#2d5360,#203c50);box-shadow:inset 0 0 14px #7dd6cc12; }
.ltw-immersive .nav.active:after { content:'';position:absolute;bottom:0;left:26%;right:26%;height:3px;background:#79d8d0;border-radius:4px; }
.iw-nav-art { display:grid;grid-template:minmax(0,1fr)/minmax(0,1fr);place-items:center;width:64px;height:39px; }
.iw-nav-art img { width:100%;height:100%;min-width:0;min-height:0;max-height:100%;object-fit:contain;filter:drop-shadow(0 3px 2px #07121d66); }
.ltw-immersive .iw-nav-art svg { width:28px;height:28px;color:#b9dae4; }
.ltw-immersive .topbar .rank-chip,.ltw-immersive .topbar .balance-chip { border:1px solid #4d697d;border-radius:28px;box-shadow:inset 0 1px 5px #081a2c55;background:#132b3d;height:48px;min-height:44px;font-size:16px; }
.ltw-immersive .rank-track { width:68px;height:6px; }
.ltw-immersive .rank-chip>svg { width:24px;height:24px;color:#f2cb7d;fill:#f2cb7d33; }
.ltw-immersive .header-icon,.ltw-immersive .game-menu-button { border-radius:12px;background:#1d374a;border:1px solid #496779; }
.ltw-immersive .topbar .ltw-globe { width:52px;height:52px; }
.ltw-immersive .topbar .ltw-name>strong { font-size:18px; }
.ltw-immersive .page { max-width:1320px;padding:24px clamp(14px,2.5vw,30px) 30px; }
.ltw-immersive h1 { font-size:clamp(25px,3vw,34px);letter-spacing:-.6px; }
.ltw-immersive h2 { font-size:21px; }
.ltw-immersive .eyebrow { color:#a7d4e7;letter-spacing:1.1px;font-size:11px; }
.ltw-immersive .page-header { margin-bottom:22px;gap:14px; }
.ltw-immersive .page-header p { margin:7px 0 0;line-height:1.4; }
.ltw-immersive .card,.ltw-immersive .panel,.ltw-immersive .menu-tile { background:var(--iw-surface);border:1px solid var(--line);border-radius:15px;box-shadow:var(--iw-shadow); }
.ltw-immersive .card { padding:20px; }
.ltw-immersive .primary,.ltw-immersive .primary:not(.orange),.ltw-immersive .orange { color:#122b3b;background:linear-gradient(#ffe2a0,#f4c46c 45%,#dea13d);border:1px solid #ffe6ad;border-radius:10px;box-shadow:inset 0 1px #fff3cf,0 3px 0 #976b31;min-height:44px;font-weight:800; }
.ltw-immersive button.primary:hover:not(:disabled) { background:linear-gradient(#ffebba,#ffd48b); }
.ltw-immersive button:disabled { opacity:.46;box-shadow:none;cursor:default; }
.ltw-immersive .secondary { color:#eff6fa;background:linear-gradient(#2c4c61,#203c50);border:1px solid #5c7a8f;border-radius:9px;min-height:44px;box-shadow:inset 0 1px #ffffff08; }
.ltw-immersive .soft { color:#a9dfdf;min-height:44px; }
.ltw-immersive .pill { background:#254852;color:#9ce3cf;border:1px solid #4c7d76;font-size:12px; }
.ltw-immersive .pill.amber { background:#4d4230;color:#ffe0a1;border-color:#8b7551; }
.ltw-immersive input,.ltw-immersive select { border-radius:9px;background:#112b3e;border:1px solid #4c6b80;min-height:44px; }
.ltw-immersive :is(input,select,button):focus-visible { outline:3px solid #85eee4;outline-offset:3px; }
.ltw-immersive progress { accent-color:#70d4cf; }
.ltw-immersive progress::-webkit-progress-value { background:linear-gradient(90deg,#45a5ac,#8de1cf); }
.ltw-immersive progress::-webkit-progress-bar { background:#3c576a;border-radius:6px; }
.ltw-immersive .hint,.ltw-immersive .tutorial-tip,.ltw-immersive .iw-note { background:#112c3e;color:#c0d7e2;border:1px solid #405d70;border-radius:9px;line-height:1.5; }
.iw-note { padding:10px 14px;border-left:3px solid #72cfc8!important;font-size:12px; }
.ltw-immersive .iw-section-links { display:flex;gap:5px;max-width:1320px;padding:14px clamp(14px,2.5vw,30px) 0;border:0; }
.ltw-immersive .iw-section-links button { min-height:44px;border-radius:9px;color:#c3d9e6;background:#112b3eea;border:1px solid #3c5d72;padding:9px 16px; }
.ltw-immersive .iw-section-links button.active { background:linear-gradient(#347180,#24515e);border-color:#65a6af;color:#fff; }
.iw-fleet-grid,.iw-company-grid { display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:22px;align-items:start; }
.iw-fleet-grid>*,.iw-jobs-grid>*,.iw-company-grid>* { min-width:0; }
.iw-fleet-sidebar { display:grid;gap:16px; }
.iw-vehicle-hero .garage-rig-art { margin:-20px -20px 20px;padding:28px 20px 0;height:210px;border-bottom:1px solid #456277;background:radial-gradient(ellipse at 50% 80%,#55758677,transparent 65%); }
.iw-vehicle-hero .garage-rig-art img { height:100%;max-height:100%;object-fit:contain; }
.iw-vehicle-hero>.row:first-child { position:relative;z-index:1; }
.iw-vehicle-hero .actions { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px; }
.iw-vehicle-hero .actions .iw-find-work { grid-column:1/-1;font-size:16px; }
.iw-vehicle-hero .details { padding:12px 0;gap:12px; }
.iw-vehicle-list { display:grid;gap:10px;margin:14px 0; }
.iw-vehicle-choice { display:flex;width:100%;text-align:left;align-items:center;gap:12px;padding:12px;border:1px solid #4b6c80;border-radius:12px;background:#193448;color:#f0f5f7;min-height:100px; }
.iw-vehicle-choice.selected { border-color:#e0bc6c;background:linear-gradient(120deg,#315356,#244154); }
.iw-vehicle-choice>span:last-child { min-width:0; }
.iw-vehicle-choice small,.iw-vehicle-choice b { display:block;overflow-wrap:anywhere; }
.iw-vehicle-choice small { margin-top:5px;line-height:1.4; }
.iw-picker-art { display:flex;align-items:center;justify-content:center;flex:0 0 100px;height:65px; }
.iw-picker-art img,.iw-picker-art .rig-art-pair { max-width:100%;width:100%;height:100%;object-fit:contain; }
.iw-status { display:inline-block;margin-top:7px;font-size:11px;color:#95dfca; }
.iw-depot-card { display:grid;grid-template-columns:80px minmax(0,1fr);align-items:center;gap:12px; }
.iw-depot-card>img { width:80px;height:78px;object-fit:contain; }
.iw-depot-card h2 { margin:0; }
.iw-depot-card p { color:var(--muted);font-size:12px;margin:6px 0; }
.iw-depot-card>button { grid-column:1/-1; }
.iw-trailer-yard>.section-title { margin-top:0; }
.iw-jobs-grid { display:grid;grid-template-columns:minmax(0,1.15fr) minmax(310px,.85fr);gap:22px;align-items:start; }
.ltw-immersive .iw-job-board { container-type:inline-size;width:100%;height:auto;min-height:0;padding:18px;overflow:visible;gap:12px; }
.ltw-immersive .iw-job-board .joblist { max-height:none;min-height:0;overflow:visible;flex:none; }
.iw-city-select { display:grid;gap:6px;font-size:12px;min-width:180px;max-width:100%; }
.iw-load-column { display:grid;align-content:start;gap:16px;position:sticky;top:16px; }
.iw-load-vehicle { display:grid;grid-template-columns:minmax(0,1fr);gap:8px;margin:8px 0 16px;min-width:0; }
.iw-load-vehicle>img,.iw-load-vehicle>.rig-art-pair { width:100%;max-width:100%;height:144px;object-fit:contain; }
.iw-load-vehicle>.rig-art-pair { display:grid;grid-template-columns:minmax(0,38fr) minmax(0,62fr);min-width:0;overflow:hidden; }
.iw-load-vehicle>.rig-art-pair>img { width:100%;height:100%;min-width:0;max-width:100%;max-height:100%;object-fit:contain; }
.iw-load-vehicle>div { min-width:0; }
.iw-load-vehicle h2 { margin:0 0 8px;overflow-wrap:anywhere; }
.iw-load-card>label { display:block;font-size:12px;margin-bottom:5px;color:var(--muted); }
.iw-load-card>select { width:100%;margin-bottom:16px; }
.iw-load-card .manifest { padding-top:12px;border-top:1px solid #426174; }
.ltw-immersive .selection-summary,.ltw-immersive .vehicle-load { background:#10293b;border-color:#466579; }
.ltw-immersive .job { background:linear-gradient(135deg,#233f53,#172f42);border:1px solid #4b6d82;border-radius:12px;box-shadow:0 2px 3px #03121c33; }
.ltw-immersive .job.checked { background:linear-gradient(120deg,#285553,#203e51);border-color:#8ad7ca; }
.ltw-immersive .tabs button { font-size:15px;height:44px;min-height:44px;border-radius:9px;background:#1b3549;border:1px solid #44677b;color:#c4dbe8;box-shadow:none; }
.ltw-immersive .tabs button.active { background:linear-gradient(#316977,#25515e);color:#fff;border-color:#70b1b8; }
.ltw-immersive .tabs svg { width:21px;height:21px; }
.ltw-immersive .dispatch-button { font-size:18px;min-height:48px; }
.ltw-immersive .dispatch-button>svg { width:23px;height:23px; }
.iw-transit { display:flex;flex-direction:column;align-items:flex-start;gap:4px;width:100%;margin-top:10px;text-align:left; }
.iw-company-hero { display:grid;grid-template-columns:150px minmax(0,1fr);align-items:center;gap:20px; }
.iw-company-art img { width:100%;height:150px;object-fit:contain; }
.iw-company-hero h2 { font-size:30px;margin:10px 0; }
.iw-company-hero p { font-size:12px;line-height:1.6;color:#bdd3df; }
.iw-company-hero progress { width:100%;height:8px;display:block;margin:12px 0 8px; }
.iw-company-grid .receipt-highlight { margin-top:16px;padding:20px;background:#132e40;border:1px solid #476679;border-radius:13px; }
.iw-company-grid+.licence-collection { margin-top:20px; }
.iw-company-settings { display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:20px; }
.ltw-immersive .ltw-settings-name { padding:0;min-height:44px;border:0;border-radius:4px;background:transparent;color:inherit;font:inherit;text-align:left;overflow-wrap:anywhere;touch-action:manipulation;user-select:none; }
.ltw-settings-name:focus-visible { outline:2px solid var(--accent,#87d4d0);outline-offset:5px; }
.ltw-dev-panel { margin-top:20px; }
.ltw-dev-panel h2 { margin:6px 0; }
.ltw-dev-panel>.row { flex-wrap:wrap;gap:12px; }
.ltw-dev-balances { line-height:1.7;overflow-wrap:anywhere; }
.ltw-dev-grid { display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:18px;margin-top:20px; }
.ltw-dev-control { display:flex;flex-direction:column;gap:10px;min-width:0; }
.ltw-dev-control label { font-weight:700; }
.ltw-dev-control input,.ltw-dev-control select { box-sizing:border-box;width:100%;min-width:0;min-height:44px;padding:10px;border:1px solid #7291a4;border-radius:8px;background:var(--iw-surface);color:var(--ink);font:inherit; }
.ltw-dev-control small { color:var(--muted);line-height:1.6; }
.ltw-dev-control button { margin-top:auto;min-height:44px; }
.ltw-dev-section { margin-top:24px;padding-top:20px;border-top:1px solid #476679; }
.ltw-dev-section h3 { margin:0 0 12px; }
.ltw-dev-section p { line-height:1.7;overflow-wrap:anywhere; }
.ltw-dev-checkpoint-actions { display:flex;flex-wrap:wrap;gap:12px; }
.ltw-dev-checkpoint-actions button { min-height:44px; }
.ltw-dev-diagnostics { display:grid;grid-template-columns:minmax(100px,1fr) minmax(0,3fr);gap:10px 16px;margin:0 0 16px;line-height:1.6; }
.ltw-dev-diagnostics dt { color:var(--muted); }
.ltw-dev-diagnostics dd { margin:0;overflow-wrap:anywhere; }
.ltw-dev-copy-fallback { width:100%;min-height:180px;box-sizing:border-box; }
.ltw-immersive .ledger td { padding:14px 8px;border-color:#3a596b; }
.ltw-immersive dialog { background:var(--iw-surface);border:1px solid #7291a4;box-shadow:0 22px 70px #0009;border-radius:16px;color:var(--ink); }
.ltw-immersive dialog::backdrop { background:#051421b8; }
/* Keep menu and panel scrollbars consistent with the harbour palette. */
.ltw-immersive,.ltw-immersive * { scrollbar-width:thin;scrollbar-color:#649da5 #132c3e; }
@supports selector(::-webkit-scrollbar) {
 @media (forced-colors:none) {
  .ltw-immersive,.ltw-immersive * { scrollbar-width:auto;scrollbar-color:auto; }
  .ltw-immersive::-webkit-scrollbar,.ltw-immersive *::-webkit-scrollbar { width:10px;height:10px; }
  .ltw-immersive::-webkit-scrollbar-track,.ltw-immersive *::-webkit-scrollbar-track { background:transparent;margin:12px; }
  .ltw-immersive::-webkit-scrollbar-thumb,.ltw-immersive *::-webkit-scrollbar-thumb { background:#649da5;border:2px solid transparent;background-clip:padding-box;border-radius:999px; }
  .ltw-immersive::-webkit-scrollbar-thumb:hover,.ltw-immersive *::-webkit-scrollbar-thumb:hover { background-color:#87d4d0; }
  .ltw-immersive::-webkit-scrollbar-thumb:active,.ltw-immersive *::-webkit-scrollbar-thumb:active { background-color:#a1ece2; }
  .ltw-immersive::-webkit-scrollbar-button,.ltw-immersive *::-webkit-scrollbar-button { display:none;width:0;height:0; }
  .ltw-immersive::-webkit-scrollbar-corner,.ltw-immersive *::-webkit-scrollbar-corner { background:transparent; }
 }
}
.ltw-immersive .onboarding { background:radial-gradient(ellipse at 75% 45%,#2b5260,#101f30 70%); }
.ltw-immersive .intro-art { background:linear-gradient(#19374755,#11283c99); }
/* Float the existing map tools over the world while retaining map preferences. */
@media (min-width:1001px) and (min-height:601px), (min-width:901px) and (orientation:portrait) {
 .ltw-immersive .map-shell:not(.map-expanded) .workspace { display:grid;grid-template-columns:minmax(0,1fr) clamp(340px,34vw,480px);gap:0;height:100%;position:relative; }
 .ltw-immersive .map-shell:not(.map-expanded) .mapzone { grid-area:1/1/2/3;grid-template-rows:minmax(0,1fr);height:100%; }
 .ltw-immersive .map-shell:not(.map-expanded) .mapviewport { height:100%;grid-area:1/1; }
 .ltw-immersive .map-shell:not(.map-expanded) .workspace>.panel { grid-area:1/2;z-index:12;width:auto;height:calc(100% - 28px);margin:14px 14px 14px 0;padding:15px;overflow:auto; }
 .ltw-immersive .map-shell:not(.map-expanded) .fleet-deck { position:absolute;bottom:14px;left:14px;width:calc(100% - clamp(340px,34vw,480px) - 28px);height:258px;border:1px solid #5b7b89;border-radius:15px;background:#142f42f5;box-shadow:var(--iw-shadow);padding:8px; }
 .ltw-immersive .map-shell:not(.map-expanded) .atlas-toolbar { right:calc(clamp(340px,34vw,480px) + 14px); }
 .ltw-immersive .map-shell:not(.map-expanded) .map-controls { bottom:286px;right:calc(clamp(340px,34vw,480px) + 14px); }
 .ltw-immersive .map-shell:not(.map-expanded) .map-credit { bottom:274px; }
 .ltw-immersive .map-shell:not(.map-expanded) .fleet-deck:has(.slot-deck>small) { height:300px; }
 .ltw-immersive .map-shell:not(.map-expanded) .mapzone:has(.slot-deck>small) .map-controls { bottom:328px; }
 .ltw-immersive .map-shell:not(.map-expanded) .mapzone:has(.slot-deck>small) .map-credit { bottom:316px; }
 .ltw-immersive .map-shell:not(.map-expanded) .city-head { min-height:72px; }
 .ltw-immersive .map-shell:not(.map-expanded) .city-preview { height:66px; }
 .ltw-immersive .map-shell:not(.map-expanded) .city-heading h2 { font-size:27px; }
 .ltw-immersive .map-shell:not(.map-expanded) .panel .joblist { min-height:0;flex:none;overflow:visible; }
}
.ltw-immersive .vehicle-card { background:linear-gradient(135deg,#27465a,#183348);border:1px solid #547589; }
.ltw-immersive .vehicle-card.selected { background:linear-gradient(135deg,#335859,#244454);border-color:#d9bc78; }
.ltw-immersive .vehicle-image img { max-height:90px; }
@media (max-width:900px) {
 :root { --iw-header:62px;--iw-nav:72px; }
 .ltw-immersive .topbar .ltw-name { display:none; }
 .ltw-immersive .topbar .ltw-globe { width:42px;height:42px; }
 .ltw-immersive .topbar .rank-track,.ltw-immersive .header-controls .header-icon { display:none; }
 .ltw-immersive .shell>.sidebar { gap:7px;padding:6px 10px; }
 .iw-nav-art { height:32px;width:52px; }
 .iw-fleet-grid,.iw-jobs-grid { gap:14px; }
 .iw-jobs-grid { grid-template-columns:minmax(0,1fr) minmax(280px,.9fr); }
 .iw-picker-art { flex-basis:72px; }
 .iw-company-hero { grid-template-columns:90px minmax(0,1fr);gap:12px; }
 .iw-company-art img { height:100px; }
 .iw-vehicle-hero .garage-rig-art { height:180px; }
}
@media (max-width:680px) {
 :root { --iw-header:58px;--iw-nav:69px; }
 .ltw-immersive .shell>.topbar { gap:5px;padding:5px 8px; }
 .ltw-immersive .topbar .rank-chip,.ltw-immersive .topbar .balance-chip { font-size:13px;padding:5px 7px;gap:5px; }
 .ltw-immersive .topbar .rank-chip>svg { width:17px;height:17px; }
 .ltw-immersive .topbar .brandmark { display:none; }
 .ltw-immersive .game-menu-button { font-size:12px;padding:0 8px;gap:5px; }
 .ltw-immersive .shell>.sidebar { gap:5px;padding:5px 7px max(5px,env(safe-area-inset-bottom)); }
 .ltw-immersive .nav { font-size:11px;border-radius:9px;padding:3px; }
 .iw-nav-art { height:31px;width:44px; }
 .ltw-immersive .page { padding:18px 12px 24px; }
 .ltw-immersive .iw-section-links { padding:10px 12px 0; }
 .ltw-immersive .iw-section-links button { padding:8px 12px;font-size:12px; }
 .iw-fleet-grid,.iw-jobs-grid,.iw-company-grid { grid-template-columns:minmax(0,1fr); }
 .iw-load-column { position:static; }
 .iw-fleet-sidebar { grid-row:1; }
 .iw-fleet-sidebar>.card:first-child { padding:12px; }
 .iw-fleet-sidebar>.card:first-child>.eyebrow { display:none; }
 .iw-fleet-sidebar>.card:first-child>.wide,.iw-fleet-sidebar>.iw-depot-card,.iw-fleet-sidebar>.iw-note { display:none; }
 .iw-vehicle-list { display:flex;overflow-x:auto;margin:0;gap:8px; }
 .iw-vehicle-choice { flex:0 0 min(290px,100%);padding:9px;min-height:84px; }
 .iw-vehicle-hero .garage-rig-art { height:190px; }
 .iw-company-hero { grid-template-columns:100px minmax(0,1fr); }
 .iw-city-select { width:100%; }
 .ltw-immersive .iw-job-board { padding:12px; }
 .ltw-immersive .iw-job-board .cargo-heading h3 { font-size:19px; }
 .iw-company .receipt-highlight .row { gap:14px; }
 .ltw-immersive .page-header { margin-bottom:16px; }
}
@media (orientation:landscape) and (max-height:600px) {
 :root { --iw-header:52px;--iw-nav:53px; }
 .ltw-immersive .shell>.topbar { height:52px;padding:3px 10px; }
 .ltw-immersive .shell>.sidebar { padding:4px 10px;gap:7px; }
 .ltw-immersive .nav { flex-direction:row;gap:6px;font-size:12px;border-radius:8px; }
 .iw-nav-art { width:38px;height:32px; }
 .ltw-immersive .page { padding-top:15px; }
 .iw-load-column { position:static; }
 .ltw-immersive .page-header h1 { font-size:26px; }
 .ltw-immersive .page-header { margin-bottom:14px; }
}
/* Full-screen map still uses the player's saved layout. */
.ltw-immersive .shell.map-expanded>.topbar,.ltw-immersive .shell.map-expanded>.sidebar { display:none; }
.ltw-immersive .shell.map-expanded>.content { height:100dvh; }
@media (prefers-reduced-motion:reduce) { .ltw-immersive * { scroll-behavior:auto!important; } }

/* Unowned cities use a small terminal symbol without requesting landmark art. */
.city-art-unowned{display:flex;align-items:center;justify-content:center;color:var(--muted,#6a8b91)}
.city-art-unowned svg{width:40px;height:40px;max-width:70%;max-height:70%}
