:root,:host{--ol-background-color: white;--ol-accent-background-color: #F5F5F5;--ol-subtle-background-color: rgba(128, 128, 128, .25);--ol-partial-background-color: rgba(255, 255, 255, .75);--ol-foreground-color: #333333;--ol-subtle-foreground-color: #666666;--ol-brand-color: #00AAFF}.ol-box{box-sizing:border-box;border-radius:2px;border:1.5px solid var(--ol-background-color);background-color:var(--ol-partial-background-color)}.ol-mouse-position{top:8px;right:8px;position:absolute}.ol-scale-line{background:var(--ol-partial-background-color);border-radius:4px;bottom:8px;left:8px;padding:2px;position:absolute}.ol-scale-line-inner{border:1px solid var(--ol-subtle-foreground-color);border-top:none;color:var(--ol-foreground-color);font-size:10px;text-align:center;margin:1px;will-change:contents,width;transition:all .25s}.ol-scale-bar{position:absolute;bottom:8px;left:8px}.ol-scale-bar-inner{display:flex}.ol-scale-step-marker{width:1px;height:15px;background-color:var(--ol-foreground-color);float:right;z-index:10}.ol-scale-step-text{position:absolute;bottom:-5px;font-size:10px;z-index:11;color:var(--ol-foreground-color);text-shadow:-1.5px 0 var(--ol-partial-background-color),0 1.5px var(--ol-partial-background-color),1.5px 0 var(--ol-partial-background-color),0 -1.5px var(--ol-partial-background-color)}.ol-scale-text{position:absolute;font-size:12px;text-align:center;bottom:25px;color:var(--ol-foreground-color);text-shadow:-1.5px 0 var(--ol-partial-background-color),0 1.5px var(--ol-partial-background-color),1.5px 0 var(--ol-partial-background-color),0 -1.5px var(--ol-partial-background-color)}.ol-scale-singlebar{position:relative;height:10px;z-index:9;box-sizing:border-box;border:1px solid var(--ol-foreground-color)}.ol-scale-singlebar-even{background-color:var(--ol-subtle-foreground-color)}.ol-scale-singlebar-odd{background-color:var(--ol-background-color)}.ol-unsupported{display:none}.ol-viewport,.ol-unselectable{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.ol-viewport canvas{all:unset;overflow:hidden}.ol-viewport{touch-action:pan-x pan-y}.ol-selectable{-webkit-touch-callout:default;-webkit-user-select:text;-moz-user-select:text;user-select:text}.ol-grabbing{cursor:-webkit-grabbing;cursor:-moz-grabbing;cursor:grabbing}.ol-grab{cursor:move;cursor:-webkit-grab;cursor:-moz-grab;cursor:grab}.ol-control{position:absolute;background-color:var(--ol-subtle-background-color);border-radius:4px}.ol-zoom{top:.5em;left:.5em}.ol-rotate{top:.5em;right:.5em;transition:opacity .25s linear,visibility 0s linear}.ol-rotate.ol-hidden{opacity:0;visibility:hidden;transition:opacity .25s linear,visibility 0s linear .25s}.ol-zoom-extent{top:4.643em;left:.5em}.ol-full-screen{right:.5em;top:.5em}.ol-control button{display:block;margin:1px;padding:0;color:var(--ol-subtle-foreground-color);font-weight:700;text-decoration:none;font-size:inherit;text-align:center;height:1.375em;width:1.375em;line-height:.4em;background-color:var(--ol-background-color);border:none;border-radius:2px}.ol-control button::-moz-focus-inner{border:none;padding:0}.ol-zoom-extent button{line-height:1.4em}.ol-compass{display:block;font-weight:400;will-change:transform}.ol-touch .ol-control button{font-size:1.5em}.ol-touch .ol-zoom-extent{top:5.5em}.ol-control button:hover,.ol-control button:focus{text-decoration:none;outline:1px solid var(--ol-subtle-foreground-color);color:var(--ol-foreground-color)}.ol-zoom .ol-zoom-in{border-radius:2px 2px 0 0}.ol-zoom .ol-zoom-out{border-radius:0 0 2px 2px}.ol-attribution{text-align:right;bottom:.5em;right:.5em;max-width:calc(100% - 1.3em);display:flex;flex-flow:row-reverse;align-items:center}.ol-attribution a{color:var(--ol-subtle-foreground-color);text-decoration:none}.ol-attribution ul{margin:0;padding:1px .5em;color:var(--ol-foreground-color);text-shadow:0 0 2px var(--ol-background-color);font-size:12px}.ol-attribution li{display:inline;list-style:none}.ol-attribution li:not(:last-child):after{content:" "}.ol-attribution img{max-height:2em;max-width:inherit;vertical-align:middle}.ol-attribution button{flex-shrink:0}.ol-attribution.ol-collapsed ul{display:none}.ol-attribution:not(.ol-collapsed){background:var(--ol-partial-background-color)}.ol-attribution.ol-uncollapsible{bottom:0;right:0;border-radius:4px 0 0}.ol-attribution.ol-uncollapsible img{margin-top:-.2em;max-height:1.6em}.ol-attribution.ol-uncollapsible button{display:none}.ol-zoomslider{top:4.5em;left:.5em;height:200px}.ol-zoomslider button{position:relative;height:10px}.ol-touch .ol-zoomslider{top:5.5em}.ol-overviewmap{left:.5em;bottom:.5em}.ol-overviewmap.ol-uncollapsible{bottom:0;left:0;border-radius:0 4px 0 0}.ol-overviewmap .ol-overviewmap-map,.ol-overviewmap button{display:block}.ol-overviewmap .ol-overviewmap-map{border:1px solid var(--ol-subtle-foreground-color);height:150px;width:150px}.ol-overviewmap:not(.ol-collapsed) button{bottom:0;left:0;position:absolute}.ol-overviewmap.ol-collapsed .ol-overviewmap-map,.ol-overviewmap.ol-uncollapsible button{display:none}.ol-overviewmap:not(.ol-collapsed){background:var(--ol-subtle-background-color)}.ol-overviewmap-box{border:1.5px dotted var(--ol-subtle-foreground-color)}.ol-overviewmap .ol-overviewmap-box:hover{cursor:move}.ol-overviewmap .ol-viewport:hover{cursor:pointer}*{margin:0;padding:0;box-sizing:border-box}:root{--primary: #1a202c;--primary-dark: #0f1419;--primary-light: #2d3748;--accent: #2563eb;--accent-light: #3b82f6;--accent-dark: #1e40af;--success: #16a34a;--success-light: #22c55e;--warning: #ea580c;--error: #dc2626;--error-light: #f87171;--gray-50: #f9fafb;--gray-100: #f3f4f6;--gray-150: #eef2f5;--gray-200: #e5e7eb;--gray-300: #d1d5db;--gray-400: #9ca3af;--gray-500: #6b7280;--gray-600: #4b5563;--gray-700: #374151;--gray-800: #1f2937;--gray-900: #111827;--blue-50: #eff6ff;--blue-100: #dbeafe;--blue-500: #2563eb;--green-50: #f0fdf4;--green-500: #16a34a;--purple-50: #faf5ff;--purple-500: #9333ea;--orange-50: #fff7ed;--orange-500: #ea580c;--system-tools: var(--accent);--system-tools-rgb: 37, 99, 235;--system-annotation: #9a5a16;--system-annotation-rgb: 154, 90, 22;--system-drawing: #047857;--system-drawing-rgb: 4, 120, 87;--system-measurement: #ea580c;--system-measurement-rgb: 234, 88, 12;--system-analysis: #0891b2;--system-analysis-rgb: 8, 145, 178;--system-feature-saving: #2563eb;--system-feature-saving-rgb: 37, 99, 235;--system-layer-info: #0891b2;--system-layer-info-rgb: 8, 145, 178;--system-advanced: #4338ca;--system-advanced-rgb: 67, 56, 202;--system-settings: #be123c;--system-settings-rgb: 190, 18, 60;--spacing-1: 4px;--spacing-2: 8px;--spacing-3: 12px;--spacing-4: 16px;--spacing-5: 20px;--spacing-6: 24px;--spacing-8: 32px;--left-sidebar-width: 248px;--right-sidebar-width: 252px;--navbar-height: 64px;--nav-control-height: 38px;--nav-control-radius: 8px;--nav-surface: rgba(255, 255, 255, .04);--nav-surface-strong: rgba(255, 255, 255, .06);--nav-surface-border: rgba(255, 255, 255, .09);--nav-control-bg: rgba(8, 15, 24, .34);--nav-control-border: rgba(255, 255, 255, .08);--nav-control-shadow: none}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--gray-50);color:var(--gray-900);overflow:hidden;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;letter-spacing:-.2px;height:100vh;display:flex;flex-direction:column}button,select,input,textarea{font:inherit}h1{font-size:28px;font-weight:700;line-height:1.2;letter-spacing:-.5px}h2{font-size:24px;font-weight:700;line-height:1.2;letter-spacing:-.3px}h3{font-size:20px;font-weight:700;line-height:1.3;letter-spacing:-.2px}h4{font-size:16px;font-weight:600;line-height:1.4}h5{font-size:14px;font-weight:600;line-height:1.4}.text-lg{font-size:18px;font-weight:600}.text-base{font-size:14px;font-weight:500}.text-sm{font-size:13px;font-weight:500}.text-xs{font-size:12px;font-weight:500}.navbar{display:grid;grid-template-columns:minmax(240px,1fr) minmax(280px,380px) minmax(300px,1fr);align-items:center;column-gap:16px;padding:0 18px 0 20px;min-height:var(--navbar-height);flex:0 0 auto;position:relative;isolation:isolate;background:linear-gradient(180deg,#ffffff06,#fff0),#0b1421;border-bottom:1px solid rgba(148,163,184,.14);box-shadow:0 1px #ffffff0e inset,0 6px 14px #0208171a;z-index:100;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.navbar:before{content:"";position:absolute;inset:0 0 auto;height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.14),transparent);opacity:.5;pointer-events:none}.navbar:after{content:"";position:absolute;inset:auto 0 0;height:1px;background:#02081757;pointer-events:none}.navbar-left{display:flex;align-items:center;min-width:0;justify-self:start}.navbar-center{display:flex;align-items:center;justify-content:center;min-width:0}.navbar-right{display:flex;align-items:center;justify-content:flex-end;gap:12px;min-width:0;justify-self:end}.app-brand{display:flex;align-items:center;gap:10px;min-width:0;max-width:100%;padding:5px 8px 5px 6px;border-radius:9px;text-decoration:none;color:#fff;font-weight:800;font-size:15px;white-space:nowrap;letter-spacing:-.2px;transition:background .2s ease,box-shadow .2s ease}.app-brand:hover{background:#ffffff09;box-shadow:none}.app-logo{width:38px;height:38px;border:1px solid rgba(255,255,255,.12);border-radius:9px;background:#0f2234;display:flex;align-items:center;justify-content:center;overflow:hidden;flex-shrink:0;box-shadow:0 1px #ffffff1f inset,0 0 0 1px #2563eb14;transition:border-color .2s ease,background .2s ease}.app-logo:hover{border-color:#ffffff2e;background:#10283d}.app-logo img{width:100%;height:100%;object-fit:contain;padding:8px}.app-title{min-width:0;font-size:15px;font-weight:700;color:#fffffffa;letter-spacing:0;text-shadow:none;overflow:hidden;text-overflow:ellipsis}.app-title-short{display:none}.location-search{display:flex;align-items:center;gap:8px;width:min(100%,360px);padding:4px 6px 4px 10px;border:1px solid var(--nav-surface-border);border-radius:10px;background:#ffffff09;box-shadow:none;min-width:0;transition:border-color .2s ease,background .2s ease,box-shadow .2s ease}.location-search:hover{background:#ffffff0c;border-color:#ffffff21;box-shadow:none}.location-search-label{display:inline-flex;align-items:center;gap:6px;font-size:10px;color:#ffffffb8;font-weight:700;text-transform:none;letter-spacing:.55px;white-space:nowrap}.location-search-field{display:flex;align-items:center;gap:4px;min-width:0;flex:1;min-height:var(--nav-control-height);padding:2px 3px 2px 9px;border:1px solid var(--nav-control-border);border-radius:var(--nav-control-radius);background:var(--nav-control-bg);box-shadow:none;transition:border-color .2s ease,box-shadow .2s ease,background .2s ease,transform .2s ease}.location-search-field:focus-within{border-color:#3b82f6b8;box-shadow:0 0 0 2px #2563eb29;background:#0a142294}.location-search-input{appearance:none;-webkit-appearance:none;min-width:0;width:100%;border:none;background:transparent;color:#fffffffa;font-size:13px;font-weight:500;line-height:1.2;padding:0 8px 0 0}.location-search-input::placeholder{color:#ffffff6b}.location-search-input:focus{outline:none}.location-search-clear,.location-search-submit{width:30px;height:30px;border:1px solid transparent;border-radius:7px;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;cursor:pointer;transition:background .2s ease,border-color .2s ease,color .2s ease,box-shadow .2s ease}.location-search-clear{background:transparent;color:#ffffffad}.location-search-clear[hidden]{display:none}.location-search-clear:hover{background:#ffffff1f;border-color:#ffffff14;color:#fff}.location-search-submit{background:#2563eb;color:#fff;border-color:#ffffff0f;box-shadow:none}.location-search-submit:hover{background:#2f6df0;box-shadow:none}.location-search.is-loading .location-search-submit{opacity:.72;cursor:progress;transform:none;box-shadow:none}.nav-actions{display:flex;align-items:center;gap:7px}.basemap-selector{display:flex;align-items:center;gap:7px;min-width:0;padding:4px 6px 4px 9px;border:1px solid var(--nav-surface-border);border-radius:9px;background:#ffffff08;box-shadow:none;transition:border-color .2s ease,background .2s ease,box-shadow .2s ease}.basemap-selector:hover{border-color:#ffffff1f;background:#ffffff0b;box-shadow:none}.basemap-selector label{display:inline-flex;align-items:center;gap:6px;font-size:10px;color:#ffffffa8;font-weight:700;text-transform:none;letter-spacing:.55px;white-space:nowrap}.basemap-selector select{width:230px;min-width:0;max-width:230px;flex:0 1 230px;min-height:var(--nav-control-height);padding:8px 28px 8px 10px;border:1px solid var(--nav-control-border);border-radius:var(--nav-control-radius);background:var(--nav-control-bg);color:#ffffffe0;font-size:12px;font-weight:500;line-height:1.2;cursor:pointer;transition:background .2s ease,border-color .2s ease,box-shadow .2s ease,transform .2s ease;-webkit-backdrop-filter:none;backdrop-filter:none;appearance:none;-webkit-appearance:none;background-image:linear-gradient(45deg,transparent 50%,rgba(255,255,255,.8) 50%),linear-gradient(135deg,rgba(255,255,255,.8) 50%,transparent 50%);background-position:calc(100% - 18px) calc(50% - 2px),calc(100% - 12px) calc(50% - 2px);background-size:6px 6px,6px 6px;background-repeat:no-repeat;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.basemap-selector select:hover{border-color:#ffffff29;box-shadow:none}.basemap-selector select:focus{outline:none;border-color:#3b82f6b8;box-shadow:0 0 0 2px #2563eb29}.basemap-selector select option{background:var(--primary);color:#fff;font-weight:500}.btn{min-height:var(--nav-control-height);padding:9px 13px;border:1px solid transparent;border-radius:var(--nav-control-radius);font-size:12px;font-weight:650;line-height:1.1;cursor:pointer;transition:background .2s ease,border-color .2s ease,box-shadow .2s ease,color .2s ease,transform .2s ease;display:inline-flex;align-items:center;gap:var(--spacing-2);text-transform:none;letter-spacing:.42px;justify-content:center;box-shadow:none}.btn-primary{background:#2563eb;color:#fff;border-color:#ffffff14;box-shadow:0 6px 14px #1d4ed833}.btn-primary:hover{background:#2f6df0;box-shadow:0 7px 16px #1d4ed83d;transform:none}.btn-primary:active{transform:translateY(0)}.btn[aria-disabled=true],.btn.is-disabled{opacity:.58;cursor:not-allowed;box-shadow:none}.btn-primary[aria-disabled=true]:hover,.btn-primary.is-disabled:hover,.btn-primary[aria-disabled=true]:active,.btn-primary.is-disabled:active{background:#2563eb;box-shadow:none;transform:none}.btn-danger{background:#dc2626;color:#fff;border-color:#7f1d1d3d;box-shadow:0 6px 14px #b91c1c33}.btn-danger:hover{background:#b91c1c;box-shadow:0 7px 16px #b91c1c3d;transform:none}.btn-share{background:#ffffff09;color:#ffffffe0;border-color:#ffffff1a;box-shadow:none}.btn-share:hover{background:#ffffff0e;border-color:#ffffff24;box-shadow:none;transform:none}.btn-export{min-width:104px}.btn-secondary{background:var(--gray-100);color:var(--gray-700);border:1px solid var(--gray-300)}.btn-secondary:hover{background:var(--gray-200);border-color:var(--gray-400);transform:translateY(-1px)}#uploadModal .btn,#wmsModal .btn,#gpModal .btn,#uploadModal .layer-source-btn{text-transform:none;letter-spacing:normal}.svg-marker-remove-button{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;min-width:36px;padding:0;border-radius:10px;font-size:14px;line-height:1;color:var(--gray-700);background:var(--gray-100);border-color:var(--gray-300)}.app-container{display:flex;flex:1 1 auto;min-height:0;height:auto}.sidebar-left{width:var(--left-sidebar-width);flex:0 0 var(--left-sidebar-width);background:#fff;border-right:1px solid var(--gray-200);display:flex;flex-direction:column;overflow:visible;height:calc(100vh - var(--navbar-height));box-shadow:2px 0 7px #0f172a0f}.sidebar-left{transition:width .2s ease,flex-basis .2s ease,border-color .2s ease,box-shadow .2s ease;position:relative}.sidebar-main{width:100%;flex:0 0 auto;min-width:0;height:100%;display:flex;flex-direction:column;overflow:hidden auto;transition:opacity .16s ease}.sidebar-left.is-collapsed{width:0;flex-basis:0;border-right-color:transparent;box-shadow:none}.sidebar-left.is-collapsed .sidebar-main{opacity:0;visibility:hidden;pointer-events:none}.sidebar-title-row{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-3);margin-bottom:var(--spacing-4)}.sidebar-title-row .sidebar-title{margin-bottom:0}.sidebar-layout-handle{position:absolute;top:14px;right:-44px;z-index:20;display:inline-flex;width:44px;height:44px;padding:6px;align-items:center;justify-content:center;border:0;border-radius:999px;background:transparent;color:var(--accent);cursor:pointer}.sidebar-layout-handle i{display:inline-flex;width:32px;height:32px;align-items:center;justify-content:center;border:1px solid var(--gray-300);border-radius:999px;background:#fff;color:var(--accent);box-shadow:0 2px 6px #0f172a14;font-size:13px;line-height:1;transition:transform .18s ease,color .18s ease,border-color .18s ease,background .18s ease,box-shadow .18s ease}.sidebar-layout-handle:hover i{transform:scale(1.125);border-color:var(--accent);background:var(--blue-50);color:var(--accent);box-shadow:0 4px 10px #2563eb2e}.sidebar-layout-handle:focus-visible{outline:2px solid var(--accent-light);outline-offset:2px}.sidebar-layout-handle:active i{transform:scale(1.05);border-color:var(--accent);background:var(--accent);color:#fff;box-shadow:0 2px 6px #2563eb47}.sidebar-header{padding:var(--spacing-5);border-bottom:1px solid var(--gray-200);background:linear-gradient(135deg,var(--gray-50) 0%,var(--gray-100) 100%)}.sidebar-title{font-size:14px;font-weight:700;color:var(--gray-900);margin-bottom:var(--spacing-4);text-transform:none;letter-spacing:.5px;display:flex;align-items:center;gap:var(--spacing-2)}.sidebar-title i{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--blue-50) 0%,#f0f9ff 100%);border-radius:8px;color:var(--accent);font-size:14px;flex-shrink:0}.btn-upload{width:100%;padding:var(--spacing-3) var(--spacing-4);background:linear-gradient(135deg,var(--success) 0%,#059669 100%);color:#fff;border:none;border-radius:10px;font-size:13px;font-weight:600;cursor:pointer;transition:all .2s ease;text-transform:none;letter-spacing:.4px;box-shadow:0 6px 20px #16a34a4d;font-family:Inter,sans-serif}.btn-upload:hover{background:linear-gradient(135deg,#059669,#047857);box-shadow:0 8px 28px #16a34a66;transform:translateY(-2px)}.btn-upload:active{transform:translateY(0)}.sidebar-content{flex:1;display:flex;flex-direction:column;padding:14px;min-height:0}.layer-list{display:flex;flex-direction:column;gap:18px;min-height:0;flex:1 1 auto;scrollbar-gutter:stable;padding-right:2px;padding-top:2px}.layer-group{display:flex;flex-direction:column;gap:10px;margin:0;padding:0;border:none;background:transparent}.layer-group:last-of-type{margin-bottom:0}.layer-group-header{padding:11px 12px 10px;background:linear-gradient(135deg,#0f172a05,#2563eb05);border-bottom:2px solid var(--gray-200);border-radius:8px 8px 0 0;transition:all .2s ease}.layer-group.collapsed .layer-group-header{border-radius:8px;border-bottom:1px solid var(--gray-200)}.layer-group-toggle{width:100%;display:flex;align-items:center;justify-content:space-between;gap:10px;color:var(--gray-700);text-align:left;font-size:11px;font-weight:700;line-height:1.15;background:none;border:none;padding:0;cursor:pointer;text-transform:uppercase;letter-spacing:.72px;transition:color .2s ease}.layer-group-toggle:hover{color:var(--primary-dark)}.layer-group-title{flex:1;min-width:0;color:inherit;display:inline-flex;align-items:center;min-height:20px}.layer-group-count{color:var(--gray-500);font-size:10px;font-weight:700;white-space:nowrap;text-transform:uppercase;letter-spacing:.28px;background:#2563eb14;padding:3px 8px 2px;border-radius:999px;min-width:28px;text-align:center;align-self:center;line-height:1.1}.layer-group-chevron{transition:transform .2s ease,color .2s ease;color:var(--gray-500);font-size:13px;display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;flex-shrink:0;align-self:center}.layer-group.collapsed .layer-group-chevron{transform:rotate(-90deg);color:var(--gray-400)}.layer-item.hidden{display:none!important}.layer-group-body{display:flex;flex-direction:column;gap:8px}.layer-group .layer-group-body>.layer-item:first-child{border-top-left-radius:0;border-top-right-radius:0}.layer-item{padding:var(--spacing-3) var(--spacing-4);background:#fff;border:1px solid var(--gray-200);border-radius:8px;cursor:pointer;transition:all .2s ease;display:flex;flex-direction:column;align-items:stretch;gap:var(--spacing-2);width:100%;min-width:0;box-sizing:border-box;box-shadow:0 1px 2px #0f172a0a}.layer-item:hover{background:#fff;border-color:#2563eb80;box-shadow:0 5px 14px #2563eb1a;transform:translateY(-1px)}.layer-item.active{border-color:var(--accent);background:linear-gradient(180deg,#eff6ffeb,#fffffffa);box-shadow:0 0 0 1px #2563eb2e,0 6px 16px #2563eb1f}.layer-item.collapsed{padding:10px 12px;align-items:stretch;gap:6px}.layer-item.collapsed .layer-controls-wrapper{display:none}.layer-item-header{display:flex;align-items:center;gap:9px;width:100%;min-width:0;box-sizing:border-box}.layer-header-main{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:6px;flex:1;min-width:0}.layer-controls-wrapper{width:100%;min-width:0;box-sizing:border-box;display:flex;flex-direction:column;padding-top:4px;overflow:visible}.layer-info-short{display:flex;flex-direction:column;min-width:0;flex:1;gap:1px;justify-content:center}.layer-header-actions{display:inline-flex;flex-direction:row;align-items:center;justify-content:flex-end;gap:0;flex-shrink:0;align-self:center;margin-right:-1px;padding-left:2px}.layer-actions-menu{position:relative;flex-shrink:0;display:inline-flex;align-items:center;margin-left:-1px}.layer-actions-trigger{width:24px;height:24px;border:none;border-radius:6px;background:transparent;color:var(--gray-400);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:background .2s ease,color .2s ease,box-shadow .2s ease;font-size:15px;font-weight:700;line-height:1;align-self:center}.layer-actions-trigger:hover,.layer-actions-menu[data-open=true] .layer-actions-trigger{background:#2563eb14;color:var(--accent)}.layer-actions-trigger:focus-visible{outline:none;background:#2563eb0f;color:var(--accent);box-shadow:0 0 0 3px #2563eb1a}.layer-actions-trigger:active{background:#2563eb1f;color:var(--accent)}.layer-actions-dropdown{position:absolute;top:0;left:calc(100% + 5px);right:auto;z-index:20;min-width:168px;max-width:min(220px,calc(100vw - 24px));padding:6px;border:1px solid var(--gray-200);border-radius:9px;background:#fff;box-shadow:0 12px 28px #0f172a24;display:none;flex-direction:column;gap:2px;transform:translateY(-8px);max-height:calc(100vh - 24px);overflow:visible}.layer-actions-menu[data-open=true] .layer-actions-dropdown{display:flex}.layer-rename-popover{position:absolute;top:0;left:calc(100% + 5px);z-index:25;display:grid;gap:10px;width:min(280px,calc(100vw - 28px));padding:12px;border:1px solid rgba(148,163,184,.28);border-radius:10px;background:#fff;box-shadow:0 16px 34px #0f172a2e}.layer-rename-title{font-size:12px;font-weight:800;color:var(--gray-900);letter-spacing:0}.layer-rename-field{display:grid}.layer-rename-input{width:100%;min-height:38px;padding:9px 10px;border:1px solid var(--gray-300);border-radius:8px;background:#fff;color:var(--gray-900);font-size:13px}.layer-rename-input:focus{outline:none;border-color:#2563eb73;box-shadow:0 0 0 3px #2563eb1f}.layer-rename-actions{display:flex;justify-content:flex-end;gap:8px}.layer-rename-actions .btn{min-height:34px;padding:8px 12px;font-size:11px}.layer-actions-item{width:100%;border:none;border-radius:7px;background:transparent;color:var(--gray-700);text-align:left;font-size:12px;font-weight:600;min-height:34px;padding:8px 11px;line-height:1.2;cursor:pointer;transition:background .2s ease,color .2s ease,box-shadow .2s ease}.layer-actions-item:hover{background:var(--gray-100);color:var(--accent)}.layer-actions-item:focus-visible{outline:none;background:#2563eb14;color:var(--accent);box-shadow:0 0 0 3px #2563eb1a}.layer-expand-btn{background:transparent;border:none;color:var(--gray-500);width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;border-radius:6px;cursor:pointer;transition:background .2s ease,color .2s ease;flex-shrink:0;align-self:center}.layer-expand-btn:hover{background:#2563eb14;color:var(--accent)}.layer-expand-btn:focus-visible{outline:none;background:#2563eb0f;color:var(--accent);box-shadow:0 0 0 3px #2563eb1a}.layer-expand-btn.expanded i{transform:rotate(180deg);transition:transform .16s ease}.layer-expand-btn i{transition:transform .16s ease;display:flex;align-items:center;justify-content:center;line-height:1}.layer-toggle{width:20px;height:20px;min-width:20px;margin-top:0;accent-color:var(--accent);cursor:pointer;align-self:center}.layer-info{flex:1;min-width:0}.layer-name-wrap{position:relative;max-width:100%;min-width:0}.layer-name{display:block;max-width:100%;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:700;color:var(--gray-900);margin-bottom:0;letter-spacing:-.2px;outline:none;line-height:1.2}.layer-name:focus-visible{border-radius:4px;box-shadow:0 0 0 2px #2563eb47}.layer-name-tooltip{position:fixed;left:0;top:0;z-index:1300;max-width:min(360px,calc(100vw - 24px));padding:7px 10px;border-radius:8px;background:#0f172af5;color:#fff;font-size:12px;font-weight:600;line-height:1.35;white-space:normal;overflow-wrap:anywhere;box-shadow:0 12px 28px #0f172a38;pointer-events:none;opacity:0;transform:translateY(-4px);transition:opacity .14s ease,transform .14s ease}.layer-name-tooltip.visible{opacity:1;transform:translateY(0)}.layer-stats{font-size:12px;color:var(--gray-500);margin:0;font-weight:600;white-space:nowrap;line-height:1.2}.layer-controls{display:flex;flex-direction:column;gap:var(--spacing-3);width:100%;min-width:0;box-sizing:border-box;flex-shrink:1;max-height:none;overflow:visible;padding-right:4px}.control-row{display:flex;align-items:center;gap:var(--spacing-3);font-size:12px;color:var(--gray-700);font-weight:500;width:100%;min-width:0;flex-wrap:wrap}.control-row label{display:flex;align-items:center;gap:var(--spacing-3);cursor:pointer;flex:1}.control-row-action{margin-top:var(--spacing-1)}.control-row-stack{display:grid;gap:var(--spacing-3)}.transparency-header{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;min-width:0}.control-label{color:var(--gray-600);font-weight:600}.color-picker{width:44px;height:44px;border:2px solid var(--gray-200);border-radius:50%;cursor:pointer;background:#fff;transition:all .2s ease;box-shadow:0 2px 8px #00000014;appearance:none;-webkit-appearance:none;padding:0}.color-picker:hover{border-color:var(--accent);box-shadow:0 4px 12px #2563eb4d,inset 0 0 0 2px #fff;transform:scale(1.08)}.color-picker:active{transform:scale(.96)}.layer-action-btn{flex:1;padding:var(--spacing-2) var(--spacing-3);background:#fff;border:1px solid var(--gray-300);border-radius:10px;font-size:12px;font-weight:600;cursor:pointer;color:var(--gray-700);transition:all .2s ease;display:inline-flex;align-items:center;gap:var(--spacing-2);white-space:nowrap;justify-content:center;min-width:0;max-width:100%}.layer-action-btn-full{width:100%}.layer-action-btn:hover{background:var(--gray-100);border-color:var(--accent);color:var(--accent)}.layer-action-btn.danger{color:var(--error)}.layer-action-btn.danger:hover{background:#fee2e2;border-color:var(--error)}.transparency-control{width:100%;min-width:0;max-width:100%}.transparency-slider,.point-size-slider,.line-width-slider{display:block;width:100%;min-width:0;max-width:100%;margin:0;min-height:20px;accent-color:var(--accent);-webkit-appearance:auto;appearance:auto;cursor:pointer;background:transparent;touch-action:pan-x}.transparency-slider:hover,.transparency-slider:focus-visible,.point-size-slider:hover,.point-size-slider:focus-visible,.line-width-slider:hover,.line-width-slider:focus-visible{outline:none}.transparency-slider:focus-visible,.point-size-slider:focus-visible,.line-width-slider:focus-visible{box-shadow:0 0 0 3px #2563eb24;border-radius:8px}.transparency-value,.point-size-value,.line-width-value{flex:0 0 auto;min-width:44px;text-align:right;font-size:12px;font-weight:700;color:var(--gray-700);font-variant-numeric:tabular-nums;white-space:nowrap}.svg-marker-row{gap:var(--spacing-2)}.svg-marker-upload-status{color:var(--gray-500);font-size:12px;font-weight:400}.svg-marker-control-row{display:flex;align-items:center;gap:var(--spacing-3);flex-wrap:wrap;width:100%}.svg-marker-upload-button{display:inline-flex;align-items:center;justify-content:center;padding:var(--spacing-2) var(--spacing-3);min-height:44px;border-radius:12px;border:1px solid var(--gray-200);background:var(--white);color:var(--gray-800);font-size:12px;font-weight:600;cursor:pointer;transition:all .2s ease;box-shadow:0 1px 2px #0f172a14}.svg-marker-upload-button:hover,.svg-marker-upload-button:focus-visible{border-color:var(--gray-300);box-shadow:0 4px 16px #0f172a14;outline:none}.svg-marker-input{position:absolute;opacity:0;width:0;height:0;overflow:hidden;pointer-events:none}.svg-marker-preview-inline{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;background:var(--white);border:1px solid var(--gray-200);border-radius:12px;padding:6px;box-shadow:inset 0 0 0 1px #0f172a08}.svg-marker-preview-inline .svg-marker-preview,.svg-marker-preview-inline .svg-marker-preview-empty{max-width:100%;max-height:100%;display:block}.svg-marker-preview-empty{color:var(--gray-500);font-size:12px;text-align:center}.marker-style-row{gap:12px}.marker-style-header{margin-bottom:4px}.marker-preset-section{display:flex;flex-direction:column;gap:8px;padding:8px;background:var(--gray-50);border-radius:8px}.marker-type-dropdown{position:relative;display:inline-flex;align-items:center;width:auto;max-width:100%;min-width:0}.marker-type-current{display:inline-flex;align-items:center;justify-content:space-between;width:auto;gap:6px;padding:6px 10px;min-height:34px;border-radius:8px;border:1px solid var(--gray-300);background:#fff;cursor:pointer;font-size:13px;color:var(--gray-800);box-sizing:border-box;min-width:0}.marker-type-current:focus-visible{outline:none;box-shadow:0 0 0 3px #2563eb14}.marker-type-options{position:absolute;top:calc(100% + 8px);left:0;right:auto;display:none;flex-direction:column;gap:6px;width:auto;max-width:220px;min-width:0;padding:6px;background:#fff;border:1px solid var(--gray-200);border-radius:8px;box-shadow:0 8px 24px #0f172a14;z-index:30;box-sizing:border-box;overflow:hidden}.marker-type-dropdown[data-open=true] .marker-type-options{display:flex}.marker-type-option{display:flex;align-items:center;justify-content:center;padding:8px;border-radius:8px;background:transparent;border:none;cursor:pointer;width:auto;min-width:0;text-align:center;color:var(--gray-700);font-weight:600;box-sizing:border-box}.marker-type-option:hover,.marker-type-option.active{background:var(--blue-50);color:var(--accent)}.marker-type-icon{width:16px;height:16px;display:inline-block;flex:0 0 auto;color:var(--gray-700)}.marker-type-icon-circle{border-radius:50%;background:currentColor}.marker-type-icon-square{width:16px;height:16px;background:currentColor;border-radius:3px}.marker-type-icon-diamond{width:16px;height:16px;background:currentColor;transform:rotate(45deg);display:inline-block}.marker-type-icon-triangle{width:0;height:0;border-left:8px solid transparent;border-right:8px solid transparent;border-bottom:16px solid currentColor;transform:translateY(-2px)}.marker-type-icon-custom{width:16px;height:16px;display:inline-block;background-image:url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='currentColor' d='M6 2h8l6 6v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2zM13 3v5h5'/%3E%3C/svg%3E");background-size:contain;background-repeat:no-repeat;background-position:center}.marker-type-icon-star{width:16px;height:16px;display:inline-block;background-image:url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpolygon fill='currentColor' points='8,0 9.76,5.2 15.6,5.8 11.4,9.4 12.6,15.2 8,12.4 3.4,15.2 4.6,9.4 0.4,5.8 6.24,5.2'/%3E%3C/svg%3E");background-size:100% 100%;background-position:center;background-repeat:no-repeat}.svg-marker-remove-button{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;min-width:36px;padding:0;border-radius:10px;font-size:14px;line-height:1;color:var(--error);background:var(--gray-100);border:1px solid var(--gray-300)}.svg-marker-remove-button:hover{background:#fee2e2;border-color:var(--error)}.svg-marker-remove-button i{width:16px;height:16px;display:inline-flex;align-items:center;justify-content:center}.svg-marker-gallery{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.svg-marker-gallery-empty{color:var(--gray-500);font-size:12px;padding:4px 0}.svg-marker-thumbnail{position:relative;display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:10px;border:1px solid var(--gray-200);background:var(--white);padding:5px;cursor:pointer;transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease;overflow:visible}.svg-marker-thumbnail img{width:100%;height:100%;object-fit:contain}.svg-marker-thumbnail:hover,.svg-marker-thumbnail.active{border-color:var(--accent);box-shadow:0 0 0 4px #2563eb14;transform:translateY(-1px)}.svg-marker-delete{position:absolute;top:-6px;right:-6px;width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;background:#ffffffe6;color:var(--gray-700);font-size:12px;opacity:0;pointer-events:none;transition:opacity .15s ease,background-color .15s ease,color .15s ease;box-shadow:0 4px 10px #02061714}.svg-marker-thumbnail:hover .svg-marker-delete{opacity:1;pointer-events:auto}.svg-marker-delete:hover{background:#ef4444f2;color:#fff}.marker-preset-label{font-size:12px;font-weight:600;color:var(--gray-700);text-transform:uppercase;letter-spacing:.5px}.marker-preset-buttons{display:flex;gap:6px;flex-wrap:wrap}.marker-preset-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;min-width:36px;min-height:36px;padding:0;border:2px solid var(--gray-300);background:#fff;border-radius:8px;cursor:pointer;font-size:16px;font-weight:600;color:var(--gray-700);transition:all .2s ease;box-shadow:0 1px 2px #0f172a0a}.marker-preset-btn:hover{border-color:var(--accent);box-shadow:0 2px 8px #2563eb1f;color:var(--accent)}.marker-preset-btn.active{border-color:var(--accent);background:var(--blue-50);color:var(--accent);box-shadow:0 2px 8px #2563eb33}.marker-svg-section{display:flex;flex-direction:column;gap:8px}.marker-svg-header{display:flex;justify-content:space-between;align-items:center}.marker-svg-label{font-size:12px;font-weight:600;color:var(--gray-700)}.marker-control-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;width:100%}.btn-secondary{display:inline-flex;align-items:center;justify-content:center;padding:8px 12px;min-height:40px;border-radius:8px;border:1px solid var(--gray-300);background:#fff;color:var(--gray-700);font-size:12px;font-weight:600;cursor:pointer;transition:all .2s ease;box-shadow:0 1px 2px #0f172a0a}.btn-secondary:hover{border-color:var(--gray-400);box-shadow:0 2px 8px #0f172a14}.btn-secondary:focus-visible{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #2563eb1a}.marker-stroke-section{display:grid;gap:10px;padding:10px 12px;background:var(--gray-50);border-radius:12px;border:1px solid var(--gray-200)}.marker-stroke-toggle{display:flex;align-items:center;justify-content:space-between;width:100%}.checkbox-label{display:flex;align-items:center;gap:8px;cursor:pointer;font-size:13px;font-weight:500;color:var(--gray-700);-webkit-user-select:none;user-select:none;width:100%}.checkbox-label input[type=checkbox]{width:18px;height:18px;cursor:pointer;accent-color:var(--accent)}.marker-stroke-controls{display:grid;gap:10px;width:100%;padding-top:4px}.marker-stroke-color-row{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%}.marker-stroke-color-row label{display:flex;align-items:center;gap:8px;width:100%;justify-content:space-between}.marker-stroke-color-label{font-size:12px;font-weight:500;color:var(--gray-700);min-width:fit-content}.marker-stroke-color-picker{width:42px;height:42px;border-radius:8px;border:1px solid var(--gray-300);cursor:pointer;padding:0}.marker-stroke-color-picker:hover{border-color:var(--gray-400)}.marker-stroke-width-row{display:grid;gap:6px;width:100%}.marker-stroke-width-value{color:var(--gray-500);font-size:12px;font-weight:400;text-align:right}.empty-state{text-align:center;padding:36px 18px;color:var(--gray-500);border:1px dashed var(--gray-300);border-radius:16px;background:radial-gradient(circle at top,rgba(37,99,235,.08),transparent 58%),linear-gradient(180deg,#fbfdff,#f8fafc)}.empty-state-icon{width:64px;height:64px;margin:0 auto var(--spacing-4);border-radius:18px;display:flex;align-items:center;justify-content:center;font-size:24px;color:var(--accent);background:linear-gradient(135deg,#2563eb24,#0891b214);box-shadow:inset 0 1px #ffffffb3}.empty-state-title{font-size:14px;font-weight:700;color:var(--gray-900);margin-bottom:8px}.empty-state-text{font-size:13px;font-weight:500;line-height:1.5;max-width:240px;margin:0 auto}.empty-state-formats{margin-top:12px;font-size:11px;font-weight:600;line-height:1.5;color:var(--gray-400);text-transform:uppercase;letter-spacing:.5px}.canvas-area{flex:1;min-width:0;display:flex;flex-direction:column;position:relative;background:var(--gray-100)}#mapContainer{flex:1;position:relative}.map-control-stack{position:absolute;right:var(--spacing-6);top:var(--spacing-6);z-index:10}.map-control-cluster{display:flex;flex-direction:column;gap:6px;padding:8px;border-radius:16px;background:#ffffffe0;border:1px solid rgba(226,232,240,.85);box-shadow:0 8px 24px #0f172a1a,0 1px 3px #0f172a0d inset;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.zoom-controls{display:flex;flex-direction:column;gap:6px}.zoom-btn{width:40px;height:40px;border:1px solid rgba(226,232,240,.85);background:linear-gradient(180deg,#fffffff2,#f8fafceb);border-radius:10px;font-size:15px;font-weight:600;cursor:pointer;color:var(--gray-800);box-shadow:0 2px 8px #0f172a0f,0 1px 2px #0f172a08 inset;transition:all .2s cubic-bezier(.4,0,.2,1);display:flex;align-items:center;justify-content:center;padding:0}.zoom-btn:hover{background:linear-gradient(135deg,#2563eb1a,#3b82f614);border-color:#2563eb4d;color:var(--accent);transform:translateY(-1.5px);box-shadow:0 6px 16px #2563eb1f,0 1px 2px #2563eb0a inset}.zoom-btn:active{transform:translateY(-.5px);box-shadow:0 2px 6px #2563eb1a,0 1px 2px #0f172a08 inset}.zoom-btn-reset{font-size:15px}.map-overlay{position:absolute;left:var(--spacing-6);right:var(--spacing-6);bottom:var(--spacing-6);z-index:10;display:flex;justify-content:flex-start;pointer-events:none}#annotationControls .tool-btn.active{outline:2px solid var(--accent);background:var(--accent-light)!important;color:#fff!important}.north-arrow{width:40px;height:40px;background:linear-gradient(180deg,#fffffff2,#f8fafceb);border:1px solid rgba(226,232,240,.85);border-radius:10px;display:flex;align-items:center;justify-content:center;color:var(--accent);box-shadow:0 2px 8px #0f172a0f,0 1px 2px #0f172a08 inset;transition:all .2s cubic-bezier(.4,0,.2,1)}.north-arrow:hover{background:#2563eb14;border-color:#2563eb40;box-shadow:0 6px 16px #2563eb1f,0 1px 2px #2563eb0a inset;transform:translateY(-1.5px)}.north-arrow.hidden{display:none!important}.scale-bar{background:#fffffff5;padding:var(--spacing-2) var(--spacing-3);border-radius:12px;border:1px solid rgba(226,232,240,.9);font-size:11px;font-weight:600;color:var(--gray-700);box-shadow:0 8px 18px #0f172a1a;text-align:center}.scale-bar.hidden{display:none!important}.scale-bar-line{width:100px;height:2px;background:var(--gray-700);margin:var(--spacing-1) 0}.sidebar-right{width:var(--right-sidebar-width);background:#fff;border-left:1px solid var(--gray-200);display:flex;flex-direction:column;overflow-y:auto;box-shadow:-2px 0 8px #00000014}.right-sidebar-header{padding:var(--spacing-5);border-bottom:1px solid var(--gray-200);background:linear-gradient(135deg,var(--gray-50) 0%,var(--gray-100) 100%)}.right-sidebar-title{font-size:14px;font-weight:700;color:var(--gray-900);margin-bottom:var(--spacing-2);text-transform:uppercase;letter-spacing:.5px;display:flex;align-items:center;gap:var(--spacing-2)}.right-sidebar-title i{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--orange-50) 0%,#fff8f0 100%);border-radius:8px;color:var(--orange-500);font-size:14px;flex-shrink:0}.right-sidebar-subtitle{font-size:12px;color:var(--gray-500);font-weight:500;line-height:1.45}.right-sidebar-content{flex:1;overflow-y:auto;padding:14px}.contextual-inspector{display:grid;gap:10px;position:relative;isolation:isolate;padding:13px 12px 14px;border-bottom:1px solid rgba(15,23,42,.1);background:linear-gradient(135deg,#eff6ffeb,#ecfdf5b8 54%,#ffffffeb);box-shadow:inset 0 -1px #ffffffd1;letter-spacing:0}.contextual-inspector:before{content:"";position:absolute;left:12px;right:12px;top:0;height:2px;border-radius:0 0 999px 999px;background:linear-gradient(90deg,#2563ebad,#0891b29e,#16a34a6b);z-index:-1}.contextual-inspector:empty,.contextual-inspector[hidden]{display:none}.annotation-controls-panel{position:relative;overflow:hidden;margin:0;padding:13px;background:linear-gradient(180deg,#fffffffa,#f8fafcf0);border:1px solid rgba(37,99,235,.18);border-radius:12px;box-shadow:0 16px 34px #0f172a1a;animation:contextual-inspector-in .18s ease-out}.annotation-controls-panel:before{content:"";position:absolute;inset:0 auto 0 0;width:4px;background:linear-gradient(180deg,var(--blue-500),#0891b2)}@keyframes contextual-inspector-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.annotation-controls-title{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:800;color:var(--gray-800);margin-bottom:11px;letter-spacing:0}.annotation-controls-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.annotation-controls-actions .tool-btn{width:100%;min-height:36px;padding:8px 10px;border-radius:8px;justify-content:center;gap:6px;font-size:12px;line-height:1.1}.annotation-controls-actions .tool-btn i{width:14px;text-align:center}.annotation-controls-hint{margin-top:9px;font-size:11px;line-height:1.45;color:var(--gray-500);font-weight:600}.tool-section-group{--section-accent: var(--accent);--section-accent-rgb: 37, 99, 235;margin-bottom:14px;border-radius:14px;border:1px solid var(--gray-200);overflow:hidden;background:linear-gradient(180deg,#fff,#fcfdff);box-shadow:0 8px 24px #0f172a0a;transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease}.tool-section-group.expanded,.tool-section-group.active-section{border-color:rgba(var(--section-accent-rgb),.24);box-shadow:0 14px 30px #0f172a14}.tool-section-group:hover{border-color:#cbd5e1;box-shadow:0 14px 28px #0f172a14;transform:translateY(-1px)}.tool-section-group.expanded .tool-section-header{border-bottom-color:rgba(var(--section-accent-rgb),.16);background:linear-gradient(180deg,rgba(var(--section-accent-rgb),.08),#fff)}.tool-section-group.expanded .tool-section-title{color:var(--section-accent)}.tool-section-group.expanded .tool-section-chevron{color:var(--section-accent);transform:rotate(90deg)}.tool-section-header{display:flex;align-items:center;gap:var(--spacing-3);padding:14px 16px;min-height:76px;background:linear-gradient(180deg,#f8fafceb,#fffffffa);cursor:pointer;transition:background .2s ease,border-color .2s ease;border-bottom:1px solid var(--gray-200)}.tool-section-header:hover{background:linear-gradient(180deg,#f8fbff,#fff)}.tool-icon{width:38px;height:38px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:14px;line-height:1;flex-shrink:0;transition:transform .2s ease,box-shadow .2s ease;box-shadow:inset 0 1px #ffffffb3}.tool-icon i{width:1em;height:1em;display:inline-flex;align-items:center;justify-content:center;line-height:1}.tool-section-group:hover .tool-icon{transform:scale(1.02)}.tool-icon.blue{background:#dbeafeb8;color:var(--blue-500);border:1px solid rgba(37,99,235,.12)}.tool-icon.teal{background:#ccfbf1c7;color:#0f766e;border:1px solid rgba(15,118,110,.14)}.tool-icon.cyan{background:#cffafeb8;color:#0891b2;border:1px solid rgba(8,145,178,.12)}.tool-icon.orange{background:#ffedd5d1;color:var(--orange-500);border:1px solid rgba(234,88,12,.12)}.tool-icon.purple{background:#faf5ffd1;color:var(--purple-500);border:1px solid rgba(147,51,234,.12)}.tool-icon.violet{background:linear-gradient(135deg,#eef2ffe0,#f5f3ffe0);color:#4f46e5;border:1px solid rgba(79,70,229,.14)}.advanced-layers-section .tool-section-header{background:linear-gradient(180deg,#f8fafcf2,#fffffffc)}.advanced-layers-section .tool-btn i{color:#4f46e5}.tool-icon.amber{background:#fff7eddb;color:var(--orange-500);border:1px solid rgba(234,88,12,.12)}.tool-section-info{flex:1;min-width:0}.tool-section-title{font-size:13px;font-weight:750;color:var(--gray-900);margin-bottom:3px;letter-spacing:-.1px}.tool-section-desc{font-size:11px;color:var(--gray-500);font-weight:600;line-height:1.35;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;max-width:100%}.tool-section-chevron{color:var(--gray-400);font-size:22px;font-weight:400;transition:transform .2s ease,color .2s ease}.tool-section-header:hover .tool-section-chevron{color:var(--section-accent);transform:translate(2px)}.tool-section-content{padding:14px;background:#fff;max-height:400px;overflow-y:auto}.annotation-tools-section .tool-section-content,.measurement-section .tool-section-content{max-height:none;overflow-y:visible}.tool-section-content.collapsed{display:none}.tool-buttons{display:flex;flex-direction:column;gap:10px}.label-attribute-control{display:flex;flex-direction:column;gap:6px}.label-attribute-control label{color:var(--gray-700);font-size:12px;font-weight:700}.label-attribute-select{width:100%;min-height:42px;padding:11px 38px 11px 14px;color:var(--gray-800);background-color:#fff;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%2364748b' d='m1.4 1.2 4.6 4.6 4.6-4.6L12 2.6 6 8 0 2.6z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;border:1px solid var(--gray-200);border-radius:12px;font-family:inherit;font-size:12px;font-weight:600;line-height:18px;appearance:none;-webkit-appearance:none;cursor:pointer}.label-attribute-select:focus-visible{outline:2px solid rgba(37,99,235,.35);outline-offset:2px;border-color:var(--accent)}.label-attribute-select:disabled{color:var(--gray-500);background:var(--gray-100);cursor:not-allowed}.feature-labels-control{margin:0}.feature-labels-control i{width:16px;margin-right:8px;color:var(--accent);text-align:center}.feature-labels-control input:disabled+span{color:var(--gray-500)}.label-attribute-hint{color:var(--gray-500);font-size:11px;line-height:1.35}.tool-btn{width:100%;min-height:42px;padding:11px 14px;background:linear-gradient(180deg,#f8fafc,#f1f5f9);border:1px solid var(--gray-200);border-radius:12px;font-size:12px;font-weight:600;cursor:pointer;color:var(--gray-800);transition:background .2s ease,border-color .2s ease,box-shadow .2s ease,color .2s ease,transform .2s ease;display:flex;justify-content:space-between;align-items:center;box-shadow:inset 0 1px #ffffffa6}.tool-btn:hover{background:linear-gradient(180deg,#eff6ff,#dbeafe);border-color:var(--accent);color:var(--accent);transform:translateY(-1px);box-shadow:0 10px 20px #2563eb1f}.tool-btn span:first-child{display:inline-flex;align-items:center;gap:8px;min-width:0}.tool-section-content .tool-btn{color:var(--gray-800)}.tool-section-content .tool-btn:hover{color:var(--gray-900);border-color:#cbd5e1}.tool-section-content .tool-btn.active{color:var(--accent-dark);border-color:#2563eb73;background:linear-gradient(180deg,#eaf2ff,#dbeafe)}.tool-section-content .tool-btn span:first-child i{width:16px;height:16px;display:inline-flex;align-items:center;justify-content:center;flex:0 0 16px;font-size:13px;line-height:1;text-align:center}.annotation-tools-section .tool-section-content .tool-btn i{color:var(--blue-500)}.drawing-tools-section .tool-section-content .tool-btn i{color:#0f766e}.drawing-tools-section .tool-section-content .tool-btn.active,.measurement-section .tool-section-content .tool-btn.active{border-color:#0891b261;background:linear-gradient(180deg,#ecfeffeb,#dbeafed1);color:#0f766e;box-shadow:0 10px 22px #0891b21a}.context-controls-panel{display:grid;gap:12px;position:relative;overflow:hidden;padding:12px;border:1px solid rgba(8,145,178,.18);border-radius:12px;background:linear-gradient(180deg,#fffffff5,#f0fdfad1);box-shadow:0 15px 32px #0f172a14;animation:contextual-inspector-in .18s ease-out}.context-controls-panel:before{content:"";position:absolute;inset:0 0 auto;height:3px;background:linear-gradient(90deg,#2563eb,#0891b2)}.context-controls-title{display:grid;grid-template-columns:30px minmax(0,1fr) auto;align-items:center;gap:8px;min-height:34px;padding-left:0;color:var(--gray-800);letter-spacing:0}.context-controls-title:before{display:none}.context-title-mark{width:30px;height:30px;display:inline-flex;align-items:center;justify-content:center;border-radius:9px;background:#dbeafed1;border:1px solid rgba(37,99,235,.13);color:var(--blue-500);font-size:12px;flex:0 0 30px}.context-title-copy{display:grid;gap:1px;min-width:0}.context-controls-label{display:block;color:var(--gray-800);font-size:12px;font-weight:800;letter-spacing:0;text-transform:uppercase;line-height:1.25}.context-controls-subtitle{color:var(--gray-500);font-size:11px;font-weight:600;line-height:1.25}.context-controls-title strong{display:inline-flex;align-items:center;justify-content:center;min-height:25px;max-width:112px;padding:0 9px;border:1px solid rgba(8,145,178,.16);border-radius:999px;background:#f0fdfae0;color:#0f766e;font-size:10px;font-weight:800;letter-spacing:0;text-transform:uppercase;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.context-controls-hint,.drawing-selection-hint{color:var(--gray-600);font-size:11px;font-weight:600;line-height:1.5;padding-left:38px;letter-spacing:0}.context-controls-actions{display:grid;grid-template-columns:1fr;gap:8px;padding-top:2px}.context-controls-actions .tool-btn{min-height:44px;padding:9px 10px;border-radius:10px;transform:none;box-shadow:inset 0 1px #ffffffc2}.context-controls-actions .tool-btn span:first-child,.context-controls-actions .tool-btn span{justify-content:flex-start;white-space:normal;text-align:left;overflow-wrap:normal;word-break:normal;line-height:1.25;gap:8px;letter-spacing:0}.context-controls-actions .tool-btn i{width:24px;height:24px;flex:0 0 24px;display:inline-flex;align-items:center;justify-content:center;border-radius:8px;background:#ffffffb8;text-align:center}.delete-selected-drawing-btn{justify-content:flex-start;background:linear-gradient(180deg,snow,#fff4f4);border-color:#ef444433;color:#b42318}.context-clear-btn{justify-content:flex-start;background:#ffffffd1;border-color:#64748b38;color:var(--gray-700)}.delete-selected-drawing-btn span,.delete-selected-drawing-btn i{color:#b42318}.delete-selected-drawing-btn:hover{background:#fff1f1;border-color:#dc262647;color:#991b1b;box-shadow:none}.delete-selected-drawing-btn:hover span,.delete-selected-drawing-btn:hover i{color:#991b1b}.delete-selected-drawing-btn:disabled{background:#f8fafc;border-color:var(--gray-200);color:var(--gray-400);box-shadow:none}.delete-selected-drawing-btn:disabled span,.delete-selected-drawing-btn:disabled i{color:var(--gray-400)}.data-analysis-section .tool-section-content .tool-btn i{color:#0891b2}.advanced-layers-section .tool-section-content .tool-btn i{color:#4f46e5}.map-settings-section .tool-section-content .tool-btn i{color:var(--orange-500)}.tool-btn-arrow{font-size:16px;opacity:.45;transition:opacity .2s ease,transform .2s ease}.tool-btn:hover .tool-btn-arrow{opacity:1;transform:translate(3px)}.tool-btn-solid{min-height:40px;justify-content:center;color:#fff;border-color:transparent;box-shadow:none;gap:6px}.tool-btn-solid:hover{color:#fff;transform:translateY(-1px)}.tool-btn-accent{background:linear-gradient(135deg,var(--accent-light) 0%,var(--accent-dark) 100%)}.tool-btn-accent:hover{background:linear-gradient(135deg,#4c8cff,#1d4ed8)}.tool-btn-danger{background:linear-gradient(135deg,#ef4444,#dc2626)}.tool-btn-danger:hover{background:linear-gradient(135deg,#f87171,#dc2626)}.measure-controls-inline{display:grid;gap:8px;justify-items:center;padding:0;border:0;border-radius:0;background:transparent}.measurement-section-title{white-space:nowrap}.measure-results-panel{display:grid;gap:11px;width:100%;padding:0 0 10px;border:0;background:transparent}.measure-results-panel.empty{display:none}.annotation-edit-backdrop{position:fixed;inset:0;background:#0f172a47;z-index:10000}.annotation-edit-popover{position:fixed;top:50%;left:50%;display:grid;gap:12px;min-width:300px;max-width:min(360px,calc(100vw - 32px));padding:18px;border:1px solid rgba(148,163,184,.28);border-radius:10px;background:#fff;box-shadow:0 18px 48px #0f172a38;transform:translate(-50%,-50%);z-index:10001}.annotation-edit-title{font-size:13px;font-weight:800;color:var(--gray-900);letter-spacing:0}.annotation-edit-field{display:grid;gap:6px}.annotation-edit-label{font-size:11px;font-weight:700;color:var(--gray-700)}.annotation-edit-textarea,.annotation-edit-input,.annotation-edit-color{width:100%;border:1px solid var(--gray-300);border-radius:8px;background:#fff;color:var(--gray-900);font-family:inherit;font-size:13px}.annotation-edit-textarea,.annotation-edit-input{padding:9px 10px}.annotation-edit-textarea{min-height:72px;resize:vertical}.annotation-edit-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.annotation-edit-color{height:38px;padding:4px;cursor:pointer}.annotation-edit-actions{display:flex;justify-content:flex-end;gap:8px;padding-top:2px}.measure-results-title{display:grid;grid-template-columns:30px minmax(0,1fr);align-items:center;gap:8px;font-size:12px;font-weight:800;color:var(--gray-800);text-transform:uppercase;letter-spacing:0;line-height:1.2}.measure-results-grid{display:grid;grid-template-columns:1fr;gap:0;width:100%;border-top:1px solid rgba(var(--system-measurement-rgb),.14)}.measure-results-section{display:grid;gap:9px;justify-items:stretch;width:100%;padding-top:0;border-top:0}.measure-results-section[hidden]{display:none}.measure-result-primary{display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:6px;min-width:0;padding:6px 0 10px 38px;border-bottom:1px solid rgba(var(--system-measurement-rgb),.14);border-radius:0;background:transparent}.measure-result-chip{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:baseline;gap:10px;width:100%;min-height:34px;padding:8px 0 8px 38px;border:0;border-bottom:1px solid rgba(148,163,184,.14);border-radius:0;background:transparent;box-shadow:none;min-width:0}.measure-result-chip:last-child{border-bottom:0}.measure-result-label{font-size:10px;font-weight:700;color:var(--gray-500);min-width:0;white-space:normal;overflow-wrap:anywhere;line-height:1.3;text-align:left;letter-spacing:0}.measure-result-value{font-size:clamp(11px,.18vw + 10.5px,12px);font-weight:800;color:var(--gray-800);font-variant-numeric:tabular-nums;display:inline-flex;align-items:baseline;justify-content:flex-end;flex-wrap:wrap;column-gap:.18em;row-gap:.08em;min-width:0;text-align:right;white-space:normal;line-height:1.2;letter-spacing:-.01em}.measure-result-primary .measure-result-value{font-size:clamp(16px,.9vw + 13px,20px);font-weight:800;color:var(--system-measurement);text-align:left;line-height:1.08;column-gap:.16em;row-gap:.04em;max-width:100%;justify-content:flex-start;flex-wrap:nowrap;white-space:nowrap;display:inline-flex;align-items:baseline}.measure-value-number{min-width:0;max-width:100%;overflow-wrap:normal;word-break:normal;white-space:nowrap}.measure-value-unit{flex:0 0 auto;font-size:.84em;letter-spacing:-.01em;white-space:nowrap}.measure-result-primary .measure-value-unit{font-size:.72em}.measure-result-primary .measure-result-label{color:var(--system-measurement);font-size:10px;text-transform:uppercase;letter-spacing:0}.measure-tooltip{position:relative;background:#fffffff7;color:#0f172a;border-radius:7px;padding:4px 9px;font-size:12px;font-weight:800;letter-spacing:0;white-space:nowrap;box-shadow:0 8px 18px #0f172a1f;border:1px solid rgba(148,163,184,.42)}.measure-tooltip-hover{font-size:11px;line-height:1.35;max-width:260px;padding:5px 9px;white-space:normal}.tool-btn-muted{background:linear-gradient(135deg,#94a3b8,#64748b)}.tool-btn-muted:hover{background:linear-gradient(135deg,#a7b4c7,#64748b)}.measurement-context-panel{gap:10px;border-color:rgba(var(--system-measurement-rgb),.22);background:linear-gradient(180deg,#fffffff7,rgba(var(--system-measurement-rgb),.08) 58%,#f8fafce6)}.measurement-context-panel:before{background:linear-gradient(90deg,var(--system-measurement),#f97316)}.measurement-context-panel .context-title-mark,.measure-results-title .context-title-mark{background:rgba(var(--system-measurement-rgb),.12);border-color:rgba(var(--system-measurement-rgb),.18);color:var(--system-measurement)}.measurement-selection-controls{display:grid;gap:9px;width:100%;padding:10px 0 0;border-top:1px solid rgba(var(--system-measurement-rgb),.14)}.measurement-selection-controls .context-controls-title strong{background:rgba(var(--system-measurement-rgb),.08)}.measurement-selection-type:before{content:"";margin-right:0}.measurement-selection-type:after{content:"";margin-left:0}.measurement-selection-hint{color:var(--gray-600);font-size:11px;font-weight:600;line-height:1.5;padding-left:38px;letter-spacing:0}.delete-selected-measurement-btn{width:100%;justify-content:flex-start;background:linear-gradient(180deg,snow,#fff4f4);border-color:#ef444433;color:#b42318}.delete-selected-measurement-btn span,.delete-selected-measurement-btn i{color:#b42318}.delete-selected-measurement-btn:hover{background:#fff1f1;border-color:#dc262647;color:#991b1b;box-shadow:none}.delete-selected-measurement-btn:hover span,.delete-selected-measurement-btn:hover i{color:#991b1b}.delete-selected-measurement-btn:disabled{background:#f8fafc;border-color:var(--gray-200);color:var(--gray-400);box-shadow:none}.delete-selected-measurement-btn:disabled span,.delete-selected-measurement-btn:disabled i{color:var(--gray-400)}.contextual-inspector{gap:0;padding:0;border-top:1px solid rgba(15,23,42,.08);border-bottom:1px solid rgba(15,23,42,.1);background:#fff;box-shadow:inset 0 1px #fffc}.contextual-inspector:before,.context-controls-panel:before,.annotation-controls-panel:before{display:none}.annotation-controls-panel,.context-controls-panel{gap:12px;margin:0;padding:14px;border:0;border-radius:0;background:#fff;box-shadow:none;animation:contextual-inspector-in .16s ease-out}.measurement-context-panel{gap:12px;border:0;background:#fff}.contextual-inspector>*+*{border-top:1px solid var(--gray-200)}.annotation-controls-title,.context-controls-title,.measure-results-title{display:grid;grid-template-columns:28px minmax(0,1fr) auto;align-items:center;gap:9px;min-height:34px;margin:0;color:var(--gray-900);letter-spacing:0}.measure-results-title{grid-template-columns:28px minmax(0,1fr)}.context-title-mark,.measurement-context-panel .context-title-mark,.measure-results-title .context-title-mark{width:28px;height:28px;flex:0 0 28px;border:1px solid var(--gray-200);border-radius:8px;background:var(--gray-50);color:var(--gray-700);font-size:12px}.annotation-context-panel .context-title-mark{background:#fff;color:var(--gray-800)}.context-title-copy{gap:0}.context-controls-label,.measure-results-title-text{color:var(--gray-900);font-size:12px;font-weight:800;line-height:1.2;text-transform:uppercase;letter-spacing:0}.context-controls-subtitle{color:var(--gray-500);font-size:11px;font-weight:600;line-height:1.35}.annotation-controls-title strong,.context-controls-title strong{min-height:24px;max-width:98px;padding:0 8px;border:1px solid var(--gray-200);border-radius:7px;background:#fff;color:var(--gray-900);font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:0;box-shadow:none}.annotation-controls-hint,.context-controls-hint,.drawing-selection-hint,.measurement-selection-hint{margin:0;padding:0 0 0 37px;color:var(--gray-600);font-size:11px;font-weight:600;line-height:1.45;letter-spacing:0}.annotation-controls-actions,.context-controls-actions{display:grid;grid-template-columns:1fr;gap:6px;padding:2px 0 0 37px}.annotation-controls-actions{grid-template-columns:repeat(2,minmax(0,1fr))}#deleteAnnotationBtn,#clearAnnotationsBtn{grid-column:1 / -1}.annotation-controls-actions .tool-btn,.context-controls-actions .tool-btn{min-height:36px;width:100%;justify-content:flex-start;gap:8px;padding:8px 10px;border:1px solid var(--gray-200);border-radius:8px;background:#fff;color:var(--gray-800);box-shadow:none;font-size:11px;font-weight:750;line-height:1.2;transform:none;transition:border-color .18s ease,background .18s ease,color .18s ease,box-shadow .18s ease}.annotation-controls-actions .tool-btn:hover:not(:disabled),.context-controls-actions .tool-btn:hover:not(:disabled){border-color:rgba(var(--system-panel-rgb, var(--system-tools-rgb)),.3);background:rgba(var(--system-panel-rgb, var(--system-tools-rgb)),.065);color:var(--gray-900);box-shadow:0 0 0 1px rgba(var(--system-panel-rgb, var(--system-tools-rgb)),.05) inset;transform:none}.annotation-controls-actions .tool-btn:focus-visible:not(:disabled),.context-controls-actions .tool-btn:focus-visible:not(:disabled){outline:none;border-color:rgba(var(--system-panel-rgb, var(--system-tools-rgb)),.42);background:rgba(var(--system-panel-rgb, var(--system-tools-rgb)),.08);color:var(--gray-900);box-shadow:0 0 0 3px rgba(var(--system-panel-rgb, var(--system-tools-rgb)),.14)}.annotation-controls-actions .tool-btn:active:not(:disabled),.context-controls-actions .tool-btn:active:not(:disabled){border-color:rgba(var(--system-panel-rgb, var(--system-tools-rgb)),.36);background:rgba(var(--system-panel-rgb, var(--system-tools-rgb)),.11);color:var(--gray-900);box-shadow:0 0 0 1px rgba(var(--system-panel-rgb, var(--system-tools-rgb)),.08) inset}.annotation-controls-actions .tool-btn i,.context-controls-actions .tool-btn i{width:18px;height:18px;flex:0 0 18px;display:inline-flex;align-items:center;justify-content:center;border-radius:0;background:transparent;color:currentColor;font-size:11px;text-align:center}.context-controls-actions .tool-btn span,.context-controls-actions .tool-btn span:first-child{justify-content:flex-start;gap:8px;line-height:1.2}.annotation-controls-actions .tool-btn{justify-content:center}.annotation-controls-actions .tool-btn:disabled,.context-controls-actions .tool-btn:disabled{background:#fff;border-color:var(--gray-200);color:var(--gray-400);cursor:not-allowed}.annotation-controls-actions .tool-btn:disabled i,.context-controls-actions .tool-btn:disabled i{color:var(--gray-400)}.annotation-controls-actions #deleteAnnotationBtn,.annotation-controls-actions #clearAnnotationsBtn,.annotation-controls-actions .annotation-danger-action,.delete-selected-drawing-btn,.delete-selected-measurement-btn,.context-controls-actions .annotation-danger-action{color:#b42318;border-color:#b4231833;background:#fff}.annotation-controls-actions #deleteAnnotationBtn:hover:not(:disabled),.annotation-controls-actions #clearAnnotationsBtn:hover:not(:disabled),.annotation-controls-actions .annotation-danger-action:hover:not(:disabled),.delete-selected-drawing-btn:hover:not(:disabled),.delete-selected-measurement-btn:hover:not(:disabled),.context-controls-actions .annotation-danger-action:hover:not(:disabled){color:#991b1b;border-color:#991b1b4d;background:snow}.annotation-controls-actions #deleteAnnotationBtn:focus-visible:not(:disabled),.annotation-controls-actions #deleteAnnotationBtn:active:not(:disabled),.annotation-controls-actions #clearAnnotationsBtn:focus-visible:not(:disabled),.annotation-controls-actions #clearAnnotationsBtn:active:not(:disabled),.annotation-controls-actions .annotation-danger-action:focus-visible:not(:disabled),.annotation-controls-actions .annotation-danger-action:active:not(:disabled),.delete-selected-drawing-btn:focus-visible:not(:disabled),.delete-selected-drawing-btn:active:not(:disabled),.delete-selected-measurement-btn:focus-visible:not(:disabled),.delete-selected-measurement-btn:active:not(:disabled),.context-controls-actions .annotation-danger-action:focus-visible:not(:disabled),.context-controls-actions .annotation-danger-action:active:not(:disabled){outline:none;color:#991b1b;border-color:#991b1b57;background:#fff5f5}.annotation-controls-actions #deleteAnnotationBtn:focus-visible:not(:disabled),.annotation-controls-actions #clearAnnotationsBtn:focus-visible:not(:disabled),.annotation-controls-actions .annotation-danger-action:focus-visible:not(:disabled),.delete-selected-drawing-btn:focus-visible:not(:disabled),.delete-selected-measurement-btn:focus-visible:not(:disabled),.context-controls-actions .annotation-danger-action:focus-visible:not(:disabled){box-shadow:0 0 0 3px #dc26261f}.annotation-controls-actions #editAnnotationBtn,#moveAnnotationBtn,#toggleAnnotationLabelVisibilityBtn,#toggleAnnotationPointVisibilityBtn,#toggleAnnotationLabelVisibilityBtn[data-state=hidden],#toggleAnnotationPointVisibilityBtn[data-state=hidden]{border-color:var(--gray-200);background:#fff;color:var(--gray-800);box-shadow:none}#toggleAnnotationLabelVisibilityBtn[data-state=hidden],#toggleAnnotationPointVisibilityBtn[data-state=hidden]{background:var(--gray-50);color:var(--gray-900)}#toggleAnnotationLabelVisibilityBtn[data-state=hidden] i,#toggleAnnotationPointVisibilityBtn[data-state=hidden] i{color:currentColor}.annotation-controls-actions #editAnnotationBtn:hover:not(:disabled),.annotation-controls-actions #moveAnnotationBtn:hover:not(:disabled),.annotation-controls-actions #toggleAnnotationLabelVisibilityBtn:hover:not(:disabled),.annotation-controls-actions #toggleAnnotationPointVisibilityBtn:hover:not(:disabled){border-color:rgba(var(--system-panel-rgb, var(--system-tools-rgb)),.3);background:rgba(var(--system-panel-rgb, var(--system-tools-rgb)),.065);color:var(--gray-900);box-shadow:0 0 0 1px rgba(var(--system-panel-rgb, var(--system-tools-rgb)),.05) inset;transform:none}.measure-results-panel{gap:10px;padding:0}.measure-results-section{gap:7px}.measure-result-primary{gap:6px;padding:4px 0 9px 37px;border-bottom:1px solid var(--gray-200)}.measure-result-primary .measure-result-label{color:var(--gray-500);font-size:10px;font-weight:800;text-transform:uppercase}.measure-result-primary .measure-result-value{color:var(--gray-900);font-size:clamp(16px,.9vw + 13px,20px);font-weight:800;line-height:1.05;letter-spacing:0}.measure-results-grid{border-top:0}.measure-result-chip{min-height:30px;padding:6px 0 6px 37px;border-bottom:1px solid rgba(229,231,235,.9)}.measure-result-label{color:var(--gray-500);font-size:10px;font-weight:700}.measure-result-value{color:var(--gray-900);font-size:11px;font-weight:800}.measurement-selection-controls{gap:10px;padding:12px 0 0;border-top:1px solid var(--gray-200)}.measurement-selection-controls .context-controls-title strong{background:#fff}.right-sidebar-title i{color:var(--system-tools)}.annotation-tools-section:not(.drawing-tools-section){--section-accent: var(--system-annotation);--section-accent-rgb: var(--system-annotation-rgb)}.drawing-tools-section{--section-accent: var(--system-drawing);--section-accent-rgb: var(--system-drawing-rgb)}.measurement-section{--section-accent: var(--system-measurement);--section-accent-rgb: var(--system-measurement-rgb)}.feature-saving-section{--section-accent: var(--system-feature-saving);--section-accent-rgb: var(--system-feature-saving-rgb)}.layer-information-section{--section-accent: var(--system-layer-info);--section-accent-rgb: var(--system-layer-info-rgb)}.advanced-layers-section{--section-accent: var(--system-advanced);--section-accent-rgb: var(--system-advanced-rgb)}.map-settings-section{--section-accent: var(--system-settings);--section-accent-rgb: var(--system-settings-rgb)}.annotation-tools-section:not(.drawing-tools-section) .tool-icon.amber,.annotation-tools-section:not(.drawing-tools-section) .tool-section-content .tool-btn i{color:var(--system-annotation)}.annotation-tools-section:not(.drawing-tools-section) .tool-icon.amber{background:rgba(var(--system-annotation-rgb),.14);border-color:rgba(var(--system-annotation-rgb),.28)}.drawing-tools-section .tool-icon.teal,.drawing-tools-section .tool-section-content .tool-btn i{color:var(--system-drawing)}.drawing-tools-section .tool-icon.teal{background:rgba(var(--system-drawing-rgb),.1);border-color:rgba(var(--system-drawing-rgb),.18)}.measurement-section .tool-icon.orange,.measurement-section .tool-section-content .tool-btn i{color:var(--system-measurement)}.measurement-section .tool-icon.orange{background:rgba(var(--system-measurement-rgb),.09);border-color:rgba(var(--system-measurement-rgb),.16)}.feature-saving-section .tool-icon.blue,.feature-saving-section .tool-section-content .tool-btn i{color:var(--system-feature-saving)}.feature-saving-section .tool-icon.blue{background:rgba(var(--system-feature-saving-rgb),.1);border-color:rgba(var(--system-feature-saving-rgb),.18)}.layer-information-section .tool-icon.cyan,.layer-information-section .tool-section-content .tool-btn i{color:var(--system-layer-info)}.layer-information-section .tool-icon.cyan{background:rgba(var(--system-layer-info-rgb),.1);border-color:rgba(var(--system-layer-info-rgb),.18)}.advanced-layers-section .tool-icon.violet,.advanced-layers-section .tool-section-content .tool-btn i{color:var(--system-advanced)}.advanced-layers-section .tool-icon.violet{background:rgba(var(--system-advanced-rgb),.08);border-color:rgba(var(--system-advanced-rgb),.15)}.map-settings-section .tool-icon.amber,.map-settings-section .tool-section-content .tool-btn i{color:var(--system-settings)}.map-settings-section .tool-icon.amber{background:rgba(var(--system-settings-rgb),.08);border-color:rgba(var(--system-settings-rgb),.15)}.annotation-tools-section:not(.drawing-tools-section) .tool-section-content .tool-btn.active{border-color:rgba(var(--system-annotation-rgb),.38);background:rgba(var(--system-annotation-rgb),.1);color:var(--system-annotation);box-shadow:0 8px 18px rgba(var(--system-annotation-rgb),.11)}.drawing-tools-section .tool-section-content .tool-btn.active{border-color:rgba(var(--system-drawing-rgb),.34);background:rgba(var(--system-drawing-rgb),.075);color:var(--system-drawing);box-shadow:0 8px 18px rgba(var(--system-drawing-rgb),.075)}.measurement-section .tool-section-content .tool-btn.active{border-color:rgba(var(--system-measurement-rgb),.34);background:rgba(var(--system-measurement-rgb),.08);color:var(--system-measurement);box-shadow:0 8px 18px rgba(var(--system-measurement-rgb),.075)}.context-controls-panel,.annotation-controls-panel{--system-panel-color: var(--system-tools);--system-panel-rgb: var(--system-tools-rgb);position:relative;overflow:hidden;border-left:2px solid rgba(var(--system-panel-rgb),.46);background:linear-gradient(90deg,rgba(var(--system-panel-rgb),.05),#fff0 52%),#fff}.annotation-context-panel{--system-panel-color: var(--system-annotation);--system-panel-rgb: var(--system-annotation-rgb)}.drawing-selection-controls{--system-panel-color: var(--system-drawing);--system-panel-rgb: var(--system-drawing-rgb)}.measurement-context-panel{--system-panel-color: var(--system-measurement);--system-panel-rgb: var(--system-measurement-rgb);background:linear-gradient(90deg,rgba(var(--system-panel-rgb),.055),#fff0 54%),#fff}.annotation-context-panel .context-title-mark,.drawing-selection-controls .context-title-mark,.measurement-context-panel .context-title-mark,.measure-results-title .context-title-mark{border-color:rgba(var(--system-panel-rgb),.28);background:rgba(var(--system-panel-rgb),.1);color:var(--system-panel-color)}.annotation-context-panel .context-controls-label,.drawing-selection-controls .context-controls-label,.measurement-context-panel .context-controls-label,.measurement-context-panel .measure-results-title-text{color:var(--gray-500);font-size:10px;font-weight:800;letter-spacing:0}.annotation-controls-title strong,.context-controls-title strong{display:inline-grid;place-items:center;min-height:28px;max-width:118px;padding:0 10px;border-color:rgba(var(--system-panel-rgb),.3);background:rgba(var(--system-panel-rgb),.13);color:var(--system-panel-color);font-size:11px;font-weight:850;line-height:1;vertical-align:middle}.measure-result-primary .measure-result-label{border-color:rgba(var(--system-panel-rgb),.18);background:transparent;color:var(--gray-500)}.annotation-controls-title strong,.context-controls-title strong{box-shadow:inset 0 1px #ffffffb3}.annotation-controls-title strong[data-badge-type=text]{--system-panel-color: var(--system-annotation);--system-panel-rgb: var(--system-annotation-rgb)}.context-controls-title strong[data-badge-type=point],.context-controls-title strong[data-badge-type=line],.context-controls-title strong[data-badge-type=polygon],.context-controls-title strong[data-badge-type=freehand]{--system-panel-color: var(--system-drawing);--system-panel-rgb: var(--system-drawing-rgb)}.context-controls-title strong[data-badge-type=distance],.context-controls-title strong[data-badge-type=area],.measure-results-panel[data-measurement-type=distance] .measure-result-primary .measure-result-label,.measure-results-panel[data-measurement-type=area] .measure-result-primary .measure-result-label{--system-panel-color: var(--system-measurement);--system-panel-rgb: var(--system-measurement-rgb)}.measurement-context-panel .measure-result-primary .measure-result-value{color:var(--system-measurement)}.annotation-controls-actions #deleteAnnotationBtn,.delete-selected-drawing-btn,.delete-selected-measurement-btn{color:#b42318;border-color:#b4231833;background:#fff}.context-clear-btn,.clear-drawings-btn,.clear-measurements-btn{justify-content:flex-start}.settings-list{display:flex;flex-direction:column;gap:10px}.settings-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--gray-200);border-radius:12px;background:linear-gradient(180deg,#fff,#f8fafc);cursor:pointer;font-size:12px;font-weight:600;color:var(--gray-700);transition:border-color .2s ease,background .2s ease,transform .2s ease}.settings-item:hover{border-color:#bfdbfe;background:#f8fbff;transform:translateY(-1px)}.settings-item input{width:18px;height:18px;accent-color:var(--accent);flex-shrink:0}.quick-tips{background:linear-gradient(135deg,var(--blue-50) 0%,#f0f9ff 100%);border:1px solid #bfdbfe;border-radius:14px;padding:14px;margin-top:var(--spacing-4);box-shadow:0 10px 22px #2563eb14}.quick-tips-header{font-size:12px;font-weight:700;color:var(--accent);margin-bottom:var(--spacing-3);text-transform:uppercase;letter-spacing:.4px;display:flex;align-items:center;gap:var(--spacing-2)}.quick-tips-content{display:flex;flex-direction:column;gap:var(--spacing-2)}.quick-tips-item{font-size:12px;color:var(--gray-700);font-weight:500;display:flex;align-items:flex-start;gap:var(--spacing-2);line-height:1.5}.quick-tips-item:before{content:"→";color:var(--accent);font-weight:700}.quick-tips-item:before{content:"→";color:var(--accent);font-weight:700;flex-shrink:0;margin-top:1px}.quick-tips-item-primary{font-size:13px;font-weight:700;color:var(--gray-900)}.quick-tips-item-primary:before{content:"•";font-size:16px;line-height:1}.smart-help-panel{background:radial-gradient(circle at top left,rgba(37,99,235,.08),transparent 48%),linear-gradient(135deg,#f8fbfff5,#f0f9ffc7);border-color:#bfdbfeb8;box-shadow:0 6px 14px #2563eb0b}.smart-help-panel .quick-tips-header{color:var(--blue-600);font-weight:650;letter-spacing:.3px}.map-status-bar{display:inline-flex;align-items:center;gap:8px;padding:8px 10px;border-radius:999px;border:1px solid rgba(226,232,240,.9);background:#ffffffe0;box-shadow:0 14px 28px #0f172a1f;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);pointer-events:auto;max-width:min(100%,760px)}.map-status-item{display:flex;align-items:center;gap:5px;min-width:0;padding-right:8px;border-right:1px solid rgba(226,232,240,.95)}.map-status-item:last-child{padding-right:0;border-right:none}.map-status-label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.7px;color:var(--gray-400);white-space:nowrap}.map-status-value{font-size:11px;font-weight:700;color:var(--gray-800);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.map-status-value#statusLayer{max-width:180px}@media(max-width:420px){.control-row-stack{gap:6px}.transparency-header{gap:8px}}.modal-overlay{position:fixed;inset:0;background:#00000080;align-items:center;justify-content:center;z-index:1000;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .22s ease;will-change:opacity}.modal-overlay.active{display:flex;visibility:visible;pointer-events:auto}.modal-overlay.visible{opacity:1}.modal{background:#fff;border-radius:14px;box-shadow:0 16px 28px #0000002e;max-width:520px;width:90%;max-height:90vh;overflow-y:auto;opacity:0;transform:translate3d(0,16px,0) scale(.985);transition:opacity .22s ease,transform .22s ease;will-change:opacity,transform}.modal-overlay.visible .modal{opacity:1;transform:translateZ(0) scale(1)}.modal-header{padding:var(--spacing-6);border-bottom:1px solid var(--gray-200);display:flex;align-items:center;justify-content:space-between;background:linear-gradient(135deg,var(--gray-50) 0%,var(--gray-100) 100%)}.modal-title{font-size:18px;font-weight:700;color:var(--gray-900);letter-spacing:-.3px;display:flex;align-items:center;gap:var(--spacing-2)}.modal-close{background:#fff;border:1px solid var(--gray-300);font-size:24px;cursor:pointer;color:var(--gray-500);width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:10px;transition:all .2s ease}.modal-close:hover{background:var(--gray-100);color:var(--gray-700);border-color:var(--gray-400);transform:scale(1.05)}.modal-body{padding:var(--spacing-6)}.modal-footer{padding:var(--spacing-4) var(--spacing-6);border-top:1px solid var(--gray-200);display:flex;justify-content:flex-end;gap:var(--spacing-3);background:var(--gray-50)}.form-group{margin-bottom:var(--spacing-5)}.form-label{display:block;font-size:12px;font-weight:700;color:var(--gray-900);margin-bottom:var(--spacing-2);text-transform:none;letter-spacing:.4px}.feature-save-modal{width:560px}.feature-save-selection-bar{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-3);margin-bottom:var(--spacing-4);padding:var(--spacing-3);border:1px solid var(--gray-200);border-radius:8px;background:var(--gray-50);color:var(--gray-600);font-size:12px;font-weight:700}.feature-save-selection-bar label{display:flex;align-items:center;gap:var(--spacing-2);color:var(--gray-800);cursor:pointer}.feature-save-selection-helper{margin:calc(var(--spacing-2) * -1) 0 var(--spacing-3);color:var(--gray-600);font-size:12px}.feature-save-items{max-height:52vh;overflow-y:auto}.feature-save-group+.feature-save-group{margin-top:var(--spacing-5)}.feature-save-group h3{margin:0 0 var(--spacing-2);color:var(--gray-700);font-size:12px;letter-spacing:.3px;text-transform:uppercase}.feature-save-item{display:flex;align-items:center;gap:var(--spacing-3);min-width:0;padding:var(--spacing-3);border-bottom:1px solid var(--gray-100);cursor:pointer}.feature-save-item:hover{background:var(--gray-50)}.feature-save-item-label{min-width:0;overflow:hidden;color:var(--gray-800);font-size:13px;font-weight:600;text-overflow:ellipsis;white-space:nowrap}#uploadModal .form-label,#wmsModal .form-label,#gpModal .form-label{text-transform:none;letter-spacing:0}.form-input{width:100%;padding:var(--spacing-2) var(--spacing-3);border:1px solid var(--gray-300);border-radius:10px;font-size:13px;font-family:inherit;transition:all .2s ease;background:#fff}.form-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #2563eb1a;background:var(--blue-50)}.form-input-action-row{display:flex;align-items:stretch;gap:var(--spacing-2)}.form-input-action-row .form-input{min-width:0}.form-input-action{flex:0 0 auto;white-space:nowrap}.wms-layer-picker{position:relative}.wms-layer-picker-trigger{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-3);color:var(--gray-700);cursor:pointer;text-align:left}.wms-layer-picker-trigger i{color:var(--gray-500);font-size:11px}.wms-layer-checklist{margin-top:var(--spacing-2);max-height:240px;overflow-y:auto;border:1px solid var(--gray-300);border-radius:10px;background:#fff;box-shadow:0 10px 24px #0f172a1f}.attributes-modal{width:860px;max-width:90vw;min-width:320px;height:560px;min-height:260px;max-height:90vh;overflow:hidden;display:flex;flex-direction:column;position:relative}.attributes-modal .modal-body{flex:1 1 auto;min-height:0;display:flex;flex-direction:column}.attributes-modal .modal-body .form-group{flex:0 0 auto}.attributes-modal .modal-header{cursor:grab;-webkit-user-select:none;user-select:none;touch-action:none}.attributes-modal .modal-header:active{cursor:grabbing}.attributes-modal #attributeTableContainer{flex:1 1 auto;min-height:0;max-height:none}.modal-resize-handle{position:absolute;z-index:3;touch-action:none}.modal-resize-n,.modal-resize-s{left:8px;right:8px;height:8px;cursor:ns-resize}.modal-resize-n{top:-4px}.modal-resize-s{bottom:-4px}.modal-resize-e,.modal-resize-w{top:8px;bottom:8px;width:8px;cursor:ew-resize}.modal-resize-e{right:-4px}.modal-resize-w{left:-4px}.modal-resize-ne,.modal-resize-nw,.modal-resize-se,.modal-resize-sw{width:12px;height:12px}.modal-resize-ne{top:-4px;right:-4px;cursor:nesw-resize}.modal-resize-nw{top:-4px;left:-4px;cursor:nwse-resize}.modal-resize-se{bottom:-4px;right:-4px;cursor:nwse-resize}.modal-resize-sw{bottom:-4px;left:-4px;cursor:nesw-resize}.gp-layer-checklist{max-height:360px;box-shadow:none}.gp-layer-search-field{position:relative}.gp-layer-search-field .form-input{padding-right:38px}.gp-layer-search-field .form-input::-webkit-search-cancel-button,.gp-layer-search-field .form-input::-webkit-search-decoration{-webkit-appearance:none;appearance:none}.gp-layer-search-field .form-input::-ms-clear{display:none}.gp-layer-search-clear{position:absolute;top:50%;right:8px;width:26px;height:26px;transform:translateY(-50%);border:0;border-radius:50%;background:transparent;color:var(--gray-500);font-size:20px;line-height:1;cursor:pointer}.gp-layer-search-clear:hover{background:var(--gray-100);color:var(--gray-700)}.gp-layer-loading,.gp-layer-no-results{padding:var(--spacing-8) var(--spacing-4);text-align:center;color:var(--gray-500)}.gp-layer-loading{display:flex;justify-content:center;align-items:center;gap:var(--spacing-2)}.gp-layer-no-results-icon{margin-bottom:var(--spacing-2);font-size:24px}.gp-layer-no-results-title{margin-bottom:var(--spacing-1);color:var(--gray-700);font-size:13px;font-weight:700}.gp-layer-retry{margin:0 var(--spacing-4) var(--spacing-4)}.wms-layer-checklist-item{display:grid;grid-template-columns:auto minmax(0,1fr);gap:var(--spacing-3);align-items:start;padding:var(--spacing-3);border-bottom:1px solid var(--gray-100);cursor:pointer}.wms-layer-checklist-item:last-child{border-bottom:0}.wms-layer-checklist:not(.gp-layer-checklist) .wms-layer-checklist-item:hover{background:var(--gray-50)}.confirmation-modal{max-width:440px}.confirmation-dialog-message{margin:0;color:var(--gray-700);font-size:14px;line-height:1.55}.gp-layer-checklist .wms-layer-checklist-item:has(input:checked){background:#2563eb0f;box-shadow:inset 3px 0 0 var(--accent)}.gp-layer-checklist .wms-layer-checklist-item:has(input:checked) .wms-layer-checklist-title{font-weight:700}.wms-layer-checklist-item.is-active{background:var(--blue-50);box-shadow:inset 3px 0 0 var(--blue-500)}.gp-layer-checklist .wms-layer-checklist-item.is-active{background:var(--gray-50);box-shadow:none}.gp-layer-checklist .wms-layer-checklist-item.is-active:has(input:checked){background:#2563eb1a;box-shadow:inset 3px 0 0 var(--accent)}.wms-layer-checklist-item input{margin-top:2px}.wms-layer-checklist-title{display:block;font-size:13px;font-weight:700;color:var(--gray-900);line-height:1.25}.wms-layer-checklist-name{display:block;margin-top:2px;font-size:11px;color:var(--gray-500);overflow-wrap:anywhere}.wms-layer-empty{padding:var(--spacing-4);font-size:12px;font-weight:600;color:var(--gray-500)}.layer-source-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--spacing-2);margin-bottom:var(--spacing-5)}.layer-source-btn{min-height:58px;border:1px solid var(--gray-200);border-radius:8px;background:#fff;color:var(--gray-700);font-size:12px;font-weight:700;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--spacing-1);transition:border-color .18s ease,color .18s ease,background .18s ease}.layer-source-btn:hover,.layer-source-btn.active{border-color:var(--accent);color:var(--accent);background:#2563eb0a}.upload-area{border:2px dashed var(--gray-300);border-radius:12px;padding:var(--spacing-8) var(--spacing-5);text-align:center;cursor:pointer;transition:all .2s ease;background:var(--gray-50)}.upload-area:hover{border-color:var(--accent);background:#2563eb0a}.upload-area.active{border-color:var(--accent);background:#2563eb14}.upload-icon{font-size:36px;margin-bottom:var(--spacing-3);opacity:.7}.upload-text{font-size:13px;color:var(--gray-600);font-weight:600}.progress-bar{width:100%;height:6px;background:var(--gray-200);border-radius:3px;overflow:hidden;margin-top:var(--spacing-3)}.progress-fill{height:100%;background:linear-gradient(90deg,var(--accent),var(--accent-light));border-radius:3px;transition:width .3s}.progress-fill.is-indeterminate{width:45%!important;animation:progressPulse 1.2s ease-in-out infinite}@keyframes progressPulse{0%{transform:translate(-100%)}to{transform:translate(260%)}}.inline-feedback{margin-top:var(--spacing-2);font-size:12px;font-weight:600;color:var(--gray-500)}.inline-feedback[data-state=success]{color:#166534}.inline-feedback[data-state=warning]{color:#9a3412}.warning-box{background:linear-gradient(135deg,var(--orange-50) 0%,#fff7ed 100%);border:1px solid #fdba74;border-radius:10px;padding:var(--spacing-3);font-size:12px;color:#92400e;margin-top:var(--spacing-3);font-weight:600}.notice-box{display:flex;align-items:flex-start;gap:var(--spacing-2);background:var(--gray-50);border:1px solid var(--gray-200);border-radius:8px;padding:var(--spacing-3);font-size:12px;color:var(--gray-600);margin-top:var(--spacing-3);font-weight:600;line-height:1.4}.notice-box i{color:var(--gray-500);margin-top:1px}.export-preview-shell{background:linear-gradient(135deg,var(--gray-100),var(--gray-150));height:200px;border-radius:10px;margin-bottom:var(--spacing-5);border:1px solid var(--gray-200);position:relative;overflow:hidden}.export-preview-map{width:100%;height:100%}.export-preview-placeholder{text-align:center;color:var(--gray-400);position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--gray-100),var(--gray-150));opacity:1;transition:opacity .18s ease;pointer-events:none}.export-preview-shell.ready .export-preview-placeholder{opacity:0}.export-format-group{display:grid;grid-template-columns:minmax(116px,max-content) minmax(160px,1fr);align-items:center;column-gap:var(--spacing-3);row-gap:var(--spacing-2);margin-bottom:var(--spacing-4);padding:var(--spacing-3);border:1px solid var(--gray-200);border-radius:8px;background:#fff}.export-format-label{margin-bottom:0;color:var(--gray-700);letter-spacing:.35px}.export-format-group .form-input{min-height:40px;border-radius:8px;background-color:var(--gray-50)}.file-preview{background:linear-gradient(135deg,var(--gray-50),var(--gray-100));border:1.5px solid var(--gray-200);border-radius:10px;padding:var(--spacing-4);margin-bottom:var(--spacing-5);display:none;align-items:center;gap:var(--spacing-3)}.file-preview.active{display:flex}.file-preview-icon{font-size:32px;width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:#2563eb26;border-radius:8px;color:var(--accent);flex-shrink:0}.file-preview-info{flex:1}.file-preview-name{font-size:13px;font-weight:700;color:var(--gray-900);margin-bottom:4px;word-break:break-all}.file-preview-size{font-size:11px;color:var(--gray-500);font-weight:600}.file-preview-clear{background:none;border:none;color:var(--gray-400);font-size:20px;cursor:pointer;padding:var(--spacing-1) var(--spacing-2);transition:all .2s ease}.file-preview-clear:hover{color:var(--error);transform:scale(1.1)}.toast-container{position:absolute;top:var(--spacing-4);left:50%;transform:translate(-50%);z-index:2000;display:flex;flex-direction:column;align-items:center;gap:var(--spacing-3);width:min(calc(100% - (2 * var(--spacing-4))),330px);max-width:calc(100% - (2 * var(--spacing-4)));pointer-events:none}.toast{background:#fffffff5;border:1px solid rgba(148,163,184,.24);border-radius:12px;box-shadow:0 16px 40px #0f172a29;padding:14px 16px;display:flex;gap:12px;align-items:flex-start;animation:toastEnter .2s ease-out;pointer-events:auto;width:min(330px,calc(100vw - 32px));min-width:0;max-width:min(330px,calc(100vw - 32px));-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}@keyframes toastEnter{0%{transform:translateY(-10px);opacity:0}to{transform:translateY(0);opacity:1}}.toast.removing{animation:toastExit .18s ease-in forwards}@keyframes toastExit{0%{transform:translateY(0);opacity:1}to{transform:translateY(-8px);opacity:0}}.toast-icon{font-size:20px;flex:0 0 auto;width:20px;display:flex;align-items:center;justify-content:center;line-height:1;margin-top:1px}.toast-content{flex:1;min-width:0}.toast-title{font-size:13px;font-weight:700;color:var(--gray-900);margin-bottom:3px;text-align:left}.toast-message{font-size:12px;color:var(--gray-600);font-weight:500;line-height:1.45;text-align:left}.toast.success .toast-icon{color:var(--success)}.toast.error .toast-icon{color:var(--error)}.toast.info .toast-icon{color:var(--accent)}.toast.warning .toast-icon{color:var(--warning)}.annotation-popup{position:fixed;background:#fff;border-radius:12px;box-shadow:0 12px 32px #00000026;padding:var(--spacing-5);z-index:1500;display:none;min-width:280px;animation:slideUp .2s ease}.annotation-popup.active{display:block}.annotation-popup-title{font-size:12px;font-weight:700;color:var(--gray-900);margin-bottom:var(--spacing-3);text-transform:uppercase;letter-spacing:.4px;display:flex;align-items:center;gap:var(--spacing-2)}.annotation-input{width:100%;padding:var(--spacing-2) var(--spacing-3);border:1px solid var(--gray-300);border-radius:10px;font-size:13px;font-family:inherit;margin-bottom:var(--spacing-3);transition:all .2s ease;resize:vertical;min-height:80px}.annotation-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #2563eb1a}.annotation-buttons{display:flex;gap:var(--spacing-2);justify-content:flex-end}.annotation-btn{padding:var(--spacing-2) var(--spacing-3);border:1.5px solid var(--gray-300);border-radius:8px;font-size:12px;font-weight:700;cursor:pointer;transition:all .2s ease;background:#fff;font-family:Inter,sans-serif}.annotation-btn:hover{background:var(--gray-50);border-color:var(--gray-400)}.annotation-btn.primary{background:var(--accent);color:#fff;border-color:var(--accent)}.annotation-btn.primary:hover{background:var(--accent-dark);border-color:var(--accent-dark);box-shadow:0 4px 12px #2563eb40}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--gray-100)}::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--gray-400)}@media(max-width:1024px){.sidebar-left,.sidebar-right{display:none}.navbar{display:flex;flex-wrap:wrap;min-height:0;gap:12px;padding:14px 16px}.navbar-left,.navbar-center,.navbar-right{width:100%;justify-self:stretch}.navbar-center{justify-content:flex-start}.navbar-right{flex-wrap:wrap;justify-content:flex-start}.location-search{min-width:min(100%,360px);width:min(100%,360px)}.map-control-stack{top:var(--spacing-4);right:var(--spacing-4)}.map-overlay{left:var(--spacing-4);right:var(--spacing-4);bottom:var(--spacing-4)}.toast-container{top:var(--spacing-4)}.map-status-bar{width:100%;max-width:none;overflow-x:auto}.app-container{flex:1 1 auto;min-height:0}}@media(max-width:1366px){:root{--left-sidebar-width: 240px;--right-sidebar-width: 244px}.basemap-selector select{width:216px;max-width:216px;flex-basis:216px}.navbar{grid-template-columns:minmax(220px,1fr) minmax(260px,360px) minmax(280px,1fr)}.app-title-full{display:none}.app-title-short{display:inline}.location-search{width:min(100%,340px)}}@media(max-width:520px){.basemap-selector{max-width:100%}.basemap-selector select{width:min(230px,calc(100vw - 120px));max-width:100%;flex-basis:auto}.app-title{display:none}.export-format-group{grid-template-columns:1fr}.export-format-label{margin-bottom:var(--spacing-1)}.export-format-group{padding:0;border:0;background:transparent}.toast-container{top:var(--spacing-3);left:50%;width:calc(100% - (2 * var(--spacing-3)));align-items:stretch}.toast{width:100%;max-width:100%}}.color-picker::-webkit-color-swatch{border-radius:50%;border:none}.color-picker::-webkit-color-swatch-wrapper{padding:0;border-radius:50%}.ol-scale-bar,.ol-scale-line{left:auto;right:var(--spacing-6);bottom:84px}
