*{box-sizing:border-box}body,html{margin:0;padding:0;width:100%;height:100%;overflow:hidden;display:flex;flex-direction:column}body,html{background:#05080a}body{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#f5f7fa}body>div:not([hidden]){width:100%}:root{--app-bg:#05080a;--panel-bg:#071017;--panel-bg-soft:#0b1720;--panel-bg-lighter:#102433;--border-subtle:rgba(118,211,255,0.22);--border-strong:rgba(118,211,255,0.55);--accent:#55c8ff;--accent-strong:#00a6ff;--danger:#ff3b3b;--warning:#ffc857;--text-main:#f5f7fa;--text-muted:#a9b7c3;--text-dim:#6f7d87;--control-height:30px;--control-radius:5px;--toolbar-height:112px;--draw-red:#ff1f1f;--draw-blue:#66d9ff;--draw-purple:#d44dff;--draw-yellow:#f4c542}.app-shell{width:100vw;flex:1 1;min-width:960px;display:flex;flex-direction:column;background:var(--app-bg);color:var(--text-main)}.app-shell,.editor-shell{min-height:0;overflow:hidden}.editor-shell{position:relative;flex:1 1 auto;width:100%;background:#000}.export-surface{overflow:hidden;z-index:1}.export-surface,.export-surface .map-container{position:absolute;inset:0;width:100%;height:100%}.export-surface .scale-status-panel{z-index:31}.export-surface .scale-ruler-panel{z-index:33}.export-surface .draft-controls-panel{z-index:34}.top-toolbar{position:relative;z-index:50;width:100%;min-height:var(--toolbar-height);background:#020608;border-bottom:1px solid var(--border-subtle);display:flex;flex-direction:column;gap:8px;padding:10px 12px;box-shadow:0 6px 18px rgba(0,0,0,.42)}.toolbar-row{display:flex;align-items:center;gap:10px;min-height:34px;white-space:nowrap}.toolbar-row.wrap{flex-wrap:wrap}.toolbar-spacer{flex:1 1 auto}.toolbar-label{font-size:14px;line-height:1;color:var(--text-main)}.toolbar-label.large{font-size:18px;letter-spacing:.02em;font-weight:750}.toolbar-label.muted{color:var(--text-muted)}.button-dark,.input-dark,.select-dark{height:var(--control-height);border-radius:var(--control-radius);font-size:14px;font-family:inherit}.input-dark,.select-dark{background:#020608;color:var(--text-main);border:1px solid var(--border-subtle);padding:4px 8px;outline:none}.input-dark:focus,.select-dark:focus{border-color:var(--border-strong);box-shadow:0 0 0 2px rgba(85,200,255,.16)}.input-dark::placeholder{color:var(--text-dim)}.input-address{width:390px;max-width:38vw}.input-small{width:72px;text-align:center}.input-medium{width:130px}.button-dark,.select-dark{cursor:pointer}.button-dark{background:#020608;color:var(--text-main);border:1px solid var(--border-subtle);padding:4px 14px;line-height:1;transition:background .12s ease,border-color .12s ease,transform 80ms ease}.button-dark:hover{background:#0a1720;border-color:var(--border-strong)}.button-dark:active{transform:translateY(1px)}.button-dark.active{background:#102433;border-color:var(--accent);color:#ffffff;box-shadow:0 0 0 1px rgba(85,200,255,.18)}.button-dark.danger{border-color:rgba(255,59,59,.55);color:#ffd6d6}.button-dark.danger:hover{background:rgba(255,59,59,.16)}.button-dark.primary{border-color:rgba(85,200,255,.7);background:rgba(85,200,255,.12)}.button-dark.primary:hover{background:rgba(85,200,255,.22)}.button-dark:disabled,.input-dark:disabled,.select-dark:disabled{opacity:.55;cursor:not-allowed}.button-dark.subtle{margin-top:10px;opacity:.9}.color-chip{width:22px;height:22px;border-radius:4px;border:1px solid var(--border-strong);display:inline-block;vertical-align:middle;background:var(--draw-red)}.color-chip.blue{background:var(--draw-blue)}.color-chip.purple{background:var(--draw-purple)}.color-chip.yellow{background:var(--draw-yellow)}.checkbox-row{display:inline-flex;align-items:center;gap:6px;font-size:14px;color:var(--text-main)}.checkbox-row input{width:16px;height:16px}.map-container{position:absolute;inset:0;z-index:2;width:100%;height:100%;background:#101820}.map-container.google-base-source-map{background:transparent}.map-container.google-base-source-map .maplibregl-canvas{opacity:0}.google-base-map{position:absolute;inset:0;z-index:1;overflow:hidden;background:#101820;pointer-events:none}.google-base-map,.google-base-map-canvas{width:100%;height:100%}.google-base-map-message{position:absolute;left:48px;top:12px;max-width:min(520px,calc(100% - 96px));padding:8px 10px;border:1px solid rgba(251,191,36,.65);border-radius:6px;color:#fde68a;background:rgba(3,13,18,.94);box-shadow:0 8px 22px rgba(0,0,0,.44);font-size:13px;line-height:1.35}.google-3d-tiles-preview{position:absolute;inset:0;z-index:1;width:100%;height:100%;overflow:hidden;background:#101820;pointer-events:none}.google-3d-tiles-canvas,.google-3d-tiles-preview .cesium-widget,.google-3d-tiles-preview .cesium-widget canvas{width:100%;height:100%}.google-3d-tiles-preview .cesium-widget-credits{right:16px;bottom:4px;left:auto;color:rgba(255,255,255,.72);font-size:10px;text-shadow:0 1px 2px #000}.google-3d-tiles-message{position:absolute;left:48px;bottom:12px;max-width:min(640px,calc(100% - 96px));padding:8px 10px;border:1px solid rgba(85,200,255,.65);border-radius:6px;color:#d7f5ff;background:rgba(3,13,18,.94);box-shadow:0 8px 22px rgba(0,0,0,.44);font-size:13px;line-height:1.35}.maplibregl-canvas{outline:none}.overlay-container{position:absolute;inset:0;z-index:10;pointer-events:auto}.overlay-container.pass-through{pointer-events:none}.equipment-upload-panel,.export-panel,.layer-panel,.properties-panel{position:absolute;top:14px;right:14px;z-index:120;max-height:calc(100% - 84px);overflow:auto;background:rgba(5,10,14,.92);border:1px solid var(--border-subtle);border-radius:12px;padding:12px;box-shadow:0 12px 36px rgba(0,0,0,.46);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.properties-panel{width:300px;max-height:calc(100% - 28px)}.equipment-upload-panel{width:360px}.layer-panel{width:390px}.export-panel{width:380px}.panel-title{margin:0 0 10px;font-size:15px;font-weight:700;color:var(--text-main)}.panel-section{padding:10px 0;border-top:1px solid rgba(118,211,255,.14)}.panel-section:first-of-type{border-top:none;padding-top:0}.form-row{display:grid;grid-template-columns:90px 1fr;grid-gap:8px;gap:8px;align-items:center;margin-bottom:8px}.form-row label{color:var(--text-muted);font-size:13px}.property-button-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.property-button-row .button-dark{flex:1 1 auto;min-width:105px}.elevation-summary-panel{border:1px solid rgba(251,191,36,.35);background:rgba(251,191,36,.075);border-radius:8px;padding:10px}.elevation-summary-header{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}.equipment-panel-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.equipment-panel-subtitle{margin:4px 0 0;color:var(--text-muted);font-size:12px;line-height:1.35}.equipment-upload-actions{display:flex;flex-wrap:wrap;gap:8px}.equipment-upload-actions .button-dark{flex:1 1 auto}.equipment-asset-list{display:flex;flex-direction:column;gap:8px}.equipment-asset-card{display:grid;grid-template-columns:58px 1fr auto;grid-gap:9px;gap:9px;align-items:center;padding:8px;border:1px solid var(--border-subtle);border-radius:10px;background:rgba(255,255,255,.045)}.equipment-asset-preview-wrap{width:58px;height:48px;overflow:hidden;border-radius:8px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.16);display:flex;align-items:center;justify-content:center}.equipment-asset-preview{max-width:100%;max-height:100%;object-fit:contain}.equipment-asset-info{min-width:0;display:flex;flex-direction:column;gap:2px}.equipment-asset-info strong{color:var(--text-main);font-size:13px}.equipment-asset-info span,.equipment-asset-info strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.equipment-asset-info span{color:var(--text-muted);font-size:11px}.layer-panel-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.layer-panel-subtitle{margin:4px 0 0;color:var(--text-muted);font-size:12px;line-height:1.35}.layer-summary-row{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0}.layer-summary-row span{padding:4px 8px;border-radius:999px;background:rgba(85,200,255,.12);border:1px solid rgba(85,200,255,.25);color:var(--text-muted);font-size:11px;font-weight:700}.layer-group-list{display:flex;flex-direction:column;gap:12px}.layer-group{border-top:1px solid var(--border-subtle);padding-top:10px}.layer-group-title{display:flex;justify-content:space-between;gap:8px;align-items:center;margin:0 0 8px;color:var(--text-main);font-size:13px;font-weight:800}.layer-group-title span{color:var(--text-muted);font-size:11px}.layer-item-list{display:flex;flex-direction:column;gap:7px}.layer-item{border:1px solid var(--border-subtle);border-radius:10px;background:rgba(255,255,255,.045);padding:8px;cursor:pointer}.layer-item.selected{border-color:rgba(85,200,255,.85);background:rgba(85,200,255,.12)}.layer-item-main{display:grid;grid-template-columns:36px 1fr;grid-gap:8px;gap:8px;align-items:start}.layer-kind-pill{display:inline-flex;align-items:center;justify-content:center;min-width:34px;height:26px;border-radius:999px;background:rgba(85,200,255,.16);border:1px solid rgba(85,200,255,.35);color:var(--text-main);font-size:11px;font-weight:800}.layer-item-text{min-width:0;display:flex;flex-direction:column;gap:2px}.layer-item-text strong{color:var(--text-main);font-size:13px}.layer-item-text span,.layer-item-text strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.layer-item-text span{color:var(--text-muted);font-size:11px}.layer-item-text .layer-zindex{color:rgba(255,255,255,.52)}.layer-item-controls{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px}.layer-mini-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--border-subtle);border-radius:999px;background:rgba(255,255,255,.06);color:var(--text-muted);font-size:10px;font-weight:800;padding:4px 7px;cursor:pointer}.layer-mini-button:hover{color:var(--text-main);border-color:rgba(85,200,255,.6)}.layer-mini-button.active{color:var(--text-main);background:rgba(85,200,255,.18);border-color:rgba(85,200,255,.55)}.layer-mini-button.danger{color:#ff9b9b;border-color:rgba(255,120,120,.35)}.layer-mini-button:disabled{opacity:.35;cursor:not-allowed}.export-panel-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.export-panel-subtitle{margin:4px 0 0;color:var(--text-muted);font-size:12px;line-height:1.35}.export-summary-pill{display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;padding:4px 8px;border-radius:999px;background:rgba(85,200,255,.14);color:var(--text-main);border:1px solid rgba(85,200,255,.35);font-size:11px;font-weight:800}.export-main-button{width:100%;justify-content:center;margin-bottom:10px}.export-status-box{display:flex;flex-direction:column;gap:4px;color:var(--text-muted);font-size:12px;line-height:1.35;border:1px solid var(--border-subtle);background:rgba(255,255,255,.045);border-radius:8px;padding:8px}.export-status-box strong{color:var(--text-main)}.scale-status-panel{position:absolute;z-index:31;width:330px;background:rgba(5,10,14,.9);border:1px solid var(--border-subtle);border-radius:10px;padding:12px;box-shadow:0 12px 36px rgba(0,0,0,.42);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.scale-status-panel.calibrated{border-color:rgba(85,200,255,.7)}.scale-status-header{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.scale-status-title{margin:2px 0 0;font-size:13px;color:var(--text-main);font-weight:700}.scale-status-grid{display:grid;grid-template-columns:72px 1fr;grid-gap:6px 10px;gap:6px 10px;margin-top:10px;font-size:13px}.scale-status-label{color:var(--text-muted)}.scale-status-value{color:var(--text-main);font-weight:700}.scale-status-detail{margin:10px 0 0;color:var(--text-muted);font-size:12px;line-height:1.35}.scale-status-actions{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap}.scale-formula-box{margin-top:10px;padding:8px;border-radius:8px;background:rgba(255,255,255,.06);border:1px solid var(--border-subtle);color:var(--text-main);font-size:12px;line-height:1.35}.measurement-explanation-box{margin-top:10px;padding:10px;border-radius:8px;background:rgba(85,200,255,.08);border:1px solid rgba(85,200,255,.28);color:var(--text-muted);font-size:12px;line-height:1.4}.measurement-explanation-box p{margin:0 0 8px}.measurement-explanation-box ul{margin:0;padding-left:18px}.measurement-explanation-box li{margin-bottom:5px}.scale-ruler-panel{position:absolute;bottom:235px;z-index:33;width:220px;background:rgba(5,10,14,.88);border:1px solid var(--border-subtle);border-radius:10px;padding:10px;box-shadow:0 10px 28px rgba(0,0,0,.38);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.scale-ruler-label-row{display:flex;justify-content:space-between;gap:8px;align-items:center;margin-bottom:8px}.scale-ruler-label{color:var(--text-main);font-size:12px;font-weight:700}.scale-ruler-factor{color:var(--text-muted);font-size:11px}.scale-ruler-bar{position:relative;height:18px;min-width:60px;max-width:170px;margin-bottom:6px}.scale-ruler-line{left:0;right:0;bottom:5px;height:2px}.scale-ruler-end,.scale-ruler-line{position:absolute;background:var(--text-main)}.scale-ruler-end{bottom:3px;width:2px;height:10px}.scale-ruler-end.left{left:0}.scale-ruler-end.right{right:0}.scale-ruler-values{display:flex;flex-direction:column;gap:2px;color:var(--text-muted);font-size:12px;line-height:1.25}.scale-ruler-values strong{color:var(--text-main)}.draft-controls-panel{position:absolute;left:50%;bottom:18px;transform:translateX(-50%);z-index:34;display:flex;align-items:center;gap:8px;background:rgba(5,10,14,.9);border:1px solid var(--border-subtle);border-radius:999px;padding:8px 10px;box-shadow:0 10px 28px rgba(0,0,0,.38);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.draft-controls-panel .text-muted{font-size:12px}.slider-number-control{display:grid;grid-template-columns:1fr 72px;grid-gap:8px;gap:8px;align-items:center}.slider-control{width:100%;padding-left:0;padding-right:0}.status-bar{position:absolute;left:12px;bottom:12px;z-index:50;max-width:calc(100% - 24px);background:rgba(2,6,8,.82);border:1px solid var(--border-subtle);border-radius:8px;color:var(--text-muted);font-size:13px;padding:7px 10px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.status-bar strong{color:var(--text-main)}pre{white-space:pre-wrap;word-break:break-word;font-size:12px;line-height:1.4;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);border-radius:6px;padding:8px}.hidden{display:none!important}.no-select{-webkit-user-select:none;-moz-user-select:none;user-select:none}.full-size{width:100%;height:100%}.text-muted{color:var(--text-muted)}.text-danger{color:var(--danger)}.text-warning{color:var(--warning)}.map-container.map-tone-normal .maplibregl-canvas{filter:none}.map-container.map-tone-light .maplibregl-canvas{filter:brightness(1.25) contrast(.72) saturate(.55)}.map-container.map-tone-dark .maplibregl-canvas{filter:brightness(.48) contrast(1.08) saturate(.82)}.print-preview-frame{position:absolute;inset:0;z-index:20;display:flex;align-items:center;justify-content:center}.print-preview-frame:before{content:"";position:absolute;inset:0;background:rgba(0,0,0,.52)}.print-preview-window{position:relative;width:min(86vw,calc((100vh - var(--toolbar-height) - 60px) * 1.545));height:min(calc(86vw / 1.545),calc(100vh - var(--toolbar-height) - 60px));max-width:calc(100% - 90px);max-height:calc(100% - 70px);border:2px solid rgba(255,255,255,.88);box-shadow:0 0 0 9999px rgba(0,0,0,.52),0 0 24px rgba(85,200,255,.42);background:transparent}.print-preview-label{position:absolute;bottom:22px;transform:translateX(-50%);padding:7px 11px;border-radius:999px;background:rgba(2,6,8,.82);border:1px solid rgba(255,255,255,.28);color:#ffffff;font-size:12px;letter-spacing:.02em}.options-menu{z-index:80}.options-menu summary{list-style:none;cursor:pointer}.options-menu summary::-webkit-details-marker{display:none}.options-menu-panel{position:absolute;right:0;top:calc(100% + 8px);min-width:140px;display:flex;flex-direction:column;gap:7px;padding:10px;background:rgba(2,6,8,.96);border:1px solid var(--border-strong);border-radius:10px;box-shadow:0 18px 44px rgba(0,0,0,.55);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.options-menu-panel .button-dark{width:100%;justify-content:flex-start;text-align:left}.toolbar-actions-cluster{display:flex;gap:8px;align-items:center}.compact-toolbar-row{min-height:24px;opacity:.84}.collapsed-side-rail{position:absolute;right:0;top:84px;z-index:42;width:42px;display:flex;flex-direction:column;gap:8px;align-items:stretch;padding:8px 5px;background:rgba(5,10,14,.86);border:1px solid var(--border-subtle);border-right:none;border-radius:10px 0 0 10px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.rail-tab{min-height:68px;padding:8px 4px;writing-mode:vertical-rl;transform:rotate(180deg);color:var(--text-main);background:transparent;border:1px solid rgba(118,211,255,.28);border-radius:8px;cursor:pointer;font-size:12px;letter-spacing:.04em}.rail-tab:hover{border-color:var(--border-strong);background:rgba(85,200,255,.12)}.scale-status-panel{right:auto;bottom:52px;width:260px;padding:10px}.scale-status-grid{grid-template-columns:58px 1fr;gap:4px 8px;margin-top:8px}.scale-status-label,.scale-status-title,.scale-status-value{font-size:12px}.scale-ruler-panel{right:auto;bottom:238px;width:190px}.maplibregl-ctrl-bottom-left{left:14px!important;bottom:10px!important}.maplibregl-ctrl-bottom-left .maplibregl-ctrl{margin:0!important}.maplibregl-ctrl-attrib,.maplibregl-ctrl-attrib-button{display:none!important}.coordinate-popup{position:absolute;left:18px;top:18px;z-index:95;width:330px;background:rgba(5,10,14,.94);border:1px solid rgba(85,200,255,.55);border-radius:12px;padding:12px;box-shadow:0 14px 38px rgba(0,0,0,.48);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);pointer-events:auto}.coordinate-popup-header{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}.coordinate-grid{display:grid;grid-template-columns:78px 1fr;grid-gap:7px 10px;gap:7px 10px;align-items:center;margin-bottom:12px;color:var(--text-muted);font-size:12px}.coordinate-grid code{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-main);background:rgba(255,255,255,.07);border:1px solid var(--border-subtle);border-radius:6px;padding:5px 7px}.button-dark.compact{min-height:24px;padding:3px 8px}.button-dark.full-width{width:100%}.collapsed-side-rail,.coordinate-popup,.equipment-upload-panel,.export-panel,.layer-panel,.options-menu-panel,.properties-panel,.scale-ruler-panel,.scale-status-panel{pointer-events:auto}.equipment-upload-panel,.export-panel,.layer-panel,.properties-panel{z-index:90}.coordinate-popup button,.equipment-upload-panel button,.equipment-upload-panel input,.equipment-upload-panel select,.equipment-upload-panel textarea,.export-panel button,.export-panel input,.export-panel select,.export-panel textarea,.layer-panel button,.layer-panel input,.layer-panel select,.layer-panel textarea,.properties-panel button,.properties-panel input,.properties-panel select,.properties-panel textarea{pointer-events:auto}input[type=range]{cursor:pointer;touch-action:none}input[type=number],input[type=text],select,textarea{-webkit-user-select:text;-moz-user-select:text;user-select:text}.scale-status-panel{left:14px;bottom:54px}.scale-ruler-panel{left:14px;bottom:245px}.maplibregl-ctrl-bottom-left .maplibregl-ctrl-scale{margin:0 0 12px 14px!important}.panel-dock{top:0;right:0;bottom:0;z-index:120}.panel-dock>.equipment-upload-panel,.panel-dock>.export-panel,.panel-dock>.layer-panel,.panel-dock>.properties-panel{pointer-events:auto}.panel-collapse-button{position:absolute;top:18px;right:326px;z-index:70;width:28px;height:42px;border-radius:8px 0 0 8px;border:1px solid rgba(118,211,255,.36);border-right:none;background:rgba(5,10,14,.92);color:#ffffff;cursor:pointer;pointer-events:auto}.panel-collapse-button:hover{background:rgba(85,200,255,.18)}.print-preview-frame{z-index:38;pointer-events:none;display:block}.print-preview-window{position:absolute;max-width:none;max-height:none;cursor:move;pointer-events:auto}.print-preview-resize-handle{position:absolute;right:-9px;bottom:-9px;width:18px;height:18px;border-radius:50%;border:2px solid rgba(255,255,255,.95);background:rgba(85,200,255,.96);cursor:nwse-resize;box-shadow:0 0 14px rgba(85,200,255,.65)}.print-preview-label{left:50%;bottom:-42px}.maplibregl-control-container,.maplibregl-ctrl-bottom-left,.maplibregl-ctrl-bottom-right,.maplibregl-ctrl-top-left,.maplibregl-ctrl-top-right{position:relative;z-index:55!important;pointer-events:auto!important}.coordinate-popup,.maplibregl-ctrl-group,.maplibregl-ctrl-group button,.options-menu,.options-menu-panel,.panel-dock,.top-toolbar{pointer-events:auto!important}.coordinate-popup,.equipment-upload-panel,.export-panel,.layer-panel,.properties-panel{z-index:120!important}.equipment-upload-panel button,.equipment-upload-panel input,.equipment-upload-panel select,.equipment-upload-panel textarea,.export-panel button,.export-panel input,.export-panel select,.export-panel textarea,.layer-panel button,.layer-panel input,.layer-panel select,.layer-panel textarea,.properties-panel button,.properties-panel input,.properties-panel select,.properties-panel textarea,.top-toolbar button,.top-toolbar input,.top-toolbar select,.top-toolbar summary{position:relative;z-index:130!important;pointer-events:auto!important}input[type=range]{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto;cursor:ew-resize;touch-action:pan-x;-webkit-user-select:none;-moz-user-select:none;user-select:none}input[type=range]::-webkit-slider-thumb{cursor:-webkit-grab;cursor:grab}input[type=range]::-webkit-slider-thumb:active{cursor:-webkit-grabbing;cursor:grabbing}input[type=number],input[type=text],textarea{cursor:text;-webkit-user-select:text;-moz-user-select:text;user-select:text}.panel-dock{position:absolute;top:14px;right:14px;bottom:14px;z-index:125;width:auto;pointer-events:none}.panel-chrome{width:min(390px,calc(100vw - 48px));max-height:calc(100% - 0px);display:flex;flex-direction:column;gap:0;pointer-events:auto}.panel-chrome-header{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:36px;padding:5px 8px;background:rgba(5,10,14,.94);border:1px solid rgba(118,211,255,.28);border-bottom:none;border-radius:12px 12px 0 0;color:var(--text-main);box-shadow:0 10px 28px rgba(0,0,0,.36);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.panel-tab-bar{display:flex;gap:2px;flex:1 1;min-width:0}.panel-tab{flex:1 1;padding:4px 6px;border:1px solid rgba(118,211,255,.22);border-radius:6px;background:transparent;color:var(--text-muted);cursor:pointer;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.panel-tab:hover{color:var(--text-main);background:rgba(85,200,255,.1);border-color:var(--border-subtle)}.panel-tab.active{color:#ffffff;background:rgba(85,200,255,.18);border-color:var(--border-strong);font-weight:600}.panel-inline-collapse-button{min-height:24px;padding:3px 8px;border-radius:7px;border:1px solid rgba(118,211,255,.32);background:rgba(255,255,255,.05);color:var(--text-muted);cursor:pointer;font-size:11px}.panel-inline-collapse-button:hover{color:var(--text-main);background:rgba(85,200,255,.14);border-color:var(--border-strong)}.panel-chrome>.equipment-upload-panel,.panel-chrome>.export-panel,.panel-chrome>.layer-panel,.panel-chrome>.properties-panel{position:static;right:auto;top:auto;width:100%;max-height:calc(100vh - 185px);border-top-left-radius:0;border-top-right-radius:0;pointer-events:auto}.panel-chrome>.properties-panel{width:300px;align-self:flex-end}.collapsed-side-rail .rail-tab.active{border-color:var(--border-strong);background:rgba(85,200,255,.18);color:#ffffff}.panel-collapse-button{display:none}.options-menu{z-index:260!important}.options-menu-panel{z-index:270!important}.panel-dock{top:154px!important;bottom:14px!important;z-index:150!important}.panel-chrome{max-height:calc(100vh - 172px)!important}.panel-chrome>.equipment-upload-panel,.panel-chrome>.export-panel,.panel-chrome>.layer-panel,.panel-chrome>.properties-panel{max-height:calc(100vh - 218px)!important}.slider-control.native-range-control,input[type=range].native-range-control{-webkit-appearance:none;-moz-appearance:none;appearance:none;height:22px;padding:0;border:none;border-radius:999px;cursor:ew-resize;touch-action:none}input[type=range].native-range-control::-webkit-slider-runnable-track{height:6px;border-radius:999px;background:transparent}input[type=range].native-range-control::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:24px;height:24px;margin-top:-9px;border-radius:50%;border:2px solid rgba(255,255,255,.95);background:#ffffff;box-shadow:0 2px 8px rgba(0,0,0,.55);cursor:-webkit-grab;cursor:grab}input[type=range].native-range-control::-webkit-slider-thumb:active{cursor:-webkit-grabbing;cursor:grabbing}input[type=range].native-range-control::-moz-range-track{height:6px;border-radius:999px;background:rgba(255,255,255,.72)}input[type=range].native-range-control::-moz-range-progress{height:6px;border-radius:999px;background:var(--accent)}input[type=range].native-range-control::-moz-range-thumb{width:22px;height:22px;border-radius:50%;border:2px solid rgba(255,255,255,.95);background:#ffffff;box-shadow:0 2px 8px rgba(0,0,0,.55);cursor:grab}.properties-panel input[type=number],.properties-panel input[type=text],.top-toolbar input[type=number],.top-toolbar input[type=text]{-webkit-user-select:text!important;-moz-user-select:text!important;user-select:text!important;cursor:text!important;pointer-events:auto!important}body.export-capture-mode .collapsed-side-rail,body.export-capture-mode .coordinate-popup,body.export-capture-mode .draft-controls-panel,body.export-capture-mode .equipment-upload-panel,body.export-capture-mode .export-panel,body.export-capture-mode .layer-panel,body.export-capture-mode .maplibregl-control-container,body.export-capture-mode .maplibregl-ctrl,body.export-capture-mode .options-menu,body.export-capture-mode .options-menu-panel,body.export-capture-mode .panel-dock,body.export-capture-mode .print-preview-frame,body.export-capture-mode .properties-panel,body.export-capture-mode .scale-status-panel,body.export-capture-mode .status-bar,body.export-capture-mode .top-toolbar{display:none!important}body.export-capture-mode .scale-ruler-panel{z-index:90!important}body.export-capture-mode .export-surface,body.export-capture-mode .map-container,body.export-capture-mode .overlay-container{inset:0!important;width:100%!important;height:100%!important}.auth-shell{min-height:100vh;display:grid;place-items:center;padding:24px;background:#111820;color:var(--text-main)}.auth-card{width:min(420px,100%);border:1px solid rgba(255,255,255,.16);border-radius:8px;background:rgba(5,10,14,.94);padding:24px;box-shadow:0 20px 70px rgba(0,0,0,.42)}.auth-card h1{margin:0 0 8px;font-size:28px}.auth-message,.auth-muted{color:var(--text-muted);margin:0 0 16px}.auth-warning{margin:0 0 14px;color:#f8c36a;font-size:12px;line-height:1.35}.auth-warning.compact{margin:10px 0 0;font-size:11px}.auth-admin-form,.auth-form{display:grid;grid-gap:10px;gap:10px}.auth-session-bar{flex-shrink:0;display:flex;align-items:center;justify-content:flex-end;gap:8px;width:100%;padding:3px 10px;border-bottom:1px solid rgba(255,255,255,.14);background:rgba(5,10,14,.95);color:var(--text-main);font-size:12px;pointer-events:none;z-index:1200}.auth-session-bar .google-usage-banner,.auth-session-bar button,.auth-session-bar details,.auth-session-bar summary,.auth-session-bar>span{pointer-events:auto}.google-usage-banner{display:flex;align-items:center;gap:8px;min-height:24px;max-width:min(780px,56vw);padding:2px 8px;border:1px solid rgba(251,191,36,.5);border-radius:999px;color:#fde68a;background:rgba(251,191,36,.09);overflow:hidden;white-space:nowrap}.google-usage-banner strong{color:#fff2b8}.google-usage-banner span{color:#f8d779}.auth-admin-menu{position:relative}.auth-admin-panel{position:absolute;right:0;top:calc(100% + 8px);width:min(360px,calc(100vw - 24px));padding:12px;border:1px solid rgba(255,255,255,.16);border-radius:8px;background:rgba(5,10,14,.97);box-shadow:0 20px 60px rgba(0,0,0,.42);z-index:1200}.auth-user-list{display:grid;grid-gap:6px;gap:6px;margin-top:12px}.auth-user-row{display:flex;align-items:center;justify-content:space-between;gap:8px;color:var(--text-main)}.auth-json-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.auth-file-input{display:none}.toolbar-checkbox{display:inline-flex;align-items:center;gap:6px;min-height:30px;padding:0 8px;border:1px solid rgba(255,255,255,.14);border-radius:7px;background:rgba(5,10,14,.62);color:var(--text-main);font-size:12px;white-space:nowrap}@media print{@page{size:landscape;margin:0}body,html{width:100%;height:100%;background:#ffffff;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}.equipment-upload-panel,.export-panel,.layer-panel,.maplibregl-control-container,.maplibregl-ctrl,.properties-panel,.status-bar,.top-toolbar{display:none!important}.app-shell,.editor-shell,.export-surface,.map-container,.overlay-container{width:100vw!important;height:100vh!important}.editor-shell,.export-surface{position:fixed!important;inset:0!important}}.maplibregl-ctrl-group{background:rgba(5,10,14,.88)!important;border:1px solid var(--border-subtle)!important}.maplibregl-ctrl-group button{filter:invert(1)}.maplibregl-ctrl-attrib{background:rgba(5,10,14,.72)!important;color:var(--text-muted)!important}.maplibregl-ctrl-attrib a{color:var(--accent)!important}.maplibregl-ctrl-scale{background:rgba(5,10,14,.72)!important;color:#ffffff!important;border-color:#ffffff!important;font-weight:700}.panel-dock-floating{position:fixed!important;z-index:240!important;width:auto!important;max-width:calc(100vw - 16px);height:auto!important;max-height:calc(100vh - 16px);right:auto!important;bottom:auto!important;pointer-events:none}.draggable-panel-header{cursor:-webkit-grab;cursor:grab;-webkit-user-select:none;-moz-user-select:none;user-select:none;touch-action:none}.draggable-panel-header:active{cursor:-webkit-grabbing;cursor:grabbing}.panel-drag-hint{margin-left:auto;color:var(--text-muted);font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;opacity:.72}.panel-chrome-actions{display:flex;align-items:center;gap:6px}.panel-dock-floating .panel-chrome{max-height:calc(100vh - 16px)!important}.panel-dock-floating .panel-chrome>.equipment-upload-panel,.panel-dock-floating .panel-chrome>.export-panel,.panel-dock-floating .panel-chrome>.layer-panel,.panel-dock-floating .panel-chrome>.properties-panel{max-height:calc(100vh - 72px)!important}.panel-chrome{resize:both;overflow:hidden;min-width:300px;min-height:220px;max-width:calc(100vw - 28px)!important}.panel-chrome>.equipment-upload-panel,.panel-chrome>.export-panel,.panel-chrome>.layer-panel,.panel-chrome>.properties-panel{flex:1 1 auto;min-height:0;overflow:auto!important;overscroll-behavior:contain;resize:none;padding-bottom:18px}.panel-chrome>.properties-panel{width:100%;align-self:stretch}.equipment-upload-panel button,.equipment-upload-panel input,.equipment-upload-panel select,.equipment-upload-panel textarea,.export-panel button,.export-panel input,.export-panel select,.export-panel textarea,.layer-panel button,.layer-panel input,.layer-panel select,.layer-panel textarea,.panel-chrome button,.panel-chrome input,.panel-chrome select,.panel-chrome textarea,.properties-panel button,.properties-panel input,.properties-panel select,.properties-panel textarea{pointer-events:auto!important;touch-action:auto}.export-panel input[type=range],.panel-chrome input[type=range],.properties-panel input[type=range]{touch-action:none}.form-row input[type=number],.form-row input[type=text],.form-row textarea{width:100%;min-width:0}.form-row textarea{min-height:72px}.form-row input[type=color]{width:100%;min-width:72px;padding:2px}.slider-number-control{min-width:0}.slider-number-control .input-small{width:76px}input[type=number],input[type=search],input[type=text],textarea{-webkit-user-select:text!important;-moz-user-select:text!important;user-select:text!important}.number-range-field{display:grid;grid-template-columns:76px 1fr;grid-gap:8px;gap:8px;align-items:center;min-width:0}.number-range-hint{color:var(--text-muted);font-size:11px;line-height:1.2;white-space:normal}.top-toolbar{z-index:500!important}.options-menu{position:relative;z-index:900!important}.options-menu-panel{z-index:1000!important}.equipment-upload-panel,.export-panel,.layer-panel,.panel-chrome,.panel-dock,.panel-dock-floating,.properties-panel{z-index:240!important}@media (max-width:760px){.app-shell{min-width:0}.top-toolbar{max-height:42vh;overflow:auto}.input-address{width:100%;max-width:none}.toolbar-row{white-space:normal}.panel-dock{right:8px!important;left:8px;width:auto;top:144px!important}.panel-chrome,.panel-chrome>.equipment-upload-panel,.panel-chrome>.export-panel,.panel-chrome>.layer-panel,.panel-chrome>.properties-panel{width:100%!important}.panel-chrome{min-width:280px;max-height:calc(100vh - 160px)!important}.panel-chrome>.equipment-upload-panel,.panel-chrome>.export-panel,.panel-chrome>.layer-panel,.panel-chrome>.properties-panel{max-height:calc(100vh - 220px)!important}.form-row{grid-template-columns:82px 1fr}.scale-ruler-panel,.scale-status-panel{max-width:calc(100vw - 28px)}}.export-include-section{padding-bottom:8px}.export-include-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:8px;gap:8px}.export-include-toggle{display:flex;align-items:center;justify-content:space-between;min-width:0;gap:8px;padding:8px 9px;border:1px solid rgba(118,211,255,.14);border-radius:9px;background:rgba(255,255,255,.035);color:var(--text-muted);font-size:12px;line-height:1.15;cursor:pointer}.export-include-toggle span{min-width:0;overflow-wrap:anywhere}.export-include-toggle input[type=checkbox]{flex:0 0 auto;margin:0}.compact-help-text{margin-top:9px;margin-bottom:0;font-size:12px;line-height:1.35}@media (max-width:520px){.export-include-grid{grid-template-columns:1fr}}.panel-dock .panel-chrome>.export-panel{max-height:calc(100dvh - 245px)!important;overflow-y:auto!important;padding-bottom:0!important}.export-action-section{position:-webkit-sticky;position:sticky;bottom:0;z-index:5;margin:10px -12px -12px;padding:12px;border-top:1px solid rgba(118,211,255,.22);background:rgba(5,10,14,.97);box-shadow:0 -12px 24px rgba(0,0,0,.38)}.export-action-section .export-main-button{width:100%}@media (max-height:760px){.panel-dock .panel-chrome>.export-panel{max-height:calc(100dvh - 230px)!important}.export-panel .panel-section{padding-top:8px;padding-bottom:8px}}.capture-selection-layer{position:absolute;inset:0;z-index:60;cursor:crosshair;background:rgba(0,0,0,.08);-webkit-user-select:none;-moz-user-select:none;user-select:none;touch-action:none}.capture-selection-help{position:absolute;left:50%;top:16px;transform:translateX(-50%);padding:8px 12px;border:1px solid rgba(255,255,255,.22);border-radius:999px;background:rgba(8,12,18,.88);color:#f8fafc;font-size:12px;font-weight:650;box-shadow:0 10px 24px rgba(0,0,0,.28);pointer-events:none}.capture-selection-rect{position:absolute;border:2px dashed #ffffff;outline:2px solid rgba(239,68,68,.85);background:rgba(239,68,68,.12);box-shadow:0 0 0 9999px rgba(0,0,0,.18);pointer-events:none}.panel-dock{top:12px!important;right:14px!important;bottom:12px!important;max-height:calc(100% - 24px)!important}.panel-chrome{width:min(400px,calc(100vw - 32px))!important;max-height:100%!important;min-height:180px;display:flex!important;flex-direction:column!important}.panel-dock:not(.panel-dock-floating) .panel-chrome{height:100%!important}.panel-chrome-header{flex:0 0 auto}.panel-chrome>.equipment-upload-panel,.panel-chrome>.export-panel,.panel-chrome>.layer-panel,.panel-chrome>.properties-panel{flex:1 1 auto!important;min-height:0!important;max-height:none!important;overflow-y:auto!important;overflow-x:hidden!important}.panel-dock-floating,.panel-dock-floating .panel-chrome{max-height:calc(100dvh - 16px)!important}.panel-dock-floating .panel-chrome>.equipment-upload-panel,.panel-dock-floating .panel-chrome>.export-panel,.panel-dock-floating .panel-chrome>.layer-panel,.panel-dock-floating .panel-chrome>.properties-panel{max-height:none!important}.options-menu-panel{max-height:min(420px,calc(100dvh - 96px));overflow-y:auto}.auth-admin-panel{max-height:calc(100dvh - 72px);overflow-y:auto}@media (max-width:760px){.panel-dock{top:8px!important;left:8px!important;right:8px!important;bottom:8px!important;max-height:calc(100% - 16px)!important}.panel-chrome{width:100%!important;min-width:0!important}}