@font-face{font-family:Transport Heavy;src:url(/assets/transporth-5ewkTzaV.woff2) format("woff2");font-display:block}:root{--fs-label: 9px;--fs-ui: 11px;--fs-heading: 12px;--hdr: 44px;--rail: 56px;--dockL: 244px;--dockR: 241px;--bottomBar: 0px;--dock: #1c1c1c;--chrome: #1c1c1c;color-scheme:dark;--bg: #161616;--pan: rgba(35, 35, 35, .98);--hov: rgba(255, 255, 255, .07);--line: rgba(255, 255, 255, .08);--line2: rgba(255, 255, 255, .14);--txt: #ededed;--mut: #9a9a9a;--acc: #0c8ce9;--acctxt: #0c8ce9;--onacc: #fff;--accbg: rgba(12, 140, 233, .18);--sel: rgba(255, 255, 255, .1);--ink: #171717;--focus: rgba(255, 255, 255, .38);--shadow: 0 10px 30px rgba(0, 0, 0, .42), 0 1px 0 rgba(255, 255, 255, .04) inset;--r-sm: 6px;--r-md: 8px;--r: var(--r-md);--box-h: 26px;--btn-h: 28px;--raised: #232323;--shadow-pop: 0 12px 32px rgba(0, 0, 0, .5)}*{box-sizing:border-box;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.18) transparent}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#ffffff2e;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#ffffff4d}::selection{background:#ffffff3d}.item ::selection,.note-box ::selection{background:#b3d4fc;color:#111}::placeholder{color:var(--mut);opacity:1}input[type=number]{-moz-appearance:textfield;appearance:textfield;height:26px;padding:0 8px;border:1px solid var(--line);border-radius:6px;background:#ffffff0a;color:var(--txt);font:inherit;font-size:var(--fs-ui);outline:none}input[type=number]:focus{border-color:var(--focus)}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.num{display:inline-flex;align-items:stretch;height:26px;border:1px solid var(--line);border-radius:6px;background:#ffffff0a;overflow:hidden;transition:border-color .12s}.num:hover{border-color:#ffffff2e}.num:focus-within{border-color:var(--focus)}.num input[type=number]{flex:1;border-radius:0;min-width:0;width:100%;height:100%;padding:0 6px 0 8px;border:0;background:none;outline:none;color:var(--txt);font:inherit;font-size:var(--fs-ui);font-variant-numeric:tabular-nums}input[type=radio]{-webkit-appearance:none;appearance:none;width:14px;height:14px;margin:0;border:1.5px solid var(--mut);border-radius:50%;display:inline-grid;place-content:center;cursor:pointer;flex:none}input[type=radio]:hover{border-color:var(--txt)}input[type=radio]:checked{border-color:var(--txt)}input[type=radio]:checked:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--txt)}#tip{position:fixed;z-index:3000;max-width:260px;background:var(--raised);border:1px solid var(--line2);color:var(--txt);padding:4px 9px;border-radius:var(--r-sm);font-size:var(--fs-ui);line-height:1.4;pointer-events:none;opacity:0;transition:opacity .12s}#tip.on{opacity:1}#toast{position:fixed;z-index:3000;left:calc(var(--rail) + var(--dockL) + (100vw - var(--rail) - var(--dockL) - var(--dockR)) / 2);top:calc(var(--hdr) + 12px);transform:translate(-50%,-8px);max-width:max(260px,min(480px,calc(100vw - var(--rail) - var(--dockL) - var(--dockR) - 560px)));background:var(--raised);border:1px solid var(--line2);color:var(--txt);padding:8px 12px;border-radius:var(--r-md);font-size:var(--fs-ui);line-height:1.45;box-shadow:var(--shadow-pop);opacity:0;pointer-events:none;transition:opacity .15s,transform .15s}body:has(#p2.on) #toast{left:50%;top:calc(var(--hdr) + 54px);max-width:min(480px,calc(100vw - 40px))}#toast.on{opacity:1;transform:translate(-50%)}html,body{height:100%;margin:0;font:var(--fs-ui) / 1.45 Inter,"Segoe UI",system-ui,sans-serif;color:var(--txt);background:var(--bg);-webkit-font-smoothing:antialiased}.page{display:none;height:100%;flex-direction:column;position:relative}.page.on{display:flex}button,label.btn{height:var(--btn-h);padding:0 12px;border:1px solid var(--line);border-radius:var(--r-sm);background:#ffffff0a;font:inherit;font-weight:400;cursor:pointer;color:var(--txt);display:inline-flex;align-items:center;gap:6px}button:hover,label.btn:hover{background:var(--hov)}button.pri{background:var(--acc);border-color:var(--acc);color:var(--onacc);font-weight:650}button.pri:hover{background:#0a7ad0;border-color:#0a7ad0}button:focus-visible,label.btn:focus-within{outline:1px solid var(--focus);outline-offset:1px}.bar{flex:none;height:var(--hdr);display:flex;gap:8px;align-items:center;padding:0 12px 0 10px;background:var(--chrome);border-bottom:1px solid var(--line)}.bar hr{flex:none;width:1px;height:24px;border:0;background:var(--line2);margin:0 4px}.bar-brand{display:flex;align-items:center;gap:10px;min-width:0}.bar-brand svg{flex:none}.bar-brand .brand-txt b{font-size:var(--fs-heading)}.bar-sub{font-size:var(--fs-ui);color:var(--mut);margin-top:2px}.bar .sp{flex:1}button.ghost{border-color:transparent;background:none;color:var(--mut);height:36px;padding:0 10px 0 6px}button.ghost:hover{background:var(--hov);color:var(--txt)}.subbar{flex:none;height:42px;display:flex;align-items:center;gap:14px;padding:0 10px;background:var(--chrome);border-bottom:1px solid var(--line)}.subtip{margin-left:auto;font-size:var(--fs-ui);color:var(--mut);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}#map,#mapboxMap{position:absolute;top:var(--hdr);bottom:var(--bottomBar);left:calc(var(--rail) + var(--dockL));right:var(--dockR)}#mapboxMap{background:#1c1c1c}#p1:not(.map-view) #mapboxMap>*{visibility:hidden}#mapboxMap .mapboxgl-ctrl-bottom-left{bottom:40px}#p1.clean-mode #map,#p1.clean-mode #mapboxMap{inset:0}#svBack{display:none;top:calc(var(--hdr) + 10px);left:calc(var(--rail) + var(--dockL) + 10px);height:28px;padding:0 10px;gap:6px;border-radius:6px;font-size:var(--fs-ui);font-weight:600}#p1.sv-open:not(.clean-mode) #svBack{display:inline-flex}#p1.sv-open #bm{display:none}.sv-ghost{position:fixed;z-index:3000;display:flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;background:var(--acc);color:#fff;transform:translate(-50%,-100%);pointer-events:none;box-shadow:0 4px 12px #0006}#map.draw.xh,#map.draw.xh *{cursor:none!important}#shotPrompt{display:none;top:14px;left:50%;transform:translate(-50%);z-index:1100;align-items:center;gap:9px;padding:6px 13px 6px 11px;max-width:calc(100% - 40px);white-space:nowrap;font-size:var(--fs-ui);line-height:1.55;color:var(--txt);border-radius:var(--r-md)}#shotPrompt.on{display:flex}#shotPrompt .sp-ic{display:flex;flex:none;color:var(--acctxt)}#shotPrompt .sp-ic svg{width:15px;height:15px}#shotPrompt kbd{font:600 10px Inter,Segoe UI,sans-serif;color:var(--txt);background:#ffffff14;border:1px solid var(--line2);border-bottom-width:2px;border-radius:4px;padding:0 5px}#xhair{position:fixed;left:0;top:0;width:25px;height:25px;margin:-12px 0 0 -12px;z-index:4000;pointer-events:none;mix-blend-mode:difference;display:none}#xhair.on{display:block}#xhair:before,#xhair:after{content:"";position:absolute;background:#d4d4d4}#xhair:before{left:11.5px;top:0;width:2px;height:25px}#xhair:after{top:11.5px;left:0;height:2px;width:25px}.float{position:absolute;z-index:900;background:var(--raised);border:1px solid var(--line2);border-radius:var(--r-md);box-shadow:var(--shadow-pop)}#header{position:absolute;z-index:900;top:0;left:var(--rail);right:0;height:var(--hdr);display:flex;align-items:center;gap:4px;padding:0;background:var(--chrome);border-bottom:1px solid var(--line)}.hd-job{flex:none;width:var(--dockL);height:100%;display:flex;align-items:center;padding:0 8px;margin-right:8px;border-right:1px solid var(--line)}.hd-right{margin-left:auto;flex:none;display:flex;align-items:center;gap:6px;padding:0 12px}#rail{position:absolute;z-index:900;top:0;bottom:0;left:0;width:var(--rail);display:flex;flex-direction:column;align-items:center;padding:9px 0 10px;background:var(--chrome);border-right:1px solid var(--line)}.rail-foot{margin-top:auto;display:flex;flex-direction:column;gap:4px}.rail-foot button{position:relative;width:30px;height:30px;padding:0;border:0;background:none;color:var(--mut);justify-content:center;border-radius:var(--r-sm)}.rail-foot button[hidden]{display:none}.rail-foot button:hover{background:var(--hov);color:var(--txt)}#projBtn{flex:1;min-width:0;height:36px;padding:0 8px 0 10px;gap:10px;justify-content:flex-start;text-align:left;color:var(--txt);border:1px solid transparent;border-radius:var(--r-sm);background:none}#projBtn:hover{background:var(--hov)}#projBtn.on{background:var(--hov);border-color:var(--line2)}.brand-mark{display:flex;flex:none;filter:drop-shadow(0 2px 6px rgba(12,140,233,.25))}.brand-mark svg{width:26px;height:26px}.rail-sep{width:26px;height:1px;border:0;background:var(--line2);margin:8px 0}#saveLine{display:flex;align-items:center;gap:6px;font-size:9px;color:var(--mut);white-space:nowrap;overflow:visible;margin-top:2px}#saveTxt{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}#cloudDot{position:relative;z-index:2;flex:none;align-self:center;width:7px;height:7px;border-radius:50%;display:none}#cloudDot:after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;opacity:0;animation:cdhalo 2s ease-in-out infinite}#cloudDot.cd-saved{display:block;background:#4ade80}#cloudDot.cd-saved:after{box-shadow:0 0 0 3px #4ade8047}#cloudDot.cd-dirty{display:block;box-shadow:inset 0 0 0 1.5px #9a9a9a}#cloudDot.cd-dirty:after{box-shadow:0 0 0 3px #9a9a9a47}#cloudDot.cd-saving{display:block;background:#9a9a9a}#cloudDot.cd-saving:after{box-shadow:0 0 0 3px #9a9a9a47}#cloudDot.cd-warn{display:block;background:#f59e0b}#cloudDot.cd-warn:after{box-shadow:0 0 0 3px #f59e0b47}@keyframes cdhalo{0%,to{opacity:0}50%{opacity:.75}}@media(prefers-reduced-motion:reduce){#cloudDot:after{animation:none;opacity:0}}#projMenu .pm-h{display:flex;flex-direction:column;gap:2px}#cloudStat{display:block;width:100%;min-width:0;font-size:var(--fs-ui);font-weight:500;color:var(--mut);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#cloudStat:empty{display:none}#cloudStat.cs-warn{color:#fbbf24}#projMenu button:disabled{opacity:.4;pointer-events:none}.cl-list{display:flex;flex-direction:column;gap:2px;max-height:300px;overflow:auto;margin:0 -6px}.cl-row{display:flex;align-items:center;gap:10px;width:100%;min-height:var(--btn-h);padding:3px 8px;border:0;border-radius:var(--r-sm);background:none;color:var(--txt);font:inherit;font-size:var(--fs-ui);text-align:left;justify-content:flex-start}button.cl-row{cursor:pointer}button.cl-row:hover,div.cl-row:hover{background:var(--hov)}.cl-t{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cl-s{flex:none;font-size:var(--fs-ui);color:var(--mut)}.modal .cl-list{max-height:calc(5 * var(--btn-h) + 4 * 2px)}.cl-x{flex:none;display:flex;align-items:center;justify-content:center;width:18px;height:18px;margin-left:-4px;border-radius:4px;color:var(--mut)}.cl-x:hover{background:var(--hov);color:var(--txt)}.cl-btn{flex:none;height:26px;padding:0 10px;font-size:var(--fs-ui)}.cl-now{flex:none;width:62px;text-align:center;font-size:var(--fs-ui);color:var(--mut)}.brand-txt{display:flex;flex-direction:column;justify-content:center;min-width:0;flex:1;align-self:stretch;line-height:1.2}.brand-txt b{font-size:var(--fs-heading);font-weight:650;letter-spacing:.1px}#planLine{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#planLine.unset{color:var(--acctxt)}.brand-chev{flex:none;color:#fff}#search{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:260px;height:28px;display:flex;align-items:center;gap:6px;padding:0 9px;color:var(--mut);background:#ffffff0d;border:1px solid var(--line2);border-radius:6px;font-size:var(--fs-ui)}#search:focus-within{border-color:var(--focus);background:#ffffff12}#search #si{display:flex;flex:none}#search input{flex:1;min-width:0;border:0;background:none;font:inherit;color:var(--txt);outline:none;height:100%}#search input::placeholder{color:var(--mut)}#search input:focus::placeholder{color:transparent}#search .cl-drop{left:50%;right:auto;transform:translate(-50%);width:400px;z-index:50}#search .cl-t{flex:none;max-width:60%}#search .cl-s{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:right}#tb{display:flex;flex-direction:column;gap:3px;align-items:center}#tb button{position:relative;width:50px;height:50px;min-width:0;padding:0;flex-direction:column;gap:3px;font-size:var(--fs-label);font-weight:500;letter-spacing:.1px;border:0;border-radius:0;background:none;color:#e4e4e4;justify-content:center}#tb button span{color:#d4d4d4}#tb button:hover{background:none;color:#fff}#tb .ti{display:flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:var(--r-sm);transition:background .1s}#tb button.has-menu .ti{position:relative}#tb button.has-menu .ti:after{content:"";position:absolute;right:3px;bottom:3px;border-style:solid;border-width:0 0 4px 4px;border-color:transparent transparent currentColor transparent;opacity:.6}#tb button:hover .ti{background:var(--hov)}#tb button.on{color:var(--acctxt)}#tb button.on .ti{background:#0c8ce933}#tb hr{width:26px;height:1px;border:0;background:var(--line2);margin:5px 0}#tb button:before,.rail-foot button:before{content:attr(data-tip);position:absolute;left:calc(100% + 12px);top:50%;transform:translateY(-50%);background:var(--raised);border:1px solid var(--line2);color:var(--txt);padding:5px 10px;border-radius:var(--r-sm);font-size:var(--fs-ui);font-weight:500;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .12s .25s;z-index:2}#tb button:hover:before,.rail-foot button:hover:before{opacity:1}#tb button.on:before{display:none}#tb button:disabled{opacity:.35;pointer-events:none}.tbtn{height:28px;padding:0 10px;gap:6px;border-radius:6px;font-size:var(--fs-ui);font-weight:600;white-space:nowrap}.tbtn.pri{background:var(--acc);border-color:var(--acc);color:var(--onacc)}.tbtn.pri:hover{background:#0a7ad0}.tbtn:disabled{opacity:.5;pointer-events:none}@media(max-width:1260px){.tbtn span{display:none}.tbtn{padding:0 8px}}#tb2{display:flex;gap:2px;align-items:center;flex:none}#tb2 hr{width:1px;height:20px;border:0;background:var(--line);margin:0 4px}#tb2 button{position:relative;height:30px;min-width:32px;padding:0 8px;gap:3px;border:0;border-radius:var(--r-sm);background:none;color:var(--mut);justify-content:center;font-weight:600}#tb2 button:hover{background:var(--hov);color:var(--txt)}#tb2 button.on{background:var(--accbg);color:var(--acctxt)}#tb2 button:before{content:attr(data-tip);position:absolute;top:calc(100% + 10px);left:50%;transform:translate(-50%);background:#121212;border:1px solid var(--line);color:var(--txt);padding:4px 9px;border-radius:6px;font-size:var(--fs-ui);white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .12s;z-index:2}#tb2 button:hover:before{opacity:1}#coordPanel{display:none;flex-direction:column;gap:8px;width:280px;padding:12px;z-index:910}.cp-title{font-weight:600;font-size:var(--fs-ui)}.cp-sub{font-size:var(--fs-ui);color:var(--mut);margin-top:-4px}.cp-row{display:flex;gap:10px;align-items:center}.cp-row.wrap{flex-wrap:wrap}.cp-field{flex:1;min-width:0}.cp-lbl{display:block;font-size:var(--fs-label);color:var(--mut);margin-bottom:3px}.cp-row:has(.cp-radio){gap:0;border:1px solid var(--line);border-radius:var(--r-sm);overflow:hidden}.cp-radio{flex:1;height:var(--box-h);display:flex;align-items:center;justify-content:center;font-size:var(--fs-ui);color:var(--mut);cursor:pointer}.cp-radio+.cp-radio{border-left:1px solid var(--line)}.cp-radio:hover{background:var(--hov);color:var(--txt)}.cp-radio:has(input:checked){background:var(--sel);color:#fff}.cp-radio input{position:absolute;opacity:0;pointer-events:none}.cp-row input[type=text]{width:100%;height:var(--box-h);padding:0 8px;border:1px solid var(--line);border-radius:var(--r-sm);background:#ffffff0a;color:var(--txt);font:inherit;font-size:var(--fs-ui)}.cp-actions{justify-content:flex-end;padding-top:2px}#props{display:flex;top:var(--hdr);right:0;bottom:0;width:var(--dockR);flex-direction:column;overflow:auto;border-radius:0;border:0;border-left:1px solid var(--line);box-shadow:none;background:var(--dock);backdrop-filter:none}.pp-empty{margin:auto;padding:24px;text-align:center;color:var(--mut);font-size:var(--fs-ui);line-height:1.55}.pp-empty svg{margin:0 auto 10px;opacity:.5}.pp-empty b{display:block;color:var(--txt);font-size:var(--fs-heading);margin-bottom:4px}.pp-h{display:flex;align-items:center;gap:8px;padding:9px 8px 9px 12px;border-bottom:1px solid var(--line);font-weight:600;font-size:var(--fs-ui)}.pp-h .ki{display:flex;flex:none;color:var(--mut)!important}.pp-t small.pp-info{display:block;margin-top:1px;font-size:var(--fs-ui);font-weight:500;color:var(--mut);font-variant-numeric:tabular-nums}.pp-t{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pp-x{height:22px;width:22px;min-width:0;padding:0;border:0;background:none;color:var(--mut);justify-content:center;border-radius:var(--r-sm)}.pp-x:hover{background:var(--hov);color:var(--txt)}.pp-h .pp-more{margin-right:-6px}.pp-x:disabled{opacity:.4}.pp-b{display:flex;flex-direction:column;gap:8px;padding:10px 12px 12px}.pp-b:empty{display:none}.pp-row{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:var(--fs-ui);color:var(--mut)}.pp-row .num{width:84px}.pp-row.pp-stack{flex-direction:column;align-items:stretch;gap:5px;font-size:var(--fs-label)}.pp-row.pp-stack>span{font-weight:600}#props{--pp-btn: 26px;--pp-btn-gap: 4px}#props .num{width:100%;height:26px}#props .num input{font-size:var(--fs-ui);font-weight:400;color:#fff}.pp-row.pp-label-hidden>span:first-child{visibility:hidden}#props .num.has-prefix{padding-left:8px}#props .num.has-prefix input{padding-left:5px}.num-prefix{flex:none;font-size:var(--fs-ui);color:var(--mut)}#props .num.has-icon{padding-left:7px}#props .num.has-icon input{padding-left:5px}#props .num-icon,#props .num-prefix{cursor:ew-resize;user-select:none}body.scrubbing,body.scrubbing *{cursor:ew-resize!important}.num-icon{flex:none;display:flex;align-self:center;color:var(--mut)}#props .num.has-unit{padding-right:8px;cursor:text}#props .num.has-unit input{flex:none;box-sizing:content-box;padding-right:0;font-variant-numeric:normal}#props .num.has-prefix,#props .num.has-unit{align-items:baseline}#props .num.has-prefix input,#props .num.has-unit input,#props .num-prefix,#props .num-unit{height:auto;line-height:24px}.pp-inline{display:flex;align-items:center;gap:4px}#props .pp-section>.pp-line{grid-column:1 / -1;display:flex;align-items:flex-end;gap:8px}#props .pp-section>.pp-line{margin-right:calc(-1 * (var(--pp-btn) + var(--pp-btn-gap)))}.pp-line>.pp-row{flex:1 1 0;min-width:0}.pp-line>button{flex:none;margin-left:calc(var(--pp-btn-gap) - 8px)}.pp-lock{width:26px;height:26px;min-width:0;padding:0;justify-content:center;border:0;border-radius:6px;background:none;color:var(--mut)}.pp-lock:hover{background:var(--hov);color:#fff}.pp-lock.on{color:#fff}.pp-pick{width:100%;height:26px;min-width:0;padding:0 6px 0 8px;gap:4px;justify-content:space-between;border:1px solid var(--line);border-radius:6px;background:#ffffff0a;font-size:var(--fs-ui);font-weight:400;color:#fff}.pp-pick span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pp-pick svg{flex:none;color:var(--mut)}.pp-align{display:flex;gap:8px}.pp-seg.pp-fill button{flex:1 1 0;min-width:0;padding:0}.pp-align .pp-seg{flex:1 1 0;min-width:0}.pp-align .pp-seg button{flex:1;min-width:0;padding:0}.pp-sec-btn:disabled{opacity:.4}.pp-pick.pp-combo{width:100%}.pp-pick.pp-combo span{color:var(--mut)}.pp-pick.pp-combo.on{border-color:var(--focus)}.pp-combo-pop{position:fixed;z-index:2500;display:flex;flex-direction:column;gap:4px;padding:4px;background:var(--raised);border:1px solid var(--line2);border-radius:var(--r-md);box-shadow:var(--shadow-pop)}.pp-combo-pop input{height:26px;padding:0 8px;border:1px solid var(--line);border-radius:var(--r-sm);background:#ffffff0a;color:#fff;font:inherit;font-size:var(--fs-ui);outline:none}.pp-combo-pop input:focus{border-color:var(--focus)}.pp-combo-list{max-height:220px;overflow-y:auto}.pp-combo-list button{display:block;width:100%;height:26px;padding:0 8px;border:0;border-radius:var(--r-sm);background:none;color:var(--txt);font-size:var(--fs-ui);font-weight:400;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pp-combo-list button:hover,.pp-combo-list button.hov{background:var(--hov)}.pp-combo-list button.on{background:var(--sel)}.pp-combo-none{padding:6px 8px;font-size:var(--fs-ui);color:var(--mut)}.pp-text{width:100%;min-height:52px;padding:6px 8px;border:1px solid var(--line);border-radius:6px;background:#ffffff0a;color:var(--mut);font:inherit;font-size:var(--fs-ui);font-weight:400;line-height:1.4;field-sizing:content;resize:none;overflow:hidden;outline:none}.signal-timings{gap:6px;font-size:var(--fs-ui);color:var(--mut)}.signal-timings .st-figures{color:var(--txt);font-weight:600}.signal-timings .st-distance{display:flex;align-items:center;gap:8px}.signal-timings .st-distance input{width:88px;height:26px;padding:0 8px;border:1px solid var(--line);border-radius:6px;background:#ffffff0a;color:var(--txt);font:inherit}.signal-diagram{background:#fff;border:1px solid #333;padding:5px 7px}.signal-diagram canvas{display:block}.key-item canvas{display:block;width:100%;height:auto}.pp-text-centred{text-align:center}.pp-text:focus{border-color:var(--focus)}.pp-icon-btns{display:flex;gap:4px}.pp-icon-btns button{width:26px;height:26px;min-width:0;padding:0;justify-content:center;border-radius:6px}#props .num-unit{flex:none;font-size:var(--fs-ui);font-weight:400;color:#fff}#props .pp-section{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-auto-flow:row dense;column-gap:8px;padding-right:calc(var(--pp-btn) + var(--pp-btn-gap))}.pp-section>*{grid-column:1 / -1}.pp-section>.pp-stack{grid-column:auto}.pp-section>.pp-stack.pp-wide{grid-column:1 / -1}.pp-row.pp-stack.pp-no-label{justify-content:flex-end}.pp-seg{display:flex;border:1px solid var(--line);border-radius:6px;overflow:hidden}.pp-seg button{height:26px;min-width:0;padding:0 9px;border:0;border-radius:0;background:none;color:var(--mut);font-size:var(--fs-ui);justify-content:center}.pp-seg button+button{border-left:1px solid var(--line)}.pp-seg button:hover{background:var(--hov);color:var(--txt)}.pp-seg button.on{background:var(--sel);color:#fff}.pp-col{display:flex;flex-direction:column;gap:8px}.pp-colour{display:flex;align-items:baseline;gap:6px;width:100%;height:26px;padding:0 8px 0 4px;border:1px solid var(--line);border-radius:6px;background:#ffffff0a}.pp-colour:focus-within{border-color:var(--focus)}.pp-colour-swatch{flex:none;align-self:center;width:18px;height:18px;min-width:0;padding:0;border:1px solid rgba(255,255,255,.25);border-radius:4px}.pp-colour-swatch.on{outline:2px solid rgba(255,255,255,.6);outline-offset:1px}.pp-colour input{min-width:0;height:24px;line-height:24px;padding:0;border:0;outline:none;background:none;font:inherit;font-size:var(--fs-ui);font-weight:400;color:#fff}.pp-colour-hex{flex:1;text-transform:uppercase}.pp-colour .pp-colour-op{flex:none;width:32px;padding-left:8px;border-left:1px solid var(--line);text-align:right}.pp-colour i{line-height:24px;font-style:normal;font-size:var(--fs-ui);color:var(--mut)}.cpk-pop{position:fixed;z-index:2400;display:flex;flex-direction:column;gap:10px;width:232px;padding:10px;background:var(--raised);border:1px solid var(--line2);border-radius:8px;box-shadow:0 8px 24px #00000080}.cpk-pop-h{display:flex;align-items:center;justify-content:space-between;font-size:var(--fs-ui);font-weight:600}.cpk-sv{position:relative;height:150px;border-radius:var(--r-sm);cursor:crosshair;touch-action:none;background-image:linear-gradient(to top,#000,transparent),linear-gradient(to right,#fff,transparent);box-shadow:inset 0 0 0 1px #ffffff14}.cpk-hue{position:relative;height:10px;border-radius:5px;cursor:pointer;touch-action:none;background:linear-gradient(to right,red,#ff0,#0f0,#0ff,#00f,#f0f,red)}.cpk-sv i,.cpk-hue i{position:absolute;width:14px;height:14px;border-radius:50%;border:2px solid #fff;box-shadow:0 0 0 1px #00000073,0 2px 5px #0006;transform:translate(-50%,-50%);pointer-events:none}.cpk-hue i{top:50%}.pp-sw{display:grid;grid-template-columns:repeat(6,1fr);gap:6px}.pp-sw button{height:22px;min-width:0;padding:0;border:1px solid rgba(255,255,255,.2);border-radius:var(--r-sm)}.pp-sw button:hover{border-color:#fff9}.pp-sw button.on{outline:2px solid #fff;outline-offset:1px}#p1.picking #ll .row{cursor:crosshair}#bm{top:calc(var(--hdr) + 10px);right:calc(var(--dockR) + 10px);display:flex;gap:6px;background:none;border:0;box-shadow:none}.bm-group{display:flex;gap:2px;padding:3px;background:var(--dock);border:1px solid var(--line2);border-radius:8px;box-shadow:var(--shadow-pop)}#bm button{height:24px;border:0;border-radius:5px;font-size:var(--fs-ui);font-weight:500;padding:0 9px;background:none;color:var(--mut)}#bm button:hover{background:var(--hov);color:var(--txt)}#bm button.on{background:var(--sel);color:#fff}#leftDock{position:absolute;z-index:900;top:var(--hdr);left:var(--rail);bottom:0;width:var(--dockL);display:flex;flex-direction:column;background:var(--dock);border-right:1px solid var(--line)}.dock-resize{position:absolute;z-index:5;top:0;bottom:0;right:-4px;width:8px;cursor:ew-resize}.dock-resize:after{content:"";position:absolute;top:0;bottom:0;left:3px;width:2px;background:var(--acc);opacity:0;transition:opacity .12s .15s}.dock-resize:hover:after,.dock-resize.dragging:after{opacity:1}#phases,#layers{position:static;border:0;border-radius:0;box-shadow:none;background:none;backdrop-filter:none;display:flex;flex-direction:column;overflow:hidden}#phases{flex:none;border-bottom:1px solid var(--line)}#phaseList{max-height:160px;overflow:auto;padding:5px}#phaseList .row{height:24px}#phaseList .row .nm{cursor:pointer}#phaseList .row button.overlay-btn{flex:none}#phaseList .row button.overlay-btn.on{opacity:1;color:var(--txt)}.tbox{position:absolute;box-sizing:border-box;border:1px solid var(--acc);pointer-events:none}.tbox-body{position:absolute;inset:0;pointer-events:auto;cursor:move}.tbox-corner{position:absolute;width:7px;height:7px;box-sizing:border-box;transform:translate(-50%,-50%);background:#fff;border:1px solid var(--acc);pointer-events:auto}.tbox.editing .tbox-body{pointer-events:none}.tbox-rotate{position:absolute;width:16px;height:16px;pointer-events:auto}#viewBar{display:none;top:calc(var(--hdr) + 10px);left:calc(var(--rail) + var(--dockL) + (100% - var(--rail) - var(--dockL) - var(--dockR)) / 2);transform:translate(-50%);align-items:center;gap:8px;padding:4px 4px 4px 12px;font-size:var(--fs-ui);white-space:nowrap}#p1.view-only:not(.clean-mode) #viewBar{display:flex}#viewBar .vb-icon{display:flex;color:var(--mut)}#viewBar.nudge{animation:vbnudge .35s}@keyframes vbnudge{20%,60%{transform:translate(calc(-50% - 4px))}40%,80%{transform:translate(calc(-50% + 4px))}}#p1.view-only .note-box{pointer-events:none}#p1.view-only #tb,#p1.view-only #leftDock,#p1.view-only #props{opacity:.55}body:has(#p1.view-only) #toast{top:calc(var(--hdr) + 54px)}.modal:has(.cl-search){overflow:visible}.cl-search{position:relative;display:flex;align-items:center;gap:6px;height:30px;padding:0 9px;border:1px solid var(--line);border-radius:var(--r-sm);background:#ffffff0a;color:var(--mut)}.cl-search:focus-within{border-color:var(--focus)}.cl-search-icon{display:flex}.cl-search input{flex:1;min-width:0;height:100%;border:0;outline:none;background:none;color:#fff;font:inherit;font-size:var(--fs-ui)}.cl-search input::placeholder{color:var(--mut)}.cl-drop{position:absolute;z-index:10;top:calc(100% + 4px);left:-1px;right:-1px;max-height:280px;overflow:auto;padding:4px;background:var(--raised);border:1px solid var(--line2);border-radius:var(--r-md);box-shadow:var(--shadow-pop)}.cl-drop[hidden]{display:none}.cl-drop .cl-row.on{background:var(--hov)}.cl-drop-msg{display:flex;align-items:center;gap:8px;padding:8px;font-size:var(--fs-ui);color:var(--mut)}.spinner{flex:none;width:12px;height:12px;border:1.5px solid var(--line2);border-top-color:var(--txt);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.cl-head{margin:12px 0 4px;font-size:var(--fs-label);font-weight:600;color:var(--mut)}.cl-head:empty{display:none}.cl-head:empty+.cl-list{margin-top:10px}.phase-overlay{position:absolute;opacity:.4;pointer-events:none}#p1.clean-mode .phase-overlay{display:none}.road-names{position:absolute;pointer-events:none}.row .all-phases{display:flex;flex:none;color:var(--mut)}#layers{flex:1;min-height:0}.lh{display:flex;justify-content:space-between;align-items:center;padding:11px 12px 6px 14px;font-weight:600;font-size:var(--fs-heading);cursor:default;user-select:none}.lh span{color:var(--mut);font-weight:500}.lh>span:first-child{color:var(--txt);font-weight:600}.lh-btns{display:flex;gap:2px;margin:-4px -4px -4px 0}.lhb{height:28px;width:28px;min-width:0;padding:0;border:0;background:none;color:var(--txt);justify-content:center;border-radius:var(--r-sm)}.lhb:hover{background:var(--hov);color:var(--txt)}.lhb svg{stroke-width:1.4}#lsearch{display:flex;align-items:center;gap:7px;margin:0 8px 3px;padding:0 6px 0 9px;height:30px;border-radius:var(--r-sm);background:#ffffff0d;border:1px solid var(--line);color:var(--mut)}#lsearch:focus-within{border-color:var(--focus)}#lsearch span{display:flex}#lsearch input{flex:1;min-width:0;height:100%;background:none;border:0;outline:0;color:var(--txt);font:inherit;font-size:var(--fs-ui)}#lsearch input::placeholder{color:var(--mut)}#lqx{display:flex;width:20px;height:20px;min-width:0;padding:0;border:0;background:none;color:var(--mut);justify-content:center;border-radius:4px}#lqx:hover{background:var(--hov);color:var(--txt)}#lqx[hidden],#lsearch[hidden]{display:none}.lhb.on{background:var(--sel);color:var(--txt)}#layers.min #lsearch{display:none}#ll{overflow:auto;padding:5px}#layers.min #ll,#layers.min .lh{border-bottom:0}#layers.min #ll{display:none}.row{display:flex;align-items:center;gap:8px;height:27px;padding:0 4px 0 8px;border-radius:6px;cursor:pointer}.row:hover{background:var(--hov)}.row.sel{background:var(--sel)}.row.off .nm{opacity:.4;text-decoration:line-through}.row.folder .nm{font-weight:500}.row.sgroup .gchev{display:flex;flex:none;margin:0 -4px 0 -2px;color:#555;transition:transform .12s}.row.sgroup.closed .gchev{transform:rotate(-90deg)}.row.sgroup .nm{font-weight:500}.group-body{padding-left:28px}.row.folder .fchev{color:#555;transition:transform .12s}.row.folder.closed .fchev{transform:rotate(-90deg)}.folder-body{padding-left:28px}.row .ki{display:flex;flex:none;align-self:center;align-items:center;justify-content:center;width:18px;height:18px;color:var(--mut)}.row.folder .ki{width:auto;height:auto;background:none}.row .info{flex:1;min-width:0;display:flex;align-items:baseline;gap:8px}.row .nm{flex:1 0 auto;max-width:100%;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:400;font-size:var(--fs-ui)}.row small{flex:0 1 auto;min-width:0;margin-left:auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--mut);font-size:var(--fs-ui);font-variant-numeric:tabular-nums}.row button.ic{height:22px;width:22px;padding:0;border:0;background:none;color:var(--mut);justify-content:center;border-radius:6px;opacity:0}.row:hover button.ic,.row.off button.ic{opacity:1}.row button.ic:hover{background:var(--hov);color:var(--txt)}.row button.ic.act{opacity:1;color:var(--txt);background:var(--hov)}.row button.ic[data-a=l],.row button.ic[data-a=v]{flex:none;opacity:0}.row button.ic[data-a=v]{margin-left:-6px}.row:hover button.ic[data-a],.row.off button.ic[data-a=v]{opacity:1}.row .nm{cursor:text}.rmenu{position:fixed;z-index:2500;min-width:180px;padding:4px;background:var(--raised);border:1px solid var(--line2);border-radius:var(--r-md);box-shadow:var(--shadow-pop)}.rmenu.compact{min-width:0}.rmenu.compact{padding:3px}.rmenu.compact button{height:24px;padding:0 14px 0 6px;gap:6px;font-weight:400}.rmenu button{display:flex;align-items:center;width:100%;height:var(--btn-h);border:0;background:none;border-radius:var(--r-sm);padding:0 9px;gap:9px;justify-content:flex-start;font-size:var(--fs-ui);font-weight:400;color:var(--txt);white-space:nowrap}.rmenu button svg{color:var(--mut);flex:none}.rmenu button:hover,.rmenu button.hov{background:var(--hov)}.rmenu button:hover svg,.rmenu button.hov svg{color:var(--txt)}.rmenu button.danger,.rmenu button.danger svg{color:#f87171}.rmenu button.on{background:var(--sel)}.rmenu button.on svg{color:var(--txt)}.rmenu kbd{margin-left:auto;padding-left:14px;font:500 11px Inter,Segoe UI,sans-serif;color:var(--mut)}.rmenu .rm-h{padding:6px 9px 4px;font-size:var(--fs-ui);font-weight:600;color:var(--mut)}.rmenu button:disabled{opacity:.4;pointer-events:none}.row button.ic.lk{flex:none}.row button.ic.lk.on{opacity:1}.rmenu hr{border:0;border-top:1px solid var(--line);margin:4px 2px}.nm-edit{width:100%;font:inherit;font-weight:500;font-size:var(--fs-ui);color:var(--txt);background:#ffffff12;border:1px solid rgba(255,255,255,.28);border-radius:4px;padding:1px 5px;margin:-1px -5px;outline:none}.row.dragging{opacity:.35}.row.drop-above{box-shadow:inset 0 2px 0 var(--acc)}.row.drop-below{box-shadow:inset 0 -2px 0 var(--acc)}.row.folder.drop-target{background:var(--sel);outline:1.5px dashed var(--acc);outline-offset:-2px}#ll.drop-target{background:#ffffff08}.empty{padding:8px 10px 12px;color:var(--mut);font-size:var(--fs-ui)}#p1.clean-mode #header,#p1.clean-mode #rail,#p1.clean-mode #projBtn,#p1.clean-mode #bm,#p1.clean-mode #tb,#p1.clean-mode #leftDock,#p1.clean-mode #msg,#p1.clean-mode #coordPanel,#p1.clean-mode #props,#p1.clean-mode #projMenu{display:none!important}#showToolsBtn{display:none;position:absolute;right:14px;bottom:14px;z-index:950;height:34px;width:34px;padding:0;justify-content:center;opacity:.45}#showToolsBtn:hover{opacity:1}#p1.clean-mode #showToolsBtn{display:flex}#mapLoading{position:absolute;z-index:5;top:50%;left:calc(var(--rail) + var(--dockL) + (100% - var(--rail) - var(--dockL) - var(--dockR)) / 2);transform:translate(-50%,-50%);display:flex;align-items:center;gap:8px;font-size:var(--fs-ui);color:var(--mut);pointer-events:none}#mapLoading[hidden]{display:none}#msg{display:none;position:absolute;z-index:1000;left:50%;transform:translate(-50%);top:68px;width:min(540px,calc(100% - 120px));background:#2a2a2a;border:1px solid var(--line2);border-left:3px solid var(--acc);color:var(--txt);padding:10px 14px;border-radius:var(--r-md);font-size:var(--fs-ui);box-shadow:var(--shadow)}.map-handle{position:absolute;transform-origin:0 0;line-height:0;cursor:pointer;touch-action:none}.multi-anchor{position:absolute;z-index:900;width:0;height:0;transform-origin:0 0;pointer-events:none}.multi-anchor .multi-ring{position:absolute}.multi-ring{position:absolute;z-index:900;transform-origin:0 0;border-radius:50%;box-shadow:0 0 0 2px #ffffffbf;pointer-events:none}.multi-ring.hover{box-shadow:0 0 0 2px var(--acc)}.sel-box{position:fixed;display:none;z-index:1500;border:1px solid var(--acc);pointer-events:none}.map-handle.item-mark{pointer-events:none}.map-handle.item-mark svg *{pointer-events:visiblePainted}#p1.drawing .map-handle.item-mark svg *{pointer-events:none}.mark-outline{fill:none;stroke:none}.map-handle.hovered .mark-outline{stroke:var(--acc);stroke-width:calc(1.5px * var(--unscale, 1))}.map-handle.picked .mark-outline{stroke:#ffffffbf;stroke-width:calc(2px * var(--unscale, 1))}.guide-cover{position:fixed;inset:0;z-index:3500}.guide-spot{position:fixed;z-index:3501;border-radius:14px;box-shadow:0 0 0 9999px #00000080;pointer-events:none;transition:all .2s}.guide-spot.none{left:50%!important;top:50%!important;width:0!important;height:0!important}.guide-tip{position:fixed;z-index:3502;width:300px;padding:14px 14px 12px;background:var(--raised);border:1px solid var(--line2);border-radius:var(--r-md);box-shadow:var(--shadow-pop);transition:left .2s,top .2s}.gt-h{font-weight:650;font-size:var(--fs-heading);margin-bottom:5px}.gt-t{font-size:var(--fs-ui);line-height:1.5;color:var(--mut)}.gt-f{display:flex;align-items:center;gap:6px;margin-top:12px}.gt-n{flex:1;font-size:var(--fs-ui);color:var(--mut);font-variant-numeric:tabular-nums}.gt-f button{padding:0 11px}.gt-f .gt-skip{border:0;background:none;color:var(--mut)}.close-halo{position:absolute;transform-origin:0 0;width:20px;height:20px;border-radius:50%;background:#ffffff73;box-shadow:0 0 0 1.5px #ffffffd9,0 1px 6px #00000059;pointer-events:none;z-index:99}.snap-ring{position:absolute;transform-origin:0 0;width:10px;height:10px;border-radius:50%;box-shadow:0 0 0 2px var(--acc),0 0 0 3.5px #ffffffd9;pointer-events:none;z-index:99}.measure-tag{position:absolute;z-index:5000;transform-origin:0 0;display:flex;align-items:center;justify-content:center;box-sizing:border-box;font:700 35px/1 Arial,sans-serif;color:#fff;padding:0 10px;border:10px solid #0c8ce9;border-radius:10px;background:#0c8ce9;box-shadow:0 10px 50px #00000059;white-space:nowrap;pointer-events:none}.note-dot{position:absolute;transform-origin:0 0;box-shadow:inset 0 0 0 1px #111;border-radius:50%;pointer-events:none}.note-box{position:absolute;z-index:5000;transform-origin:0 0;background:#fff;color:#111;border-radius:1px;padding:2.5px 5px 2.5px 5.6px;font:600 6px/1.3 Inter,Arial,sans-serif;white-space:pre;cursor:move;user-select:none}.note-box:before{content:"";position:absolute;left:0;top:0;bottom:0;width:1.6px;border-radius:1px 0 0 1px;background:#111}.note-box.fixed{box-sizing:border-box;display:flex;flex-direction:column;white-space:pre-wrap;overflow-wrap:anywhere}.note-box .nt{outline:none;min-width:12px;user-select:text}.note-box .nt:focus{cursor:text}.mb-attr{display:none;margin:0 0 2px 5px;padding:2px 6px;font:11px Roboto,Arial,sans-serif;color:#333;background:#ffffffb3}#stagewrap{flex:1;min-height:0;overflow:auto;display:flex;justify-content:center;align-items:flex-start;padding:24px 24px 32px;background:var(--bg)}#stage{position:relative;display:inline-block;box-shadow:0 10px 36px #0009;background:#fff;line-height:0;border-radius:3px}#bg{max-width:calc(100vw - 48px);max-height:calc(100vh - 152px);display:block;border-radius:3px}#bg:not([src]),#bg[src=""]{display:none}#bgPlaceholder{display:none;width:560px;height:340px;align-items:center;justify-content:center;text-align:center;padding:30px;line-height:1.6;color:var(--mut);font-size:var(--fs-ui);background:#1c1c1c;border:2px dashed var(--line);border-radius:6px}#bg:not([src])+#bgPlaceholder,#bg[src=""]+#bgPlaceholder{display:flex}.item{position:absolute;line-height:1.25;cursor:move;touch-action:none}.snap-guide{position:absolute;display:none;z-index:50;pointer-events:none;background:var(--acc)}.snap-guide.v{top:0;bottom:0;width:1px}.snap-guide.h{left:0;right:0;height:1px}.item [contenteditable]:focus{cursor:text}.txt .t{display:block;background:#fff;color:#111;padding:6px 9px;font:12px/1.35 Arial,sans-serif;white-space:pre;outline:none;min-width:40px;border:1px solid #333}.txt.plan .t:first-line{font-weight:700}.sign .t{display:block;background:#ffd100;color:#000;font:17px/1.3 Transport Heavy,Arial,sans-serif;text-align:center;white-space:pre;padding:.25em .9em;border:.3em solid #000;border-radius:.55em;outline:none}.specials{background:#fff;color:#111;padding:6px 9px 7px;border:1px solid #333;font:12px/1.35 Arial,sans-serif;min-width:160px}.specials .sp-h{font-weight:700;margin-bottom:5px;padding-bottom:4px;border-bottom:1px solid #cfcfcf}.sp-row{display:flex;align-items:flex-start;gap:8px;margin-top:3px}.sp-row i{width:10px;height:10px;border-radius:50%;flex:none;margin-top:3px}.sp-row .st{outline:none;white-space:pre;min-width:40px;flex:1;text-align:center}.logo-inner{resize:both;overflow:hidden;width:230px;height:70px}.logo-inner img{width:100%;height:100%;object-fit:contain;display:block;pointer-events:none}.logo.empty .logo-inner{display:flex;align-items:center;justify-content:center;background:#ffffffd9;color:#555;font:13px Arial;text-align:center;line-height:1.3;border-radius:6px}#projMenu{display:none;width:280px;padding:4px;z-index:920}#projMenu .pm-h{padding:6px 9px;font-size:var(--fs-ui);font-weight:600;color:var(--mut);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#projMenu button{display:flex;width:100%;height:var(--btn-h);border:0;background:none;border-radius:var(--r-sm);padding:0 9px;justify-content:flex-start;font-size:var(--fs-ui);font-weight:400}#projMenu button:hover{background:var(--hov)}#projMenu hr{border:0;height:1px;background:var(--line);margin:4px 2px}#projMenu kbd,.md-keys kbd{margin-left:auto;font:500 11px Inter,Segoe UI,sans-serif;color:var(--mut);background:#ffffff0f;border:1px solid var(--line);border-radius:4px;padding:1px 6px}.modal-ov{position:fixed;inset:0;z-index:2500;background:#00000080;backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;animation:mdfade .12s ease-out}@keyframes mdfade{0%{opacity:0}}@keyframes mdpop{0%{opacity:0;transform:translateY(6px) scale(.98)}}.modal{width:400px;max-width:calc(100% - 32px);background:var(--raised);border:1px solid var(--line2);border-radius:var(--r-md);box-shadow:var(--shadow-pop);overflow:hidden;animation:mdpop .14s ease-out}.modal.wide{width:460px}.modal-h{padding:16px 18px 0;font-weight:600;font-size:var(--fs-heading);letter-spacing:-.1px}.modal-b{padding:12px 18px 4px;font-size:var(--fs-ui)}.modal-f{display:flex;justify-content:flex-end;gap:8px;padding:14px 18px 16px}.modal-f button{padding:0 14px}button.danger{color:#f87171}.md-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px}.md-f{display:flex;flex-direction:column;gap:6px;font-size:var(--fs-label);font-weight:500;color:var(--mut)}.md-f.full{grid-column:1 / -1}.md-f input,.md-f textarea{width:100%;min-width:0;height:var(--box-h);padding:0 8px;border:1px solid var(--line);border-radius:var(--r-sm);background:#ffffff0a;color:var(--txt);font:inherit;font-size:var(--fs-ui);outline:none;transition:border-color .1s,box-shadow .1s}.md-f input:focus,.md-f textarea:focus{border-color:var(--focus)}.md-f textarea{height:auto;padding:8px 10px;line-height:1.5;resize:vertical}.fb-kinds{display:flex;gap:6px;margin-bottom:14px}.fb-kinds button{height:var(--box-h);padding:0 10px;border:1px solid var(--line);border-radius:var(--r-sm);background:none;color:var(--mut);font-size:var(--fs-ui)}.fb-kinds button:hover{color:var(--txt)}.fb-kinds button.on{border-color:var(--line2);background:var(--sel);color:#fff}.md-note{margin:14px 0 0;font-size:var(--fs-ui);line-height:1.55;color:var(--mut)}.md-keys{display:grid;grid-template-columns:auto 1fr;gap:7px 14px;align-items:center;font-size:var(--fs-ui)}.md-keys kbd{margin:0;justify-self:start}.speed-badge{position:absolute;transform-origin:0 0;z-index:5000;white-space:nowrap;pointer-events:none;background:#2c2c2cf2;color:var(--txt);border:1px solid rgba(12,140,233,.6);border-radius:999px;padding:4px 11px;font:600 12px/1.3 Inter,Segoe UI,sans-serif;box-shadow:0 6px 16px #00000073}.speed-badge.assumed{border-color:#f59e0b;color:#fcd34d}.speed-badge.none{border-color:var(--line);color:var(--mut);font-weight:500}@media(max-width:1240px){#search{width:190px}}@media(max-width:1180px){#tb{left:328px;transform:none}}.pp-sec{display:flex;align-items:center;justify-content:space-between;margin:8px calc(-12px - var(--pp-btn) - var(--pp-btn-gap)) 0 -12px;padding:12px 12px 0;border-top:1px solid var(--line);font-size:var(--fs-ui);font-weight:600;color:var(--txt)}.pp-sec-btn{width:22px;height:22px;min-width:0;margin:-4px -4px -4px 0;padding:0;justify-content:center;border:0;border-radius:6px;background:none;color:var(--mut)}.pp-sec-btn:hover{background:var(--hov);color:#fff}.pp-sec-btn.on{background:var(--sel);color:#fff}.pp-b>.pp-section:first-child>.pp-sec{margin-top:0;padding-top:0;border-top:0}.pp-btns{display:flex;gap:6px;width:100%}.pp-btns:empty{display:none}.pp-note{font-size:var(--fs-ui);line-height:1.45;color:var(--mut)}.pp-taper b{display:flex;align-items:center;gap:5px;font-weight:600;color:var(--txt);font-variant-numeric:tabular-nums}.tp-ck{display:flex}.tp-ck.ok{color:#22c55e}.tp-need{font-size:var(--fs-ui);color:#f97316}.pp-readout{flex:none;width:88px;display:flex;align-items:center;gap:5px;height:26px;padding:0 8px;border:1px solid var(--line);border-radius:6px;font-size:var(--fs-ui);white-space:nowrap;overflow:hidden}.pp-taper b.pp-readout{font-weight:400;color:#fff}.pp-readout.empty{color:var(--mut)}.pp-readout-unit{margin-left:auto;color:var(--mut)}.pp-btns button{flex:1;height:26px;padding:0 8px;justify-content:center;border-radius:6px;font-size:var(--fs-ui)}.pp-btns button:not(.pri){background:none}.pp-btns button.pri{background:var(--sel);border-color:var(--line2);color:#fff}.pp-btns button.pri:hover{background:var(--hov)}.bus-stop{position:absolute;transform-origin:0 0;width:20px;height:20px;pointer-events:none;filter:drop-shadow(0 1px 2px rgba(0,0,0,.5));z-index:4}.bus-stop svg{display:block}#bm #mapLayersBtn,#bm #streetViewBtn{padding:0;width:26px;min-width:26px;justify-content:center}#streetViewBtn svg{flex:none}#streetViewBtn{cursor:grab}#streetViewBtn.used-up{opacity:.35}.layers-pop{position:fixed;z-index:2500;width:156px;padding:4px;background:var(--raised);border:1px solid var(--line2);border-radius:var(--r-md);box-shadow:var(--shadow-pop)}.layers-pop .lp-h{padding:5px 8px 4px;font-size:var(--fs-ui);font-weight:600;color:var(--mut)}.layers-pop button{display:flex;align-items:center;gap:8px;width:100%;height:var(--btn-h);padding:0 8px;border:0;border-radius:var(--r-sm);background:none;font-size:var(--fs-ui);font-weight:400;color:var(--txt)}.layers-pop button:hover{background:var(--hov)}.layers-pop button span{flex:1;text-align:left}.layers-pop button svg{flex:none;color:var(--mut)}.layers-pop button.on svg:last-child{color:var(--acc)}#qBtn,#layersBtn,#drawBar{display:none}#drawBar{position:absolute;z-index:960;left:calc(var(--rail) + var(--dockL) + (100% - var(--rail) - var(--dockL) - var(--dockR)) / 2);bottom:calc(var(--bottomBar) + 14px);transform:translate(-50%);align-items:center;gap:6px;padding:6px}#drawBar button{height:40px;padding:0 14px;gap:6px;font-size:13px;white-space:nowrap}@media(pointer:coarse){:root{--fs-label: 11px;--fs-ui: 13px;--fs-heading: 14px;--hdr: 52px;--box-h: 36px;--btn-h: 38px}button,#tb,.rail-foot{-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.map-handle:after{content:"";position:absolute;inset:-14px}#p1.drawing #drawBar{display:flex}.row,#phaseList .row{height:40px;font-size:var(--fs-ui)}.lhb{width:38px;height:38px}.num,#props .num{height:var(--box-h)}.tbtn{height:var(--btn-h)}#rail #tb button{width:56px;height:56px}.rail-foot button{width:40px;height:40px}#bm button{height:34px}}@media(max-width:1100px){:root{--dockL: 0px !important}.hd-job{width:auto;max-width:40%}#layersBtn{display:flex}#layersBtn span{display:none}#leftDock{display:none;width:290px;box-shadow:var(--shadow-pop)}#p1.dock-open #leftDock{display:flex}#p1.dock-open #layersBtn{background:var(--sel);color:var(--txt)}.dock-resize{display:none}#search{width:200px}}@media(max-width:700px){:root{--rail: 0px;--dockR: 0px !important;--hdr: 52px;--bottomBar: 64px}#header{left:0}.hd-job{flex:1;max-width:none;min-width:0;margin-right:0;border-right:0}.hd-right{padding:0 8px 0 0}.hd-right .tbtn{width:40px;height:40px;padding:0;justify-content:center}#qBtn{display:flex}#search{display:none}#header.searching #search{display:flex;top:calc(100% + 8px);left:8px;right:8px;width:auto;height:44px;transform:none;z-index:970;background:var(--raised);box-shadow:var(--shadow-pop);font-size:15px}#header.searching #search .cl-drop{width:auto;left:-1px;right:-1px;transform:none}#rail{top:auto;bottom:0;right:0;width:auto;height:var(--bottomBar);flex-direction:row;align-items:center;padding:0 4px;border-right:0;border-top:1px solid var(--line)}#rail .brand-mark,#rail .rail-sep,#cleanBtn,#helpBtn{display:none}#tb{flex:1;min-width:0;flex-direction:row;gap:0;overflow-x:auto;scrollbar-width:none}#tb hr{width:1px;height:32px;margin:0 4px;flex:none}#tb button{flex:none;width:58px;height:56px}.rail-foot{margin:0;flex-direction:row;gap:0;padding-left:4px;border-left:1px solid var(--line)}.rail-foot button{width:52px;height:56px;flex-direction:column;gap:3px;font-size:var(--fs-label)}#layersBtn span{display:block}.rail-foot button:before{display:none}#leftDock{top:auto;left:0;right:0;bottom:var(--bottomBar);width:auto;height:62%;border-right:0;border-top:1px solid var(--line);border-radius:16px 16px 0 0;overflow:hidden}#props{top:auto;left:0;bottom:var(--bottomBar);width:auto;max-height:52%;border-left:0;border-top:1px solid var(--line);border-radius:16px 16px 0 0;box-shadow:var(--shadow-pop)}#props:has(.pp-empty),#p1.dock-open #props,#p1.drawing #props{display:none!important}#bm{top:calc(var(--hdr) + 8px);right:8px}#coordPanel{left:8px!important;right:8px;top:calc(var(--hdr) + 8px)!important;width:auto}#p1.clean-mode #rail{display:none}#p2 .bar,#p2 .subbar{overflow-x:auto;scrollbar-width:none}#p2 .bar>*,#p2 .subbar>*{flex:none;white-space:nowrap}#p2 .bar-brand,#p2 .bar>hr,#p2 .subtip{display:none}#viewBar{gap:5px;padding:4px 8px}#viewBar .vb-text{display:none}#viewBar button{padding:0 8px;font-size:10px}}body.capturing #bm,body.capturing #coordPanel,body.capturing #drawBar,body.capturing #xhair,body.capturing #shotPrompt,body.capturing #msg,body.capturing #viewBar,body.capturing #svBack,body.capturing #showToolsBtn,body.capturing .phase-overlay,body.capturing #tip,body.capturing #toast{visibility:hidden!important}.capture-mark{position:fixed;z-index:10000;left:0;top:0;width:6px;height:6px;pointer-events:none}
