*{margin:0;padding:0;box-sizing:border-box}:root{--sidebar-width: 420px;--accent: #FF4F00;--accent-hover: #FF611A;--accent-dark: #E54700;--accent-secondary: #FF7131;--accent-subtle: #FFD242;--brand-blue: #451EFF;--brand-blue-subtle: #6342FF;--success: #30c16b}:root,[data-theme=light]{--bg-dark: #F2F4F6;--bg-panel: #ffffff;--bg-card: #F7F8F9;--text: #1F262E;--text-muted: #64748B;--text-secondary: #64748B;--border: #DFE7EF;--row-hover: rgba(255, 79, 0, .06);--row-active: rgba(255, 79, 0, .12);--overlay-bg: rgba(255, 255, 255, .94);--overlay-shadow: rgba(0, 0, 0, .08);--modal-backdrop: rgba(0, 0, 0, .25);--modal-shadow: rgba(0, 0, 0, .12);--input-bg: #ffffff;--input-border: #CED4DA;--dropdown-shadow: 0 8px 24px rgba(0, 0, 0, .1);--heatmap-low: #F2F4F6;--building-color: #d4d4d8;--scrollbar-thumb: #d1d5db;--header-bg: #ffffff;--bg-hover: rgba(0, 0, 0, .04);--bg: #ffffff;--radius: 8px;--sidebar-bg: #ffffff;--primary: #FF4F00;--primary-hover: #E54700}[data-theme=dark]{--bg-dark: #18181b;--bg-panel: #1F1F25;--bg-card: #282E38;--text: #F7F8F9;--text-muted: #8896A6;--text-secondary: #8896A6;--border: #3f3f46;--row-hover: rgba(255, 79, 0, .1);--row-active: rgba(255, 79, 0, .22);--overlay-bg: rgba(24, 24, 27, .94);--overlay-shadow: rgba(0, 0, 0, .4);--modal-backdrop: rgba(0, 0, 0, .6);--modal-shadow: rgba(0, 0, 0, .5);--input-bg: #18181b;--input-border: #3f3f46;--dropdown-shadow: 0 8px 24px rgba(0, 0, 0, .5);--heatmap-low: #282E38;--building-color: #18181b;--scrollbar-thumb: #3f3f46;--header-bg: #18181b;--bg-hover: rgba(255, 255, 255, .06);--bg: #1F1F25;--radius: 8px;--sidebar-bg: #1F1F25;--primary: #FF4F00;--primary-hover: #FF611A}html,body,#root{height:100%;width:100%;font-family:Archivo,system-ui,-apple-system,sans-serif;background:var(--bg-dark);color:var(--text)}#root{display:flex}.sidebar{width:var(--sidebar-width);min-width:var(--sidebar-width);height:100vh;overflow-y:auto;background:var(--bg-panel);border-right:1px solid var(--border);display:flex;flex-direction:column;transition:width .3s ease,min-width .3s ease,opacity .3s ease}.sidebar.collapsed{width:0;min-width:0;overflow:hidden;border-right:none;opacity:0}.sidebar-tab{position:fixed;left:var(--sidebar-width);top:50%;transform:translateY(-50%);z-index:50;background:var(--bg-panel);border:1px solid var(--border);border-left:none;border-radius:0 8px 8px 0;padding:14px 5px;color:var(--text-muted);cursor:pointer;font-size:18px;line-height:1;transition:left .3s ease,color .2s,border-color .2s}.sidebar-tab:not(.open){left:0}.sidebar-tab:hover{color:var(--text);border-color:var(--accent)}.sidebar-header{padding:14px 20px;background:var(--header-bg);border-bottom:1px solid var(--border)}.sidebar-header-top{display:flex;align-items:center;justify-content:space-between}.sidebar-logo{height:28px;width:auto}[data-theme=dark] .sidebar-logo{filter:brightness(0) invert(1)}.theme-toggle{background:none;border:none;cursor:pointer;padding:0;flex-shrink:0}.theme-toggle-track{position:relative;display:flex;align-items:center;width:48px;height:26px;background:var(--bg-dark);border:1px solid var(--border);border-radius:13px;padding:0 3px;transition:background .3s}.theme-toggle-thumb{position:absolute;left:3px;width:20px;height:20px;background:var(--accent);border-radius:50%;transition:left .3s}.theme-toggle-track.dark .theme-toggle-thumb{left:25px}.theme-toggle-icon{font-size:12px;line-height:1;z-index:1;flex:1;text-align:center}.light-icon{opacity:1}.dark-icon,.theme-toggle-track.dark .light-icon{opacity:.5}.theme-toggle-track.dark .dark-icon{opacity:1}.sidebar-header .subtitle{font-size:11px;color:var(--text-muted);margin-top:2px}.stats-bar{display:flex;gap:8px;padding:12px 20px;border-bottom:1px solid var(--border);background:var(--bg-dark)}.stat-item{flex:1;text-align:center}.stat-value{font-size:18px;font-weight:700;color:var(--accent)}.stat-label{font-size:10px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px}.filters-section{padding:12px 20px;border-bottom:1px solid var(--border)}.filters-section h3{font-size:11px;text-transform:uppercase;letter-spacing:1px;color:var(--text-muted);margin-bottom:0;display:flex;align-items:center;gap:6px}.filters-header{display:flex;align-items:center;justify-content:space-between;cursor:pointer;padding:4px 0;margin-bottom:8px;-webkit-user-select:none;user-select:none}.filters-chevron{font-size:10px;color:var(--text-muted);transition:transform .2s}.filters-chevron.collapsed{transform:rotate(-90deg)}.filters-badge{background:var(--accent);color:#fff;font-size:9px;font-weight:700;padding:1px 6px;border-radius:10px;letter-spacing:0;text-transform:none}.filters-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.filter-group{margin-bottom:0}.filter-group.full-width{grid-column:1 / -1}.filter-group label{display:block;font-size:11px;color:var(--text-muted);margin-bottom:3px}.autocomplete-select{position:relative;width:100%}.autocomplete-trigger{width:100%;min-height:30px;padding:3px 26px 3px 6px;background:var(--bg-dark);border:1px solid var(--input-border);color:var(--text-muted);border-radius:6px;font-size:12px;cursor:pointer;text-align:left;font-family:inherit;position:relative;display:flex;align-items:center;flex-wrap:wrap;gap:3px}.autocomplete-trigger.has-value{color:var(--text)}.autocomplete-trigger:hover{border-color:var(--accent)}.autocomplete-trigger-text{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.autocomplete-chevron{position:absolute;right:8px;top:50%;transform:translateY(-50%);font-size:10px;color:var(--text-muted);pointer-events:none}.autocomplete-clear{position:absolute;right:4px;top:50%;transform:translateY(-50%);font-size:15px;line-height:1;color:var(--text-muted);cursor:pointer;padding:0 4px;border-radius:3px}.autocomplete-clear:hover{color:var(--accent);background:var(--row-hover)}.autocomplete-dropdown{position:absolute;top:calc(100% + 4px);left:0;width:100%;min-width:180px;background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--dropdown-shadow);z-index:100;overflow:hidden}.autocomplete-search-wrap{padding:6px;border-bottom:1px solid var(--border)}.autocomplete-search{width:100%;padding:6px 8px;background:var(--bg-dark);border:1px solid var(--input-border);color:var(--text);border-radius:6px;font-size:12px;font-family:inherit;outline:none}.autocomplete-search:focus{border-color:var(--accent)}.autocomplete-search::placeholder{color:var(--text-muted)}.autocomplete-list{list-style:none;margin:0;padding:4px 0;max-height:200px;overflow-y:auto}.autocomplete-list::-webkit-scrollbar{width:6px}.autocomplete-list::-webkit-scrollbar-track{background:transparent}.autocomplete-list::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}.autocomplete-option{display:flex;align-items:center;gap:4px;padding:6px 12px;font-size:12px;color:var(--text);cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.autocomplete-option.highlighted{background:var(--row-hover)}.autocomplete-option.selected{background:var(--row-active);color:var(--accent);font-weight:600}.autocomplete-option.selected.highlighted{background:var(--row-active)}.autocomplete-chips{display:flex;flex-wrap:wrap;gap:3px;flex:1;min-width:0}.autocomplete-chip{display:inline-flex;align-items:center;gap:2px;padding:1px 6px;background:#ff62001f;color:var(--primary);border-radius:4px;font-size:11px;font-weight:500;line-height:1.5;max-width:100%}.autocomplete-chip-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.autocomplete-chip-remove{cursor:pointer;font-size:13px;line-height:1;opacity:.7;flex-shrink:0}.autocomplete-chip-remove:hover{opacity:1}.autocomplete-check{display:inline-block;width:16px;font-size:11px;color:var(--primary);flex-shrink:0}.autocomplete-empty{padding:10px 12px;font-size:12px;color:var(--text-muted);text-align:center;font-style:italic}.filter-actions{display:flex;gap:8px;margin-top:10px}.btn{padding:6px 14px;border:none;border-radius:6px;font-size:11px;cursor:pointer;font-weight:600;transition:background .2s}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-hover)}.btn-secondary{background:var(--border);color:var(--text)}.btn-secondary:hover{background:var(--row-active)}.table-section{flex:1;overflow-y:auto;display:flex;flex-direction:column}.table-section h3{font-size:11px;text-transform:uppercase;letter-spacing:1px;color:var(--text-muted);padding:12px 20px 8px}.agg-level-tabs{display:flex;gap:0;padding:0 20px 8px}.agg-tab{padding:5px 12px;font-size:11px;background:var(--bg-dark);border:1px solid var(--border);color:var(--text-muted);cursor:pointer;transition:all .2s}.agg-tab:first-child{border-radius:6px 0 0 6px}.agg-tab:last-child{border-radius:0 6px 6px 0}.agg-tab.active{background:var(--accent);border-color:var(--accent);color:#fff}.table-search{padding:0 20px 8px}.table-search input{width:100%;padding:6px 10px;background:var(--bg-dark);border:1px solid var(--input-border);color:var(--text);border-radius:6px;font-size:12px}.table-search input:focus{outline:none;border-color:var(--accent)}.table-search input::placeholder{color:var(--text-muted)}.table-wrapper{flex:1;overflow-y:auto}.agg-table{width:100%;border-collapse:collapse;font-size:12px}.agg-table thead{position:sticky;top:0;z-index:1}.agg-table th{text-align:left;padding:6px 20px;font-size:10px;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);border-bottom:1px solid var(--border);background:var(--bg-panel)}.agg-table th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none;transition:color .15s}.agg-table th.sortable:hover{color:var(--accent)}.sort-indicator{font-size:8px;opacity:.7}.agg-table td{padding:7px 20px;border-bottom:1px solid var(--border);cursor:pointer;transition:background .15s}.agg-table tr:hover td{background:var(--row-hover)}.agg-table tr.active td{background:var(--row-active)}.agg-table .count{text-align:right;font-weight:700;font-variant-numeric:tabular-nums;color:var(--accent)}.agg-table .monitors{text-align:right;font-variant-numeric:tabular-nums;color:var(--text-muted)}.agg-table .filter-action{padding:4px 6px;text-align:center}.row-filter-btn{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;background:transparent;border:1px solid transparent;border-radius:4px;color:var(--text-muted);cursor:pointer;opacity:0;transition:opacity .15s,color .15s,border-color .15s,background .15s}.agg-table tr:hover .row-filter-btn{opacity:1}.row-filter-btn:hover{color:var(--accent);border-color:var(--accent);background:#ff4f001a}.map-container{flex:1;min-width:0;position:relative;overflow:hidden}.map-container .mapboxgl-map{width:100%;height:100%}.map-info-overlay{position:absolute;top:12px;right:12px;background:var(--overlay-bg);border:1px solid var(--border);border-radius:var(--radius);padding:10px 16px;font-size:12px;z-index:10;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.map-info-overlay .label{color:var(--text-muted);font-size:10px;text-transform:uppercase;letter-spacing:.5px}.map-info-overlay .value{font-size:20px;font-weight:700;color:var(--accent)}.mapboxgl-popup-content{background:var(--bg-panel)!important;color:var(--text)!important;border:1px solid var(--border)!important;border-radius:.67rem!important;padding:12px!important;font-size:12px!important;max-width:280px!important}.mapboxgl-popup-tip{border-top-color:var(--bg-panel)!important}.mapboxgl-popup-close-button{color:var(--text-muted)!important;font-size:16px!important}.popup-title{font-weight:700;font-size:13px;margin-bottom:6px;color:var(--accent)}.popup-row{display:flex;justify-content:space-between;padding:2px 0}.popup-row .popup-label{color:var(--text-muted)}.hover-popup .mapboxgl-popup-content{background:var(--overlay-bg)!important;padding:8px 12px!important;border-radius:.67rem!important;max-width:220px!important;pointer-events:none}.hover-popup .mapboxgl-popup-tip{border-top-color:var(--bg-panel)!important}.hover-tooltip{display:flex;flex-direction:column;gap:2px}.hover-tooltip strong{font-size:12px;font-weight:700;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:200px}.hover-tooltip span{font-size:10px;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:200px}.popup-sel-action{margin-top:10px;padding-top:8px;border-top:1px solid var(--border)}.btn-sel-add{width:100%;padding:7px 12px;background:#30c16b1f;color:#30c16b;border:1px solid #30c16b;border-radius:var(--radius);font-size:12px;font-weight:600;cursor:pointer;transition:all .15s}.btn-sel-add:hover{background:#30c16b38}.btn-sel-remove{width:100%;padding:7px 12px;background:#ff4f001f;color:var(--accent);border:1px solid var(--accent);border-radius:var(--radius);font-size:12px;font-weight:600;cursor:pointer;transition:all .15s}.btn-sel-remove:hover{background:#ff4f0040}.api-key-banner{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background:var(--bg-panel);border:2px solid var(--accent);border-radius:1rem;padding:32px;text-align:center;z-index:100;max-width:400px}.api-key-banner h2{margin-bottom:12px;font-size:16px}.api-key-banner p{font-size:12px;color:var(--text-muted);margin-bottom:16px}.api-key-banner input{width:100%;padding:8px 12px;background:var(--bg-dark);border:1px solid var(--input-border);color:var(--text);border-radius:6px;font-size:13px;margin-bottom:12px}.api-key-banner input:focus{outline:none;border-color:var(--accent)}.legend-toggle-btn{position:absolute;top:140px;left:12px;z-index:10;width:34px;height:34px;background:var(--overlay-bg);border:1px solid var(--border);border-radius:6px;cursor:pointer;display:flex;align-items:center;justify-content:center;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:background .15s}.legend-toggle-btn:hover,.legend-toggle-btn.active{background:var(--row-hover);border-color:var(--accent)}.legend-panel{position:absolute;bottom:32px;left:12px;z-index:10;background:var(--overlay-bg);border:1px solid var(--border);border-radius:var(--radius);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);min-width:220px;max-width:280px;max-height:340px;display:flex;flex-direction:column}.legend-panel-header{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);border-bottom:1px solid var(--border)}.legend-panel-close{background:none;border:none;color:var(--text-muted);font-size:16px;cursor:pointer;padding:0 2px}.legend-panel-close:hover{color:var(--accent)}.legend-category-tabs{display:flex;flex-wrap:wrap;gap:4px;padding:8px 10px;border-bottom:1px solid var(--border)}.legend-cat-tab{padding:3px 8px;font-size:10px;border-radius:12px;border:1px solid var(--border);background:none;color:var(--text-muted);cursor:pointer;transition:all .15s}.legend-cat-tab.active{background:var(--accent);color:#fff;border-color:var(--accent)}.legend-cat-tab:hover:not(.active){border-color:var(--accent);color:var(--text)}.legend-items{padding:6px 10px;overflow-y:auto;flex:1;min-height:0}.legend-item{display:flex;align-items:center;gap:8px;padding:3px 4px;font-size:11px}.legend-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.legend-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.legend-count{font-size:10px;color:var(--text-muted);font-weight:600}.legend-empty{font-size:11px;color:var(--text-muted);padding:10px 4px;text-align:center}.heatmap-controls{position:absolute;bottom:32px;left:12px;z-index:10;display:flex;flex-direction:column;gap:8px}.heatmap-toggle{display:flex;align-items:center;gap:6px;padding:8px 16px;font-size:12px;font-weight:600;background:var(--overlay-bg);border:1px solid var(--border);color:var(--text);border-radius:var(--radius);cursor:pointer;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:all .2s}.heatmap-toggle:hover{border-color:var(--accent)}.heatmap-toggle.active{background:var(--accent);border-color:var(--accent);color:#fff}.heatmap-slider-panel{background:var(--overlay-bg);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;min-width:240px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.slider-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;font-size:11px;color:var(--text-muted)}.slider-value{font-size:14px;font-weight:700;color:var(--accent)}.slider-header-right{display:flex;align-items:center;gap:4px}.heatmap-slider-panel input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:6px;border-radius:3px;background:linear-gradient(to right,var(--heatmap-low) 0%,#662000 25%,#FF4F00 50%,#FF8F5E 75%,#FFB347 100%);outline:none;cursor:pointer}.heatmap-slider-panel input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:16px;height:16px;border-radius:50%;background:#fff;border:2px solid var(--accent);cursor:pointer;box-shadow:0 0 6px #00000080}.heatmap-slider-panel input[type=range]::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:#fff;border:2px solid var(--accent);cursor:pointer;box-shadow:0 0 6px #00000080}.slider-labels{display:flex;justify-content:space-between;font-size:10px;color:var(--text-muted);margin-top:4px}.heatmap-legend{display:flex;align-items:center;gap:8px;margin-top:10px}.legend-label{font-size:10px;color:var(--text-muted);white-space:nowrap}.legend-bar{flex:1;height:8px;border-radius:4px;background:linear-gradient(to right,var(--heatmap-low) 0%,#662000 25%,#FF4F00 50%,#FF8F5E 75%,#FFB347 100%)}.quartile-labels{display:flex;justify-content:space-between;margin-top:8px;font-size:10px;color:var(--text-muted)}.quartile-labels span{background:var(--bg-dark);padding:2px 6px;border-radius:3px;border:1px solid var(--border)}.slider-info{margin-top:8px;font-size:11px;color:var(--text-muted);text-align:center}.loading{display:flex;align-items:center;justify-content:center;height:100%;font-size:14px;color:var(--text-muted)}.sidebar::-webkit-scrollbar,.table-wrapper::-webkit-scrollbar{width:6px}.sidebar::-webkit-scrollbar-track,.table-wrapper::-webkit-scrollbar-track{background:transparent}.sidebar::-webkit-scrollbar-thumb,.table-wrapper::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}.map-toolbar{position:absolute;top:12px;left:50%;transform:translate(-50%);display:flex;gap:6px;z-index:10}.map-tool-btn{display:flex;align-items:center;gap:5px;padding:8px 16px;font-size:12px;font-weight:600;background:var(--overlay-bg);border:1px solid var(--border);color:var(--text);border-radius:var(--radius);cursor:pointer;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:all .2s}.map-tool-btn:hover{border-color:var(--accent)}.map-tool-btn.active{background:var(--accent);border-color:var(--accent);color:#fff}.flyto-wrapper{position:relative}.flyto-input-group{position:relative;display:flex;align-items:center}.flyto-input{width:260px;padding:8px 32px 8px 12px;font-size:12px;font-family:inherit;font-weight:500;background:var(--overlay-bg);border:1px solid var(--input-border);color:var(--text);border-radius:var(--radius);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);outline:none}.flyto-input:focus{border-color:var(--accent)}.flyto-input::placeholder{color:var(--text-muted)}.flyto-close{position:absolute;right:6px;top:50%;transform:translateY(-50%);background:none;border:none;color:var(--text-muted);font-size:16px;cursor:pointer;padding:0 4px;line-height:1}.flyto-close:hover{color:var(--accent)}.flyto-dropdown{position:absolute;top:calc(100% + 4px);left:0;right:0;background:var(--overlay-bg);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--dropdown-shadow);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:200;list-style:none;margin:0;padding:4px 0;max-height:220px;overflow-y:auto}.flyto-option{padding:8px 12px;cursor:pointer;display:flex;flex-direction:column;gap:2px}.flyto-option.highlighted{background:var(--row-hover)}.search-pin-marker{cursor:pointer;filter:drop-shadow(0 2px 6px rgba(59,130,246,.45));transition:transform .2s ease;animation:searchPinDrop .4s cubic-bezier(.34,1.56,.64,1)}.search-pin-marker:hover{transform:scale(1.15)}@keyframes searchPinDrop{0%{transform:translateY(-20px);opacity:0}to{transform:translateY(0);opacity:1}}.flyto-main{font-size:12px;color:var(--text);font-weight:500}.flyto-secondary{font-size:11px;color:var(--text-muted)}.select-hint{position:absolute;bottom:12px;left:50%;transform:translate(-50%);background:var(--overlay-bg);border:1px solid var(--accent);color:var(--text);padding:8px 18px;border-radius:var(--radius);font-size:12px;font-weight:500;z-index:10;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);pointer-events:none;animation:hintPulse 2s ease-in-out infinite}@keyframes hintPulse{0%,to{opacity:.9}50%{opacity:.6}}.polygon-hint{position:absolute;bottom:12px;left:50%;transform:translate(-50%);background:var(--overlay-bg);border:1px solid var(--accent);color:var(--text);padding:10px 18px;border-radius:var(--radius);font-size:12px;font-weight:500;z-index:10;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;gap:14px;white-space:nowrap}.polygon-hint span{opacity:.85}.polygon-hint-cancel{padding:4px 12px!important;font-size:11px!important;border-radius:6px!important;flex-shrink:0}.selection-box{position:absolute;border:2px dashed #FF4F00;background:#ff4f001a;pointer-events:none;z-index:20}.selection-tab{position:fixed;right:0;top:50%;transform:translateY(-50%);z-index:50;background:var(--bg-panel);border:1px solid var(--border);border-right:none;border-radius:8px 0 0 8px;padding:12px 6px;color:var(--text-muted);cursor:pointer;font-size:16px;display:flex;flex-direction:column;align-items:center;gap:4px;transition:right .3s ease,color .2s,border-color .2s}.selection-tab.panel-open{right:340px}.selection-tab:hover{color:var(--text);border-color:var(--accent)}.selection-tab.has-items{color:var(--accent);border-color:var(--accent)}.tab-badge{background:var(--accent);color:#fff;font-size:10px;font-weight:700;padding:2px 6px;border-radius:10px;min-width:18px;text-align:center}.selection-panel{position:fixed;right:-340px;top:0;width:340px;height:100vh;background:var(--bg-panel);border-left:1px solid var(--border);z-index:40;display:flex;flex-direction:column;transition:right .3s ease;box-shadow:-4px 0 20px var(--overlay-shadow)}.selection-panel.open{right:0}.sel-tabs{display:flex;border-bottom:1px solid var(--border);background:var(--bg-dark);flex-shrink:0}.sel-tab{flex:1;padding:10px 8px;font-size:11px;font-weight:600;text-align:center;cursor:pointer;border:none;background:none;color:var(--text-muted);border-bottom:2px solid transparent;transition:all .2s;display:flex;align-items:center;justify-content:center;gap:6px}.sel-tab:hover{color:var(--text);background:var(--bg-hover)}.sel-tab.active{color:var(--accent);border-bottom-color:var(--accent)}.sel-tab-badge{background:var(--accent);color:#fff;font-size:10px;padding:1px 6px;border-radius:10px;font-weight:700;min-width:18px}.sel-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;background:var(--bg-dark);border-bottom:1px solid var(--border)}.sel-header h2{font-size:14px;font-weight:700;letter-spacing:.3px}.poi-add-section{padding:12px 16px 4px}.poi-add-section .geo-add-input{margin-bottom:0}.sel-count{background:var(--accent);color:#fff;font-size:12px;font-weight:700;padding:3px 10px;border-radius:12px;min-width:24px;text-align:center}.sel-stats{display:flex;gap:8px;padding:12px 20px;border-bottom:1px solid var(--border);background:var(--bg-dark)}.sel-stat{flex:1;text-align:center}.sel-stat-value{display:block;font-size:18px;font-weight:700;color:var(--accent)}.sel-stat-label{font-size:10px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px}.sel-actions{display:flex;gap:8px;padding:12px 20px;border-bottom:1px solid var(--border)}.sel-actions .btn{flex:1;text-align:center}.sel-actions .btn:disabled{opacity:.4;cursor:not-allowed}.sel-show-only-btn{display:flex;align-items:center;gap:8px;width:calc(100% - 40px);margin:0 20px;padding:8px 12px;background:var(--sidebar-bg);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-muted);font-size:12px;font-family:inherit;font-weight:500;cursor:pointer;transition:all .15s ease}.sel-show-only-btn:hover{border-color:var(--accent);color:var(--text)}.sel-show-only-btn.active{background:#ff4f001a;border-color:var(--accent);color:var(--accent);font-weight:600}.sel-show-only-icon{display:flex;align-items:center;flex-shrink:0}.sel-list{flex:1;overflow-y:auto;padding:8px 0}.sel-empty{padding:40px 20px;text-align:center;color:var(--text-muted);font-size:12px;line-height:1.6}.sel-item{display:flex;align-items:center;gap:8px;padding:8px 20px;border-bottom:1px solid var(--border);transition:background .15s}.sel-item:hover{background:var(--row-hover)}.sel-item-clickable{cursor:pointer}.sel-item-clickable:active{background:var(--row-active)}.sel-item-info{flex:1;min-width:0}.sel-item-name{font-size:12px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sel-item-detail{font-size:11px;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px}.sel-item-remove{flex-shrink:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;background:none;border:1px solid transparent;color:var(--text-muted);font-size:16px;cursor:pointer;border-radius:4px;transition:all .15s}.sel-item-remove:hover{color:var(--accent);border-color:var(--accent);background:#e945601a}.sel-list::-webkit-scrollbar{width:6px}.sel-list::-webkit-scrollbar-track{background:transparent}.sel-list::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}.sel-selected-layout{display:flex;flex-direction:column;flex:1;min-height:0}.sel-counts-section{flex:0 0 auto;max-height:50%;overflow-y:auto;border-bottom:2px solid var(--border)}.sel-counts-section::-webkit-scrollbar{width:4px}.sel-counts-section::-webkit-scrollbar-track{background:transparent}.sel-counts-section::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}.sel-list-section{flex:1;display:flex;flex-direction:column;min-height:0}.sel-list-header{padding:8px 20px;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);background:var(--bg-dark);border-bottom:1px solid var(--border);flex-shrink:0}.sel-aggregation{padding:4px 0}.sel-agg-group{border-bottom:1px solid var(--border)}.sel-agg-group:last-child{border-bottom:none}.sel-agg-header{display:flex;align-items:center;gap:6px;width:100%;padding:8px 20px;background:none;border:none;color:var(--text);font-size:11px;font-weight:600;font-family:var(--font);cursor:pointer;transition:background .15s}.sel-agg-header:hover{background:var(--bg-hover)}.sel-agg-arrow{font-size:10px;color:var(--text-muted);width:10px;flex-shrink:0}.sel-agg-label{flex:1;text-align:left}.sel-agg-total{font-size:10px;color:var(--text-muted);background:var(--bg-dark);padding:1px 6px;border-radius:10px;font-weight:500}.sel-agg-rows{padding:0 20px 6px 36px}.sel-agg-row{display:flex;align-items:center;justify-content:space-between;padding:3px 0;font-size:11px}.sel-agg-value{color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;margin-right:8px}.sel-agg-count{color:var(--accent);font-weight:600;font-size:11px;flex-shrink:0}.geo-pin-tooltip{font-size:12px;font-weight:600;color:var(--text);padding:2px 0;max-width:220px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.geo-modal-overlay{position:fixed;inset:0;background:var(--modal-backdrop);z-index:300;display:flex;align-items:center;justify-content:center;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.geo-modal{background:var(--bg-panel);border:1px solid var(--border);border-radius:1rem;width:540px;max-width:95vw;max-height:85vh;display:flex;flex-direction:column;box-shadow:var(--dropdown-shadow)}.geo-modal.geo-modal-wide{width:620px}.geo-modal-header{display:flex;align-items:center;justify-content:space-between;padding:18px 24px;border-bottom:1px solid var(--border);background:var(--bg-dark);border-radius:1rem 1rem 0 0}.geo-modal-header h2{font-size:15px;font-weight:700}.geo-modal-close{background:none;border:none;color:var(--text-muted);font-size:22px;cursor:pointer;padding:0 4px;transition:color .15s}.geo-modal-close:hover{color:var(--accent)}.geo-modal-body{padding:20px 24px;overflow-y:auto;flex:1;min-height:0}.geo-modal-desc{font-size:13px;color:var(--text-muted);margin-bottom:20px;line-height:1.5}.geo-file-label{display:flex;align-items:center;gap:12px;cursor:pointer}.geo-file-label input{display:none}.geo-file-btn{padding:10px 20px;background:var(--accent);color:#fff;border-radius:var(--radius);font-size:13px;font-weight:600;white-space:nowrap;transition:background .15s}.geo-file-label:hover .geo-file-btn{background:var(--accent-hover)}.geo-file-name{font-size:12px;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.geo-file-info{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;background:var(--bg-dark);border:1px solid var(--border);border-radius:6px;font-size:12px;margin-bottom:16px}.geo-field{margin-bottom:12px}.geo-field label{display:block;font-size:11px;color:var(--text-muted);margin-bottom:4px;font-weight:600}.geo-field select{width:100%;padding:7px 10px;background:var(--bg-dark);border:1px solid var(--input-border);color:var(--text);border-radius:6px;font-size:12px;cursor:pointer}.geo-field select:focus{outline:none;border-color:var(--accent)}.geo-columns-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 12px}.geo-field-full{grid-column:1 / -1}.geo-preview{margin-top:16px;border:1px solid var(--border);border-radius:6px;overflow:hidden}.geo-preview-title{font-size:10px;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);padding:8px 12px;background:var(--bg-dark);border-bottom:1px solid var(--border)}.geo-preview-table{overflow-x:auto}.geo-preview-table table{width:100%;font-size:11px;border-collapse:collapse}.geo-preview-table th{padding:6px 12px;text-align:left;color:var(--text-muted);font-size:10px;text-transform:uppercase;border-bottom:1px solid var(--border);background:var(--bg-panel)}.geo-col-highlight{color:var(--accent)!important}.geo-preview-table td{padding:5px 12px;border-bottom:1px solid var(--border);color:var(--text)}.geo-modal-footer{margin-top:18px;display:flex;align-items:center;justify-content:space-between;gap:12px}.geo-valid-count{font-size:12px;color:var(--text-muted);font-weight:600}.geo-modal-actions{display:flex;gap:8px}.geo-modal-actions .btn{padding:8px 18px;font-size:12px}.geo-modal-actions .btn:disabled{opacity:.4;cursor:not-allowed}.geo-tabs{display:flex;border-bottom:1px solid var(--border);background:var(--bg-dark)}.geo-tab{flex:1;padding:12px 16px;font-size:13px;font-weight:600;background:none;border:none;border-bottom:2px solid transparent;color:var(--text-muted);cursor:pointer;transition:all .2s}.geo-tab:hover{color:var(--text)}.geo-tab.active{color:var(--accent);border-bottom-color:var(--accent)}.geo-apikey-row{display:flex;align-items:center;gap:8px}.geo-apikey-row input{flex:1;padding:7px 10px;background:var(--bg-dark);border:1px solid var(--input-border);color:var(--text);border-radius:6px;font-size:12px}.geo-apikey-row input:focus{outline:none;border-color:var(--accent)}.geo-apikey-ok{color:#30c16b;font-size:16px}.geo-field-hint{font-size:10px;color:var(--text-muted);margin-top:4px;line-height:1.4}.geo-addr-autocomplete{position:relative}.geo-addr-autocomplete input{width:100%;padding:7px 30px 7px 10px;background:var(--bg-dark);border:1px solid var(--input-border);color:var(--text);border-radius:6px;font-size:12px;font-family:inherit}.geo-addr-autocomplete input:focus{outline:none;border-color:var(--accent)}.geo-addr-spinner,.geo-addr-check{position:absolute;right:8px;top:50%;transform:translateY(-50%);font-size:12px;pointer-events:none}.geo-addr-spinner{color:var(--text-muted);animation:pulse 1s infinite}.geo-addr-check{color:#30c16b}@keyframes pulse{0%,to{opacity:1}50%{opacity:.3}}.geo-addr-dropdown{position:absolute;top:calc(100% + 4px);left:0;right:0;background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--dropdown-shadow);z-index:200;list-style:none;margin:0;padding:4px 0;max-height:220px;overflow-y:auto}.geo-addr-option{padding:8px 12px;cursor:pointer;display:flex;flex-direction:column;gap:2px}.geo-addr-option.highlighted{background:var(--row-hover)}.geo-addr-main{font-size:13px;color:var(--text);font-weight:500}.geo-addr-secondary{font-size:11px;color:var(--text-muted)}.geo-coords-found{font-size:11px;color:#30c16b;margin-top:4px;font-weight:600}.geo-range{-webkit-appearance:none;appearance:none;width:100%;height:6px;border-radius:3px;background:linear-gradient(to right,#ff8f5e,#e54700);outline:none;cursor:pointer}.geo-range::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:16px;height:16px;border-radius:50%;background:#fff;border:2px solid #FF8F5E;cursor:pointer;box-shadow:0 0 6px #00000080}.geo-range::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:#fff;border:2px solid #FF8F5E;cursor:pointer}.geo-field input[type=text],.geo-field input[type=password]{width:100%;padding:7px 10px;background:var(--bg-dark);border:1px solid var(--input-border);color:var(--text);border-radius:6px;font-size:12px}.geo-field input[type=text]:focus,.geo-field input[type=password]:focus{outline:none;border-color:var(--accent)}.geo-categories{max-height:200px;overflow-y:auto;border:1px solid var(--border);border-radius:6px;padding:8px;background:var(--bg-dark)}.geo-categories::-webkit-scrollbar{width:6px}.geo-categories::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}.geo-cat-group{margin-bottom:8px}.geo-cat-group:last-child{margin-bottom:0}.geo-cat-title{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);margin-bottom:4px}.geo-cat-chips{display:flex;flex-wrap:wrap;gap:4px}.geo-chip{padding:3px 10px;font-size:11px;background:var(--bg-panel);border:1px solid var(--border);color:var(--text-muted);border-radius:12px;cursor:pointer;transition:all .15s}.geo-chip:hover{border-color:#ff8f5e;color:var(--text)}.geo-chip.active{background:#ff8f5e;border-color:#ff8f5e;color:#fff}.geo-error{padding:10px 14px;background:#e9456026;border:1px solid var(--accent);border-radius:6px;font-size:12px;color:var(--accent);margin-bottom:12px}.geo-results{margin-top:16px;border:1px solid #FF8F5E;border-radius:8px;overflow:hidden}.geo-results-header{padding:10px 14px;background:#00bcd41a;font-size:12px;font-weight:700;color:#ff8f5e;border-bottom:1px solid var(--border)}.geo-results-list{max-height:200px;overflow-y:auto}.geo-results-list::-webkit-scrollbar{width:6px}.geo-results-list::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}.geo-result-item{padding:8px 14px;border-bottom:1px solid var(--border)}.geo-result-item:last-child{border-bottom:none}.geo-result-name{font-size:12px;font-weight:600;color:var(--text)}.geo-result-address{font-size:11px;color:var(--text-muted);margin-top:2px}.geo-result-type{display:inline-block;margin-top:4px;font-size:10px;padding:1px 8px;background:#00bcd426;color:#ff8f5e;border-radius:8px;text-transform:capitalize}.geo-section-label{font-size:12px;font-weight:700;color:var(--text);margin:16px 0 8px;display:flex;align-items:baseline;gap:8px}.geo-section-hint{font-weight:400;font-size:11px;color:var(--text-muted)}.geo-addr-grid{grid-template-columns:1fr 1fr 1fr!important}@media(max-width:600px){.geo-addr-grid{grid-template-columns:1fr 1fr!important}}.geo-alert{padding:12px 16px;border-radius:8px;font-size:12px;margin:12px 0;line-height:1.5}.geo-alert-warning{background:#ffc1071f;border:1px solid rgba(255,193,7,.5);color:#856404}[data-theme=dark] .geo-alert-warning{background:#ffc1071a;color:#ffd54f;border-color:#ffc1074d}.geo-geocode-progress{display:flex;flex-direction:column;align-items:center;padding:40px 20px;gap:12px}.geo-progress-title{font-size:16px;font-weight:600;color:var(--text)}.geo-progress-bar-container{width:100%;max-width:400px;height:10px;background:var(--bg-card);border-radius:8px;overflow:hidden;border:1px solid var(--border)}.geo-progress-bar{height:100%;background:var(--accent);border-radius:8px;transition:width .15s ease}.geo-progress-text{font-size:14px;color:var(--text-muted);font-variant-numeric:tabular-nums}.geo-geocode-summary{padding:8px 0}.geo-summary-title{font-size:16px;font-weight:700;color:var(--text);margin-bottom:16px}.geo-summary-stats{display:flex;gap:16px;margin-bottom:20px}.geo-stat{flex:1;display:flex;flex-direction:column;align-items:center;padding:16px;border-radius:10px;border:1px solid var(--border)}.geo-stat-ok{background:#30c16b14;border-color:#30c16b4d}.geo-stat-error{background:#e9456014;border-color:#e945604d}.geo-stat-number{font-size:28px;font-weight:800;line-height:1}.geo-stat-ok .geo-stat-number{color:#30c16b}.geo-stat-error .geo-stat-number{color:#e94560}.geo-stat-label{font-size:12px;color:var(--text-muted);margin-top:4px}.geo-errors-section{border:1px solid var(--border);border-radius:8px;overflow:hidden}.geo-errors-header{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;background:#e945600f;border-bottom:1px solid var(--border);font-size:12px;font-weight:600;color:var(--text)}.btn-sm{padding:4px 10px!important;font-size:11px!important}.geo-errors-list{max-height:200px;overflow-y:auto}.geo-error-row{display:flex;gap:8px;align-items:baseline;padding:6px 14px;font-size:11px;border-bottom:1px solid var(--border)}.geo-error-row:last-child{border-bottom:none}.geo-error-line{flex-shrink:0;font-weight:600;color:var(--text-muted);min-width:55px}.geo-error-addr{flex:1;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.geo-error-reason{flex-shrink:0;color:#e94560;font-weight:500}.geo-error-more{justify-content:center;color:var(--text-muted);font-style:italic}.geo-controls{position:absolute;bottom:32px;right:12px;z-index:10}.geo-controls-panel{background:var(--overlay-bg);border:1px solid #0EA5E9;border-radius:var(--radius);padding:14px 16px;min-width:240px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.geo-controls-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;font-size:13px;font-weight:700;color:#ff8f5e}.geo-points-badge{background:#ff4f00;color:#fff;font-size:10px;font-weight:700;padding:2px 8px;border-radius:10px}.geo-controls-panel input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:6px;border-radius:3px;background:linear-gradient(to right,#ff8f5e,#ff4f00);outline:none;cursor:pointer}.geo-controls-panel input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:16px;height:16px;border-radius:50%;background:#fff;border:2px solid #FF4F00;cursor:pointer;box-shadow:0 0 6px #00000080}.geo-controls-panel input[type=range]::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:#fff;border:2px solid #FF4F00;cursor:pointer;box-shadow:0 0 6px #00000080}.geo-match-info{margin-top:8px;font-size:12px;color:#0ea5e9;text-align:center;font-weight:600}.geo-coverage-info{margin-top:10px;padding-top:10px;border-top:1px solid var(--border)}.geo-coverage-header{display:flex;justify-content:space-between;align-items:center;font-size:12px;font-weight:600;margin-bottom:6px}.geo-coverage-value{color:var(--accent)}.geo-coverage-bar{height:6px;background:var(--border);border-radius:3px;overflow:hidden}.geo-coverage-fill{height:100%;background:linear-gradient(90deg,#ff4f00,#ff8f5e);border-radius:3px;transition:width .3s ease;min-width:0}.geo-coverage-desc{font-size:10px;color:var(--text-muted);margin-top:4px;text-align:center}.geo-controls-actions{display:flex;gap:6px;margin-top:10px}.geo-controls-actions .btn{flex:1;text-align:center;font-size:10px;padding:5px 8px}.geo-add-input{position:relative;margin-bottom:10px}.geo-add-input input{width:100%;padding:6px 8px;border:1px solid var(--border);border-radius:6px;background:var(--bg-card);color:var(--text);font-size:11px;outline:none;transition:border-color .2s;box-sizing:border-box}.geo-add-input input:focus{border-color:#0ea5e9}.geo-add-input input::placeholder{color:var(--text-muted)}.geo-add-dropdown{position:absolute;top:100%;left:0;right:0;background:var(--bg-card);border:1px solid var(--border);border-radius:0 0 8px 8px;box-shadow:0 8px 24px #0000002e;z-index:100;list-style:none;margin:0;padding:0;max-height:180px;overflow-y:auto}.geo-add-option{display:flex;flex-direction:column;padding:6px 10px;cursor:pointer;border-bottom:1px solid var(--border);transition:background .15s}.geo-add-option:last-child{border-bottom:none}.geo-add-option:hover,.geo-add-option.highlighted{background:var(--bg-hover)}.geo-add-main{font-size:11px;font-weight:600;color:var(--text)}.geo-add-secondary{font-size:10px;color:var(--text-muted);margin-top:1px}.geo-points-list{max-height:180px;overflow-y:auto;margin:8px 0;border:1px solid var(--border);border-radius:6px}.geo-point-item{display:flex;align-items:center;justify-content:space-between;padding:5px 8px;border-bottom:1px solid var(--border);cursor:pointer;transition:background .15s;gap:4px}.geo-point-item:last-child{border-bottom:none}.geo-point-item:hover{background:var(--bg-hover)}.geo-point-label{font-size:11px;color:var(--text);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.geo-point-remove{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:14px;line-height:1;padding:0 2px;flex-shrink:0;transition:color .15s}.geo-point-remove:hover{color:#ef4444}.select-dropdown-wrapper{position:relative}.select-dropdown-menu{position:absolute;top:100%;left:50%;transform:translate(-50%);padding-top:6px;min-width:260px;z-index:100}.select-dropdown-menu-inner{background:var(--overlay-bg);border:1px solid var(--border);border-radius:var(--radius);padding:6px;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:var(--dropdown-shadow);animation:dropdownFadeIn .15s ease}@keyframes dropdownFadeIn{0%{opacity:0;transform:translate(-50%) translateY(-4px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.select-dropdown-item{display:flex;align-items:center;gap:12px;width:100%;padding:10px 14px;background:none;border:none;border-radius:7px;color:var(--text);cursor:pointer;text-align:left;transition:all .15s}.select-dropdown-item:hover{background:#ff4f001f}.select-dropdown-item.active{background:#ff4f0033;border:1px solid var(--accent)}.select-dropdown-icon{font-size:18px;flex-shrink:0;width:28px;text-align:center}.select-dropdown-label{font-size:13px;font-weight:600}.select-dropdown-desc{font-size:11px;color:var(--text-muted);margin-top:1px}.smart-sel-info-bar{display:flex;align-items:center;padding:10px 14px;background:var(--bg-dark);border:1px solid var(--border);border-radius:6px;font-size:12px;font-weight:600;color:var(--text-muted);margin-bottom:18px}.smart-sel-distance{display:flex;align-items:center;gap:12px}.smart-sel-range{-webkit-appearance:none;appearance:none;flex:1;height:6px;border-radius:3px;background:linear-gradient(to right,#4caf50,#ff9800,#f44336);outline:none;cursor:pointer}.smart-sel-range::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:18px;height:18px;border-radius:50%;background:#fff;border:2px solid var(--accent);cursor:pointer;box-shadow:0 0 6px #00000080}.smart-sel-range::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:#fff;border:2px solid var(--accent);cursor:pointer;box-shadow:0 0 6px #00000080}.smart-sel-distance-value{flex-shrink:0;min-width:60px;text-align:right;font-size:14px;font-weight:700;color:var(--accent)}.smart-sel-qty-input{width:100%;padding:8px 12px;background:var(--bg-dark);border:1px solid var(--input-border);color:var(--text);border-radius:6px;font-size:13px}.smart-sel-qty-input:focus{outline:none;border-color:var(--accent)}.smart-sel-qty-input::placeholder{color:var(--text-muted)}.smart-sel-run{margin-top:18px;text-align:center}.smart-sel-run-btn{padding:10px 32px!important;font-size:13px!important;border-radius:8px!important}.smart-sel-results{margin-top:18px;border:1px solid #30c16b;border-radius:var(--radius);overflow:hidden;animation:resultsFadeIn .3s ease}@keyframes resultsFadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.smart-sel-results-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:#30c16b14;border-bottom:1px solid var(--border)}.smart-sel-results-count{font-size:14px;font-weight:700;color:#30c16b}.smart-sel-results-stats{font-size:11px;color:var(--text-muted)}.smart-sel-results-list{max-height:250px;overflow-y:auto}.smart-sel-results-list::-webkit-scrollbar{width:6px}.smart-sel-results-list::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}.smart-sel-result-item{display:flex;align-items:center;gap:10px;padding:8px 16px;border-bottom:1px solid var(--border);transition:background .1s}.smart-sel-result-item:hover{background:var(--row-hover)}.smart-sel-result-item:last-child{border-bottom:none}.smart-sel-rank{flex-shrink:0;width:32px;font-size:11px;font-weight:700;color:var(--accent);text-align:center}.smart-sel-result-info{flex:1;min-width:0}.smart-sel-result-name{font-size:12px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.smart-sel-result-detail{font-size:11px;color:var(--text-muted);margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.smart-sel-more{padding:10px 16px;text-align:center;font-size:11px;color:var(--text-muted);font-style:italic}.smart-sel-empty{padding:24px 16px;text-align:center;font-size:12px;color:var(--text-muted);line-height:1.5}.smart-sel-footer{display:flex;justify-content:flex-end;gap:10px;padding:16px 24px;border-top:1px solid var(--border);background:var(--bg-dark);border-radius:0 0 1rem 1rem;flex-shrink:0}.smart-sel-footer .btn{padding:9px 20px;font-size:12px}.ai-fab{position:fixed;bottom:24px;right:24px;width:52px;height:52px;border-radius:50%;background:linear-gradient(135deg,#ff6200,#ff8c42);color:#fff;border:none;font-size:22px;cursor:pointer;box-shadow:0 4px 16px #ff620059;display:flex;align-items:center;justify-content:center;z-index:1000;transition:transform .2s,box-shadow .2s}.ai-fab:hover{transform:scale(1.1);box-shadow:0 6px 24px #ff620073}.ai-spotlight-overlay{position:fixed;inset:0;background:#00000080;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);z-index:9999;display:flex;align-items:flex-start;justify-content:center;padding-top:10vh;animation:ai-fade-in .15s ease-out}@keyframes ai-fade-in{0%{opacity:0}to{opacity:1}}@keyframes ai-slide-up{0%{opacity:0;transform:translateY(16px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.ai-spotlight{width:580px;max-width:95vw;max-height:75vh;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 24px 80px #00000059;display:flex;flex-direction:column;overflow:hidden;animation:ai-slide-up .2s ease-out}.ai-spotlight-header{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid var(--border);background:var(--bg-dark)}.ai-spotlight-title{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:600;color:var(--text)}.ai-spotlight-icon{font-size:18px}.ai-spotlight-header-actions{display:flex;align-items:center;gap:6px}.ai-spotlight-clear{background:none;border:none;cursor:pointer;font-size:15px;padding:4px 6px;border-radius:4px;color:var(--text-muted);transition:background .15s}.ai-spotlight-clear:hover{background:var(--bg-hover)}.ai-spotlight-close{background:none;border:none;cursor:pointer;font-size:20px;color:var(--text-muted);padding:2px 6px;border-radius:4px;line-height:1;transition:background .15s}.ai-spotlight-close:hover{background:var(--bg-hover);color:var(--text)}.ai-spotlight-chat{flex:1;overflow-y:auto;padding:16px 18px;display:flex;flex-direction:column;gap:12px;min-height:120px;max-height:45vh;background:var(--bg-dark)}.ai-spotlight-empty{display:flex;flex-direction:column;align-items:center;gap:10px;padding:20px 0;color:var(--text-muted)}.ai-spotlight-empty-icon{font-size:32px;opacity:.5}.ai-spotlight-empty-title{font-size:14px;font-weight:500;color:var(--text)}.ai-spotlight-empty-hints{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;margin-top:4px}.ai-spotlight-empty-hints button{padding:5px 12px;border-radius:20px;border:1px solid var(--border);background:var(--bg);color:var(--text-muted);font-size:11px;cursor:pointer;transition:border-color .15s,color .15s;white-space:nowrap}.ai-spotlight-empty-hints button:hover{border-color:var(--primary);color:var(--primary)}.ai-msg{display:flex;align-items:flex-start;gap:10px}.ai-msg-avatar{flex-shrink:0;width:28px;height:28px;border-radius:50%;background:var(--bg-dark);display:flex;align-items:center;justify-content:center;font-size:13px}.ai-msg-user .ai-msg-avatar{background:var(--primary);color:#fff;font-size:12px}.ai-msg-content{flex:1;font-size:13px;line-height:1.55;color:var(--text);white-space:pre-wrap;word-break:break-word}.ai-msg-user .ai-msg-content{background:var(--bg);padding:8px 12px;border-radius:12px 12px 12px 2px;border:1px solid var(--border)}.ai-msg-assistant .ai-msg-content{padding:2px 0}.ai-msg-error{width:100%;padding:8px 12px;background:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:8px;color:#ef4444;font-size:12px}.ai-msg-status{width:100%;padding:8px 12px;background:#22c55e14;border:1px solid rgba(34,197,94,.25);border-radius:8px;color:#22c55e;font-size:12px;line-height:1.5}.ai-msg-loading .ai-msg-content{padding:8px 0}.ai-loading-dots span{animation:ai-dot-pulse 1.2s ease-in-out infinite;font-size:20px;line-height:1;color:var(--text-muted)}.ai-loading-dots span:nth-child(2){animation-delay:.2s}.ai-loading-dots span:nth-child(3){animation-delay:.4s}@keyframes ai-dot-pulse{0%,60%,to{opacity:.3}30%{opacity:1}}.ai-actions-container{display:flex;flex-direction:column;gap:8px;padding:12px;background:var(--bg-dark);border:1px solid var(--border);border-radius:var(--radius)}.ai-actions-title{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted)}.ai-action-card{padding:10px 12px;background:var(--bg);border:1px solid var(--border);border-radius:6px}.ai-action-header{margin-bottom:4px}.ai-action-badge{display:inline-block;padding:2px 8px;border-radius:4px;background:#ff62001f;color:var(--primary);font-size:11px;font-weight:600}.ai-action-desc{font-size:12px;color:var(--text-muted);line-height:1.4}.ai-actions-buttons{display:flex;gap:8px;margin-top:4px}.ai-action-exec{flex:1}.ai-retry-btn{font-size:11px!important;padding:5px 10px!important;opacity:.7;transition:opacity .15s}.ai-retry-btn:hover{opacity:1}.ai-retry-standalone{display:flex;justify-content:center;padding:4px 0 8px}.ai-clarification-container{display:flex;flex-direction:column;gap:10px;padding:14px;background:var(--bg);border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:var(--radius);animation:ai-slide-up .2s ease-out}.ai-clarification-progress{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted)}.ai-clarification-question{font-size:14px;font-weight:500;color:var(--text);line-height:1.45}.ai-clarification-options{display:flex;flex-wrap:wrap;gap:8px}.ai-clarification-option-btn{padding:8px 16px;border-radius:20px;border:1px solid var(--border);background:var(--bg-dark);color:var(--text);font-size:12px;font-family:var(--font);cursor:pointer;transition:border-color .15s,background .15s,color .15s}.ai-clarification-option-btn:hover{border-color:var(--accent);background:#ff4f0014;color:var(--accent)}.ai-clarification-custom{margin-top:2px}.ai-clarification-custom-input{width:100%;padding:8px 12px;border:1px solid var(--input-border);border-radius:8px;font-size:12px;font-family:var(--font);background:var(--bg-dark);color:var(--text);box-sizing:border-box;transition:border-color .15s}.ai-clarification-custom-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px #ff4f001a}.ai-clarification-custom-input::placeholder{color:var(--text-muted)}.ai-clarification-cancel{display:flex;justify-content:flex-end}.ai-msg-clarification-summary{width:100%;padding:10px 14px;background:#ff4f000f;border:1px solid rgba(255,79,0,.2);border-radius:8px}.ai-clarification-summary-title{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);margin-bottom:8px}.ai-clarification-summary-pair{display:flex;flex-direction:column;gap:2px;padding:6px 0;border-bottom:1px solid var(--border)}.ai-clarification-summary-pair:last-child{border-bottom:none;padding-bottom:0}.ai-clarification-summary-q{font-size:11px;color:var(--text-muted);font-style:italic}.ai-clarification-summary-a{font-size:13px;color:var(--text);font-weight:500}.ai-spotlight-input-area{display:flex;align-items:center;gap:8px;padding:12px 18px;border-top:1px solid var(--border);background:var(--bg-dark)}.ai-spotlight-input{flex:1;padding:10px 14px;border:1px solid var(--input-border);border-radius:8px;font-size:14px;background:var(--bg);color:var(--text);transition:border-color .15s}.ai-spotlight-input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #ff62001a}.ai-spotlight-input::placeholder{color:var(--text-muted)}.ai-spotlight-input:disabled{opacity:.5;cursor:not-allowed}.ai-spotlight-send{width:38px;height:38px;border-radius:8px;border:none;background:var(--primary);color:#fff;font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s,opacity .15s;flex-shrink:0}.ai-spotlight-send:hover:not(:disabled){background:var(--primary-hover)}.ai-spotlight-send:disabled{opacity:.4;cursor:not-allowed}.ai-spotlight-mic{width:38px;height:38px;border-radius:8px;border:1px solid var(--input-border);background:var(--bg);color:var(--text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:border-color .2s,color .2s,background .2s,box-shadow .2s;flex-shrink:0}.ai-spotlight-mic:hover:not(:disabled):not(.recording):not(.transcribing){border-color:var(--primary);color:var(--primary)}.ai-spotlight-mic.recording{background:#ef4444;border-color:#ef4444;color:#fff;animation:ai-mic-pulse 1.2s ease-in-out infinite}.ai-spotlight-mic.transcribing{border-color:var(--primary);color:var(--primary);cursor:wait}.ai-spotlight-mic:disabled:not(.transcribing){opacity:.4;cursor:not-allowed}.ai-mic-spinner{animation:ai-mic-spin .8s linear infinite}@keyframes ai-mic-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes ai-mic-pulse{0%,to{box-shadow:0 0 #ef444466}50%{box-shadow:0 0 0 8px #ef444400}}.ai-spotlight-footer{display:flex;justify-content:center;gap:16px;padding:8px 18px;border-top:1px solid var(--border);background:var(--bg-dark);font-size:10px;color:var(--text-muted)}.ai-spotlight-chat::-webkit-scrollbar{width:5px}.ai-spotlight-chat::-webkit-scrollbar-thumb{background:var(--text-muted);border-radius:3px;opacity:.3}.ai-spotlight-chat::-webkit-scrollbar-track{background:transparent}.bottom-nav{display:none}@media(max-width:1024px){:root{--sidebar-width: 340px}.map-toolbar{gap:4px}.map-tool-btn{padding:6px 10px;font-size:11px}.flyto-input{width:200px}.selection-panel{width:300px;right:-300px}.selection-tab.panel-open{right:300px}.geo-controls-panel{min-width:200px;padding:10px 12px}.heatmap-slider-panel{min-width:180px}}@media(max-width:768px){:root{--sidebar-width: 100vw}#root{flex-direction:column;position:relative}.bottom-nav{display:flex;position:fixed;bottom:0;left:0;right:0;height:56px;background:var(--sidebar-bg);border-top:1px solid var(--border);z-index:200;padding:0;gap:0}.bottom-nav-item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;background:none;border:none;color:var(--text-secondary);font-size:10px;font-family:var(--font);font-weight:500;cursor:pointer;position:relative;padding:6px 0;transition:color .2s}.bottom-nav-item.active{color:var(--accent)}.bottom-nav-item svg{opacity:.6;transition:opacity .2s}.bottom-nav-item.active svg{opacity:1;stroke:var(--accent)}.bottom-nav-badge{position:absolute;top:2px;right:calc(50% - 20px);background:var(--accent);color:#fff;font-size:9px;font-weight:700;padding:1px 5px;border-radius:10px;min-width:16px;text-align:center;line-height:1.3}.sidebar{position:fixed;top:0;left:0;width:100vw;min-width:100vw;height:calc(100vh - 56px);z-index:100;transition:transform .3s ease,opacity .3s ease;transform:translate(0)}.sidebar.collapsed{transform:translate(-100%);width:100vw;min-width:100vw;opacity:1;overflow:hidden}.sidebar-tab{display:none}.sidebar-header{padding:12px 16px}.sidebar-logo{height:22px}.aggregation-table{font-size:11px}.map-container{width:100vw;height:calc(100vh - 56px);position:fixed;top:0;left:0}body:has(.geo-modal-overlay) .bottom-nav{display:none}body:has(.geo-modal-overlay) .map-container{height:100vh}.map-toolbar{left:12px;right:12px;transform:none;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;gap:4px;padding-bottom:2px}.map-toolbar::-webkit-scrollbar{display:none}.map-tool-btn{padding:7px 10px;font-size:11px;white-space:nowrap;flex-shrink:0}.flyto-input{width:180px;font-size:13px}.flyto-dropdown{max-width:280px}.map-info-overlay{top:52px;right:8px;padding:6px 10px;font-size:11px}.heatmap-controls{bottom:72px;left:8px}.heatmap-slider-panel{min-width:160px;padding:10px 12px}.geo-controls{bottom:72px;right:8px}.geo-controls-panel{min-width:180px;padding:10px 12px;font-size:11px}.selection-panel{position:fixed;inset:auto 0 56px;width:100vw;height:calc(70vh - 56px);border-left:none;border-top:1px solid var(--border);border-radius:16px 16px 0 0;box-shadow:0 -4px 24px var(--overlay-shadow);transition:transform .3s ease,visibility .3s;transform:translateY(calc(100% + 56px));visibility:hidden}.selection-panel.open{right:0;transform:translateY(0);visibility:visible}.selection-tab{display:none}.sel-tabs{border-radius:16px 16px 0 0}.sel-tab{padding:12px 8px;font-size:12px}.select-dropdown-menu-inner{min-width:200px}.select-hint,.polygon-hint{font-size:11px;left:12px;right:12px;bottom:64px;transform:none;padding:8px 12px;white-space:normal;text-align:center}.ai-fab{display:none}.bottom-nav-ai{color:var(--accent)!important;position:relative}.bottom-nav-ai svg{opacity:1!important;filter:drop-shadow(0 0 4px rgba(255,79,0,.4))}.bottom-nav-ai span{font-weight:700;color:var(--accent)}.mobile-tools-toggle{position:fixed;top:12px;right:12px;z-index:150;width:40px;height:40px;border-radius:10px;background:var(--bg-panel);border:1px solid var(--border);color:var(--text);display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 2px 8px var(--overlay-shadow);transition:background .15s,border-color .15s}.mobile-tools-toggle.active{background:var(--accent);color:#fff;border-color:var(--accent)}.mobile-tools-menu{position:fixed;inset:0;z-index:300;background:var(--modal-backdrop);display:flex;align-items:flex-start;justify-content:flex-end;padding:60px 12px 0}.mobile-tools-panel{background:var(--bg-panel);border-radius:14px;border:1px solid var(--border);box-shadow:0 8px 32px var(--overlay-shadow);width:240px;overflow:hidden}.mobile-tools-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--border);font-weight:600;font-size:13px;color:var(--text)}.mobile-tools-close{background:none;border:none;color:var(--text-muted);font-size:20px;cursor:pointer;line-height:1;padding:0 4px}.mobile-tools-grid{display:grid;grid-template-columns:1fr 1fr;gap:2px;padding:8px}.mobile-tool-item{display:flex;flex-direction:column;align-items:center;gap:4px;padding:14px 8px;border:none;background:none;border-radius:10px;color:var(--text);font-size:11px;font-weight:500;cursor:pointer;transition:background .15s}.mobile-tool-item:hover,.mobile-tool-item:active{background:var(--row-hover)}.mobile-tool-item.active{background:var(--row-active);color:var(--accent)}.mobile-tool-icon{font-size:22px;line-height:1}.mobile-flyto-overlay{position:fixed;top:0;left:0;right:0;z-index:250;background:var(--bg-panel);border-bottom:1px solid var(--border);box-shadow:0 4px 16px var(--overlay-shadow);padding:12px}.mobile-flyto-bar{display:flex;gap:8px;align-items:center}.mobile-flyto-bar .flyto-input{flex:1;width:100%;font-size:16px;padding:12px 14px;border-radius:10px;background:var(--input-bg);border:1px solid var(--input-border);color:var(--text)}.mobile-flyto-bar .flyto-close{width:40px;height:40px;border-radius:10px;border:1px solid var(--border);background:var(--bg-panel);color:var(--text);font-size:20px;cursor:pointer;flex-shrink:0;display:flex;align-items:center;justify-content:center}.mobile-flyto-overlay .flyto-dropdown{position:relative;top:0;margin-top:8px;max-width:100%;border-radius:10px}.map-toolbar{display:none}.heatmap-controls{bottom:72px;left:8px;right:8px}.heatmap-slider-panel{min-width:unset;width:100%;padding:14px 16px}.heatmap-slider-panel input[type=range]{height:32px;-webkit-appearance:none;appearance:none;width:100%}.heatmap-slider-panel input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:24px;height:24px;border-radius:50%;background:var(--accent);cursor:pointer;border:2px solid #fff;box-shadow:0 1px 4px #0000004d}.ai-spotlight-overlay{padding-top:0;align-items:flex-end}.ai-spotlight{width:100vw;max-width:100vw;max-height:85vh;border-radius:16px 16px 0 0;border-bottom:none}.ai-spotlight-header{padding:12px 16px}.ai-spotlight-input-area{padding:10px 12px}.ai-spotlight-input{font-size:16px;padding:10px 12px}.ai-spotlight-empty-hints{flex-direction:column;align-items:stretch}.ai-spotlight-empty-hints button{font-size:12px}.ai-clarification-options{flex-direction:column}.ai-clarification-option-btn{width:100%;text-align:center}.ai-clarification-custom-input{font-size:16px}.ai-spotlight-footer{font-size:9px;padding:6px 12px}.geo-modal,.geo-modal.geo-modal-wide{width:100vw;max-width:100vw;max-height:100dvh;border-radius:0;height:100dvh}.geo-modal-header{padding:14px 16px}.geo-modal-header h2{font-size:14px}.geo-modal-body{padding:14px 16px}.geo-tabs{flex-shrink:0}.geo-tab{font-size:12px;padding:10px 12px}.geo-categories{max-height:200px}.geo-columns-grid{grid-template-columns:1fr}.geo-modal-footer{flex-direction:column;gap:8px}.geo-modal-actions{width:100%}.geo-modal-actions .btn{flex:1}.smart-sel-results-list{max-height:30vh}.smart-sel-footer{flex-shrink:0;border-radius:0;padding:10px 16px;padding-bottom:calc(10px + env(safe-area-inset-bottom,0px));gap:8px;justify-content:stretch}.smart-sel-footer .btn{flex:1;padding:12px 10px;font-size:13px;justify-content:center;text-align:center;white-space:nowrap}.smart-sel-run-btn{padding:14px 20px!important;font-size:14px!important}.geo-modal-close{font-size:26px;padding:4px 8px;min-width:40px;min-height:40px;display:flex;align-items:center;justify-content:center}.geo-modal-body{flex:1 1 0;overflow-y:auto;min-height:0}.heatmap-close-btn{background:none;border:none;color:var(--text-muted);font-size:18px;cursor:pointer;padding:2px 6px;margin-left:8px;line-height:1;transition:color .15s}.heatmap-close-btn:hover{color:var(--accent)}.slider-header-right{display:flex;align-items:center;gap:4px}.loading{font-size:14px}}@media(max-width:480px){.map-tool-btn{padding:6px 8px;font-size:10px;gap:3px}.flyto-input{width:140px}.geo-controls-panel{min-width:160px}.heatmap-slider-panel{min-width:140px}.selection-panel{height:calc(80vh - 56px)}.ai-spotlight{max-height:90vh}.ai-fab{display:none}.sel-tab{font-size:11px;padding:10px 4px}.sel-tab-badge{font-size:9px;padding:1px 5px}.bottom-nav-item{font-size:9px}.bottom-nav-item svg{width:20px;height:20px}}
