:root{--z-map: 0;--z-vignette: 10;--z-ambient-ui: 100;--z-panel: 200;--z-elevated: 300;--z-drawer: 500;--z-modal-backdrop: 900;--z-modal: 1000;--glass-ambient: rgba(22, 22, 24, .04);--glass-panel-active: rgba(22, 22, 24, .75);--glass-elevated: rgba(22, 22, 24, .9);--glass-modal: rgba(22, 22, 24, .7);--glass-field: rgba(22, 22, 24, .85);--border-ambient: 1px solid rgba(0, 0, 0, .08);--border-panel-inactive: 1px solid rgba(0, 0, 0, .1);--border-panel-active: 1px solid rgba(0, 0, 0, .15);--border-elevated: 1px solid rgba(0, 0, 0, .18);--border-modal: 1px solid rgba(0, 0, 0, .25);--blur-ambient: 6px;--blur-panel-inactive: 10px;--blur-panel-active: 14px;--blur-elevated: 16px;--blur-modal: 24px;--blur-backdrop: 8px;--shadow-ambient: 0 2px 8px rgba(0, 0, 0, .1);--shadow-panel-inactive: 0 4px 12px rgba(0, 0, 0, .12);--shadow-panel-active: 0 8px 24px rgba(0, 0, 0, .2);--shadow-elevated: 0 12px 32px rgba(0, 0, 0, .22);--shadow-modal: 0 20px 60px rgba(0, 0, 0, .35);--shadow-sm: var(--shadow-ambient);--shadow-md: var(--shadow-panel-inactive);--shadow-lg: var(--shadow-elevated);--shadow-xl: var(--shadow-modal);--accent-primary: #007AFF;--accent-primary-rgb: 0, 122, 255;--accent-success: #34C759;--accent-warning: #FF9500;--accent-danger: #FF3B30;--accent-info: #5AC8FA;--text-primary: rgba(255, 255, 255, .95);--text-secondary: rgba(255, 255, 255, .75);--text-tertiary: rgba(255, 255, 255, .55);--text-disabled: rgba(255, 255, 255, .35);--text-shadow-sm: 0 1px 2px rgba(0, 0, 0, .5);--text-shadow-md: 0 1px 3px rgba(0, 0, 0, .6);--text-shadow-lg: 0 2px 4px rgba(0, 0, 0, .7);--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 12px;--spacing-lg: 16px;--spacing-xl: 24px;--spacing-2xl: 32px;--spacing-3xl: 48px;--radius-sm: 12px;--radius-md: 16px;--radius-lg: 20px;--radius-xl: 24px;--transition-fast: .1s ease-out;--transition-normal: .2s ease-out;--transition-modal: .25s ease-out;--transition-slow: .3s ease-out;--hover-brightness: 1.1;--active-scale: .98;--panel-scale-from: .95;--modal-scale-from: .9}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,Inter,Segoe UI,system-ui,sans-serif;font-size:14px;line-height:1.5;color:var(--text-primary);background:#000;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-shadow:var(--text-shadow-sm)}h1,h2,h3,h4,h5,h6{margin:0;font-weight:600;color:var(--text-primary);text-shadow:var(--text-shadow-md)}h1{font-size:28px}h2{font-size:24px}h3{font-size:20px}h4{font-size:18px}h5{font-size:16px}h6{font-size:14px}p{line-height:1.6;color:var(--text-secondary)}button,input,select,textarea{background:#ffffff0d;border:1px solid rgba(255,255,255,.12);border-radius:var(--radius-sm);padding:var(--spacing-sm);color:var(--text-primary);font-size:14px;font-family:inherit;transition:all var(--transition-fast)}button:hover,input[type=text]:hover,select:hover,textarea:hover{background:#ffffff14;border-color:#ffffff2e}button:focus,input[type=text]:focus,select:focus,textarea:focus{background:#ffffff1a;border-color:var(--accent-primary);outline:none}label{display:flex;flex-direction:column;gap:var(--spacing-xs);font-size:14px;color:var(--text-secondary)}input[type=checkbox]{width:18px;height:18px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:#ffffff0d;border:1px solid rgba(255,255,255,.15);border-radius:4px;cursor:pointer;transition:all var(--transition-fast);position:relative}input[type=checkbox]:hover{background:#ffffff14;border-color:#fff3}input[type=checkbox]:checked{background:var(--accent-primary);border-color:var(--accent-primary)}input[type=checkbox]:checked:after{content:"✓";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:#fff;font-size:12px;font-weight:600}option{background-color:#1e1e1e;color:var(--text-primary)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#fff3;border-radius:4px;transition:background var(--transition-fast)}::-webkit-scrollbar-thumb:hover{background:#ffffff4d}*{scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.2) transparent}::selection{background:var(--accent-primary);color:#fff}::-moz-selection{background:var(--accent-primary);color:#fff}:focus-visible{outline:2px solid var(--accent-primary);outline-offset:2px}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--accent-primary);outline-offset:2px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.glass-surface-ambient{background:#121212bf;backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border:var(--border-ambient);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm),inset 0 1px #ffffff14;z-index:var(--z-ambient)}.glass-surface-panel{background:var(--glass-panel-active);backdrop-filter:blur(var(--blur-panel-active)) saturate(180%);-webkit-backdrop-filter:blur(var(--blur-panel-active)) saturate(180%);border:var(--border-panel-active);border-radius:var(--radius-lg);box-shadow:var(--shadow-panel-active);z-index:var(--z-panel)}.glass-surface-elevated{background:var(--glass-elevated);backdrop-filter:blur(var(--blur-elevated)) saturate(180%);-webkit-backdrop-filter:blur(var(--blur-elevated)) saturate(180%);border:var(--border-elevated);border-radius:var(--radius-md);box-shadow:var(--shadow-elevated);z-index:var(--z-elevated)}.glass-surface-modal{background:var(--glass-modal);backdrop-filter:blur(var(--blur-modal)) saturate(180%);-webkit-backdrop-filter:blur(var(--blur-modal)) saturate(180%);border:var(--border-modal);border-radius:var(--radius-xl);box-shadow:var(--shadow-modal);z-index:var(--z-modal)}.glass-backdrop-modal{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--glass-backdrop);backdrop-filter:blur(var(--blur-backdrop));-webkit-backdrop-filter:blur(var(--blur-backdrop));z-index:var(--z-backdrop);display:flex;align-items:center;justify-content:center;animation:fadeIn var(--transition-normal)}@supports not (backdrop-filter: blur(1px)){.glass-surface-ambient{background:var(--glass-ambient)}.glass-surface-panel.active{background:var(--glass-panel-active)}.glass-surface-panel.inactive{background:var(--glass-panel-inactive)}.glass-surface-elevated{background:var(--glass-elevated)}.glass-surface-modal{background:var(--glass-modal)}}.glass-button{display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-lg);font-size:14px;font-weight:500;color:var(--text-primary);background:#ffffff14;border:1px solid rgba(255,255,255,.15);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;-webkit-user-select:none;user-select:none}.glass-button:hover:not(:disabled){background:#ffffff1f;border-color:#fff3;filter:brightness(var(--hover-brightness))}.glass-button:active:not(:disabled){transform:scale(var(--active-scale))}.glass-button:disabled{opacity:.5;cursor:not-allowed}.glass-button.active{background:var(--accent-primary);border-color:var(--accent-primary);color:#fff}.glass-button.primary{background:#007aff26;border:1px solid rgba(0,122,255,.3)}.tool-loading-backdrop{z-index:var(--z-modal-backdrop)}.tool-loading-modal{min-width:280px;padding:var(--spacing-lg) var(--spacing-xl);color:var(--text-primary);display:flex;flex-direction:column;gap:var(--spacing-sm)}.tool-loading-title{font-size:16px;font-weight:600;color:var(--text-primary)}.tool-loading-subtitle,.tool-loading-metrics{font-size:13px;color:var(--text-secondary)}.tool-loading-progress{margin-top:var(--spacing-xs);height:6px;background:#fff3;border-radius:999px;overflow:hidden}.tool-loading-progress-fill{height:100%;width:var(--tool-loading-progress, 0%);background:var(--accent-success);border-radius:999px;transition:width .12s linear}.glass-button-secondary{display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-lg);font-size:14px;font-weight:500;color:var(--text-secondary);background:#ffffff0a;border:1px solid rgba(255,255,255,.1);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;-webkit-user-select:none;user-select:none}.glass-button-secondary:hover:not(:disabled){background:#ffffff14;border-color:#ffffff26;color:var(--text-primary)}.glass-button-secondary:active:not(:disabled){transform:scale(var(--active-scale))}.glass-button-secondary:disabled{opacity:.5;cursor:not-allowed}.glass-button-icon{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;font-size:18px;color:var(--text-primary);background:#ffffff0f;border:1px solid rgba(255,255,255,.12);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast);-webkit-user-select:none;user-select:none}.glass-button-icon:hover:not(:disabled){background:#ffffff1a;border-color:#ffffff2e;filter:brightness(var(--hover-brightness))}.glass-button-icon:active:not(:disabled){transform:scale(var(--active-scale))}.glass-button-icon:disabled{opacity:.5;cursor:not-allowed}.close-btn{background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:var(--radius-sm);color:var(--text-secondary);font-size:20px;width:32px;height:32px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all var(--transition-fast);line-height:1;padding:0}.close-btn:hover{background:#ffffff1a;border-color:#fff3;color:var(--text-primary);transform:rotate(90deg)}.close-btn:active{transform:rotate(90deg) scale(.95)}.btn-primary,.btn-secondary{flex:1;padding:var(--spacing-sm) var(--spacing-md);border:none;border-radius:var(--radius-sm);cursor:pointer;font-size:14px;font-weight:600;transition:all var(--transition-fast);display:flex;align-items:center;justify-content:center;gap:var(--spacing-sm)}.btn-primary:disabled,.btn-secondary:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--accent-primary);color:#fff;border:1px solid var(--accent-primary)}.btn-primary:hover:not(:disabled){filter:brightness(var(--hover-brightness))}.btn-primary:active:not(:disabled){transform:scale(var(--active-scale))}.btn-secondary{background:#ffffff14;color:var(--text-primary);border:1px solid rgba(255,255,255,.15)}.btn-secondary:hover:not(:disabled){background:#ffffff1f;border-color:#fff3}.btn-secondary:active:not(:disabled){transform:scale(var(--active-scale))}.glass-input{width:100%;padding:var(--spacing-sm) var(--spacing-md);font-size:14px;font-family:inherit;color:var(--text-primary);background:#ffffff0d;border:1px solid rgba(255,255,255,.12);border-radius:var(--radius-sm);transition:all var(--transition-fast);outline:none}.glass-input::placeholder{color:var(--text-tertiary)}.glass-input:hover{background:#ffffff14;border-color:#ffffff2e}.glass-input:focus{background:#ffffff1a;border-color:var(--accent-primary)}.glass-input:disabled{opacity:.5;cursor:not-allowed}.glass-compact-bar{position:fixed;left:50%;transform:translate(-50%);display:inline-flex;align-items:center;gap:var(--spacing-sm);padding:8px 14px;max-width:min(92vw,520px);min-height:44px;border-radius:999px;background:#18181ad9;border:1px solid rgba(255,255,255,.12);box-shadow:var(--shadow-md),inset 0 1px #ffffff14;backdrop-filter:blur(18px) saturate(160%);-webkit-backdrop-filter:blur(18px) saturate(160%);color:var(--text-primary);font-size:13px;line-height:1;white-space:nowrap;overflow:hidden}.glass-compact-bar.is-hidden{opacity:0;transform:translate(-50%) translateY(12px) scale(.98);pointer-events:none;transition:opacity var(--transition-fast),transform var(--transition-fast)}.glass-compact-bar .text-muted{color:var(--text-tertiary);max-width:140px}.glass-compact-bar .icon-md{font-size:16px;line-height:1}.compact-icon{margin-right:2px}.compact-title{font-weight:600;letter-spacing:.2px}.compact-sep{color:#ffffff47;margin:0 2px}.compact-swatch{width:14px;height:14px;border-radius:4px;border:1px solid rgba(255,255,255,.3);box-shadow:inset 0 0 0 1px #0003}.compact-name{max-width:140px;overflow:hidden;text-overflow:ellipsis}.compact-metric{font-size:12px;color:var(--accent-primary);font-weight:600}.compact-clear,.compact-settings{width:28px;height:28px;font-size:13px}.compact-clear{color:#ff3b30}.glass-bottom-sheet{position:fixed;left:0;right:0;bottom:0;margin:0 auto;width:100%;max-width:720px;max-height:calc(100vh - 140px);padding-top:14px;border-radius:18px 18px 0 0;background:#161618b3;border:1px solid rgba(255,255,255,.15);box-shadow:0 -10px 30px #00000059,inset 0 1px #ffffff1a;backdrop-filter:blur(22px) saturate(170%);-webkit-backdrop-filter:blur(22px) saturate(170%);color:var(--text-primary);animation:slideUpPanel var(--transition-normal);z-index:700}.glass-bottom-sheet:before{content:"";position:absolute;top:8px;left:50%;transform:translate(-50%);width:44px;height:4px;border-radius:999px;background:#ffffff40}.icon-sm{font-size:12px;line-height:1}.icon-md{font-size:16px;line-height:1}.icon-lg{font-size:18px;line-height:1}.text-label{font-size:12px;font-weight:600;color:var(--text-secondary);letter-spacing:.2px;text-transform:uppercase}.text-muted{color:var(--text-tertiary)}.text-value{font-weight:600;color:var(--text-primary)}.edit-sheet{padding-bottom:var(--spacing-lg)}.edit-sheet-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-lg) var(--spacing-xl) var(--spacing-md);border-bottom:1px solid rgba(255,255,255,.1);background:linear-gradient(180deg,#ffffff0f,#fff0)}.edit-sheet-title{display:flex;align-items:center;gap:var(--spacing-sm)}.edit-sheet-heading{margin:0;font-size:16px;font-weight:600}.edit-sheet-close{width:32px;height:32px}.edit-sheet-content{padding:var(--spacing-lg) var(--spacing-xl) var(--spacing-2xl);display:grid;gap:var(--spacing-xl)}.edit-section-label{margin-bottom:var(--spacing-md)}.edit-tile-section{display:grid;gap:var(--spacing-md)}.edit-tile-card{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md);background:#ffffff0d;border-radius:var(--radius-sm);border:1px solid rgba(255,255,255,.12);box-shadow:inset 0 1px #ffffff0f}.edit-tile-swatch{width:48px;height:48px;border-radius:var(--radius-sm);border:2px solid rgba(255,255,255,.2);box-shadow:0 2px 8px #0000004d;flex-shrink:0}.edit-tile-swatch--sm{width:44px;height:44px;border-radius:8px}.edit-tile-info{display:flex;flex-direction:column;gap:4px;min-width:0;flex:1}.edit-tile-name{font-size:14px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.edit-tile-id{font-size:12px}.edit-pick-button{width:100%;justify-content:center;background:linear-gradient(135deg,#4a9eff33,#357abd33);border-color:#4a9eff4d;color:var(--accent-primary)}.edit-pick-button--desktop{font-size:13px;background:linear-gradient(135deg,#4a9eff26,#357abd26);border-color:#4a9eff40}.edit-brush-section{display:grid;gap:var(--spacing-md)}.edit-brush-label{font-size:13px;font-weight:600;color:var(--text-secondary)}.edit-brush-slider{margin-bottom:var(--spacing-xs)}.edit-brush-scale{display:flex;justify-content:space-between;color:var(--text-tertiary);font-size:11px;padding:0 2px}.edit-toolbar-panel{position:fixed;top:80px;right:20px;width:300px;z-index:900;box-shadow:var(--shadow-modal),inset 0 1px #ffffff26}.edit-toolbar-header{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-lg) var(--spacing-lg) var(--spacing-md);border-bottom:1px solid rgba(255,255,255,.1)}.edit-toolbar-title{font-size:15px;font-weight:600}.edit-toolbar-section{padding:var(--spacing-lg);border-bottom:1px solid rgba(255,255,255,.05);display:grid;gap:var(--spacing-md)}.edit-toolbar-section:last-of-type{border-bottom:none}@supports not (backdrop-filter: blur(1px)){.glass-compact-bar{background:#28282cf2}.glass-bottom-sheet{background:#202024fa}}.selection-summary{display:flex;align-items:center;gap:var(--spacing-sm);margin:var(--spacing-sm) var(--spacing-lg) var(--spacing-lg);padding:8px 10px;border-radius:999px;background:#ffffff0a;border:1px solid rgba(255,255,255,.12);box-shadow:inset 0 1px #ffffff0f}.selection-label{font-size:12px;font-weight:600;color:var(--text-secondary);letter-spacing:.2px}.selection-badge{font-size:12px;font-weight:600;color:var(--accent-primary);padding:4px 10px;border-radius:999px;background:#007aff1f;border:1px solid rgba(0,122,255,.25);text-shadow:var(--text-shadow-sm)}.selection-clear{width:28px;height:28px;font-size:12px;color:#ff3b30}.glass-select{width:100%;padding:var(--spacing-sm) var(--spacing-md);font-size:14px;font-family:inherit;color:var(--text-primary);background:#ffffff0d;border:1px solid rgba(255,255,255,.12);border-radius:var(--radius-sm);transition:all var(--transition-fast);outline:none;cursor:pointer}.glass-select:hover{background:#ffffff14;border-color:#ffffff2e}.glass-select:focus{background:#ffffff1a;border-color:var(--accent-primary)}.glass-select:disabled{opacity:.5;cursor:not-allowed}.glass-checkbox{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:18px;height:18px;background:#ffffff0d;border:1px solid rgba(255,255,255,.15);border-radius:4px;cursor:pointer;transition:all var(--transition-fast);position:relative}.glass-checkbox:hover{background:#ffffff14;border-color:#fff3}.glass-checkbox:checked{background:var(--accent-primary);border-color:var(--accent-primary)}.glass-checkbox:checked:after{content:"✓";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:#fff;font-size:12px;font-weight:600}.glass-checkbox:disabled{opacity:.5;cursor:not-allowed}.glass-badge{display:inline-flex;align-items:center;justify-content:center;padding:2px 8px;font-size:11px;font-weight:600;color:#fff;background:var(--accent-danger);border-radius:10px;min-width:20px;text-align:center}.glass-badge.primary{background:var(--accent-primary)}.glass-badge.success{background:var(--accent-success)}.glass-badge.warning{background:var(--accent-warning)}.glass-badge.info{background:var(--accent-info)}.glass-divider{height:1px;background:#ffffff1a;border:none;margin:var(--spacing-lg) 0}.glass-divider.vertical{width:1px;height:auto;margin:0 var(--spacing-lg)}.glass-slider{width:100%;height:6px;background:#ffffff1a;border-radius:var(--radius-sm);outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer}.glass-slider::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:18px;height:18px;background:linear-gradient(135deg,var(--accent-primary) 0%,#357abd 100%);border-radius:50%;cursor:pointer;box-shadow:0 2px 8px #4a9eff66;transition:all var(--transition-fast)}.glass-slider::-webkit-slider-thumb:hover{transform:scale(1.15);box-shadow:0 3px 12px #4a9eff99}.glass-slider::-webkit-slider-thumb:active{transform:scale(1.25);box-shadow:0 4px 16px #4a9effb3}.glass-slider::-moz-range-thumb{width:18px;height:18px;background:linear-gradient(135deg,var(--accent-primary) 0%,#357abd 100%);border-radius:50%;border:none;cursor:pointer;box-shadow:0 2px 8px #4a9eff66;transition:all var(--transition-fast)}.glass-slider::-moz-range-thumb:hover{transform:scale(1.15);box-shadow:0 3px 12px #4a9eff99}.glass-slider::-moz-range-thumb:active{transform:scale(1.25);box-shadow:0 4px 16px #4a9effb3}.spinner{width:14px;height:14px;border:2px solid white;border-top-color:transparent;border-radius:50%;animation:spin .6s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.variant-label{font-size:14px;margin-bottom:var(--spacing-sm);color:var(--text-secondary)}.mod-tabs{display:flex;gap:var(--spacing-xs);margin-bottom:var(--spacing-md);border-bottom:1px solid rgba(255,255,255,.1);flex-wrap:wrap}.mod-tabs button{background:transparent;border:none;color:var(--text-tertiary);padding:var(--spacing-sm) var(--spacing-md);cursor:pointer;border-bottom:2px solid transparent;transition:all var(--transition-fast);font-size:13px;font-weight:500}.mod-tabs button:hover{color:var(--text-primary);background:#ffffff0d}.mod-tabs button.active{color:var(--accent-success);border-bottom-color:var(--accent-success)}.mode-tabs{display:flex;gap:var(--spacing-xs);margin-bottom:var(--spacing-lg);border-bottom:1px solid rgba(255,255,255,.1)}.mode-tabs button{background:transparent;border:none;color:var(--text-tertiary);padding:var(--spacing-sm) var(--spacing-md);cursor:pointer;border-bottom:2px solid transparent;transition:all var(--transition-fast)}.mode-tabs button:hover{color:var(--text-primary);background:#ffffff0d}.mode-tabs button.active{color:var(--accent-primary);border-bottom-color:var(--accent-primary)}.layers-panel{display:flex;flex-direction:column;height:100%}.layers-panel .panel-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-md);border-bottom:1px solid rgba(255,255,255,.1)}.layers-panel .panel-header h3{margin:0;font-size:14px;font-weight:600;color:var(--text-primary)}.layers-list{flex:1;overflow-y:auto;display:flex;flex-direction:column;padding:var(--spacing-xs);gap:2px}.layer-item{display:flex;align-items:center;gap:var(--spacing-sm);padding:6px 8px;border-radius:var(--radius-sm);cursor:pointer;border:1px solid transparent;transition:all var(--transition-fast)}.layer-item:hover{background:#ffffff0d}.layer-item.active{background:rgba(var(--accent-primary-rgb),.25);border:1px solid rgba(var(--accent-primary-rgb),.5);box-shadow:0 0 8px rgba(var(--accent-primary-rgb),.2)}.viz-btn{background:none;border:none;color:var(--text-secondary);cursor:pointer;padding:4px;font-size:14px;width:24px;display:flex;align-items:center;justify-content:center;border-radius:4px}.viz-btn:hover{background:#ffffff1a;color:var(--text-primary)}.viz-btn.hidden{color:var(--text-tertiary);opacity:.5}.layer-info{flex:1;display:flex;align-items:center;gap:8px;overflow:hidden}.layer-name{font-size:13px;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.layer-tag{font-size:10px;background:#ffffff1a;padding:1px 4px;border-radius:4px;color:var(--text-secondary)}.layer-actions{display:flex;align-items:center;gap:2px;opacity:0;transition:opacity .2s}.layer-item:hover .layer-actions,.layer-item.active .layer-actions{opacity:1}.layers-panel .action-btn,.layers-panel .delete-btn{background:none;border:none;color:var(--text-tertiary);cursor:pointer;padding:2px;font-size:12px;border-radius:4px;width:20px;height:20px;display:flex;align-items:center;justify-content:center}.layers-panel .action-btn:hover{background:#ffffff1a;color:var(--text-primary)}.layers-panel .action-btn:disabled{opacity:.3;cursor:default}.layers-panel .delete-btn:hover{background:#ff3b3033;color:#ff3b30}.lock-icon{font-size:12px;color:var(--text-tertiary);padding:0 4px}.layer-controls{padding:var(--spacing-md);border-top:1px solid rgba(255,255,255,.1);background:#0000001a}.layer-controls .control-row{display:flex;align-items:center;gap:var(--spacing-md);margin-bottom:var(--spacing-sm)}.layer-controls .control-row:last-child{margin-bottom:0}.layer-controls .control-row label{width:50px;font-size:12px;color:var(--text-secondary)}.layer-controls .control-row .value{width:40px;text-align:right;font-size:12px;color:var(--text-secondary)}.glass-input.small{padding:4px 8px;font-size:12px}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;display:flex;align-items:center;justify-content:center;z-index:var(--z-modal-backdrop);-webkit-backdrop-filter:blur(8px);animation:fadeIn var(--transition-normal)}.modal{background:var(--glass-modal);backdrop-filter:blur(60px) saturate(180%);-webkit-backdrop-filter:blur(60px) saturate(180%);border:var(--border-modal);border-radius:var(--radius-xl);box-shadow:var(--shadow-modal),inset 0 1px #ffffff26;width:90%;max-width:800px;height:70vh;display:flex;flex-direction:column;overflow:hidden;z-index:var(--z-modal);animation:slideUp var(--transition-modal);min-width:0;transition:height var(--transition-normal)}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-xl);border-bottom:var(--border-panel-active)}.modal-header h2{display:flex;gap:var(--spacing-sm)}.modal-header h2 .icon{margin-right:var(--spacing-sm)}.modal-header h3{display:flex;gap:var(--spacing-sm);align-items:center;margin:0;font-size:20px;font-weight:600;color:var(--text-primary)}.modal-close{background:transparent;border:1px solid transparent;color:var(--text-tertiary);font-size:24px;cursor:pointer;padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-sm);transition:all var(--transition-fast);display:flex;align-items:center;justify-content:center;width:32px;height:32px}.modal-close:hover{background:#ffffff1a;color:var(--text-primary)}.modal-footer{padding:var(--spacing-lg) var(--spacing-xl);border-top:var(--border-panel-active);display:flex;justify-content:flex-end;gap:var(--spacing-sm)}.tool-card{background:#0000004d;border:var(--border-panel-inactive);border-radius:var(--radius-sm);padding:var(--spacing-md);cursor:pointer;transition:all var(--transition-fast);text-align:left;color:inherit;font-family:inherit}.tool-card:hover{background:#14141480;border-color:var(--accent-primary);box-shadow:0 4px 16px #007aff33;transform:translateY(-2px)}.tool-card.selected{background:#007aff1a;border-color:var(--accent-primary);box-shadow:0 0 16px #007aff4d,inset 0 0 12px #007aff1a}.tool-card.disabled{opacity:.5;cursor:not-allowed;color:var(--text-disabled)}.tool-card.disabled:hover{background:#0000004d;border-color:var(--border-panel-inactive);box-shadow:none;transform:none}.tool-card-content{display:flex;gap:var(--spacing-md);align-items:flex-start}.tool-card-icon{font-size:32px;flex-shrink:0;display:flex;align-items:center;justify-content:center;width:48px;height:48px;background:#007aff1a;border-radius:var(--radius-sm);border:1px solid rgba(0,122,255,.2)}.tool-card-info{flex:1;display:flex;flex-direction:column;gap:var(--spacing-xs)}.tool-card-name{font-size:14px;font-weight:600;color:var(--text-primary)}.tool-card-desc{font-size:12px;color:var(--text-tertiary);line-height:1.3}.tool-card-shortcut{font-size:11px;color:var(--text-tertiary);font-family:Courier New,monospace;background:#0000004d;padding:var(--spacing-xs) var(--spacing-sm);border-radius:3px;width:fit-content;margin-top:var(--spacing-xs)}.map-container{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-map);background:#000;overflow:hidden}.map-vignette{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-vignette);background:radial-gradient(circle at center,transparent 0%,transparent 50%,rgba(0,0,0,.15) 100%);pointer-events:none}.toolbar-container{position:fixed;top:var(--spacing-lg);left:50%;transform:translate(-50%);z-index:var(--z-ambient-ui);max-width:90%;width:fit-content;transition:all .3s cubic-bezier(.4,0,.2,1)}.toolbar-container.docked{top:0;left:0;right:0;transform:none;max-width:100%;width:100%;z-index:50;position:relative}.toolbar-container.docked .app-bar,.toolbar-container.docked .app-bar .action-btn,.toolbar-container.docked .app-bar .dropdown-trigger{padding:var(--spacing-xs)}.status-bar-container{position:fixed;bottom:var(--spacing-lg);left:50%;transform:translate(-50%);z-index:var(--z-ambient-ui);max-width:90%;width:fit-content}.panel-left{position:fixed;top:100px;left:var(--spacing-lg);z-index:var(--z-panel);max-width:400px;width:90vw;max-height:calc(100vh - 200px);overflow-y:auto}.panel-right{position:fixed;top:100px;right:var(--spacing-lg);z-index:var(--z-panel);max-width:400px;width:90vw;max-height:calc(100vh - 200px);overflow-y:auto}.modal-container{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:var(--z-modal);max-width:600px;width:90vw;max-height:80vh;overflow-y:auto}@media (max-width: 768px){.toolbar-container{top:var(--spacing-sm);max-width:95%}.status-bar-container{bottom:var(--spacing-sm);max-width:95%}.panel-left,.panel-right{top:80px;left:var(--spacing-sm);right:var(--spacing-sm);max-width:none;width:calc(100vw - var(--spacing-lg))}.panel-right{left:var(--spacing-sm)}.modal-container{max-width:95vw;max-height:90vh}}@media (max-width: 480px){.toolbar-container,.status-bar-container{max-width:98%}.panel-left,.panel-right{top:70px;max-height:calc(100vh - 140px)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes panelScaleIn{0%{opacity:0;transform:scale(var(--panel-scale-from))}to{opacity:1;transform:scale(1)}}@keyframes panelScaleOut{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(var(--panel-scale-from))}}@keyframes modalScaleIn{0%{opacity:0;transform:translate(-50%,-50%) scale(var(--modal-scale-from))}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}@keyframes modalScaleOut{0%{opacity:1;transform:translate(-50%,-50%) scale(1)}to{opacity:0;transform:translate(-50%,-50%) scale(var(--modal-scale-from))}}@keyframes slideInLeft{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}@keyframes slideInRight{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideUpPanel{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes slideDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.animate-panel-in{animation:panelScaleIn var(--transition-normal)}.animate-panel-out{animation:panelScaleOut var(--transition-normal)}.animate-modal-in{animation:modalScaleIn var(--transition-modal)}.animate-modal-out{animation:modalScaleOut var(--transition-modal)}.animate-fade-in{animation:fadeIn var(--transition-normal)}.animate-fade-out{animation:fadeOut var(--transition-normal)}.animate-slide-in-left{animation:slideInLeft var(--transition-normal)}.animate-slide-in-right{animation:slideInRight var(--transition-normal)}.animate-slide-up{animation:slideUp var(--transition-normal)}.panel-focus-in,.panel-focus-out{transition:background var(--transition-normal),border-color var(--transition-normal),box-shadow var(--transition-normal),opacity var(--transition-normal)}
