:root{color-scheme:dark light;--paper: oklch(.18 .008 92);--panel: oklch(.225 .009 92);--panel-soft: oklch(.27 .011 92);--field: oklch(.155 .007 92);--ink: oklch(.92 .006 92);--ink-soft: oklch(.75 .007 92);--ink-muted: oklch(.58 .008 92);--line: oklch(.34 .012 92);--line-strong: oklch(.47 .015 92);--accent: oklch(.74 .115 95);--accent-soft: oklch(.31 .04 95);--danger: oklch(.67 .12 29);--good: oklch(.7 .1 148);--route: oklch(.62 .12 250);--space-2xs: .25rem;--space-xs: .5rem;--space-sm: .75rem;--space-md: 1rem;--space-lg: 1.5rem;--space-xl: 2rem;--radius-sm: .45rem;--radius-md: .65rem;--radius-lg: .8rem;font-family:Aptos,Segoe UI,system-ui,sans-serif}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;background:var(--paper);color:var(--ink)}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.52}h1,h2,h3,p{margin:0}h1{font-size:1.55rem;line-height:1;letter-spacing:0}h2{font-size:.94rem;line-height:1.2;letter-spacing:0}h3{font-size:.84rem;line-height:1.2;letter-spacing:0}.auth-screen{display:grid;min-height:100vh;place-items:center;padding:var(--space-md)}.auth-panel{display:flex;width:min(100%,360px);flex-direction:column;gap:var(--space-md);border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--panel);padding:var(--space-lg)}.workspace{display:grid;grid-template-columns:minmax(280px,330px) minmax(440px,1fr) minmax(280px,340px);gap:var(--space-sm);min-height:100vh;padding:var(--space-sm)}.control-rail,.inspector,.map-stage{min-height:calc(100vh - 1.5rem)}.control-rail,.inspector{display:flex;flex-direction:column;gap:var(--space-sm)}.app-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-md);border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--panel);padding:var(--space-md)}.header-actions{display:flex;flex:none;align-items:center;gap:var(--space-xs)}.kicker{color:var(--accent);font-size:.72rem;font-weight:800;letter-spacing:.11em;text-transform:uppercase}.status-pill{flex:none;border:1px solid var(--line);border-radius:999px;color:var(--ink-muted);padding:.35rem .55rem;font-size:.76rem;font-weight:800}.status-pill--ready{border-color:color-mix(in oklch,var(--good) 48%,var(--line));color:var(--good)}.lock-action{min-height:2rem;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--field);color:var(--ink-soft);padding:.35rem .55rem;font-size:.76rem;font-weight:800}.panel,.result-summary{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--panel)}.panel{display:flex;flex-direction:column;gap:var(--space-md);padding:var(--space-md)}.section-title{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm)}.section-title span,.quiet-text,.run-state span,.upload-drop span{color:var(--ink-muted)}.section-title button,.secondary-action{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--field);color:var(--ink-soft);padding:.45rem .6rem;font-size:.8rem;font-weight:800}.upload-drop{display:flex;flex-direction:column;gap:var(--space-2xs);border:1px dashed var(--line-strong);border-radius:var(--radius-md);background:color-mix(in oklch,var(--panel-soft) 55%,transparent);padding:var(--space-md)}.upload-drop strong,.upload-drop span,.error-block,.error-text{overflow-wrap:anywhere}.upload-drop input{width:100%}.server-datasets{display:flex;flex-direction:column;gap:var(--space-sm);border:1px solid var(--line);border-radius:var(--radius-md);background:color-mix(in oklch,var(--panel-soft) 34%,transparent);padding:var(--space-sm)}.server-dataset-controls{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--space-sm);align-items:end}.field{display:flex;flex-direction:column;gap:var(--space-2xs)}.field span{color:var(--ink-soft);font-size:.8rem;font-weight:800}.field input,.field select{width:100%;min-height:2.35rem;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--field);color:var(--ink);padding:.55rem .65rem}.field input:focus,.field select:focus,button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.graph-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;overflow:hidden;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--line)}.graph-facts div{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);min-width:0;background:color-mix(in oklch,var(--panel-soft) 58%,var(--panel));padding:var(--space-sm)}.graph-facts span,.result-summary span{color:var(--ink-muted);font-size:.78rem;font-weight:800}.graph-facts strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-sm)}.primary-action,.map-tool,.route-toggle,.secondary-action{border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:color-mix(in oklch,var(--panel-soft) 72%,transparent);color:var(--ink);padding:.55rem .75rem;font-weight:850}.primary-action{min-height:2.55rem;border-color:transparent;background:var(--accent);color:#1a1608}.error-block,.error-text{color:var(--danger)}.error-block{border:1px solid color-mix(in oklch,var(--danger) 52%,var(--line));border-radius:var(--radius-md);background:color-mix(in oklch,var(--danger) 16%,var(--panel));padding:var(--space-md);font-weight:800;line-height:1.35}.map-stage{position:relative;overflow:hidden;border:1px solid var(--line);border-radius:var(--radius-lg);background:#14110d;contain:layout paint;height:calc(100vh - 1.5rem)}.map-stage canvas{display:block;width:100%;height:100%;touch-action:none}.map-toolbar{position:absolute;z-index:2;top:var(--space-sm);left:var(--space-sm);right:var(--space-sm);display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-xs);pointer-events:none}.map-toolbar button,.map-layer-controls,.map-stat{pointer-events:auto}.map-layer-controls{display:flex;flex-wrap:wrap;gap:.35rem}.map-stat{margin-left:auto;border:1px solid var(--line);border-radius:var(--radius-sm);background:color-mix(in oklch,var(--paper) 88%,transparent);color:var(--ink-soft);padding:.48rem .65rem;font-weight:800}.layer-toggle{min-height:2.1rem;border:1px solid var(--line);border-radius:var(--radius-sm);background:color-mix(in oklch,var(--paper) 82%,transparent);color:var(--ink-muted);padding:.42rem .55rem;font-size:.76rem;font-weight:850}.layer-toggle--active{border-color:color-mix(in oklch,var(--accent) 58%,var(--line));background:color-mix(in oklch,var(--accent-soft) 82%,var(--paper));color:var(--ink)}.map-empty{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-content:center;gap:var(--space-xs);padding:var(--space-lg);color:var(--ink-soft);text-align:center;pointer-events:none}.map-route-controls{position:absolute;right:var(--space-sm);bottom:var(--space-sm);z-index:2;display:flex;flex-direction:column;align-items:flex-start;width:min(28rem,calc(100% - 1.5rem));max-height:min(34vh,16rem,calc(100% - 1.5rem));border:1px solid var(--line);border-radius:var(--radius-md);background:color-mix(in oklch,var(--paper) 90%,transparent);padding:var(--space-xs);overflow:hidden}.map-route-controls--collapsed{width:auto;max-height:none;padding:0;border-color:var(--line-strong)}.route-controls-toggle{display:inline-flex;flex:0 0 auto;align-items:center;justify-content:center;gap:.35rem;min-height:2.1rem;border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:color-mix(in oklch,var(--panel-soft) 80%,transparent);color:var(--ink);padding:.35rem .6rem;font-size:.76rem;font-weight:850}.route-controls-toggle small{color:var(--ink-muted);font-size:.68rem;font-weight:850}.truck-toggle-list{display:grid;flex:1 1 auto;grid-template-columns:repeat(auto-fit,minmax(7.75rem,1fr));gap:.4rem;width:100%;min-height:0;margin-top:var(--space-xs);overflow-y:auto;overscroll-behavior:contain;padding-right:.15rem;touch-action:pan-y}.truck-toggle{display:grid;grid-template-columns:.42rem minmax(0,1fr);grid-template-rows:auto auto;column-gap:.45rem;row-gap:.16rem;align-items:start;min-height:2.4rem;border:1px solid color-mix(in oklch,var(--route-color) 54%,var(--line));border-radius:var(--radius-sm);background:color-mix(in oklch,var(--route-color) 18%,var(--field));color:var(--ink);padding:.38rem .5rem;text-align:left}.truck-toggle:before{grid-row:1 / 3;width:.42rem;height:100%;min-height:1.45rem;border-radius:999px;background:var(--route-color);content:""}.truck-toggle span,.truck-toggle small{grid-column:2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.truck-toggle span{font-size:.78rem;font-weight:850}.truck-toggle small{color:var(--ink-muted);font-size:.68rem;font-weight:800}.truck-toggle--hidden{border-color:var(--line);background:color-mix(in oklch,var(--paper) 82%,transparent);color:var(--ink-muted)}.truck-toggle--hidden:before{opacity:.32}.truck-toggle--active{outline:2px solid var(--accent);outline-offset:1px}.map-route-controls:not(.map-route-controls--collapsed)~.node-readout{bottom:calc(var(--space-sm) + min(34vh,16rem) + var(--space-xs))}.map-empty strong{color:var(--ink);font-size:1.05rem}.node-readout{position:absolute;left:var(--space-sm);bottom:var(--space-sm);display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-xs);max-width:calc(100% - 1.5rem);border:1px solid var(--line);border-radius:var(--radius-sm);background:color-mix(in oklch,var(--paper) 90%,transparent);padding:.55rem .7rem}.node-readout span{color:var(--ink-soft)}.result-summary{display:grid;grid-template-columns:repeat(3,1fr);overflow:hidden}.result-summary div{display:flex;flex-direction:column;gap:var(--space-2xs);min-width:0;padding:var(--space-md)}.result-summary div+div{border-left:1px solid var(--line)}.result-summary strong{overflow:hidden;color:var(--ink);font-size:1.35rem;line-height:1.1;text-overflow:ellipsis;white-space:nowrap}.run-state{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md)}.run-controls{display:grid;grid-template-columns:auto minmax(0,1fr);gap:var(--space-sm);align-items:center}.run-controls span{overflow:hidden;color:var(--ink-muted);font-size:.78rem;font-weight:800;text-overflow:ellipsis;white-space:nowrap}.live-toggle{min-height:2.1rem;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--field);color:var(--ink-muted);padding:.42rem .65rem;font-size:.78rem;font-weight:850}.live-toggle--active{border-color:color-mix(in oklch,var(--good) 58%,var(--line));background:color-mix(in oklch,var(--good) 18%,var(--field));color:var(--good)}.run-progress{overflow:hidden;height:.5rem;border:1px solid var(--line);border-radius:999px;background:var(--field)}.run-progress span{display:block;height:100%;border-radius:inherit;background:var(--accent);transition:width .16s ease-out}.route-list{min-height:0;overflow:auto}.route-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--space-sm);align-items:center;border:1px solid var(--line);border-radius:var(--radius-md);background:color-mix(in oklch,var(--panel-soft) 36%,transparent);padding:var(--space-xs)}.route-row+.route-row{margin-top:var(--space-sm)}.route-row--active{border-color:var(--accent);background:color-mix(in oklch,var(--accent-soft) 42%,var(--panel))}.route-row--hidden{opacity:.58}.route-row>button:first-child{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-2xs);min-width:0;border:0;background:transparent;color:var(--ink);text-align:left}.route-row span{color:var(--ink-muted)}@media(max-width:1180px){.workspace{grid-template-columns:minmax(280px,340px) minmax(0,1fr)}.inspector{grid-column:1 / -1;display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,420px);min-height:auto}.route-list{grid-column:1 / -1}}@media(max-width:760px){.workspace{grid-template-columns:1fr;padding:var(--space-xs)}.control-rail,.inspector,.map-stage{min-height:auto}.inspector{display:flex}.map-stage{height:68vh;min-height:420px}.map-stage canvas{min-height:420px}.settings-grid,.graph-facts,.server-dataset-controls,.result-summary{grid-template-columns:1fr}.result-summary div+div{border-top:1px solid var(--line);border-left:0}}
