:root{--ink-950: #050a06;--ink-900: #080e08;--ink-850: #0d130d;--ink-800: #111811;--ink-750: #162016;--ink-700: #1c2a1c;--ink-600: #253825;--ink-500: #3a503a;--ink-400: #567056;--ink-300: #7da87d;--ink-200: #a8d5a8;--ink-100: #d0e8d0;--ink-50: #edf7ed;--line-soft: rgba(56, 168, 96, .07);--line: rgba(56, 168, 96, .12);--line-strong: rgba(56, 168, 96, .2);--brand: #38a860;--brand-700: #003a1c;--brand-600: #004e24;--brand-500: #00682e;--brand-400: #38a860;--brand-300: #5cc87c;--brand-200: #94ddb0;--rail-bg: #005828;--ok: #5cc87c;--warn: #f59e0b;--danger: #ef4444;--water: #22d3ee;--font-ui: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "JetBrains Mono", "Fira Code", "Cascadia Code", monospace;--r-xs: 3px;--r-sm: 4px;--r-md: 6px;--r-lg: 10px;--r-xl: 14px;--shadow-panel: 0 8px 32px rgba(0,0,0,.55), 0 2px 8px rgba(0,0,0,.35);--shadow-float: 0 4px 16px rgba(0,0,0,.45);--shadow-menu: 0 20px 40px rgba(0,0,0,.6), 0 4px 12px rgba(0,0,0,.4);--ease-out: cubic-bezier(.16, 1, .3, 1);--ease-in-out: cubic-bezier(.45, 0, .55, 1)}:root[data-theme=light]{--ink-950: #f4f7f4;--ink-900: #ffffff;--ink-850: #fafcfa;--ink-800: #f1f5f2;--ink-750: #e7ece8;--ink-700: #dae3db;--ink-600: #c2cfc5;--ink-500: #94a89b;--ink-400: #5f7467;--ink-300: #3a4e40;--ink-200: #243428;--ink-100: #12201a;--ink-50: #050a06;--line-soft: rgba(18, 32, 26, .05);--line: rgba(18, 32, 26, .09);--line-strong: rgba(18, 32, 26, .15);--brand-500: #005828;--brand-400: #3a7a55;--brand-300: #56996e;--brand-200: #89c4a4;--ok: #276b42;--warn: #a05a08;--danger: #b81c1c;--shadow-panel: 0 8px 28px rgba(18, 32, 26, .1), 0 2px 6px rgba(18, 32, 26, .05);--shadow-float: 0 4px 16px rgba(18, 32, 26, .09);--shadow-menu: 0 20px 48px rgba(18, 32, 26, .14), 0 4px 10px rgba(18, 32, 26, .07)}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;padding:0;height:100%;font-family:var(--font-ui);font-size:13px;line-height:1.4;color:var(--ink-100);background:var(--ink-950);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;letter-spacing:-.003em;overflow:hidden}#root{height:100%}button{font-family:inherit;color:inherit;background:none;border:none;cursor:pointer;padding:0}input,select,textarea{font-family:inherit;color:inherit}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--ink-600);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--ink-500)}:focus-visible{outline:2px solid var(--brand-400);outline-offset:2px;border-radius:var(--r-sm)}.rail{width:56px;height:100%;background:var(--rail-bg);border-right:1px solid var(--line);display:flex;flex-direction:column;align-items:center;padding:10px 0 12px;gap:2px;z-index:40;flex-shrink:0}.rail-logo{width:100%;display:flex;align-items:center;justify-content:center;padding:2px 3px 0;margin-bottom:6px;flex-shrink:0}.rail-btn{width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:var(--r-md);color:#ffffff8c;position:relative;transition:color .14s var(--ease-out),background .14s var(--ease-out);flex-shrink:0}.rail-btn:hover{background:#38a86024;color:var(--brand-300)}.rail-btn.active{background:#38a86033;color:var(--brand-300)}.rail-btn .tooltip{display:none;position:absolute;left:calc(100% + 10px);top:50%;transform:translateY(-50%);background:var(--ink-700);color:var(--ink-100);font-size:11px;font-weight:500;white-space:nowrap;padding:5px 9px;border-radius:var(--r-sm);border:1px solid var(--line);pointer-events:none;z-index:100;box-shadow:var(--shadow-float)}.rail-btn:hover .tooltip{display:block}.rail-divider{width:28px;height:1px;background:var(--line);margin:4px 0;flex-shrink:0}.panel-sidebar{width:300px;height:100%;background:var(--ink-850);border-right:1px solid var(--line);display:flex;flex-direction:column;overflow:hidden;flex-shrink:0}.panel-detail{width:260px}.panel-header{display:flex;align-items:center;justify-content:space-between;padding:12px 14px 10px;border-bottom:1px solid var(--line);flex-shrink:0}.panel-title{font-size:11px;font-weight:700;color:var(--brand-400);text-transform:uppercase;letter-spacing:.08em}.panel-close{width:22px;height:22px;display:flex;align-items:center;justify-content:center;border-radius:var(--r-sm);color:var(--ink-400);font-size:13px;transition:all .12s}.panel-close:hover{background:var(--ink-700);color:var(--ink-100)}.panel-body{flex:1;overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:12px}.field-label{font-size:10px;font-weight:600;color:var(--ink-400);text-transform:uppercase;letter-spacing:.07em;margin-bottom:5px;display:block}.input{width:100%;padding:6px 9px;background:var(--ink-800);border:1px solid var(--line);border-radius:var(--r-sm);color:var(--ink-100);font-size:12px;transition:border-color .12s}.input:focus{outline:none;border-color:var(--brand-500)}.chip-btn{display:inline-flex;align-items:center;gap:5px;padding:5px 10px;background:var(--ink-800);border:1px solid var(--line);border-radius:var(--r-sm);font-size:11px;font-weight:500;color:var(--ink-200);cursor:pointer;transition:all .14s var(--ease-out);white-space:nowrap}.chip-btn:hover{background:var(--ink-750);border-color:var(--line-strong);color:var(--ink-50)}.chip-btn.active{background:var(--brand-700);border-color:var(--brand-500);color:var(--brand-300)}.btn-primary{width:100%;padding:8px 12px;background:var(--brand-700);border:1px solid var(--brand-500);border-radius:var(--r-sm);color:var(--brand-300);font-size:12px;font-weight:600;cursor:pointer;transition:all .14s;text-align:center}.btn-primary:hover{background:var(--brand-600);color:var(--brand-200)}.btn-primary:disabled{opacity:.45;cursor:not-allowed}.btn-secondary{width:100%;padding:7px 12px;background:transparent;border:1px solid var(--line);border-radius:var(--r-sm);color:var(--ink-300);font-size:12px;font-weight:500;cursor:pointer;transition:all .14s;text-align:center}.btn-secondary:hover{border-color:var(--line-strong);color:var(--ink-100);background:var(--ink-800)}.btn-danger{width:100%;padding:7px 12px;background:transparent;border:1px solid rgba(239,68,68,.3);border-radius:var(--r-sm);color:#f87171;font-size:12px;font-weight:500;cursor:pointer;transition:all .14s}.btn-danger:hover{background:#ef444414;border-color:#ef444480}.tag-grid{display:flex;flex-wrap:wrap;gap:4px}.tag{padding:3px 8px;background:var(--ink-800);border:1px solid var(--line);border-radius:var(--r-xs);font-size:11px;color:var(--ink-300);cursor:pointer;transition:all .12s}.tag:hover{border-color:var(--line-strong);color:var(--ink-100)}.tag.active{background:var(--brand-700);border-color:var(--brand-500);color:var(--brand-300)}.result-card{padding:9px 11px;background:var(--ink-800);border:1px solid var(--line);border-radius:var(--r-md);cursor:pointer;transition:all .14s}.result-card:hover{border-color:var(--line-strong);background:var(--ink-750)}.result-card.selected{border-color:var(--brand-500);background:var(--brand-700)}.result-card-id{font-size:10.5px;font-family:var(--font-mono);color:var(--brand-400);font-weight:500;word-break:break-all;line-height:1.3}.result-card-meta{display:flex;gap:10px;margin-top:5px;font-size:11px;color:var(--ink-400)}.status-ok{font-size:11px;color:var(--ok);background:#38a8601a;border:1px solid rgba(56,168,96,.22);border-radius:var(--r-sm);padding:6px 10px}.status-error{font-size:11px;color:#f87171;background:#ef444414;border:1px solid rgba(239,68,68,.2);border-radius:var(--r-sm);padding:6px 10px}.status-warn{font-size:11px;color:var(--warn);background:#f59e0b14;border:1px solid rgba(245,158,11,.2);border-radius:var(--r-sm);padding:6px 10px}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000a6;display:flex;align-items:center;justify-content:center;z-index:200;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal-box{background:var(--ink-850);border:1px solid var(--line-strong);border-radius:var(--r-xl);padding:24px;width:340px;max-width:90vw;box-shadow:var(--shadow-menu)}.modal-title{font-size:14px;font-weight:700;color:var(--ink-50);margin-bottom:16px}.basemap-switcher{position:absolute;bottom:24px;right:16px;display:flex;gap:6px;z-index:20}.user-avatar{width:30px;height:30px;border-radius:50%;background:#38a86026;color:var(--brand-300);border:1px solid rgba(56,168,96,.35);display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;cursor:pointer;transition:all .14s;flex-shrink:0}.user-avatar:hover{background:#38a8603d;border-color:#38a8608c}.user-menu{position:absolute;left:48px;bottom:0;width:220px;background:var(--ink-800);border:1px solid var(--line-strong);border-radius:var(--r-lg);padding:8px;box-shadow:var(--shadow-menu);z-index:100}.user-menu-item{width:100%;padding:8px 10px;border-radius:var(--r-sm);background:transparent;border:none;color:var(--ink-100);cursor:pointer;display:flex;align-items:center;gap:8px;font-size:12px;font-family:inherit;text-align:left;transition:background .12s}.user-menu-item:hover{background:var(--ink-750)}.user-menu-item.danger{color:#f87171}.user-menu-item.danger:hover{background:#ef44441a}.section{display:flex;flex-direction:column;gap:6px}.filter-group{border:1px solid var(--line);border-radius:var(--r-md);background:var(--ink-800);overflow:hidden;flex-shrink:0}.filter-group>summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:9px;padding:9px 11px;-webkit-user-select:none;user-select:none}.filter-group>summary::-webkit-details-marker{display:none}.filter-group[open]>summary{background:var(--ink-750)}.fg-icon{width:15px;height:15px;color:var(--brand-300);flex-shrink:0}.fg-title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-100)}.fg-sum{margin-left:auto;font-size:10px;color:var(--ink-400);font-weight:500}.fg-chev{width:13px;height:13px;color:var(--ink-500);flex-shrink:0;transition:transform .2s var(--ease-out)}.filter-group:not([open]) .fg-sum{margin-right:2px}.filter-group[open] .fg-chev{transform:rotate(90deg)}.fg-body{padding:10px 11px 12px;display:flex;flex-direction:column;gap:10px;border-top:1px solid var(--line-soft)}.gis-toolbar{position:absolute;top:14px;right:14px;display:flex;flex-direction:column;gap:8px;z-index:20}.gis-group{display:flex;flex-direction:column;background:var(--ink-850);border:1px solid var(--line);border-radius:var(--r-md);overflow:hidden;box-shadow:var(--shadow-float)}.gis-btn{width:36px;height:36px;border:none;background:transparent;color:var(--ink-200);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .13s var(--ease-out);border-bottom:1px solid var(--line-soft)}.gis-group .gis-btn:last-child{border-bottom:none}.gis-btn:hover{background:var(--ink-750);color:var(--ink-50)}.gis-btn.on{background:var(--brand-700);color:var(--brand-300)}.gis-btn svg{width:17px;height:17px}.prod-card{border:1px solid var(--line);border-left:2px solid var(--brand-500);border-radius:var(--r-md);background:var(--ink-800);padding:10px 11px;display:flex;flex-direction:column;gap:9px}.prod-head{display:flex;align-items:center;gap:8px}.prod-icon{width:15px;height:15px;color:var(--brand-300);flex-shrink:0}.prod-title{font-size:11px;font-weight:700;color:var(--ink-100)}.prod-badge{margin-left:auto;font-size:9px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--brand-300);background:var(--brand-700);border-radius:999px;padding:1px 7px}.pill{font-size:9.5px;font-weight:600;letter-spacing:.02em;padding:2px 8px;border-radius:var(--r-sm);border:1px solid var(--line);background:var(--ink-800);color:var(--ink-300);cursor:pointer;transition:all .14s var(--ease-out);display:inline-flex;align-items:center;gap:4px}.pill:hover{border-color:var(--line-strong);color:var(--ink-100)}.pill.on{background:var(--brand-700);border-color:var(--brand-400);color:var(--brand-200)}.pill-dot{width:7px;height:7px;border-radius:2px;flex-shrink:0}.aoi-icon-btn{width:30px;flex-shrink:0;display:flex;align-items:center;justify-content:center;background:var(--ink-800);border:1px solid var(--line);border-radius:var(--r-sm);color:var(--ink-300);cursor:pointer;transition:all .14s var(--ease-out)}.aoi-icon-btn:hover:not(:disabled){border-color:var(--line-strong);color:var(--ink-50);background:var(--ink-750)}.aoi-icon-btn.on{background:var(--brand-700);border-color:var(--brand-500);color:var(--brand-300)}.aoi-icon-btn:disabled{opacity:.35;cursor:not-allowed}.aoi-icon-btn svg{width:15px;height:15px}.segmented{display:flex;gap:2px;background:var(--ink-850);border:1px solid var(--line);border-radius:var(--r-sm);padding:2px}.segmented button{flex:1;font-size:10.5px;font-weight:500;padding:5px 4px;border:none;border-radius:3px;background:transparent;color:var(--ink-300);cursor:pointer;transition:all .13s var(--ease-out);white-space:nowrap}.segmented button:hover{color:var(--ink-100)}.segmented button.on{background:var(--brand-700);color:var(--brand-200)}@keyframes spin{to{transform:rotate(360deg)}}.spinner{display:inline-block;width:12px;height:12px;border:2px solid rgba(56,168,96,.22);border-top-color:var(--brand-300);border-radius:50%;animation:spin .65s linear infinite;flex-shrink:0}.spinner-ico{animation:spin .65s linear infinite;flex-shrink:0}.mono{font-family:var(--font-mono)}.platform-badge{display:inline-block;font-size:9px;font-weight:600;letter-spacing:.04em;padding:2px 5px;background:#38a86026;color:var(--brand-300);border:1px solid rgba(56,168,96,.28);border-radius:var(--r-xs);text-transform:uppercase}:root[data-theme=light] .platform-badge{background:var(--brand-500);color:#fff;border-color:var(--brand-500)}:root[data-theme=light] .rail{--brand-400: #5cc87c;--brand-300: #8dd9a8;border-right-color:#0000001f}:root[data-theme=light] .panel-sidebar{background:var(--ink-900);border-right-color:var(--line)}:root[data-theme=light] .input{background:var(--ink-900);border-color:var(--line-strong);color:var(--ink-100)}:root[data-theme=light] .input:focus{border-color:var(--brand-500)}:root[data-theme=light] .result-card{background:var(--ink-900)}:root[data-theme=light] .result-card:hover{background:var(--ink-950)}:root[data-theme=light] .result-card.selected{background:#4ba06e1f;border-color:var(--brand-500)}:root[data-theme=light] .user-menu{background:var(--ink-900)}:root[data-theme=light] .modal-box{background:var(--ink-900)}:root[data-theme=light] .chip-btn{background:var(--ink-900);border-color:var(--line-strong);color:var(--ink-300)}:root[data-theme=light] .chip-btn:hover{background:var(--ink-800);color:var(--ink-100)}:root[data-theme=light] .chip-btn.active{background:var(--brand-500);border-color:var(--brand-500);color:#fff}:root[data-theme=light] .btn-primary{background:var(--brand-500);border-color:var(--brand-500);color:#fff}:root[data-theme=light] .btn-primary:hover{background:var(--brand-400);border-color:var(--brand-400);color:#fff}:root[data-theme=light] .tag.active{background:var(--brand-500);border-color:var(--brand-500);color:#fff}:root[data-theme=light] .pill.on{background:var(--brand-500);border-color:var(--brand-500);color:#fff}:root[data-theme=light] .segmented button.on{background:var(--brand-500);color:#fff}:root[data-theme=light] .gis-btn.on{background:var(--brand-500);color:#fff}@media(max-width:768px){.panel-sidebar{position:absolute;top:0;bottom:0;left:56px;width:calc(100vw - 56px);border-right:none;z-index:30;box-shadow:var(--shadow-panel)}.panel-detail{width:calc(100vw - 56px);z-index:31}.gis-toolbar{top:10px;right:10px}.gis-btn{width:40px;height:40px}.gis-btn svg{width:19px;height:19px}.basemap-switcher{bottom:12px;right:10px}.modal-box{width:92vw}}: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}
