:root{font-family:JetBrains Mono,Courier New,Consolas,Liberation Mono,monospace;line-height:1.4;font-weight:400;color-scheme:dark;color:#fff;background-color:#000;--primary-white: #ffffff;--secondary-white: #e0e0e0;--accent-red: #ff0000;--warning-orange: #ff6b35;--error-red: #ff3366;--success-green: #01a001ce;--bg-primary: #000000e6;--bg-secondary: #111111e1;--bg-tertiary: #1a1a1ad0;--bg-panel: #0a0a0aa1;--border-primary: #ffffff;--border-secondary: #666666;--border-accent: #ff0000;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{margin:0;padding:0;box-sizing:border-box}html,body,#root{width:100%;height:100%;overflow:hidden}body{margin:0;background-color:var(--bg-primary)}.app{display:flex;flex-direction:column;width:100vw;height:100vh;overflow:hidden;position:relative}.header{background-color:var(--bg-panel);border-bottom:1px solid var(--border-primary);padding:1rem 2rem;font-size:1.3rem;font-weight:600;color:var(--primary-white);position:relative;z-index:10;letter-spacing:1px;text-transform:uppercase;display:flex;justify-content:space-between;align-items:center}.header-title{flex:1}.header-actions{display:flex;gap:1rem;align-items:center;margin-right:1.5rem}.header-btn{padding:.6rem 1.2rem;font-size:.8rem;font-weight:500;font-family:inherit;cursor:pointer;background-color:var(--ui-dark-gray);border:1px solid var(--ui-dark-gray);color:var(--ui-white);transition:var(--btn-transition);text-transform:uppercase;letter-spacing:.5px;border-radius:0;position:relative;transform-origin:center;will-change:transform,background-color}.header-btn:hover{background-color:var(--ui-black);color:var(--ui-white);border-color:var(--ui-black);transform:var(--btn-hover-lift)}.header-btn:active{transform:scale(.98)}.header:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background-color:var(--border-primary)}.header:after{content:"";position:absolute;bottom:-1px;left:25%;right:25%;height:1px;background-color:var(--border-secondary)}.main-content{position:relative;flex:1;overflow:hidden;z-index:2}.left-section{width:100%;height:100%;display:flex;flex-direction:column;position:absolute;top:0;left:0;z-index:3}.action-toolbar{display:flex;gap:1.5rem;position:relative;align-items:baseline}.action-toolbar.floating{position:absolute;top:20px;left:20px;z-index:1000;display:flex;gap:8px}.action-toolbar.floating:before{display:none}:root{--tips-margin: 8px;--ui-black: #000000;--ui-white: #ffffff;--ui-gray: #666666;--ui-light-gray: #999999;--ui-dark-gray: #333333;--ui-danger: #ab2b2b;--ui-active: #00C8FF;--ui-dark-blue: #0080CC;--btn-transition: all .3s ease;--btn-hover-lift: translateY(-1px);--btn-danger-scale: scale(1.05);--btn-disabled-opacity: .3}.recognition-tip{font-size:.7rem;color:var(--warning-orange);text-align:center;padding:4px 8px;background-color:#ffa5001a;border:1px solid var(--warning-orange);border-radius:0;font-weight:500;letter-spacing:.3px;white-space:nowrap;margin-top:var(--tips-margin)}.export-btn.enabled{background-color:var(--ui-black);color:var(--ui-white);border-color:var(--ui-black)}.export-btn.enabled:hover{background-color:var(--ui-white);color:var(--ui-black);border-color:var(--ui-black);transform:var(--btn-hover-lift)}.export-tip{font-size:.7rem;color:var(--primary-green);text-align:center;padding:4px 8px;background-color:#00ff661a;border:1px solid var(--primary-green);border-radius:0;font-weight:500;letter-spacing:.3px;white-space:nowrap;margin-top:var(--tips-margin)}.draw-btn.enabled{background-color:var(--ui-dark-gray);color:var(--ui-white);border-color:var(--ui-dark-gray)}.draw-btn.active{background-color:var(--ui-active);color:var(--ui-white);border-color:var(--ui-active)}.draw-btn.enabled:hover:not(.active){background-color:var(--ui-black);color:var(--ui-white);border-color:var(--ui-black);transform:var(--btn-hover-lift)}.draw-btn:disabled{opacity:var(--btn-disabled-opacity);cursor:not-allowed;background-color:var(--ui-gray);color:var(--ui-white)!important;border-color:var(--ui-gray)!important}.draw-tip{font-size:.7rem;color:var(--warning-orange);text-align:center;padding:4px 8px;background-color:#ffa5001a;border:1px solid var(--warning-orange);border-radius:0;font-weight:500;letter-spacing:.3px;white-space:nowrap;margin-top:var(--tips-margin)}.auto-recognize-btn.enabled{background-color:var(--ui-black);color:var(--ui-white);border-color:var(--ui-black)}.auto-recognize-btn.enabled:hover{background-color:var(--ui-white);color:var(--ui-black);border-color:var(--ui-black);transform:var(--btn-hover-lift)}.auto-recognize-btn:disabled{opacity:var(--btn-disabled-opacity);cursor:not-allowed;background-color:var(--ui-gray);color:var(--ui-white)!important;border-color:var(--ui-gray)!important}.auto-recognize-tip{font-size:.7rem;color:var(--warning-orange);text-align:center;padding:4px 8px;background-color:#ffa5001a;border:1px solid var(--warning-orange);border-radius:0;font-weight:500;letter-spacing:.3px;white-space:nowrap;margin-top:var(--tips-margin)}.action-toolbar:before{content:"";position:absolute;top:0;left:10%;right:10%;height:1px;background-color:var(--border-secondary)}.action-toolbar button{padding:.75rem 1.5rem;font-size:.9rem;font-weight:500;font-family:inherit;cursor:pointer;background-color:var(--ui-black);border:1px solid var(--ui-black);transition:var(--btn-transition);color:var(--ui-white);text-transform:uppercase;letter-spacing:.5px;position:relative;border-radius:0;transform-origin:center;will-change:transform,background-color}.action-toolbar button:hover:not(:disabled){background-color:var(--ui-white);color:var(--ui-black);border-color:var(--ui-black);transform:var(--btn-hover-lift)}.action-toolbar button:active:not(:disabled){transform:scale(.98)}.action-toolbar button:disabled,.action-toolbar button.disabled{opacity:var(--btn-disabled-opacity);cursor:not-allowed;background-color:var(--ui-gray);color:var(--ui-white);border-color:var(--ui-gray)}.action-toolbar button.enabled{background-color:var(--ui-black);color:var(--ui-white);border-color:var(--ui-black)}.action-toolbar button.enabled:hover{background-color:var(--ui-white);color:var(--ui-black);border-color:var(--ui-black);transform:var(--btn-hover-lift)}.zoom-notification{color:var(--warning-orange);font-size:.8rem;font-weight:500;margin-left:1rem;display:flex;align-items:center;padding:.5rem 1rem;background-color:var(--bg-primary);border:1px solid var(--warning-orange);text-transform:uppercase;letter-spacing:.5px}.map-container{flex:1;position:relative;background-color:var(--bg-secondary);border:1px solid var(--glass-border);overflow:hidden}.map-container canvas{will-change:transform;position:relative;z-index:2}.map-status{position:absolute;bottom:15px;left:15px;background-color:var(--bg-panel);padding:1rem 1.25rem;font-size:.75rem;font-family:inherit;border:1px solid var(--glass-border);min-width:220px;color:var(--primary-green);z-index:10;text-transform:uppercase;letter-spacing:.5px;border-left:3px solid #ffffff}.bbox-info{margin-top:.4rem;color:#fff;font-size:.7rem}.operation-tips{margin-top:.5rem;padding-top:.5rem;border-top:1px solid var(--glass-border);color:var(--warning-orange);font-size:.75rem;font-weight:500;text-transform:none;letter-spacing:.3px}.operation-tips span{display:block;line-height:1.4;opacity:.8}.edit-status{margin-top:.4rem;color:var(--success-green);font-size:.7rem;font-weight:600}.results-panel-container{position:absolute;right:0;top:0;height:100%;display:flex;transition:width .4s cubic-bezier(.4,0,.2,1);z-index:100}.results-panel-container.open{width:350px}.results-panel-container.closed{width:0}.results-panel{width:100%;height:100%;background-color:var(--bg-panel);border-left:2px solid #ffffff;display:flex;flex-direction:column;overflow:hidden;position:relative;opacity:.85;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.results-panel:after{content:"";position:absolute;top:0;left:0;width:2px;height:100%;background-color:#fff}.results-header{padding:1.5rem 1.25rem;background-color:var(--bg-tertiary);border-bottom:2px solid var(--glass-border);font-weight:600;color:#fff;position:relative;z-index:2;text-transform:uppercase;letter-spacing:.8px;font-size:.9rem}.results-header:before{content:"";position:absolute;bottom:0;left:20%;right:20%;height:1px;background-color:#fff}.results-title-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.results-title{font-size:1rem;font-weight:700;color:var(--primary-green)}.sort-btn{padding:.3rem .6rem;font-size:.7rem;font-family:inherit;cursor:pointer;transition:var(--btn-transition);text-transform:uppercase;letter-spacing:.5px;font-weight:500;border-radius:0;background-color:var(--ui-dark-gray);color:var(--ui-white);border:1px solid var(--ui-dark-gray)}.sort-btn:hover:not(:disabled){background-color:var(--ui-black);color:var(--ui-white);border-color:var(--ui-black);transform:var(--btn-hover-lift)}.sort-btn:disabled{opacity:var(--btn-disabled-opacity);cursor:not-allowed;background-color:var(--ui-gray);color:var(--ui-white);border-color:var(--ui-gray)}.results-controls{display:flex;justify-content:flex-end;gap:.75rem;position:relative;z-index:3}.select-all-btn{padding:.5rem 1rem;font-size:.75rem;font-family:inherit;cursor:pointer;transition:var(--btn-transition);text-transform:uppercase;letter-spacing:.5px;font-weight:500;position:relative;border-radius:0;background-color:var(--ui-dark-gray);color:var(--ui-white);border:1px solid var(--ui-dark-gray)}.select-all-btn:hover:not(:disabled){background-color:var(--ui-black);color:var(--ui-white);border-color:var(--ui-black);transform:var(--btn-hover-lift)}.select-all-btn:disabled{opacity:var(--btn-disabled-opacity);cursor:not-allowed;background-color:var(--ui-gray);color:var(--ui-white);border-color:var(--ui-gray)}.edit-btn{padding:.5rem 1rem;font-size:.75rem;font-family:inherit;cursor:pointer;transition:var(--btn-transition);text-transform:uppercase;letter-spacing:.5px;font-weight:500;position:relative;border-radius:0;background-color:var(--ui-dark-gray);color:var(--ui-white);border:1px solid var(--ui-dark-gray)}.confirm-btn{padding:.5rem 1rem;font-size:.75rem;font-family:inherit;cursor:pointer;transition:var(--btn-transition);text-transform:uppercase;letter-spacing:.5px;font-weight:500;position:relative;border-radius:0;background-color:var(--ui-black);color:var(--ui-white);border:1px solid var(--ui-black)}.confirm-btn:hover:not(:disabled){background-color:var(--ui-white);color:var(--ui-black);border-color:var(--ui-black);transform:var(--btn-hover-lift)}.confirm-btn:disabled{opacity:var(--btn-disabled-opacity);cursor:not-allowed;background-color:var(--ui-gray);color:var(--ui-white);border-color:var(--ui-gray)}.edit-btn:hover:not(:disabled){background-color:var(--ui-black);color:var(--ui-white);border-color:var(--ui-black);transform:var(--btn-hover-lift)}.results-list{flex:1;overflow-y:auto;padding:1rem .75rem;position:relative;z-index:2}.results-list::-webkit-scrollbar{width:6px}.results-list::-webkit-scrollbar-track{background:var(--bg-secondary)}.results-list::-webkit-scrollbar-thumb{background-color:#fff}.results-list::-webkit-scrollbar-thumb:hover{background-color:var(--primary-green)}.result-item{padding:1rem;margin-bottom:.75rem;background-color:#1a1a1abf;border:1px solid rgba(255,255,255,.3);cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1);display:flex;align-items:center;gap:1rem;position:relative;overflow:hidden;-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px);will-change:transform,background-color,border-color}.result-item:before{content:"";position:absolute;top:0;left:0;width:3px;height:100%;background-color:#fff;opacity:0;transition:opacity .3s}.result-item:hover{background-color:#000c;border-color:var(--warning-orange);transform:translateY(-2px)}.result-item:hover:before{opacity:1;background-color:var(--warning-orange)}.result-item.hovered{background-color:#000c;border-color:var(--warning-orange);transform:translateY(-3px)}.result-item.hovered:before{opacity:1;background-color:var(--warning-orange)}.result-item.selected{background-color:#000000e6;border-color:#fff}.result-item.selected:before{opacity:1;background-color:#fff}.result-item.selected.hovered{background-color:#000000e6}.result-item.editing{background-color:#000000e6;border-color:var(--success-green);border-width:2px}.result-item.editing:before{opacity:1;background-color:var(--success-green);width:4px}.result-item.editing .result-title{color:var(--success-green);font-weight:700}.result-item.map-selected{background-color:#ffffff1a;border-color:#fff;border-width:2px}.result-item.map-selected:before{opacity:1;background-color:#fff;width:4px}.result-item.map-selected .result-title{color:#fff;font-weight:700}.result-item.auto-selected{background-color:#ffa50033;border-color:var(--warning-orange);border-width:2px;transform:translateY(-2px);animation:pulse .5s ease-in-out}.result-item.auto-selected:before{opacity:1;background-color:var(--warning-orange);width:4px}@keyframes pulse{0%{transform:translateY(-2px) scale(1)}50%{transform:translateY(-2px) scale(1.02)}to{transform:translateY(-2px) scale(1)}}.result-checkbox{display:flex;align-items:center;position:relative}.result-checkbox input[type=checkbox]{width:20px;height:20px;cursor:pointer;appearance:none;transition:var(--btn-transition);position:relative;border-radius:0;background-color:var(--ui-black);border:2px solid var(--ui-white)}.result-checkbox input[type=checkbox]:hover{border-color:var(--ui-white);background-color:var(--ui-black)}.result-checkbox input[type=checkbox]:checked{background-color:var(--ui-white);border-color:var(--ui-white)}.result-info{display:flex;flex-direction:column;gap:.4rem;flex:1;position:relative}.geometry-preview{width:60px;height:60px;border:1px solid var(--glass-border);background-color:var(--bg-secondary);margin-left:.5rem;position:relative;overflow:hidden;flex-shrink:0}.delete-polygon-btn{width:24px;height:24px;cursor:pointer;transition:var(--btn-transition);font-size:14px;font-weight:700;display:flex;align-items:center;justify-content:center;margin-left:.5rem;flex-shrink:0;line-height:1;border-radius:0;transform-origin:center;will-change:transform,background-color;background-color:var(--ui-black);border:1px solid var(--ui-danger);color:var(--ui-danger)}.delete-polygon-btn:hover:not(:disabled){background-color:var(--ui-danger);border-color:var(--ui-danger);color:var(--ui-white);transform:var(--btn-danger-scale)}.delete-polygon-btn:active:not(:disabled){transform:scale(.95)}.delete-polygon-btn:disabled{opacity:var(--btn-disabled-opacity);cursor:not-allowed;background-color:var(--ui-gray);color:var(--ui-white);border-color:var(--ui-gray)}.geometry-preview svg{width:100%;height:100%;display:block}.result-title{font-weight:600;color:var(--primary-green);font-size:.9rem;letter-spacing:.3px}.result-details{display:flex;flex-direction:column;gap:.2rem}.result-confidence{font-size:.7rem;color:#fff;opacity:.8;text-transform:uppercase;letter-spacing:.5px;font-weight:500}.result-area{font-size:.75rem;color:var(--warning-orange);font-weight:600;letter-spacing:.3px}.no-results{padding:3rem 1.5rem;text-align:center;color:#fff;font-style:italic;opacity:.7;font-size:.9rem;letter-spacing:.5px;position:relative}.no-results:before{content:"◊";display:block;font-size:2rem;color:#fff;margin-bottom:1rem;opacity:.3}.status-overlay{position:fixed;inset:0;background-color:#0000003a;display:flex;align-items:center;justify-content:center;z-index:9999}.status-content{background-color:var(--bg-panel);padding:2rem;border:2px solid #ffffff;display:flex;align-items:center;gap:1rem;color:var(--primary-green)}.spinner{position:relative;width:24px;height:24px;border-radius:50%;background:var(--glass-border)}.spinner:before{content:"";position:absolute;top:50%;left:50%;width:24px;height:3px;background:#fff;transform-origin:center;transform:translate(-50%,-50%) rotate(0);animation:spin .8s ease-in-out infinite}@keyframes spin{0%{transform:translate(-50%,-50%) rotate(0)}to{transform:translate(-50%,-50%) rotate(360deg)}}.toggle-panel-btn{position:absolute;left:-24px;top:50%;transform:translateY(-50%);width:24px;height:60px;border-right:none;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:12px;z-index:10;transition:var(--btn-transition);padding:0;border-radius:0;background-color:var(--ui-black);border:1px solid var(--ui-black);color:var(--ui-white)}.toggle-panel-btn:hover{background-color:var(--ui-white);border-color:var(--ui-black);color:var(--ui-black)}.results-panel-container.closed .results-panel{display:none}.user-profile{position:relative;display:flex;align-items:center}.profile-button{display:flex;align-items:center;gap:8px;padding:8px 12px;background-color:var(--ui-black);border:1px solid var(--ui-black);color:var(--ui-white);cursor:pointer;transition:var(--btn-transition);font-size:.85rem;font-weight:500;text-transform:uppercase;letter-spacing:.5px;border-radius:0}.profile-button:hover{background-color:var(--ui-white);color:var(--ui-black);border-color:var(--ui-black);transform:var(--btn-hover-lift)}.profile-icon{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:0;font-weight:700;font-size:.8rem}.profile-avatar{background-color:var(--ui-active);color:var(--ui-white);width:100%;height:100%;display:flex;align-items:center;justify-content:center;border-radius:0}.profile-guest{background-color:var(--ui-gray);color:var(--ui-white);width:100%;height:100%;display:flex;align-items:center;justify-content:center;border-radius:0}.dropdown-arrow{font-size:.7rem;transition:transform .2s ease}.profile-dropdown{position:absolute;top:100%;right:0;margin-top:4px;background-color:var(--bg-panel);border:2px solid var(--ui-white);min-width:200px;z-index:1001;border-radius:0;opacity:.95;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.profile-info{padding:12px 16px;border-bottom:1px solid var(--glass-border)}.profile-email{font-size:.85rem;font-weight:600;color:var(--primary-green);margin-bottom:4px;text-transform:none;letter-spacing:.3px}.profile-status{font-size:.7rem;color:var(--ui-white);opacity:.8;text-transform:uppercase;letter-spacing:.5px}.profile-action{width:100%;padding:12px 16px;background:none;border:none;color:var(--ui-white);cursor:pointer;font-size:.8rem;font-weight:500;text-transform:uppercase;letter-spacing:.5px;transition:var(--btn-transition);display:flex;align-items:center;justify-content:center}.profile-action.login{color:var(--primary-green)}.profile-action.login:hover{background-color:var(--primary-green);color:var(--ui-white)}.profile-action.logout{color:var(--ui-danger)}.profile-action.logout:hover{background-color:var(--ui-danger);color:var(--ui-white)}: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}.notification{position:fixed;top:80px;right:20px;padding:12px 20px;color:#fff;font-weight:500;font-family:JetBrains Mono,Courier New,Consolas,monospace;z-index:1000;display:flex;align-items:center;gap:10px;border:1px solid;animation:slideIn .3s ease-out;text-transform:uppercase;letter-spacing:.5px;font-size:.85rem}.notification-success{background-color:var(--success-green);border-color:var(--success-green)}.notification-error{background-color:var(--error-red);border-color:var(--error-red)}.notification-close{background:none;border:1px solid #666666;color:#fff;font-size:14px;cursor:pointer;padding:0;width:20px;height:20px;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.notification-close:hover{border-color:#fff;background-color:#333}@keyframes slideIn{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}.login-page{width:100vw;height:100vh;background-color:var(--bg-primary);display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden}.login-page:before{content:"";position:absolute;inset:0;background:linear-gradient(45deg,transparent 30%,rgba(255,255,255,.02) 50%,transparent 70%),linear-gradient(-45deg,transparent 30%,rgba(255,255,255,.02) 50%,transparent 70%);pointer-events:none}.login-container{background-color:var(--bg-panel);border:2px solid var(--border-primary);padding:3rem 2.5rem;min-width:400px;max-width:500px;position:relative;opacity:.95;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.login-container:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background-color:var(--border-primary)}.login-container:after{content:"";position:absolute;bottom:0;left:25%;right:25%;height:2px;background-color:var(--border-secondary)}.login-header{text-align:center;margin-bottom:2.5rem;padding-bottom:1.5rem;border-bottom:1px solid var(--glass-border)}.login-title{font-size:1.5rem;font-weight:600;color:var(--primary-white);margin:0 0 .5rem;text-transform:uppercase;letter-spacing:1px}.login-subtitle{font-size:.9rem;color:var(--primary-green);font-weight:500;text-transform:uppercase;letter-spacing:.5px}.login-form-container{margin-bottom:2rem}.form-group{margin-bottom:1.5rem}.form-label{display:block;color:var(--primary-white);font-size:.85rem;font-weight:500;margin-bottom:.5rem;text-transform:uppercase;letter-spacing:.5px}.form-input{width:100%;padding:.875rem 1rem;background-color:var(--bg-secondary);border:1px solid var(--glass-border);color:var(--primary-white);font-size:.9rem;font-family:inherit;transition:all .3s ease;border-radius:0;box-sizing:border-box}.form-input:focus{outline:none;border-color:var(--primary-green);background-color:var(--bg-primary);box-shadow:0 0 0 1px var(--primary-green)}.form-input:disabled{opacity:.6;cursor:not-allowed}.form-input::placeholder{color:var(--ui-light-gray);font-style:italic}.login-error{background-color:#ab2b2b1a;border:1px solid var(--ui-danger);color:var(--ui-danger);padding:.75rem 1rem;margin-bottom:1.5rem;font-size:.85rem;font-weight:500;text-align:center;text-transform:uppercase;letter-spacing:.3px;border-radius:0}.login-button{width:100%;padding:1rem 1.5rem;background-color:var(--ui-black);border:1px solid var(--ui-black);color:var(--ui-white);font-size:.9rem;font-weight:500;font-family:inherit;cursor:pointer;transition:var(--btn-transition);text-transform:uppercase;letter-spacing:.5px;border-radius:0;position:relative;transform-origin:center;will-change:transform,background-color}.login-button:hover:not(:disabled){background-color:var(--ui-white);color:var(--ui-black);border-color:var(--ui-black);transform:var(--btn-hover-lift)}.login-button:active:not(:disabled){transform:scale(.98)}.login-button:disabled{opacity:var(--btn-disabled-opacity);cursor:not-allowed;background-color:var(--ui-gray);color:var(--ui-white);border-color:var(--ui-gray)}.login-footer{text-align:center;padding-top:1.5rem;border-top:1px solid var(--glass-border)}.footer-text{color:var(--ui-light-gray);font-size:.7rem;text-transform:uppercase;letter-spacing:.8px;opacity:.8}.dialog-overlay{position:fixed;inset:0;background-color:#0000004d;display:flex;align-items:center;justify-content:center;z-index:1000;animation:dialog-fade-in .3s ease-out}.dialog-content{background:var(--bg-panel);border:1px solid var(--border-primary);border-radius:0;min-width:400px;max-width:600px;max-height:80vh;overflow:hidden;animation:dialog-scale-in .3s ease-out;font-family:JetBrains Mono,Courier New,Consolas,monospace}.dialog-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.5rem;border-bottom:1px solid var(--border-secondary);background-color:var(--bg-secondary)}.dialog-title{margin:0;font-size:1rem;font-weight:600;color:var(--primary-white);text-transform:uppercase;letter-spacing:1px}.dialog-close-btn{background:none;border:1px solid var(--border-secondary);font-size:16px;color:var(--primary-white);cursor:pointer;padding:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:0;transition:var(--btn-transition)}.dialog-close-btn:hover{background-color:var(--ui-dark-gray);border-color:var(--primary-white)}.dialog-body{padding:1.5rem;background:var(--bg-panel)}.dialog-message{margin:0;color:var(--secondary-white);line-height:1.6;font-size:.9rem;font-family:JetBrains Mono,Courier New,Consolas,monospace}.dialog-footer{display:flex;gap:1rem;padding:1rem 1.5rem;border-top:1px solid var(--border-secondary);background-color:var(--bg-secondary);justify-content:flex-end}.dialog-btn{padding:.6rem 1.2rem;border:1px solid;border-radius:0;font-size:.8rem;font-weight:500;cursor:pointer;transition:var(--btn-transition);min-width:100px;font-family:JetBrains Mono,Courier New,Consolas,monospace;text-transform:uppercase;letter-spacing:.5px}.dialog-btn:disabled{opacity:var(--btn-disabled-opacity);cursor:not-allowed}.dialog-btn-primary{background-color:var(--ui-black);border-color:var(--ui-black);color:var(--ui-white)}.dialog-btn-primary:hover:not(:disabled){background-color:var(--ui-white);color:var(--ui-black);border-color:var(--ui-black);transform:var(--btn-hover-lift)}.dialog-btn-secondary{background-color:var(--ui-dark-gray);border-color:var(--ui-dark-gray);color:var(--ui-white)}.dialog-btn-secondary:hover:not(:disabled){background-color:var(--ui-black);border-color:var(--ui-black);transform:var(--btn-hover-lift)}.dialog-btn-danger{background-color:var(--ui-danger);border-color:var(--ui-danger);color:var(--ui-white)}.dialog-btn-danger:hover:not(:disabled){background-color:var(--error-red);border-color:var(--error-red);transform:var(--btn-hover-lift)}@keyframes dialog-fade-in{0%{opacity:0}to{opacity:1}}@keyframes dialog-scale-in{0%{transform:scale(.95);opacity:0}to{transform:scale(1);opacity:1}}
