:root{--world-top-nav-h:58px;--world-bottom-safe:env(safe-area-inset-bottom,0px);--world-bottom-nav-h:44px;--world-bottom-reserved:calc(var(--world-bottom-nav-h) + var(--world-bottom-safe));--theme-accent:#536f9c;--theme-accent-strong:#3f557a;--theme-accent-soft:#dfe6f0;--theme-ink:#182032;--theme-muted:#606e84;--theme-panel:#f4f6f8;--theme-panel-strong:#e3e8ef;--theme-app-bg:#dfe4ea;--theme-nav:#f6f8fcf5;--theme-nav-dark:#1b2231f5;--theme-border:#1f2a352e;color:var(--theme-ink);background:var(--theme-app-bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Avenir Next,Avenir,Corbel,Segoe UI,sans-serif}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0}button,input,textarea,select{font:inherit}.shell{min-height:100vh;padding:calc(28px + var(--world-top-nav-h)) 28px calc(28px + var(--world-bottom-reserved));background:linear-gradient(135deg, color-mix(in srgb, var(--theme-accent) 8%, transparent) 0 1px, transparent 1px 22px), linear-gradient(90deg, color-mix(in srgb, var(--theme-accent-strong) 8%, transparent) 0 1px, transparent 1px 42px), var(--theme-app-bg);place-items:center;display:grid}.world-shell{align-items:start;padding-inline:clamp(10px,2vw,22px)}.panel{border:1px solid color-mix(in srgb, var(--theme-ink) 22%, transparent);background:color-mix(in srgb, var(--theme-panel) 94%, white);width:min(100%,1180px);box-shadow:0 28px 70px color-mix(in srgb, var(--theme-ink) 16%, transparent);border-radius:8px;padding:clamp(24px,4vw,48px)}.app-panel{width:min(100%,1360px)}.eyebrow{color:var(--theme-muted);letter-spacing:.12em;text-transform:uppercase;margin:0 0 14px;font-size:.78rem;font-weight:800}h1,h2,h3,p{margin-top:0}h1{color:var(--theme-ink);letter-spacing:0;margin-bottom:0;font-size:clamp(2.8rem,8vw,5.8rem);line-height:.92}h2{color:var(--theme-ink);letter-spacing:0;margin-bottom:0;font-size:clamp(1.6rem,4vw,2.4rem)}h3{color:var(--theme-ink);margin-bottom:0;font-size:1.1rem}.section-heading{gap:4px;display:grid}.section-heading span{color:var(--theme-muted);letter-spacing:.1em;text-transform:uppercase;font-size:.74rem;font-weight:900}.primary-action,.secondary-action,.danger-action,.text-action{cursor:pointer;border:0;border-radius:8px;min-height:42px;padding:0 16px;font-weight:900}.primary-action,.secondary-action{background:var(--theme-accent);color:#fff}.danger-action{color:#fff;background:#8f302b;justify-self:start}.text-action{background:color-mix(in srgb, var(--theme-accent-soft) 72%, white);color:var(--theme-ink)}button:disabled{cursor:not-allowed;opacity:.58}.error-message{color:#8f302b;background:#f7ddd9;border-radius:8px;margin:0;padding:12px 14px;font-weight:800}.system-note{color:var(--theme-muted);font-weight:800}.auth-shell{align-items:center;min-height:100vh;padding:clamp(14px,3vw,32px)}.auth-stage{border:1px solid color-mix(in srgb, var(--theme-ink) 16%, transparent);background:linear-gradient(135deg, color-mix(in srgb, var(--theme-panel) 94%, white), color-mix(in srgb, var(--theme-panel-strong) 88%, white)), var(--theme-panel);width:min(100%,1120px);box-shadow:0 28px 70px color-mix(in srgb, var(--theme-ink) 16%, transparent);border-radius:8px;grid-template-columns:minmax(0,1.05fr) minmax(360px,.72fr);gap:clamp(14px,2.6vw,28px);padding:clamp(12px,2vw,18px);display:grid}.auth-brand-panel,.auth-card{border:1px solid color-mix(in srgb, var(--theme-ink) 12%, transparent);border-radius:8px}.auth-brand-panel{background:linear-gradient(135deg, color-mix(in srgb, var(--theme-nav-dark) 92%, black), color-mix(in srgb, var(--theme-accent-strong) 84%, black)), var(--theme-nav-dark);color:#fff;align-content:space-between;min-height:520px;padding:clamp(22px,4vw,44px);display:grid;position:relative;overflow:hidden}.auth-brand-panel:before{content:"";background:linear-gradient(135deg,#ffffff14 0 1px,#0000 1px 28px),linear-gradient(90deg,#ffffff0e 0 1px,#0000 1px 54px);position:absolute;inset:0;-webkit-mask-image:linear-gradient(135deg,#000000f5,#0000006b);mask-image:linear-gradient(135deg,#000000f5,#0000006b)}.auth-brand-mark,.auth-brand-copy,.auth-signal-grid{z-index:1;position:relative}.auth-brand-mark{background:color-mix(in srgb, var(--theme-accent) 86%, white);color:#fff;border:1px solid #ffffff38;border-radius:8px;place-items:center;width:52px;height:52px;font-size:.95rem;font-weight:950;display:grid;box-shadow:inset 0 0 0 1px #ffffff2e}.auth-brand-copy{gap:12px;max-width:620px;display:grid}.auth-brand-copy span,.auth-card-heading span{color:color-mix(in srgb, var(--theme-accent-soft) 82%, white);letter-spacing:.12em;text-transform:uppercase;font-size:.74rem;font-weight:950}.auth-brand-copy h1{color:#fff;max-width:620px;font-size:clamp(2.4rem,6vw,4.9rem);line-height:.92}.auth-brand-copy p{max-width:500px;color:color-mix(in srgb, var(--theme-accent-soft) 78%, white);margin:0;font-size:1rem;font-weight:750;line-height:1.5}.auth-signal-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.auth-signal-grid div{min-width:0;color:color-mix(in srgb, var(--theme-accent-soft) 88%, white);background:#ffffff14;border:1px solid #ffffff29;border-radius:8px;align-items:center;gap:8px;padding:10px;font-size:.78rem;font-weight:900;display:flex}.auth-card{background:color-mix(in srgb, var(--theme-panel) 96%, white);align-content:center;gap:22px;padding:clamp(20px,3vw,34px);display:grid}.auth-card-heading{gap:6px;display:grid}.auth-card-heading span{color:var(--theme-muted)}.auth-card-heading h2{color:var(--theme-ink);margin:0;font-size:clamp(1.8rem,4vw,2.6rem);line-height:1}.auth-form{gap:14px;display:grid}.auth-form label{color:var(--theme-muted);letter-spacing:.08em;text-transform:uppercase;gap:7px;font-size:.78rem;font-weight:950;display:grid}.auth-form input{border:1px solid color-mix(in srgb, var(--theme-ink) 18%, transparent);background:color-mix(in srgb, var(--theme-panel) 82%, white);width:100%;min-height:46px;color:var(--theme-ink);border-radius:8px;outline:0;padding:0 12px;font-weight:850}.auth-form input:focus{border-color:color-mix(in srgb, var(--theme-accent) 62%, transparent);box-shadow:0 0 0 3px color-mix(in srgb, var(--theme-accent) 14%, transparent)}.auth-submit,.auth-mode-toggle{cursor:pointer;border-radius:8px;min-height:42px;font-weight:950}.auth-submit{background:var(--theme-accent);color:#fff;box-shadow:0 12px 24px color-mix(in srgb, var(--theme-accent) 22%, transparent);border:0}.auth-mode-toggle{border:1px solid color-mix(in srgb, var(--theme-accent) 18%, transparent);background:color-mix(in srgb, var(--theme-accent-soft) 58%, white);color:var(--theme-ink)}.auth-submit:disabled{cursor:wait;opacity:.62}.loading-panel{width:min(100%,460px)}@media (width<=840px){.auth-stage{grid-template-columns:1fr}.auth-brand-panel{min-height:320px}}@media (width<=560px){.auth-shell{padding:0}.auth-stage{border:0;border-radius:0;min-height:100vh;padding:10px}.auth-brand-panel{min-height:260px;padding:20px}.auth-brand-copy h1{font-size:2.2rem}.auth-signal-grid{grid-template-columns:1fr}}.top-bar{z-index:50;min-height:var(--world-top-nav-h);border-bottom:1px solid color-mix(in srgb, var(--theme-accent) 22%, transparent);background:linear-gradient(90deg, color-mix(in srgb, var(--theme-panel) 96%, white), color-mix(in srgb, var(--theme-panel-strong) 92%, white)), var(--theme-nav);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);grid-template-columns:minmax(220px,.8fr) minmax(320px,1.15fr) minmax(250px,.9fr);align-items:center;gap:16px;padding:0 18px;display:grid;position:fixed;inset:0 0 auto;box-shadow:0 12px 30px #19272024}.top-brand{align-items:center;gap:10px;min-width:0;display:inline-flex}.top-brand-mark{border:1px solid color-mix(in srgb, var(--theme-accent) 28%, white);background:linear-gradient(135deg, color-mix(in srgb, var(--theme-accent) 92%, black), var(--theme-accent-strong));color:#fff;border-radius:8px;place-items:center;width:38px;height:38px;font-size:.82rem;font-weight:950;display:grid;box-shadow:inset 0 0 0 1px #ffffff2e}.top-brand>div{gap:2px;min-width:0;display:grid}.top-brand h1,.top-brand span:not(.top-brand-mark){text-overflow:ellipsis;white-space:nowrap;margin:0;overflow:hidden}.top-brand h1{color:var(--theme-ink);letter-spacing:0;font-size:1.12rem;font-weight:950;line-height:1}.top-brand span:not(.top-brand-mark){color:var(--theme-muted);letter-spacing:.08em;text-transform:uppercase;font-size:.68rem;font-weight:900}.top-metrics{grid-template-columns:repeat(3,minmax(0,1fr));align-items:center;gap:8px;min-width:0;margin:0;display:grid}.top-metrics div{border:1px solid color-mix(in srgb, var(--theme-accent) 12%, transparent);background:#ffffff75;border-radius:8px;gap:2px;min-width:0;padding:7px 10px;display:grid}.top-metrics dt{color:var(--theme-muted);letter-spacing:.08em;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap;font-size:.62rem;font-weight:900;overflow:hidden}.top-metrics dd{color:var(--theme-ink);text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:.9rem;font-weight:950;line-height:1;overflow:hidden}.top-actions{justify-content:flex-end;align-items:center;gap:9px;min-width:0;display:flex}.logout-action{color:#8f302b;cursor:pointer;background:#f7ddd9;border:1px solid #8f302b33;border-radius:999px;place-items:center;width:38px;min-width:38px;height:38px;padding:0;display:grid}.status-row{justify-content:center;align-items:center;width:18px;height:38px;display:inline-flex}.status-dot{background:#a68d72;border-radius:50%;width:9px;height:9px}.status-dot.connected{background:var(--theme-accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--theme-accent) 16%, transparent)}.status-dot.reconnecting,.status-dot.connecting{background:#d78532;box-shadow:0 0 0 3px #d785321f}.status-dot.disconnected{background:#b8322d;box-shadow:0 0 0 3px #b8322d1f}.world-panel{gap:22px;width:min(100%,1600px);display:grid}.world-bottom-nav{z-index:40;width:100%;min-height:var(--world-bottom-reserved);padding-bottom:var(--world-bottom-safe);background:var(--theme-nav-dark);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-top:1px solid #1e2d253d;display:flex;position:fixed;inset:auto 0 0;box-shadow:0 -18px 34px #121e1833}.world-bottom-nav-scroll{scrollbar-width:none;flex:auto;min-width:0;display:flex;overflow:auto hidden}.world-bottom-nav-scroll::-webkit-scrollbar{display:none}.world-bottom-nav button{min-width:118px;min-height:var(--world-bottom-nav-h);color:#d9e2d5;cursor:pointer;background:0 0;border:0;border-left:1px solid #f5f7eb0f;flex:1 0 126px;justify-content:center;align-items:center;gap:7px;padding:0 12px;font-size:.72rem;font-weight:900;line-height:1;transition:background .16s,color .16s;display:inline-flex}.world-bottom-nav button:first-child{border-left:0}.world-bottom-nav button.active{background:var(--theme-panel);color:var(--theme-accent-strong)}.world-bottom-nav button svg{flex:none;width:17px;height:17px}.world-bottom-nav button span{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.operations-panel{border:1px solid var(--theme-border);background:var(--theme-panel);border-radius:8px;gap:14px;padding:16px;display:grid;box-shadow:0 12px 28px #202d2614}.operations-view-header{border:1px solid var(--theme-border);background:linear-gradient(90deg, color-mix(in srgb, var(--theme-panel-strong) 96%, white), color-mix(in srgb, var(--theme-accent-soft) 80%, white)), var(--theme-panel-strong);border-radius:8px;justify-content:space-between;align-items:end;gap:16px;padding:14px;display:flex}.operations-view-header>div:first-child{gap:2px;display:grid}.operations-view-header span{color:var(--theme-muted);text-transform:uppercase;font-size:.72rem;font-weight:900}.operations-view-header h3{color:var(--theme-ink);margin:0;font-size:1.12rem;line-height:1.1}.operations-view-summary{flex-wrap:wrap;justify-content:end;gap:8px;display:flex}.operations-view-summary span{color:var(--theme-muted);text-transform:none;background:#ffffff8f;border:1px solid #2532261a;border-radius:999px;align-items:center;gap:5px;padding:6px 9px;font-size:.74rem;display:inline-flex}.planning-desk,.control-card{border:1px solid var(--theme-border);background:var(--theme-panel);border-radius:8px;gap:14px;padding:16px;display:grid;box-shadow:0 12px 28px #202d2614}.control-card{background:color-mix(in srgb, var(--theme-panel) 88%, white);box-shadow:none;border-color:#222f2924;gap:12px;padding:14px}.control-card h4{color:var(--theme-ink);margin:0;font-size:.98rem}.logistics-card{border:1px solid var(--theme-border);background:linear-gradient(180deg, #ffffff9e, color-mix(in srgb, var(--theme-panel-strong) 78%, white)), var(--theme-panel-strong);border-radius:8px;gap:13px;display:grid;overflow:hidden}.logistics-card-header{justify-content:space-between;align-items:start;gap:12px;padding:14px 14px 0;display:flex}.logistics-card-header>div{gap:4px;min-width:0;display:grid}.logistics-card-header h4{overflow-wrap:anywhere;color:var(--theme-ink);margin:0;font-size:.98rem;line-height:1.18}.logistics-card-header>svg{color:var(--theme-muted)}.status-pill{border:1px solid color-mix(in srgb, var(--theme-accent) 24%, transparent);background:color-mix(in srgb, var(--theme-accent-soft) 82%, white);width:fit-content;color:var(--theme-accent-strong);letter-spacing:0;text-transform:uppercase;border-radius:999px;padding:3px 8px;font-size:.62rem;font-weight:900}.logistics-card-link{color:var(--theme-accent-strong);background:#ffffff8f;border:1px solid #2532261f;border-radius:999px;align-items:center;gap:6px;padding:7px 10px;font-size:.76rem;font-weight:900;text-decoration:none;display:inline-flex}.logistics-kpi-list{background:#25322614;border:1px solid #25322614;border-radius:8px;gap:1px;margin:0 14px;display:grid;overflow:hidden}.logistics-kpi-list div{background:#ffffff6b;justify-content:space-between;gap:12px;padding:8px 10px;display:flex}.logistics-kpi-list dt{color:var(--theme-muted);font-size:.72rem;font-weight:850}.logistics-kpi-list dd{color:var(--theme-ink);text-align:right;margin:0;font-size:.78rem;font-weight:900}.asset-card,.route-card{background:color-mix(in srgb, var(--theme-accent-soft) 56%, white);border:1px solid #222f2929;border-radius:8px;gap:12px;padding:14px;display:grid}.asset-card h4,.route-card h4{color:var(--theme-ink);margin:2px 0 0;font-size:1rem}.asset-card span,.route-card span{color:var(--theme-muted);text-transform:uppercase;font-size:.72rem;font-weight:900}.asset-card dl,.route-card dl{gap:8px;margin:0;display:grid}.asset-card dl div,.route-card dl div{justify-content:space-between;gap:10px;display:flex}.asset-card dt,.route-card dt{color:var(--theme-muted);font-weight:800}.asset-card dd,.route-card dd{color:var(--theme-ink);margin:0;font-weight:900}.asset-card button,.route-card button{background:var(--theme-accent);color:#fff;cursor:pointer;border:0;border-radius:8px;min-height:38px;font-weight:900}.asset-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.headquarters-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.headquarters-card{padding-bottom:14px}.headquarters-transactions-card{margin-top:12px;padding-bottom:14px}.headquarters-transaction-summary{flex-wrap:wrap;gap:8px;padding:0 14px;display:flex}.headquarters-transaction-summary span{border:1px solid color-mix(in srgb, var(--theme-ink) 10%, transparent);color:var(--theme-muted);background:#ffffff94;border-radius:999px;align-items:center;gap:6px;padding:6px 9px;font-size:.74rem;font-weight:900;display:inline-flex}.headquarters-transaction-list{gap:8px;padding:0 14px;display:grid}.recent-transaction-card{border:1px solid color-mix(in srgb, var(--theme-ink) 10%, transparent);background:#ffffff94;border-radius:8px;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr) auto;align-items:center;gap:12px;padding:10px 12px;display:grid}.recent-transaction-card>div{gap:2px;min-width:0;display:grid}.recent-transaction-card span{color:var(--theme-muted);text-transform:uppercase;font-size:.68rem;font-weight:900}.recent-transaction-card strong{overflow-wrap:anywhere;color:var(--theme-ink);font-size:.82rem}.service-chip-list,.daily-job-list{flex-wrap:wrap;gap:8px;padding:0 14px;display:flex}.daily-job-list{display:grid}.service-chip-card{border:1px solid color-mix(in srgb, var(--theme-ink) 10%, transparent);color:var(--theme-ink);background:#ffffff94;border-radius:8px;flex-direction:column;gap:2px;padding:8px 10px;display:inline-flex}.service-chip-card strong{font-size:.82rem;font-weight:900}.service-chip-card span{color:var(--theme-muted);text-transform:none;font-size:.72rem;font-weight:850}.daily-job-card{border:1px solid color-mix(in srgb, var(--theme-ink) 10%, transparent);background:#ffffff94;border-radius:8px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding:9px 10px;display:grid}.daily-job-card>div{gap:2px;min-width:0;display:grid}.daily-job-card>div:last-child{text-align:right}.daily-job-card strong{overflow-wrap:anywhere;color:var(--theme-ink);font-size:.82rem}.daily-job-card span{color:var(--theme-muted);text-overflow:ellipsis;white-space:nowrap;font-size:.7rem;font-weight:850;overflow:hidden}.vehicle-card-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.vehicle-position-strip{flex-wrap:wrap;gap:7px;padding:0 14px;display:flex}.vehicle-position-strip span{border:1px solid color-mix(in srgb, var(--theme-ink) 10%, transparent);color:var(--theme-muted);text-transform:none;background:#ffffff94;border-radius:999px;flex-direction:row;align-items:center;gap:5px;padding:5px 8px;font-size:.72rem;font-weight:850;display:inline-flex}.vehicle-kpi-row{margin-top:-1px}.fleet-vehicle-card .logistics-kpi-list{margin-bottom:14px}.dealership-filter-bar{flex-wrap:wrap;align-items:center;gap:7px;display:flex}.dealership-filter-bar span{background:color-mix(in srgb, var(--theme-accent) 18%, transparent);width:1px;height:24px}.dealership-filter-bar button{border:1px solid color-mix(in srgb, var(--theme-accent) 16%, transparent);min-height:31px;color:var(--theme-muted);cursor:pointer;background:#ffffff80;border-radius:999px;padding:0 11px;font-size:.74rem;font-weight:900}.dealership-filter-bar button.active{background:var(--theme-accent);color:#fff}.dealership-offer-card.disabled{opacity:.74}.purchase-vehicle-button{background:var(--theme-accent);color:#fff;cursor:pointer;border:0;border-radius:8px;justify-content:center;align-items:center;gap:7px;min-height:38px;margin:0 14px 14px;font-weight:900;display:inline-flex}.purchase-vehicle-button:disabled{cursor:not-allowed;opacity:.5}.town-progress-panel{gap:14px;display:grid}.town-progress-header{border:1px solid color-mix(in srgb, var(--theme-ink) 13%, transparent);background:linear-gradient(90deg, color-mix(in srgb, var(--theme-panel-strong) 92%, white), color-mix(in srgb, var(--theme-accent-soft) 82%, white)), var(--theme-panel-strong);border-radius:8px;justify-content:space-between;align-items:end;gap:16px;padding:14px;display:flex}.town-progress-header p{max-width:520px;color:var(--theme-muted);margin:0;font-size:.84rem;font-weight:800;line-height:1.4}.town-progress-table{border:1px solid color-mix(in srgb, var(--theme-ink) 16%, transparent);background:var(--theme-panel);border-radius:8px;display:grid;overflow:hidden;box-shadow:0 12px 28px #202d2614}.town-progress-row{border:0;border-bottom:1px solid color-mix(in srgb, var(--theme-ink) 12%, transparent);min-height:68px;color:var(--theme-ink);text-align:left;background:0 0;grid-template-columns:minmax(170px,1.1fr) minmax(150px,.9fr) minmax(150px,.9fr) minmax(140px,.75fr) minmax(150px,.8fr);align-items:center;gap:14px;padding:10px 14px;display:grid}button.town-progress-row{cursor:pointer}.town-progress-row:last-child{border-bottom:0}.town-progress-row.active{background:var(--theme-accent-soft);box-shadow:inset 4px 0 0 var(--theme-accent)}.town-progress-head{background:var(--theme-ink);min-height:36px;color:color-mix(in srgb, var(--theme-panel) 92%, white);letter-spacing:.08em;text-transform:uppercase;font-size:.68rem;font-weight:950}.town-progress-name,.town-progress-cell,.town-population-cell,.town-revenue-cell{gap:4px;min-width:0;display:grid}.town-progress-name strong,.town-population-cell strong,.town-revenue-cell strong,.town-progress-cell strong{color:var(--theme-ink);text-overflow:ellipsis;white-space:nowrap;font-weight:950;overflow:hidden}.town-progress-name small,.town-population-cell small,.town-revenue-cell small,.town-progress-cell small{color:var(--theme-muted);text-overflow:ellipsis;white-space:nowrap;font-size:.76rem;font-weight:800;overflow:hidden}.town-mini-bar,.town-line-progress{background:color-mix(in srgb, var(--theme-muted) 18%, transparent);border-radius:999px;height:7px;overflow:hidden}.town-mini-bar span,.town-line-progress span{border-radius:inherit;background:linear-gradient(90deg, var(--theme-accent), var(--theme-accent-strong));height:100%;display:block}.town-inspector{grid-template-columns:minmax(0,1.4fr) minmax(260px,.75fr);align-items:start;gap:14px;display:grid}.town-inspector-main,.town-service-board{border:1px solid color-mix(in srgb, var(--theme-ink) 16%, transparent);background:var(--theme-panel);border-radius:8px;gap:14px;padding:14px;display:grid;box-shadow:0 12px 28px #202d2614}.town-inspector-section,.town-demand-list,.town-service-list{gap:10px;display:grid}.town-demand-line{border:1px solid color-mix(in srgb, var(--theme-ink) 12%, transparent);background:color-mix(in srgb, var(--theme-accent-soft) 58%, white);border-radius:8px;grid-template-columns:minmax(150px,1fr) minmax(130px,.8fr) minmax(110px,.55fr);align-items:center;gap:12px;padding:10px;display:grid}.town-demand-line>div,.town-service-line{gap:3px;min-width:0;display:grid}.town-demand-line strong,.town-service-line strong{color:var(--theme-ink);text-overflow:ellipsis;white-space:nowrap;font-weight:950;overflow:hidden}.town-demand-line span,.town-service-line span,.town-service-line small{color:var(--theme-muted);text-overflow:ellipsis;white-space:nowrap;font-size:.78rem;font-weight:800;overflow:hidden}.town-service-line{border:1px solid color-mix(in srgb, var(--theme-ink) 12%, transparent);background:color-mix(in srgb, var(--theme-panel-strong) 86%, white);border-left:5px solid #b78951;border-radius:8px;padding:10px}.town-service-line.active{border-left-color:var(--theme-accent);background:var(--theme-accent-soft)}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0;display:grid}.metric-grid div{gap:4px;display:grid}.metric-grid dt{color:var(--theme-muted);letter-spacing:.08em;text-transform:uppercase;font-size:.72rem;font-weight:900}.metric-grid dd{color:var(--theme-ink);margin:0;font-weight:900}.node-details{gap:10px;margin:0;display:grid}.node-details div{border-bottom:1px solid color-mix(in srgb, var(--theme-ink) 12%, transparent);justify-content:space-between;gap:16px;padding-bottom:8px;display:flex}.node-details dt{color:var(--theme-muted);font-weight:900}.node-details dd{color:var(--theme-ink);margin:0;font-weight:900}.transaction-overview-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.transaction-metric-card{border:1px solid color-mix(in srgb, var(--theme-ink) 14%, transparent);background:linear-gradient(180deg, #ffffffa8, color-mix(in srgb, var(--theme-panel-strong) 76%, white)), var(--theme-panel-strong);border-radius:8px;gap:5px;padding:13px;display:grid}.transaction-metric-card svg{color:var(--theme-accent)}.transaction-metric-card span{color:var(--theme-muted);text-transform:uppercase;font-size:.68rem;font-weight:900}.transaction-metric-card strong{color:var(--theme-ink);font-size:1rem}.transaction-list{gap:10px;display:grid}.transaction-card{padding:13px}.transaction-card-header{justify-content:space-between;align-items:start;gap:14px;display:flex}.transaction-card-header>div{gap:3px;min-width:0;display:grid}.transaction-card-header span,.transaction-card-route span{color:var(--theme-muted);text-transform:uppercase;font-size:.7rem;font-weight:900}.transaction-card-header h4{overflow-wrap:anywhere;color:var(--theme-ink);margin:0;font-size:.98rem}.transaction-card-header>strong{color:var(--theme-accent);white-space:nowrap;font-size:1rem}.transaction-card-route{flex-wrap:wrap;gap:8px;display:flex}.transaction-card-route span{border:1px solid color-mix(in srgb, var(--theme-ink) 10%, transparent);text-transform:none;background:#ffffff94;border-radius:999px;align-items:center;gap:6px;padding:6px 9px;display:inline-flex}.transaction-card-economy{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:0;display:grid}.transaction-card-economy div{border-top:1px solid color-mix(in srgb, var(--theme-ink) 10%, transparent);gap:2px;padding-top:8px;display:grid}.transaction-card-economy dt{color:var(--theme-muted);text-transform:uppercase;font-size:.68rem;font-weight:900}.transaction-card-economy dd{color:var(--theme-ink);margin:0;font-weight:900}.route-progress{background:color-mix(in srgb, var(--theme-ink) 12%, transparent);border-radius:999px;height:10px;overflow:hidden}.route-progress span{border-radius:inherit;background:var(--theme-accent);min-width:2px;height:100%;transition:width .18s;display:block}.routes-view-header{border:1px solid color-mix(in srgb, var(--theme-ink) 13%, transparent);background:linear-gradient(90deg, color-mix(in srgb, var(--theme-panel-strong) 92%, white), color-mix(in srgb, var(--theme-accent-soft) 82%, white)), var(--theme-panel-strong);border-radius:8px;justify-content:space-between;align-items:end;gap:16px;padding:14px;display:flex}.routes-view-header>div:first-child{gap:2px;display:grid}.routes-view-header span{color:var(--theme-muted);text-transform:uppercase;font-size:.72rem;font-weight:900}.routes-view-header h3{color:var(--theme-ink);margin:0;font-size:1.12rem;line-height:1.1}.routes-view-summary{flex-wrap:wrap;justify-content:end;gap:8px;display:flex}.routes-view-summary span{border:1px solid color-mix(in srgb, var(--theme-ink) 10%, transparent);color:var(--theme-muted);text-transform:none;background:#ffffff8f;border-radius:999px;padding:6px 9px;font-size:.74rem}.routes-view-summary strong{color:var(--theme-ink)}.route-active-list{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.route-active-card.selected{border-color:color-mix(in srgb, var(--theme-accent) 58%, transparent);box-shadow:0 0 0 2px color-mix(in srgb, var(--theme-accent) 12%, transparent)}.route-active-card{background:linear-gradient(180deg, #ffffff9e, color-mix(in srgb, var(--theme-panel-strong) 78%, white)), var(--theme-panel-strong);cursor:pointer;gap:13px;padding:0;transition:border-color .16s,box-shadow .16s,transform .16s;overflow:hidden}.route-active-card:hover{border-color:color-mix(in srgb, var(--theme-accent) 34%, transparent);box-shadow:0 10px 26px color-mix(in srgb, var(--theme-ink) 8%, transparent);transform:translateY(-1px)}.route-active-card:focus-visible{outline:2px solid color-mix(in srgb, var(--theme-accent) 60%, transparent);outline-offset:3px}.route-card-header{justify-content:space-between;align-items:start;gap:12px;padding:14px 14px 0;display:flex}.route-card-header>div{gap:4px;min-width:0;display:grid}.route-card-header h4{overflow-wrap:anywhere;color:var(--theme-ink);margin:0;font-size:.98rem;line-height:1.18}.route-active-card .route-follow-button{border:1px solid color-mix(in srgb, var(--theme-ink) 14%, transparent);min-height:32px;color:var(--theme-ink);cursor:pointer;white-space:nowrap;background:#ffffffa8;border-radius:8px;align-items:center;gap:6px;padding:0 9px;font-size:.75rem;font-weight:900;display:inline-flex}.route-active-card .route-follow-button:hover{border-color:color-mix(in srgb, var(--theme-accent) 42%, transparent);background:#fff}.route-card-meta,.route-cargo-strip{flex-wrap:wrap;gap:7px;padding:0 14px;display:flex}.route-cargo-strip{gap:6px}.route-card-meta span,.route-cargo-strip span{border:1px solid color-mix(in srgb, var(--theme-ink) 10%, transparent);color:var(--theme-muted);text-transform:none;background:#ffffff94;border-radius:999px;align-items:center;gap:5px;padding:5px 8px;font-size:.72rem;font-weight:850;display:inline-flex}.route-kpi-row{border-block:1px solid color-mix(in srgb, var(--theme-ink) 8%, transparent);background:color-mix(in srgb, var(--theme-ink) 8%, transparent);grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;display:grid}.route-kpi-row div{background:#ffffff6b;gap:3px;min-width:0;padding:10px;display:grid}.route-kpi-row svg{color:var(--theme-muted)}.route-kpi-row span{color:var(--theme-muted);text-transform:uppercase;font-size:.64rem;font-weight:900}.route-kpi-row strong{color:var(--theme-ink);text-overflow:ellipsis;white-space:nowrap;font-size:.88rem;line-height:1.1;overflow:hidden}.route-active-card .route-progress{margin:0 14px}.route-progress-caption{justify-content:space-between;gap:10px;padding:0 14px 14px;display:flex}.route-progress-caption span{color:var(--theme-muted);text-transform:none;font-size:.7rem;font-weight:850}.route-tracking-panel{border:1px solid color-mix(in srgb, var(--theme-ink) 14%, transparent);background:var(--theme-panel-strong);border-radius:8px;gap:12px;padding:14px;display:grid}.route-tracking-panel header{justify-content:space-between;align-items:start;gap:16px;display:flex}.route-tracking-panel header div{gap:2px;display:grid}.route-tracking-actions{justify-content:end;align-items:center;gap:10px;display:flex}.route-tracking-actions button{border:1px solid color-mix(in srgb, var(--theme-ink) 18%, transparent);min-height:30px;color:var(--theme-ink);cursor:pointer;background:#ffffff85;border-radius:8px;padding:0 10px;font-size:.76rem;font-weight:900}.route-tracking-actions .route-cancel-button{color:#7c2f20;background:#96362514;border-color:#9636253d;align-items:center;gap:6px;display:inline-flex}.route-tracking-actions .route-cancel-button:disabled{cursor:wait;opacity:.62}.route-tracking-panel span,.route-tracking-panel small{color:var(--theme-muted);text-transform:uppercase;font-size:.72rem;font-weight:900}.route-tracking-panel strong{color:var(--theme-ink);font-size:1rem}.route-tracking-shell{box-shadow:none}.route-tracking-board{min-height:260px}.route-tracking-route-line{stroke:color-mix(in srgb, var(--theme-accent) 88%, transparent);stroke-dasharray:0;stroke-width:3.2px}.route-tracking-stop{pointer-events:none}.route-tracking-stop>span{color:#fff;font-size:.68rem;font-weight:950}.route-tracking-truck{border:2px solid color-mix(in srgb, var(--theme-panel-strong) 95%, white);background:var(--theme-accent);width:13px;height:13px;box-shadow:0 0 0 0 color-mix(in srgb, var(--theme-accent) 42%, transparent);z-index:3;border-radius:999px;transition:left .24s linear,top .24s linear;animation:1.4s ease-out infinite route-truck-pulse;position:absolute;translate:-50% -50%}@keyframes route-truck-pulse{0%{box-shadow:0 0 0 0 color-mix(in srgb, var(--theme-accent) 44%, transparent)}70%{box-shadow:0 0 0 10px color-mix(in srgb, var(--theme-accent) 0%, transparent)}to{box-shadow:0 0 0 0 color-mix(in srgb, var(--theme-accent) 0%, transparent)}}.planner-view{border:1px solid color-mix(in srgb, var(--theme-ink) 18%, transparent);background:var(--theme-panel);border-radius:8px;gap:14px;min-height:520px;padding:16px;display:grid;box-shadow:0 12px 28px #202d2614}.planner-view-header{justify-content:space-between;align-items:center;gap:16px;display:flex}.planner-layout{grid-template-columns:minmax(0,1fr) minmax(260px,.34fr);align-items:stretch;gap:12px;display:grid}.planner-filter-bar{flex-wrap:wrap;gap:6px;display:flex}.planner-filter-bar button{border:1px solid color-mix(in srgb, var(--theme-ink) 20%, transparent);background:color-mix(in srgb, var(--theme-panel) 62%, transparent);min-height:28px;color:var(--theme-muted);cursor:pointer;border-radius:999px;padding:0 9px;font-size:.72rem;font-weight:850}.planner-filter-bar button.active{border-color:color-mix(in srgb, var(--theme-accent) 42%, transparent);background:color-mix(in srgb, var(--theme-accent) 10%, transparent);color:var(--theme-accent-strong)}.planner-location-index,.planner-inspector-panel{border:1px solid color-mix(in srgb, var(--theme-ink) 16%, transparent);background:var(--theme-panel);border-radius:8px;padding:12px}.planner-location-index{padding:8px}.planner-location-list{scrollbar-width:thin;gap:8px;display:flex;overflow:auto hidden}.planner-location-list button{border:1px solid color-mix(in srgb, var(--theme-ink) 14%, transparent);background:color-mix(in srgb, var(--theme-accent-soft) 58%, white);min-height:48px;color:var(--theme-ink);cursor:pointer;text-align:left;border-radius:8px;flex:0 0 170px;gap:3px;padding:7px 9px;display:grid}.planner-location-list button.active{border-color:color-mix(in srgb, var(--theme-accent) 42%, transparent);background:var(--theme-accent-soft)}.planner-location-list strong,.planner-location-list span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.planner-location-list strong{font-size:.8rem;font-weight:950}.planner-location-list span{color:var(--theme-muted);font-size:.72rem;font-weight:800}.planner-board{border:1px solid color-mix(in srgb, var(--theme-ink) 18%, transparent);background:color-mix(in srgb, var(--theme-accent-soft) 60%, white);border-radius:8px;width:100%;height:clamp(340px,54vh,560px)}.planner-map-point{cursor:pointer}.planner-region-fill{opacity:.72;stroke:#2330272e;stroke-width:.8px}.planner-region-fill-agricultural{fill:#c3d5a680}.planner-region-fill-forest{fill:#799b696b}.planner-region-fill-industrial{fill:#b3b5a87a}.planner-region-fill-port{fill:#bdb8a480}.planner-region-fill-mining{fill:#b0a69785}.planner-region-fill-oil{fill:#b1a47473}.planner-region-fill-urban{fill:#d2c69e85}.planner-region-label{fill:color-mix(in srgb, var(--theme-ink) 72%, transparent);pointer-events:none;text-anchor:middle;text-transform:uppercase;font-size:4px;font-weight:900}.planner-point-fill{fill:#4b5e52e0;stroke:#f8f9f1db;stroke-width:1.2px}.planner-point-fill.inspected{fill:#2e3f34fa;stroke:#f2c95c;stroke-width:2px}.planner-point-fill-headquarters{fill:var(--theme-ink)}.planner-point-fill-market{fill:#6f5346e6}.planner-point-fill-resource,.planner-point-fill-processor{fill:#52714de6}.planner-point-fill-buildableService{fill:#8d714beb}.planner-point-label{fill:var(--theme-panel);pointer-events:none;text-anchor:middle;font-size:4px;font-weight:900}.planner-inspector-panel{min-height:100%}.planner-inspector-card{gap:8px;display:grid}.planner-inspector-card>span{color:var(--theme-muted);letter-spacing:.08em;text-transform:uppercase;font-size:.7rem;font-weight:900}.planner-inspector-card>strong{color:var(--theme-ink);font-size:1.02rem}.planner-inspector-card>small{color:var(--theme-muted);font-weight:800}.atlas-panel{border:1px solid color-mix(in srgb, var(--theme-ink) 18%, transparent);background:var(--theme-panel);border-radius:8px;gap:14px;padding:16px;display:grid;box-shadow:0 12px 28px #202d2614}.map-title-row{justify-content:space-between;align-items:center;gap:16px;display:flex}.atlas-workbench{grid-template-columns:minmax(0,1fr) minmax(260px,.34fr);align-items:stretch;gap:12px;display:grid}.atlas-board{width:100%;aspect-ratio:var(--map-aspect-ratio,1 / 1);border:1px solid color-mix(in srgb, var(--theme-ink) 18%, transparent);background:radial-gradient(circle at 18% 22%, #5b755624, transparent 30%), radial-gradient(circle at 72% 70%, #816e4f21, transparent 32%), color-mix(in srgb, var(--theme-accent-soft) 60%, white);border-radius:8px;justify-self:center;height:clamp(360px,58vh,620px);min-height:360px;position:relative;overflow:hidden}.atlas-grid{background-color:#0000;background-image:linear-gradient(#24312711 1px,#0000 1px),linear-gradient(90deg,#24312711 1px,#0000 1px);background-position:0 0,0 0;background-repeat:repeat,repeat;background-size:5% 5%;background-attachment:scroll,scroll;background-origin:padding-box,padding-box;background-clip:border-box,border-box;position:absolute;inset:0;-webkit-mask-image:linear-gradient(135deg,#000000eb,#000000a3);mask-image:linear-gradient(135deg,#000000eb,#000000a3)}.atlas-route-layer{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.atlas-route-line{fill:none;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.atlas-route-line.saved{stroke:#215d55d1;stroke-width:3px}.atlas-route-line.draft{stroke:#d19431db;stroke-dasharray:6 6;stroke-width:2px}.atlas-region{width:var(--region-size);height:var(--region-size);opacity:.72;border:1px solid #23302724;border-radius:999px;place-items:center;display:grid;position:absolute;translate:-50% -50%}.atlas-region span{max-width:72%;color:color-mix(in srgb, var(--theme-ink) 72%, transparent);pointer-events:none;text-align:center;text-transform:uppercase;font-size:clamp(.64rem,1vw,.82rem);font-weight:900}.atlas-region-agricultural{background:#c3d5a657}.atlas-region-forest{background:#799b6947}.atlas-region-industrial{background:#b3b5a852}.atlas-region-port{background:#bdb8a459}.atlas-region-mining{background:#b0a6975c}.atlas-region-oil{background:#b1a4744d}.atlas-region-urban{background:#d2c69e59}.atlas-point{aspect-ratio:1;width:22px;height:22px;color:var(--theme-panel);cursor:pointer;background:#4b5e52d1;border:1px solid #f8f9f1b8;border-radius:999px;place-items:center;font-size:.66rem;font-weight:900;transition:transform .14s,background .14s,box-shadow .14s;display:grid;position:absolute;translate:-50% -50%;box-shadow:0 8px 18px #1c282124}.atlas-point span{pointer-events:none}.atlas-point strong{min-width:16px;height:16px;color:var(--theme-ink);background:#f2c95c;border:1px solid #f8f9f1d6;border-radius:999px;place-items:center;font-size:.62rem;line-height:1;display:grid;position:absolute;top:-6px;right:-6px}.atlas-point:hover,.atlas-point.active,.atlas-point.inspected{background:#2e3f34f2;transform:scale(1.08);box-shadow:0 0 0 4px #f2c95c47,0 10px 24px #1c282133}.atlas-point.inspected{box-shadow:0 0 0 5px color-mix(in srgb, var(--theme-accent) 34%, transparent), 0 10px 24px #1c282133}.atlas-point-headquarters{background:var(--theme-ink);box-shadow:0 0 0 3px #f2c95c47}.atlas-point-market{background:#6f5346d6}.atlas-point-resource,.atlas-point-processor{background:#52714dd6}.atlas-point-buildableService{background:#8d714bdb}.atlas-point-industry{background:#6f6550db}.atlas-filter-bar{flex-wrap:wrap;gap:6px;display:flex}.atlas-filter-bar button{border:1px solid color-mix(in srgb, var(--theme-ink) 20%, transparent);background:color-mix(in srgb, var(--theme-panel) 62%, transparent);min-height:28px;color:var(--theme-muted);cursor:pointer;border-radius:999px;padding:0 9px;font-size:.72rem;font-weight:850;transition:background .14s,border-color .14s,color .14s}.atlas-filter-bar button.active{border-color:color-mix(in srgb, var(--theme-accent) 42%, transparent);background:color-mix(in srgb, var(--theme-accent) 10%, transparent);color:var(--theme-accent-strong)}.atlas-inspector-panel,.atlas-location-index{border:1px solid color-mix(in srgb, var(--theme-ink) 16%, transparent);background:var(--theme-panel);border-radius:8px;padding:12px}.atlas-inspector-panel{min-height:100%}.atlas-inspector-card{gap:8px;display:grid}.atlas-inspector-card>span{color:var(--theme-muted);letter-spacing:.08em;text-transform:uppercase;font-size:.7rem;font-weight:900}.atlas-inspector-card>strong{color:var(--theme-ink);font-size:1.02rem}.atlas-inspector-card>small{color:var(--theme-muted);font-weight:800}.atlas-location-index{border:1px solid color-mix(in srgb, var(--theme-ink) 18%, transparent);background:var(--theme-panel);border-radius:8px;padding:8px}.atlas-location-list{scrollbar-width:thin;gap:8px;display:flex;overflow:auto hidden}.atlas-location-list button{border:1px solid color-mix(in srgb, var(--theme-ink) 14%, transparent);background:color-mix(in srgb, var(--theme-accent-soft) 58%, white);min-height:48px;color:var(--theme-ink);cursor:pointer;text-align:left;border-radius:8px;flex:0 0 170px;gap:3px;padding:7px 9px;display:grid}.atlas-location-list button.active{border-color:color-mix(in srgb, var(--theme-accent) 42%, transparent);background:var(--theme-accent-soft)}.atlas-location-list strong,.atlas-location-list span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.atlas-location-list strong{font-size:.8rem;font-weight:950}.atlas-location-list span{color:var(--theme-muted);font-size:.72rem;font-weight:800}.atlas-hover-card{z-index:5;border:1px solid color-mix(in srgb, var(--theme-ink) 14%, transparent);background:color-mix(in srgb, var(--theme-panel) 96%, white);min-width:150px;max-width:210px;box-shadow:0 14px 30px color-mix(in srgb, var(--theme-ink) 16%, transparent);pointer-events:none;border-radius:8px;gap:3px;padding:10px 12px;display:grid;position:absolute}.atlas-hover-card.above-right{translate:12px -112%}.atlas-hover-card.above-left{translate:calc(-100% - 12px) -112%}.atlas-hover-card.below-right{translate:12px 12px}.atlas-hover-card.below-left{translate:calc(-100% - 12px) 12px}.atlas-hover-card span,.atlas-hover-card small{color:var(--theme-muted);font-size:.74rem;font-weight:900}.atlas-hover-card strong{color:var(--theme-ink);text-overflow:ellipsis;white-space:nowrap;font-size:.95rem;overflow:hidden}.atlas-inspection-modal{z-index:8;border:1px solid color-mix(in srgb, var(--theme-ink) 18%, transparent);background:color-mix(in srgb, var(--theme-panel) 96%, white);width:min(360px,100% - 24px);max-height:min(430px,100% - 24px);box-shadow:0 18px 44px color-mix(in srgb, var(--theme-ink) 18%, transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:8px;gap:9px;padding:12px;display:grid;position:absolute;bottom:12px;right:12px;overflow-y:auto}.atlas-inspection-modal header{justify-content:space-between;align-items:start;gap:10px;display:flex}.atlas-inspection-modal header div{gap:4px;display:grid}.atlas-inspection-modal span,.atlas-inspection-modal small{color:var(--theme-muted);font-size:.74rem;font-weight:900}.atlas-inspection-modal span{letter-spacing:.08em;text-transform:uppercase}.atlas-inspection-modal strong{color:var(--theme-ink);font-size:1rem;font-weight:950}.atlas-inspection-modal p{color:var(--theme-muted);margin:0;font-size:.84rem;font-weight:800}.atlas-inspection-modal header button{border:1px solid color-mix(in srgb, var(--theme-ink) 16%, transparent);background:color-mix(in srgb, var(--theme-accent-soft) 58%, white);width:32px;height:32px;color:var(--theme-ink);cursor:pointer;border-radius:8px;flex:0 0 32px;place-items:center;font-size:1rem;font-weight:950;display:grid}.atlas-inspection-action{background:var(--theme-ink);min-height:38px;color:var(--theme-panel);cursor:pointer;border:0;border-radius:8px;padding:0 12px;font-weight:950}.atlas-hover-details,.route-stop-details{gap:5px;margin:6px 0 0;display:grid}.atlas-hover-details div,.route-stop-details div{justify-content:space-between;gap:8px;display:flex}.atlas-hover-details dt,.route-stop-details dt{color:var(--theme-muted);text-transform:uppercase;font-size:.68rem;font-weight:900}.atlas-hover-details dd,.route-stop-details dd{color:var(--theme-ink);text-align:right;margin:0;font-size:.72rem;font-weight:900}.route-planner-panel{border:1px solid color-mix(in srgb, var(--theme-ink) 14%, transparent);background:color-mix(in srgb, var(--theme-panel) 88%, white);border-radius:8px;gap:12px;padding:14px;display:grid}.route-planner-panel h4{color:var(--theme-ink);margin:0}.route-stop-list,.route-segment-list{gap:8px;display:grid}.route-stop-list{grid-template-columns:repeat(4,minmax(0,1fr))}.route-stop-list button,.route-segment-list article{border:1px solid color-mix(in srgb, var(--theme-ink) 14%, transparent);background:color-mix(in srgb, var(--theme-accent-soft) 58%, white);color:var(--theme-ink);text-align:left;border-radius:8px;gap:4px;padding:10px;display:grid}.route-stop-list button{cursor:pointer}.route-stop-list button span{background:var(--theme-ink);color:#fff;border-radius:999px;place-items:center;width:24px;height:24px;font-size:.78rem;font-weight:900;display:grid}.route-stop-list strong,.route-segment-list strong{font-weight:900}.route-stop-list small,.route-segment-list span{color:var(--theme-muted);font-size:.8rem;font-weight:800}.route-planner-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.route-vehicle-cards{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px;display:grid}.route-vehicle-cards button{border:1px solid color-mix(in srgb, var(--theme-ink) 16%, transparent);background:var(--theme-panel);min-height:86px;color:var(--theme-ink);cursor:pointer;text-align:left;border-radius:8px;gap:5px;padding:10px 12px;display:grid}.route-vehicle-cards button.active{background:#d5e8e0c7;border-color:#215d55a8;box-shadow:inset 0 0 0 1px #215d553d}.route-vehicle-cards strong{font-weight:900}.route-vehicle-cards span,.route-vehicle-cards small{color:var(--theme-muted);font-size:.78rem;font-weight:800}.route-cargo-panel{gap:10px;display:grid}.route-cargo-options{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px;display:grid}.route-cargo-options button{border:1px solid color-mix(in srgb, var(--theme-ink) 16%, transparent);background:var(--theme-panel);color:var(--theme-ink);cursor:pointer;text-align:left;border-radius:8px;gap:5px;padding:10px 12px;display:grid}.route-cargo-options button.active{background:#f6e9cad1;border-color:#8f5c279e;box-shadow:inset 0 0 0 1px #8f5c272e}.route-cargo-options strong{font-weight:900}.route-cargo-options span,.route-cargo-options small{color:var(--theme-muted);font-size:.78rem;font-weight:800}.route-cargo-quantity{max-width:260px;color:var(--theme-ink);gap:6px;font-weight:900;display:grid}.route-cargo-quantity span{color:var(--theme-muted);letter-spacing:.08em;text-transform:uppercase;font-size:.72rem}.route-cargo-quantity small{color:var(--theme-muted);font-size:.74rem;font-weight:800}.route-cargo-stepper{border:1px solid color-mix(in srgb, var(--theme-ink) 18%, transparent);background:var(--theme-panel);border-radius:8px;grid-template-columns:42px minmax(88px,1fr) 42px;display:grid;overflow:hidden}.route-cargo-stepper button,.route-cargo-stepper strong{min-height:42px;color:var(--theme-ink);place-items:center;font-weight:900;display:grid}.route-cargo-stepper button{background:color-mix(in srgb, var(--theme-accent-soft) 58%, white);cursor:pointer;border:0;font-size:1rem}.route-cargo-stepper button:disabled{color:color-mix(in srgb, var(--theme-ink) 34%, transparent);cursor:not-allowed}.route-cargo-stepper strong{border-inline:1px solid color-mix(in srgb, var(--theme-ink) 12%, transparent);background:var(--theme-panel)}.route-calculation-status{min-height:18px;color:var(--theme-muted);font-size:.82rem;font-weight:900;display:block}.route-plan-result{gap:12px;display:grid}.route-segment-list{grid-template-columns:repeat(3,minmax(0,1fr))}.atlas-legend{flex-wrap:wrap;gap:10px;display:flex}.atlas-legend span{color:var(--theme-ink);align-items:center;gap:7px;font-size:.82rem;font-weight:900;display:inline-flex}.legend-dot{background:#b63b32;border-radius:50%;width:10px;height:10px}.legend-dot.headquarters{background:#111914;outline:2px solid #f3c74f}.legend-dot.production{background:var(--theme-accent)}.legend-dot.service{background:#2c6180}.legend-dot.buildable{background:#8d714b}.planner-screen{border:1px solid color-mix(in srgb, var(--theme-ink) 18%, transparent);background:var(--theme-panel);border-radius:8px;gap:14px;padding:16px;display:grid;box-shadow:0 12px 28px #202d2614}.planner-screen-header{justify-content:space-between;align-items:end;gap:16px;display:flex}.planner-screen-header div{gap:4px;display:grid}.planner-screen-header span,.planner-route-builder>header span{color:var(--theme-muted);letter-spacing:.08em;text-transform:uppercase;font-size:.72rem;font-weight:900}.planner-screen-header h3{color:var(--theme-ink);margin:0}.planner-screen-header small{color:var(--theme-muted);font-weight:850}.planner-filter-strip{gap:6px;padding-bottom:2px;display:flex;overflow-x:auto}.planner-filter-strip button{border:1px solid color-mix(in srgb, var(--theme-ink) 20%, transparent);background:color-mix(in srgb, var(--theme-panel) 62%, transparent);min-height:28px;color:var(--theme-muted);cursor:pointer;border-radius:999px;flex:none;padding:0 9px;font-size:.72rem;font-weight:850}.planner-filter-strip button.active{border-color:color-mix(in srgb, var(--theme-accent) 42%, transparent);background:color-mix(in srgb, var(--theme-accent) 10%, transparent);color:var(--theme-accent-strong)}.planner-location-strip{border:1px solid color-mix(in srgb, var(--theme-ink) 18%, transparent);background:var(--theme-panel);border-radius:8px;padding:8px;overflow-x:auto}.planner-location-strip>div{gap:8px;display:flex}.planner-location-strip button{border:1px solid color-mix(in srgb, var(--theme-ink) 14%, transparent);background:color-mix(in srgb, var(--theme-accent-soft) 58%, white);min-height:48px;color:var(--theme-ink);cursor:pointer;text-align:left;border-radius:8px;flex:0 0 170px;gap:3px;padding:7px 9px;display:grid}.planner-location-strip button.active{border-color:color-mix(in srgb, var(--theme-accent) 42%, transparent);background:var(--theme-accent-soft)}.planner-location-strip strong,.planner-location-strip span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.planner-location-strip strong{font-size:.8rem;font-weight:950}.planner-location-strip span{color:var(--theme-muted);font-size:.72rem;font-weight:800}.planner-map-shell{min-width:0}.planner-map-board{border:1px solid color-mix(in srgb, var(--theme-ink) 18%, transparent);background:radial-gradient(circle at 18% 22%, #5b755624, transparent 30%), radial-gradient(circle at 72% 70%, #816e4f21, transparent 32%), color-mix(in srgb, var(--theme-accent-soft) 60%, white);border-radius:8px;width:100%;height:clamp(360px,58vh,620px);min-height:360px;position:relative;overflow:hidden}.planner-map-grid{background-color:#0000;background-image:linear-gradient(#24312711 1px,#0000 1px),linear-gradient(90deg,#24312711 1px,#0000 1px);background-position:0 0,0 0;background-repeat:repeat,repeat;background-size:5% 5%;background-attachment:scroll,scroll;background-origin:padding-box,padding-box;background-clip:border-box,border-box;position:absolute;inset:0}.planner-map-region{width:var(--region-size);height:var(--region-size);opacity:.72;border:1px solid #23302724;border-radius:999px;place-items:center;display:grid;position:absolute;translate:-50% -50%}.planner-map-region span{max-width:76%;color:color-mix(in srgb, var(--theme-ink) 72%, transparent);pointer-events:none;text-align:center;text-transform:uppercase;font-size:clamp(.64rem,1vw,.82rem);font-weight:900}.planner-map-region-agricultural{background:#c3d5a657}.planner-map-region-forest{background:#799b6947}.planner-map-region-industrial{background:#b3b5a852}.planner-map-region-mining{background:#b0a6975c}.planner-map-region-oil{background:#b1a4744d}.planner-map-region-port{background:#bdb8a459}.planner-map-region-urban{background:#d2c69e59}.planner-map-route-layer{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.planner-map-route-line{fill:none;stroke:#d19431db;stroke-dasharray:6 6;stroke-linecap:round;stroke-linejoin:round;stroke-width:2px;vector-effect:non-scaling-stroke}.planner-map-point{width:22px;height:22px;color:var(--theme-panel);cursor:pointer;background:#4b5e52d1;border:1px solid #f8f9f1b8;border-radius:999px;place-items:center;font-size:.66rem;font-weight:900;display:grid;position:absolute;translate:-50% -50%;box-shadow:0 8px 18px #1c282124}.planner-map-point strong{min-width:16px;height:16px;color:var(--theme-ink);background:#f2c95c;border:1px solid #f8f9f1d6;border-radius:999px;place-items:center;font-size:.62rem;display:grid;position:absolute;top:-6px;right:-6px}.planner-map-point.active,.planner-map-point.inspected,.planner-map-point:hover{background:#2e3f34f2;box-shadow:0 0 0 4px #f2c95c47,0 10px 24px #1c282133}.planner-map-point-headquarters{background:var(--theme-ink);box-shadow:0 0 0 3px #f2c95c47}.planner-map-point-market{background:#6f5346d6}.planner-map-point-resource,.planner-map-point-processor{background:#52714dd6}.planner-map-point-buildableService{background:#8d714bdb}.planner-map-point-port{background:#655f4ee6}.planner-map-hover,.planner-map-modal{z-index:8;border:1px solid color-mix(in srgb, var(--theme-ink) 14%, transparent);background:color-mix(in srgb, var(--theme-panel) 96%, white);box-shadow:0 14px 30px color-mix(in srgb, var(--theme-ink) 16%, transparent);border-radius:8px;display:grid;position:absolute}.planner-map-hover{pointer-events:none;gap:3px;min-width:150px;max-width:210px;padding:10px 12px}.planner-map-hover.above-right{translate:12px -112%}.planner-map-hover.above-left{translate:calc(-100% - 12px) -112%}.planner-map-hover.below-right{translate:12px 12px}.planner-map-hover.below-left{translate:calc(-100% - 12px) 12px}.planner-map-hover span,.planner-map-hover small,.planner-map-modal span,.planner-map-modal small{color:var(--theme-muted);font-size:.74rem;font-weight:900}.planner-map-hover strong,.planner-map-modal strong{color:var(--theme-ink);font-weight:950}.planner-map-modal{box-sizing:border-box;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);gap:9px;width:min(340px,100% - 24px);max-height:min(430px,100% - 24px);padding:12px;overflow-y:auto}.planner-map-modal.above-left{left:max(12px, calc(var(--point-left) - 354px));top:max(12px, calc(var(--point-top) - 444px))}.planner-map-modal.above-right{left:min(calc(var(--point-left) + 14px), calc(100% - 352px));top:max(12px, calc(var(--point-top) - 444px))}.planner-map-modal.below-left{left:max(12px, calc(var(--point-left) - 354px));top:min(calc(var(--point-top) + 14px), calc(100% - 444px))}.planner-map-modal.below-right{left:min(calc(var(--point-left) + 14px), calc(100% - 352px));top:min(calc(var(--point-top) + 14px), calc(100% - 444px))}.planner-map-modal header{justify-content:space-between;align-items:start;gap:10px;display:flex}.planner-map-modal header div{gap:4px;display:grid}.planner-map-modal header button{border:1px solid color-mix(in srgb, var(--theme-ink) 16%, transparent);background:color-mix(in srgb, var(--theme-accent-soft) 58%, white);width:32px;height:32px;color:var(--theme-ink);cursor:pointer;border-radius:8px;place-items:center;font-size:1rem;font-weight:950;display:grid}.planner-map-modal p{color:var(--theme-muted);margin:0;font-size:.84rem;font-weight:800}.planner-map-details{gap:5px;margin:0;display:grid}.planner-map-details div{justify-content:space-between;gap:8px;display:flex}.planner-map-details dt{color:var(--theme-muted);text-transform:uppercase;font-size:.68rem;font-weight:900}.planner-map-details dd{color:var(--theme-ink);text-align:right;margin:0;font-size:.72rem;font-weight:900}.planner-map-action{background:var(--theme-ink);min-height:38px;color:var(--theme-panel);cursor:pointer;border:0;border-radius:8px;padding:0 12px;font-weight:950}.planner-route-builder{border:1px solid color-mix(in srgb, var(--theme-ink) 14%, transparent);background:color-mix(in srgb, var(--theme-panel) 88%, white);border-radius:8px;gap:12px;padding:14px;display:grid}.planner-route-builder-header{justify-content:space-between;align-items:end;gap:12px;display:flex}.planner-route-builder-header div{gap:4px;display:grid}.planner-route-builder-header strong{color:var(--theme-ink);font-size:1rem}.planner-route-builder-header small{color:var(--theme-muted);font-weight:900}.planner-route-section{gap:8px;display:grid}.planner-route-section h4{color:var(--theme-ink);margin:0;font-size:.82rem;font-weight:950}.planner-stop-flow{align-items:stretch;gap:8px;padding-bottom:2px;display:flex;overflow-x:auto}.planner-vehicle-list,.planner-route-summary,.planner-cargo-options{grid-template-columns:repeat(auto-fit,minmax(160px,max-content));gap:10px;display:grid}.planner-stop-flow button,.planner-vehicle-list button,.planner-cargo-card,.planner-route-summary div{border:1px solid color-mix(in srgb, var(--theme-ink) 14%, transparent);background:color-mix(in srgb, var(--theme-accent-soft) 58%, white);color:var(--theme-ink);text-align:left;border-radius:8px;gap:5px;padding:10px;display:grid}.planner-stop-flow button{flex:0 0 160px;grid-template-columns:28px minmax(0,1fr);align-items:center;min-height:58px}.planner-stop-flow button span{background:var(--theme-ink);color:#fff;border-radius:999px;grid-row:span 2;place-items:center;width:28px;height:28px;font-size:.78rem;font-weight:950;display:grid}.planner-stop-flow button strong,.planner-stop-flow button small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.planner-stop-flow button,.planner-vehicle-list button,.planner-cargo-select{cursor:pointer}.planner-vehicle-list button.active,.planner-cargo-card.active{background:#d5e8e0c7;border-color:#215d55a8}.planner-vehicle-list{flex-wrap:wrap;gap:8px;display:flex}.planner-vehicle-list button{flex:0 0 168px;min-height:62px;padding:8px 10px}.planner-vehicle-list button small,.planner-vehicle-list button span,.planner-cargo-card small,.planner-cargo-card span{color:var(--theme-muted);text-overflow:ellipsis;white-space:nowrap;font-size:.76rem;font-weight:800;overflow:hidden}.planner-route-summary dt{color:var(--theme-muted);text-transform:uppercase;font-size:.68rem;font-weight:900}.planner-route-summary dd{color:var(--theme-ink);margin:0;font-weight:950}.planner-route-result{border-top:1px solid color-mix(in srgb, var(--theme-ink) 10%, transparent);padding-top:10px}.planner-cargo-options{flex-wrap:wrap;gap:8px;display:flex}.planner-cargo-card{flex:0 260px;min-width:220px;padding:0;overflow:hidden}.planner-cargo-select{width:100%;color:var(--theme-ink);text-align:left;background:0 0;border:0;gap:4px;padding:9px 10px;display:grid}.planner-cargo-inline-stepper{border:1px solid color-mix(in srgb, var(--theme-ink) 16%, transparent);background:var(--theme-panel);border-radius:7px;grid-template-columns:34px minmax(62px,1fr) 34px;margin:0 8px 8px;display:grid;overflow:hidden}.planner-cargo-inline-stepper button,.planner-cargo-inline-stepper strong{place-items:center;min-height:34px;display:grid}.planner-cargo-inline-stepper button{background:color-mix(in srgb, var(--theme-accent-soft) 58%, white);cursor:pointer;border:0;font-weight:950}.planner-cargo-inline-stepper button:disabled{color:color-mix(in srgb, var(--theme-ink) 34%, transparent);cursor:not-allowed}.planner-cargo-inline-stepper strong{border-inline:1px solid color-mix(in srgb, var(--theme-ink) 12%, transparent);color:var(--theme-ink);font-size:.82rem;font-weight:950}.planner-route-status{min-height:18px;color:var(--theme-muted);font-size:.82rem;font-weight:900}.planner-route-actions{flex-wrap:wrap;gap:10px;display:flex}@media (width<=760px){.atlas-panel{padding:10px}.map-title-row{align-items:start}.atlas-board{aspect-ratio:auto;height:min(62vh,520px);min-height:360px}.atlas-region span{max-width:84%;font-size:.58rem}.atlas-point{width:24px;height:24px;font-size:.64rem}.atlas-hover-card{display:none}.atlas-inspection-modal{width:calc(100% - 16px);max-height:min(48vh,360px);bottom:8px;right:8px}.atlas-filter-bar{flex-wrap:nowrap;padding-bottom:2px;overflow-x:auto}.atlas-filter-bar button{flex:none}.route-stop-list,.route-segment-list{grid-template-columns:1fr}.planner-screen{padding:10px}.planner-screen-header{align-items:start}.planner-map-board{height:min(62vh,520px);min-height:360px}.planner-map-region span{max-width:84%;font-size:.58rem}.planner-map-point{width:24px;height:24px;font-size:.64rem}.planner-map-hover{display:none}.planner-map-modal{width:min(310px,100% - 16px);max-height:min(48vh,360px)}.planner-map-modal.above-left{left:max(8px, calc(var(--point-left) - 318px));top:max(8px, calc(var(--point-top) - 368px))}.planner-map-modal.above-right{left:min(calc(var(--point-left) + 10px), calc(100% - 318px));top:max(8px, calc(var(--point-top) - 368px))}.planner-map-modal.below-left{left:max(8px, calc(var(--point-left) - 318px));top:min(calc(var(--point-top) + 10px), calc(100% - 368px))}.planner-map-modal.below-right{left:min(calc(var(--point-left) + 10px), calc(100% - 318px));top:min(calc(var(--point-top) + 10px), calc(100% - 368px))}:root{--world-top-nav-h:78px}.shell{padding:0}.world-shell{padding-top:var(--world-top-nav-h);padding-bottom:var(--world-bottom-reserved)}.panel{border:0;border-radius:0;min-height:100vh;padding:14px}.app-panel{min-height:calc(100vh - var(--world-bottom-reserved))}.top-bar{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"brand actions""metrics actions";gap:6px 10px;padding:7px 10px}.top-brand{grid-area:brand}.top-brand h1{font-size:1rem}.top-brand-mark{width:32px;height:32px;font-size:.72rem}.top-brand span:not(.top-brand-mark){display:none}.top-metrics{grid-area:metrics;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}.top-actions{grid-area:actions;justify-content:end}.top-metrics div{gap:1px;padding:5px 6px}.top-metrics dt,.top-metrics dd{font-size:.62rem}.asset-grid,.atlas-workbench,.vehicle-card-grid,.headquarters-grid,.planner-layout,.road-grid,.route-active-list,.route-stop-list,.route-segment-list,.town-inspector,.town-kpi-strip,.town-needs-grid,.town-detail-grid,.town-demand-grid,.town-demand-line,.transaction-card-economy,.transaction-overview-grid,.metric-grid{grid-template-columns:1fr}.town-progress-panel{padding:14px}.town-progress-header{align-items:stretch;display:grid}.town-progress-head{display:none}.town-progress-row{grid-template-columns:1fr;gap:10px;min-height:0;padding:12px}.world-panel{gap:14px}.needs-toolbar,.routes-view-header,.operations-view-header{align-items:stretch;display:grid}.operations-view-summary,.routes-view-summary{justify-content:start}.recent-transaction-card{grid-template-columns:1fr}}
