﻿*{box-sizing:border-box}
*::-webkit-scrollbar{width:7px;height:7px}
*::-webkit-scrollbar-track{background:transparent}
*::-webkit-scrollbar-thumb{background:#2b3b57;border-radius:999px;border:2px solid transparent;background-clip:content-box}
*::-webkit-scrollbar-thumb:hover{background:#4f6b99;background-clip:content-box}
html,body{height:100%;margin:0}
body{font-family:"Noto Sans SC","PingFang SC","Microsoft Yahei",Arial,sans-serif;background:#090f1b;color:#dce6f5;overflow:hidden;scrollbar-color:#344764 transparent;scrollbar-width:thin}
button,input,select{font:inherit}
button,select{border:1px solid #263248;background:#111a2b;color:#e6edf7;border-radius:8px;height:32px;padding:0 10px}
button{cursor:pointer}
button:hover{border-color:#5b7db8;background:#17243a}
button.primary{background:linear-gradient(180deg,#4f8dff,#2f6fe8);border-color:#5e96ff;color:#fff;font-weight:800;box-shadow:0 8px 18px rgba(47,111,232,.26)}
button.active-mode{background:#24385c;border-color:#72a1ff;color:#fff}
.app{height:100%;min-width:0;overflow:hidden;display:grid;grid-template-columns:286px minmax(0,1fr) 264px}
.sidebar{min-width:0;height:100%;overflow:auto;background:linear-gradient(180deg,#111a2a,#0c1320);border-color:#263248;padding:12px;display:flex;flex-direction:column}
.sidebar button,.sidebar .small-upload{font-size:12px;font-weight:700;line-height:1;letter-spacing:0}
.left-panel{border-right:1px solid #263248}
.right-panel{border-left:1px solid #263248}
.brand{padding:4px 4px 12px;display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.brand-title{display:flex;flex-wrap:wrap;align-items:baseline;gap:0 6px;min-width:0}
.brand strong{font-size:20px;color:#fff;letter-spacing:0;flex-shrink:0}
.brand-sub{font-size:11px;color:#fff;white-space:nowrap;flex-shrink:0}
.brand-desc{font-size:11px;color:#8da0bb;width:100%;margin-top:3px}
.brand-copyright{font-size:10px;color:#7a9abf;text-align:center;padding:10px 4px 6px;border-top:1px solid rgba(95,116,150,.22);margin-top:auto}
.help-icon-btn{width:32px;height:32px;padding:0;border-radius:50%;font-size:16px;background:#17243a;border-color:#35517a;flex:0 0 auto}
.panel-section{border-top:1px solid rgba(95,116,150,.22);padding:12px 0}
.panel-section:first-child{border-top:0}
.panel-section h2{font-size:13px;margin:0 0 10px;color:#d5e2fb;font-weight:800;letter-spacing:.3px}
.panel-section.panel-hidden,.style-empty-section.panel-hidden,.right-panel label.panel-hidden,.right-panel .panel-hidden{display:none!important}
.upload-btn{display:flex;align-items:center;justify-content:center;height:38px;background:linear-gradient(180deg,#5b8cff,#3d73ee);color:#fff;border-radius:8px;font-size:13px;font-weight:800;cursor:pointer;box-shadow:0 10px 22px rgba(59,130,246,.22)}
.upload-btn input{display:none}
body[data-draw-mode="image"] .basemap-switch,
body[data-draw-mode="map"] .basemap-switch,
body[data-draw-mode="image"] .map-mode-actions,
body[data-draw-mode="map"] .map-mode-actions{display:none!important}
body[data-draw-mode="map"] .upload-btn{display:none!important}
body[data-draw-mode="image"] .map-search-row,
body[data-draw-mode="image"] #mapLayerControl,
body[data-draw-mode="image"] .map-settings-section,
body[data-draw-mode="image"] .geojson-upload-control{display:none!important}
.small-upload{display:flex;align-items:center;justify-content:center;height:32px;border:1px solid #263248;background:#111a2b;color:#e6edf7;border-radius:8px;padding:0 10px;font-size:12px;cursor:pointer}
.small-upload:hover{border-color:#5b7db8;background:#17243a}
.small-upload input{display:none}
.small-upload.block,.wide-btn{width:100%;margin-top:8px}
.mini-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:8px}
.mini-actions button{height:32px;padding:0 8px}
.map-search-row{display:grid;grid-template-columns:1fr 58px;gap:7px;margin-top:8px}
.map-search-row input{min-width:0;height:32px;border:1px solid #263248;background:#0b1220;color:#e6edf7;border-radius:8px;padding:0 9px;outline:none}
.map-search-row input:focus{border-color:#5b8cff;box-shadow:0 0 0 3px rgba(91,140,255,.13)}
.tool-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.tool-btn{height:32px;padding:0 5px;font-size:12px;background:#111b2d;color:#cbd8ee}
.tool-btn.active{background:linear-gradient(180deg,#5c86ff,#446ff1);border-color:#86a7ff;color:#fff;box-shadow:0 8px 18px rgba(79,124,255,.22)}
.icon-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;margin-bottom:10px}
.icon-tab{height:30px;padding:0 4px;font-size:11px;background:#101a2b;color:#b8c7df;border-radius:7px}
.icon-tab.active{background:#4f7cff;border-color:#82a4ff;color:#fff}
.icon-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:6px}
.icon-group-heading{grid-column:1/-1;margin:5px 0 0;padding:7px 8px 5px;border-bottom:1px solid #2b3b57;color:#91a9ca;font-size:11px;font-weight:800;letter-spacing:.04em}
.icon-group-heading:first-child{margin-top:0}
.icon-item{height:40px;padding:0;border-radius:8px;display:flex;align-items:center;justify-content:center;background:#0a111e;border-color:#202d44}
.icon-item:hover{background:#111d31;border-color:#5b7db8}
.icon-item[draggable="true"]{cursor:grab}
.icon-item[draggable="true"]:active{cursor:grabbing}
.icon-item.active{outline:2px solid #5f8cff;border-color:#8aabff;background:#15233c}
.icon-item img{width:31px;height:31px;object-fit:contain;display:block}
.stage-wrap{min-width:0;min-height:0;height:100%;overflow:hidden;display:grid;grid-template-rows:auto minmax(0,1fr);background:#0b1020}
.topbar{min-width:0;min-height:48px;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:7px 10px;border-bottom:1px solid #263248;background:#111827}
.top-actions,.zoom-actions,.export-actions,.basemap-switch{min-width:0;display:flex;align-items:center;gap:8px}
.topbar button,.topbar select{white-space:nowrap;flex:0 0 auto}
.responsive-panel-toggle,.responsive-panel-header,.responsive-panel-backdrop{display:none}
.vector-export-btn{border-color:#4d78b8;background:linear-gradient(180deg,#183a67,#122b4d);color:#eaf3ff}
.vector-export-btn:hover{border-color:#79a8ed;background:linear-gradient(180deg,#214d86,#173762)}
.basemap-switch{height:34px;padding:3px;border:1px solid #2a3a55;background:#0a1220;border-radius:10px}
.basemap-switch button{height:26px;border:0;background:transparent;color:#91a4c2;border-radius:7px;font-size:12px;font-weight:800;padding:0 13px}
.basemap-switch button.active{background:#e8f1ff;color:#0b1220;box-shadow:0 6px 16px rgba(110,157,255,.25)}
.mode-switch{display:flex;align-items:center;gap:3px;height:34px;padding:3px;border:1px solid #263248;background:#0b1220;border-radius:10px;box-shadow:inset 0 1px 0 rgba(255,255,255,.04)}
.mode-switch button{height:26px;border:0;border-radius:7px;background:transparent;color:#91a4c2;font-size:12px;font-weight:800;padding:0 14px}
.mode-switch button.active{background:linear-gradient(180deg,#5c86ff,#446ff1);color:#fff;box-shadow:0 6px 15px rgba(79,124,255,.28)}
.arrow-mode-buttons{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;margin:6px 0 9px}
.arrow-mode-buttons button{height:28px;padding:0 4px;font-size:10px;font-weight:700;border-radius:6px;background:#0d1626;border-color:#20314a;color:#aebed8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;box-shadow:inset 0 1px 0 rgba(255,255,255,.03)}
.arrow-mode-buttons button:hover{background:#142037;border-color:#405c88;color:#e5eefc}
.arrow-mode-buttons button.active{background:#244675;border-color:#6f9dff;color:#fff;box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 5px 12px rgba(47,111,232,.18)}
.zoom-actions span{min-width:54px;text-align:center;color:#b9cdf0;font-weight:700}
.canvas-shell{position:relative;overflow:hidden;background:#0a0f1c;background-image:linear-gradient(45deg,#0f1726 25%,transparent 25%),linear-gradient(-45deg,#0f1726 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#0f1726 75%),linear-gradient(-45deg,transparent 75%,#0f1726 75%);background-size:32px 32px;background-position:0 0,0 16px,16px -16px,-16px 0}
.canvas-shell.map-mode{background:#101827;background-image:none}
.canvas-shell.dragging-icon:before{content:"松开放置图标";position:absolute;left:50%;top:18px;transform:translateX(-50%);z-index:4;padding:8px 12px;border-radius:999px;background:rgba(15,23,38,.88);border:1px solid rgba(120,160,235,.5);color:#eaf1ff;font-size:12px;font-weight:800;pointer-events:none;box-shadow:0 10px 28px rgba(0,0,0,.28)}
.amap-layer{position:absolute;inset:0;z-index:0;display:none;background:#101827}
.canvas-shell.map-mode .amap-layer{display:block}
#board{position:absolute;inset:0;z-index:1;display:block;width:100%;height:100%;cursor:crosshair;touch-action:none}
.map-layer-control{position:absolute;left:14px;top:14px;z-index:3;display:none;width:92px;padding:8px 9px;border-radius:4px;background:rgba(255,255,255,.96);box-shadow:0 8px 24px rgba(0,0,0,.22);color:#202733;font-size:13px;line-height:1.2}
.canvas-shell.map-mode .map-layer-control{display:block}
.map-layer-control label{display:flex;align-items:center;gap:5px;height:24px;white-space:nowrap}
.map-layer-control input{width:13px;height:13px;margin:0;accent-color:#1677ff}
.empty-tip{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);text-align:center;color:#8ea1bd;pointer-events:none}
.empty-tip strong{display:block;color:#dce6f5;font-size:22px;margin-bottom:8px}
.empty-tip.hidden{display:none}
.right-panel label{display:block;font-size:12px;color:#9fb1cc;margin:9px 0}
.right-panel label.check-row{display:flex;align-items:center;gap:8px}
.right-panel label.check-row input{width:auto;margin:0;accent-color:#4f7cff}
.boundary-glow-control{margin:12px 0 10px;padding:10px 11px;border:1px solid rgba(0,229,255,.25);border-radius:9px;background:linear-gradient(135deg,rgba(0,229,255,.08),rgba(114,75,255,.07));box-shadow:inset 0 0 18px rgba(0,229,255,.035)}
.boundary-glow-title{margin-bottom:4px;color:#bdf9ff;font-size:12px;font-weight:900;letter-spacing:.04em}
.right-panel .boundary-glow-control label{margin:8px 0}
.right-panel input,.right-panel select{width:100%;margin-top:7px}
.right-panel input[type="color"]{height:34px;padding:3px;background:#0b1220;border:1px solid #263248;border-radius:8px}
.right-panel input[type="range"]{accent-color:#4f7cff}
.map-feature-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.map-feature-grid label{display:flex;align-items:center;gap:6px;margin:0;padding:7px 8px;border:1px solid #223149;border-radius:8px;background:#0b1220}
.map-feature-grid input{width:auto;margin:0;accent-color:#4f7cff}
.map-scale-settings{margin-top:12px;padding:10px 11px;border:1px solid #2a3a56;border-radius:9px;background:rgba(10,18,32,.66)}
.map-scale-settings-title{margin-bottom:8px;color:#d5e2fb;font-size:12px;font-weight:800}
.map-scale-settings .hint{margin:9px 0 0;line-height:1.55}
.canvas-shell.map-branding-ready .amap-logo,.canvas-shell.map-branding-ready .amap-copyright{display:none!important}
.hint{font-size:12px;line-height:1.65;color:#91a4c2;margin:0 0 7px}
.info-row{display:flex;align-items:center;justify-content:space-between;padding:8px 0;border-bottom:1px solid #1f293a;font-size:13px}
.info-row span{color:#91a4c2}
.info-row strong{color:#fff}
.panel-title-row{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}
.panel-title-row h2{margin:0}
.project-actions-section{padding:3px 0 13px}
.project-actions-title{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin:0 1px 9px}
.project-actions-title strong{color:#f4f8ff;font-size:14px;font-weight:900}
.project-actions-title small{color:#7890b2;font-size:10px}
.project-actions-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
.right-panel .project-action{display:flex;min-width:0;height:50px;margin:0;padding:7px 8px;align-items:center;justify-content:center;flex-direction:column;gap:4px;border-radius:9px;cursor:pointer;text-align:center;line-height:1}
.right-panel .project-action strong{font-size:13px;font-weight:900;color:#fff}
.right-panel .project-action small{font-size:10px;font-weight:500;color:rgba(255,255,255,.72)}
.project-save-action{border-color:#669bff!important;background:linear-gradient(180deg,#4f8dff,#2f6fe8)!important;box-shadow:0 9px 20px rgba(47,111,232,.28)}
.project-save-action:hover{border-color:#8db5ff!important;background:linear-gradient(180deg,#639bff,#3978ed)!important}
.right-panel .project-load-action{border:1px solid #3b8f86;background:linear-gradient(180deg,#1f6f68,#15524d);box-shadow:0 9px 20px rgba(19,92,84,.24)}
.right-panel .project-load-action:hover{border-color:#62b6ac;background:linear-gradient(180deg,#28847b,#19625b)}
.project-load-action input{display:none}
.layer-actions{display:flex;gap:4px}
.layer-actions button{display:inline-flex;width:28px;height:28px;padding:0;align-items:center;justify-content:center}
.layer-actions button svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.layer-list{display:flex;flex-direction:column;gap:6px;max-height:220px;overflow:auto;padding-right:2px}
.layer-item{display:grid;grid-template-columns:26px minmax(0,1fr) 26px;align-items:center;gap:7px;border:1px solid #243149;background:#0a111e;border-radius:8px;padding:6px;color:#dce6f5;text-align:left;min-height:48px}
.layer-item.active{border-color:#75a0ff;background:#14243e;box-shadow:inset 3px 0 0 #5b8cff}
.layer-item.hidden-layer{opacity:.48}
.layer-visibility{width:26px;height:26px;padding:0;border-radius:7px;font-size:11px}
.layer-name{min-width:0;height:36px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:2px;padding:4px 8px;text-align:left;line-height:1;background:#111a2b;border-radius:7px;overflow:hidden}
.layer-name strong{display:block;width:100%;font-size:12px;line-height:14px;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.layer-name span{display:block;width:100%;font-size:10px;line-height:12px;color:#8ea1bd;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.layer-delete{width:26px;height:26px;padding:0;color:#ffb4b4}
.modal{position:fixed;inset:0;z-index:50;display:flex;align-items:center;justify-content:center;background:rgba(3,7,18,.62);backdrop-filter:blur(8px)}
.modal.hidden{display:none}
.modal-box{width:min(720px,calc(100vw - 32px));max-height:min(82vh,760px);overflow:auto;border:1px solid #2a3a56;background:#0f1726;color:#dce6f5;border-radius:12px;padding:16px;box-shadow:0 24px 70px rgba(0,0,0,.42)}
.modal-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.modal-title strong{font-size:16px;color:#fff}
.modal-title button{width:30px;height:30px;padding:0}
.modal-box p{margin:8px 0;color:#aebdda;line-height:1.75;font-size:13px}
.modal-box h3{margin:15px 0 6px;color:#fff;font-size:14px}
.modal-box ul{margin:6px 0 0;padding-left:18px;color:#aebdda;font-size:13px;line-height:1.75}
.modal-box li{margin:2px 0}
.modal-box a{color:#5aaeff;text-decoration:underline}.modal-box a:hover{color:#82c1ff}
.modal-box section{border-top:1px solid rgba(120,145,185,.16);padding-top:8px}
.modal-box section:first-of-type{border-top:0;padding-top:0}
.geojson-label-box{width:min(980px,calc(100vw - 32px));max-height:min(90vh,860px);padding:18px;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable}
.geojson-label-intro{margin:0 0 12px!important}
.geojson-label-config-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;padding:12px;border:1px solid #2d4468;border-radius:10px;background:linear-gradient(135deg,#152844,#101c30)}
.geojson-label-config-grid label,.geojson-import-icon-options label{display:block;min-width:0;color:#9eb3ce;font-size:12px;font-weight:800}
.geojson-label-config-grid select,.geojson-import-icon-options select,.geojson-import-icon-options input[type="number"]{display:block;width:100%;height:38px;margin-top:6px;padding:0 10px;border:1px solid #3a557b;border-radius:8px;outline:none;background:#091321;color:#eef6ff;font-size:13px}
.geojson-label-config-grid select:focus,.geojson-import-icon-options select:focus,.geojson-import-icon-options input[type="number"]:focus{border-color:#6aa4ee;box-shadow:0 0 0 3px rgba(79,140,224,.13)}
.geojson-import-icon-options{display:grid;grid-template-columns:minmax(0,1fr) 120px;align-items:end;gap:10px;margin-top:10px;padding:11px 12px;border:1px solid #284b67;border-radius:10px;background:#0d1d2d}
.geojson-import-icon-options.hidden{display:none}
.geojson-import-icon-options>label:first-child{grid-column:1/-1}
.geojson-icon-value-select{display:none!important}
.geojson-icon-picker-grid{grid-column:1/-1;display:grid;grid-template-columns:repeat(10,minmax(38px,1fr));gap:6px;max-height:156px;overflow:auto;padding:6px;border:1px solid #2c4261;border-radius:9px;background:#08111e}
.geojson-icon-picker-item{display:flex;align-items:center;justify-content:center;min-width:0;height:42px;padding:4px;border:1px solid #2d3f59;border-radius:7px;background:#eef3f8;box-shadow:none}
.geojson-icon-picker-item:hover{border-color:#78a3dc;background:#fff}
.geojson-icon-picker-item.active{border-color:#80aeed;background:#fff;box-shadow:0 0 0 2px #376da9,inset 0 0 0 1px rgba(255,255,255,.8)}
.geojson-icon-picker-item img{display:block;width:31px;height:31px;object-fit:contain;pointer-events:none}
.geojson-icon-picker-empty{grid-column:1/-1;padding:18px 8px;color:#8298b9;text-align:center;font-size:12px}
.geojson-import-icon-options input[type="color"]{display:block;width:100%;height:38px;margin-top:6px;padding:3px;border:1px solid #3a557b;border-radius:8px;background:#091321}
.geojson-label-field-meta{max-width:none;margin:8px 2px 0;color:#8399b9;font-size:11px;line-height:1.55;text-align:left}
.geojson-label-field-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:12px;padding:12px;border:1px solid #2d4468;border-radius:10px;background:linear-gradient(135deg,#152844,#101c30)}
.geojson-label-field-row label{display:block;min-width:0;color:#9eb3ce;font-size:12px;font-weight:800}
.geojson-label-field-row select{display:block;width:100%;height:38px;margin-top:6px;padding:0 10px;border:1px solid #3a557b;border-radius:8px;outline:none;background:#091321;color:#eef6ff;font-size:13px}
.geojson-label-field-row select:focus{border-color:#6aa4ee;box-shadow:0 0 0 3px rgba(79,140,224,.13)}
.geojson-label-field-meta{max-width:none;margin:8px 2px 0;color:#8399b9;font-size:11px;line-height:1.55;text-align:left}
.geojson-label-selection-hint{min-height:21px;margin:8px 2px!important;color:#8ca6ca!important;font-size:12px!important}
.geojson-label-preview{max-height:min(44vh,390px);overflow:auto;border:1px solid #253956;border-radius:10px;background:#09111f}
.geojson-label-table{width:max-content;min-width:100%;border-collapse:separate;border-spacing:0;color:#c9d8ec;font-size:12px}
.geojson-label-table th,.geojson-label-table td{max-width:240px;padding:8px 10px;border-right:1px solid #22324a;border-bottom:1px solid #22324a;overflow:hidden;text-align:left;white-space:nowrap;text-overflow:ellipsis}
.geojson-label-table th{position:sticky;z-index:1;top:0;background:#15243a;color:#f0f6ff;font-weight:850}
.geojson-label-table th:last-child,.geojson-label-table td:last-child{border-right:0}
.geojson-label-table tbody tr:last-child td{border-bottom:0}
.geojson-label-table tbody tr:nth-child(even) td{background:rgba(33,52,80,.24)}
.geojson-label-table .is-label-field{background:#183f66;color:#dff2ff;box-shadow:inset 0 0 0 1px rgba(91,166,232,.28)}
.geojson-label-empty{padding:28px 12px;color:#8298b9;text-align:center;font-size:13px}
.geojson-label-actions{position:sticky;z-index:4;bottom:0;display:flex;align-items:center;justify-content:space-between;gap:12px;margin:12px -18px -18px;padding:12px 18px 18px;border-top:1px solid #263b59;background:linear-gradient(180deg,rgba(15,23,38,.96),#0f1726 34%);box-shadow:0 -10px 24px rgba(3,8,18,.2)}
.geojson-label-actions span{color:#7187a6;font-size:11px;line-height:1.5}
.geojson-label-actions>div{display:flex;flex:0 0 auto;gap:7px}
.geojson-label-actions button{min-width:92px;height:36px}
.geojson-label-actions button:disabled{cursor:not-allowed;opacity:.48}
.admin-boundary-box{width:min(820px,calc(100vw - 32px));padding:18px;overflow:hidden}
.admin-boundary-intro{margin:0 0 12px!important}
.admin-boundary-search-row{display:grid;grid-template-columns:minmax(0,1fr) 64px;gap:8px}
.admin-boundary-search-row input{height:36px;min-width:0;padding:0 11px;border:1px solid #2a3a56;border-radius:8px;outline:none;background:#09111f;color:#eef5ff}
.admin-boundary-search-row input:focus{border-color:#5b8cff;box-shadow:0 0 0 3px rgba(91,140,255,.13)}
.admin-boundary-breadcrumbs{display:flex;align-items:center;flex-wrap:wrap;gap:5px;margin:12px 0 10px;min-height:28px}
.admin-boundary-breadcrumbs button{height:27px;padding:0 8px;border-color:#273a58;background:#111e33;color:#a9bddb;font-size:12px}
.admin-boundary-breadcrumbs button:after{content:" /";margin-left:8px;color:#526987}
.admin-boundary-breadcrumbs button:last-child{border-color:#4f7cff;background:#203c6c;color:#fff}
.admin-boundary-breadcrumbs button:last-child:after{display:none}
.admin-boundary-current{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 13px;border:1px solid #2d4468;border-radius:10px;background:linear-gradient(135deg,#152844,#101c30)}
.admin-boundary-current>div{min-width:0;display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.admin-boundary-current .admin-boundary-eyebrow{width:100%;color:#7f97bb;font-size:11px;font-weight:800}
.admin-boundary-current strong{color:#fff;font-size:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.admin-boundary-current small{color:#91a8c9;font-size:12px}
.admin-boundary-current button{flex:0 0 auto;min-width:138px}
.admin-boundary-list-head{display:flex;align-items:center;justify-content:space-between;margin:14px 2px 8px;color:#d8e6fa;font-size:13px}
.admin-boundary-list-head span{color:#7f96b7;font-size:12px}
.admin-boundary-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;max-height:min(42vh,380px);overflow:auto;padding:1px 3px 1px 1px}
.admin-boundary-item{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;min-height:54px;padding:7px 8px 7px 11px;border:1px solid #23334d;border-radius:9px;background:#0b1423}
.admin-boundary-item:hover{border-color:#3d5d8b;background:#101d31}
.admin-boundary-item-info{min-width:0}
.admin-boundary-item-info strong{display:block;overflow:hidden;color:#eef5ff;font-size:13px;white-space:nowrap;text-overflow:ellipsis}
.admin-boundary-item-info span{display:block;overflow:hidden;margin-top:4px;color:#7188aa;font-size:11px;white-space:nowrap;text-overflow:ellipsis}
.admin-boundary-item-actions{display:flex;gap:5px}
.admin-boundary-item-actions button{height:28px;padding:0 8px;font-size:11px}
.admin-boundary-item-actions .admin-boundary-add{border-color:#327e76;background:#164a46;color:#dffffa}
.admin-boundary-empty{grid-column:1/-1;padding:28px 12px;border:1px dashed #2a3a56;border-radius:9px;color:#8298b9;text-align:center;font-size:13px}
.admin-boundary-status{min-height:20px;margin-top:9px;color:#7f96b7;font-size:12px;line-height:20px}
.admin-boundary-status.is-success{color:#65d6a6}
.admin-boundary-status.is-error{color:#ff9d9d}
.admin-boundary-status.is-loading{color:#89b4ff}
.admin-boundary-box button:disabled{cursor:not-allowed;opacity:.5}
.right-panel{gap:9px;background:linear-gradient(180deg,#101928 0%,#0b121e 100%)}
.right-panel>.panel-section,.right-panel>.project-actions-section{--group-accent:#6684ad;--group-border:rgba(102,132,173,.34);--group-tint:rgba(102,132,173,.13);flex:0 0 auto;margin:0;padding:11px 10px 12px;border:1px solid var(--group-border);border-left:3px solid var(--group-accent);border-radius:11px;background:linear-gradient(145deg,var(--group-tint),rgba(8,15,27,.82) 70%);box-shadow:inset 0 1px 0 rgba(255,255,255,.025),0 6px 16px rgba(0,0,0,.12)}
.right-panel>.project-actions-section{--group-accent:#668ccc;--group-border:rgba(102,140,204,.4);--group-tint:rgba(71,105,158,.18)}
.right-panel>.layer-section{--group-accent:#5d829b;--group-border:rgba(93,130,155,.38);--group-tint:rgba(71,104,128,.16)}
.right-panel>#styleEmptySection,.right-panel>#styleReusePanel{--group-accent:#7181ad;--group-border:rgba(113,129,173,.36);--group-tint:rgba(83,96,139,.15)}
.right-panel>#lineStylePanel{--group-accent:#5e7fa8;--group-border:rgba(94,127,168,.37);--group-tint:rgba(67,94,129,.16)}
.right-panel>#fillIconPanel{--group-accent:#56898d;--group-border:rgba(86,137,141,.38);--group-tint:rgba(57,107,112,.15)}
.right-panel>#areaLabelPanel{--group-accent:#77779f;--group-border:rgba(119,119,159,.36);--group-tint:rgba(89,86,126,.15)}
.right-panel>#textStylePanel{--group-accent:#706f99;--group-border:rgba(112,111,153,.36);--group-tint:rgba(82,80,119,.15)}
.right-panel>.map-settings-section{--group-accent:#627f70;--group-border:rgba(98,127,112,.38);--group-tint:rgba(71,101,84,.15)}
.right-panel>#curveHelpPanel{--group-accent:#68798f;--group-border:rgba(104,121,143,.34);--group-tint:rgba(76,91,111,.13)}
.right-panel>.panel-section:last-child{--group-accent:#667386;--group-border:rgba(102,115,134,.32);--group-tint:rgba(77,89,107,.12)}
.right-panel>.panel-section>h2,.right-panel>.panel-section>.panel-title-row h2{display:flex;align-items:center;gap:7px;color:#e1ebf9}
.right-panel>.panel-section>h2{margin-bottom:10px}
.right-panel>.panel-section>.panel-title-row h2{margin:0}
.right-panel>.panel-section>h2::before,.right-panel>.panel-section>.panel-title-row h2::before{content:"";display:inline-block;width:4px;height:14px;flex:0 0 auto;border-radius:999px;background:var(--group-accent);box-shadow:0 0 10px var(--group-tint)}
.right-panel>.project-actions-section .project-actions-title{margin:0 1px 10px}
.right-panel>.project-actions-section .project-actions-title strong{display:flex;align-items:center;gap:7px;color:#e7effc}
.right-panel>.project-actions-section .project-actions-title strong::before{content:"";display:inline-block;width:4px;height:14px;border-radius:999px;background:var(--group-accent)}
.right-panel>.panel-section .hint:last-child{margin-bottom:0}
.amap-layer.export-clean .amap-toolbar,
.amap-layer.export-clean .amap-scalecontrol,
.amap-layer.export-clean .amap-controlbar,
.amap-layer.export-clean .amap-geolocation-con,
.amap-layer.export-clean .amap-overviewcontrol,
.amap-layer.export-clean .amap-logo,
.amap-layer.export-clean .amap-copyright{display:none!important}
@media (max-width:1500px){
    .app{grid-template-columns:270px minmax(0,1fr) 250px}
    .topbar{display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-auto-rows:34px;align-items:center;gap:6px 8px}
    .basemap-switch{grid-column:1;grid-row:1;justify-self:start}
    .top-actions{grid-column:2;grid-row:1;justify-self:start}
    .export-actions{grid-column:3;grid-row:1;justify-self:end}
    .zoom-actions{grid-column:1/-1;grid-row:2;justify-self:center;min-width:0!important}
}
@media (max-width:1250px){
    .app{grid-template-columns:250px minmax(0,1fr) 240px}
    .topbar{grid-template-columns:minmax(0,1fr) auto}
    .basemap-switch{grid-column:1;grid-row:1}
    .export-actions{grid-column:2;grid-row:1}
    .top-actions{grid-column:1;grid-row:2}
    .zoom-actions{grid-column:2;grid-row:2;justify-self:end}
    .topbar,.top-actions,.zoom-actions,.export-actions,.basemap-switch{gap:4px}
    .topbar button,.topbar select{padding-left:7px;padding-right:7px}
    .zoom-actions .zoom-caption{display:none!important}
    .zoom-actions .zoom-slider{width:72px!important}
    .zoom-actions .zoom-value-input{width:54px!important}
}
@media (max-width:1100px){
    .app{grid-template-columns:230px minmax(0,1fr)}
    .responsive-panel-toggle{display:inline-flex;align-items:center;justify-content:center}
    .responsive-panel-header{position:sticky;top:-12px;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:8px;margin:-12px -12px 8px;padding:10px 12px;border-bottom:1px solid #263248;background:#111a2a}
    .responsive-panel-header strong{font-size:13px;color:#fff}
    .responsive-panel-header button{height:30px;padding:0 9px;font-size:12px}
    .responsive-panel-backdrop{position:fixed;inset:0;z-index:39;width:auto;height:auto;padding:0;border:0;border-radius:0;background:rgba(3,8,16,.52);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .18s ease,visibility .18s ease}
    .right-panel{position:fixed;top:0;right:0;bottom:0;z-index:40;display:flex;width:min(280px,calc(100vw - 24px));height:100%;border-left:1px solid #35517a;box-shadow:-18px 0 50px rgba(0,0,0,.4);transform:translateX(102%);visibility:hidden;pointer-events:none;transition:transform .2s ease,visibility .2s ease}
    .app.right-panel-open .responsive-panel-backdrop{opacity:1;visibility:visible;pointer-events:auto}
    .app.right-panel-open .right-panel{transform:translateX(0);visibility:visible;pointer-events:auto}
}
@media (max-width:800px){
    .app{grid-template-columns:220px minmax(0,1fr)}
    .topbar{grid-template-columns:minmax(0,1fr);grid-auto-rows:34px}
    .basemap-switch,.top-actions,.zoom-actions,.export-actions{grid-column:1;justify-self:center}
    .basemap-switch{grid-row:1}
    .top-actions{grid-row:2}
    .zoom-actions{grid-row:3}
    .export-actions{grid-row:4}
    .export-actions #exportScale{display:none}
    .geojson-label-box{max-height:90vh;overflow:auto}
    .geojson-label-config-grid{grid-template-columns:1fr}
    .geojson-import-icon-options{grid-template-columns:minmax(0,1fr) 100px}
    .geojson-import-icon-options .geojson-icon-picker-grid{grid-template-columns:repeat(5,minmax(38px,1fr))}
    .geojson-label-field-row{grid-template-columns:1fr}
    .geojson-label-field-meta{text-align:left}
    .geojson-label-actions{align-items:stretch;flex-direction:column}
    .geojson-label-actions>div{width:100%}
    .geojson-label-actions button{flex:1}
    .admin-boundary-box{max-height:90vh;overflow:auto}
    .admin-boundary-list{grid-template-columns:1fr;max-height:44vh}
    .admin-boundary-current{align-items:stretch;flex-direction:column}
    .admin-boundary-current button{width:100%}
}
