.landing{min-height:100%;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;font-size:16px;line-height:1.55}.landing a{color:inherit;text-decoration:none}.landing-wrap{max-width:1120px;margin:0 auto;padding-left:20px;padding-right:20px}.landing-header{z-index:5;background:var(--bg);border-bottom:1px solid var(--border);position:sticky;top:0}.landing-header .landing-wrap{align-items:center;gap:12px;height:64px;display:flex}.landing-header .brand{margin-right:8px;font-size:17px}.landing-nav{gap:4px;display:flex}.landing-nav a{color:var(--muted);border-radius:6px;padding:6px 10px;font-weight:500}.landing-nav a:hover{color:var(--text);background:var(--panel-2)}.landing-header .group-end{align-items:center;gap:8px;margin-left:auto;display:flex}.landing .btn{border:1px solid var(--border);background:var(--panel-2);color:var(--text);font:inherit;white-space:nowrap;cursor:pointer;border-radius:6px;justify-content:center;align-items:center;padding:11px 20px;font-size:15px;font-weight:600;line-height:1.2;transition:transform .18s cubic-bezier(.16,1,.3,1),background-color .18s,border-color .18s,filter .18s;display:inline-flex}.landing .btn:hover{background:var(--panel-hover);border-color:var(--border-hover);transform:translateY(-1px)}.landing .btn:active{transform:scale(.98)}.landing{--cta:#2372d0}[data-theme=light] .landing{--cta:var(--accent-strong)}.landing .btn--primary{background:var(--cta);border-color:var(--cta);color:var(--on-accent)}.landing .btn--primary:hover{background:var(--cta);border-color:var(--cta);filter:brightness(1.06)}.landing .btn--small{padding:7px 14px;font-size:14px;font-weight:500}.landing .btn:focus-visible,.landing a:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.landing .link-try{color:var(--accent);text-underline-offset:4px;font-size:15px;font-weight:500;-webkit-text-decoration:underline #0000;text-decoration:underline #0000;transition:text-decoration-color .18s}.landing .link-try:hover{text-decoration-color:currentColor}.hero{padding:64px 0 48px;overflow-x:clip}.hero .landing-wrap{grid-template-columns:minmax(0,5fr) minmax(0,7fr);align-items:center;gap:48px;display:grid}.eyebrow{color:var(--muted);margin-bottom:18px;font-size:13px;font-weight:600;display:block}.hero h1{letter-spacing:-.025em;text-wrap:balance;margin:0 0 20px;font-size:clamp(2.25rem,4.4vw,3.5rem);font-weight:700;line-height:1.04}.hero .lede{color:var(--muted);text-wrap:pretty;max-width:42ch;margin:0 0 32px;font-size:1.15rem}.hero-actions,.cta-actions{flex-wrap:wrap;align-items:center;gap:20px;display:flex}.shot{border:1px solid var(--border);width:100%;height:auto;box-shadow:0 24px 64px -24px var(--shadow);background:var(--panel);border-radius:12px;display:block}.hero-shot{margin-right:calc(-1*clamp(0px,6vw,96px))}.section{padding:80px 0}.section h2{letter-spacing:-.02em;text-wrap:balance;max-width:26ch;margin:0 0 16px;font-size:clamp(1.75rem,2.8vw,2.25rem);font-weight:700;line-height:1.12}.section .lede{color:var(--muted);text-wrap:pretty;max-width:60ch;margin:0;font-size:1.05rem}.features{grid-template-columns:1fr 1fr;gap:36px 56px;margin-top:44px;display:grid}.feature{grid-template-columns:40px 1fr;align-items:start;gap:16px;display:grid}.feature--wide{grid-column:1/-1}.feature-icon{background:var(--accent-soft,#4da3ff24);width:40px;height:40px;color:var(--accent);border-radius:6px;place-items:center;display:grid}.feature-icon svg{width:22px;height:22px}.feature h3{letter-spacing:-.01em;margin:7px 0 6px;font-size:1.1rem;font-weight:600}.feature p{color:var(--muted);max-width:52ch;margin:0;font-size:15.5px}.feature--wide p{max-width:68ch}.proof .landing-wrap{grid-template-columns:minmax(0,7fr) minmax(0,5fr);align-items:center;gap:56px;display:grid}.proof{overflow-x:clip}.proof-shot{margin-left:calc(-1*clamp(0px,4vw,64px))}.facts{gap:26px;margin:28px 0 0;padding:0;list-style:none;display:grid}.facts h3{margin:0 0 4px;font-size:1.05rem;font-weight:600}.facts p{color:var(--muted);margin:0;font-size:15.5px}.band{background:var(--panel);border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.band .landing-wrap{padding-top:64px;padding-bottom:64px}.band p{color:var(--muted);max-width:65ch;margin:0 0 12px;font-size:1.05rem}.privacy-cols{grid-template-columns:1fr 1fr;gap:48px;margin-top:40px;display:grid}.privacy-cols>div+div{border-left:1px solid var(--border);padding-left:48px}.privacy-cols h3{margin:0 0 8px;font-size:1.1rem;font-weight:600}.privacy-cols p{color:var(--muted);margin:0}.privacy-note{color:var(--muted);max-width:65ch;margin:36px 0 0}.landing .text-link{color:var(--accent);text-underline-offset:4px;font-weight:500;text-decoration:underline}.cta .landing-wrap{grid-template-columns:minmax(0,7fr) minmax(0,5fr);align-items:center;gap:40px;display:grid}.cta h2{margin-bottom:12px}.cta .lede{max-width:44ch}.landing-footer{border-top:1px solid var(--border);color:var(--muted);padding:32px 0 40px;font-size:14px}.landing-footer .landing-wrap{flex-wrap:wrap;align-items:center;gap:8px 24px;display:flex}.landing-footer .brand{color:var(--text)}.landing-footer .spacer{flex:1}.landing-footer a:hover{color:var(--text)}.doc{max-width:720px;margin:0 auto;padding:56px 20px 96px}.doc h1{letter-spacing:-.025em;margin:0 0 8px;font-size:clamp(2rem,3.6vw,2.75rem);line-height:1.08}.doc .updated{color:var(--muted);margin:0 0 32px}.doc h2{letter-spacing:-.01em;margin:36px 0 8px;font-size:1.25rem;font-weight:600}.doc p{margin:0 0 12px}.doc .back{margin-top:40px;display:inline-block}@media (prefers-reduced-motion:no-preference){.rise{opacity:0;animation:.7s cubic-bezier(.16,1,.3,1) forwards landing-rise;animation-delay:calc(var(--i,0) * 90ms);transform:translateY(14px)}@keyframes landing-rise{to{opacity:1;transform:none}}}@media (prefers-reduced-motion:reduce){.landing .btn,.landing .link-try{transition:none}.landing .btn:hover{transform:none}}@media (width<=900px){.hero{padding:40px 0 32px}.hero .landing-wrap,.proof .landing-wrap,.cta .landing-wrap{grid-template-columns:1fr;gap:36px}.hero-shot,.proof-shot{margin:0}.features,.privacy-cols{grid-template-columns:1fr;gap:28px}.privacy-cols>div+div{border-left:0;border-top:1px solid var(--border);padding-top:28px;padding-left:0}.section{padding:56px 0}.band .landing-wrap{padding-top:48px;padding-bottom:48px}}@media (width<=720px){.landing-nav{display:none}.landing-header .brand{margin-right:0}}@media (width<=480px){.landing-wrap{padding-left:16px;padding-right:16px}.hero-actions,.cta-actions{gap:14px}}.section,.band{scroll-margin-top:72px}.landing h3{text-transform:none;letter-spacing:-.01em;color:var(--text)}:root{--bg:#0f1114;--panel:#1a1d22;--panel-2:#22262d;--border:#2c313a;--text:#e6e8eb;--muted:#9aa1ab;--accent:#4da3ff;--accent-strong:#2f86e8;--danger:#ff6b5a;--warning:#f5a623;--ok:#4cc38a;--panel-hover:#2a2f37;--border-hover:#3d4450;--accent-soft:#4da3ff29;--ok-soft:#4cc38a24;--on-accent:#fff;--shadow:#00000073;--scrim:#00000080;--overlay:#0f1114b8;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font:13px/1.4 system-ui,-apple-system,Segoe UI,sans-serif}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text)}.app{grid-template:"top top top top""nav bar bar right""nav left stage right"minmax(0,1fr)"status status status status"/168px 260px minmax(0,1fr) 320px;height:100vh;display:grid}.app.app--nav-collapsed{grid-template-columns:56px 260px minmax(0,1fr) 320px}.app.app--vehicles{grid-template-columns:168px 320px minmax(0,1fr);grid-template-areas:"top top top""nav left right""nav left right""status status status"}.app.app--vehicles.app--nav-collapsed{grid-template-columns:56px 320px minmax(0,1fr)}.app.app--missions{grid-template-columns:168px minmax(0,1fr) 320px;grid-template-areas:"top top top""nav bar right""nav stage right""status status status"}.app.app--missions.app--nav-collapsed{grid-template-columns:56px minmax(0,1fr) 320px}.app.app--results{grid-template:"top top""nav content"minmax(0,1fr)"status status"/168px minmax(0,1fr)}.app.app--results.app--nav-collapsed{grid-template-columns:56px minmax(0,1fr)}button,.button-like{background:var(--panel-2);color:var(--text);border:1px solid var(--border);font:inherit;cursor:pointer;text-align:center;border-radius:6px;padding:5px 10px}button:hover:not(:disabled),.button-like:hover{background:var(--panel-hover);border-color:var(--border-hover)}button:disabled{opacity:.45;cursor:default}button.primary{background:var(--accent-strong);border-color:var(--accent-strong);color:var(--on-accent)}button.danger{color:var(--danger)}input,select{background:var(--bg);color:var(--text);border:1px solid var(--border);font:inherit;border-radius:5px;min-width:0;padding:4px 6px}input:focus-visible,select:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:1px}input[type=range]{width:120px;padding:0}kbd{color:var(--muted);border:1px solid var(--border);border-radius:4px;padding:0 5px;font:11px ui-monospace,Cascadia Mono,monospace}h3{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:0;font-size:11px;font-weight:600}.hint,.note{color:var(--muted);margin:0;font-size:12px}.ok{color:var(--ok);margin:0}.hint.danger{color:var(--danger)}.row{justify-content:space-between;align-items:center;gap:8px;display:flex}.row-label{color:var(--muted)}.row-value{font-variant-numeric:tabular-nums;align-items:center;gap:4px;display:flex}.row-value>input:not([type=checkbox]){width:150px}.number-field{align-items:center;gap:4px;display:inline-flex}.number-field input{text-align:right;width:76px}.unit{color:var(--muted);font-size:12px}.check{align-items:center;gap:6px;display:flex}.button-row{flex-wrap:wrap;gap:6px;display:flex}.flows-dock{background:var(--panel);border-bottom:1px solid var(--border);flex-direction:column;grid-area:bar;gap:8px;max-height:40vh;padding:10px 12px;display:flex}.flows-head{align-items:center;gap:12px;display:flex}.flows-head .flows-add{margin-left:auto}.flows-scroll{min-height:0;overflow:auto}.flows-table{border-collapse:collapse;width:100%;font-size:12px}.flows-table th{text-align:left;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);background:var(--panel);padding:0 6px 6px;font-size:11px;font-weight:600;position:sticky;top:0}.flows-table td{border-top:1px solid var(--border);vertical-align:middle;white-space:nowrap;padding:4px 6px}.flows-table td:last-child{text-align:right}.flows-table tfoot td{color:var(--muted);font-variant-numeric:tabular-nums}.cell-row{align-items:center;gap:6px;display:flex}.flow-pick{align-items:center;padding:4px 6px;display:inline-flex}.flow-pick.active{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.flows-table .number-field input{width:56px}.flow-eye{align-items:center;padding:4px 6px;display:inline-flex}.flow-arrival .cell-row{white-space:nowrap}.flow-arrival .arrival-label{white-space:nowrap;text-overflow:ellipsis;font-variant-numeric:tabular-nums;width:140px;overflow:hidden}.flow-arrival .flow-edit-arrival{align-items:center;padding:4px 6px;display:inline-flex}.arrival-popover{background:var(--panel);border:1px solid var(--border);width:300px;box-shadow:0 8px 24px var(--shadow);z-index:50;white-space:normal;border-radius:8px;flex-direction:column;gap:8px;padding:12px;display:flex;position:fixed}.arrival-popover h4{margin:0}.arrival-popover .hint{color:var(--muted);margin:0}.arrival-chart{width:100%;height:auto}.topbar{background:var(--panel);border-bottom:1px solid var(--border);flex-wrap:wrap;grid-area:top;align-items:center;gap:12px;padding:8px 12px;display:flex}.brand{letter-spacing:.02em;font-weight:700}.project-name{width:220px}.group{border-left:1px solid var(--border);gap:4px;padding-left:12px;display:flex}.group-end{margin-left:auto}.lang-switch{gap:4px;display:flex}.lang{padding:5px 8px}.lang.active{background:var(--accent-soft);border-color:var(--accent)}.theme-toggle{align-items:center;padding:5px 7px;display:inline-flex}.nav{background:var(--panel);border-right:1px solid var(--border);flex-direction:column;grid-area:nav;gap:4px;padding:10px 6px;display:flex;overflow-y:auto}.nav ul{flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex}.nav-item{text-align:left;background:0 0;border-color:#0000;align-items:center;gap:8px;width:100%;display:flex;position:relative}.nav-item.active{background:var(--accent-soft);border-color:var(--accent)}.nav-label{white-space:nowrap;text-overflow:ellipsis;flex:1;overflow:hidden}.app--nav-collapsed .nav-label{display:none}.dot{text-align:center;min-width:16px;color:var(--on-accent);border-radius:8px;padding:0 4px;font-size:10px;line-height:16px}.dot.error{background:var(--danger)}.dot.warning{background:var(--warning)}.app--nav-collapsed .nav-item .dot{min-width:14px;box-shadow:0 0 0 1px var(--panel);border-radius:7px;padding:0 3px;font-size:9px;line-height:14px;position:absolute;top:1px;right:1px}.nav-collapse{align-self:flex-start;margin-top:8px}.panel-left{background:var(--panel);border-right:1px solid var(--border);flex-direction:column;grid-area:left;gap:16px;padding:10px;display:flex;overflow-y:auto}.tools{flex-direction:column;gap:4px;display:flex}.tool{text-align:left;justify-content:space-between;align-items:center;display:flex}.tool.active,.speed.active{background:var(--accent-soft);border-color:var(--accent)}.panel-left--sim{gap:0}.panel-left--sim>section{padding:15px 0}.panel-left--sim>section:first-child{padding-top:0}.panel-left--sim>section+section{border-top:1px solid var(--border)}.panel-left--sim h3{margin:0 0 8px}.panel-left--sim .row,.panel-left--sim .check{margin-bottom:9px}.panel-left--sim .row:last-child,.panel-left--sim .check:last-child,.panel-left--sim details>:last-child{margin-bottom:0}.panel-left--sim details>*+*{margin-top:9px}.panel-left--sim .button-row{gap:8px;margin-top:4px}.panel-left--sim button{padding:6px 12px}.panel-left--sim .type-picker{flex-direction:column;align-items:stretch;gap:6px;width:150px;display:flex}.panel-left--sim .type-picker select{width:100%}.panel-left--sim .battery-row{text-align:left;width:100%;font:inherit;color:var(--text);background:0 0;border:1px solid #0000;border-radius:4px;align-items:center;gap:8px;padding:4px 6px;display:flex}.panel-left--sim .battery-row:hover{background:var(--panel-hover);border-color:var(--border-hover)}.battery-row-label{color:var(--muted);flex:0 0 68px;font-size:12px}.battery-bar{background:var(--border);border-radius:3px;flex:1;height:6px;overflow:hidden}.battery-bar-fill{border-radius:3px;height:100%;display:block}.battery-row-pct{text-align:right;font-variant-numeric:tabular-nums;flex:0 0 40px;font-size:12px}.branding-title input{width:100%}.panel-left--sim .button-like{margin-bottom:8px;display:inline-block}.branding-logo-row{align-items:center;gap:10px;display:flex}.branding-logo-row .branding-logo{flex-shrink:1;min-width:0;max-width:160px}.branding-logo-row button{flex-shrink:0}.tool-options{flex-direction:column;gap:10px;display:flex}.kind-list{flex-direction:column;gap:2px;display:flex}.kind{cursor:pointer;border-radius:5px;align-items:center;gap:8px;padding:4px 6px;display:flex;position:relative}.kind input{opacity:0;width:0;height:0;position:absolute}.kind.active{background:var(--accent-soft)}.kind:has(input:focus-visible){outline:2px solid var(--accent)}.swatch{border-radius:2px;width:10px;height:10px}.cmdbar{background:var(--panel);border-bottom:1px solid var(--border);flex-wrap:wrap;grid-area:bar;align-items:center;gap:12px;padding:8px 12px;display:flex}.stage{grid-area:stage;position:relative}.canvas-wrap{position:absolute;inset:0}.canvas-wrap canvas{touch-action:none;width:100%;height:100%;display:block}.panel-right{background:var(--panel);border-left:1px solid var(--border);grid-area:right;overflow-y:auto}.panel-right section{border-bottom:1px solid var(--border);flex-direction:column;gap:8px;padding:12px;display:flex}.stacked{flex-direction:column;gap:4px;display:flex}.stacked>select{width:100%}.panel-right.vehicle-form section{max-width:560px}.panel-right.vehicle-form .row{grid-template-columns:220px minmax(0,1fr);align-items:center;display:grid}.panel-right.vehicle-form .row-value{justify-content:flex-start}.panel-right.vehicle-form .number-field input{width:90px}.panel-right.vehicle-form .row-value>input:not([type=checkbox]),.panel-right.vehicle-form .row-value>select{width:160px}.panel-right.vehicle-form .note{max-width:520px}.badge{background:var(--panel-2);color:var(--muted);border-radius:8px;padding:1px 6px;font-size:10px;display:inline-block}.link{color:var(--accent);background:0 0;border:none;padding:0;text-decoration:underline}.type-list,.station-list{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.type-list>li{border-bottom:1px solid var(--border);flex-direction:column;gap:6px;padding-bottom:10px;display:flex}.type-list>li:last-child{border-bottom:none;padding-bottom:0}.type-name{text-align:left;background:0 0;border:none;padding:0;font-weight:600}.type-list>li.active .type-name{color:var(--accent)}.issues{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.issues button{text-align:left;background:var(--bg);border-left:3px solid var(--muted);width:100%;font-size:12px}.issues .error button{border-left-color:var(--danger)}.issues .warning button{border-left-color:var(--warning)}.issues .info button{border-left-color:var(--accent)}.pie{align-items:center;gap:12px;display:flex}.pie-legend{flex-direction:column;gap:4px;margin:0;padding:0;font-size:12px;list-style:none;display:flex}.pie-legend li{align-items:center;gap:6px;display:flex}.pie-pct{color:var(--muted);font-variant-numeric:tabular-nums;margin-left:auto}.pie-grid{flex-wrap:wrap;gap:10px;display:flex}.pie-grid-item:hover .pie svg{outline:2px solid var(--accent);outline-offset:2px;border-radius:50%}.pie-hover{z-index:60;background:var(--panel);border:1px solid var(--border);width:260px;box-shadow:0 8px 24px var(--shadow);pointer-events:none;white-space:normal;border-radius:8px;flex-direction:column;gap:8px;padding:12px;display:flex;position:fixed}.pie-hover h4{margin:0}.pie-hover .pie{flex-direction:column;align-items:flex-start;gap:8px}.pie-hover .pie-legend{align-self:stretch}.pie-grid-item{color:var(--muted);flex-direction:column;align-items:center;gap:2px;font-size:11px;display:flex}.stats-table{border-collapse:collapse;width:100%;font-size:12px}.stats-table td{border-top:1px solid var(--border);padding:3px 0}.stats-table td:last-child{text-align:right;font-variant-numeric:tabular-nums}.stats-table tr.danger-row td{color:var(--danger);text-align:left;font-weight:600}.progress{background:var(--panel-2);border-radius:3px;width:80px;height:6px;overflow:hidden}.progress-bar{background:var(--accent);height:100%}.sizing-row{align-items:center;gap:8px;display:flex}.sizing-row .progress{flex:1;width:auto}.sizing-table{border-collapse:collapse;width:100%;font-size:12px}.sizing-table th{text-align:right;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);padding:0 4px 4px;font-size:10px;font-weight:600}.sizing-table th:first-child,.sizing-table td:first-child{text-align:left}.sizing-table td{border-top:1px solid var(--border);text-align:right;font-variant-numeric:tabular-nums;cursor:pointer;padding:4px}.sizing-table tr:hover td{background:var(--panel-2)}.sizing-table tr.recommended td{background:var(--ok-soft)}.results-page{grid-area:content;padding:16px 24px;overflow-y:auto}.results-grid{grid-template-columns:repeat(auto-fit,minmax(min(440px,100%),1fr));align-items:start;gap:16px;display:grid}.results-card{background:var(--panel);border:1px solid var(--border);border-radius:8px;flex-direction:column;gap:10px;min-width:0;padding:14px;display:flex}.results-card--wide{grid-column:1/-1}.results-card section{flex-direction:column;gap:8px;min-width:0;display:flex}.results-card .row{max-width:360px}.results-run-view{flex-wrap:wrap;align-items:flex-start;gap:16px 24px;display:flex}.results-run-view>section{flex:280px;min-width:260px}.results-card>button,.results-card section>button{align-self:flex-start}.results-card .sizing-row{max-width:640px}.results-run-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.results-run-row .progress{width:160px}.table-scroll{overflow-x:auto}.statusbar{color:var(--muted);background:var(--panel);border-top:1px solid var(--border);grid-area:status;align-items:center;gap:16px;padding:4px 12px;font-size:12px;display:flex}.coords{font-variant-numeric:tabular-nums;min-width:210px}.nav-hint{white-space:nowrap;text-overflow:ellipsis;flex:1;overflow:hidden}.issue-count{gap:10px;display:flex}.issue-count .error{color:var(--danger)}.issue-count .warning{color:var(--warning)}.issue-count .ok{color:var(--ok)}[data-theme=light]{--bg:#f4f5f7;--panel:#fff;--panel-2:#eef0f3;--border:#d3d8de;--text:#1b1e23;--muted:#545c68;--accent:#1f6fd1;--accent-strong:#1f6fd1;--danger:#d63a2a;--warning:#b4690e;--ok:#1f7a4d;--panel-hover:#e2e6eb;--border-hover:#b6bec8;--accent-soft:#1f6fd11f;--ok-soft:#1f7a4d24;--on-accent:#fff;--shadow:#14181f2e;--scrim:#14181f59;--overlay:#ffffffd1;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}.app{background:var(--bg)}.branding-logo{object-fit:contain;max-width:100%;max-height:64px;display:block}.app.presenting{color:var(--text);display:block;position:relative}.presenting .stage{height:100%}.present{pointer-events:none;position:absolute;inset:0}.present-top{background:linear-gradient(var(--overlay), transparent);align-items:center;gap:16px;padding:10px 16px;display:flex;position:absolute;top:0;left:0;right:0}.present-top button,.present-panel{pointer-events:auto}.present-logo{object-fit:contain;max-width:180px;max-height:48px}.present-title{white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:22px;font-weight:600;overflow:hidden}.present-clock{font-variant-numeric:tabular-nums;font-size:22px}.present-panel{background:var(--overlay);border:1px solid var(--border);border-radius:8px;flex-direction:column;gap:8px;padding:10px 12px;display:flex;position:absolute;bottom:16px}.present-controls{max-width:50%;left:16px}.present-kpis{flex-direction:row;align-items:center;gap:16px;right:16px}.present-kpi-grid{grid-template-columns:repeat(2,auto);gap:10px 18px;display:grid}.present-kpi{flex-direction:column;display:flex}.present-kpi-value{font-variant-numeric:tabular-nums;font-size:24px;font-weight:600}.present-kpi-label{color:var(--muted);font-size:11px}.present-pie{flex-direction:column;gap:4px;display:flex}.present-quality{color:var(--muted);align-items:center;gap:8px;font-size:12px;display:flex}@media (width<=900px){.app,.app.app--nav-collapsed,.app.app--vehicles,.app.app--vehicles.app--nav-collapsed{grid-template-columns:56px minmax(0,1fr)}.app,.app.app--nav-collapsed{grid-template-rows:auto auto minmax(0,1fr) auto auto auto;grid-template-areas:"top top""nav bar""nav stage""nav left""nav right""status status"}.app.app--missions,.app.app--missions.app--nav-collapsed{grid-template-rows:auto auto minmax(0,1fr) auto auto;grid-template-areas:"top top""nav bar""nav stage""nav right""status status"}.app.app--results,.app.app--results.app--nav-collapsed{grid-template-columns:56px minmax(0,1fr)}.app.app--vehicles,.app.app--vehicles.app--nav-collapsed{grid-template-rows:auto auto auto auto;grid-template-areas:"top top""nav left""nav right""status status"}.nav-label{display:none}.nav-item .dot{min-width:14px;box-shadow:0 0 0 1px var(--panel);border-radius:7px;padding:0 3px;font-size:9px;line-height:14px;position:absolute;top:1px;right:1px}.panel-left,.panel-right{max-height:40vh}.results-page{padding:12px}.nav-hint{display:none}}.dialog-backdrop{z-index:100;background:var(--scrim);justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.dialog{background:var(--panel);border:1px solid var(--border);width:380px;max-width:100%;max-height:86vh;box-shadow:0 12px 40px var(--shadow);border-radius:10px;overflow:auto}.dialog--wide{width:560px}.dialog-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;padding:10px 14px;display:flex}.dialog-head h3{margin:0;font-size:14px}.dialog-close{padding:1px 8px;font-size:16px;line-height:1.2}.dialog-body{flex-direction:column;gap:10px;padding:14px;display:flex}.dialog-body>p{margin:0}.dialog-field{flex-direction:column;gap:4px;display:flex}.dialog-field>span{color:var(--muted)}.dialog-field input,.dialog-field textarea{width:100%}.dialog-body textarea{background:var(--bg);color:var(--text);border:1px solid var(--border);font:inherit;resize:vertical;border-radius:5px;padding:6px}.dialog-actions{justify-content:flex-end;gap:8px;margin-top:2px;display:flex}.dialog-message{margin:0}.dialog-message--error{color:var(--danger)}.dialog-message--ok{color:var(--ok)}.mode-switch{gap:4px;display:flex}.mode-switch .active{background:var(--accent-soft);border-color:var(--accent)}.project-list{flex-direction:column;gap:6px;max-height:50vh;margin:0;padding:0;list-style:none;display:flex;overflow:auto}.project-row{background:var(--panel-2);border:1px solid var(--border);border-radius:6px;align-items:center;gap:8px;padding:6px 8px;display:flex}.project-name-cell{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.project-name-cell strong{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.project-rename{flex:1;min-width:0}.save-state{color:var(--muted);font-size:12px}.save-state--dirty{color:var(--warning)}.account-button{white-space:nowrap;text-overflow:ellipsis;max-width:140px;overflow:hidden}.account-button--icon{align-items:center;padding:5px 7px;display:inline-flex}.file-group{flex-wrap:wrap}.menu-holder{display:inline-flex;position:relative}.menu-popup{z-index:70;background:var(--panel);border:1px solid var(--border);min-width:170px;box-shadow:0 8px 24px var(--shadow);border-radius:8px;flex-direction:column;gap:2px;padding:4px;display:flex;position:absolute;top:calc(100% + 4px);left:0}.menu-popup button{text-align:left;background:0 0;border-color:#0000}.menu-popup button:hover{background:var(--panel-hover)}
