:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#203444;background:#eef2f4;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.32}button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid #159c9b;outline-offset:2px}.app-shell{min-height:100vh;display:flex;flex-direction:column}.visually-hidden{position:absolute;width:1px;height:1px;opacity:0;overflow:hidden;pointer-events:none}.brand-lockup{display:inline-flex;flex-direction:column;align-items:flex-start;gap:.13em;min-width:0}.brand-wordmark{display:flex;align-items:flex-end;height:1em;line-height:1;font-size:clamp(36px,6vw,82px);white-space:nowrap;gap:0}.brand-road-u{width:.62em;height:.7em;overflow:visible;flex:none;margin-right:.02em}.brand-traffic-i{width:.25em;height:.78em;margin:0 .025em .015em 0;flex:none}.brand-word-letters{font-size:1em;font-weight:850;letter-spacing:-.07em;line-height:.92;color:#74787d}.brand-fullname{font-size:clamp(10px,1.38vw,18px);font-weight:720;letter-spacing:-.02em;line-height:1.2;color:#343d44}.brand-lockup--compact .brand-wordmark{font-size:23px}.brand-lockup--compact .brand-road-u{height:.7em}.brand-lockup--compact .brand-traffic-i{height:.78em}.welcome-page{min-height:100vh;background:linear-gradient(180deg,#fff,#f3f7f7)}.welcome-topbar{height:51px;padding:12px clamp(20px,4vw,65px);display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #e2e8e9;color:#75858b;font-size:12px;font-weight:700}.welcome-topbar button{background:transparent;border:0;color:#186d76;font-size:12px;font-weight:750}.welcome-hero{display:flex;align-items:center;justify-content:center;max-width:1400px;gap:35px;margin:76px auto 68px;padding:0 28px}.welcome-logo{flex:none}.welcome-taglines{border-left:2px solid #8b9295;padding:7px 0 7px 30px;font-size:clamp(17px,2.05vw,28px);white-space:nowrap}.welcome-taglines p{margin:0 0 12px;color:#777c80;font-weight:680}.welcome-taglines strong{color:#e21c1c;font-weight:730}.welcome-body{max-width:1180px;margin:0 auto;padding:36px 35px 70px}.workflow{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:18px 0 32px}.workflow-step{background:#fff;border:1px solid #dce6e8;box-shadow:0 2px 5px #152a3410;border-radius:12px;min-height:132px;padding:20px;display:flex;flex-direction:column;gap:9px}.workflow-number{background:#eaf4f1;color:#166e63;border-radius:100px;width:26px;height:26px;display:grid;place-items:center;font-size:12px;font-weight:750}.workflow-step strong{font-size:16px}.workflow-step small{color:#72818a;line-height:1.4}.welcome-actions{display:flex;gap:12px;flex-wrap:wrap}.welcome-status{margin-top:27px;color:#77868e;font-size:12px}.welcome-status span{padding:0 9px}.workspace-titlebar{display:flex;align-items:center;gap:16px;min-height:49px;padding:6px 18px;background:linear-gradient(#fdfdfd,#e7eaef);border-bottom:1px solid #cbd4dc}.mac-dots{display:flex;gap:7px;flex:none}.mac-dots i{width:12px;height:12px;display:block;border-radius:100%;border:1px solid #0001}.mac-dots i:nth-child(1){background:#ff5d56}.mac-dots i:nth-child(2){background:#ffc22d}.mac-dots i:nth-child(3){background:#2bc945}.workspace-title{display:flex;align-items:center;gap:10px;flex:1;min-width:0}.title-separator{font-size:23px;color:#37434a}.workspace-title input{border:1px solid transparent;border-radius:5px;background:transparent;padding:5px 7px;min-width:0;max-width:480px;flex:1;font-size:15px;font-weight:700;color:#263845}.workspace-title input:hover,.workspace-title input:focus{border-color:#b4c9d3;background:#fff}.workspace-build{font-size:10px;color:#81929c;white-space:nowrap}.menu-bar{background:#fff;display:flex;align-items:center;gap:1px;padding:2px 12px;border-bottom:1px solid #d5dce2;min-height:34px;flex-wrap:wrap;position:relative;z-index:12}.menu-wrapper{position:relative}.menu-wrapper>button{border:0;background:transparent;padding:6px 12px;border-radius:4px;font-size:13px;font-weight:600;color:#344454}.menu-wrapper>button:hover,.menu-wrapper>button.active-menu{background:#ecf1f5}.menu-dropdown{position:absolute;top:100%;left:0;background:#fff;box-shadow:0 10px 25px #1c304329;min-width:230px;border:1px solid #dce5e8;border-radius:7px;padding:5px;z-index:25}.menu-dropdown button{display:block;width:100%;border:0;background:#fff;text-align:left;padding:10px 12px;color:#294454;font-size:12px;border-radius:5px}.menu-dropdown button:hover{background:#edf5f4}.toolbars{position:relative;z-index:5}.tool-row{display:flex;align-items:center;gap:11px;padding:4px 13px;min-height:47px;background:#fafbfd;border-bottom:1px solid #d8dfe6;flex-wrap:wrap}.tool-row--second{background:#f4f7f9}.tool-group{display:flex;align-items:center;gap:4px;padding-right:13px;border-right:1px solid #d2dde4}.tool-icon{height:34px;min-width:33px;padding:0 5px;background:transparent;border:1px solid transparent;border-radius:6px;color:#304a5d;font-size:18px}.tool-icon:hover:not(:disabled),.tool-icon--active{background:#e5efef;border-color:#cadbdb}.toolbar-spacer{flex:1}.toolbar-hint{font-size:10px;color:#8a999e}.toolbar-customizer{position:absolute;top:98px;right:12px;background:#fff;border:1px solid #cbd8dc;border-radius:8px;padding:15px;box-shadow:0 8px 26px #1b364525;display:flex;flex-direction:column;gap:10px;z-index:15;font-size:12px}.toolbar-customizer label{display:flex;gap:9px;align-items:center}.toolbar-customizer button{align-self:flex-end;background:#fff;border:1px solid #cedee3;border-radius:5px;padding:6px 10px}.notice{background:#ecf7f0;color:#2b625c;border-bottom:1px solid #cce3d7;font-size:11px;padding:7px 20px;display:flex;justify-content:space-between;align-items:center}.notice--error{background:#fff1ef;color:#922d2d}.notice button{border:0;background:transparent;font-size:17px}.main-grid{display:grid;grid-template-columns:minmax(235px,270px) minmax(400px,1fr) minmax(235px,280px);flex:1;gap:12px;padding:12px;min-height:0}.panel,.canvas-panel{background:#fff;border:1px solid #d8e1e6;border-radius:10px;min-width:0}.panel{padding:17px}.panel-label{font-size:10px;font-weight:800;letter-spacing:.11em;color:#57808b}.panel h2{font-size:18px;margin:11px 0 6px}.panel h3{font-size:12px;color:#203b4c;margin:22px 0 10px}.muted{font-size:12px;line-height:1.5;color:#687988;margin:0 0 17px}.measure-list{margin:0}.measure-list div{display:flex;align-items:baseline;justify-content:space-between;padding:7px 0;border-bottom:1px solid #e7ebee;gap:9px}.measure-list dt{font-size:11px;color:#657685}.measure-list dd{font-size:11px;font-weight:750;margin:0;text-align:right;white-space:nowrap}.info-note,.warning-note{border-radius:7px;padding:12px;line-height:1.55;font-size:11px;margin-top:16px}.info-note{background:#eef5f4;color:#46656b}.warning-note{background:#fff4e6;color:#775126}.microcopy{font-size:10px;color:#83939b;line-height:1.55;margin:6px 0 13px}.demand-fields{display:flex;flex-direction:column;gap:8px}.demand-fields label,.setting-row{display:flex;align-items:center;justify-content:space-between;gap:14px;font-size:12px;color:#607481}.demand-fields input,.setting-row input{width:91px;padding:6px 8px;border:1px solid #cbd9db;border-radius:5px;text-align:right;font-size:12px;color:#264150}.setting-row{margin-top:15px}.apply-button{background:#2d897f;color:#fff;border:0;border-radius:6px;padding:10px 12px;font-size:11px;font-weight:700;width:100%;margin-top:15px}.apply-button:hover{background:#237167}.canvas-panel{display:flex;flex-direction:column;overflow:hidden}.canvas-header{display:flex;align-items:center;justify-content:space-between;padding:13px 17px 10px;gap:8px}.canvas-header h1{font-size:18px;margin:7px 0 0;letter-spacing:-.02em}.status-dot{background:#eef5ff;border:1px solid #d0dff4;color:#446a8b;font-size:11px;padding:5px 9px;border-radius:100px;white-space:nowrap}.plan-container{margin:0 12px;position:relative;flex:1;display:flex;flex-direction:column;border:1px solid #d6e1e4;border-radius:8px;overflow:hidden;background:#dfe8de}.plan-toolbar{position:absolute;z-index:2;top:12px;left:12px;right:12px;display:flex;align-items:center;justify-content:space-between;gap:7px;pointer-events:none;font-size:11px;color:#2b4650;font-weight:650}.plan-toolbar>span{background:#f7faf8ed;border:1px solid #d7e1dc;border-radius:6px;padding:7px 10px}.tool-buttons{display:flex;gap:5px;pointer-events:auto}.tool-buttons button{background:#fff;border:1px solid #cbd8da;color:#253c48;border-radius:6px;padding:5px 10px;font-size:12px}.tool-buttons button:hover{background:#e3f4ee}.junction-plan{width:100%;height:min(64vh,720px);min-height:370px;display:block;cursor:default}.turn-path{cursor:pointer}.plan-caption{background:#f5f8f7;color:#596b70;font-size:10px;line-height:1.4;padding:9px 12px}.playbar{display:flex;align-items:center;gap:9px;padding:10px 14px 0;flex-wrap:wrap}.playbar button{background:#fff;color:#334d58;border:1px solid #cad9df;border-radius:6px;padding:6px 11px;font-size:12px}.playbar .run-button{background:#e9f8f0;color:#1d7551;border-color:#bfdfc8;font-weight:750}.playbar .time-readout{font-size:13px;font-variant-numeric:tabular-nums;margin-left:auto;font-weight:720;color:#2d4653}.playbar label{font-size:11px;color:#60747c}.playbar select{border:1px solid #c9d8dc;padding:4px;border-radius:5px;background:#fff}.view-options{display:flex;gap:17px;padding:12px 16px 14px;color:#526875;font-size:11px;flex-wrap:wrap}.view-options label{display:flex;align-items:center;gap:6px;cursor:pointer}.view-options input{accent-color:#138c84}.metric{display:flex;justify-content:space-between;gap:10px;align-items:baseline;padding:10px 0;border-bottom:1px solid #e9eff0}.metric span{font-size:11px;color:#6a7b86}.metric strong{font-size:14px;color:#263f4e;white-space:nowrap;font-variant-numeric:tabular-nums}.signal-box{display:flex;align-items:center;justify-content:space-between;border:1px solid #e2e8eb;border-radius:7px;padding:9px 10px;font-size:12px}.signal-state{text-transform:capitalize;font-size:11px;padding:3px 8px;border-radius:100px}.signal-state--green{background:#ccefd9;color:#136c3f}.signal-state--amber{background:#fff0bb;color:#835b04}.signal-state--red{background:#fee0df;color:#9b2520}.vehicle-legend{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.vehicle-legend span{font-size:10px;color:#607580;display:flex;align-items:center;gap:6px}.vehicle-legend i{width:10px;height:10px;border-radius:3px;border:1px solid #0001;flex:none}.status-card{display:flex;gap:11px;padding:9px 0;border-bottom:1px solid #ebeff1}.status-card b{font-size:11px;display:block;margin-bottom:4px}.status-card small{font-size:10px;color:#83919b}.status-circle{width:9px;height:9px;border-radius:50%;margin-top:3px;flex-shrink:0}.status-circle.done{background:#30a890}.status-circle.planned{background:#b6c1c9}.main-footer{display:flex;gap:10px;justify-content:space-between;padding:12px 25px;font-size:11px;color:#597583}.main-footer span:first-child{font-weight:750}.primary-button{border:0;background:#28877b;color:#fff;border-radius:7px;padding:12px 16px;font-size:13px;font-weight:750}.primary-button:hover{background:#1b7067}.secondary-button{border:1px solid #bcd6d5;background:#fff;border-radius:7px;padding:11px 15px;font-size:13px;color:#325d63;font-weight:650}.secondary-button:hover{background:#edf6f4}.modal-scrim{position:fixed;inset:0;background:#101e2670;display:grid;place-items:center;z-index:40;padding:20px}.modal{background:#fff;padding:27px;border-radius:12px;box-shadow:0 20px 40px #0002;max-width:520px;position:relative;color:#34434b;font-size:13px;line-height:1.65}.modal h2{font-size:20px}.modal-close{position:absolute;top:8px;right:12px;border:0;background:transparent;font-size:24px}@media(max-width:1200px){.main-grid{grid-template-columns:235px 1fr}.right-panel{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,1fr);column-gap:15px}.right-panel>.panel-label,.right-panel h2,.right-panel h3,.right-panel .signal-box,.right-panel .microcopy,.right-panel .warning-note,.vehicle-legend{grid-column:1/-1}.status-card{border:0}.welcome-hero{gap:20px}.welcome-taglines{white-space:normal}}@media(max-width:800px){.main-grid{grid-template-columns:1fr}.left-panel{grid-row:2}.right-panel{grid-column:1;display:block}.workspace-build{display:none}.junction-plan{min-height:330px;height:55vh}.main-footer{flex-direction:column;align-items:center;text-align:center}.welcome-hero{margin:45px auto 30px;flex-direction:column;align-items:flex-start}.welcome-taglines{border-left:0;border-top:2px solid #acb4b7;padding:15px 0 0}.workflow{grid-template-columns:repeat(2,1fr)}.toolbar-hint{display:none}}@media(max-width:480px){.workflow{grid-template-columns:1fr}.welcome-hero{padding:0 16px}.welcome-body{padding:24px 16px}.brand-wordmark{font-size:48px}.brand-fullname{font-size:12px}.workspace-titlebar{gap:6px;padding:6px 8px}.workspace-title{gap:4px}.workspace-title input{font-size:12px}.tool-row{gap:3px;padding:4px}.tool-group{padding-right:4px}.tool-icon{min-width:26px}.view-options{gap:10px}}.plan-stage{position:relative;width:100%;flex:1;min-height:390px;overflow:hidden}.plan-stage .junction-plan{height:min(67vh,735px);min-height:390px;width:100%}.plan-legend{position:absolute;right:14px;bottom:14px;width:min(275px,32%);max-height:78%;overflow:auto;padding:11px 12px;border:1px solid #d2deda;border-radius:9px;background:#fffffff2;box-shadow:0 5px 22px #162c3423;color:#314751;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.plan-legend-heading{font-weight:800;font-size:11px;display:flex;align-items:center;gap:5px;justify-content:space-between;margin:0 0 8px}.plan-legend-heading small{font-weight:550;color:#758b91;font-size:9px}.plan-legend-grid{display:grid;grid-template-columns:1fr 1fr;gap:5px 9px}.plan-legend-vehicle{display:flex;align-items:center;gap:3px;min-width:0;font-size:10px;white-space:nowrap;color:#41565f}.plan-legend-vehicle svg{flex:0 0 31px;max-width:31px}.plan-legend-divider{height:1px;background:#dde6e4;margin:10px 0}.plan-surface-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px 5px}.plan-surface-grid>span{font-size:9px;display:flex;align-items:center;gap:5px;white-space:nowrap}.plan-surface-grid i{width:18px;height:9px;display:inline-block;border:1px solid #bcc9c8;border-radius:1px;flex:none}.plan-surface-grid i.zebra-swatch{background:repeating-linear-gradient(90deg,#fff 0 3px,#515b65 3px 6px)}.dimensions-below{background:#fff;border-top:1px solid #dce7e7;text-align:center;display:flex;flex-direction:column;gap:3px;padding:9px 10px;color:#3a4c54}.dimensions-below small{font-size:10px;color:#73838c}.dimensions-below strong{font-size:14px;letter-spacing:.015em}.speed-slider-field{display:flex;align-items:center;gap:7px;font-size:11px;color:#617580}.speed-slider-field input[type=range]{width:118px;accent-color:#238d83;cursor:pointer}.speed-slider-field output{font-weight:780;color:#234f55;font-variant-numeric:tabular-nums;width:35px;text-align:right}@media(max-width:1050px){.plan-legend{width:min(250px,35%);padding:9px}.plan-legend-grid{grid-template-columns:1fr 1fr;gap:4px}}@media(max-width:660px){.plan-legend{position:static;width:auto;max-height:none;box-shadow:none;border-radius:0}.plan-stage{display:flex;flex-direction:column}.plan-stage .junction-plan{min-height:315px;height:48vh}.plan-legend-grid{grid-template-columns:repeat(3,1fr)}.plan-surface-grid{grid-template-columns:repeat(4,1fr)}}.modal .setting-row input[type=checkbox]{width:17px;height:17px;accent-color:#238d83}.plan-legend-grid .plan-legend-vehicle:nth-last-child(-n+5){color:#70838b}
