:root{color:#e7f4fb;background:#0b1720;--panel-bg: rgba(3, 19, 31, .88);--panel-bg-strong: rgba(4, 28, 45, .94);--panel-border: rgba(81, 199, 238, .28);--panel-border-soft: rgba(101, 184, 218, .16);--accent: #84e8dc;--accent-2: #49b8ff;--warning: #ffd166;--text-soft: #91b2c1;--ui-opacity: .74;--ui-opacity-soft: .52;--ui-opacity-strong: .83;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}html,body,#root{width:100%;height:100%;margin:0}body{min-width:320px;overflow:hidden}button,input,select,textarea{font:inherit}button{cursor:pointer}.gis-shell{position:relative;width:100%;height:100vh;overflow:hidden;background:#0b1720}.login-shell{display:grid;place-items:center;width:100%;min-height:100vh;padding:24px;color:#e7f4fb;background:linear-gradient(#07121db8,#07121ddb),url(https://images.unsplash.com/photo-1518005020951-eccb494ad742?auto=format&fit=crop&w=1800&q=80) center / cover}.login-card{width:min(420px,100%);border:1px solid rgba(80,195,245,.28);border-radius:8px;padding:26px;background:linear-gradient(180deg,#0d3246e0,#081824eb),#081824e6;box-shadow:0 18px 48px #0000006b,inset 0 0 28px #33c1ff14;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.login-brand{display:grid;gap:12px;justify-items:center;margin-bottom:24px;color:#fff;text-align:center;font-size:22px;font-weight:900}.login-form,.login-form label{display:grid;gap:10px}.login-form{gap:14px}.login-form label span{color:#a9c5d4;font-size:13px;font-weight:800}.login-form small{color:#8dacbd;text-align:center}.login-error{margin:0;border:1px solid rgba(255,107,107,.36);border-radius:7px;padding:8px 10px;color:#ffd6d6;background:#7e202c61;font-size:13px}.gis-map,.cesium-stage{position:absolute;inset:0}.cesium-stage{background:#e7edf0}.map-loading{position:absolute;inset:0;z-index:2;display:grid;place-items:center;color:#dff7ff;background:#0a1720b8;font-weight:800}.map-loading.error{padding:0 24px;color:#ffd6d6;text-align:center}.top-banner{position:absolute;top:0;left:0;right:0;z-index:10;display:grid;grid-template-columns:minmax(360px,1fr) minmax(360px,auto) minmax(620px,1.15fr);align-items:center;min-height:68px;padding:0 20px;color:#dff4fb;background:linear-gradient(90deg,#1055766b,#0b708447 45%,#4a266833),radial-gradient(circle at 50% -12%,rgba(132,232,220,.26),transparent 44%),linear-gradient(100deg,rgba(3,22,35,var(--ui-opacity-strong)),rgba(8,55,80,var(--ui-opacity)) 48%,rgba(3,18,29,var(--ui-opacity-strong))),rgba(8,24,36,var(--ui-opacity));border-bottom:1px solid rgba(92,210,255,.26);box-shadow:0 10px 34px #00000047,inset 0 -1px #43cbff33}.banner-left,.banner-center,.banner-right{display:flex;align-items:center;gap:14px;min-width:0}.banner-center{justify-content:center}.banner-right{justify-content:flex-end}.brand-block{display:inline-flex;align-items:center;gap:10px;min-width:0}.brand-block img,.login-brand img{width:38px;height:38px;object-fit:contain;filter:drop-shadow(0 0 14px rgba(108,223,255,.42))}.brand-block span{display:grid;gap:1px;min-width:0}.brand-block b{overflow:hidden;color:#fff;font-size:18px;line-height:1.1;text-overflow:ellipsis;white-space:nowrap}.brand-block small{overflow:hidden;color:#8fb7c7;font-size:11px;text-overflow:ellipsis;white-space:nowrap}.banner-center span,.banner-center b,.user-chip{display:inline-flex;align-items:center;gap:6px;color:#a9c5d4;font-size:13px;white-space:nowrap}.banner-center b{color:#e7f7ff;animation:statusPulse 2.8s ease-in-out infinite}@keyframes statusPulse{0%,to{text-shadow:0 0 0 rgba(132,232,220,0)}50%{text-shadow:0 0 12px rgba(132,232,220,.38)}}.language-switch,.banner-right button,.user-chip{min-height:36px;border:1px solid rgba(92,198,242,.22);border-radius:8px;color:#dff4fb;background:rgba(7,25,38,var(--ui-opacity))}.language-switch{display:inline-flex;align-items:center;gap:7px;padding:0 10px}.language-switch select{width:auto;min-height:30px;border:0;color:#dff4fb;background:transparent}.language-switch option{color:#17212b}.banner-right button{display:inline-flex;align-items:center;justify-content:center;width:36px}.address-search{display:grid;grid-template-columns:16px minmax(150px,210px) auto;align-items:center;gap:7px;min-height:36px;border:1px solid rgba(92,198,242,.22);border-radius:8px;padding:0 7px;background:rgba(7,25,38,var(--ui-opacity))}.address-search input{min-height:28px;border:0;padding:0;background:transparent}.address-search button{width:auto;min-height:28px;padding:0 9px;border-radius:6px;color:#06211f;background:#84e8dc;font-size:12px;font-weight:900}.user-chip{padding:0 10px;max-width:148px}.user-chip>span{display:grid;gap:0;min-width:0}.user-chip b,.user-chip small{overflow:hidden;max-width:92px;text-overflow:ellipsis;white-space:nowrap}.user-chip b{color:#dff4fb;font-size:13px}.user-chip small{color:#87a9b8;font-size:10px}.side-panel{position:absolute;top:86px;bottom:18px;z-index:9;color:#e9f7fc;transition:transform .24s ease}.left-panel{left:18px;width:384px}.right-panel{right:18px;width:488px}.left-panel:not(.open){transform:translate(calc(-100% - 18px))}.right-panel:not(.open){transform:translate(calc(100% + 18px))}.side-panel:not(.open){pointer-events:none}.side-panel:not(.open) .drawer-toggle{pointer-events:auto}.side-panel:not(.open) .panel-content{visibility:hidden}.drawer-toggle{position:absolute;top:0;left:-50px;display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;border:1px solid rgba(80,195,245,.36);border-radius:8px;color:#b9edff;background:linear-gradient(150deg,rgba(9,70,93,var(--ui-opacity-strong)),rgba(4,20,32,var(--ui-opacity-strong)));box-shadow:0 0 20px #1db3ff29}.left-panel .drawer-toggle{left:auto;right:-50px}.right-panel .drawer-toggle{left:-50px;right:auto}.panel-content{display:grid;gap:12px;max-height:100%;overflow-y:auto;padding:0 2px 2px 0;scrollbar-width:thin;scrollbar-color:rgba(132,232,220,.65) rgba(255,255,255,.06)}.left-panel .drawer-section[data-section-id=settings]{order:3}.left-panel .drawer-section[data-section-id=logs]{order:4}.drawer-section{border:1px solid var(--panel-border);border-radius:8px;overflow:hidden;background:linear-gradient(132deg,#0f4e6c38,#3c295c1a 48%,#03121d14),linear-gradient(150deg,rgba(9,45,67,var(--ui-opacity)),rgba(3,19,31,var(--ui-opacity-strong)));box-shadow:0 16px 38px #00000047,inset 0 0 24px #33c1ff0f;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.drawer-heading{display:grid;grid-template-columns:22px minmax(0,1fr) auto 18px;align-items:center;gap:9px;width:100%;min-height:46px;border:0;border-bottom:1px solid rgba(80,195,245,.18);padding:0 13px;color:#e6f8ff;background:linear-gradient(95deg,#106080f5,#08344deb 56%,#071b2cf5),radial-gradient(circle at 12% 0%,rgba(132,232,220,.28),transparent 42%);text-align:left;font-weight:900}.drawer-heading-info{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;color:var(--accent);border:1px solid rgba(132,232,220,.22);border-radius:999px;background:#84e8dc14}.drawer-heading>span:not(.drawer-heading-info){min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.drawer-body{display:grid;gap:10px;padding:12px}.workbench-header{display:grid;gap:6px;border:1px solid rgba(132,232,220,.34);border-radius:8px;padding:13px;background:linear-gradient(135deg,rgba(27,134,151,var(--ui-opacity-soft)),rgba(13,56,83,var(--ui-opacity)) 42%,rgba(5,23,36,var(--ui-opacity-strong))),radial-gradient(circle at 86% 0%,rgba(255,209,102,.18),transparent 32%);box-shadow:0 18px 46px #0000004d,inset 0 1px #ffffff0f;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.panel-eyebrow{color:var(--accent);font-size:11px;font-weight:900;letter-spacing:0}.workbench-header strong{overflow:hidden;color:#fff;font-size:17px;text-overflow:ellipsis;white-space:nowrap}.workbench-header>small{color:var(--text-soft);font-size:12px}.workbench-meta{display:grid;grid-template-columns:.8fr 1fr 1.35fr;gap:7px;margin-top:4px}.workbench-meta span{display:grid;gap:2px;min-width:0;border:1px solid rgba(255,255,255,.08);border-radius:7px;padding:8px;background:#02111c75}.workbench-meta b{overflow:hidden;color:#fff;font-size:14px;text-overflow:ellipsis;white-space:nowrap}.workbench-meta small{color:#8fb0bf;font-size:10px;font-weight:800}.workbench-status-grid{display:grid;grid-template-columns:.7fr 1.3fr;gap:7px;min-width:0}.workbench-status-grid span{display:grid;gap:2px;min-width:0;border:1px solid rgba(132,232,220,.14);border-radius:7px;padding:8px;background:#ffffff0e}.workbench-status-grid small{color:#8fb0bf;font-size:10px;font-weight:800}.workbench-status-grid b{overflow:hidden;color:#fff;font-size:13px;text-overflow:ellipsis;white-space:nowrap}.project-form{display:grid;gap:9px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}.field-control{display:grid;gap:5px;min-width:0;color:#dceff7}.field-control span{overflow:hidden;color:#8fb4c2;font-size:11px;font-weight:800;text-overflow:ellipsis;white-space:nowrap}input,select,textarea{width:100%;border:1px solid rgba(111,200,238,.22);border-radius:7px;outline:0;color:#edf9ff;background:linear-gradient(180deg,rgba(9,37,55,var(--ui-opacity)),rgba(2,17,28,var(--ui-opacity)))}input,select{min-height:38px;padding:0 10px}textarea{min-height:58px;resize:none;padding:9px 10px}input::placeholder,textarea::placeholder{color:#6f8da0}select option{color:#17212b}.primary-action,.button-pair button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:38px;border:0;border-radius:7px;color:#06211f;background:linear-gradient(135deg,#8cf0e5,#54c7ff);font-weight:900}.primary-action:disabled{cursor:default;opacity:.58}.primary-action.active,.button-pair button.active{background:#ffd166}.project-list,.file-list,.point-list,.layer-list{display:grid;gap:7px;overflow:hidden}.project-list{max-height:260px}.file-list,.point-list,.layer-list{max-height:156px}.scroll-list{overflow-y:auto;padding-right:2px;scrollbar-width:thin;scrollbar-color:rgba(132,232,220,.65) rgba(255,255,255,.06)}.project-list-tall{max-height:420px}.asset-list-tall{max-height:260px}.operation-log-list{display:grid;gap:7px;max-height:150px}.operation-log-item{display:grid;gap:3px;border-left:3px solid rgba(132,232,220,.6);border-radius:6px;padding:7px 9px;background:#ffffff0b}.operation-log-item.success{border-left-color:#84e8dc}.operation-log-item.warn{border-left-color:#ffd166}.operation-log-item.error{border-left-color:#ff6b6b}.operation-log-item small{color:#86a7b9;font-size:11px}.operation-log-item b{overflow:hidden;color:#dff8ff;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.settings-panel{display:grid;gap:10px}.settings-note{display:grid;gap:4px;border:1px solid rgba(132,232,220,.18);border-radius:6px;padding:9px;background:#84e8dc0f}.settings-note b,.settings-resource-header span{color:#e9fbff;font-size:12px}.settings-note span{color:#91b2c1;font-size:11px;line-height:1.45}.settings-color-row{display:grid;grid-template-columns:1fr 1fr;gap:9px}.settings-color-row input[type=color]{min-height:36px;padding:4px}.settings-resource-header{display:flex;align-items:center;justify-content:space-between;gap:8px}.settings-resource-header button,.settings-delete-button,.settings-reset-button{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid rgba(111,200,238,.16);border-radius:6px;min-height:30px;padding:0 9px;color:#dceff7;background:#ffffff12;font-size:12px;font-weight:900}.settings-resource-list{display:grid;gap:9px;max-height:380px;overflow:auto;padding-right:2px}.settings-resource-item{display:grid;gap:8px;border:1px solid rgba(111,200,238,.16);border-radius:8px;padding:9px;background:linear-gradient(135deg,#ffffff0f,#ffffff06),rgba(5,21,34,var(--ui-opacity-soft))}.settings-delete-button{justify-self:end;color:#ffb7b7}.settings-actions{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px}.settings-reset-button{color:#ffe0a3}.list-controls{display:grid;gap:8px}.compact-list-controls{grid-template-columns:minmax(0,1fr) auto;align-items:center}.compact-list-controls .compact-actions,.compact-list-controls .primary-action{grid-column:1 / -1}.search-box,.sort-box{display:grid;grid-template-columns:16px minmax(0,1fr);align-items:center;gap:7px;border:1px solid rgba(111,200,238,.18);border-radius:7px;padding:0 9px;background:rgba(3,18,29,var(--ui-opacity-soft))}.search-box input,.sort-box select{min-height:34px;border:0;padding:0;background:transparent}.sort-toggle-group{display:inline-grid;grid-template-columns:repeat(4,32px);gap:5px}.sort-toggle-group button{display:inline-flex;align-items:center;justify-content:center;gap:2px;min-height:34px;border:1px solid rgba(111,200,238,.18);border-radius:7px;color:#bdd3df;background:rgba(3,18,29,var(--ui-opacity-soft));font-size:11px;font-weight:900}.sort-toggle-group button.active{border-color:#84e8dc9e;color:#06211f;background:linear-gradient(135deg,#8cf0e5,#54c7ff)}.sort-toggle-group button span{line-height:1}.compact-actions button{min-height:32px;font-size:12px}.project-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;min-height:66px;border:1px solid rgba(111,200,238,.18);border-radius:7px;padding:10px;color:#dceff7;background:linear-gradient(120deg,rgba(11,55,77,var(--ui-opacity-soft)),rgba(3,20,32,var(--ui-opacity)));text-align:left}.project-item.active{border-color:#84e8dcc7;background:linear-gradient(120deg,rgba(24,119,137,var(--ui-opacity-soft)),rgba(10,50,70,var(--ui-opacity)));box-shadow:inset 3px 0 0 var(--accent),0 8px 24px #0000002e}.project-item strong,.file-list b,.point-list b{display:block;min-width:0;overflow:hidden;color:#fff;font-size:13px;text-overflow:ellipsis;white-space:nowrap}.project-item small,.file-list small,.point-list small{display:block;margin-top:3px;color:#88a8ba;font-size:12px}.project-item i{display:inline-flex;align-items:center;justify-content:center;min-width:38px;min-height:24px;border-radius:999px;color:#07211f;background:#84e8dc;font-size:11px;font-style:normal;font-weight:900}.stage-tabs{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:5px}.stage-tabs button{min-height:32px;border:0;border-radius:6px;color:#93b3c4;background:#ffffff0f;font-size:12px;font-weight:900}.stage-tabs button.active{color:#06211f;background:#84e8dc}.upload-zone{display:grid;place-items:center;gap:7px;min-height:76px;border:1px dashed rgba(132,232,220,.48);border-radius:8px;color:#bfeef5;background:#03121d6b;text-align:center;font-size:13px}.upload-zone small{color:#82a7b8;font-size:11px;line-height:1.35}.upload-zone.busy{opacity:.72;pointer-events:none}.upload-zone input{display:none}.upload-meta{display:grid;gap:9px}.upload-type-note{color:#90b7c7;font-size:11px;line-height:1.45}.upload-placement{display:grid;gap:7px;border:1px solid rgba(111,200,238,.16);border-radius:7px;padding:8px;background:rgba(3,18,29,var(--ui-opacity-soft))}.upload-placement button{min-height:34px}.upload-state{display:grid;gap:4px;border:1px solid rgba(132,232,220,.28);border-radius:7px;padding:8px 10px;color:#dffbff;background:#0c434e52;font-size:12px}.upload-state small{color:#91bdca}.upload-progress{position:relative;min-height:18px;border:1px solid rgba(132,232,220,.28);border-radius:999px;overflow:hidden;background:#ffffff0f}.upload-progress i{display:block;height:100%;background:linear-gradient(90deg,#84e8dc,#54c7ff);transition:width .18s ease}.upload-progress b{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#effcff;font-size:11px}.file-list span,.point-list span{display:grid;grid-template-columns:18px minmax(0,1fr);gap:8px;align-items:center;border:1px solid rgba(111,200,238,.14);border-radius:6px;padding:8px;background:#ffffff0b}.asset-registry,.asset-editor{display:grid;gap:8px}.project-meta-row{display:grid;grid-template-columns:auto minmax(0,1fr);gap:5px 10px;border:1px solid rgba(111,200,238,.16);border-radius:7px;padding:9px;background:#ffffff0b;font-size:12px}.project-meta-row span{color:#86a7b9}.project-meta-row b{min-width:0;overflow:hidden;color:#e9fbff;text-overflow:ellipsis;white-space:nowrap}.asset-registry>small,.selected-asset-title small,.asset-save-state{color:#8fb4c2}.asset-bounds-panel{display:grid;gap:3px;border:1px solid rgba(111,200,238,.16);border-radius:7px;padding:8px;background:#ffffff0b;color:#dceff7;font-size:11px}.asset-bounds-panel span{color:#8fb4c2}.asset-bounds-panel b{min-width:0;overflow-wrap:anywhere;color:#fff}.asset-data-list{display:grid;gap:8px;border:1px solid rgba(132,232,220,.18);border-radius:7px;padding:8px;background:#ffffff0b}.asset-data-list-header{display:flex;align-items:center;justify-content:space-between;gap:10px;color:#dceff7}.asset-data-list-header span{color:#8fb4c2;font-size:11px}.asset-data-list-header b{min-width:0;overflow:hidden;color:#fff;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.asset-data-rows{display:grid;gap:7px;max-height:180px}.asset-data-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;border:1px solid rgba(111,200,238,.16);border-radius:7px;padding:8px;background:#03121d57}.asset-data-row.muted{opacity:.58}.asset-data-toggle{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:8px;min-width:0;color:#e9fbff}.asset-data-toggle input{width:15px;height:15px;accent-color:#84e8dc}.asset-data-toggle span{display:grid;gap:2px;min-width:0}.asset-data-toggle strong,.asset-data-toggle small{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.asset-data-toggle small{color:#8fb4c2;font-size:11px}.asset-layer-color{width:34px;min-height:28px;padding:2px;border-radius:6px}.asset-processing-panel,.asset-type-note{display:grid;gap:5px;border:1px solid rgba(132,232,220,.18);border-radius:7px;padding:8px;color:#dceff7;background:#ffffff0b;font-size:11px}.asset-processing-panel>i{display:block;height:6px;overflow:hidden;border-radius:999px;background:#03121db8}.asset-processing-panel>i>em{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#84e8dc,#49b8ff)}.asset-processing-panel.indeterminate>i>em{width:44%;background:linear-gradient(90deg,#84e8dc59,#84e8dc,#49b8ff8c);background-size:220% 100%;animation:processing-indeterminate 1.15s linear infinite}.asset-processing-panel.failed>i>em{background:linear-gradient(90deg,#ff8a8a,#ffd166)}.asset-type-note b,.asset-processing-panel b{color:#fff}.asset-type-note span,.asset-processing-panel span,.asset-processing-panel small{color:#91b2c1}.asset-row{display:grid;grid-template-columns:minmax(0,1fr) max-content;gap:8px;align-items:start;min-height:56px;border:1px solid rgba(111,200,238,.16);border-radius:6px;padding:9px;color:#dceff7;background:linear-gradient(120deg,rgba(12,53,75,var(--ui-opacity-soft)),rgba(2,17,28,var(--ui-opacity)));text-align:left}.asset-row.active{border-color:#ffd166b8;background:linear-gradient(120deg,#ffd16629,rgba(7,38,54,var(--ui-opacity)));box-shadow:inset 3px 0 0 var(--warning)}.asset-row strong,.selected-asset-title strong{display:block;min-width:0;overflow:hidden;color:#fff;font-size:13px;text-overflow:ellipsis;white-space:nowrap}.asset-row small{display:block;margin-top:3px;color:#88a8ba;font-size:11px}.asset-processing-line{display:grid;gap:3px;margin-top:7px}.asset-processing-line>i{display:block;height:4px;max-width:100%;border-radius:999px;background:linear-gradient(90deg,#84e8dc,#49b8ff)}.asset-processing-line.indeterminate>i{width:44%;background:linear-gradient(90deg,#84e8dc59,#84e8dc,#49b8ff8c);background-size:220% 100%;animation:processing-indeterminate 1.15s linear infinite}.asset-processing-line.failed>i{background:linear-gradient(90deg,#ff8a8a,#ffd166)}@keyframes processing-indeterminate{0%{background-position:220% 0}to{background-position:-220% 0}}.asset-row-actions{display:grid;grid-template-columns:repeat(3,auto);align-self:start;align-items:center;justify-self:end;gap:7px;max-width:100%;padding-top:8px}.asset-row-actions i{display:inline-flex;align-items:center;justify-content:center;min-width:36px;min-height:23px;border-radius:999px;color:#07211f;background:#84e8dc;font-size:11px;font-style:normal;font-weight:900}.asset-registry em,.empty-state{color:#82a7b8;font-size:12px;font-style:normal}.right-empty-state{display:grid;gap:12px;align-content:start;min-height:180px;padding:18px;border:1px solid var(--panel-border);border-radius:8px;color:#dff7ff;background:linear-gradient(135deg,#2dc7ff24,#72ebd914),linear-gradient(150deg,rgba(8,48,70,var(--ui-opacity)),rgba(3,18,30,var(--ui-opacity-strong)));box-shadow:0 16px 38px #0000003d,inset 0 0 24px #33c1ff14;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.right-empty-state strong{font-size:18px}.right-empty-state span{color:#9dc3d0;font-size:13px;line-height:1.5}.operation-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.operation-grid button,.file-action-button{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:32px;border:1px solid rgba(111,200,238,.16);border-radius:6px;color:#dceff7;background:#ffffff14;font-size:12px;font-weight:900}.file-action-button{position:relative;cursor:pointer}.file-action-button input{position:absolute;inset:0;opacity:0;cursor:pointer}.map-click-panel{position:absolute;left:50%;top:104px;z-index:8;display:grid;grid-template-columns:1fr auto;gap:4px 12px;width:min(360px,calc(100vw - 40px));transform:translate(-50%);border:1px solid rgba(132,232,220,.3);border-radius:8px;padding:12px 14px;color:#e9fbff;background:rgba(2,20,32,var(--ui-opacity-strong));box-shadow:0 12px 36px #00000052;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.map-click-panel strong,.map-click-panel span,.map-click-panel dd{overflow:hidden;text-overflow:ellipsis}.map-click-panel strong,.map-click-panel span,.map-click-panel dl{grid-column:1 / -1}.map-click-panel button{position:absolute;top:8px;right:8px;display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border:1px solid rgba(111,200,238,.18);border-radius:6px;color:#dceff7;background:#ffffff14}.map-click-panel span,.map-click-panel dt{color:#90b7c7;font-size:12px}.map-click-panel dl{display:grid;grid-template-columns:76px minmax(0,1fr);gap:4px 10px;margin:4px 0 0;font-size:12px}.map-click-panel dt,.map-click-panel dd{margin:0}.map-click-panel dd{color:#f0fbff;white-space:nowrap}.map-click-panel{top:86px;display:flex;align-items:center;gap:10px;width:auto;min-width:min(360px,calc(100vw - 40px));max-width:min(520px,calc(100vw - 40px));padding:10px 42px 10px 12px}.map-click-panel>strong,.map-click-panel>span,.map-click-panel>dl{display:none}.map-click-panel.model-hit{border-color:#ffca3a94}.map-click-summary{display:flex;align-items:center;gap:8px;min-width:0;color:#f0fbff;font-size:13px;font-weight:900}.map-click-summary>span:first-of-type{color:#f0fbff;font-size:13px;white-space:nowrap}.map-click-summary em{flex:0 0 auto;border-radius:999px;padding:4px 8px;color:#06211f;background:linear-gradient(135deg,#8cf0e5,#54c7ff);font-style:normal;font-size:11px}.map-click-panel.model-hit .map-click-summary em{background:linear-gradient(135deg,#ffdf79,#ffb22e)}.map-click-info-tooltip{position:relative;display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border:1px solid rgba(111,200,238,.24);border-radius:50%;color:#dceff7;background:#ffffff14;outline:none}.map-click-info-tooltip small{position:absolute;top:calc(100% + 10px);right:0;z-index:9;display:grid;gap:5px;width:280px;border:1px solid rgba(132,232,220,.3);border-radius:8px;padding:10px;color:#dceff7;background:rgba(2,20,32,var(--ui-opacity-strong));box-shadow:0 12px 30px #00000047;opacity:0;pointer-events:none;transform:translateY(-4px);transition:opacity .16s ease,transform .16s ease}.map-click-info-tooltip:hover small,.map-click-info-tooltip:focus small{opacity:1;transform:translateY(0)}.map-click-info-tooltip small b,.map-click-info-tooltip small span{overflow:hidden;color:#dceff7;text-overflow:ellipsis;white-space:nowrap}.layer-item{display:grid;grid-template-columns:44px minmax(0,1fr) 76px 28px;gap:8px;align-items:center;border:1px solid rgba(111,200,238,.14);border-radius:6px;padding:8px;background:#ffffff0b}.layer-item strong{display:block;min-width:0;overflow:hidden;color:#fff;font-size:13px;text-overflow:ellipsis;white-space:nowrap}.layer-item small{display:block;margin-top:3px;color:#88a8ba;font-size:11px}.layer-item input[type=range]{min-height:24px;padding:0;accent-color:#84e8dc}.layer-switch,.icon-action{display:inline-flex;align-items:center;justify-content:center;min-height:26px;border:1px solid rgba(111,200,238,.18);border-radius:6px;color:#9cb7c5;background:#ffffff0f;font-size:11px;font-weight:900}.layer-switch.active{color:#06211f;background:#84e8dc}.markup-tools{display:grid;gap:9px}.markup-current-project{display:grid;gap:3px;border:1px solid rgba(132,232,220,.18);border-radius:7px;padding:8px;background:rgba(3,18,29,var(--ui-opacity-soft))}.markup-current-project span{color:#91b2c1;font-size:11px;font-weight:800}.markup-current-project b{min-width:0;overflow:hidden;color:#fff;text-overflow:ellipsis;white-space:nowrap}.segmented-control{display:grid;grid-template-columns:1fr 1fr;gap:7px}.segmented-control button{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:34px;border:1px solid rgba(111,200,238,.16);border-radius:6px;color:#dceff7;background:#ffffff14;font-size:12px;font-weight:900}.segmented-control button.active{color:#06211f;background:linear-gradient(135deg,#8cf0e5,#54c7ff)}.markup-style-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}.markup-style-grid input[type=color]{min-height:34px;padding:3px}.editable-markup-list{display:grid;gap:7px}.editable-markup-list span{grid-template-columns:18px minmax(0,1fr) auto 28px}.editable-markup-list input{min-height:30px}.editable-markup-list button{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border:1px solid rgba(111,200,238,.16);border-radius:6px;color:#dceff7;background:#ffffff14}.markup-tree-panel{display:grid;gap:8px;max-height:210px;overflow-y:auto;padding-right:2px;scrollbar-width:thin;scrollbar-color:rgba(132,232,220,.65) rgba(255,255,255,.06)}.markup-tree-panel>em{color:#9fb9c8;font-size:12px;font-style:normal}.markup-tree-group{display:grid;gap:6px;padding:8px;border:1px solid rgba(111,200,238,.18);border-radius:7px;background:#0617226b}.markup-tree-heading{display:grid;grid-template-columns:18px minmax(0,1fr) auto;align-items:center;gap:7px;color:#e7fbff}.markup-tree-heading b{overflow:hidden;font-size:13px;text-overflow:ellipsis;white-space:nowrap}.markup-tree-heading small{min-width:24px;padding:2px 6px;border-radius:999px;color:#06202d;background:#84e8dc;text-align:center;font-size:11px;font-weight:800}.markup-tree-points{max-height:none}.button-pair{display:grid;grid-template-columns:1fr 1fr;gap:8px}.button-pair button:last-child{color:#dceff7;background:#ffffff1a}.button-pair button.active{color:#06211f;background:#ffd166}.dashboard-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.data-status{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:8px;min-height:34px;border:1px solid rgba(111,200,238,.16);border-radius:7px;padding:7px 9px;color:#bcd5e1;background:#ffffff0b;font-size:12px}.data-status small{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:20px;border-radius:999px;color:#06211f;background:#84e8dc;font-weight:900}.data-status.demo small{background:#ffd166}.data-status span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dashboard-grid span{position:relative;overflow:hidden;min-height:82px;border:1px solid rgba(111,200,238,.18);border-radius:7px;padding:12px;background:linear-gradient(145deg,rgba(23,87,111,var(--ui-opacity-soft)),rgba(4,23,36,var(--ui-opacity))),var(--metric-image),linear-gradient(145deg,rgba(23,87,111,var(--ui-opacity-soft)),rgba(4,23,36,var(--ui-opacity))),#ffffff0d;background-position:center,right -18px bottom -20px,center,center;background-repeat:no-repeat;background-size:cover,92px 92px,cover,auto;box-shadow:inset 0 1px #ffffff0a}.dashboard-grid span:after{content:"";position:absolute;right:8px;bottom:7px;width:46px;height:46px;border-radius:50%;background:radial-gradient(circle,rgba(132,232,220,.16),transparent 68%);pointer-events:none}.metric-projects{--metric-image: url(/resource/ui/overview-projects.svg)}.metric-visible{--metric-image: url(/resource/ui/overview-visible.svg)}.metric-assets{--metric-image: url(/resource/ui/overview-assets.svg)}.metric-files{--metric-image: url(/resource/ui/overview-files.svg)}.dashboard-grid small{position:relative;z-index:1;color:#9ab9c6;font-size:12px;font-weight:800}.dashboard-grid b{position:relative;z-index:1;display:block;margin-top:5px;color:var(--accent);font-size:28px;line-height:1}.cesium-widget-credits,.cesium-credit-logoContainer,.cesium-credit-textContainer,.cesium-credit-expand-link,.cesium-credit-lightbox-overlay,.cesium-credit-lightbox{display:none!important}.bottom-toolbar{position:absolute;left:50%;width:fit-content;max-width:min(860px,calc(100vw - 40px));bottom:18px;z-index:8;display:flex;align-items:stretch;gap:8px;transform:translate(-50%);pointer-events:none}.toolbar-module{display:flex;align-items:center;min-width:0;min-height:52px;overflow:visible;border:1px solid rgba(80,195,245,.26);border-radius:8px;background:linear-gradient(95deg,rgba(14,75,98,var(--ui-opacity)),rgba(4,23,37,var(--ui-opacity-strong))),rgba(8,24,36,var(--ui-opacity));box-shadow:0 12px 34px #00000042,inset 0 0 18px #33c1ff12;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);pointer-events:auto;transition:flex-basis .28s ease,max-width .28s ease,background .28s ease,border-color .28s ease,box-shadow .28s ease}.toolbar-module.expanded{flex:0 1 auto;width:fit-content;max-width:min(720px,calc(100vw - 160px));border-color:#84e8dc75;box-shadow:0 16px 44px #0000004d,inset 0 0 22px #84e8dc17}.toolbar-module.collapsed{flex:0 0 auto;width:fit-content;max-width:none}.toolbar-module-tab,.toolbar-category-trigger,.toolbar-chip,.camera-module-content button,.toolbar-camera-tools button{display:inline-flex;flex:0 0 auto;align-items:center;justify-content:center;gap:6px;min-height:28px;border:1px solid rgba(111,200,238,.18);border-radius:6px;padding:0 10px;color:#dceff7;background:#ffffff12;font-size:12px;font-weight:900}.toolbar-module-tab{min-width:96px;margin:6px;border-color:#84e8dc38;color:var(--accent);background:#84e8dc1a}.toolbar-category-menu{position:relative;margin:6px;flex:0 0 auto}.toolbar-category-trigger{min-height:40px;min-width:188px;justify-content:flex-start;gap:9px;padding:0 10px;border-color:#84e8dc6b;color:#06211f;background:linear-gradient(135deg,#8cf0e5,#54c7ff);box-shadow:inset 0 1px #ffffff59,0 10px 22px #34c6e029}.toolbar-category-trigger>svg:last-child{margin-left:auto;transition:transform .18s ease}.toolbar-category-menu.open .toolbar-category-trigger>svg:last-child{transform:rotate(180deg)}.toolbar-category-icon{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border:1px solid rgba(6,33,31,.18);border-radius:6px;background:#ffffff42}.toolbar-category-copy,.toolbar-category-popover button span:last-child{display:grid;min-width:0;gap:1px;text-align:left}.toolbar-category-copy b,.toolbar-category-popover b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.toolbar-category-copy small,.toolbar-category-popover small{overflow:hidden;color:#06211fad;font-size:10px;font-weight:800;line-height:1.1;text-overflow:ellipsis;white-space:nowrap}.toolbar-category-popover{position:absolute;left:0;bottom:calc(100% + 8px);z-index:20;display:grid;gap:6px;width:236px;border:1px solid rgba(132,232,220,.34);border-radius:8px;padding:7px;background:linear-gradient(145deg,rgba(16,73,93,var(--ui-opacity-strong)),rgba(3,18,31,var(--ui-opacity-strong))),rgba(4,19,32,var(--ui-opacity-strong));box-shadow:0 18px 44px #0000005c,inset 0 0 18px #84e8dc14;opacity:0;pointer-events:none;transform:translateY(8px) scale(.98);transform-origin:bottom left;transition:opacity .16s ease,transform .16s ease}.toolbar-category-menu.open .toolbar-category-popover{opacity:1;pointer-events:auto;transform:translateY(0) scale(1)}.toolbar-category-popover button{display:grid;grid-template-columns:28px minmax(0,1fr);align-items:center;gap:8px;width:100%;border:1px solid rgba(111,200,238,.14);border-radius:6px;padding:8px;color:#dceff7;background:#ffffff0e;font-size:12px;font-weight:900}.toolbar-category-popover button:hover,.toolbar-category-popover button:focus-visible{border-color:#84e8dc75;background:#84e8dc1f;outline:none}.toolbar-category-popover button.active{color:#06211f;background:linear-gradient(135deg,#8cf0e5,#54c7ff)}.toolbar-category-popover button .toolbar-category-icon,.toolbar-category-popover b{color:inherit}.toolbar-category-popover small{color:#dceff7a8}.toolbar-category-popover button.active small{color:#06211fad}.toolbar-module.expanded .toolbar-module-tab{color:#06211f;background:linear-gradient(135deg,#8cf0e5,#54c7ff)}.toolbar-module-content{display:flex;align-items:center;gap:8px;min-width:0;max-width:min(620px,calc(100vw - 260px));overflow:hidden;padding-right:8px;opacity:1;transform:translate(0);transition:max-width .28s ease,opacity .2s ease,transform .28s ease,padding .28s ease}.toolbar-module.collapsed .toolbar-module-content{max-width:0;padding-right:0;opacity:0;pointer-events:none;transform:translate(-12px)}.toolbar-chip-row,.camera-module-content,.toolbar-camera-tools{display:flex;align-items:center;gap:7px;min-width:0;overflow:hidden;scrollbar-width:none}.toolbar-chip-row::-webkit-scrollbar,.camera-module-content::-webkit-scrollbar,.toolbar-camera-tools::-webkit-scrollbar{display:none}.toolbar-module-content.show-camera-tools .ui-opacity-control,.toolbar-module-content.show-camera-tools .toolbar-chip-row,.toolbar-module-content.show-layer-tools .toolbar-camera-tools{display:none}.ui-opacity-control{display:grid;grid-template-columns:auto 92px 38px;align-items:center;gap:8px;flex:0 0 auto;min-height:32px;border:1px solid rgba(111,200,238,.18);border-radius:6px;padding:0 9px;color:#dceff7;background:#fff1;font-size:12px;font-weight:900}.ui-opacity-control input{min-height:24px;padding:0;accent-color:var(--accent)}.ui-opacity-control b{color:var(--accent);text-align:right}.toolbar-chip.active{color:#06211f;background:linear-gradient(135deg,#8cf0e5,#54c7ff)}.toolbar-chip.layer-type-terrain{border-color:#a3e06161}.toolbar-chip.layer-type-vector{border-color:#ffd16661}.toolbar-chip.layer-type-label{border-color:#ff84a457}.toolbar-chip.layer-type-imagery{border-color:#54c7ff66}.layer-icon-stack{position:relative;display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px}.layer-icon-stack.muted{opacity:.72}.layer-icon-stack svg+svg{position:absolute;right:-4px;bottom:-4px;color:#f0a2b2}.toolbar-chip>span:not(.layer-icon-stack){display:none}.toolbar-chip,.camera-module-content button,.toolbar-camera-tools button{width:34px;padding:0}@media(max-width:1760px){.toolbar-chip{width:34px;padding:0}.toolbar-chip>span:not(.layer-icon-stack){display:none}}@media(max-width:1400px){.bottom-toolbar{bottom:12px;gap:6px;max-width:calc(100vw - 24px)}.toolbar-module{min-height:46px}.toolbar-module.expanded{max-width:calc(100vw - 96px)}.toolbar-module-tab{min-width:46px;width:46px;margin:5px;padding:0}.toolbar-category-menu{margin:5px}.toolbar-category-trigger{min-width:48px;width:48px;padding:0;justify-content:center}.toolbar-category-trigger .toolbar-category-copy,.toolbar-category-trigger>svg:last-child{display:none}.toolbar-category-popover{width:min(236px,calc(100vw - 32px))}.toolbar-module-tab span,.toolbar-module-tab svg:last-child{display:none}.toolbar-module-content{gap:6px;max-width:calc(100vw - 170px);padding-right:6px}.ui-opacity-control{grid-template-columns:76px 34px;gap:6px;padding:0 7px}.ui-opacity-control span{display:none}.toolbar-chip-row,.camera-module-content,.toolbar-camera-tools{gap:6px}}.modal-backdrop{position:absolute;inset:0;z-index:30;display:grid;place-items:center;padding:24px;background:rgba(2,10,18,var(--ui-opacity-soft));-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal-backdrop.pick-through{place-items:start center;padding-top:84px;pointer-events:none;background:#020a121a;-webkit-backdrop-filter:none;backdrop-filter:none}.modal-panel{width:min(520px,100%);border:1px solid rgba(80,195,245,.3);border-radius:8px;padding:14px;background:radial-gradient(circle at 0% 0%,rgba(118,229,219,.16),transparent 38%),linear-gradient(150deg,rgba(15,74,100,var(--ui-opacity-strong)),rgba(4,20,32,var(--ui-opacity-strong)));box-shadow:0 24px 70px #0000007a,inset 0 0 30px #33c1ff14}.result-panel.success{border-color:#84e8dc9e}.result-panel.error{border-color:#ff6b6b9e}.result-panel>small{color:#94b8c8;font-size:12px;line-height:1.45}.pick-through .modal-panel{pointer-events:auto;opacity:.94}.modal-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.modal-heading strong{color:#fff;font-size:18px}.confirm-panel{display:grid;gap:13px}.confirm-panel p{margin:0;color:#b8d1dd;font-size:13px;line-height:1.55}.confirm-panel.danger{border-color:#ff7b8f75;box-shadow:0 24px 70px #00000080,inset 0 0 30px #ff7b8f14}.modal-heading button,.modal-actions button{display:inline-flex;align-items:center;justify-content:center;min-height:34px;border:1px solid rgba(111,200,238,.18);border-radius:6px;color:#dceff7;background:#ffffff14;font-weight:900}.modal-actions .danger-action{border-color:#ff7b8f85;color:#fff;background:linear-gradient(135deg,#e64d63e0,#a4344cdb)}.location-summary{display:grid;gap:4px;border:1px solid rgba(111,200,238,.16);border-radius:7px;padding:9px;background:#ffffff0b}.location-summary span,.location-summary small{color:#86a7b9;font-size:12px}.location-summary b{color:#84e8dc}.modal-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}@media(max-width:1080px){body{overflow:hidden}.gis-shell{min-height:100vh}.top-banner{grid-template-columns:1fr;gap:8px;padding:10px}.banner-left,.banner-center,.banner-right{flex-wrap:wrap}.banner-center{justify-content:flex-start}.address-search{grid-template-columns:16px minmax(120px,1fr) auto;width:100%}.left-panel{top:158px;width:min(384px,calc(50vw - 22px))}.right-panel{top:158px;width:min(488px,calc(50vw - 22px))}.bottom-toolbar{left:12px;right:12px;width:auto;max-width:none;transform:none}.toolbar-module.expanded,.toolbar-module-content{max-width:none}}@media(max-width:560px){.form-grid,.stage-tabs,.dashboard-grid{grid-template-columns:1fr}.brand-block b{font-size:16px}.left-panel{display:none}.right-panel{left:12px;right:12px;width:auto}.bottom-toolbar{display:none}.operation-grid,.modal-actions,.settings-actions{grid-template-columns:1fr}}
