:root,:host{--ol-background-color: white;--ol-accent-background-color: #F5F5F5;--ol-subtle-background-color: rgba(128, 128, 128, .25);--ol-partial-background-color: rgba(255, 255, 255, .75);--ol-foreground-color: #333333;--ol-subtle-foreground-color: #666666;--ol-brand-color: #00AAFF}.ol-box{box-sizing:border-box;border-radius:2px;border:1.5px solid var(--ol-background-color);background-color:var(--ol-partial-background-color)}.ol-mouse-position{top:8px;right:8px;position:absolute}.ol-scale-line{background:var(--ol-partial-background-color);border-radius:4px;bottom:8px;left:8px;padding:2px;position:absolute}.ol-scale-line-inner{border:1px solid var(--ol-subtle-foreground-color);border-top:none;color:var(--ol-foreground-color);font-size:10px;text-align:center;margin:1px;will-change:contents,width;transition:all .25s}.ol-scale-bar{position:absolute;bottom:8px;left:8px}.ol-scale-bar-inner{display:flex}.ol-scale-step-marker{width:1px;height:15px;background-color:var(--ol-foreground-color);float:right;z-index:10}.ol-scale-step-text{position:absolute;bottom:-5px;font-size:10px;z-index:11;color:var(--ol-foreground-color);text-shadow:-1.5px 0 var(--ol-partial-background-color),0 1.5px var(--ol-partial-background-color),1.5px 0 var(--ol-partial-background-color),0 -1.5px var(--ol-partial-background-color)}.ol-scale-text{position:absolute;font-size:12px;text-align:center;bottom:25px;color:var(--ol-foreground-color);text-shadow:-1.5px 0 var(--ol-partial-background-color),0 1.5px var(--ol-partial-background-color),1.5px 0 var(--ol-partial-background-color),0 -1.5px var(--ol-partial-background-color)}.ol-scale-singlebar{position:relative;height:10px;z-index:9;box-sizing:border-box;border:1px solid var(--ol-foreground-color)}.ol-scale-singlebar-even{background-color:var(--ol-subtle-foreground-color)}.ol-scale-singlebar-odd{background-color:var(--ol-background-color)}.ol-unsupported{display:none}.ol-viewport,.ol-unselectable{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.ol-viewport canvas{all:unset;overflow:hidden}.ol-viewport{touch-action:pan-x pan-y}.ol-selectable{-webkit-touch-callout:default;-webkit-user-select:text;-moz-user-select:text;user-select:text}.ol-grabbing{cursor:-webkit-grabbing;cursor:-moz-grabbing;cursor:grabbing}.ol-grab{cursor:move;cursor:-webkit-grab;cursor:-moz-grab;cursor:grab}.ol-control{position:absolute;background-color:var(--ol-subtle-background-color);border-radius:4px}.ol-zoom{top:.5em;left:.5em}.ol-rotate{top:.5em;right:.5em;transition:opacity .25s linear,visibility 0s linear}.ol-rotate.ol-hidden{opacity:0;visibility:hidden;transition:opacity .25s linear,visibility 0s linear .25s}.ol-zoom-extent{top:4.643em;left:.5em}.ol-full-screen{right:.5em;top:.5em}.ol-control button{display:block;margin:1px;padding:0;color:var(--ol-subtle-foreground-color);font-weight:700;text-decoration:none;font-size:inherit;text-align:center;height:1.375em;width:1.375em;line-height:.4em;background-color:var(--ol-background-color);border:none;border-radius:2px}.ol-control button::-moz-focus-inner{border:none;padding:0}.ol-zoom-extent button{line-height:1.4em}.ol-compass{display:block;font-weight:400;will-change:transform}.ol-touch .ol-control button{font-size:1.5em}.ol-touch .ol-zoom-extent{top:5.5em}.ol-control button:hover,.ol-control button:focus{text-decoration:none;outline:1px solid var(--ol-subtle-foreground-color);color:var(--ol-foreground-color)}.ol-zoom .ol-zoom-in{border-radius:2px 2px 0 0}.ol-zoom .ol-zoom-out{border-radius:0 0 2px 2px}.ol-attribution{text-align:right;bottom:.5em;right:.5em;max-width:calc(100% - 1.3em);display:flex;flex-flow:row-reverse;align-items:center}.ol-attribution a{color:var(--ol-subtle-foreground-color);text-decoration:none}.ol-attribution ul{margin:0;padding:1px .5em;color:var(--ol-foreground-color);text-shadow:0 0 2px var(--ol-background-color);font-size:12px}.ol-attribution li{display:inline;list-style:none}.ol-attribution li:not(:last-child):after{content:" "}.ol-attribution img{max-height:2em;max-width:inherit;vertical-align:middle}.ol-attribution button{flex-shrink:0}.ol-attribution.ol-collapsed ul{display:none}.ol-attribution:not(.ol-collapsed){background:var(--ol-partial-background-color)}.ol-attribution.ol-uncollapsible{bottom:0;right:0;border-radius:4px 0 0}.ol-attribution.ol-uncollapsible img{margin-top:-.2em;max-height:1.6em}.ol-attribution.ol-uncollapsible button{display:none}.ol-zoomslider{top:4.5em;left:.5em;height:200px}.ol-zoomslider button{position:relative;height:10px}.ol-touch .ol-zoomslider{top:5.5em}.ol-overviewmap{left:.5em;bottom:.5em}.ol-overviewmap.ol-uncollapsible{bottom:0;left:0;border-radius:0 4px 0 0}.ol-overviewmap .ol-overviewmap-map,.ol-overviewmap button{display:block}.ol-overviewmap .ol-overviewmap-map{border:1px solid var(--ol-subtle-foreground-color);height:150px;width:150px}.ol-overviewmap:not(.ol-collapsed) button{bottom:0;left:0;position:absolute}.ol-overviewmap.ol-collapsed .ol-overviewmap-map,.ol-overviewmap.ol-uncollapsible button{display:none}.ol-overviewmap:not(.ol-collapsed){background:var(--ol-subtle-background-color)}.ol-overviewmap-box{border:1.5px dotted var(--ol-subtle-foreground-color)}.ol-overviewmap .ol-overviewmap-box:hover{cursor:move}.ol-overviewmap .ol-viewport:hover{cursor:pointer}:root{--asphalt-900: #23262b;--asphalt-700: #31353c;--asphalt-500: #4a4f58;--marking-white: #f2f3f0;--survey-blue: #2d7dd2;--building-ink: #3a3f47;--access-amber: #f5a300;--count-green: #21c25e;--conflict-red: #e23d3d;--muted-text: #b8bec7;--radius-ui: 6px;--surface-deep: #1a1c20;--surface-raised: #31353c;--control-min: 44px;--toolbar-w: 96px;--sidebar-w: 320px;--header-h: 56px;--context-h: 34px;--build-bar-h: 76px;font-family:IBM Plex Sans,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html,body,#root{height:100%;margin:0;overflow:hidden;width:100%}body{background:var(--asphalt-900);color:var(--marking-white);overflow:hidden}.fatal-recovery{display:grid;align-content:center;justify-items:start;gap:12px;min-height:100vh;max-width:680px;margin:0 auto;padding:32px}.fatal-recovery strong{font-size:1.35rem}.fatal-recovery p{margin:0;color:#c7cbd1;line-height:1.5}.fatal-recovery button{padding:9px 14px;border:0;border-radius:var(--radius-ui);background:var(--survey-blue);color:#fff;cursor:pointer;font-weight:700}button,input,select{font:inherit}.app-shell{display:grid;grid-template-columns:var(--toolbar-w) minmax(720px,1fr) var(--sidebar-w);height:100vh;height:100dvh;overflow:hidden;width:100vw}.app-shell.meeting-mode{grid-template-columns:var(--toolbar-w) minmax(0,1fr)}.left-chrome{position:relative;z-index:80;min-width:0;background:var(--asphalt-900);border-right:1px solid var(--asphalt-500)}.left-rail{display:flex;flex-direction:column;gap:8px;height:100%;overflow-x:visible;overflow-y:auto;padding:10px 6px}.rail-group{display:grid;gap:4px}.planning-tool{position:relative;display:flex;min-width:var(--control-min);min-height:var(--control-min);align-items:center;justify-content:center;gap:4px;padding:7px;border:1px solid transparent;border-radius:var(--radius-ui);background:transparent;color:var(--marking-white);cursor:pointer}.left-rail .planning-tool{flex-direction:column;width:100%;min-height:58px;padding-right:5px;padding-left:5px}.planning-tool:hover{background:var(--asphalt-700)}.planning-tool:focus-visible,.header-menu-trigger:focus-visible,.build-split-toggle:focus-visible,.build-menu button:focus-visible,.header-menu button:focus-visible,.layer-flyout button:focus-visible{outline:2px solid #fff;outline-offset:2px}.planning-tool.is-active{border-color:#2d7dd2b8;background:#2d7dd233;color:#fff;box-shadow:inset 3px 0 0 var(--survey-blue)}.planning-tool.is-emphasis{border-color:#21c25eb3;background:#21c25e24;color:#e4ffed}.planning-tool:disabled{cursor:not-allowed;opacity:.38}.planning-tool-icon,.planning-tool>svg{flex:0 0 22px;width:22px;height:22px}.rail-tool-label{max-width:100%;overflow:hidden;font-size:.66rem;font-weight:650;line-height:1.1;text-overflow:ellipsis;white-space:nowrap}.tool-tooltip{position:absolute;left:calc(100% + 10px);top:50%;z-index:220;display:none;width:250px;padding:9px 10px;border:1px solid var(--asphalt-500);border-radius:var(--radius-ui);background:#1a1c20fa;color:var(--marking-white);font-size:.76rem;text-align:left;pointer-events:none;transform:translateY(-50%);box-shadow:0 10px 28px #00000057}.tool-tooltip strong,.tool-tooltip span,.tool-tooltip small{display:block}.tool-tooltip span{margin-top:4px;color:#c7cbd1;line-height:1.35}.tool-tooltip small{margin-top:6px;color:#9fcfff;line-height:1.3}.planning-tool:hover .tool-tooltip,.planning-tool:focus-visible .tool-tooltip{display:block}.planning-tool[aria-expanded=true] .tool-tooltip{display:none}.rail-divider{width:100%;height:1px;background:var(--asphalt-500)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.layer-flyout{position:absolute;left:calc(100% + 8px);top:174px;z-index:180;width:320px;padding:10px;border:1px solid var(--asphalt-500);border-radius:var(--radius-ui);background:#1a1c20fa;box-shadow:0 12px 34px #00000061}.layer-flyout>strong{display:block;margin:2px 4px 8px;color:#dce0e4;font-size:.75rem}.layer-flyout-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:3px}.layer-flyout button{display:flex;min-height:var(--control-min);align-items:center;gap:8px;padding:7px;border:0;border-radius:4px;background:transparent;color:var(--marking-white);cursor:pointer;font-size:.72rem;text-align:left}.layer-flyout button:hover{background:var(--asphalt-700)}.layer-check{display:grid;flex:0 0 18px;width:18px;height:18px;place-items:center;border:1px solid #7f8792;border-radius:3px}.layer-check.is-checked{border-color:var(--survey-blue);background:var(--survey-blue)}.layer-check.is-checked:after{width:7px;height:4px;border-bottom:2px solid #fff;border-left:2px solid #fff;content:"";transform:translateY(-1px) rotate(-45deg)}.maparea{position:relative;display:flex;min-width:0;overflow:hidden;flex-direction:column}.mapheader{z-index:70;display:flex;align-items:center;flex:0 0 var(--header-h);gap:8px;height:var(--header-h);min-width:0;padding:6px 10px;background:var(--asphalt-700);border-bottom:1px solid var(--asphalt-500);font-size:.875rem}.project-identity{display:flex;flex:0 1 200px;min-width:135px;align-items:center;gap:6px}.project-identity input{width:100%;height:var(--control-min);min-width:90px;border:0;border-radius:4px;background:transparent;color:var(--marking-white);font-weight:700}.project-identity input:focus{outline:2px solid var(--survey-blue);outline-offset:2px}.place-search{position:relative;display:flex;flex:0 1 280px;min-width:140px;gap:3px}.place-search input{width:100%;min-width:0;padding:4px 7px;border:1px solid var(--asphalt-500);border-radius:4px;background:var(--asphalt-900);color:var(--marking-white);font-weight:400}.place-search>button,.home-btn{display:grid;place-items:center;min-width:var(--control-min);height:var(--control-min);padding:0 7px;border:1px solid var(--asphalt-500);border-radius:4px;background:var(--asphalt-900);color:var(--marking-white);cursor:pointer}.place-search>button:hover,.place-search>button:focus-visible,.home-btn:hover,.home-btn:focus-visible{background:var(--survey-blue);border-color:var(--survey-blue);outline:0}.place-search>button:disabled{cursor:wait;opacity:.55}.place-results{position:absolute;top:calc(100% + 4px);left:0;z-index:50;display:grid;width:max(100%,280px);gap:2px;padding:5px;border:1px solid var(--asphalt-500);border-radius:4px;background:var(--asphalt-900);box-shadow:0 8px 20px #00000059}.place-results button{padding:7px 8px;border:0;border-radius:3px;background:transparent;color:var(--marking-white);cursor:pointer;text-align:left;white-space:normal}.place-results button:hover,.place-results button:focus-visible{background:var(--asphalt-700);outline:0}.place-search-error{position:absolute;top:calc(100% + 4px);left:0;z-index:50;max-width:280px;padding:5px 7px;border:1px solid var(--conflict-red);border-radius:4px;background:var(--asphalt-900);color:#ffb4b4;font-size:.72rem;white-space:nowrap}.home-btn{margin-left:0;font-size:1rem}.place-search>button svg{width:19px;height:19px}.header-actions{display:flex;flex:0 0 auto;align-items:center;gap:3px;margin-left:auto}.header-tool{flex-direction:row;min-height:var(--control-min);padding:7px 8px}.header-tool .planning-tool-icon{width:19px;height:19px}.header-action-label{font-size:.68rem;font-weight:650;white-space:nowrap}.header-menu-wrap{position:relative}.header-menu-trigger{display:flex;min-height:var(--control-min);align-items:center;gap:5px;padding:7px 8px;border:1px solid transparent;border-radius:var(--radius-ui);background:transparent;color:var(--marking-white);cursor:pointer;font-size:.7rem;font-weight:650}.header-menu-trigger:hover,.header-menu-trigger[aria-expanded=true]{border-color:var(--asphalt-500);background:var(--asphalt-900)}.header-menu-trigger svg{width:18px;height:18px}.header-menu-trigger svg:last-child{width:12px;height:12px}.header-menu,.build-menu{z-index:190;display:grid;gap:3px;padding:6px;border:1px solid var(--asphalt-500);border-radius:var(--radius-ui);background:#1a1c20fc;box-shadow:0 12px 34px #0006}.header-menu{position:absolute;top:calc(100% + 7px);left:0;width:210px}.header-menu.align-right{right:0;left:auto}.header-menu button,.build-menu button{display:flex;min-height:var(--control-min);align-items:center;gap:9px;padding:8px 10px;border:0;border-radius:4px;background:transparent;color:var(--marking-white);cursor:pointer;font-size:.76rem;text-align:left}.header-menu button:hover,.build-menu button:hover{background:var(--asphalt-700)}.header-menu button svg,.build-menu button svg{flex:0 0 20px;width:20px;height:20px}.header-tool .tool-tooltip{top:calc(100% + 10px);left:50%;transform:translate(-50%)}.badge{padding:2px 8px;border:1px solid var(--asphalt-500);border-radius:4px;color:var(--muted-text);font-size:.75rem}.badge.lock{border-color:var(--access-amber);color:var(--access-amber)}.badge.draft{border-color:#7f8792}.badge.selected-object{border-color:var(--survey-blue);color:#c7e2ff}.modetext{margin-left:auto;min-width:0;overflow:hidden;color:var(--muted-text);font-size:.75rem;text-overflow:ellipsis;white-space:nowrap}.recorder-button{display:inline-flex;flex:0 0 auto;align-items:center;justify-content:center;min-width:58px;height:var(--control-min);gap:6px;padding:0 9px;border:1px solid #ff6b6b;border-radius:999px;background:#371d20;color:#ffd9d9;cursor:pointer;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:.7rem;font-weight:700}.recorder-button:hover,.recorder-button:focus-visible,.recorder-button.recording{border-color:#ff4d4d;background:#a31621;color:#fff;outline:0}.recorder-button:focus-visible{box-shadow:0 0 0 2px #fff}.recorder-button:disabled{cursor:wait;opacity:.72}.recorder-dot{width:9px;height:9px;border-radius:50%;background:#ff4d4d;box-shadow:0 0 0 2px #ff4d4d33}.recorder-button.recording .recorder-dot{background:#fff;animation:recorder-pulse 1.2s ease-in-out infinite}@keyframes recorder-pulse{50%{opacity:.35;transform:scale(.78)}}.recorder-dialog-backdrop{position:fixed;z-index:1000;display:grid;top:0;right:0;bottom:0;left:0;place-items:center;padding:24px;background:#0c0e11c7;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.recorder-dialog{display:grid;width:min(860px,100%);max-height:calc(100dvh - 48px);gap:14px;overflow:auto;padding:20px;border:1px solid var(--asphalt-500);border-radius:8px;background:var(--asphalt-900);box-shadow:0 24px 70px #00000080}.recorder-dialog>header{display:flex;align-items:start;justify-content:space-between;gap:20px}.recorder-dialog h2{margin:2px 0 0;font-size:1.2rem}.recorder-dialog-kicker{color:#ff8585;font-size:.68rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase}.recorder-dialog>header button{width:34px;height:34px;border:1px solid var(--asphalt-500);border-radius:4px;background:var(--asphalt-700);color:#fff;cursor:pointer}.recorder-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 18px;margin:0}.recorder-meta div{min-width:0}.recorder-meta dt{color:var(--muted-text);font-size:.68rem;text-transform:uppercase}.recorder-meta dd{overflow:hidden;margin:2px 0 0;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:.78rem;text-overflow:ellipsis}.recorder-screenshot-state{margin:0;padding:8px 10px;border-left:3px solid var(--count-green);background:#21c25e14;color:#d7ede0;font-size:.78rem}.recorder-screenshot-state.missing{border-left-color:var(--access-amber);background:#f5a30014;color:#ffe0a0}.recorder-dialog textarea{width:100%;min-height:280px;resize:vertical;padding:12px;border:1px solid var(--asphalt-500);border-radius:5px;background:#17191d;color:#e9ebed;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:.72rem;line-height:1.45}.recorder-dialog-actions{display:flex;flex-wrap:wrap;gap:8px}.recorder-dialog-actions button{padding:9px 13px;border:1px solid var(--survey-blue);border-radius:5px;background:var(--survey-blue);color:#fff;cursor:pointer;font-weight:700}.recorder-dialog-actions button+button{border-color:var(--asphalt-500);background:var(--asphalt-700)}.recorder-dialog-actions button:disabled{cursor:wait;opacity:.65}.recorder-dialog-status{display:flex;flex-wrap:wrap;min-height:1.2em;gap:12px;color:#d7ede0;font-size:.76rem}@media(prefers-reduced-motion:reduce){.recorder-button.recording .recorder-dot{animation:none}}.map-canvas{flex:1;min-height:0;background:#dde3dd}.context-strip{z-index:65;display:flex;flex:0 0 var(--context-h);min-width:0;min-height:var(--context-h);align-items:center;gap:8px;padding:4px 12px;overflow:hidden;border-top:1px solid var(--asphalt-500);background:var(--surface-deep);color:var(--muted-text);font-size:.7rem}.mode-status{display:flex;min-width:0;align-items:center;gap:6px}.mode-status-dot{flex:0 0 8px;width:8px;height:8px;border-radius:50%;background:var(--survey-blue);box-shadow:0 0 0 3px #2d7dd22e}.mode-status strong{color:#9fcfff;text-transform:uppercase}.modetext{min-width:0;overflow:hidden;color:var(--marking-white);text-overflow:ellipsis;white-space:nowrap}.context-chip,.context-selection{flex:0 0 auto;padding:3px 7px;border:1px solid var(--asphalt-500);border-radius:999px;color:#dce0e4;white-space:nowrap}.context-chip.is-warning{border-color:var(--access-amber);color:#ffd98a}.context-chip.is-running{border-color:var(--count-green);color:#a9f5c3}.context-selection{border-color:var(--survey-blue);color:#c7e2ff}.context-hint{margin-left:auto;white-space:nowrap}.build-bar{z-index:70;display:flex;flex:0 0 var(--build-bar-h);min-width:0;height:var(--build-bar-h);align-items:stretch;border-top:1px solid #5b616b;background:#1a1c20fa;box-shadow:0 -8px 24px #0003}.build-bar-scroll{display:flex;width:100%;min-width:0;align-items:center;justify-content:center;gap:5px;overflow:visible;padding:6px 12px}.build-item{position:relative;display:flex;flex:0 0 auto;min-width:98px;height:62px}.build-tool{flex:1 1 auto;min-width:98px;flex-direction:column;padding:5px 8px}.build-tool-label{max-width:112px;overflow:hidden;font-size:.68rem;font-weight:650;line-height:1.1;text-overflow:ellipsis;white-space:nowrap}.build-chevron{position:absolute;right:6px;bottom:5px;width:12px!important;height:12px!important}.build-split{min-width:138px}.build-split .build-tool-main{min-width:90px;border-radius:var(--radius-ui) 0 0 var(--radius-ui)}.build-split-toggle{display:grid;flex:0 0 var(--control-min);width:var(--control-min);min-height:var(--control-min);place-items:center;border:0;border-left:1px solid var(--asphalt-500);border-radius:0 var(--radius-ui) var(--radius-ui) 0;background:var(--asphalt-700);color:var(--marking-white);cursor:pointer}.build-split-toggle:hover,.build-split-toggle[aria-expanded=true]{background:var(--survey-blue)}.build-split-toggle svg{width:14px;height:14px}.build-menu{position:absolute;bottom:calc(100% + 8px);left:50%;width:230px;transform:translate(-50%)}.build-menu.is-wide{grid-template-columns:repeat(2,minmax(0,1fr));width:360px}.build-tool .tool-tooltip{top:auto;right:auto;bottom:calc(100% + 10px);left:50%;transform:translate(-50%)}.legend{position:absolute;left:12px;bottom:calc(var(--context-h) + var(--build-bar-h) + 14px);z-index:12;display:block;width:min(288px,calc(100% - 24px));max-width:288px;padding:0;border:1px solid var(--asphalt-500);border-radius:var(--radius-ui);background:#23262be0;font-size:.7rem}.legend summary{display:flex;min-height:var(--control-min);align-items:center;gap:7px;padding:8px 10px;color:var(--marking-white);cursor:pointer;font-weight:700;list-style:none}.legend summary::-webkit-details-marker{display:none}.legend summary svg{width:19px;height:19px}.legend summary:hover,.legend summary:focus-visible{background:var(--asphalt-700);outline:0}.legend-content{display:flex;flex-direction:column;gap:4px;max-height:min(520px,calc(100dvh - var(--header-h) - var(--context-h) - var(--build-bar-h) - 90px));overflow-y:auto;padding:0 10px 10px}.legend-title{margin-top:2px;color:#dfe3e8;font-size:.66rem;letter-spacing:.08em;text-transform:uppercase}.legend-note{margin:2px 0 4px 18px;color:var(--muted-text);font-size:.65rem;line-height:1.3}.meeting-cockpit{position:absolute;top:calc(var(--header-h) + 14px);right:14px;z-index:14;display:grid;grid-template-columns:auto minmax(210px,1fr);min-width:390px;border:1px solid rgba(255,255,255,.2);border-radius:var(--radius-ui);background:#1a1c20e6;box-shadow:0 8px 24px #00000038;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.meeting-count{display:grid;min-width:132px;padding:10px 12px;border-right:1px solid rgba(255,255,255,.16)}.meeting-count span,.meeting-count small{color:#b9bec5;font-size:.7rem}.meeting-count strong{color:var(--count-green);font-family:IBM Plex Mono,ui-monospace,monospace;font-size:2rem;line-height:1.05}.meeting-signals{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:#ffffff1f}.meeting-signals>span{display:grid;gap:2px;padding:8px 10px;background:#1a1c20f5;color:#b9bec5;font-size:.68rem}.meeting-signals b{color:var(--count-green);font-size:.78rem}.meeting-signals .check b{color:var(--access-amber)}.meeting-signals .neutral b{color:#b9bec5}.meeting-signals .conflict b{color:var(--conflict-red)}.meeting-variants{position:absolute;top:calc(var(--header-h) + 14px);left:14px;z-index:14;display:flex;gap:4px;padding:4px;border:1px solid rgba(255,255,255,.2);border-radius:var(--radius-ui);background:#1a1c20e6;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.meeting-variants button{display:grid;min-width:72px;min-height:38px;padding:4px 7px;border:1px solid transparent;border-radius:4px;background:transparent;color:#b9bec5;cursor:pointer;font-size:.68rem}.meeting-variants button b{color:var(--marking-white);font-family:IBM Plex Mono,ui-monospace,monospace;font-size:.78rem}.meeting-variants button.selected{border-color:var(--survey-blue);background:var(--survey-blue);color:#fff}.li{display:flex;align-items:center;gap:6px}.sw{flex:0 0 12px;width:12px;height:12px;border-radius:2px}.sw.guided-main-road{border:2px solid rgba(45,125,210,.82);background:#2d7dd247}.sw.automatic-backbone{border:1px solid rgba(184,186,182,.72);background:#b8bab657}.sw.access-connector{border:2px solid rgba(245,163,0,.78);background:#f5a30038}.sw.local-connector{border:1px dashed rgba(184,186,182,.72);background:#b8bab629}.toast{position:absolute;left:50%;bottom:calc(var(--context-h) + var(--build-bar-h) + 20px);z-index:60;max-width:min(520px,calc(100% - 32px));padding:8px 16px;border:1px solid var(--access-amber);border-radius:var(--radius-ui);background:var(--asphalt-700);color:var(--marking-white);font-size:.875rem;transform:translate(-50%)}.help-overlay{position:absolute;left:12px;top:calc(var(--header-h) + 12px);z-index:75;width:min(460px,calc(100% - 24px));max-height:calc(100% - var(--header-h) - var(--context-h) - var(--build-bar-h) - 24px);overflow:auto;padding:12px;border:1px solid var(--asphalt-500);border-radius:var(--radius-ui);background:#1a1c20f0;box-shadow:0 10px 30px #00000052;color:var(--marking-white)}.help-overlay header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}.help-overlay header button{display:grid;place-items:center;width:var(--control-min);height:var(--control-min);border:1px solid var(--asphalt-500);border-radius:4px;background:var(--asphalt-700);color:var(--marking-white);cursor:pointer;font-size:1rem}.help-overlay p{margin:0 0 10px;color:#dce0e4;font-size:.86rem;line-height:1.4}.quick-start{display:grid;gap:6px}.help-zones{display:grid;gap:6px;margin-bottom:10px}.help-zones section{display:grid;grid-template-columns:30px 1fr;gap:8px;align-items:center;padding:8px;border:1px solid rgba(74,79,88,.72);border-radius:var(--radius-ui);background:#31353c73}.help-zones svg{width:24px;height:24px;color:#9fcfff}.help-zones span{display:grid;gap:2px}.help-zones strong{font-size:.78rem}.help-zones small{color:#c7cbd1;font-size:.72rem;line-height:1.3}.quick-start-step{display:grid;grid-template-columns:28px 1fr;gap:8px;align-items:center;padding:7px 0;border-top:1px solid rgba(74,79,88,.7)}.quick-start-step>b{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:var(--survey-blue);color:#fff;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:.78rem}.quick-start-step span{display:grid;gap:2px}.quick-start-step strong{font-size:.82rem}.quick-start-step small{color:#c7cbd1;font-size:.76rem;line-height:1.3}.help-contract{display:grid;gap:5px;margin-top:8px;padding:9px;border:1px solid rgba(117,191,232,.38);border-radius:var(--radius-ui);background:#2d7dd212}.help-contract p{margin:0;font-size:.75rem}.help-tools{margin-top:10px;border-top:1px solid rgba(74,79,88,.7);padding-top:8px}.help-tools summary{color:#dce0e4;cursor:pointer;font-size:.78rem}.help-tools[open] summary{margin-bottom:6px}.help-list{display:grid;gap:6px}.help-list div{display:grid;grid-template-columns:28px 120px 1fr;gap:8px;align-items:start;padding:6px 0;border-top:1px solid rgba(74,79,88,.7);font-size:.78rem}.help-actions{position:sticky;bottom:-12px;display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end;margin-top:12px;padding-top:10px;border-top:1px solid rgba(74,79,88,.7);background:#1a1c20f5}.help-list span{display:grid;place-items:center;width:24px;height:24px;border-radius:4px;background:var(--asphalt-700)}.help-list span svg{width:18px;height:18px}.help-list small{color:#c7cbd1;line-height:1.3}.sidebar{z-index:20;display:flex;flex-direction:column;gap:16px;overflow-x:hidden;overflow-y:auto;padding:12px;background:var(--asphalt-900);border-left:1px solid var(--asphalt-500)}.sidebar[hidden]{display:none}.section-label{margin-bottom:6px;color:var(--muted-text);font-size:.75rem;letter-spacing:.08em;text-transform:uppercase}.sidebar-panel{border-top:1px solid rgba(74,79,88,.75);padding-top:8px}.sidebar-panel summary{display:flex;align-items:center;justify-content:space-between;color:var(--muted-text);cursor:pointer;font-size:.75rem;letter-spacing:.08em;list-style:none;text-transform:uppercase}.sidebar-panel summary::-webkit-details-marker{display:none}.sidebar-panel summary:after{color:var(--marking-white);content:"+";font-family:IBM Plex Mono,ui-monospace,monospace}.sidebar-panel[open] summary{margin-bottom:8px}.sidebar-panel[open] summary:after{content:"-"}.parkleit{padding:14px 16px;border:1px solid var(--asphalt-500);border-radius:var(--radius-ui);background:#1a1c20;text-align:center}.prow{display:flex;align-items:center;justify-content:center;gap:10px;color:var(--muted-text);font-size:.8rem;letter-spacing:.15em}.pbox{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:3px;background:var(--survey-blue);color:#fff;font-family:IBM Plex Mono,ui-monospace,monospace;font-weight:700}.count{color:var(--count-green);font-family:IBM Plex Mono,ui-monospace,monospace;font-size:3.5rem;font-weight:650;line-height:1.1}.count.zero,.warn{color:var(--conflict-red)}.parkleit.provisional .count{color:var(--access-amber)}.parkleit.retained .count{color:var(--survey-blue)}.sub{color:var(--muted-text);font-size:.8rem}.plan-status{display:grid;gap:2px;padding:9px 10px;border:1px solid var(--asphalt-500);border-radius:var(--radius-ui);background:#1a1c20}.plan-status span,.plan-status small{color:var(--muted-text);font-size:.74rem}.plan-status strong{color:var(--count-green);font-size:1rem}.plan-status.check strong{color:var(--access-amber)}.plan-status.conflict strong{color:var(--conflict-red)}.solver-status{display:grid;gap:3px;padding:9px 10px;border:1px solid rgba(45,125,210,.45);border-radius:var(--radius-ui);background:#2d7dd214}.solver-status span,.solver-status small{color:var(--muted-text);font-size:.72rem}.solver-status strong{color:var(--marking-white);font-size:.88rem}.solver-status.pending{border-color:var(--access-amber)}.solver-status.error{border-color:var(--conflict-red)}.roi-card{display:grid;grid-template-columns:1fr auto;gap:2px 12px;padding:9px 10px;border:1px solid var(--asphalt-500);border-radius:var(--radius-ui);background:#20242a}.roi-card span,.roi-card small{color:var(--muted-text);font-size:.74rem}.roi-card strong{color:var(--marking-white);font-family:IBM Plex Mono,ui-monospace,monospace;font-size:1rem}.roi-card b{grid-column:1 / -1;color:var(--count-green);font-size:.78rem;font-weight:700}.roi-card.check b{color:var(--access-amber)}.roi-card.conflict b{color:var(--conflict-red)}.warn{margin-top:4px;font-size:.75rem}.kpis{display:grid;grid-template-columns:1fr auto;gap:4px 12px;font-size:.875rem}.k{color:var(--muted-text)}.v{font-family:IBM Plex Mono,ui-monospace,monospace;text-align:right}.v.good{color:var(--count-green)}.v.mid{color:var(--access-amber)}.v.bad{color:var(--conflict-red)}.kpihint{margin:6px 0 0;color:var(--asphalt-500);font-size:.7rem;line-height:1.4}.hint{margin:0;color:#c7cbd1;font-size:.82rem;line-height:1.4}.manual-path-editor{display:grid;gap:6px;margin-top:8px;padding:8px;border:1px solid rgba(45,125,210,.45);border-radius:var(--radius-ui);background:#2d7dd21a}.manual-path-editor.selected{border-color:var(--access-amber);background:#f5a30014}.manual-path-editor label{display:grid;gap:4px;color:var(--muted-text);font-size:.78rem}.manual-path-editor input{width:100%;padding:5px 6px;border:1px solid var(--asphalt-500);border-radius:4px;background:var(--asphalt-700);color:var(--marking-white);font-family:IBM Plex Mono,ui-monospace,monospace;text-align:right}.manual-path-editor input[readonly]{color:#c7cbd1}.warning-list{display:grid;gap:6px}.witem{display:grid;grid-template-columns:22px 1fr;gap:8px;align-items:start;padding:7px 8px;border:1px solid var(--asphalt-500);border-radius:var(--radius-ui);background:#1a1c20;color:#dce0e4;font-size:.78rem;line-height:1.35}.witem span{display:grid;place-items:center;width:18px;height:18px;border-radius:50%;background:var(--asphalt-700);color:var(--access-amber);font-family:IBM Plex Mono,ui-monospace,monospace;font-size:.72rem}.witem.conflict{border-color:#e23d3dbf}.witem.conflict span{color:#fff;background:var(--conflict-red)}.witem p{margin:0}.select{width:100%;padding:7px 8px;border:1px solid var(--asphalt-500);border-radius:var(--radius-ui);background:var(--asphalt-700);color:var(--marking-white)}.button-row{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:8px}.mini-btn{padding:7px 8px;border:1px solid var(--asphalt-500);border-radius:var(--radius-ui);background:var(--asphalt-700);color:var(--marking-white);cursor:pointer;font-size:.8rem}.mini-btn:hover,.mini-btn:focus-visible{border-color:var(--survey-blue)}.variant-list,.object-list,.layer-list{display:flex;flex-direction:column;gap:6px;margin-top:8px}.variant-list button,.object-list>.object-row,.layer-list label{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:34px;padding:6px 8px;border:1px solid var(--asphalt-500);border-radius:var(--radius-ui);background:#1a1c20;color:var(--marking-white);font-size:.8rem}.object-list>.object-row.active{border-color:var(--survey-blue);background:#2d7dd224}.variant-list button{cursor:pointer}.variant-list b{color:var(--count-green);font-family:IBM Plex Mono,ui-monospace,monospace}.object-list span,.variant-list span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.object-actions{display:flex;flex:0 0 auto;gap:5px}.object-list button{flex:0 0 auto;padding:4px 7px;border-radius:4px;background:transparent;cursor:pointer;font-size:.72rem}.object-list .select-object{border:1px solid var(--survey-blue);color:#bcdcff}.object-list .delete-object{border:1px solid var(--conflict-red);color:#ff9a9a}button:disabled,input:disabled{cursor:not-allowed;opacity:.48}.building-editor{display:grid;gap:8px;margin-top:10px;padding-top:8px;border-top:1px solid rgba(74,79,88,.65)}.direct-edit-hint{margin:0;padding:7px 8px;border:1px solid rgba(45,125,210,.45);border-radius:var(--radius-ui);background:#2d7dd21c;color:#bcdcff;font-size:.78rem;line-height:1.35}.building-editor label{display:grid;gap:4px;color:var(--muted-text);font-size:.78rem}.building-editor input:not([type=range]),.building-editor select,.building-fields input{width:100%;padding:5px 6px;border:1px solid var(--asphalt-500);border-radius:4px;background:var(--asphalt-700);color:var(--marking-white)}.building-fields{display:grid;grid-template-columns:1fr 76px;gap:6px 10px;align-items:center;font-size:.82rem}.building-fields input{font-family:IBM Plex Mono,ui-monospace,monospace;text-align:right}.quick-sliders{display:grid;gap:7px;padding:8px;border:1px solid rgba(74,79,88,.65);border-radius:var(--radius-ui);background:#1a1c208c}.quick-sliders label{grid-template-columns:1fr auto;align-items:center;gap:4px 8px}.quick-sliders label input{grid-column:1 / -1}.quick-sliders input[type=range]{width:100%;padding:0;border:0;background:transparent;accent-color:var(--survey-blue)}.layer-list label{justify-content:flex-start;cursor:pointer}.layer-list input{width:16px;height:16px;accent-color:var(--survey-blue)}.segment{display:flex;overflow:hidden;border:1px solid var(--asphalt-500);border-radius:var(--radius-ui)}.segment button{flex:1;padding:7px 4px;border:0;background:var(--asphalt-700);color:var(--marking-white);cursor:pointer;font-size:.78rem}.segment button.sel{background:var(--survey-blue)}.ctl{display:flex;flex-direction:column;gap:8px;font-size:.875rem}.ctl label{display:flex;justify-content:space-between}.val,.state{color:var(--muted-text);font-family:IBM Plex Mono,ui-monospace,monospace;font-size:.8rem}input[type=range]{width:100%;accent-color:var(--survey-blue)}.toggle{display:flex;justify-content:space-between;padding:8px 10px;border:1px solid var(--asphalt-500);border-radius:var(--radius-ui);background:var(--asphalt-700);color:var(--marking-white);cursor:pointer}.toggle.on{border-color:var(--access-amber)}.toggle.on .state{color:var(--access-amber)}.profile-choices{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-bottom:8px}.profile-choices button{display:grid;gap:3px;padding:8px;border:1px solid var(--asphalt-500);border-radius:var(--radius-ui);background:var(--asphalt-700);color:var(--marking-white);cursor:pointer;text-align:left}.profile-choices button.selected{border-color:var(--survey-blue);background:#2d7dd229}.profile-choices small{color:var(--muted-text);font-size:.68rem;line-height:1.25}.road-widths{display:grid;gap:6px;margin-top:10px}.road-width-row{display:grid;grid-template-columns:minmax(0,1fr) auto 26px;gap:6px;align-items:end;padding:7px;border:1px solid var(--asphalt-500);border-radius:var(--radius-ui);background:#20242a}.road-width-row label{display:grid;gap:3px;color:var(--muted-text);font-size:.74rem}.road-width-row input{min-width:0;width:100%;padding:4px 6px;border:1px solid var(--asphalt-500);border-radius:4px;background:var(--asphalt-700);color:var(--marking-white);font-family:IBM Plex Mono,ui-monospace,monospace}.road-width-row small{align-self:center;color:var(--muted-text);font-size:.68rem}.road-width-row button{width:26px;height:26px;border:1px solid var(--asphalt-500);border-radius:4px;background:transparent;color:var(--marking-white);cursor:pointer}.road-width-row button:disabled{cursor:default;opacity:.35}.road-width-row.derived{grid-template-columns:minmax(0,1fr) 76px}.road-width-row.derived small{grid-column:1 / -1}.road-width-row.derived input{text-align:right}.rules{display:grid;grid-template-columns:1fr 76px;gap:6px 10px;align-items:center;font-size:.82rem}.rk{color:var(--muted-text)}.rules input{width:100%;padding:4px 6px;border:1px solid var(--asphalt-500);border-radius:4px;background:var(--asphalt-700);color:var(--marking-white);font-family:IBM Plex Mono,ui-monospace,monospace;text-align:right}.rules output{color:var(--marking-white);font-family:IBM Plex Mono,ui-monospace,monospace;text-align:right}.footer{margin-top:auto;padding-top:8px;border-top:1px solid var(--asphalt-500);color:var(--muted-text);font-size:.7rem;line-height:1.5}@media(max-width:1500px){.header-tool[data-tool-id=undo] .header-action-label,.header-tool[data-tool-id=redo] .header-action-label,.header-tool[data-tool-id=help] .header-action-label{display:none}.header-tool[data-tool-id=undo],.header-tool[data-tool-id=redo],.header-tool[data-tool-id=help]{width:var(--control-min);padding:7px}.project-identity .badge{display:none}}@media(max-width:1120px){.app-shell{grid-template-columns:var(--toolbar-w) minmax(620px,1fr) 280px}.build-bar-scroll{gap:3px;padding-right:6px;padding-left:6px}.build-item,.build-tool{min-width:92px}.build-split{min-width:136px}}@media(max-width:1000px){:root{--toolbar-w: 82px}.app-shell{grid-template-columns:var(--toolbar-w) minmax(0,1fr);grid-template-rows:66dvh 34dvh}.left-chrome{grid-row:1 / 3}.left-rail{padding-right:5px;padding-left:5px}.maparea{min-height:0}.mapheader{gap:8px;min-width:0}.project-identity{flex-basis:150px;min-width:110px}.place-search{flex-basis:160px;min-width:110px}.legend{max-width:calc(100% - 24px)}.help-overlay{right:12px;width:auto;max-height:calc(100% - var(--header-h) - var(--context-h) - var(--build-bar-h) - 18px);padding:10px}.help-list div{grid-template-columns:28px 1fr}.help-list small{grid-column:2}.help-actions{justify-content:stretch}.help-actions button{flex:1 1 130px}.sidebar{grid-column:2;min-width:0;border-top:1px solid var(--asphalt-500);border-left:0}.app-shell.meeting-mode{grid-template-columns:var(--toolbar-w) minmax(0,1fr);grid-template-rows:100dvh}.meeting-mode .left-chrome{grid-row:1}.meeting-cockpit{top:auto;right:10px;bottom:calc(var(--context-h) + var(--build-bar-h) + 10px);grid-template-columns:112px minmax(190px,1fr);min-width:0;max-width:calc(100% - 20px)}.meeting-variants{right:10px;left:10px;overflow-x:auto}.build-bar-scroll{justify-content:flex-start;overflow-x:auto;overflow-y:hidden;scrollbar-width:thin}.build-menu{position:fixed;bottom:calc(34dvh + var(--context-h) + var(--build-bar-h) + 8px);left:calc(var(--toolbar-w) + (100vw - var(--toolbar-w)) / 2);max-width:calc(100vw - var(--toolbar-w) - 20px)}.meeting-mode .build-menu{bottom:calc(var(--context-h) + var(--build-bar-h) + 8px)}.layer-flyout{top:170px;width:min(320px,calc(100vw - var(--toolbar-w) - 18px))}.header-menu-trigger[data-header-menu=image]{width:var(--control-min);justify-content:center}.header-menu-trigger[data-header-menu=image] span,.header-menu-trigger[data-header-menu=image] svg:last-child{display:none}.recorder-button{width:var(--control-min);min-width:var(--control-min);padding:0;font-size:0}}@media(max-width:600px){:root{--toolbar-w: 80px;--header-h: 104px;--context-h: 32px;--build-bar-h: 72px}.app-shell{grid-template-rows:70dvh 30dvh}.mapheader{position:relative;display:grid;grid-template-columns:minmax(86px,1fr) minmax(105px,1.25fr) auto;grid-template-rows:44px 44px;gap:4px;padding:6px}.project-identity{grid-column:1;grid-row:1;min-width:0}.place-search{grid-column:2;grid-row:1;min-width:100px}.place-search input{font-size:.75rem}.header-actions{display:flex;grid-column:1 / -1;grid-row:2;justify-content:flex-start;margin-left:0;overflow-x:auto;gap:6px;scrollbar-width:thin}.header-tool,.header-menu-trigger{flex:0 0 auto}.header-menu-trigger{width:auto;justify-content:flex-start;padding:7px}.header-menu-trigger svg:last-child{display:none}.header-menu-trigger[data-header-menu=image]{width:auto}.header-menu-trigger[data-header-menu=image] span{display:inline}.header-tool[data-tool-id=undo],.header-tool[data-tool-id=redo],.header-tool[data-tool-id=help]{width:auto}.header-tool[data-tool-id=undo] .header-action-label,.header-tool[data-tool-id=redo] .header-action-label,.header-tool[data-tool-id=help] .header-action-label{display:inline}.header-menu-wrap[data-header-menu-wrap=project]{order:1}.header-tool[data-tool-id=optimize]{order:2}.header-tool[data-tool-id=meeting]{order:3}.header-tool[data-tool-id=undo]{order:4}.header-tool[data-tool-id=redo]{order:5}.header-menu-wrap[data-header-menu-wrap=image]{order:6}.header-tool[data-tool-id=help]{order:7}.left-rail{padding-right:4px;padding-left:4px}.left-rail .planning-tool{padding-right:3px;padding-left:3px}.rail-tool-label{font-size:.59rem}.recorder-button{grid-column:3;grid-row:1;min-width:46px;padding:0 7px;font-size:.7rem}.recorder-dialog-backdrop{padding:8px}.recorder-dialog{max-height:calc(100dvh - 16px);padding:14px}.recorder-meta{grid-template-columns:1fr}.recorder-dialog textarea{min-height:220px}.recorder-dialog-actions button{flex:1 1 220px}.context-hint,.context-chip:not(.is-warning),.context-selection{display:none}.modetext{font-size:.66rem}.build-bar-scroll{padding:5px 6px}.build-item,.build-tool{min-width:86px;height:60px}.build-split{min-width:132px}.build-tool-label{max-width:88px;font-size:.64rem}.build-menu,.build-menu.is-wide{grid-template-columns:1fr;width:min(330px,calc(100vw - var(--toolbar-w) - 18px));max-height:52dvh;overflow-y:auto}.layer-flyout-list{grid-template-columns:1fr;max-height:58dvh;overflow-y:auto}.meeting-cockpit{grid-template-columns:96px minmax(170px,1fr)}}
