body{overflow:hidden;padding-top:80px;padding-bottom:50px}#map{position:fixed;inset:80px 0 50px;z-index:1;background-color:var(--gray-200)}#ui-overlay{position:fixed;inset:80px 0 50px;pointer-events:none;z-index:1000;overflow:hidden}#controls.hidden-by-default{display:none}:root{--left-drawer-width: 250px;--right-drawer-width: 300px;--panel-width: 250px}.drawer{position:absolute;background-color:var(--card-bg);box-shadow:var(--box-shadow-lg);transition:transform .3s ease-in-out,left .3s ease-in-out,right .3s ease-in-out;z-index:1010;pointer-events:auto;padding:var(--spacing-md);overflow-y:auto;display:flex;flex-direction:column;color:var(--text-color);border:1px solid var(--border-color)}.drawer h2{margin-top:0;color:var(--gray-800)}.drawer .close-btn{margin-top:auto;align-self:flex-start;cursor:pointer;padding:var(--spacing-xs) var(--spacing-sm);background-color:var(--gray-200);border:1px solid var(--gray-300);border-radius:var(--border-radius-sm);color:var(--text-color);transition:var(--transition)}.drawer .close-btn:hover{background-color:var(--gray-300)}.drawer-left{top:0;bottom:0;left:0;width:var(--left-drawer-width);transform:translate(-100%);border-right:1px solid var(--border-color)}.drawer-right{top:0;bottom:0;right:0;width:var(--right-drawer-width);transform:translate(100%);border-left:1px solid var(--border-color)}.drawer-bottom{bottom:0;left:0;right:0;height:200px;transform:translateY(100%);border-top:1px solid var(--border-color)}.drawer-left.open,.drawer-right.open,.drawer-bottom.open{transform:translate(0)}body.left-drawer-open .drawer-bottom{left:var(--left-drawer-width)}body.right-drawer-open .drawer-bottom{right:var(--right-drawer-width)}.dialog{position:fixed;background-color:var(--card-bg);padding:45px 20px 20px;border-radius:var(--border-radius);box-shadow:var(--box-shadow-lg);z-index:1050;pointer-events:auto;max-width:90vw;width:auto;min-width:300px;max-height:calc(100vh - 160px);overflow:auto;cursor:default;color:var(--text-color);border:1px solid var(--border-color);top:50%;left:50%;transform:translate(-50%,-50%)}.dialog-header{position:absolute;top:0;left:0;right:0;height:40px;background-color:var(--gray-100);border-bottom:1px solid var(--border-color);padding:0 var(--spacing-md);display:flex;align-items:center;border-top-left-radius:var(--border-radius);border-top-right-radius:var(--border-radius);cursor:move;color:var(--text-color)}.dialog-title{font-weight:600;margin:0;flex-grow:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;user-select:none}.dialog-close-btn{font-size:1.6em;background:none;border:none;cursor:pointer;padding:0 5px;line-height:1;margin-left:10px;z-index:1051;color:var(--gray-500);transition:var(--transition)}.dialog-close-btn:hover{color:var(--text-color)}.dialog-content{padding-top:var(--spacing-sm)}.modal-backdrop{position:fixed;inset:0;background-color:#00000080;z-index:1045;pointer-events:auto}#controls{position:fixed;top:90px;right:10px;z-index:1020;background:var(--card-bg);border-radius:var(--border-radius-sm);border:1px solid var(--border-color);pointer-events:auto;display:flex;flex-direction:column;cursor:move;box-shadow:var(--box-shadow);user-select:none}.controls-header{padding:3px 8px;font-size:.75em;font-weight:600;color:var(--text-muted);border-bottom:1px solid var(--border-color);background-color:var(--gray-100);text-align:left;border-top-left-radius:var(--border-radius-sm);border-top-right-radius:var(--border-radius-sm);cursor:default}.controls-buttons{display:flex;flex-wrap:wrap;gap:5px;padding:6px}#controls button{padding:6px 10px;font-size:.9em;cursor:pointer}#map-tools{position:fixed;top:90px;left:10px;z-index:1020;background:var(--card-bg);border-radius:var(--border-radius-sm);border:1px solid var(--border-color);pointer-events:auto;display:flex;flex-direction:column;cursor:move;box-shadow:var(--box-shadow);user-select:none}.map-tools-header{padding:4px 6px;font-size:.75em;font-weight:600;color:var(--text-muted);border-bottom:1px solid var(--border-color);background-color:var(--gray-100);text-align:center;border-top-left-radius:var(--border-radius-sm);border-top-right-radius:var(--border-radius-sm);cursor:default;line-height:1.1}.map-tools-buttons{display:flex;flex-direction:column;gap:5px;padding:6px}#map-tools button.map-tool-btn{padding:6px;font-size:1.2em;min-width:34px;min-height:34px;text-align:center;cursor:pointer;line-height:1}#map-tools button.map-tool-btn.active{background-color:var(--primary);border-color:var(--primary-dark);color:#fff;box-shadow:inset 0 1px 3px #0003}button#tool-zoom-level{font-weight:700;min-width:38px;padding:6px 4px;cursor:pointer;font-size:.9em}select#zoom-level-select{font-family:inherit;font-size:.9em;font-weight:700;text-align:center;padding:5px 2px;margin:0;border:1px solid var(--primary);border-radius:var(--border-radius-sm);min-width:38px;cursor:pointer;height:30px;display:block}#map-tools #theme-toggle-btn{margin-top:8px}.data-panel{position:fixed;right:10px;z-index:1019;background:var(--card-bg);border-radius:var(--border-radius-sm);border:1px solid var(--border-color);pointer-events:auto;display:flex;flex-direction:column;cursor:move;box-shadow:var(--box-shadow);user-select:none;max-width:var(--panel-width);min-width:150px;min-height:60px;max-height:40vh}.panel-header{padding:3px 8px;font-size:.75em;font-weight:600;color:var(--text-muted);border-bottom:1px solid var(--border-color);background-color:var(--gray-100);text-align:left;border-top-left-radius:var(--border-radius-sm);border-top-right-radius:var(--border-radius-sm);cursor:default;display:flex;justify-content:space-between;align-items:center;flex-shrink:0}.panel-list{padding:6px;margin:0;overflow-y:auto;min-height:30px;flex-grow:1}.panel-list-placeholder{font-style:italic;color:var(--text-muted);font-size:.85em;text-align:center;padding:10px 5px}.list-item{display:flex;justify-content:space-between;align-items:center;padding:4px 2px;margin-bottom:4px;border-bottom:1px dashed var(--gray-200);font-size:.9em;transition:var(--transition)}.list-item:last-child{border-bottom:none;margin-bottom:0}.list-item span.item-name{flex-grow:1;margin-right:5px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color:var(--text-color);cursor:pointer;display:inline-block;max-width:calc(100% - 25px);padding:2px 0}.list-item span.item-name:hover{text-decoration:underline;text-decoration-style:dotted}.list-item input.item-name-input{flex-grow:1;margin-right:5px;padding:1px 3px;font-size:.9em;border:1px solid var(--primary);border-radius:2px;box-shadow:inset 0 1px 2px #0000001a}.delete-item-btn{flex-shrink:0;background:none;border:none;color:var(--danger);cursor:pointer;font-size:1.2em;line-height:1;padding:0 4px;border-radius:var(--border-radius-sm);transition:var(--transition)}.delete-item-btn:hover{color:#fff;background-color:var(--danger)}#layers-panel{top:90px}#markers-panel{top:160px}.panel-header button{padding:1px 6px;font-size:.8em;cursor:pointer;margin-left:10px;line-height:1.2}#coords-panel{position:fixed;bottom:60px;left:10px;z-index:1018;background:var(--card-bg);border-radius:var(--border-radius-sm);border:1px solid var(--border-color);pointer-events:auto;display:flex;flex-direction:column;cursor:move;box-shadow:var(--box-shadow);user-select:none;min-width:200px;min-height:40px}.coords-panel-header{padding:3px 8px;font-size:.75em;font-weight:600;color:var(--text-muted);border-bottom:1px solid var(--border-color);background-color:var(--gray-100);text-align:left;border-top-left-radius:var(--border-radius-sm);border-top-right-radius:var(--border-radius-sm);cursor:default;flex-shrink:0}.coords-panel-content{padding:6px 8px;flex-grow:1}.coords-panel-content p{margin:3px 0;font-size:.85em;color:var(--text-color);white-space:nowrap;line-height:1.3}.coord-label{display:inline-block;width:65px;text-align:right;margin-right:5px;color:var(--text-muted)}.coord-value{font-family:monospace;display:inline-block;text-align:left;min-width:95px}#map.drag-over{outline:3px dashed var(--primary);outline-offset:-5px;box-shadow:inset 0 0 30px #4361ee4d}#goto-form{padding-top:5px}#goto-form .form-group{margin-bottom:12px;display:flex;align-items:center;gap:8px}#goto-form label{flex-basis:80px;flex-shrink:0;text-align:right;font-size:.9em;margin-bottom:0}#goto-form input[type=number]{flex-grow:1;width:auto}#goto-form input[type=number]{-moz-appearance:textfield}#goto-form input::-webkit-outer-spin-button,#goto-form input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.error-message{font-size:.85em;color:var(--danger);min-height:1.2em;margin-top:5px;text-align:left}.dialog-actions{margin-top:var(--spacing-md);padding-top:var(--spacing-sm);border-top:1px solid var(--border-color);text-align:right;display:flex;justify-content:flex-end;gap:var(--spacing-sm)}.dialog-actions button#goto-submit-btn{background-color:var(--primary);color:#fff;border-color:var(--primary-dark);font-weight:700}.dialog-actions button#goto-submit-btn:hover{background-color:var(--primary-dark)}.dialog-actions button#goto-cancel-btn{background-color:var(--gray-200);color:var(--text-color)}.dialog-actions button#goto-cancel-btn:hover{background-color:var(--gray-300)}.basemap-options{list-style:none;padding:0;margin:5px 0 0}.basemap-option{margin-bottom:8px}.basemap-option label{display:flex;align-items:center;cursor:pointer;font-size:.95em;color:var(--text-color);margin-bottom:0}.basemap-option input[type=radio]{margin-right:10px;cursor:pointer;accent-color:var(--primary)}.basemap-option label:hover{color:var(--primary)}.leaflet-bar{box-shadow:var(--box-shadow);border-radius:var(--border-radius-sm);border:none;background-color:transparent}.leaflet-bar a,.leaflet-bar a:hover{background-color:var(--card-bg);border-bottom:1px solid var(--border-color);color:var(--text-color);border-radius:0;transition:var(--transition);box-shadow:none}.leaflet-bar a:hover{background-color:var(--gray-100)}.leaflet-bar a:first-of-type{border-top-left-radius:var(--border-radius-sm);border-top-right-radius:var(--border-radius-sm)}.leaflet-bar a:last-of-type{border-bottom-left-radius:var(--border-radius-sm);border-bottom-right-radius:var(--border-radius-sm);border-bottom:none}.leaflet-control-attribution{background:var(--card-bg)!important;color:var(--text-muted)!important;border-radius:var(--border-radius-sm);padding:2px 6px;margin:0 5px 5px 0!important}.leaflet-control-attribution a{color:var(--primary)!important}.leaflet-popup-content-wrapper,.leaflet-popup-tip{border-radius:var(--border-radius-sm);background:var(--card-bg);color:var(--text-color);box-shadow:var(--box-shadow)}.leaflet-popup-close-button{color:var(--text-muted)}.leaflet-popup-close-button:hover{color:var(--text-color)}.polygon-context-menu{position:absolute;background-color:var(--card-bg);border:1px solid var(--border-color);box-shadow:var(--box-shadow);padding:5px 0;z-index:10000;min-width:120px;border-radius:var(--border-radius-sm)}.polygon-context-menu button{display:block;width:100%;padding:6px 12px;background:none;border:none;text-align:left;cursor:pointer;font-size:.9em;color:var(--text-color);transition:var(--transition)}.polygon-context-menu button:hover{background-color:var(--gray-100)}.leaflet-draw-tooltip{border-radius:var(--border-radius-sm);background:var(--card-bg);color:var(--text-color);border:1px solid var(--border-color)}.leaflet-draw-toolbar a{border-radius:var(--border-radius-sm);background-color:var(--card-bg);border:1px solid var(--border-color);transition:var(--transition)}.leaflet-draw-toolbar a:hover{background-color:var(--gray-100)}.leaflet-draw-section .leaflet-draw-toolbar{margin-top:0}.leaflet-control-geocoder.leaflet-control{background-color:var(--card-bg);border:1px solid var(--border-color);box-shadow:var(--box-shadow);border-radius:var(--border-radius-sm);z-index:1015}.leaflet-control-geocoder-icon{border-radius:var(--border-radius-sm) 0 0 var(--border-radius-sm)}.leaflet-control-geocoder-form{border-radius:0 var(--border-radius-sm) var(--border-radius-sm) 0}.leaflet-control-geocoder-form input{background-color:var(--card-bg);color:var(--text-color);border:none}.leaflet-control-geocoder-alternatives{background-color:var(--card-bg);border:1px solid var(--border-color);box-shadow:var(--box-shadow)}.leaflet-control-geocoder-alternatives li{color:var(--text-color);transition:var(--transition)}.leaflet-control-geocoder-alternatives li:hover,.leaflet-control-geocoder-alternatives li.leaflet-control-geocoder-suggestion-selected{background-color:var(--gray-100)}.file-drop-zone{border:2px dashed var(--border-color);border-radius:var(--border-radius);padding:30px;text-align:center;cursor:pointer;background-color:var(--gray-100);color:var(--text-muted);margin-top:var(--spacing-md);transition:var(--transition)}.file-drop-zone p{margin:0;font-size:.9em;pointer-events:none}.file-drop-zone.drag-over{border-color:var(--primary);background-color:#4361ee1a;color:var(--primary)}.file-loader-dialog-input{margin-top:var(--spacing-md);display:block;text-align:center}.file-loader-dialog-input label{font-size:.9em;margin-right:5px}.file-loader-dialog-input input[type=file]{font-size:.9em}body.dark-theme #map{background-color:var(--gray-300)}body.dark-theme .drawer,body.dark-theme .dialog{background-color:var(--card-bg);border-color:var(--border-color)}body.dark-theme .dialog-header{background-color:var(--gray-100);border-color:var(--border-color)}body.dark-theme #controls,body.dark-theme #map-tools,body.dark-theme .data-panel,body.dark-theme #coords-panel{background-color:var(--card-bg);border-color:var(--border-color)}body.dark-theme .controls-header,body.dark-theme .map-tools-header,body.dark-theme .panel-header,body.dark-theme .coords-panel-header{background-color:var(--gray-100);border-color:var(--border-color)}body.dark-theme .leaflet-bar a{background-color:var(--card-bg);border-color:var(--border-color);color:var(--text-color)}body.dark-theme .leaflet-bar a:hover{background-color:var(--gray-200)}body.dark-theme .leaflet-control-attribution{background:var(--card-bg)!important;color:var(--text-muted)!important}body.dark-theme .leaflet-popup-content-wrapper,body.dark-theme .leaflet-popup-tip{background:var(--card-bg);color:var(--text-color)}body.dark-theme .leaflet-draw-toolbar a{background-color:var(--card-bg);border-color:var(--border-color)}body.dark-theme .leaflet-draw-toolbar a:hover{background-color:var(--gray-200)}body.dark-theme .leaflet-draw-tooltip{background:var(--card-bg);border-color:var(--border-color);color:var(--text-color)}body.dark-theme .leaflet-control-geocoder.leaflet-control{background-color:var(--card-bg);border-color:var(--border-color)}body.dark-theme .leaflet-control-geocoder-form input{background-color:var(--card-bg);color:var(--text-color)}body.dark-theme .leaflet-control-geocoder-alternatives{background-color:var(--card-bg);border-color:var(--border-color)}body.dark-theme .leaflet-control-geocoder-alternatives li:hover{background-color:var(--gray-200)}body.dark-theme .polygon-context-menu{background-color:var(--card-bg);border-color:var(--border-color)}body.dark-theme .polygon-context-menu button:hover{background-color:var(--gray-200)}body.dark-theme .file-drop-zone{border-color:var(--border-color);background-color:var(--gray-100)}body.dark-theme .file-drop-zone.drag-over{border-color:var(--primary);background-color:#6b8cff26}@media (max-width: 768px){body{padding-top:110px}#map,#ui-overlay{top:110px}#map-tools,#layers-panel{top:120px}#markers-panel{top:190px}}@media (max-width: 480px){body{padding-top:120px;padding-bottom:44px}#map,#ui-overlay{top:120px;bottom:44px}#coords-panel{bottom:54px}}
