/* Yihu protected map editor V19.4. Existing roads, legacy buildings and code-generated greenery remain read-only. */
:root{--ed-bg:#06182a;--ed-panel:#071e33;--ed-line:#225b7a;--ed-text:#d9f4ff;--ed-muted:#86adbf;--ed-cyan:#44d5ff;--ed-green:#65ddb0;--ed-red:#ff8ca0;--ed-gold:#ffcc62}
.base-panel-toggle{position:fixed;left:12px;top:150px;z-index:48;border:1px solid #1a648b;background:#061b31;color:#bfeeff;padding:9px 13px;border-radius:4px;cursor:pointer;box-shadow:0 8px 30px #0008}.overview-rail{transition:transform .25s ease,opacity .25s ease}.overview-rail.panel-collapsed-by-editor{transform:translateX(calc(-100% - 24px));opacity:0;pointer-events:none}
#editToggle,#newBuildingBtn,#editGeometryBtn,#scaleDownBtn,#scaleUpBtn,#confirmGeometryBtn,#finishDrawBtn,#cancelDrawBtn,#detailPanelToggle,#calibrationModeBtn,.asset-library-badge{display:none!important}
.simple-editor-bar{position:fixed;top:82px;left:12px;right:12px;z-index:60;display:grid;gap:7px;padding:8px 10px;border:1px solid #174d6b;background:#061a2df5;color:var(--ed-text);box-shadow:0 8px 35px #0009;border-radius:7px;max-width:none}.editor-bar-main-row{display:flex;align-items:center;gap:12px;min-width:0}.editor-map-identity{display:flex;align-items:center;gap:9px;min-width:0;flex:none}.editor-map-identity strong,.editor-map-identity span,.editor-map-identity em{white-space:nowrap}.editor-map-identity strong{font-size:14px}.editor-map-identity span{color:#91c3d8;border-left:1px solid #21465e;padding-left:9px;max-width:220px;overflow:hidden;text-overflow:ellipsis}.editor-map-identity em{font-style:normal;color:var(--ed-green)}.editor-map-identity small{color:#6a94a8}.editor-view-actions,.editor-edit-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.editor-view-actions{margin-left:auto;justify-content:flex-end}.editor-edit-actions{justify-content:flex-end;padding-top:6px;border-top:1px solid rgba(80,160,195,.2)}.editor-view-actions[hidden],.editor-edit-actions[hidden]{display:none!important}
.simple-editor-bar button,.editor-dialog button,.asset-drawer button,.object-inspector button,.batch-panel button{border:1px solid #286484;background:#0a2943;color:var(--ed-text);padding:7px 11px;border-radius:3px;cursor:pointer}.simple-editor-bar button:hover,.editor-dialog button:hover,.asset-drawer button:hover,.object-inspector button:hover,.batch-panel button:hover{border-color:var(--ed-cyan);background:#0d3a58}.simple-editor-bar button:disabled,.editor-dialog button:disabled{opacity:.35;cursor:not-allowed}.primary{background:#08617f!important;border-color:#4adfff!important}.danger{background:#52212b!important;border-color:#cb5368!important}.danger-text{color:#ff9daf!important;border-color:#713545!important}.wide{width:100%;margin-top:8px}
.editor-modal{position:fixed;inset:0;z-index:100;background:#020a14d9;display:grid;place-items:center}.editor-modal[hidden],.asset-drawer[hidden],.object-inspector[hidden],.placement-hint[hidden],.editor-toast[hidden],.batch-panel[hidden]{display:none!important}.editor-dialog{width:min(920px,92vw);max-height:84vh;overflow:auto;background:var(--ed-panel);border:1px solid #27678c;color:var(--ed-text);box-shadow:0 28px 85px #000d;padding:18px}.small-dialog{width:min(480px,90vw)}.editor-dialog>header,.object-inspector>header{display:flex;align-items:flex-start;justify-content:space-between;border-bottom:1px solid #1d4964;padding-bottom:11px;margin-bottom:14px}.editor-dialog h2,.object-inspector h2{margin:2px 0 0}.editor-dialog header p{color:var(--ed-muted);margin:4px 0 0}.editor-dialog small,.object-inspector small{color:#59d1fa;letter-spacing:.08em}.editor-dialog label{display:block;color:#a7c8d7;margin:9px 0}.editor-dialog input,.editor-dialog select{width:100%;box-sizing:border-box;margin-top:5px;padding:8px;background:#061526;border:1px solid #2a5872;color:#fff}.dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:14px}
.scheme-toolbar{display:flex;gap:8px;margin:4px 0 14px}.scheme-row{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:13px;border:1px solid #184660;background:#09243a;margin-bottom:8px}.scheme-row.active{border-color:var(--ed-cyan);box-shadow:inset 3px 0 var(--ed-cyan)}.scheme-row>div:first-child{min-width:0}.scheme-row strong,.scheme-row small,.scheme-row em{display:block}.scheme-row small{color:#89afc0;margin-top:4px}.scheme-row em{font-style:normal;color:var(--ed-green);margin-top:5px}.scheme-row>div:last-child{display:flex;gap:5px;flex-wrap:wrap;justify-content:flex-end}.base-type-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.base-type-grid article{border:1px solid #1d4b67;background:#09243a;padding:14px}.base-type-grid h3{margin-top:0}.base-type-grid p{color:var(--ed-muted);min-height:42px}.file-button,.import-glb-btn{display:inline-block;background:#0c506d;border:1px solid #43cffa;color:#e5f9ff;padding:8px 12px;cursor:pointer}.bounds-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:10px 0}.checkbox-row{display:flex!important;align-items:center;gap:8px}.checkbox-row input{width:auto!important;margin:0!important}
.asset-drawer{position:fixed;left:0;right:0;bottom:0;height:40vh;z-index:75;background:#06182af8;border-top:1px solid #24769e;color:var(--ed-text);padding:14px 18px;box-shadow:0 -20px 55px #000a;overflow:auto}.asset-drawer-head{display:flex;justify-content:space-between;align-items:flex-start}.asset-drawer-head h2{margin:2px 0}.asset-drawer-head p{margin:0;color:var(--ed-muted)}.asset-tabs{display:flex;gap:7px;margin:12px 0;border-bottom:1px solid #1b4861;padding-bottom:9px}.asset-tabs button.active,.mode-buttons button.active{background:#0e5e7e;border-color:#54ddff}.asset-workbench{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:16px}.asset-actions{display:flex;align-items:center;gap:12px;margin-bottom:10px}.asset-actions span{color:#91b6c8}.asset-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(165px,1fr));gap:9px;max-height:220px;overflow:auto;padding-right:4px}.asset-card{border:1px solid #1e4e69;background:#092137;min-width:0}.asset-card.active{border-color:#4fe1ff;box-shadow:0 0 0 2px #31cafc44}.asset-image{height:108px;background:linear-gradient(145deg,#0c2f48,#061728);display:grid;place-items:center;overflow:hidden}.asset-image img{width:100%;height:100%;object-fit:contain;padding:7px;box-sizing:border-box}.asset-card-body{padding:7px 9px}.asset-card-body strong,.asset-card-body small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.asset-card-body small{color:#87acbd;margin-top:3px}.asset-card-buttons{display:flex;gap:4px;padding:0 7px 7px}.asset-card-buttons button{padding:5px 7px;flex:1}.placement-settings{border:1px solid #1d506c;background:#081f34;padding:12px}.placement-settings h3{margin-top:0}.placement-settings label{display:block;color:#99becf;margin:7px 0}.placement-settings input,.placement-settings select{width:100%;box-sizing:border-box;margin-top:4px;background:#061526;border:1px solid #2a5872;color:#fff;padding:7px}.selected-asset-summary{display:flex;align-items:center;gap:10px;border:1px solid #1a455e;background:#07192a;padding:8px;color:#91b6c7}.selected-asset-summary img{width:66px;height:44px;object-fit:contain;background:#061421;padding:3px;box-sizing:border-box}.selected-asset-summary strong,.selected-asset-summary small{display:block}.mode-buttons{display:flex;gap:5px;flex-wrap:wrap;margin:9px 0}.object-inspector{position:fixed;right:18px;top:145px;width:340px;max-height:calc(100vh - 175px);overflow:auto;z-index:82;background:#071b2df9;border:1px solid #28779e;color:var(--ed-text);padding:16px;box-shadow:0 18px 55px #000b}.object-inspector label{display:block;margin-bottom:9px;color:#a0c5d6;font-size:12px}.object-inspector input,.object-inspector select{width:100%;box-sizing:border-box;margin-top:4px;background:#061526;border:1px solid #2a5872;color:#fff;padding:7px}.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.inspector-tip{font-size:12px;line-height:1.55;color:#7fdcf4;background:#092b42;border:1px solid #175270;padding:8px}.special-fields{border:1px solid #1e526d;padding:9px;background:#082137;margin:10px 0}.special-fields h3{margin:0 0 8px}.inspector-actions{display:flex;flex-wrap:wrap;gap:7px;margin-top:12px}.object-load-state{padding:8px;border:1px solid #31536a;background:#081a2a;color:#91b6c7}.object-load-state[data-state=ready]{border-color:#27664e;color:#79ddb0;background:#09291f}.object-load-state[data-state=error]{border-color:#7a3745;color:#ff9bac;background:#2e171e}
.batch-panel{position:fixed;right:18px;bottom:32px;z-index:91;width:330px;background:#082138f5;border:1px solid #3fafd5;color:var(--ed-text);padding:13px;box-shadow:0 15px 45px #000b}.batch-panel h3{margin:0 0 7px}.batch-panel p{color:#9dc2d2;line-height:1.5}.placement-hint{position:fixed;z-index:93;left:50%;top:205px;bottom:auto;transform:translateX(-50%);padding:11px 17px;background:#173a25;color:#a4f4c0;border:1px solid #39b66a;box-shadow:0 10px 35px #0009}.editor-toast{position:fixed;z-index:120;left:50%;top:142px;transform:translateX(-50%);max-width:680px;padding:10px 16px;border:1px solid #33728e;background:#0a2941;color:#d9f5ff;box-shadow:0 10px 35px #000a}.editor-toast[data-type=success]{background:#0c3027;border-color:#2f8967;color:#9be6c1}.editor-toast[data-type=error]{background:#351a23;border-color:#9e4055;color:#ffb0be}.empty-editor-list{opacity:.62}
.editor-object-pin{border:2px solid #80e6ff;background:#0b7da8;color:#fff;border-radius:50% 50% 50% 8px;width:24px;height:29px;transform:rotate(-45deg);display:grid;place-items:center;box-shadow:0 4px 12px #000b;cursor:pointer;padding:0}.editor-object-pin>*{transform:rotate(45deg)}.editor-object-pin.selected{background:#ed9d19;border-color:#fff0a3;box-shadow:0 0 0 4px #ffc13f44}.editor-object-pin.camera-pin{transform:none;border-radius:50%;width:31px;height:31px;background:#0b745f;border-color:#76ffd1}.editor-object-pin.camera-pin.selected{background:#dc4d60;border-color:#fff}
@media(max-width:1180px){.simple-editor-bar{left:8px;right:8px}.editor-bar-main-row{align-items:flex-start;flex-direction:column}.editor-view-actions{margin-left:0;justify-content:flex-start}.editor-map-identity em,.editor-map-identity small{display:none}.asset-workbench{grid-template-columns:1fr 250px}}@media(max-width:820px){.editor-map-identity strong{display:none}.asset-drawer{height:58vh}.asset-workbench{grid-template-columns:1fr}.placement-settings{order:-1}.object-inspector{left:10px;right:10px;top:130px;width:auto}.base-type-grid{grid-template-columns:1fr}.scheme-row{align-items:flex-start;flex-direction:column}.field-grid{grid-template-columns:1fr}}
.editor-object-pin.camera-pin.offline{background:#8b681b;border-color:#ffd36a}.editor-object-pin.camera-pin.alarm{background:#a72f43;border-color:#ff9aaa;animation:cameraAlarmPulse 1.15s infinite}@keyframes cameraAlarmPulse{50%{box-shadow:0 0 0 8px #ff425544}}
.scale-quick-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin:-2px 0 10px}.editor-object-pin.pending{background:#9b6c16;border-color:#ffe083;box-shadow:0 0 0 5px #ffc33a38}


.rotation-quick-actions,.scale-quick-actions{display:flex;gap:6px;margin:-2px 0 10px}.rotation-quick-actions button,.scale-quick-actions button{flex:1;padding:7px 5px}
.asset-cover-editor{display:grid;grid-template-columns:170px 1fr;gap:12px;align-items:center;margin-bottom:12px;padding:10px;border:1px solid #1e526d;background:#081f34}.asset-cover-editor img{width:170px;height:102px;object-fit:contain;background:#061421;border:1px solid #234e67;padding:4px;box-sizing:border-box}.asset-cover-editor strong,.asset-cover-editor small{display:block}.asset-cover-editor small{color:#91b6c7;line-height:1.45;margin:4px 0 8px}.file-button.compact{display:inline-block;margin:0 6px 0 0!important;width:auto!important;padding:6px 9px!important}
.asset-drawer{overflow:auto}.asset-workbench{align-items:start}.asset-grid{max-height:235px}.placement-hint{max-width:min(760px,78vw);text-align:center;border-radius:4px;font-weight:600}
@media(max-width:820px){.asset-cover-editor{grid-template-columns:1fr}.asset-cover-editor img{width:100%;height:150px}.placement-hint{top:190px;max-width:85vw}}

/* V19.4: 素材抽屉取消“ASSET LIBRARY / 三维素材库”标题，分类直接置顶�?*/
.asset-drawer{height:36vh;padding:9px 16px 12px;overflow-y:auto!important}
.asset-drawer-toolbar{display:flex;align-items:center;gap:10px;border-bottom:1px solid #1b4861;margin-bottom:8px;padding-bottom:7px}
.asset-drawer-toolbar .asset-tabs{flex:1;margin:0;border-bottom:0;padding-bottom:0;min-width:0;overflow-x:auto}
.asset-drawer-close{flex:0 0 auto;width:36px;height:34px;padding:0!important;font-size:20px;line-height:1}
.asset-workbench{gap:12px}
.asset-actions{margin-bottom:7px}
.asset-grid{max-height:205px}
@media(max-width:820px){.asset-drawer{height:54vh;padding:8px 10px}.asset-drawer-toolbar{gap:6px}.asset-grid{max-height:190px}}

/* V19.4: multiple GeoJSON base-map layers */
.compact-check{margin-top:10px;font-size:13px;color:#9ec4d7}
.base-layer-title{margin-top:14px;padding-top:12px;border-top:1px solid rgba(86,190,232,.22);font-weight:700;color:#d9f5ff}
.base-geojson-layer-list{margin-top:8px;display:grid;gap:8px;max-height:220px;overflow:auto;padding-right:4px}
.base-geojson-layer-list>small{color:#789caf;padding:8px 0}
.base-geojson-layer-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border:1px solid rgba(76,184,229,.28);background:rgba(8,41,62,.72)}
.base-geojson-layer-row.is-hidden{opacity:.58}
.base-geojson-layer-row strong,.base-geojson-layer-row small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.base-geojson-layer-row>div:first-child{min-width:0}
.base-geojson-layer-row small{margin-top:3px;color:#83a9bb;font-size:12px}
.base-geojson-layer-row>div:last-child{display:flex;gap:6px;flex:none}
.base-geojson-layer-row button{padding:6px 9px;font-size:12px}

/* V20.1: visible Tianditu basemap and compact adjustable crop panel */
.region-crop-modal{pointer-events:none;background:transparent;left:auto;right:18px;top:136px;bottom:auto;width:370px;height:auto;display:block;padding:0;box-sizing:border-box}
.region-crop-dialog{pointer-events:auto;width:100%;max-height:calc(100vh - 154px);overflow:auto;box-sizing:border-box;padding:12px;background:#061a2df2;box-shadow:0 14px 40px #0009}
.region-crop-dialog>header{padding-bottom:8px;margin-bottom:9px}.region-crop-dialog h2{font-size:18px;margin-top:1px}.region-crop-dialog header p{font-size:12px;line-height:1.45;max-width:285px}.region-crop-dialog header>button{padding:5px 9px}
.region-mode-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px}.region-mode-grid button{display:grid;gap:2px;text-align:left;padding:9px 10px;min-height:55px}.region-mode-grid button:last-child{grid-column:1/-1}.region-mode-grid button strong{font-size:13px}.region-mode-grid button span{color:#8db3c4;line-height:1.35;font-size:11px}
.region-crop-summary{display:grid;gap:3px;margin-top:8px;padding:8px 10px;border:1px solid #245e7c;background:#071f34;color:#9fc7d8;font-size:12px;line-height:1.4}.region-crop-summary strong{color:#8eeaff}.region-crop-summary span{font-size:11px;line-height:1.45}
.region-adjust-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:8px}.region-adjust-actions[hidden]{display:none!important}.region-adjust-actions button{padding:7px 5px;font-size:12px}.region-crop-dialog .dialog-actions{margin-top:8px}.region-crop-dialog .dialog-actions button{padding:7px 9px;font-size:12px}
.region-drawing-hint{position:fixed;left:50%;top:140px;z-index:125;transform:translateX(-50%);padding:8px 12px;border:1px solid #55ddff;background:#07324af2;color:#e4faff;box-shadow:0 10px 30px #0009;font-size:12px}.region-drawing-hint[hidden]{display:none}
.camera-viewer-dialog{width:min(980px,94vw)}.camera-viewer-stage{position:relative;display:grid;place-items:center;aspect-ratio:16/9;background:#01060b;border:1px solid #24516a;overflow:hidden}.camera-viewer-stage video,.camera-viewer-stage img,.camera-viewer-stage iframe{width:100%;height:100%;border:0;object-fit:contain;background:#000}.camera-viewer-empty{color:#7fa2b1;text-align:center;padding:30px}.camera-viewer-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:10px;color:#82a9ba;font-size:12px}.camera-viewer-actions a{color:#9beaff;border:1px solid #2c7898;padding:7px 10px;text-decoration:none}.camera-viewer-dialog header p[data-state=online]{color:#6de1ad}.camera-viewer-dialog header p[data-state=offline]{color:#ffd06e}.camera-viewer-dialog header p[data-state=alarm]{color:#ff91a3}
.editor-object-pin.camera-pin{position:relative;width:38px;height:38px;background:#082b39;border:2px solid #82f3d0;box-shadow:0 0 0 4px #29d7aa30,0 8px 18px #000c;overflow:visible}.camera-pin-icon{position:absolute;inset:-3px;border:2px solid currentColor;border-radius:50%;opacity:.65;animation:cameraBeacon 1.8s ease-out infinite;transform:none!important}.camera-pin-glyph{position:relative;z-index:2;font-size:18px;line-height:1;transform:none!important}.editor-object-pin.camera-pin.offline .camera-pin-icon{animation:none}.editor-object-pin.camera-pin.alarm .camera-pin-icon{animation-duration:.8s}@keyframes cameraBeacon{0%{inset:-2px;opacity:.85}100%{inset:-14px;opacity:0}}
@media(max-width:820px){.region-crop-modal{left:10px;right:10px;top:auto;bottom:12px;width:auto}.region-crop-dialog{max-height:48vh}.region-mode-grid{grid-template-columns:1fr 1fr}.camera-viewer-actions{align-items:flex-start;flex-direction:column}.region-drawing-hint{top:126px;max-width:78vw;text-align:center}}
.scheme-file-import{display:inline-flex;align-items:center;justify-content:center;border:1px solid #2d6f8d;background:#082b42;color:#dff8ff;padding:8px 11px;cursor:pointer;font-size:13px;box-sizing:border-box}
.scheme-file-import:hover{border-color:#54d9f5;background:#0b3b56}
.legacy-import-hint{margin:0 0 10px;padding:8px 10px;border:1px dashed #245e7c;background:#071f34;color:#91bacb;font-size:12px;line-height:1.45}

/* V20.5 reflective scene switch */
.scene-style-btn{flex:none;white-space:nowrap;border-color:#3aa5c6!important;background:#08273b!important;color:#bfefff!important}
.scene-style-btn[data-mode="scene"]{border-color:#54d8ff!important;background:#0a3b54!important;box-shadow:inset 0 0 0 1px rgba(96,220,255,.12)}
.scene-style-btn:disabled{display:none}
.planning-image-switch{margin-top:12px}
.planning-image-state{display:block;margin-top:6px;color:#7fa8ba;line-height:1.45}
body.map-scene-mode .blank-map-stage{background:#020912}
body.map-scene-mode .blank-workspace-guide{display:none}
body.map-scene-mode .maplibregl-ctrl-group{background:#071724;color:#cbefff}
body.map-scene-mode .maplibregl-ctrl button{filter:invert(.86) hue-rotate(155deg)}
@media(max-width:980px){.scene-style-btn{padding-left:8px!important;padding-right:8px!important}}

/* V21.0 complete workspace/package/business interaction */
.scheme-toolbar .scheme-file-import{display:inline-flex;align-items:center;justify-content:center;border:1px solid #2a6d8c;background:#0a2a40;color:#dff7ff;padding:9px 12px;cursor:pointer;box-sizing:border-box}.scheme-toolbar .scheme-file-import.primary-package{background:#0c6383;border-color:#56dcff}.scheme-toolbar .legacy-file{opacity:.82}.package-help{margin:10px 0;padding:10px 12px;border:1px solid #23566e;background:#061a2a;color:#8fb6c7;font-size:12px;line-height:1.55}.package-help strong{color:#a9edff}.scheme-row>div:last-child{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px}
.object-inspector textarea{box-sizing:border-box;width:100%;resize:vertical;border:1px solid #285b72;background:#041421;color:#e7f8ff;padding:8px;font-family:Consolas,"Microsoft YaHei",monospace;line-height:1.5}.object-inspector textarea:focus{outline:1px solid #49d8ff}.special-fields h3{margin:0 0 10px}.special-fields[hidden]{display:none!important}
.editor-object-pin.building-info-pin{width:24px;height:24px;transform:none;border-radius:5px;background:#07364a;border:1px solid #6ee7ff;color:#dffaff;box-shadow:0 0 0 3px #2dcdf326,0 7px 14px #0009;opacity:.88}.editor-object-pin.building-info-pin:hover{opacity:1;background:#0b5a73}.editor-object-pin.building-info-pin.selected{background:#bf7a12;border-color:#ffe69a}.building-pin-glyph{transform:none!important;font-family:Georgia,serif;font-weight:700;font-size:15px;line-height:1}
.building-info-dialog{width:min(720px,92vw)}.building-info-dialog header p{color:#83b6c8}.building-info-content{max-height:62vh;overflow:auto;border:1px solid #204c64;background:#04121e;padding:14px;color:#dceff6}.building-info-content dl{margin:0;display:grid;gap:7px}.building-info-content dl>div{display:grid;grid-template-columns:minmax(110px,180px) 1fr;gap:12px;padding:8px 9px;border-bottom:1px solid #16374a}.building-info-content dt{color:#84cce1;font-weight:600}.building-info-content dd{margin:0;min-width:0;word-break:break-word}.building-info-content ul{margin:0;padding-left:20px}.building-info-content .info-empty{color:#5d7e8d}.building-info-loading{color:#83b6c8;text-align:center;padding:30px}.building-info-error{color:#ff9eac;padding:18px;border:1px solid #713343;background:#2c111a}
@media(max-width:720px){.building-info-content dl>div{grid-template-columns:1fr;gap:4px}.scheme-row>div:last-child{justify-content:flex-start}}

/* V22 editor layout and neutral clear-map UI */
body.editing-active .asset-drawer{display:block}
.simple-editor-bar,.editor-dialog,.asset-drawer,.object-inspector{border-radius:8px}
.camera-viewer-stage{min-height:260px}.camera-viewer-expanded .camera-viewer-stage{height:calc(100% - 135px)}
.camera-viewer-expanded .camera-viewer-stage video,.camera-viewer-expanded .camera-viewer-stage iframe,.camera-viewer-expanded .camera-viewer-stage img{width:100%;height:100%;object-fit:contain}
.empty-note{color:#789}


/* V22.2.8 editor usability and reliable object controls */
.editor-bar-main-row{align-items:flex-start}.editor-view-actions{max-width:72%;row-gap:6px}.editor-edit-actions{display:flex;justify-content:space-between;gap:10px;overflow:visible}.edit-action-group{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.simple-editor-bar button{white-space:nowrap}
body.standalone-map-builder.editing-active .asset-drawer{width:300px!important;top:146px!important;bottom:12px!important;padding:10px!important;background:#071a2cf2!important}
body.standalone-map-builder .object-inspector{width:330px!important;top:146px!important;bottom:12px!important;right:12px!important;max-height:none!important;padding:12px!important;background:#071a2cf2!important}
.asset-drawer-toolbar{position:sticky;top:0;z-index:2;background:#071a2c;padding-top:2px}.asset-tabs{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));overflow:visible!important}.asset-tabs button{min-height:38px;padding:6px!important}.asset-workbench{display:flex!important;flex-direction:column;height:auto!important;overflow:visible!important}.asset-workbench>div{min-height:0;display:flex;flex-direction:column}.asset-actions{display:grid;gap:6px}.asset-actions span{font-size:11px;line-height:1.45}.asset-grid{max-height:none!important;min-height:0;overflow:visible!important;grid-template-columns:1fr!important}.asset-card{display:grid;grid-template-columns:84px 1fr;align-items:center}.asset-image{grid-row:1/3;height:76px}.asset-card-body{padding:8px}.asset-card-buttons{padding:0 8px 8px;grid-column:2}.placement-settings{margin-top:10px;padding:10px;flex:0 0 auto}.selected-asset-summary{min-height:48px}.utility-card{display:grid;gap:8px;padding:12px;border:1px solid #2a5b72;background:#0a2639}.utility-card p{margin:0;color:#8fb4c5;line-height:1.5}.utility-card button{width:100%}
.object-inspector>header{position:sticky;top:-12px;z-index:4;background:#071a2c;padding:12px 0 9px}
#closeObjectInspector{position:absolute;right:8px;top:8px;width:28px;height:28px;padding:0!important;font-size:18px;line-height:1;background:transparent;color:var(--yihu-text-secondary);border:0;cursor:pointer}.inspector-tip{margin:0 0 10px}.inspector-section{display:block;border:1px solid #234f64;border-radius:7px;background:#0a2234;margin:9px 0;padding:10px}.inspector-section h3{margin:0 0 9px;font-size:14px}.inspector-section summary{cursor:pointer;color:#d9f4ff;font-weight:700;padding:3px 0 8px}.details-content{padding-top:3px}.object-actual-size{margin:-3px 0 9px;padding:8px;border:1px solid #315e70;background:#061825;color:#7de0f7;font-size:12px}.scale-four{display:grid!important;grid-template-columns:repeat(2,1fr)}.scale-help{margin:5px 0 0;color:#86a9b8;font-size:11px;line-height:1.45}.inspector-actions{position:sticky;bottom:-12px;background:#071a2cf5;padding:10px 0 2px;border-top:1px solid #245168}.object-load-state{margin-top:9px}.editor-object-pin.building-info-pin.selected,.editor-object-pin.building-info-pin.pending{width:30px;height:30px;border-radius:50%;background:#d58f2a;color:#fff;border-color:#fff}.editor-object-pin.building-info-pin.selected .building-pin-glyph{font-size:17px}
@media(max-width:1180px){.editor-view-actions{max-width:100%}.editor-edit-actions{flex-direction:column}.asset-tabs{grid-template-columns:1fr 1fr!important}}

/* V22.2.8 comprehensive editor layout and drag/drop */
:root{--asset-panel-width:clamp(248px,17vw,278px);--property-panel-width:clamp(286px,19vw,320px)}
body.standalone-map-builder.editing-active .asset-drawer{
  display:flex!important;flex-direction:column!important;left:10px!important;right:auto!important;top:192px!important;bottom:10px!important;
  width:var(--asset-panel-width)!important;min-width:248px!important;max-width:278px!important;height:auto!important;min-height:0!important;
  padding:8px!important;overflow-y:auto!important;overflow-x:hidden!important;border:1px solid #28779e!important;border-radius:7px!important;box-sizing:border-box!important
}
.asset-drawer-toolbar{position:relative!important;flex:0 0 auto!important;padding:0 34px 7px 0!important;background:#071a2c!important}
.asset-library-title{display:block;margin:0 0 6px 2px;color:#d9f5ff;font-size:13px}
.asset-drawer-close{position:absolute!important;right:0!important;top:0!important;width:28px!important;height:28px!important;padding:0!important}
.asset-tabs{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:5px!important;margin:0!important;padding:0!important;border:0!important}
.asset-tabs button{min-height:31px!important;padding:4px 3px!important;border-radius:4px!important;font-size:11px!important;line-height:1.15!important;white-space:normal!important}
.asset-import-row{display:grid;grid-template-columns:76px minmax(0,1fr);align-items:center;gap:7px;flex:0 0 auto;min-height:40px;padding:6px 2px;border-bottom:1px solid #1b4861}
.asset-import-row .import-glb-btn{display:grid;place-items:center;min-height:31px;padding:3px 5px;border:1px solid #2f95bd;background:#0b4260;color:#eaf9ff;font-size:11.5px;cursor:pointer}
.batch-delete-toggle{min-height:31px;padding:3px 8px;border:1px solid #8a5a3a;background:#4a3520;color:#ffd8a8;font-size:11px;cursor:pointer}
.batch-delete-toggle.active{background:#8a3a3a;border-color:#cc5555;color:#ffcccc}
.batch-checkbox{position:absolute;top:4px;left:4px;z-index:2;padding:2px 4px;background:#00000088;border-radius:3px;font-size:11px;color:#ccc;cursor:pointer;display:flex;align-items:center;gap:4px}
.batch-checkbox input[type=checkbox]{margin:0;accent-color:#cc5555}
.batch-selectable{position:relative}
.batch-confirm-bar{display:flex;gap:6px;padding:6px 2px;border-top:1px solid #1b4861;flex:0 0 auto}
.batch-confirm-bar button{padding:6px 10px;font-size:11px;border-radius:4px;cursor:pointer}
.batch-confirm-bar .danger{background:#8a2a2a;border:1px solid #cc5555;color:#ffcccc}
.batch-confirm-bar .danger:disabled{opacity:.4;cursor:not-allowed}
.asset-import-row span{font-size:10.5px;line-height:1.3;color:#91adba}
.asset-grid{display:flex!important;flex-direction:column!important;flex:1 1 auto!important;min-height:0!important;height:auto!important;max-height:none!important;gap:6px!important;overflow-y:auto!important;overflow-x:hidden!important;padding:6px 2px 3px!important}
.asset-card{display:grid!important;grid-template-columns:82px minmax(0,1fr)!important;align-items:center!important;gap:7px!important;min-height:82px!important;padding:6px!important;border:1px solid #1e4e69!important;border-radius:6px!important;background:#092137!important;cursor:grab!important;box-sizing:border-box!important}
.asset-card:active,.asset-card.is-dragging{cursor:grabbing!important;opacity:.68!important;border-color:#55b9da!important}
.asset-card.active{border-color:#4fe1ff!important;box-shadow:0 0 0 1px #31cafc55!important}
.asset-image{grid-row:auto!important;width:82px!important;height:66px!important;min-height:66px!important;display:grid!important;place-items:center!important;overflow:hidden!important;border-radius:4px!important;background:linear-gradient(145deg,#123a52,#071b2a)!important}
.asset-image img,.asset-image canvas{width:100%!important;height:100%!important;max-width:78px!important;max-height:62px!important;object-fit:contain!important;object-position:center!important;padding:3px!important;box-sizing:border-box!important}
.asset-card-body{min-width:0!important;padding:0!important}
.asset-card-body strong,.asset-card-body small,.asset-card-body span{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.asset-card-body strong{font-size:12px;color:#e8f8ff}.asset-card-body small{margin-top:3px;font-size:10.5px;color:#85a9b9}.asset-card-body>span{margin-top:5px;font-size:10px;color:#64cae7}
.asset-mini-actions{display:flex;flex-wrap:wrap;gap:4px;margin-top:5px}.asset-mini-actions button{min-height:24px;padding:2px 6px;font-size:10px;flex:0 1 auto}
.legacy-placement-controls,.placement-settings,.selected-asset-summary,.mode-buttons{display:none!important}
.utility-card{flex:0 0 auto!important;padding:10px!important}.utility-card button{min-height:30px!important}
body.standalone-map-builder .object-inspector{width:var(--property-panel-width)!important;min-width:286px!important;max-width:320px!important;right:10px!important;top:192px!important;bottom:10px!important;max-height:none!important;padding:12px!important;box-sizing:border-box!important}
.object-inspector label{margin-bottom:7px!important}.object-inspector input,.object-inspector select{padding:6px!important}.inspector-section{padding:8px!important;margin:7px 0!important}.object-inspector>header{top:-12px!important}.inspector-actions{gap:5px!important}
body.asset-drag-over-map .maplibregl-canvas-container{outline:2px dashed rgba(73,202,236,.78);outline-offset:-5px}
.maplibregl-canvas-container.drop-allowed{cursor:copy!important}.maplibregl-canvas-container.drop-not-allowed{cursor:not-allowed!important}
.asset-drag-ghost{position:fixed;left:-10000px;top:-10000px;width:108px;min-height:72px;padding:6px;display:grid;gap:4px;place-items:center;border:1px solid #55b9da;border-radius:7px;background:#0c2638;color:#fff;box-shadow:0 8px 24px #0005;pointer-events:none}.asset-drag-ghost img{width:88px;height:45px;object-fit:contain}.asset-drag-ghost span{max-width:98px;overflow:hidden;font-size:10px;text-overflow:ellipsis;white-space:nowrap}
.editor-object-pin.building-info-pin{width:22px!important;height:22px!important;font-size:11px!important;opacity:.84}.editing-active .editor-object-pin.building-info-pin:not(.selected){display:none!important}
@media(max-width:980px){:root{--asset-panel-width:248px;--property-panel-width:286px}body.standalone-map-builder.editing-active .asset-drawer{top:210px!important}.asset-tabs button{font-size:10.5px!important}}


/* V22.2.8 panel close reliability and visible 3D selection */
.editor-object-pin.model-warning-pin{border-color:#ff5964!important;background:#8e1724!important;color:#fff!important;box-shadow:0 0 0 3px rgba(255,56,76,.22),0 5px 16px rgba(90,0,12,.48)!important}
body.standalone-map-builder.editing-active .asset-drawer[hidden],
body.editing-active .asset-drawer[hidden],
.asset-drawer[hidden]{
  display:none!important;
}
.asset-drawer-close{
  z-index:8!important;
  pointer-events:auto!important;
  background:transparent!important;
  color:var(--yihu-text-secondary)!important;
  border:0!important;
  cursor:pointer!important;
}
body:not(.asset-drawer-open) .asset-drawer{
  display:none!important;
}
.maplibregl-canvas-container{
  min-width:0;
}
.editor-object-pin.building-info-pin{
  pointer-events:auto;
}

/* V22.2.8: ������������ - ������ʾ��ƥ��༭����ɫ���� */
.export-name-dialog{width:min(480px,90vw)}.export-name-dialog>header{border-bottom-color:#1d5e7a}.export-name-body{padding:8px 0 4px}.export-name-label{display:block;color:#b8d4e0;margin:0 0 8px;font-size:14px}.export-name-label input{width:100%;box-sizing:border-box;margin-top:6px;padding:10px 12px;background:#061526;border:1px solid #2a5872;border-radius:4px;color:#e8f4ff;font-size:15px;outline:none;transition:border-color .2s}.export-name-label input:focus{border-color:var(--ed-cyan);box-shadow:0 0 0 2px rgba(68,213,255,.15)}.export-name-preview{margin:4px 0 12px;padding:8px 12px;background:#081f34;border:1px solid #1d4b67;border-radius:4px;color:#86adbf;font-size:14px}.export-name-preview strong{color:#65ddb0;font-weight:600}

/* V22.2.8: ����ģʽ - ��������UI��壬ֻ������ͼ */
body.map-immersive .simple-editor-bar,
body.map-immersive .asset-drawer,
body.map-immersive .object-inspector,
body.map-immersive .batch-panel,
body.map-immersive .placement-hint,
body.map-immersive .editor-toast,
body.map-immersive .basemap-status,
body.map-immersive .base-panel-toggle,
body.map-immersive .region-crop-panel,
body.map-immersive .blank-workspace-guide,
body.map-immersive .maplibregl-ctrl-bottom-left,
body.map-immersive .maplibregl-ctrl-bottom-right{display:none!important;opacity:0!important;pointer-events:none!important}
body.map-immersive #platformUserBadge,body.map-immersive .platform-user-badge{display:none!important;opacity:0!important;pointer-events:none!important}
body.map-immersive .editor-modal:not(.camera-viewer-modal){display:none!important}
.immersive-exit-btn{position:fixed;bottom:28px;left:50%;transform:translateX(-50%);z-index:200;padding:8px 18px;border:1px solid rgba(255,255,255,.25);border-radius:20px;background:rgba(6,26,45,.88);color:#b8d4e0;font-size:13px;cursor:pointer;backdrop-filter:blur(6px);box-shadow:0 6px 30px rgba(0,0,0,.45);transition:all .25s}.immersive-exit-btn:hover{background:rgba(12,48,72,.92);border-color:var(--ed-cyan);color:#e8f4ff}.immersive-exit-btn[hidden]{display:none!important}
body.map-immersive #map{position:fixed!important;inset:0!important;z-index:0!important}

/* V22.2.8: ����ν������ƹ����� */
.polygon-building-bar{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);z-index:130;display:flex;align-items:center;gap:12px;padding:10px 18px;background:#071e33f2;border:1px solid var(--ed-cyan);border-radius:8px;color:var(--ed-text);box-shadow:0 8px 32px #000b;backdrop-filter:blur(6px)}.polygon-building-bar[hidden]{display:none!important}.polygon-building-bar strong{font-size:15px;color:var(--ed-cyan)}.polygon-building-bar span{color:var(--ed-muted);font-size:13px;min-width:64px}.polygon-building-bar .polygon-hint{color:#8ab8cc;font-size:12px;min-width:auto;white-space:nowrap}.polygon-building-bar button{padding:7px 14px}

/* YIHU Render Kit V1.2.0: independent width/depth controls */
.dimension-quick-actions{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:5px;margin:7px 0 9px}.dimension-quick-actions button{min-height:30px;padding:4px 5px;font-size:11px;line-height:1.15}.dimension-quick-actions button:hover{border-color:#35d8ff}@media(max-width:1200px){.dimension-quick-actions{grid-template-columns:repeat(3,minmax(0,1fr))}}
