:root{--panel-bg: rgba(255, 255, 255, .7);--panel-border: rgba(204, 204, 204, .6);--panel-text: #333;--panel-text-secondary: #555;--panel-header-bg: rgba(248, 249, 250, .8);--panel-header-border: #e0e0e0;--button-bg: rgba(255, 255, 255, .8);--button-border: rgba(204, 204, 204, .8);--button-hover-bg: rgba(240, 240, 240, .9);--input-bg: rgba(255, 255, 255, .9);--input-border: rgba(204, 204, 204, .8);--overlay-bg: rgba(0, 0, 0, .7);--overlay-text: #fff;--popup-bg: rgba(255, 255, 255, .95);--popup-header-bg: #f8f9fa;--popup-text: #212529;--popup-text-secondary: #6c757d;--cache-info-bg: rgba(231, 243, 255, .8);--cache-info-text: #007bff;--scale-bg: rgba(255, 255, 255, .8);--scale-border: rgba(51, 51, 51, .6);--scale-text: #333;--close-button-color: #999;--close-button-hover: #333}:root[data-theme=dark]{--panel-bg: rgba(30, 30, 30, .75);--panel-border: rgba(80, 80, 80, .6);--panel-text: #e0e0e0;--panel-text-secondary: #b0b0b0;--panel-header-bg: rgba(40, 40, 40, .8);--panel-header-border: #555;--button-bg: rgba(50, 50, 50, .8);--button-border: rgba(100, 100, 100, .8);--button-hover-bg: rgba(70, 70, 70, .9);--input-bg: rgba(40, 40, 40, .9);--input-border: rgba(100, 100, 100, .8);--overlay-bg: rgba(0, 0, 0, .8);--overlay-text: #fff;--popup-bg: rgba(40, 40, 40, .95);--popup-header-bg: #2a2a2a;--popup-text: #e0e0e0;--popup-text-secondary: #a0a0a0;--cache-info-bg: rgba(0, 60, 120, .6);--cache-info-text: #6db4ff;--scale-bg: rgba(40, 40, 40, .8);--scale-border: rgba(200, 200, 200, .6);--scale-text: #e0e0e0;--close-button-color: #999;--close-button-hover: #e0e0e0}html,body{height:100%;margin:0;padding:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;overflow:hidden;background-color:#f0f0f0}:root[data-theme=dark] html,:root[data-theme=dark] body{background-color:#1a1a1a}*{box-sizing:border-box}#map{position:relative;height:100%;width:100%;overflow:hidden;cursor:crosshair;background-color:#f0f0f0}:root[data-theme=dark] #map{background-color:#1a1a1a}#map canvas{cursor:crosshair;touch-action:none}#toast{position:absolute;top:8px;left:50%;transform:translate(-50%);z-index:6;background:var(--overlay-bg);color:var(--overlay-text);padding:8px 10px;border-radius:8px;font:12px system-ui;display:none;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}#drop-overlay{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;display:none;place-items:center;background:#00000040;z-index:9999}#drop-overlay.active{display:grid}#drop-overlay div{background:var(--popup-bg);color:var(--popup-text);padding:14px 18px;border-radius:10px;box-shadow:0 6px 24px #00000040;font:14px system-ui,-apple-system,Segoe UI,Roboto,sans-serif}#plot-overlay{position:fixed;top:0;right:0;bottom:0;left:0;display:none;place-items:center;background:#000000b3;z-index:9999}#plot-overlay.active{display:grid}#plot-overlay>div{background:var(--popup-bg);color:var(--popup-text);padding:24px 32px;border-radius:10px;box-shadow:0 6px 24px #00000040;font:14px system-ui,-apple-system,Segoe UI,Roboto,sans-serif;text-align:center;min-width:280px}#plot-progress-text{margin-bottom:12px;font-size:16px}#plot-progress-bar-container{background:#8080804d;border-radius:4px;height:8px;overflow:hidden}#plot-progress-bar{background:var(--accent, #3b82f6);height:100%;width:0%;transition:width .3s ease}#compass{position:absolute;top:8px;right:8px;z-index:6;width:50px;height:50px;cursor:pointer;transition:transform .2s ease}#compass:hover{transform:scale(1.1)}#compass:active{transform:scale(.95)}#right-toolbar{position:absolute;bottom:8px;right:11px;z-index:6;display:flex;flex-direction:column;gap:8px}.toolbar-btn{width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:var(--scale-bg);border:1px solid var(--scale-border);border-radius:8px;cursor:pointer;transition:all .2s ease;color:var(--scale-text);padding:0;box-shadow:0 2px 8px #00000026;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.toolbar-btn:hover{transform:scale(1.1);background:var(--button-hover-bg)}.toolbar-btn:active{transform:scale(.95)}.toolbar-btn.active{background:#007bff26;border-color:#007bff80;color:#007bff}.toolbar-btn.active .geolocation-icon{fill:currentColor}.toolbar-btn.active .measure-icon rect{fill:#007bff33}.toolbar-btn.active .identify-icon circle:first-child{fill:#007bff1a}.geolocation-icon,.measure-icon,.identify-icon{transition:fill .2s ease}.compass-svg{width:100%;height:100%;filter:drop-shadow(0 2px 4px rgba(0,0,0,.2))}.compass-circle{fill:var(--scale-bg);stroke:var(--scale-border);stroke-width:2}.compass-needle{transform-origin:50px 50px;transition:transform .3s ease-out}.compass-north{fill:#dc3545;stroke:#a71d2a;stroke-width:1}.compass-south{fill:#fff;stroke:var(--scale-border);stroke-width:1}:root[data-theme=dark] .compass-south{fill:#666;stroke:#999}.compass-center{fill:var(--scale-text)}.compass-label{fill:var(--scale-text);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:14px;font-weight:700;text-anchor:middle;dominant-baseline:middle}#coordinates{position:absolute;bottom:8px;left:50%;transform:translate(-50%);z-index:6;background:var(--overlay-bg);color:var(--overlay-text);padding:4px 8px;border-radius:6px;font:11px monospace;pointer-events:none;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}#map-scale{position:absolute;bottom:8px;left:8px;z-index:6;background:var(--scale-bg);border:1px solid var(--scale-border);border-radius:8px;padding:6px 10px;font:11px system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:var(--scale-text);pointer-events:none;box-shadow:0 2px 8px #00000026;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}#map-scale-bar{height:4px;background:var(--scale-text);margin-top:4px;border-left:1px solid var(--scale-text);border-right:1px solid var(--scale-text);width:100px}#popup{position:absolute;z-index:10;background:var(--popup-bg);border-radius:10px;box-shadow:0 4px 12px #00000026;padding:0;max-width:300px;max-height:400px;overflow:hidden;display:none;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}#popup-header{background:var(--popup-header-bg);padding:12px 16px;border-bottom:1px solid var(--panel-header-border);font-weight:600;font-size:14px;color:var(--popup-text)}#popup-content{padding:12px 16px;max-height:320px;overflow-y:auto}.popup-row{display:flex;margin-bottom:8px;font-size:13px}.popup-key{font-weight:600;color:var(--popup-text-secondary);min-width:80px;margin-right:12px}.popup-value{color:var(--popup-text);flex:1;word-wrap:break-word}.popup-close{position:absolute;top:8px;right:8px;background:none;border:none;font-size:18px;cursor:pointer;color:var(--close-button-color);padding:4px;line-height:1}.popup-close:hover{color:var(--close-button-hover)}.attribute-panel{position:absolute;z-index:7;background:var(--popup-bg);border-radius:10px;box-shadow:0 4px 12px #00000026;padding:0;width:320px;max-height:500px;overflow:hidden;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);will-change:transform}.attribute-panel.hidden{display:none}.attribute-panel-header{background:var(--popup-header-bg);padding:12px 16px;border-bottom:1px solid var(--panel-header-border);display:flex;align-items:center;justify-content:space-between;cursor:grab;-webkit-user-select:none;user-select:none}.attribute-panel-title{font-weight:600;font-size:14px;color:var(--popup-text)}.attribute-panel-close{background:none;border:none;font-size:18px;cursor:pointer;color:var(--close-button-color);padding:4px;line-height:1;transition:color .2s ease}.attribute-panel-close:hover{color:var(--close-button-hover)}.attribute-panel-content{padding:12px 16px;max-height:420px;overflow-y:auto}.attribute-row{display:flex;margin-bottom:10px;font-size:13px}.attribute-row:last-child{margin-bottom:0}.attribute-key{font-weight:600;color:var(--popup-text-secondary);min-width:100px;margin-right:12px;word-break:break-word}.attribute-value{color:var(--popup-text);flex:1;word-wrap:break-word;white-space:pre-wrap}.attribute-empty{text-align:center;padding:20px;font-size:12px;color:var(--popup-text-secondary);font-style:italic}.attribute-panel-content::-webkit-scrollbar{width:8px}.attribute-panel-content::-webkit-scrollbar-track{background:#f1f1f1;border-radius:4px}.attribute-panel-content::-webkit-scrollbar-thumb{background:#888;border-radius:4px}.attribute-panel-content::-webkit-scrollbar-thumb:hover{background:#555}#left-panel{position:absolute;top:8px;left:8px;display:flex;align-items:flex-start;z-index:5;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;max-height:75vh;transition:left .3s ease,opacity .3s ease}#left-panel.collapsed{left:8px}#left-panel.collapsed #panel-tabs{padding:6px}#left-panel.collapsed .panel-tab:not(#panel-collapse-btn){display:none}#left-panel.collapsed #panel-content{display:none!important}#panel-tabs{display:flex;flex-direction:column;gap:4px;background:var(--panel-bg);border:1px solid var(--panel-border);border-radius:10px;padding:6px;box-shadow:0 2px 8px #00000026;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.panel-tab{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:transparent;border:1px solid transparent;border-radius:8px;cursor:pointer;color:var(--panel-text-secondary);transition:all .2s ease;padding:0}.panel-tab:hover{background:#0000000d;color:var(--panel-text)}:root[data-theme=dark] .panel-tab:hover{background:#ffffff1a}.panel-tab.active{background:#007bff1a;color:#007bff;border-color:#007bff4d}#panel-collapse-btn{margin-bottom:8px;position:relative}#panel-collapse-btn:after{content:"";position:absolute;bottom:-4px;left:8px;right:8px;height:1px;background:var(--panel-border)}#panel-collapse-btn svg{transition:transform .3s ease}#logout-btn{margin-top:auto;position:relative;color:#dc3545}#logout-btn:hover{background:#dc35451a;color:#c82333}#logout-btn:before{content:"";position:absolute;top:-4px;left:8px;right:8px;height:1px;background:var(--panel-border)}#left-panel.collapsed #panel-collapse-btn svg{transform:rotate(180deg)}#panel-content{margin-left:8px;background:var(--panel-bg);border:1px solid var(--panel-border);border-radius:10px;padding:8px 12px 12px;box-shadow:0 2px 8px #00000026;width:400px;max-height:75vh;overflow-y:visible;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);position:relative}.panel-page{display:none}.panel-page.active{display:block}.panel-page[data-page=projects].active{display:flex;flex-direction:column;max-height:calc(75vh - 24px);overflow:hidden}.panel-close{position:absolute;top:4px;right:8px;background:transparent;border:none;font-size:20px;cursor:pointer;color:var(--close-button-color);padding:4px;line-height:1;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s ease}.panel-close:hover{background:#0000000d;color:var(--close-button-hover)}:root[data-theme=dark] .panel-close:hover{background:#ffffff1a}.panel-page h3{margin:0 0 10px;padding-right:28px;font-size:13px;font-weight:600;color:var(--panel-text);border-bottom:1px solid var(--panel-header-border);padding-bottom:6px}.panel-header-row{display:flex;align-items:center;gap:8px;padding-right:28px;margin-bottom:10px;padding-bottom:6px;border-bottom:1px solid var(--panel-header-border)}.panel-header-row h3{flex:1;margin:0;padding:0;border-bottom:none}.panel-header-row .btn-icon{flex-shrink:0}.panel-header-row+.control-row{margin-top:0}#cache-pending{display:flex;justify-content:space-between;font-size:12px;font-weight:600;color:var(--cache-info-text);padding:6px 8px;background:var(--cache-info-bg);border-radius:6px;margin-bottom:8px}#cache-pending-count{font-weight:700}#cache-stats{margin-bottom:12px;padding:8px;background:var(--panel-header-bg);border-radius:6px}.cache-stat-row{display:flex;justify-content:space-between;font-size:12px;color:var(--panel-text-secondary);margin-bottom:4px}.cache-stat-row:last-child{margin-bottom:0}.cache-stat-row span:last-child{font-weight:600;color:var(--panel-text)}.control-row{display:flex;align-items:center;margin-bottom:10px;gap:8px}.control-row label{font-size:12px;color:var(--panel-text-secondary);white-space:nowrap}.control-row input{flex:1;padding:6px 8px;border:1px solid var(--input-border);border-radius:6px;font-size:12px;font-family:monospace;background:var(--input-bg);color:var(--panel-text)}.control-row button{padding:6px 12px;border:1px solid var(--button-border);border-radius:6px;background:var(--button-bg);color:var(--panel-text);cursor:pointer;font-size:12px;transition:all .2s;flex:1;white-space:nowrap}.control-row button:hover:not(:disabled){background:var(--button-hover-bg)}.control-row button:disabled{opacity:.5;cursor:not-allowed}.control-row button.primary{background:#007bff;color:#fff;border-color:#007bff}.control-row button.primary:hover:not(:disabled){background:#0056b3}.control-row button.danger{background:#dc3545;color:#fff;border-color:#dc3545}.control-row button.danger:hover:not(:disabled){background:#c82333}.visibility-toggle-row{display:flex;align-items:center;margin-bottom:10px}.visibility-toggle-btn{display:flex;align-items:center;gap:6px;padding:6px 10px;border:1px solid var(--button-border);border-radius:6px;background:var(--button-bg);color:var(--panel-text);cursor:pointer;font-size:11px;transition:all .2s;width:100%;justify-content:center}.visibility-toggle-btn:hover{background:var(--button-hover-bg)}.visibility-toggle-btn svg{flex-shrink:0;color:var(--panel-text-secondary)}#viewframe-list{max-height:200px;overflow-y:auto;border:1px solid var(--panel-border);border-radius:6px;margin-top:8px;background:var(--input-bg)}.viewframe-header{padding:6px 8px;font-size:11px;font-weight:600;background:var(--panel-header-bg);border-bottom:1px solid var(--panel-header-border);color:var(--panel-text)}.viewframe-item{padding:6px 8px;border-bottom:1px solid var(--panel-border);font-size:11px;display:flex;justify-content:space-between;align-items:center;color:var(--panel-text)}.viewframe-item:last-child{border-bottom:none}.viewframe-item button{padding:2px 6px;font-size:10px;border:1px solid var(--button-border);background:var(--button-bg);color:var(--panel-text);border-radius:5px;cursor:pointer;transition:all .2s ease}.viewframe-item button:hover{background:#ffebee;border-color:#f44336;color:#f44336}#basemap-options{display:flex;flex-direction:column;gap:12px}.basemap-tile{display:flex;flex-direction:column;align-items:center;gap:8px;padding:8px;background:var(--button-bg);border:2px solid var(--button-border);border-radius:10px;cursor:pointer;transition:all .2s ease;width:100%}.basemap-tile:hover{background:var(--button-hover-bg);transform:translateY(-2px);box-shadow:0 4px 8px #00000026}.basemap-tile.active{border-color:#007bff;border-width:3px;padding:7px}.basemap-preview{width:120px;height:120px;border-radius:8px;overflow:hidden;background:#f0f0f0;display:flex;align-items:center;justify-content:center}:root[data-theme=dark] .basemap-preview{background:#2a2a2a}.basemap-canvas{display:block;width:120px;height:120px}.basemap-label{font-size:13px;font-weight:600;color:var(--panel-text);text-align:center}#layers-container{margin-top:12px;max-height:calc(75vh - 100px);overflow-y:auto}.core-layer-toggles{margin-bottom:12px;padding:8px;background:var(--panel-header-bg);border:1px solid var(--panel-border);border-radius:6px}.core-layer-toggles-header{font-size:10px;font-weight:600;color:var(--panel-text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px}.core-layer-toggles-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px}.core-layer-toggle-btn{display:flex;align-items:center;gap:6px;padding:6px 8px;background:var(--button-bg);border:1px solid var(--button-border);border-radius:5px;cursor:pointer;transition:all .2s ease;font-size:11px;color:var(--panel-text);min-height:32px;width:100%}.core-layer-toggle-btn:hover{background:var(--button-hover-bg)}.core-layer-toggle-btn.active{background:#007bff1a;border-color:#007bff4d}.core-layer-toggle-btn .core-toggle-icon{width:14px;height:14px;flex-shrink:0;color:var(--panel-text-secondary)}.core-layer-toggle-btn.active .core-toggle-icon{color:#007bff}.layer-project-section{margin-bottom:8px;border:1px solid var(--panel-border);border-radius:6px;background:var(--input-bg);overflow:hidden}.layer-project-section:last-child{margin-bottom:0}.layer-private-section{border-color:#4ecdc44d}.layer-project-header{padding:8px 10px;display:flex;align-items:center;gap:8px;cursor:pointer;transition:background .2s ease;-webkit-user-select:none;user-select:none;background:var(--panel-header-bg);border-bottom:1px solid var(--panel-border)}.layer-project-header:hover{background:var(--button-hover-bg)}.layer-expand-icon{width:16px;height:16px;color:var(--panel-text-secondary);transition:transform .2s ease;flex-shrink:0}.layer-project-header.expanded .layer-expand-icon{transform:rotate(90deg)}.layer-project-name{flex:1;font-size:12px;font-weight:600;color:var(--panel-text)}.layer-project-content{padding:4px 0}.layer-subsection{margin-bottom:4px}.layer-subsection:last-child{margin-bottom:0}.layer-subsection-label{padding:4px 10px;font-size:10px;font-weight:600;color:var(--panel-text-secondary);text-transform:uppercase;letter-spacing:.5px}.layer-item{padding:6px 10px 6px 20px;display:flex;align-items:center;gap:8px;cursor:pointer;transition:background .2s ease}.layer-item:hover{background:#00000008}:root[data-theme=dark] .layer-item:hover{background:#ffffff0d}.layer-visibility-icon{width:18px;height:18px;flex-shrink:0;cursor:pointer;color:var(--panel-text-secondary);transition:color .2s ease}.layer-visibility-icon:hover{color:var(--panel-text)}.layer-visibility-icon.visible{color:#007bff}.layer-zoom-icon{width:18px;height:18px;flex-shrink:0;cursor:pointer;color:var(--panel-text-secondary);transition:all .2s ease}.layer-zoom-icon:hover{color:#007bff;transform:scale(1.1)}.layer-labels-icon{width:18px;height:18px;flex-shrink:0;cursor:pointer;color:var(--panel-text-secondary);transition:all .2s ease}.layer-labels-icon:hover{color:#007bff;transform:scale(1.1)}.layer-labels-icon.active{color:#007bff}.layer-name{flex:1;font-size:11px;color:var(--panel-text)}.layer-count-badge{padding:2px 6px;background:#007bff1a;color:#007bff;border-radius:10px;font-size:10px;font-weight:600;flex-shrink:0}.layer-delete-btn{width:20px;height:20px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;color:var(--panel-text-secondary);font-size:18px;line-height:1;cursor:pointer;padding:0;flex-shrink:0;transition:all .2s ease;border-radius:4px}.layer-delete-btn:hover{color:#dc3545;background:#dc35451a}#project-list{margin-top:12px;border:1px solid var(--panel-border);border-radius:6px;background:var(--input-bg);flex:0 1 auto;min-height:0;overflow-y:auto}.project-item{padding:10px;border-bottom:1px solid var(--panel-border);cursor:pointer;transition:background .2s ease;display:flex;flex-direction:column;gap:0;flex-shrink:0;position:relative}.project-item:last-child{border-bottom:none}.project-item:hover{background:var(--button-hover-bg)}.project-item.selected{background:#007bff1a}.project-item-header{display:flex;align-items:center;gap:10px}.project-visibility-toggle{width:20px;height:20px;flex-shrink:0;cursor:pointer;color:var(--panel-text-secondary);transition:color .2s ease}.project-visibility-toggle:hover{color:var(--panel-text)}.project-visibility-toggle.visible{color:#007bff}.project-info{flex:1 1 auto;min-width:0;max-height:fit-content}.project-name{font-size:12px;font-weight:600;color:var(--panel-text);margin-bottom:2px}.project-description{font-size:10px;color:var(--panel-text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.project-metrics{display:flex;flex-wrap:nowrap;gap:6px;margin-top:4px}.project-metric{font-size:9px;color:var(--panel-text-primary);background:var(--panel-bg-secondary);padding:2px 6px;border-radius:3px;white-space:nowrap;font-weight:500}.project-verofy-map-id{font-size:9px;color:var(--panel-text-secondary);margin-top:4px;margin-bottom:2px}.project-verofy-map-id a{color:#007bff;text-decoration:none}.project-verofy-map-id a:hover{text-decoration:underline}.project-card-tracker-btn{position:absolute;top:10px;right:10px;width:28px;height:28px;padding:0;background:var(--button-bg);border:1px solid var(--panel-border);border-radius:4px;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--panel-text-secondary);transition:all .2s ease;z-index:1}.project-card-tracker-btn:hover{background:var(--button-hover-bg);color:var(--panel-text);border-color:var(--panel-text-secondary);transform:scale(1.05)}.project-card-tracker-btn svg{width:16px;height:16px}.project-last-synced{font-size:9px;color:var(--panel-text-secondary);margin-top:2px;font-style:italic}.project-sync-progress{margin-top:8px}.sync-progress-message{font-size:10px;color:#007bff;margin-bottom:4px;font-weight:500}.sync-progress-bar-container{width:100%;height:4px;background:#007bff26;border-radius:2px;overflow:hidden}.sync-progress-bar{height:100%;background:#007bff;transition:width .3s ease;border-radius:2px}.project-list-empty{padding:20px;text-align:center;font-size:12px;color:var(--panel-text-secondary);font-style:italic}.tag-dropdown-container{margin-top:10px;margin-bottom:10px}.tag-dropdown-header{display:flex;justify-content:space-between;align-items:center;padding:10px 12px;background:var(--button-bg);border:1px solid var(--button-border);border-radius:6px;cursor:pointer;transition:all .2s ease;-webkit-user-select:none;user-select:none;min-height:40px}.tag-dropdown-header:hover{background:var(--button-hover-bg)}.tag-dropdown-header.expanded{border-bottom-left-radius:0;border-bottom-right-radius:0;background:var(--panel-header-bg)}.tag-dropdown-header-left{display:flex;align-items:center;gap:6px;flex:1}.tag-dropdown-label{font-size:12px;font-weight:600;color:var(--panel-text)}.tag-dropdown-count{font-size:11px;color:var(--panel-text-secondary);font-weight:400}.tag-dropdown-count.active{color:#007bff;font-weight:600}.tag-dropdown-chevron{flex-shrink:0;color:var(--panel-text-secondary);transition:transform .2s ease}.tag-dropdown-header.expanded .tag-dropdown-chevron{transform:rotate(180deg)}.tag-dropdown-content{border:1px solid var(--panel-border);border-top:none;border-bottom-left-radius:6px;border-bottom-right-radius:6px;background:var(--input-bg);overflow:hidden;animation:dropdown-expand .2s ease-out}@keyframes dropdown-expand{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.tag-dropdown-clear{width:100%;padding:8px 12px;font-size:11px;background:#007bff14;color:#007bff;border:none;border-bottom:1px solid var(--panel-border);cursor:pointer;transition:all .2s ease;font-weight:600;text-align:left;min-height:36px}.tag-dropdown-clear:hover{background:#007bff26}.tag-dropdown-list{max-height:180px;overflow-y:auto}.tag-dropdown-item{display:flex;align-items:center;gap:10px;padding:10px 12px;cursor:pointer;transition:background .2s ease;border-bottom:1px solid var(--panel-border);min-height:40px}.tag-dropdown-item:last-child{border-bottom:none}.tag-dropdown-item:hover{background:var(--button-hover-bg)}.tag-dropdown-item.selected{background:#007bff14}.tag-dropdown-checkbox{width:16px;height:16px;border:2px solid var(--button-border);border-radius:3px;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .2s ease;background:var(--button-bg)}.tag-dropdown-item.selected .tag-dropdown-checkbox{background:#007bff;border-color:#007bff;color:#fff}.tag-dropdown-item-text{font-size:12px;color:var(--panel-text);flex:1}#org-list{margin-top:12px;border:1px solid var(--panel-border);border-radius:6px;background:var(--input-bg);max-height:300px;overflow-y:auto}.org-item{border-bottom:1px solid var(--panel-border)}.org-item:last-child{border-bottom:none}.org-header{padding:8px 10px;display:flex;align-items:center;gap:8px;cursor:pointer;transition:background .2s ease;-webkit-user-select:none;user-select:none}.org-header:hover{background:var(--button-hover-bg)}.org-header.selected{background:#007bff1a}.org-expand-icon{width:16px;height:16px;color:var(--panel-text-secondary);transition:transform .2s ease}.org-item.expanded .org-expand-icon{transform:rotate(90deg)}.org-name{flex:1;font-size:12px;font-weight:600;color:var(--panel-text)}.user-list{display:none;background:var(--panel-header-bg);border-top:1px solid var(--panel-border)}.org-item.expanded .user-list{display:block}.user-item{padding:6px 10px 6px 34px;font-size:11px;color:var(--panel-text);border-bottom:1px solid var(--panel-border);cursor:pointer;transition:background .2s ease;display:flex;justify-content:space-between;align-items:center}.user-item:last-child{border-bottom:none}.user-item:hover{background:#00000008}:root[data-theme=dark] .user-item:hover{background:#ffffff0d}.user-item.selected{background:#007bff26}.user-name{flex:1}.user-email{font-size:10px;color:var(--panel-text-secondary);margin-left:8px}.user-invite-btn{padding:4px 8px;background:#007bff;color:#fff;border:none;border-radius:4px;font-size:10px;font-weight:600;cursor:pointer;transition:all .2s ease;margin-left:8px;white-space:nowrap;flex-shrink:0}.user-invite-btn:hover{background:#0056b3;transform:translateY(-1px);box-shadow:0 2px 4px #007bff4d}.user-invite-btn:active{transform:translateY(0)}.section-divider{height:1px;background:var(--panel-border);margin:16px 0 12px}.section-heading{margin:0 0 10px;font-size:12px;font-weight:600;color:var(--panel-text);text-transform:uppercase;letter-spacing:.5px}.project-access-list{max-height:200px;overflow-y:auto;border:1px solid var(--panel-border);border-radius:6px;background:var(--input-bg)}.project-access-search{padding:8px;border-bottom:1px solid var(--panel-border);background:var(--panel-header-bg);position:sticky;top:0;z-index:1}.project-access-search-input{width:100%;padding:6px 10px;border:1px solid var(--input-border);border-radius:5px;font-size:12px;background:var(--input-bg);color:var(--panel-text);transition:all .2s ease}.project-access-search-input:focus{outline:none;border-color:#007bff;box-shadow:0 0 0 2px #007bff1a}.project-access-search-input::placeholder{color:var(--panel-text-secondary);opacity:.6}.project-access-item{display:flex;align-items:center;gap:10px;padding:10px 12px;cursor:pointer;transition:background .2s ease;border-bottom:1px solid var(--panel-border);min-height:40px}.project-access-item:last-child{border-bottom:none}.project-access-item:hover{background:var(--button-hover-bg)}.project-access-checkbox{width:16px;height:16px;border:2px solid var(--button-border);border-radius:3px;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .2s ease;background:var(--button-bg);cursor:pointer}.project-access-item.checked .project-access-checkbox{background:#007bff;border-color:#007bff;color:#fff}.project-access-name{font-size:12px;color:var(--panel-text);flex:1;cursor:pointer}.project-access-empty{padding:20px;text-align:center;font-size:12px;color:var(--panel-text-secondary);font-style:italic}#popup-content::-webkit-scrollbar,#viewframe-list::-webkit-scrollbar,#panel-content::-webkit-scrollbar,#org-list::-webkit-scrollbar,#project-list::-webkit-scrollbar,#layers-container::-webkit-scrollbar,.tag-dropdown-list::-webkit-scrollbar{width:8px}#popup-content::-webkit-scrollbar-track,#viewframe-list::-webkit-scrollbar-track,#panel-content::-webkit-scrollbar-track,#org-list::-webkit-scrollbar-track,#project-list::-webkit-scrollbar-track,#layers-container::-webkit-scrollbar-track,.tag-dropdown-list::-webkit-scrollbar-track{background:#f1f1f1;border-radius:4px}#popup-content::-webkit-scrollbar-thumb,#viewframe-list::-webkit-scrollbar-thumb,#panel-content::-webkit-scrollbar-thumb,#org-list::-webkit-scrollbar-thumb,#project-list::-webkit-scrollbar-thumb,#layers-container::-webkit-scrollbar-thumb,.tag-dropdown-list::-webkit-scrollbar-thumb{background:#888;border-radius:4px}#popup-content::-webkit-scrollbar-thumb:hover,#viewframe-list::-webkit-scrollbar-thumb:hover,#panel-content::-webkit-scrollbar-thumb:hover,#org-list::-webkit-scrollbar-thumb:hover,#project-list::-webkit-scrollbar-thumb:hover,#layers-container::-webkit-scrollbar-thumb:hover,.tag-dropdown-list::-webkit-scrollbar-thumb:hover{background:#555}.login-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10000;display:flex;align-items:center;justify-content:center}.login-modal-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.login-modal-dialog{position:relative;z-index:1;width:90%;max-width:400px;animation:modal-enter .2s ease-out}@keyframes modal-enter{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.login-modal-content{background:#fff;border-radius:12px;padding:32px;box-shadow:0 20px 60px #0000004d}:root[data-theme=dark] .login-modal-content{background:#2a2a2a}.login-modal-title{margin:0 0 8px;font-size:24px;font-weight:700;color:#1a1a1a;text-align:center}:root[data-theme=dark] .login-modal-title{color:#f0f0f0}.login-modal-description{margin:0 0 24px;font-size:14px;color:#666;text-align:center}:root[data-theme=dark] .login-modal-description{color:#999}.login-modal-form{display:flex;flex-direction:column;gap:16px}.login-modal-field{display:flex;flex-direction:column;gap:6px}.login-modal-label{font-size:13px;font-weight:600;color:#333}:root[data-theme=dark] .login-modal-label{color:#e0e0e0}.login-modal-input{padding:12px 16px;border:1px solid #d0d0d0;border-radius:8px;font-size:15px;color:#1a1a1a;background:#fff;transition:all .2s ease}:root[data-theme=dark] .login-modal-input{background:#3a3a3a;border-color:#555;color:#f0f0f0}.login-modal-input:focus{outline:none;border-color:#007bff;box-shadow:0 0 0 3px #007bff1a}.login-modal-error{padding:12px;background:#fee;border:1px solid #fcc;border-radius:8px}.login-modal-error.hidden{display:none}:root[data-theme=dark] .login-modal-error{background:#dc354526;border-color:#dc35454d}.login-modal-error-content{display:flex;align-items:center;gap:8px;font-size:13px;color:#c33}:root[data-theme=dark] .login-modal-error-content{color:#ff6b6b}.login-modal-error-icon{width:18px;height:18px;flex-shrink:0}.login-modal-button{display:flex;align-items:center;justify-content:center;padding:12px 24px;background:#007bff;color:#fff;border:none;border-radius:8px;font-size:15px;font-weight:600;cursor:pointer;transition:all .2s ease}.login-modal-button:hover:not(:disabled){background:#0056b3;transform:translateY(-1px);box-shadow:0 4px 12px #007bff4d}.login-modal-button:active:not(:disabled){transform:translateY(0)}.login-modal-button:disabled{opacity:.6;cursor:not-allowed}.login-modal-hint{margin:0;font-size:12px;color:#999;text-align:center;line-height:1.4}:root[data-theme=dark] .login-modal-hint{color:#777}.map-blurred{filter:blur(8px);pointer-events:none}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10000;display:flex;align-items:center;justify-content:center;background:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal-content{position:relative;width:90%;max-width:480px;background:#fff;border-radius:12px;padding:24px;box-shadow:0 20px 60px #0000004d;animation:modal-enter .2s ease-out;display:flex;flex-direction:column}:root[data-theme=dark] .modal-content{background:#2a2a2a}.modal-header{flex-shrink:0;display:flex;align-items:center;justify-content:space-between;padding-bottom:16px;border-bottom:1px solid var(--panel-border)}.modal-body{flex:1;overflow-y:auto;min-height:0}.modal-footer{flex-shrink:0;display:flex;justify-content:flex-end;gap:8px;padding-top:16px;border-top:1px solid var(--panel-border)}.modal-close-btn{background:none;border:none;font-size:24px;cursor:pointer;color:var(--panel-text-secondary);padding:0;line-height:1}.modal-close-btn:hover{color:var(--panel-text)}.modal-title{margin:0 0 20px;font-size:20px;font-weight:700;color:#1a1a1a}:root[data-theme=dark] .modal-title{color:#f0f0f0}.org-form,.user-form{display:flex;flex-direction:column;gap:16px}.form-group{display:flex;flex-direction:column;gap:6px}.form-group label{font-size:13px;font-weight:600;color:#333}:root[data-theme=dark] .form-group label{color:#e0e0e0}.form-input{padding:10px 12px;border:1px solid #d0d0d0;border-radius:6px;font-size:14px;color:#1a1a1a;background:#fff;transition:all .2s ease}:root[data-theme=dark] .form-input{background:#3a3a3a;border-color:#555;color:#f0f0f0}.form-input:focus{outline:none;border-color:#007bff;box-shadow:0 0 0 3px #007bff1a}.form-input-readonly{padding:10px 12px;border:1px solid #e0e0e0;border-radius:6px;font-size:14px;color:#666;background:#f5f5f5}:root[data-theme=dark] .form-input-readonly{background:#2a2a2a;border-color:#444;color:#aaa}.form-hint{font-size:11px;color:#999;margin-top:-2px}:root[data-theme=dark] .form-hint{color:#777}.modal-error{padding:10px 12px;background:#fee;border:1px solid #fcc;border-radius:6px;font-size:13px;color:#c33}:root[data-theme=dark] .modal-error{background:#dc354526;border-color:#dc35454d;color:#ff6b6b}.modal-buttons{display:flex;gap:10px;margin-top:8px}.btn-primary,.btn-secondary{flex:1;padding:10px 16px;border:none;border-radius:6px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease}.btn-primary{background:#007bff;color:#fff}.btn-primary:hover:not(:disabled){background:#0056b3;transform:translateY(-1px);box-shadow:0 4px 12px #007bff4d}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.btn-secondary{background:#6c757d;color:#fff}.btn-secondary:hover{background:#5a6268}:root[data-theme=dark] .btn-secondary{background:#495057}:root[data-theme=dark] .btn-secondary:hover{background:#3d4349}.invite-container{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea,#764ba2);padding:20px}.invite-card{background:#fff;border-radius:12px;box-shadow:0 8px 32px #0000001a;padding:40px;max-width:500px;width:100%;text-align:center}.invite-card h1{margin:0 0 16px;font-size:32px;color:#333}.invite-message{font-size:16px;color:#666;margin:0 0 24px;line-height:1.6}.invite-details{background:#f8f9fa;border-radius:8px;padding:20px;margin:24px 0;text-align:left}.detail-row{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid #e0e0e0}.detail-row:last-child{border-bottom:none}.detail-label{font-weight:600;color:#666}.detail-value{color:#333}.invite-note{font-size:14px;color:#888;margin:24px 0;line-height:1.5}.invite-actions{margin-top:24px}.invite-card.error{border:2px solid #d32f2f}.invite-card.error h1{color:#d32f2f}.error-message{font-size:16px;color:#d32f2f;font-weight:600;margin:0 0 16px}.error-note{font-size:14px;color:#666;margin:0;line-height:1.5}.invitations-section{margin-top:12px;padding-left:28px}.invitations-header{font-size:12px;font-weight:600;color:#666;text-transform:uppercase;margin-bottom:6px;padding:4px 0}.invitation-list{display:flex;flex-direction:column;gap:4px}.invitation-item{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background:#fff9e6;border:1px solid #ffe066;border-radius:4px;cursor:pointer;transition:background-color .2s ease}.invitation-item:hover{background:#fff3cc}.invitation-item.selected{background:#ffe066;border-color:#fc0}.invitation-info{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}.invitation-name{font-size:13px;font-weight:600;color:#333;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.invitation-email{font-size:11px;color:#666;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.invitation-delete-btn{background:none;border:none;color:#999;font-size:20px;line-height:1;cursor:pointer;padding:0 4px;transition:color .2s ease;flex-shrink:0}.invitation-delete-btn:hover{color:#d32f2f}:root[data-theme=dark] .invitations-header{color:#aaa}:root[data-theme=dark] .invitation-item{background:#3d3000;border-color:#665000}:root[data-theme=dark] .invitation-item:hover{background:#4d4000}:root[data-theme=dark] .invitation-item.selected{background:#665000;border-color:#997500}:root[data-theme=dark] .invitation-name{color:#fff}:root[data-theme=dark] .invitation-email{color:#ccc}.invitation-success-message{color:#666;margin:0 0 20px;line-height:1.6}.invitation-link-group{display:flex;gap:8px;margin-bottom:20px}.invitation-link-input{flex:1;padding:10px 12px;border:1px solid #ddd;border-radius:6px;font-family:monospace;font-size:13px;background:#f8f9fa;color:#333}.invitation-copy-btn{flex-shrink:0;padding:10px 16px;background:#6c757d;color:#fff;border:none;border-radius:6px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease}.invitation-copy-btn:hover{background:#5a6268}:root[data-theme=dark] .invitation-link-input{background:#2d2d2d;border-color:#444;color:#e0e0e0}.tag-input-container{display:flex;gap:8px;margin-bottom:10px}.btn-sm{padding:6px 12px;font-size:12px}.tags-container{display:flex;flex-wrap:wrap;gap:6px;min-height:32px;padding:8px;border:1px solid #e0e0e0;border-radius:6px;background:#f8f9fa}:root[data-theme=dark] .tags-container{background:#2a2a2a;border-color:#444}.tags-empty{width:100%;text-align:center;font-size:12px;color:#999;font-style:italic;padding:4px 0}:root[data-theme=dark] .tags-empty{color:#777}.tag-pill{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;background:#007bff;color:#fff;border-radius:12px;font-size:12px;font-weight:500}.tag-pill span{line-height:1}.tag-remove{background:none;border:none;color:#fff;font-size:16px;line-height:1;cursor:pointer;padding:0;margin-left:2px;opacity:.8;transition:opacity .2s ease}.tag-remove:hover{opacity:1}.form-checkbox-group{flex-direction:row;align-items:center;gap:8px}.form-checkbox{width:18px;height:18px;cursor:pointer}.form-checkbox-group label{cursor:pointer;margin:0}.map-tooltip{position:absolute;z-index:5;background:var(--popup-bg);border:1px solid var(--panel-border);border-radius:6px;padding:8px 10px;box-shadow:0 2px 8px #00000026;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);pointer-events:none;font-size:13px;line-height:1.4;min-width:140px}.tooltip-row{display:flex;justify-content:space-between;gap:12px;margin-bottom:4px}.tooltip-row:last-child{margin-bottom:0}.tooltip-label{color:var(--panel-text-secondary);font-weight:500;white-space:nowrap}.tooltip-value{color:var(--panel-text);font-weight:600;text-align:right}.tracker-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000}.tracker-modal-content{background:var(--panel-bg);border-radius:12px;box-shadow:0 8px 32px #0000004d;width:75vw;height:75vh;display:flex;flex-direction:column;overflow:hidden}.tracker-modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid var(--panel-border);gap:16px}.tracker-modal-title{font-size:20px;font-weight:600;color:var(--panel-text);margin:0;flex:1}.tracker-export-btn{display:flex;align-items:center;gap:8px;padding:8px 16px;background:#007bff;color:#fff;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:background-color .2s}.tracker-export-btn:hover{background:#0056b3}.tracker-export-btn svg{flex-shrink:0}.tracker-modal-close{background:none;border:none;font-size:32px;color:var(--panel-text-secondary);cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:background-color .2s;flex-shrink:0}.tracker-modal-close:hover{background-color:var(--panel-hover)}.tracker-spreadsheet-container{flex:1;overflow:hidden;padding:24px}.tracker-spreadsheet{display:grid;grid-template-columns:120px 100px 100px 100px 120px 120px 140px 120px 120px 100px 100px;grid-auto-rows:40px;width:100%;height:100%;overflow:auto;border:1px solid var(--panel-border);border-radius:8px;background:var(--popup-bg)}.tracker-cell{padding:10px 12px;border-right:1px solid var(--panel-border);border-bottom:1px solid var(--panel-border);display:flex;align-items:center;color:var(--panel-text);font-size:14px;background:var(--popup-bg)}.tracker-cell-header{font-weight:600;background:#fff;position:sticky;top:0;z-index:3;border-bottom:2px solid var(--panel-border)}.tracker-cell-frozen-corner{position:sticky;left:0;top:0;z-index:4;background:#fff;border-right:2px solid var(--panel-border)}@media (prefers-color-scheme: dark){.tracker-cell-header,.tracker-cell-frozen-corner{background:#1e1e1e}}.tracker-cell-frozen-col{position:sticky;left:0;z-index:2;background:var(--popup-bg);border-right:2px solid var(--panel-border);font-weight:500}.tracker-cell-total{font-weight:700;background:var(--panel-hover);border-top:2px solid var(--panel-border)}.tracker-cell-data{cursor:pointer;-webkit-user-select:none;user-select:none}.tracker-cell-data:hover{background:#007bff0d}.tracker-cell-selected{background:#007bff33!important;outline:1px solid rgba(0,123,255,.5)}.tracker-selection-footer{position:absolute;bottom:24px;right:24px;padding:8px 12px;background:var(--panel-bg);border:1px solid var(--panel-border);border-radius:6px;font-size:12px;color:var(--panel-text);font-weight:500;box-shadow:0 2px 8px #00000026;pointer-events:none;z-index:10}.style-management-modal{width:600px;max-width:90vw;max-height:80vh}.style-management-modal .modal-body{padding:16px 20px}.style-management-actions{margin-bottom:16px}.style-list-container{min-height:100px}.style-list-empty{text-align:center;color:var(--panel-text-secondary);padding:40px 20px}.style-list-empty p{margin:8px 0}.style-list-section{margin-bottom:20px}.style-list-section-header{display:flex;align-items:center;gap:8px;padding:8px 0;font-size:12px;font-weight:600;color:var(--panel-text-secondary);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--panel-border);margin-bottom:8px}.style-section-icon{display:flex;align-items:center;color:var(--panel-text-secondary)}.style-list-items{display:flex;flex-direction:column;gap:4px}.style-list-item{display:flex;align-items:center;gap:12px;padding:10px 12px;background:var(--input-bg);border:1px solid var(--panel-border);border-radius:6px;transition:all .2s ease}.style-list-item:hover{border-color:#007bff;background:#007bff0d}.style-item-swatch{width:24px;height:24px;border-radius:4px;border:1px solid rgba(0,0,0,.1);flex-shrink:0}.style-item-info{flex:1;min-width:0}.style-item-name{font-size:13px;font-weight:500;color:var(--panel-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.style-item-meta{display:flex;gap:6px;margin-top:4px}.style-badge{font-size:10px;padding:2px 6px;background:#00000014;color:var(--panel-text-secondary);border-radius:10px}.style-badge-owner{background:#007bff1a;color:#007bff}.style-item-actions{display:flex;gap:4px;flex-shrink:0}.style-editor-modal{width:500px;max-width:95vw;max-height:85vh}.style-editor-modal .modal-body{padding:0}.style-editor-tabs{display:flex;border-bottom:1px solid var(--panel-border);background:var(--panel-header-bg)}.style-editor-tab{padding:12px 20px;border:none;background:none;font-size:13px;font-weight:500;color:var(--panel-text-secondary);cursor:pointer;border-bottom:2px solid transparent;transition:all .2s ease}.style-editor-tab:hover{color:var(--panel-text)}.style-editor-tab.active{color:#007bff;border-bottom-color:#007bff}.style-editor-content{padding:20px}.style-form-group{margin-bottom:16px}.style-form-group label{display:block;font-size:12px;font-weight:500;color:var(--panel-text);margin-bottom:6px}.style-input,.style-select,.style-textarea{width:100%;padding:8px 12px;border:1px solid var(--input-border);border-radius:6px;background:var(--input-bg);color:var(--panel-text);font-size:13px;transition:border-color .2s ease}.style-input:focus,.style-select:focus,.style-textarea:focus{outline:none;border-color:#007bff}.style-input:disabled,.style-select:disabled,.style-textarea:disabled{opacity:.6;cursor:not-allowed}.style-textarea{min-height:60px;resize:vertical}.style-form-divider{height:1px;background:var(--panel-border);margin:20px 0}.style-section-title{font-size:14px;font-weight:600;color:var(--panel-text);margin:0 0 16px}.style-properties-grid{display:flex;flex-direction:column;gap:12px}.style-property-row{display:flex;align-items:center;gap:12px}.style-property-row>label{width:100px;flex-shrink:0;font-size:12px;color:var(--panel-text);margin:0}.style-color-picker{display:flex;align-items:center;gap:8px;flex:1}.style-color-picker input[type=color]{width:36px;height:28px;padding:0;border:1px solid var(--input-border);border-radius:4px;cursor:pointer;background:none}.style-color-picker input[type=color]::-webkit-color-swatch-wrapper{padding:2px}.style-color-picker input[type=color]::-webkit-color-swatch{border:none;border-radius:2px}.style-color-text{width:80px!important;font-family:monospace;font-size:12px}.style-slider-group{display:flex;align-items:center;gap:10px;flex:1}.style-slider-group input[type=range]{flex:1;height:4px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--panel-border);border-radius:2px;cursor:pointer}.style-slider-group input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:14px;height:14px;background:#007bff;border-radius:50%;cursor:pointer}.style-slider-group input[type=range]:disabled{opacity:.5;cursor:not-allowed}.style-slider-value{width:45px;font-size:12px;color:var(--panel-text-secondary);text-align:right}.style-preview-section{margin-top:20px;padding-top:16px;border-top:1px solid var(--panel-border)}.style-preview-section h4{font-size:12px;font-weight:500;color:var(--panel-text-secondary);margin:0 0 12px}.style-preview{display:flex;align-items:center;justify-content:center;padding:20px;background:var(--input-bg);border:1px solid var(--panel-border);border-radius:6px;min-height:80px}.style-checkbox-label{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--panel-text);cursor:pointer}.style-checkbox-label input[type=checkbox]{width:16px;height:16px;cursor:pointer}.style-help-text{font-size:11px;color:var(--panel-text-secondary);margin:8px 0 0;line-height:1.5}.style-rules-container{margin-top:16px;transition:opacity .2s ease}.style-rules-list{display:flex;flex-direction:column;gap:8px;margin-bottom:12px}.style-rules-empty{text-align:center;color:var(--panel-text-secondary);font-size:12px;padding:20px}.style-rule-item{padding:12px;border:1px solid var(--panel-border);border-radius:6px;background:var(--input-bg)}.style-rule-header{display:flex;align-items:center;gap:8px;margin-bottom:10px}.style-rule-priority{width:20px;height:20px;display:flex;align-items:center;justify-content:center;background:var(--panel-header-bg);border-radius:4px;font-size:11px;font-weight:600;color:var(--panel-text-secondary);flex-shrink:0}.style-rule-name{flex:1;padding:4px 8px;font-size:12px;font-weight:500;border:1px solid transparent;border-radius:4px;background:transparent;color:var(--panel-text)}.style-rule-name:hover:not(:disabled){border-color:var(--panel-border);background:var(--panel-bg)}.style-rule-name:focus{outline:none;border-color:#007bff;background:var(--panel-bg)}.style-rule-condition{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--panel-text-secondary);margin-bottom:10px}.style-rule-attribute{padding:4px 8px;border:1px solid var(--input-border);border-radius:4px;background:var(--panel-bg);font-size:12px;color:var(--panel-text)}.style-rule-value{width:100px;padding:4px 8px;border:1px solid var(--input-border);border-radius:4px;background:var(--panel-bg);font-size:12px;color:var(--panel-text)}.style-rule-style{display:flex;align-items:center;justify-content:space-between;padding-top:8px;border-top:1px dashed var(--panel-border)}.style-rule-style-preview{display:flex;align-items:center;gap:8px}.style-rule-swatch{width:16px;height:16px;border-radius:3px;border:1px solid rgba(0,0,0,.1)}.style-rule-style span{font-size:11px;color:var(--panel-text-secondary)}.style-rule-style-section{margin-top:8px;padding-top:8px;border-top:1px dashed var(--panel-border)}.style-rule-style-header{display:flex;align-items:center;justify-content:space-between}.style-rule-expand-btn{display:flex;align-items:center;gap:4px;font-size:12px}.style-rule-chevron{transition:transform .2s ease}.style-rule-chevron.expanded{transform:rotate(180deg)}.style-rule-style-editor{margin-top:12px;padding:12px;background:var(--panel-bg);border:1px solid var(--panel-border);border-radius:6px;animation:dropdown-expand .15s ease-out}.style-override-properties{display:flex;flex-direction:column;gap:0}.style-override-row{display:flex;align-items:center;gap:8px;padding:8px 0;border-bottom:1px solid var(--panel-border)}.style-override-row:last-child{border-bottom:none}.style-override-checkbox{flex-shrink:0}.style-override-checkbox input{width:16px;height:16px;cursor:pointer}.style-override-label{width:85px;flex-shrink:0;font-size:12px;color:var(--panel-text)}.style-override-row.overridden .style-override-label{font-weight:600;color:#007bff}.style-override-control{flex:1;display:flex;align-items:center}.style-override-control.disabled{opacity:.5;pointer-events:none}.style-override-default-badge{font-size:10px;color:var(--panel-text-secondary);background:var(--input-bg);padding:2px 6px;border-radius:3px;flex-shrink:0;margin-left:auto}.style-rule-preview{margin-top:12px;padding-top:12px;border-top:1px solid var(--panel-border);display:flex;align-items:center;gap:12px}.style-rule-preview span{font-size:11px;color:var(--panel-text-secondary)}.style-rule-preview svg{background:var(--input-bg);border-radius:4px;padding:4px}.style-rule-item.expanded{background:var(--panel-header-bg)}.style-editor-error{padding:10px 20px;background:#dc35451a;color:#dc3545;font-size:12px;border-top:1px solid rgba(220,53,69,.2)}.layers-header-actions{display:flex;align-items:center;gap:8px}.layers-settings-btn{display:flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;border:none;background:transparent;color:var(--panel-text-secondary);cursor:pointer;border-radius:4px;transition:all .2s ease}.layers-settings-btn:hover{color:#007bff;background:#007bff1a}.layer-style-dropdown{position:relative;display:block;width:100%}.layer-style-dropdown-btn{display:flex;align-items:center;justify-content:flex-start;gap:4px;padding:2px 6px;border:1px solid var(--button-border);border-radius:4px;background:var(--button-bg);font-size:10px;color:var(--panel-text-secondary);cursor:pointer;transition:all .2s ease;width:100%}.layer-style-dropdown-btn:hover{background:var(--button-hover-bg);border-color:#007bff}.layer-style-swatch{width:12px;height:12px;border-radius:2px;border:1px solid rgba(0,0,0,.15);flex-shrink:0}.layer-style-label{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left}.layer-style-arrow{font-size:8px;color:var(--panel-text-secondary);flex-shrink:0}.layer-style-dropdown-menu{position:absolute;top:100%;right:0;z-index:1000;background:var(--popup-bg);border:1px solid var(--panel-border);border-radius:6px;box-shadow:0 4px 12px #00000026;min-width:160px;padding:4px 0;margin-top:4px}.layer-style-option{display:flex;align-items:center;gap:8px;padding:8px 12px;cursor:pointer;font-size:12px;color:var(--panel-text);transition:background .15s ease}.layer-style-option:hover{background:var(--button-hover-bg)}.layer-style-option.selected{background:#007bff1a;color:#007bff}.layer-style-divider{height:1px;background:var(--panel-border);margin:4px 0}.core-layer-toggle-wrapper{display:flex;flex-direction:column;gap:4px}.layer-style-placeholder{height:20px}.btn{display:inline-flex;align-items:center;justify-content:center;padding:8px 16px;border:1px solid var(--button-border);border-radius:6px;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s ease}.btn-primary{background:#007bff;border-color:#007bff;color:#fff}.btn-primary:hover{background:#0056b3;border-color:#0056b3}.btn-secondary{background:var(--button-bg);border-color:var(--button-border);color:var(--panel-text)}.btn-secondary:hover{background:var(--button-hover-bg)}.btn-danger{color:#dc3545}.btn-danger:hover{background:#dc35451a}.btn-sm{padding:4px 8px;font-size:11px}.btn-icon{width:28px;height:28px;padding:0;border-radius:4px}.attribute-table-panel{position:absolute;z-index:8;background:var(--popup-bg);border-radius:10px;box-shadow:0 6px 24px #0003;padding:0;min-width:500px;min-height:300px;width:700px;height:450px;overflow:hidden;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);display:flex;flex-direction:column}.attribute-table-panel.hidden{display:none}.attribute-table-panel-header{background:var(--popup-header-bg);padding:10px 16px;border-bottom:1px solid var(--panel-header-border);display:flex;align-items:center;justify-content:space-between;cursor:grab;-webkit-user-select:none;user-select:none;flex-shrink:0}.attribute-table-panel-header:active{cursor:grabbing}.attribute-table-panel-title{font-weight:600;font-size:14px;color:var(--popup-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.attribute-table-panel-close{background:none;border:none;font-size:18px;cursor:pointer;color:var(--close-button-color);padding:4px;line-height:1;transition:color .2s ease}.attribute-table-panel-close:hover{color:var(--close-button-hover)}.attribute-table-toolbar{display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--popup-header-bg);border-bottom:1px solid var(--panel-header-border);flex-shrink:0}.attribute-table-toolbar .btn-clear-filters{padding:4px 10px;font-size:12px;border:1px solid var(--button-border);border-radius:4px;background:var(--button-bg);color:var(--panel-text);cursor:pointer;transition:all .2s}.attribute-table-toolbar .btn-clear-filters:hover:not(:disabled){background:var(--button-hover-bg)}.attribute-table-toolbar .btn-clear-filters:disabled{opacity:.5;cursor:not-allowed}.attribute-table-row-count{font-size:12px;color:var(--popup-text-secondary);margin-left:auto}.attribute-table-container{flex:1;overflow:hidden;display:flex;flex-direction:column;position:relative}.attribute-table-scroll-wrapper{flex:1;overflow-x:auto;overflow-y:hidden;display:flex;flex-direction:column;min-height:0}.attribute-table-scroll-inner{display:flex;flex-direction:column;flex:1;min-height:0}.attribute-table-header{display:flex;background:var(--popup-header-bg);border-bottom:2px solid var(--panel-header-border);font-weight:600;font-size:12px;flex-shrink:0}.attribute-table-header-cell{padding:8px 12px;border-right:1px solid var(--panel-border);display:flex;align-items:center;gap:6px;cursor:pointer;-webkit-user-select:none;user-select:none;position:relative;flex-shrink:0;transition:background .2s;color:var(--popup-text)}.attribute-table-header-cell:hover{background:var(--button-hover-bg)}.attribute-table-header-cell:last-child{border-right:none}.attribute-table-header-cell .header-label{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.attribute-table-header-cell .sort-indicator{font-size:10px;color:var(--popup-text-secondary);opacity:.5}.attribute-table-header-cell .sort-indicator.active{color:#007bff;opacity:1}.attribute-table-header-cell .filter-btn{padding:2px;background:none;border:none;cursor:pointer;color:var(--popup-text-secondary);opacity:.6;transition:opacity .2s;display:flex;align-items:center;justify-content:center}.attribute-table-header-cell .filter-btn:hover,.attribute-table-header-cell .filter-btn.active{opacity:1;color:#007bff}.attribute-table-filter-dropdown{position:absolute;top:100%;left:0;z-index:100;background:var(--popup-bg);border:1px solid var(--panel-border);border-radius:6px;box-shadow:0 4px 12px #00000026;min-width:200px;max-width:300px;max-height:300px;overflow:hidden;display:flex;flex-direction:column}.attribute-table-filter-search{padding:8px;border-bottom:1px solid var(--panel-border)}.attribute-table-filter-search input{width:100%;padding:6px 8px;border:1px solid var(--input-border);border-radius:4px;font-size:12px;background:var(--input-bg);color:var(--panel-text)}.attribute-table-filter-search input:focus{outline:none;border-color:#007bff}.attribute-table-filter-actions{display:flex;gap:4px;padding:6px 8px;border-bottom:1px solid var(--panel-border)}.attribute-table-filter-actions button{flex:1;padding:4px 8px;font-size:11px;border:1px solid var(--button-border);border-radius:4px;background:var(--button-bg);color:var(--panel-text);cursor:pointer}.attribute-table-filter-actions button:hover{background:var(--button-hover-bg)}.attribute-table-filter-list{flex:1;overflow-y:auto;padding:4px 0}.attribute-table-filter-item{padding:6px 12px;font-size:12px;cursor:pointer;display:flex;align-items:center;gap:8px;color:var(--popup-text)}.attribute-table-filter-item:hover{background:var(--button-hover-bg)}.attribute-table-filter-item input[type=checkbox]{cursor:pointer;accent-color:#007bff}.attribute-table-filter-item .filter-value{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.attribute-table-filter-empty{padding:12px;text-align:center;color:var(--popup-text-secondary);font-size:12px;font-style:italic}.attribute-table-body{flex:1;overflow-y:auto;overflow-x:hidden;position:relative}.attribute-table-body-inner{position:relative}.attribute-table-row{display:flex;position:absolute;left:0;border-bottom:1px solid var(--panel-border);font-size:12px;transition:background .1s;box-sizing:border-box}.attribute-table-row:hover{background:#007bff0d}.attribute-table-cell{padding:8px 12px;border-right:1px solid var(--panel-border);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex-shrink:0;color:var(--popup-text)}.attribute-table-cell:last-child{border-right:none}.attribute-table-empty{padding:40px;text-align:center;color:var(--popup-text-secondary);font-size:13px}.attribute-table-panel .resize-handle{position:absolute;background:transparent;z-index:10}.attribute-table-panel .resize-handle-e{right:0;top:0;bottom:0;width:8px;cursor:ew-resize!important}.attribute-table-panel .resize-handle-s{bottom:0;left:0;right:0;height:8px;cursor:ns-resize!important}.attribute-table-panel .resize-handle-se{right:0;bottom:0;width:16px;height:16px;cursor:nwse-resize!important}.attribute-table-panel .resize-handle-e:hover{background:linear-gradient(to left,rgba(59,130,246,.5),transparent)}.attribute-table-panel .resize-handle-s:hover{background:linear-gradient(to top,rgba(59,130,246,.5),transparent)}.attribute-table-panel .resize-handle-se:hover{background:radial-gradient(circle at bottom right,rgba(59,130,246,.4),transparent 70%)}.layer-table-icon{cursor:pointer;color:var(--panel-text-secondary);transition:color .2s ease;flex-shrink:0}.layer-table-icon:hover{color:var(--panel-text)}.layer-filter-indicator{cursor:pointer;color:#f59e0b;flex-shrink:0;transition:color .2s ease}.layer-filter-indicator:hover{color:#d97706}.attribute-table-body::-webkit-scrollbar{width:8px;height:8px}.attribute-table-body::-webkit-scrollbar-track{background:var(--panel-bg)}.attribute-table-body::-webkit-scrollbar-thumb{background:#888;border-radius:4px}.attribute-table-body::-webkit-scrollbar-thumb:hover{background:#555}.attribute-table-body::-webkit-scrollbar-corner{background:var(--panel-bg)}
