.brush-quick-panel{position:fixed;width:560px;height:434px;min-width:420px;min-height:360px;max-width:calc(100vw - 24px);max-height:calc(100vh - 24px);display:flex;flex-direction:column;background-color:var(--mica-bg);backdrop-filter:var(--mica-blur);-webkit-backdrop-filter:var(--mica-blur);border:1px solid var(--mica-border);border-radius:var(--radius-xl);box-shadow:var(--mica-shadow-lg);z-index:var(--z-popover);overflow:hidden;resize:both;cursor:default;transition:none}.brush-quick-panel.dragging{cursor:grabbing;-webkit-user-select:none;user-select:none}.brush-quick-panel *{cursor:default}.brush-quick-panel button,.brush-quick-panel input,.brush-quick-panel .saturation-square,.brush-quick-panel .vertical-hue-slider,.brush-quick-panel .brush-quick-grid-item{cursor:pointer}.brush-quick-panel input[type=text],.brush-quick-panel input[type=number]{cursor:text}.brush-quick-panel-body{display:flex;flex-direction:column;gap:8px;padding:8px;flex:1;min-height:0}.brush-quick-size-card{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--bg-secondary);padding:8px;width:100%;--brush-panel-value-width: 64px}.brush-quick-size-card .brush-setting-label{font-size:12px;color:var(--text-secondary)}.brush-quick-size-card .brush-setting-row{display:flex;align-items:center;gap:8px}.brush-quick-size-card .brush-setting-row input[type=range]{flex:1;min-width:80px;cursor:pointer;accent-color:var(--accent)}.brush-quick-search{height:32px;display:flex;align-items:center;gap:8px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-primary);padding:0 10px;flex-shrink:0}.brush-quick-search:focus-within{border-color:var(--accent)}.brush-quick-search input{width:100%;border:none;background:transparent;outline:none;color:var(--text-primary)}.brush-quick-error{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 8px;border:1px solid var(--danger);background:var(--danger-bg);border-radius:var(--radius-md);color:var(--danger);font-size:12px;flex-shrink:0}.brush-quick-error button{padding:0 6px;color:inherit}.brush-quick-library{flex:1;min-height:0;overflow:auto;border:1px solid var(--border);border-radius:var(--radius-lg);background:#0000001a;padding:6px}.brush-quick-empty{min-height:100px;display:flex;align-items:center;justify-content:center;color:var(--text-secondary);font-size:13px}.brush-quick-group+.brush-quick-group{margin-top:8px}.brush-quick-group-title{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:5px;font-size:10px;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em}.brush-quick-group-title-main{display:flex;align-items:center;gap:8px;min-width:0}.brush-quick-group-name{max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.brush-quick-group-count{color:var(--text-muted)}.brush-quick-group-toggle-btn{width:22px;height:22px;padding:0;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--border);border-radius:var(--radius-sm);background:transparent;color:var(--text-secondary);cursor:pointer;flex-shrink:0}.brush-quick-group-toggle-btn:hover{border-color:var(--border-strong);color:var(--text-primary);background:var(--surface-hover)}.brush-quick-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(42px,1fr));gap:4px}.brush-quick-grid-item{display:flex;align-items:center;justify-content:center;min-width:0;min-height:42px;padding:3px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-secondary);color:var(--text-secondary)}.brush-quick-grid-item:hover{border-color:var(--accent);color:var(--text-primary)}.brush-quick-grid-item.selected{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.brush-quick-thumb{width:30px;height:30px}@media (max-width: 920px){.brush-quick-panel{min-width:360px}}.canvas-container{flex:1;display:block;background:var(--app-bg);overflow:hidden;position:relative;touch-action:none;user-select:none;-webkit-user-select:none;overscroll-behavior:none}.canvas-container:focus{outline:none}.canvas-viewport{position:absolute;top:0;left:0;box-shadow:0 4px 20px #00000080;z-index:1}.gpu-canvas,.tiling-preview-canvas,.main-canvas,.gradient-preview-canvas{position:absolute;top:0;left:0;display:block;pointer-events:none}.gpu-canvas,.tiling-preview-canvas{z-index:0}.main-canvas{z-index:1}.gradient-preview-canvas{z-index:2}.tiling-center-frame{position:absolute;top:0;left:0;box-sizing:border-box;pointer-events:none;z-index:3}.canvas-checkerboard{position:absolute;top:0;right:0;bottom:0;left:0;background-color:var(--pattern-light);background-image:conic-gradient(var(--pattern-dark) .25turn,var(--pattern-light) 0 .5turn,var(--pattern-dark) 0 .75turn,var(--pattern-light) 0);background-size:16px 16px;background-position:0 0;pointer-events:none;z-index:0}.main-canvas{display:block;cursor:inherit}.brush-cursor{position:fixed;left:0;top:0;pointer-events:none;z-index:var(--z-overlay);min-width:2px;min-height:2px;will-change:transform}.brush-cursor__ellipse{position:absolute;top:0;left:0}.brush-cursor--texture{border:none;border-radius:0;box-shadow:none;background:transparent}.transform-overlay-svg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none;z-index:14}.toolbar{display:flex;align-items:center;gap:12px;padding:0 12px;background-color:var(--mica-bg);backdrop-filter:var(--mica-blur);-webkit-backdrop-filter:var(--mica-blur);border-bottom:1px solid var(--border-subtle);height:40px;z-index:var(--z-header);position:relative}.toolbar-section{display:flex;align-items:center;gap:8px}.toolbar-divider{width:1px;height:20px;background:var(--divider)}.toolbar-spacer{flex:1}.tool-options{min-height:32px}.tool-placeholder{font-size:11px;color:var(--text-muted);padding:0 4px}.transform-toolbar{gap:6px}.transform-mode-select{height:28px;min-width:88px;padding:0 8px}.transform-setting{gap:4px}.transform-setting .setting-label{min-width:0}.transform-value-input{width:54px;height:24px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-primary);color:var(--text-primary);font-size:11px;font-family:var(--font-mono);padding:0 6px}.transform-value-input:focus{outline:none;border-color:var(--primary)}.transform-link-toggle{height:28px;display:inline-flex;align-items:center;gap:6px;font-size:11px;color:var(--text-secondary);white-space:nowrap}.transform-warp-hint{font-size:11px;color:var(--text-muted);max-width:220px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.selection-toolbar{display:flex;align-items:center;gap:4px}.selection-shape-toggle{display:flex;align-items:center;gap:4px;margin-right:2px;padding-right:6px;border-right:1px solid var(--divider)}.selection-shape-btn,.selection-auto-fill-btn{width:32px;padding:0;display:flex;align-items:center;justify-content:center}.selection-fill-opacity-setting{padding-left:4px;gap:6px}.selection-fill-opacity-setting .setting-label{min-width:0}.selection-fill-opacity-setting input[type=range]{width:132px}.selection-fill-opacity-setting .setting-value{width:36px;min-width:36px;flex-basis:36px}.zoom-tool-options{display:flex;align-items:center;gap:8px}.tool-option-btn{height:28px;padding:0 10px;border-radius:var(--radius-sm);border:1px solid var(--border);background:transparent;color:var(--text-secondary);font-size:11px;cursor:pointer;transition:background-color .15s ease,color .15s ease,border-color .15s ease}.tool-option-btn:hover{background:var(--surface-hover);color:var(--text-primary);border-color:var(--border-strong)}.tool-option-btn.active{background:var(--primary-bg);color:var(--primary);border-color:var(--primary)}.tool-option-btn:disabled{cursor:not-allowed;opacity:.5;color:var(--text-muted);border-color:var(--border);background:transparent}.tiling-controls{display:inline-flex;align-items:center;gap:4px}.tiling-preview-btn{width:32px;padding:0;display:inline-flex;align-items:center;justify-content:center}.tool-btn{width:32px;height:32px;padding:0;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-md);background:transparent;border:none;color:var(--text-secondary);transition:background-color .15s ease,color .15s ease}.tool-btn:hover{background:var(--surface-hover);color:var(--text-primary)}.tool-btn.active{background:var(--primary-bg);color:var(--primary)}.tool-icon{line-height:1}.brush-settings{--toolbar-setting-value-width: 42px;gap:16px}.gradient-settings{gap:10px}.toolbar-gradient-preset-select{position:relative}.toolbar-gradient-preview-group{display:flex;align-items:center;gap:2px}.gradient-preview-trigger{width:74px;height:28px;padding:2px;border:1px solid var(--border);border-radius:var(--radius-sm);background:transparent}.gradient-preview-trigger.active{border-color:var(--primary)}.toolbar-gradient-preset-toggle{width:20px;height:28px;padding:0;border:1px solid var(--border);border-radius:var(--radius-sm);background:transparent;color:var(--text-secondary);font-size:10px;line-height:1}.toolbar-gradient-preset-toggle:hover{border-color:var(--border-strong);color:var(--text-primary)}.toolbar-gradient-preset-toggle.active{border-color:var(--primary);color:var(--primary);background:var(--primary-bg)}.toolbar-gradient-preset-dropdown{position:absolute;left:0;top:calc(100% + 4px);width:240px;max-height:260px;overflow:auto;z-index:var(--z-popover);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-secondary);box-shadow:0 8px 24px #0000004d;padding:4px}.toolbar-gradient-preset-option{width:100%;height:30px;border:1px solid transparent;border-radius:var(--radius-sm);background:transparent;display:grid;grid-template-columns:92px 1fr;align-items:center;gap:8px;padding:0 6px;color:var(--text-primary)}.toolbar-gradient-preset-option:hover{background:var(--surface-hover);border-color:var(--border-subtle)}.toolbar-gradient-preset-option.active{background:var(--primary-bg);border-color:var(--primary-border)}.toolbar-gradient-preset-option-preview{display:block;width:92px;height:16px;border-radius:3px;border:1px solid var(--border);background-size:100% 100%,8px 8px;background-position:0 0,0 0}.toolbar-gradient-preset-option-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px;text-align:left}.gradient-preview-chip{display:block;width:100%;height:100%;border-radius:4px;background-size:100% 100%,10px 10px;background-position:0 0,0 0}.gradient-shape-group{display:flex;gap:4px}.shape-btn{width:24px;height:24px;border:1px solid var(--border);border-radius:var(--radius-sm);background:transparent;color:var(--text-muted);font-size:10px}.shape-btn.active{border-color:var(--primary);color:var(--primary);background:var(--primary-bg)}.gradient-setting{gap:6px}.gradient-setting.compact .setting-label{min-width:32px}.gradient-settings .gradient-blend-mode-select{position:relative;width:100%;min-width:172px}.gradient-settings .gradient-blend-mode-select .blend-mode-trigger{height:28px;font-size:11px;padding:0 8px}.gradient-settings .gradient-blend-mode-select .gradient-blend-mode-dropdown{position:absolute;left:0;right:0;top:calc(100% + 4px);bottom:auto;z-index:var(--z-popover);background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:0 8px 24px #0000004d;padding:3px 0;contain:paint;max-height:min(560px,calc(100vh - 72px));overflow-y:auto;overflow-x:hidden}.gradient-toggle-group{display:flex;gap:6px}.setting{display:flex;align-items:center;gap:8px;cursor:default}.setting-label{font-size:10px;font-weight:500;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);min-width:40px}.setting input[type=range]{width:80px;height:4px;cursor:pointer;-webkit-appearance:none;appearance:none;background:var(--divider);border-radius:var(--radius-full)}.setting input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:12px;height:12px;background:var(--text-primary);border-radius:var(--radius-full);cursor:pointer;box-shadow:0 1px 3px #0000004d}.setting input[type=range]::-webkit-slider-thumb:hover{background:var(--primary)}.setting-value{font-size:10px;font-family:var(--font-mono);color:var(--text-secondary);width:var(--toolbar-setting-value-width);min-width:var(--toolbar-setting-value-width);flex:0 0 var(--toolbar-setting-value-width);text-align:right;line-height:20px;box-sizing:border-box}.setting-value.editable{cursor:text}.setting-value-input{width:var(--toolbar-setting-value-width);min-width:var(--toolbar-setting-value-width);flex:0 0 var(--toolbar-setting-value-width);height:20px;font-size:8px;line-height:18px;font-family:var(--font-mono);color:var(--text-primary);background:var(--bg-primary);border:1px solid var(--primary);border-radius:var(--radius-sm);padding:0 4px;text-align:right;outline:none;box-sizing:border-box}.pressure-select{padding:4px 8px;font-size:11px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-primary);color:var(--text-primary);cursor:pointer;transition:border-color .15s ease}.pressure-select option{background:var(--bg-primary);color:var(--text-primary)}.pressure-select:hover{border-color:var(--primary)}.pressure-select:focus{outline:none;border-color:var(--primary)}.pressure-toggle{width:18px;height:18px;padding:0;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);font-size:9px;font-weight:600;background:transparent;border:1px solid var(--border);color:var(--text-muted);cursor:pointer;transition:all .15s ease}.pressure-toggle:hover{border-color:var(--primary);color:var(--text-primary)}.pressure-toggle.active{background:var(--primary);border-color:var(--primary);color:#fff}.color-picker{gap:8px}.color-input{width:28px;height:28px;padding:0;border:2px solid var(--border-strong);border-radius:var(--radius-full);cursor:pointer;background:none;overflow:hidden}.color-input::-webkit-color-swatch-wrapper{padding:0}.color-input::-webkit-color-swatch{border:none;border-radius:var(--radius-full)}.color-hex{font-family:var(--font-mono);font-size:10px;color:var(--text-muted);text-transform:uppercase}.canvas-actions,.history-actions{gap:2px}.canvas-actions button,.history-actions button{width:28px;height:28px;padding:0;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);background:transparent;border:none;color:var(--text-secondary)}.canvas-actions button:hover,.history-actions button:hover{background:var(--surface-hover);color:var(--text-primary)}.canvas-actions button:disabled,.history-actions button:disabled{opacity:1;color:var(--text-secondary);filter:brightness(.72);background:transparent}.canvas-actions button:disabled:hover,.history-actions button:disabled:hover{background:transparent;color:var(--text-secondary)}.zoom-controls{gap:2px}.zoom-controls button{width:28px;height:28px;padding:0;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);background:transparent;border:none;color:var(--text-secondary)}.zoom-controls button:hover{background:var(--surface-hover);color:var(--text-primary)}.zoom-controls .zoom-level{width:auto;min-width:48px;padding:0 8px;font-size:10px;font-family:var(--font-mono);color:var(--text-secondary)}.app-menu{position:relative}.menu-btn{width:32px;height:32px;padding:0;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-md);background:transparent;border:none;color:var(--primary);cursor:pointer;transition:background-color .15s ease;outline:none}.menu-btn:focus{outline:none}.menu-btn:hover{background:var(--surface-hover)}.menu-dropdown{position:absolute;top:calc(100% + 4px);left:0;min-width:180px;background-color:var(--mica-bg-solid);border:1px solid var(--mica-border);border-radius:var(--radius-lg);box-shadow:var(--mica-shadow-lg);padding:4px;z-index:var(--z-dropdown)}.menu-item{display:flex;align-items:center;gap:10px;width:100%;padding:8px 12px;background:transparent;border:none;border-radius:var(--radius-md);color:var(--text-primary);font-size:13px;cursor:pointer;text-align:left;transition:background-color .15s ease;position:relative;outline:none}.menu-item:focus{outline:none}.menu-item:hover{background:var(--surface-hover)}.menu-item.has-submenu{cursor:default}.menu-item .submenu-arrow{margin-left:auto;color:var(--text-muted)}.menu-divider{height:1px;background:var(--divider);margin:4px 8px}.submenu{position:absolute;left:100%;top:-4px;min-width:160px;background-color:var(--mica-bg-solid);border:1px solid var(--mica-border);border-radius:var(--radius-lg);box-shadow:var(--mica-shadow-lg);padding:4px;z-index:var(--z-popover)}.menu-item.has-submenu:after{content:"";position:absolute;right:-8px;top:0;width:12px;height:100%}.submenu .menu-item{font-size:12px;padding:6px 10px}.submenu .menu-item.submenu-empty{color:var(--text-muted);cursor:default;pointer-events:none}.submenu .menu-item.recent-file-item{max-width:260px}.recent-file-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.menu-item .shortcut{margin-left:auto;color:var(--text-muted);font-size:11px}.pattern-library-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;z-index:2000}.pattern-library-panel{width:720px;height:520px;max-width:90vw;max-height:80vh;display:flex;flex-direction:column}.pattern-library-header{height:48px;display:flex;align-items:center;justify-content:space-between;padding:0 20px;border-bottom:1px solid var(--border-subtle);background:var(--bg-elevated)}.pattern-library-header h2{margin:0;font-size:14px;font-weight:600;color:var(--text-primary);text-transform:uppercase;letter-spacing:.05em}.pattern-library-close-btn{background:transparent;border:none;padding:6px;cursor:pointer;color:var(--text-secondary);border-radius:var(--radius-md);transition:all .15s ease;display:flex;align-items:center;justify-content:center}.pattern-library-close-btn:hover{background:var(--surface-hover);color:var(--text-primary)}.pattern-library-toolbar{display:flex;align-items:center;gap:12px;padding:12px 20px;border-bottom:1px solid var(--border-subtle)}.pattern-library-search{flex:1;display:flex;align-items:center;gap:8px;padding:6px 12px;background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-md);transition:border-color .15s ease}.pattern-library-search:focus-within{border-color:var(--accent)}.pattern-library-search svg{flex-shrink:0;color:var(--text-secondary)}.pattern-library-search input{flex:1;background:none;border:none;padding:0;outline:none;font-size:13px;color:var(--text-primary)}.pattern-library-search input::placeholder{color:var(--text-tertiary)}.pattern-library-actions{display:flex;align-items:center;gap:8px}.pattern-library-btn{display:flex;align-items:center;gap:6px;padding:6px 12px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-md);font-size:13px;color:var(--text-primary);cursor:pointer;transition:all .15s ease}.pattern-library-btn:hover:not(:disabled){background:var(--bg-tertiary);border-color:var(--border-strong)}.pattern-library-btn:disabled{opacity:.5;cursor:not-allowed}.pattern-library-btn.primary{background:var(--primary-bg);border-color:var(--primary-border);color:var(--primary)}.pattern-library-btn.primary:hover:not(:disabled){background:var(--primary-border)}.pattern-library-error{display:flex;align-items:center;justify-content:space-between;margin:12px 20px 0;padding:8px 12px;background:var(--danger-bg);border:1px solid var(--danger);border-radius:var(--radius-md);color:var(--danger);font-size:12px}.pattern-library-error button{background:none;border:none;padding:2px 6px;cursor:pointer;color:inherit;font-size:16px}.pattern-library-content{flex:1;overflow-y:auto;padding:20px}.pattern-library-loading,.pattern-library-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px;text-align:center;color:var(--text-secondary)}.pattern-library-empty svg{margin-bottom:16px;opacity:.5;color:var(--text-muted)}.pattern-library-empty h3{margin:0 0 8px;font-size:16px;font-weight:500;color:var(--text-primary)}.pattern-library-empty p{margin:0 0 16px;font-size:13px;color:var(--text-secondary)}.pattern-group{margin-bottom:24px}.pattern-group-header{display:flex;align-items:center;gap:8px;margin-bottom:12px;font-size:12px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.pattern-group-count{padding:2px 8px;background:var(--bg-elevated);border-radius:12px;font-size:11px;color:var(--text-muted)}.pattern-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:12px}.pattern-grid-item{display:flex;flex-direction:column;align-items:center;padding:8px;background:var(--bg-secondary);border:1px solid transparent;border-radius:var(--radius-lg);cursor:pointer;transition:all .15s ease}.pattern-grid-item:hover{background:var(--bg-tertiary);border-color:var(--border-subtle);transform:translateY(-2px);box-shadow:0 4px 12px #0003}.pattern-grid-item.selected{border-color:var(--primary);background:var(--primary-bg);box-shadow:0 0 0 1px var(--primary)}.pattern-thumbnail{width:80px;height:80px;border-radius:var(--radius-md);overflow:hidden;background:var(--bg-primary);border:1px solid var(--border-subtle)}.pattern-name{margin-top:8px;font-size:12px;color:var(--text-secondary);text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.pattern-name-input{margin-top:8px;width:100%;padding:2px 4px;font-size:12px;text-align:center;background:var(--bg-primary);border:1px solid var(--primary);border-radius:var(--radius-sm);color:var(--text-primary);outline:none}.brush-library-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;z-index:2000}.brush-library-panel{width:760px;height:560px;max-width:92vw;max-height:84vh;display:flex;flex-direction:column}.brush-library-header{height:48px;display:flex;align-items:center;justify-content:space-between;padding:0 20px;border-bottom:1px solid var(--border-subtle);background:var(--bg-elevated)}.brush-library-header h2{margin:0;font-size:14px;font-weight:600;color:var(--text-primary);text-transform:uppercase;letter-spacing:.05em}.brush-library-close-btn{background:transparent;border:none;padding:6px;cursor:pointer;color:var(--text-secondary);border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center}.brush-library-close-btn:hover{background:var(--surface-hover);color:var(--text-primary)}.brush-library-toolbar{display:flex;align-items:center;gap:12px;padding:12px 20px;border-bottom:1px solid var(--border-subtle)}.brush-library-search{flex:1;display:flex;align-items:center;gap:8px;padding:6px 12px;background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-md)}.brush-library-search:focus-within{border-color:var(--accent)}.brush-library-search input{flex:1;background:none;border:none;outline:none;color:var(--text-primary);font-size:13px}.brush-library-actions{display:flex;align-items:center;gap:8px}.brush-library-btn{display:flex;align-items:center;gap:6px;padding:6px 10px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-md);color:var(--text-primary);font-size:13px;cursor:pointer}.brush-library-btn:hover:not(:disabled){background:var(--bg-tertiary);border-color:var(--border-strong)}.brush-library-btn:disabled{opacity:.5;cursor:not-allowed}.brush-library-btn.primary{background:var(--primary-bg);border-color:var(--primary-border);color:var(--primary)}.brush-library-content{flex:1;overflow-y:auto;padding:20px}.brush-library-loading,.brush-library-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:48px;color:var(--text-secondary)}.brush-library-empty h3{margin:12px 0 8px;font-size:16px;color:var(--text-primary)}.brush-group{margin-bottom:20px}.brush-group-header{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px;font-size:12px;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em}.brush-group-header-main{display:flex;align-items:center;gap:8px;min-width:0}.brush-group-name{max-width:320px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.brush-group-count{padding:2px 8px;background:var(--bg-elevated);border-radius:12px;font-size:11px;color:var(--text-muted)}.brush-group-icon-btn,.brush-group-toggle-btn{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;background:transparent;border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer}.brush-group-icon-btn:hover:not(:disabled),.brush-group-toggle-btn:hover{border-color:var(--border-strong);color:var(--text-primary);background:var(--surface-hover)}.brush-group-icon-btn:disabled{opacity:.45;cursor:not-allowed}.brush-group-icon-btn.danger:hover:not(:disabled){border-color:var(--danger);color:var(--danger)}.brush-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(86px,1fr));gap:8px}.brush-grid-item{display:flex;flex-direction:column;align-items:center;padding:6px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-secondary);cursor:pointer}.brush-grid-item:hover{border-color:var(--accent);background:var(--bg-tertiary)}.brush-grid-item.selected{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.brush-grid-thumb{width:48px;height:48px}.brush-grid-name{margin-top:4px;width:100%;font-size:10px;color:var(--text-secondary);text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.brush-library-error{display:flex;align-items:center;justify-content:space-between;margin:12px 20px 0;padding:8px 12px;background:var(--danger-bg);border:1px solid var(--danger);border-radius:var(--radius-md);color:var(--danger);font-size:12px}.brush-library-error button{background:none;border:none;color:inherit;cursor:pointer}.brush-library-footer{display:flex;justify-content:flex-end;gap:16px;padding:10px 20px;border-top:1px solid var(--border-subtle);font-size:12px;color:var(--text-secondary)}.canvas-size-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;z-index:var(--z-modal)}.canvas-size-panel{width:440px;max-width:92vw;display:flex;flex-direction:column;overflow:hidden}.canvas-size-header{border-bottom:1px solid var(--border-subtle)}.canvas-size-close-btn{width:28px;height:28px;padding:0;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;background:transparent;border:none;color:var(--text-secondary);cursor:pointer;transition:all .15s ease}.canvas-size-close-btn:hover{background:var(--surface-hover);color:var(--text-primary)}.canvas-size-body{padding:16px;display:flex;flex-direction:column;gap:14px}.canvas-size-row{display:flex;align-items:center;gap:10px}.canvas-size-field{flex:1;display:flex;flex-direction:column;gap:6px}.canvas-size-field label{font-size:10px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--text-muted)}.canvas-size-current{font-family:var(--font-mono);font-size:12px;color:var(--text-secondary);padding:6px 10px;border-radius:var(--radius-sm);background:var(--bg-secondary);border:1px solid var(--border)}.canvas-size-link-btn{width:32px;height:32px;padding:0;border-radius:var(--radius-md);border:1px solid var(--border);background:var(--bg-secondary);color:var(--text-secondary);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .15s ease;flex-shrink:0;margin-top:18px}.canvas-size-link-btn:hover{background:var(--bg-tertiary);border-color:var(--border-strong);color:var(--text-primary)}.canvas-size-link-btn.active{background:var(--primary-bg);border-color:var(--primary-border);color:var(--primary)}.canvas-size-mode{display:flex;border:1px solid var(--border);border-radius:var(--radius-md);overflow:hidden;flex:1}.canvas-size-mode button{flex:1;padding:8px 10px;border:none;background:var(--bg-secondary);color:var(--text-secondary);font-size:12px;cursor:pointer;transition:all .15s ease}.canvas-size-mode button:hover{background:var(--bg-tertiary);color:var(--text-primary)}.canvas-size-mode button.active{background:var(--primary-bg);color:var(--text-primary)}.canvas-size-section{display:flex;flex-direction:column;gap:8px}.canvas-size-section-title{font-size:10px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--text-muted)}.canvas-size-anchor-fieldset{margin:0;padding:0;border:none}.canvas-size-anchor-fieldset:disabled{opacity:.5}.canvas-size-anchor-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.canvas-size-anchor-btn{width:100%;height:28px;border-radius:var(--radius-md);border:1px solid var(--border);background:var(--bg-secondary);color:var(--text-secondary);cursor:pointer;transition:all .15s ease}.canvas-size-anchor-btn:hover{background:var(--bg-tertiary);border-color:var(--border-strong);color:var(--text-primary)}.canvas-size-anchor-btn.selected{background:var(--primary-bg);border-color:var(--primary-border);color:var(--text-primary)}.canvas-size-select{padding:6px 10px;font-size:13px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-primary);color:var(--text-primary);cursor:pointer}.canvas-size-select:disabled{opacity:.6;cursor:not-allowed}.canvas-size-actions{display:flex;justify-content:flex-end;gap:10px;padding-top:6px}.canvas-size-btn{padding:8px 14px;border-radius:var(--radius-md);border:1px solid var(--border);background:var(--bg-secondary);color:var(--text-primary);font-size:13px;cursor:pointer;transition:all .15s ease}.canvas-size-btn:hover{background:var(--bg-tertiary);border-color:var(--border-strong)}.canvas-size-btn.primary{background:var(--primary-bg);border-color:var(--primary-border);color:var(--primary)}.canvas-size-btn.primary:hover{background:var(--primary-border)}.quick-export-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;z-index:var(--z-modal)}.quick-export-panel{width:520px;max-width:94vw;display:flex;flex-direction:column;overflow:hidden}.quick-export-header{border-bottom:1px solid var(--border-subtle)}.quick-export-close-btn{width:28px;height:28px;padding:0;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;background:transparent;border:none;color:var(--text-secondary);cursor:pointer;transition:all .15s ease}.quick-export-close-btn:hover{background:var(--surface-hover);color:var(--text-primary)}.quick-export-body{padding:16px;display:flex;flex-direction:column;gap:14px}.quick-export-row{display:flex;align-items:center;gap:10px}.quick-export-field{flex:1;display:flex;flex-direction:column;gap:6px}.quick-export-field label{font-size:10px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--text-muted)}.quick-export-current{font-family:var(--font-mono);font-size:12px;color:var(--text-secondary);padding:6px 10px;border-radius:var(--radius-sm);background:var(--bg-secondary);border:1px solid var(--border)}.quick-export-field input[type=number]{-moz-appearance:textfield;-webkit-appearance:textfield;appearance:textfield}.quick-export-field input[type=number]::-webkit-outer-spin-button,.quick-export-field input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.quick-export-path-row{display:flex;align-items:center;gap:8px}.quick-export-run-btn{min-width:92px;height:36px;border-radius:var(--radius-md);border:1px solid var(--primary-border);background:var(--primary-bg);color:var(--text-primary);display:inline-flex;align-items:center;justify-content:center;gap:8px;font-size:13px;cursor:pointer;transition:all .15s ease}.quick-export-run-btn:hover:not(:disabled){background:var(--primary-border)}.quick-export-run-btn:disabled{opacity:.5;cursor:not-allowed}.quick-export-path-input{flex:1;min-width:0;height:36px;border-radius:var(--radius-md);border:1px solid var(--border);background:var(--bg-primary);color:var(--text-primary);padding:0 10px;font-size:12px;font-family:var(--font-mono)}.quick-export-path-input::placeholder{color:var(--text-muted)}.quick-export-path-btn{width:36px;height:36px;border-radius:var(--radius-md);border:1px solid var(--border);background:var(--bg-secondary);color:var(--text-secondary);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .15s ease}.quick-export-path-btn:hover:not(:disabled){border-color:var(--border-strong);background:var(--bg-tertiary);color:var(--text-primary)}.quick-export-path-btn:disabled{opacity:.5;cursor:not-allowed}.quick-export-select{padding:6px 10px;font-size:13px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-primary);color:var(--text-primary);cursor:pointer}.quick-export-select:disabled{opacity:.6;cursor:not-allowed}.quick-export-toggle{position:relative;display:inline-block;width:44px;height:24px;margin-top:3px}.quick-export-toggle input{opacity:0;width:0;height:0}.quick-export-toggle-slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:var(--bg-tertiary);border:1px solid var(--border);border-radius:12px;transition:all .2s ease}.quick-export-toggle-slider:before{position:absolute;content:"";height:18px;width:18px;left:2px;bottom:2px;background-color:var(--text-secondary);border-radius:50%;transition:all .2s ease}.quick-export-toggle input:checked+.quick-export-toggle-slider{background-color:var(--primary);border-color:var(--primary)}.quick-export-toggle input:checked+.quick-export-toggle-slider:before{transform:translate(20px);background-color:#fff}.quick-export-toggle input:disabled+.quick-export-toggle-slider{opacity:.5;cursor:not-allowed}.new-file-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;z-index:var(--z-modal)}.new-file-panel{width:520px;max-width:92vw;display:flex;flex-direction:column;overflow:hidden}.new-file-header{border-bottom:1px solid var(--border-subtle)}.new-file-close-btn{width:28px;height:28px;padding:0;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;background:transparent;border:none;color:var(--text-secondary);cursor:pointer;transition:all .15s ease}.new-file-close-btn:hover{background:var(--surface-hover);color:var(--text-primary)}.new-file-body{padding:16px;display:flex;flex-direction:column;gap:14px}.new-file-row{display:flex;gap:10px;align-items:flex-start}.new-file-field{flex:1;display:flex;flex-direction:column;gap:6px}.new-file-field label{font-size:10px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--text-muted)}.new-file-hint{font-size:12px;color:var(--text-secondary)}.new-file-select{padding:6px 10px;font-size:13px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-primary);color:var(--text-primary);cursor:pointer}.new-file-orientation{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.new-file-orientation button{padding:7px 10px;border-radius:var(--radius-md);border:1px solid var(--border);background:var(--bg-secondary);color:var(--text-secondary);font-size:12px;cursor:pointer}.new-file-orientation button:hover{background:var(--bg-tertiary);color:var(--text-primary);border-color:var(--border-strong)}.new-file-orientation button.active{color:var(--primary);border-color:var(--primary-border);background:var(--primary-bg)}.new-file-custom-actions{display:flex;gap:8px;align-items:center}.new-file-custom-actions input{flex:1}.new-file-actions{display:flex;justify-content:flex-end;gap:10px;padding-top:6px}.new-file-btn{padding:8px 14px;border-radius:var(--radius-md);border:1px solid var(--border);background:var(--bg-secondary);color:var(--text-primary);font-size:13px;cursor:pointer;transition:all .15s ease}.new-file-btn:hover{background:var(--bg-tertiary);border-color:var(--border-strong)}.new-file-btn:disabled{opacity:.55;cursor:not-allowed}.new-file-btn.danger{border-color:#ef444466}.new-file-btn.danger:hover:not(:disabled){color:#fee2e2;border-color:#ef4444b3;background:#ef444433}.new-file-btn.primary{background:var(--primary-bg);border-color:var(--primary-border);color:var(--primary)}.new-file-btn.primary:hover{background:var(--primary-border)}.confirm-unsaved-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;z-index:var(--z-modal)}.confirm-unsaved-panel{width:460px;max-width:92vw;display:flex;flex-direction:column;overflow:hidden}.confirm-unsaved-header{border-bottom:1px solid var(--border-subtle)}.confirm-unsaved-close-btn{width:28px;height:28px;padding:0;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;background:transparent;border:none;color:var(--text-secondary);cursor:pointer;transition:all .15s ease}.confirm-unsaved-close-btn:hover{background:var(--surface-hover);color:var(--text-primary)}.confirm-unsaved-body{padding:16px;display:flex;flex-direction:column;gap:16px}.confirm-unsaved-text{color:var(--text-secondary);font-size:13px;line-height:1.5}.confirm-unsaved-actions{display:flex;justify-content:flex-end;gap:10px}.confirm-unsaved-btn{padding:8px 14px;border-radius:var(--radius-md);border:1px solid var(--border);background:var(--bg-secondary);color:var(--text-primary);font-size:13px;cursor:pointer;transition:all .15s ease}.confirm-unsaved-btn:hover{background:var(--bg-tertiary);border-color:var(--border-strong)}.confirm-unsaved-btn.primary{background:var(--primary-bg);border-color:var(--primary-border);color:var(--primary)}.confirm-unsaved-btn.primary:hover{background:var(--primary-border)}.confirm-unsaved-btn.danger{background:var(--danger-bg);border-color:var(--danger);color:var(--text-primary)}.confirm-unsaved-btn.danger:hover{background:var(--danger)}.gradient-editor-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-modal);background:#00000073;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center}.gradient-editor-modal{width:min(820px,92vw);height:min(640px,86vh);display:flex;flex-direction:column}.gradient-editor-modal-header{flex-shrink:0}.gradient-editor-close-btn{background:transparent;border:none;color:var(--text-secondary);padding:6px;border-radius:var(--radius-md)}.gradient-editor-close-btn:hover{background:var(--surface-hover);color:var(--text-primary)}.gradient-editor-modal-content{flex:1;min-height:0;overflow:auto;padding:16px}.gradient-editor{display:grid;grid-template-rows:minmax(220px,46%) 1fr;gap:12px;height:100%;color:var(--text-primary)}.gradient-editor-main,.gradient-presets,.gradient-stop-editor{border:1px solid var(--border-subtle);border-radius:var(--radius-lg);background:var(--bg-secondary)}.gradient-presets{display:flex;flex-direction:column;min-height:0;padding:12px;gap:10px}.gradient-presets-header{display:flex;align-items:center;justify-content:space-between}.gradient-presets-header h4{margin:0;font-size:13px;color:var(--text-primary)}.gradient-preset-list{flex:1;min-height:0;overflow:auto;display:grid;gap:8px;padding-right:2px}.gradient-preset-item{display:grid;grid-template-columns:140px 1fr;align-items:center;gap:10px;padding:8px;border-radius:var(--radius-md);border:1px solid var(--border);background:var(--bg-primary)}.gradient-preset-item.active{border-color:var(--primary-border);background:var(--primary-bg)}.gradient-preset-preview{height:26px;border-radius:var(--radius-sm);border:1px solid var(--border);background-size:100% 100%,10px 10px;background-position:0 0,0 0;padding:0}.gradient-preset-meta{display:grid;gap:6px}.gradient-preset-name{font-size:12px;color:var(--text-primary)}.gradient-preset-actions{display:flex;gap:6px;flex-wrap:wrap}.gradient-preset-btn{height:26px;border-radius:var(--radius-md);border:1px solid var(--border);background:var(--bg-primary);color:var(--text-primary);font-size:12px;padding:0 10px}.gradient-preset-btn:hover:not(:disabled){border-color:var(--border-strong);background:var(--bg-tertiary)}.gradient-preset-btn.primary{background:var(--primary-bg);border-color:var(--primary-border);color:var(--primary)}.gradient-preset-btn.danger{color:var(--danger)}.gradient-editor-main{display:grid;grid-template-rows:auto auto 1fr;gap:10px;padding:12px;min-height:0;overflow:hidden}.gradient-name-field{display:grid;grid-template-columns:52px minmax(0,1fr);align-items:center;gap:8px;font-size:12px;color:var(--text-secondary)}.gradient-name-field input{height:30px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-primary);color:var(--text-primary);padding:0 10px;font-size:13px}.gradient-bar-editor{display:grid}.gradient-control-strip{position:relative;height:74px;border:1px solid var(--border);border-radius:var(--radius-md);background:linear-gradient(180deg,#ffffff05,#fff0)}.gradient-preview-band{position:absolute;left:6px;right:6px;top:20px;height:28px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background-size:100% 100%,10px 10px;background-position:0 0,0 0}.gradient-stop{position:absolute;left:0;transform:translate(-50%);width:14px;height:14px;padding:0;border:1px solid var(--border-strong);border-radius:2px;background:var(--bg-primary);cursor:ew-resize}.gradient-stop.selected{outline:2px solid var(--primary);outline-offset:1px}.opacity-stop{top:6px;width:24px;border-radius:3px;display:flex;align-items:center;justify-content:center;background:#fff;border-color:#1f1f1f}.stop-label{font-size:9px;color:#111;line-height:1}.color-stop{bottom:6px;background:transparent}.stop-color{display:block;width:100%;height:100%;border-radius:1px}.gradient-midpoint{position:absolute;left:0;width:10px;height:10px;padding:0;border:1px solid var(--border-strong);background:var(--bg-primary);transform:translate(-50%) rotate(45deg);cursor:ew-resize}.gradient-midpoint:hover{border-color:var(--primary)}.opacity-midpoint{top:14px}.color-midpoint{bottom:14px}.gradient-stop-editor{padding:12px;display:grid;gap:10px;align-content:start;min-height:0;overflow:auto}.gradient-stop-editor h4{margin:0;font-size:13px}.stop-editor-grid{display:grid;gap:8px;align-items:center}.stop-editor-grid.opacity-grid{grid-template-columns:64px minmax(0,1fr) 64px minmax(0,1fr) minmax(88px,120px)}.stop-editor-grid.color-grid{grid-template-columns:64px minmax(0,1fr) 64px minmax(0,1fr) 48px 44px minmax(88px,120px)}.stop-editor-label{font-size:12px;color:var(--text-secondary)}.stop-editor-grid input[type=number],.stop-editor-grid select,.stop-editor-grid input[type=color]{height:30px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-primary);color:var(--text-primary);font-size:13px;padding:0 10px}.stop-editor-grid input[type=color]{padding:2px 4px;width:44px;min-width:44px;justify-self:start}.stop-delete-btn{height:30px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-primary);color:var(--danger);font-size:12px;padding:0 10px}.stop-delete-btn:disabled{color:var(--text-disabled)}.empty-hint{margin:0;font-size:12px;color:var(--text-muted)}@media (max-width: 860px){.gradient-editor-modal{width:min(96vw,720px);height:min(90vh,760px)}.gradient-editor{grid-template-rows:auto 1fr}.stop-editor-grid{grid-template-columns:72px minmax(0,1fr)}.stop-delete-btn{grid-column:1 / -1;justify-self:start}}.command-palette-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:calc(var(--z-modal) + 10);background:#00000038;display:flex;align-items:flex-start;justify-content:center;padding-top:clamp(56px,10vh,110px)}.command-palette-panel{width:min(680px,calc(100vw - 32px));max-height:min(620px,calc(100vh - 140px));display:flex;flex-direction:column;overflow:hidden}.command-palette-search{display:flex;align-items:center;gap:10px;padding:12px 14px;border-bottom:1px solid var(--border-subtle);color:var(--text-secondary)}.command-palette-search input{flex:1;min-width:0;border:none;background:transparent;color:var(--text-primary);font-size:14px;outline:none}.command-palette-search input::placeholder{color:var(--text-secondary)}.command-palette-results{overflow:auto;padding:8px;display:flex;flex-direction:column;gap:4px}.command-palette-empty{padding:14px;color:var(--text-secondary);font-size:13px}.command-palette-item{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border:1px solid transparent;border-radius:var(--radius-md);background:transparent;color:var(--text-primary);cursor:pointer;text-align:left}.command-palette-item:hover,.command-palette-item.active{border-color:var(--primary-border);background:var(--primary-bg)}.command-palette-title{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.command-palette-meta{display:inline-flex;align-items:center;gap:10px;color:var(--text-secondary);font-size:12px;flex-shrink:0}.command-palette-shortcut{font-family:Consolas,SFMono-Regular,Menlo,Monaco,monospace;color:var(--text-primary)}.left-toolbar{position:fixed;left:20px;top:50%;transform:translateY(-50%);z-index:var(--z-panels);background-color:var(--mica-bg);backdrop-filter:var(--mica-blur);-webkit-backdrop-filter:var(--mica-blur);border:1px solid var(--mica-border);border-radius:var(--radius-xl);box-shadow:var(--mica-shadow);padding:8px 4px}.toolbar-tools{display:flex;flex-direction:column;align-items:center;gap:4px}.tool-grid-btn{position:relative;display:flex;align-items:center;justify-content:center;width:40px;height:40px;padding:0;border:none;border-radius:var(--radius-lg);background:transparent;color:var(--text-secondary);cursor:pointer;transition:background-color .15s ease,color .15s ease}.tool-grid-btn:hover{background:var(--surface-hover);color:var(--text-primary)}.tool-grid-btn.active{background:var(--primary-bg);color:var(--primary)}.tool-grid-btn:focus{outline:none}.right-panel{position:fixed;right:20px;top:60px;bottom:20px;width:280px;z-index:var(--z-panels);background-color:var(--mica-bg);backdrop-filter:var(--mica-blur);-webkit-backdrop-filter:var(--mica-blur);border:1px solid var(--mica-border);border-radius:var(--radius-xl);box-shadow:var(--mica-shadow);display:flex;flex-direction:column;overflow:hidden}.panel-section{display:flex;flex-direction:column;overflow:hidden}.color-section{flex-shrink:0}.layer-section{flex:1;min-height:200px;overflow:visible}.section-header{height:32px;display:flex;align-items:center;justify-content:space-between;padding:0 12px;background:transparent;flex-shrink:0}.section-header h3{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-primary);margin:0}.section-actions{display:flex;gap:4px}.section-action-btn{display:flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;background:transparent;border:none;border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;transition:background-color .15s ease,color .15s ease}.section-action-btn:hover{background:var(--surface-hover);color:var(--text-primary)}.section-action-btn:disabled{opacity:.4;cursor:not-allowed;pointer-events:none}.section-content{overflow:hidden}.layer-content{flex:1;overflow:visible;display:flex;flex-direction:column}.layer-section>.section-content{overflow:visible}.layer-content .layer-panel{height:100%}.panel-divider{height:1px;background:var(--border-subtle);flex-shrink:0}.right-panel .color-panel{padding:8px}.right-panel .layer-panel{border-radius:0}.right-panel .layer-panel-header{display:none}.section-header .layer-panel-actions{display:flex;gap:4px;margin-left:auto}.saturation-square{position:relative;width:100%;height:100%;cursor:crosshair;-webkit-user-select:none;user-select:none;touch-action:none;overflow:hidden}.saturation-white{position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(to right,#fff,#fff0);pointer-events:none}.saturation-black{position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(to top,#000,#0000);pointer-events:none}.saturation-pointer{position:absolute;width:12px;height:12px;border:1px solid white;box-shadow:0 0 0 1px #00000080;border-radius:50%;transform:translate(-50%,-50%);pointer-events:none;z-index:10}.vertical-hue-slider{position:relative;width:16px;height:100%;border-radius:0;border:1px solid var(--border-color);background:linear-gradient(to bottom,red,#ff0 17%,#0f0 33%,#0ff,#00f 67%,#f0f 83%,red);cursor:pointer;touch-action:none;-webkit-user-select:none;user-select:none}.vertical-hue-pointer{position:absolute;left:-2px;right:-2px;height:8px;margin-top:-4px;border:1px solid white;box-shadow:0 0 0 1px #00000080;background:transparent;border-radius:2px;pointer-events:none;z-index:10}.color-panel{padding:6px 8px 8px;height:auto;box-sizing:border-box}.color-layout{display:flex;align-items:flex-start;gap:6px;width:100%;height:auto;min-height:0}.color-control-column{--control-cell-size: 20px;width:48px;flex-shrink:0;display:flex;flex-direction:column;gap:4px}.main-swatches-card{position:relative;height:50px}.main-color-swatch{position:absolute;width:22px;height:22px;box-sizing:border-box;display:block;padding:0;border:1px solid var(--border-color);border-radius:4px;cursor:default}.main-color-swatch.background{right:8px;top:13px}.main-color-swatch.foreground{left:7px;top:7px;z-index:1;border:2px solid rgba(255,255,255,.85)}.control-button-grid{display:grid;grid-template-columns:repeat(2,var(--control-cell-size));gap:2px;justify-content:start;width:fit-content}.control-cell-btn{width:var(--control-cell-size);height:var(--control-cell-size);min-height:0;border-radius:2px}.color-action-btn{display:flex;align-items:center;justify-content:center;padding:0;background:var(--bg-primary);border:1px solid var(--border-color);color:var(--text-secondary);cursor:pointer}.color-action-btn:hover{background:var(--bg-tertiary);color:var(--text-primary)}.color-action-btn:focus-visible,.recent-swatch-slot:focus-visible{outline:1px solid var(--primary);outline-offset:1px}.swatch-grid{display:grid;grid-template-columns:repeat(2,var(--control-cell-size));grid-auto-rows:var(--control-cell-size);gap:2px;justify-content:start;width:fit-content}.recent-swatch-slot{width:var(--control-cell-size);height:var(--control-cell-size);min-height:0;padding:0;display:block;border:1px solid var(--border-color);border-radius:2px;background:var(--bg-primary);cursor:pointer}.recent-swatch-slot:hover:not(:disabled){border-color:var(--text-secondary)}.recent-swatch-slot.empty{opacity:.45;cursor:default}.color-picker-wrapper{flex:1;min-width:0;width:100%;border:1px solid var(--border-color);background:var(--bg-primary);padding:3px;border-radius:2px}.picker-area{display:flex;gap:6px;width:100%;align-items:stretch}.saturation-wrapper{flex:1 1 auto;min-width:0;position:relative;aspect-ratio:1 / 1;max-width:100%}.saturation-wrapper .react-colorful__saturation{width:100%!important;height:100%!important;border-radius:0!important;border:1px solid var(--border-color)}.saturation-wrapper .react-colorful__pointer{width:12px;height:12px;border:1px solid #fff;box-shadow:0 0 0 1px #00000080}.hue-wrapper{width:16px;flex-shrink:0}.layer-panel{width:100%;height:100%;display:flex;flex-direction:column}.layer-list{flex:1;overflow-y:auto;padding:8px}.layer-empty{padding:20px;text-align:center;color:var(--text-muted);font-size:12px}.layer-item{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:var(--radius-lg);border:1px solid transparent;cursor:pointer;transition:background-color .15s ease,border-color .15s ease}.layer-item:hover{background:var(--bg-tertiary)}.layer-item.active{background:var(--primary-bg);border-color:var(--primary-border)}.layer-item.selected:not(.active){background:var(--bg-tertiary);border-color:var(--primary-border)}.layer-item.locked{opacity:.7}.layer-item.dragging{opacity:.5}.layer-item.drop-target{background:var(--bg-tertiary);box-shadow:inset 0 -2px 0 var(--primary)}.drag-handle{cursor:grab;color:var(--text-muted);opacity:.5;display:flex;align-items:center;transition:opacity .15s ease}.drag-handle:hover{opacity:1}.layer-item.dragging .drag-handle{cursor:grabbing}.visibility-toggle{width:24px;height:24px;padding:0;background:transparent;border:none;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;color:var(--text-secondary);cursor:pointer;transition:background-color .15s ease,color .15s ease}.visibility-toggle:hover{background:var(--surface-hover);color:var(--text-primary)}.visibility-toggle.hidden{color:var(--text-muted);opacity:.5}.layer-thumbnail{width:40px;height:40px;background-color:var(--pattern-light);background-image:conic-gradient(var(--pattern-dark) .25turn,var(--pattern-light) 0 .5turn,var(--pattern-dark) 0 .75turn,var(--pattern-light) 0);background-size:10px 10px;background-position:0 0;border:1px solid var(--border-strong);border-radius:var(--radius-md);flex-shrink:0;overflow:hidden;display:flex;align-items:center;justify-content:center;box-shadow:0 1px 2px #0000001a}.layer-thumbnail img{width:100%;height:100%;object-fit:contain}.layer-name{flex:1;font-size:12px;font-weight:500;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:color .15s ease}.layer-item:hover .layer-name,.layer-item.active .layer-name{color:var(--text-primary)}.layer-name-input{flex:1;font-size:12px;font-weight:500;color:var(--text-primary);background:var(--bg-secondary);border:1px solid var(--primary);border-radius:var(--radius-sm);padding:2px 6px;outline:none;min-width:0}.lock-indicator{color:var(--text-muted);flex-shrink:0}.layer-panel-footer{padding:12px;background:var(--bg-tertiary);border-top:1px solid var(--border-subtle);display:flex;flex-direction:column;gap:8px}.blend-mode-select{position:relative;width:100%}.blend-mode-select.disabled{opacity:.6;pointer-events:none}.blend-mode-trigger{width:100%;height:24px;padding:0 6px;display:flex;align-items:center;justify-content:space-between;gap:6px;background:transparent;color:var(--text-primary);border:1px solid var(--border);border-radius:var(--radius-sm);font-size:10px;line-height:1.05;font-family:Segoe UI,Microsoft YaHei UI,sans-serif;cursor:pointer;transition:border-color .15s ease;text-align:left}.blend-mode-trigger-label{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.blend-mode-trigger-chevron{flex-shrink:0;color:var(--text-muted);font-size:11px;line-height:1}.blend-mode-trigger:hover{border-color:var(--primary)}.blend-mode-trigger:focus{outline:none;border-color:var(--primary)}.blend-mode-dropdown{position:absolute;left:0;right:0;bottom:calc(100% + 4px);z-index:var(--z-popover);background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:0 8px 24px #0000004d;padding:3px 0;overflow:visible;contain:paint}.blend-mode-option{width:100%;padding:1px 8px;min-height:18px;display:flex;align-items:center;background:transparent;border:none;color:var(--text-primary);font-size:10px;line-height:1.05;font-family:Segoe UI,Microsoft YaHei UI,sans-serif;text-align:left;cursor:pointer;transition:none;will-change:background-color}.blend-mode-option:hover{background:var(--surface-hover)}.blend-mode-option.active{background:var(--primary-bg);color:var(--text-primary)}.blend-mode-divider{height:1px;margin:4px 8px;background:var(--border-subtle)}.opacity-control{display:flex;align-items:center;gap:8px;font-size:10px;font-weight:500;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted)}.opacity-control input[type=range]{flex:1;height:4px;-webkit-appearance:none;appearance:none;background:var(--divider);border-radius:var(--radius-full)}.opacity-control input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:10px;height:10px;background:var(--text-primary);border-radius:var(--radius-full);cursor:pointer;box-shadow:0 1px 2px #0000004d}.opacity-control span:last-child{min-width:32px;text-align:right;font-family:var(--font-mono);font-size:10px;color:var(--text-secondary)}.layer-toolbar{display:flex;justify-content:center;gap:4px;padding-top:8px;border-top:1px solid var(--border-subtle)}.toolbar-btn{width:28px;height:28px;padding:0;background:transparent;border:none;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;color:var(--text-secondary);cursor:pointer;transition:background-color .15s ease,color .15s ease}.toolbar-btn:hover{background:var(--surface-hover);color:var(--text-primary)}.toolbar-btn:disabled{opacity:.4;cursor:not-allowed}.toolbar-btn:disabled:hover{background:transparent;color:var(--text-secondary)}.toolbar-btn.active{color:var(--primary)}.toolbar-btn.danger:hover:not(:disabled){color:var(--danger);background:var(--danger-bg)}.layer-context-menu{background-color:var(--mica-bg);backdrop-filter:var(--mica-blur);-webkit-backdrop-filter:var(--mica-blur);border:1px solid var(--mica-border);border-radius:var(--radius-lg);box-shadow:var(--mica-shadow);padding:4px;min-width:220px;z-index:var(--z-modal)}.context-menu-item{display:flex;align-items:center;gap:8px;width:100%;padding:8px 12px;background:transparent;border:none;border-radius:var(--radius-md);color:var(--text-primary);font-size:12px;cursor:pointer;text-align:left;transition:background-color .15s ease}.context-menu-shortcut{margin-left:auto;color:var(--text-muted);font-family:var(--font-mono);font-size:10px}.context-menu-item:hover{background:var(--surface-hover)}.context-menu-item:disabled{opacity:.45;cursor:not-allowed}.context-menu-item:disabled:hover{background:transparent;color:var(--text-primary)}.context-menu-item.danger:hover{background:var(--danger-bg);color:var(--danger)}.context-menu-item.danger:disabled:hover{background:transparent;color:var(--text-primary)}.context-menu-divider{height:1px;margin:4px 8px;background:var(--border-subtle)}.layer-rename-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;z-index:calc(var(--z-modal) + 1)}.layer-rename-panel{width:min(92vw,520px);overflow:hidden}.layer-rename-header{border-bottom:1px solid var(--border-subtle)}.layer-rename-body{padding:16px;display:flex;flex-direction:column;gap:10px}.layer-rename-label{font-size:11px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.layer-rename-input{width:100%;padding:8px 10px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-primary);color:var(--text-primary);font-size:13px}.layer-rename-input:focus{outline:none;border-color:var(--primary)}.layer-rename-tip{margin:0;color:var(--text-muted);font-size:12px}.layer-rename-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:4px}.layer-rename-btn{padding:8px 14px;border-radius:var(--radius-md);border:1px solid var(--border);background:var(--bg-secondary);color:var(--text-primary);font-size:13px;cursor:pointer;transition:all .15s ease}.layer-rename-btn:hover{background:var(--bg-tertiary);border-color:var(--border-strong)}.layer-rename-btn:disabled{opacity:.5;cursor:not-allowed}.layer-rename-btn:disabled:hover{background:var(--bg-secondary);border-color:var(--border)}.layer-rename-btn.primary{background:var(--primary-bg);border-color:var(--primary-border);color:var(--primary)}.layer-rename-btn.primary:hover:not(:disabled){background:var(--primary-border)}._floatingPanel_1n13i_3{position:fixed;background-color:var(--mica-bg);backdrop-filter:var(--mica-blur);-webkit-backdrop-filter:var(--mica-blur);border:1px solid var(--mica-border);border-radius:var(--radius-xl);box-shadow:var(--mica-shadow);display:flex;flex-direction:column;overflow:visible;-webkit-user-select:none;user-select:none;contain:layout style}._panelHeader_1n13i_33{height:40px;background:var(--bg-elevated);border-bottom:1px solid var(--border-subtle);display:flex;align-items:center;justify-content:space-between;padding:0 12px;cursor:grab;touch-action:none;flex-shrink:0;border-radius:var(--radius-xl) var(--radius-xl) 0 0}._panelHeader_1n13i_33:active{cursor:grabbing}._panelTitle_1n13i_61{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}._windowControls_1n13i_83{display:flex;gap:4px}._iconBtn_1n13i_93{background:transparent;border:none;color:var(--text-secondary);cursor:pointer;padding:6px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;transition:background-color .15s ease,color .15s ease}._iconBtn_1n13i_93:hover{background:var(--surface-hover);color:var(--text-primary)}._panelContent_1n13i_133{flex:1;overflow:auto;position:relative}._resizeHandle_1n13i_147{position:absolute;z-index:var(--z-popover)}._resize-n_1n13i_163{top:-4px;left:6px;right:6px;height:8px;cursor:n-resize}._resize-s_1n13i_177{bottom:-4px;left:6px;right:6px;height:8px;cursor:s-resize}._resize-e_1n13i_191{right:-4px;top:6px;bottom:6px;width:8px;cursor:e-resize}._resize-w_1n13i_205{left:-4px;top:6px;bottom:6px;width:8px;cursor:w-resize}._resize-ne_1n13i_221{top:-4px;right:-4px;width:12px;height:12px;cursor:ne-resize;z-index:var(--z-tooltip)}._resize-nw_1n13i_237{top:-4px;left:-4px;width:12px;height:12px;cursor:nw-resize;z-index:var(--z-tooltip)}._resize-se_1n13i_253{bottom:-4px;right:-4px;width:12px;height:12px;cursor:se-resize;z-index:var(--z-tooltip)}._resize-sw_1n13i_269{bottom:-4px;left:-4px;width:12px;height:12px;cursor:sw-resize;z-index:var(--z-tooltip)}.brush-panel-container{display:flex;flex-direction:row;height:100%;min-height:0;overflow:hidden;background-color:transparent}.brush-sidebar{width:140px;flex-shrink:0;display:flex;flex-direction:column;overflow:hidden;border-right:1px solid var(--border-subtle);background-color:transparent;padding:4px}.brush-sidebar-tabs{flex:1;min-height:0;overflow-y:auto;padding-bottom:8px}.brush-sidebar-actions{margin-top:auto;display:flex;flex-direction:column;gap:6px;padding:8px 0 2px;border-top:1px solid var(--border-subtle)}.brush-sidebar-action-btn{width:100%;padding:8px 10px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-primary);color:var(--text-primary);font-size:12px;font-weight:500;cursor:pointer;transition:all .15s ease}.brush-sidebar-action-btn:hover{background:var(--accent);border-color:var(--accent);color:#fff}.sidebar-item{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 12px;cursor:pointer;font-size:12px;color:var(--text-secondary);background:transparent;border:1px solid transparent;border-radius:var(--radius-lg);width:100%;text-align:left;-webkit-user-select:none;user-select:none;transition:background-color .15s ease,color .15s ease}.sidebar-item:hover{background-color:var(--bg-tertiary);color:var(--text-primary)}.sidebar-item.active{background-color:var(--primary-bg);color:var(--text-primary);border-color:var(--primary-border);box-shadow:none;font-weight:500}.sidebar-item.disabled{opacity:.5;cursor:default}.sidebar-item.disabled:hover{background-color:transparent;color:var(--text-secondary)}.sidebar-label{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-checkbox{width:14px;height:14px;cursor:pointer;accent-color:var(--accent);margin-right:2px;flex-shrink:0}.sidebar-checkbox-spacer{width:14px;margin-right:2px;flex-shrink:0}.brush-content{flex:1;overflow-y:auto;min-width:0}.brush-panel{display:flex;flex-direction:column;gap:16px;padding:8px 12px}.brush-panel-section{display:flex;flex-direction:column;gap:8px}.brush-panel-section h4{margin:0;padding:0 0 4px;font-size:11px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--border)}.brush-setting-row{--brush-panel-value-width: 64px;display:flex;align-items:center;gap:8px}.brush-setting-row.disabled{opacity:.55}.brush-setting-label{font-size:12px;color:var(--text-secondary);min-width:60px;flex-shrink:0}.brush-setting-row input[type=range]{flex:1;min-width:80px;cursor:pointer;accent-color:var(--accent)}.brush-setting-value{font-size:12px;color:var(--text-primary);width:var(--brush-panel-value-width);min-width:var(--brush-panel-value-width);text-align:right;flex:0 0 var(--brush-panel-value-width);line-height:20px;box-sizing:border-box}.brush-setting-value-input{width:var(--brush-panel-value-width);min-width:var(--brush-panel-value-width);flex:0 0 var(--brush-panel-value-width);height:20px;font-size:10px;line-height:16px;font-family:var(--font-mono);color:var(--text-primary);background:var(--bg-primary);border:1px solid var(--accent);border-radius:var(--radius-sm);padding:0 4px;text-align:right;outline:none;box-sizing:border-box}.brush-select{flex:1;padding:4px 8px;font-size:12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-primary);color:var(--text-primary);cursor:pointer}.brush-select:hover{border-color:var(--accent)}.brush-select:focus{outline:none;border-color:var(--accent)}.brush-panel .pressure-toggle{width:20px;height:20px;padding:0;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);font-size:10px;font-weight:600;background:var(--bg-primary);border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;transition:all .15s ease;flex-shrink:0}.brush-panel .pressure-toggle:hover{border-color:var(--accent);color:var(--text-primary)}.brush-panel .pressure-toggle.active{background:var(--accent);border-color:var(--accent);color:#fff}.abr-import-btn{width:100%;padding:8px 12px;font-size:12px;font-weight:500;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-primary);color:var(--text-primary);cursor:pointer;transition:all .15s ease}.abr-import-btn:hover:not(:disabled){background:var(--accent);border-color:var(--accent);color:#fff}.abr-import-btn:disabled{opacity:.5;cursor:not-allowed}.abr-error{font-size:11px;color:var(--danger);padding:4px 8px;background:var(--danger-bg);border-radius:var(--radius-sm);margin-top:4px}.abr-warning{font-size:11px;color:var(--warning);padding:4px 8px;background:var(--warning-bg);border-radius:var(--radius-sm);margin-top:4px}.abr-preset-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(64px,1fr));gap:6px;margin-top:8px}.abr-preset-grid.mini-grid .abr-preset-item{width:100%;min-height:52px;padding:2px}.abr-preset-item{display:flex;flex-direction:column;align-items:center;padding:4px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-secondary);cursor:pointer;transition:all .15s ease;overflow:hidden}.abr-preset-item:hover{border-color:var(--accent);transform:scale(1.05)}.abr-preset-texture{width:48px;height:48px;object-fit:contain;filter:none;flex-shrink:0}.procedural-brush-thumbnail{filter:none!important}.abr-preset-name{font-size:9px;color:var(--text-secondary);text-align:center;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:2px}.abr-preset-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:10px;color:var(--text-secondary);background:var(--bg-primary);border-radius:var(--radius-sm)}.abr-preset-item.selected{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent)}.abr-preset-round-icon{width:70%;height:70%;margin:auto;border-radius:50%;background:radial-gradient(circle,var(--text-primary) 0%,var(--text-primary) 40%,transparent 70%)}.section-header-row{display:flex;align-items:center;gap:8px;padding-bottom:4px;border-bottom:1px solid var(--border);margin-bottom:4px}.section-checkbox-label{display:flex;align-items:center;gap:6px;cursor:pointer}.section-checkbox-label input[type=checkbox]{width:14px;height:14px;cursor:pointer;accent-color:var(--accent)}.section-checkbox-label h4{margin:0;padding:0;border:none;font-size:11px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.dynamics-group{display:flex;flex-direction:column;gap:6px;padding:8px 0;border-bottom:1px solid var(--border-subtle)}.dynamics-group:last-child{border-bottom:none}.dynamics-group.disabled{opacity:.5;pointer-events:none}.control-source-row{display:flex;align-items:center;gap:8px;padding-left:68px}.control-source-label{font-size:11px;color:var(--text-tertiary);min-width:45px}.control-source-select{flex:1;padding:3px 6px;font-size:11px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-primary);color:var(--text-primary);cursor:pointer}.control-source-select:hover:not(:disabled){border-color:var(--accent)}.control-source-select:disabled{opacity:.6;cursor:not-allowed}.flip-group{flex-direction:row;gap:16px;padding:8px 0}.flip-checkbox{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text-secondary);cursor:pointer}.flip-checkbox input[type=checkbox]{width:14px;height:14px;cursor:pointer;accent-color:var(--accent)}.flip-checkbox input[type=checkbox]:disabled{cursor:not-allowed}.pattern-picker{position:relative;display:inline-block}.pattern-picker.disabled{opacity:.5;pointer-events:none}.pattern-picker-trigger{display:flex;align-items:center;gap:8px;padding:4px 8px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:4px;cursor:pointer;min-width:160px}.pattern-picker-trigger:hover{background:var(--bg-tertiary);border-color:var(--accent)}.pattern-picker-preview{flex-shrink:0;background:var(--bg-tertiary);border-radius:2px;overflow:hidden;display:flex;align-items:center;justify-content:center}.pattern-picker-empty{font-size:10px;color:var(--text-tertiary)}.pattern-picker-name{flex:1;text-align:left;font-size:12px;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pattern-picker-chevron{flex-shrink:0;color:var(--text-secondary)}.pattern-picker-dropdown{position:absolute;top:calc(100% + 4px);left:0;z-index:1000;min-width:280px;max-height:320px;background:var(--bg-primary);border:1px solid var(--border);border-radius:8px;box-shadow:0 8px 24px #0000004d;overflow:hidden;display:flex;flex-direction:column}.pattern-picker-search{display:flex;align-items:center;gap:8px;padding:8px 12px;border-bottom:1px solid var(--border)}.pattern-picker-search svg{flex-shrink:0;color:var(--text-tertiary)}.pattern-picker-search input{flex:1;background:none;border:none;outline:none;font-size:13px;color:var(--text-primary)}.pattern-picker-search input::placeholder{color:var(--text-tertiary)}.pattern-picker-grid{flex:1;overflow-y:auto;padding:8px;display:grid;grid-template-columns:repeat(auto-fill,minmax(48px,1fr));gap:6px}.pattern-grid-item{aspect-ratio:1;padding:2px;background:var(--bg-tertiary);border:2px solid transparent;border-radius:4px;cursor:pointer;transition:all .15s ease}.pattern-grid-item:hover{border-color:var(--accent);background:var(--bg-secondary)}.pattern-grid-item.selected{border-color:var(--accent);background:var(--primary-bg)}.pattern-grid-thumbnail{width:100%;height:100%;border-radius:2px;overflow:hidden;display:flex;align-items:center;justify-content:center}.pattern-grid-thumbnail.empty{background:var(--bg-secondary);color:var(--text-tertiary);font-size:20px}.pattern-picker-loading,.pattern-picker-empty-state{grid-column:1 / -1;padding:24px;text-align:center;color:var(--text-tertiary);font-size:12px;line-height:1.5}.pattern-picker-current-row-wrap{padding:8px;border-top:1px solid var(--border)}.pattern-picker-current-row-label{font-size:11px;color:var(--text-tertiary);margin-bottom:6px}.pattern-picker-current-row{width:100%;display:flex;align-items:center;gap:8px;background:var(--bg-tertiary);border:1px solid transparent;border-radius:4px;padding:6px;cursor:pointer;color:var(--text-primary)}.pattern-picker-current-row:hover{border-color:var(--accent);background:var(--bg-secondary)}.pattern-picker-current-row.selected{border-color:var(--accent);background:var(--primary-bg)}.pattern-picker-current-thumb{flex-shrink:0;border-radius:2px;overflow:hidden;background:var(--bg-primary)}.pattern-picker-current-name{flex:1;min-width:0;text-align:left;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pattern-preview-button{display:flex;align-items:center;justify-content:center;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:4px;cursor:pointer;overflow:hidden;transition:all .15s ease}.pattern-preview-button:hover{border-color:var(--accent)}.pattern-preview-add-icon{color:var(--text-tertiary)}.curves-panel{--curves-graph-size: 256px;display:flex;flex-direction:column;gap:12px;padding:14px 14px 12px;color:var(--text-primary);background:var(--bg-panel);min-height:390px;font-size:13px}.curves-panel__controls{display:flex;align-items:flex-end;justify-content:space-between;gap:12px}.curves-panel__field{display:flex;flex:1;min-width:0;flex-direction:column;gap:6px}.curves-panel__label{font-size:10px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--text-muted)}.curves-panel__select{height:34px;min-width:124px;padding:6px 10px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-primary);color:var(--text-primary);font-size:13px;cursor:pointer}.curves-panel__select option{color:var(--text-primary);background:var(--bg-primary)}.curves-panel__preview-toggle{display:inline-flex;align-items:center;gap:8px;margin-bottom:4px;color:var(--text-primary);font-size:13px}.curves-panel__preview-toggle input{width:14px;height:14px}.curves-panel__graph-wrap{width:calc(var(--curves-graph-size) + 12px);min-width:calc(var(--curves-graph-size) + 12px);flex:0 0 auto;margin:0 auto;border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:#2f3032;padding:6px}.curves-panel__graph{width:var(--curves-graph-size);height:var(--curves-graph-size);display:block;touch-action:none;cursor:crosshair}.curves-panel__bg{fill:#3b3c3f}.curves-panel__grid{stroke:#ffffff1f;stroke-width:1}.curves-panel__histogram{fill:#c2c2c247;stroke:none}.curves-panel__baseline{stroke:#ffffff3d;stroke-width:1}.curves-panel__curve{fill:none;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.curves-panel__curve--rgb{stroke:#f2f2f2}.curves-panel__curve--red{stroke:#f86060}.curves-panel__curve--green{stroke:#30cf67}.curves-panel__curve--blue{stroke:#4fa0ff}.curves-panel__curve--overlay{stroke-width:1.3;opacity:.92}.curves-panel__point{fill:#161616;stroke:#f1f1f1;stroke-width:1.2}.curves-panel__point--selected{fill:#fff;stroke:#111}.curves-panel__io{display:flex;justify-content:space-between;align-items:center;gap:12px;color:var(--text-secondary);font-size:12px;font-family:var(--font-mono)}.curves-panel__io-field{display:inline-flex;align-items:center;gap:6px}.curves-panel__io-input{width:68px;height:26px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-primary);color:var(--text-primary);font-size:12px;font-family:var(--font-mono);padding:2px 6px}.curves-panel__io-input:disabled{opacity:.55}.curves-panel__error{color:var(--danger-text);font-size:12px}.curves-panel__history-actions{display:flex;justify-content:flex-end;gap:6px}.curves-panel__actions{margin-top:auto;display:flex;justify-content:flex-end;gap:8px}.curves-panel__btn{min-width:76px;height:34px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-secondary);color:var(--text-primary);font-size:13px;cursor:pointer;transition:all .15s ease}.curves-panel__btn:disabled{opacity:.5;cursor:not-allowed}.curves-panel__icon-btn{width:34px;height:34px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-secondary);color:var(--text-secondary);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:all .15s ease}.curves-panel__icon-btn:hover:not(:disabled){background:var(--bg-tertiary);border-color:var(--border-strong);color:var(--text-primary)}.curves-panel__icon-btn:disabled{opacity:.5;cursor:not-allowed}.curves-panel__btn--ghost:hover:not(:disabled){background:var(--bg-tertiary);border-color:var(--border-strong)}.curves-panel__btn--primary{background:var(--primary-bg);border-color:var(--primary-border);color:var(--primary)}.curves-panel__btn--primary:hover:not(:disabled){background:var(--primary-border)}.history-panel{display:flex;flex-direction:column;gap:10px;height:100%;min-height:0;padding:12px;background:var(--bg-panel);color:var(--text-primary);font-size:13px}.history-panel__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.history-panel__item{border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--bg-secondary);transition:border-color .15s ease,background-color .15s ease,opacity .15s ease}.history-panel__item--current{border-color:var(--primary-border);background:var(--primary-bg)}.history-panel__item--future{opacity:.6}.history-panel__item--pending{opacity:.75}.history-panel__button{width:100%;display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:34px;border:none;background:transparent;color:var(--text-primary);font-size:13px;line-height:1.4;padding:7px 10px;text-align:left;cursor:pointer}.history-panel__button:hover:not(:disabled){background:var(--bg-tertiary)}.history-panel__button:disabled{cursor:wait}.history-panel__label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.history-panel__status{flex-shrink:0;color:var(--text-muted);font-size:11px}.history-panel__item--current .history-panel__status{color:var(--primary)}.history-panel__empty{height:100%;display:flex;align-items:center;justify-content:center;color:var(--text-muted);font-size:13px;padding:12px;background:var(--bg-panel)}.shortcut-keys-settings{gap:16px}.shortcut-keys-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.shortcut-keys-toolbar{display:inline-flex;align-items:center;gap:8px}.shortcut-keys-import-input{display:none}.shortcut-keys-search{width:100%;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-primary);color:var(--text-primary);padding:8px 10px;font-size:13px}.shortcut-keys-status{color:var(--success);font-size:12px}.shortcut-keys-global-error{color:var(--danger);font-size:12px}.shortcut-keys-table{display:flex;flex-direction:column;gap:14px}.shortcut-keys-group{display:flex;flex-direction:column;gap:8px}.shortcut-keys-group h4{margin:0;font-size:12px;letter-spacing:.04em;text-transform:uppercase;color:var(--text-secondary)}.shortcut-keys-row{display:grid;grid-template-columns:minmax(220px,1fr) minmax(260px,2fr);gap:12px;align-items:center;padding:10px 12px;border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--bg-secondary)}.shortcut-keys-row.editing{border-color:var(--primary-border);background:var(--primary-bg)}.shortcut-keys-command{display:flex;flex-direction:column;gap:4px}.shortcut-keys-command-title{color:var(--text-primary);font-size:13px}.shortcut-keys-command-id{color:var(--text-secondary);font-size:11px;font-family:Consolas,SFMono-Regular,Menlo,Monaco,monospace}.shortcut-keys-binding{display:flex;flex-direction:column;align-items:stretch;gap:10px}.shortcut-keys-binding-main{display:flex;align-items:center;justify-content:space-between;gap:10px}.shortcut-keys-chips{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap;min-height:30px}.shortcut-keys-empty{color:var(--text-secondary);font-size:12px}.shortcut-chip{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--border);border-radius:999px;background:var(--bg-primary);color:var(--text-primary);font-size:12px;padding:2px 8px;font-family:Consolas,SFMono-Regular,Menlo,Monaco,monospace}.shortcut-chip-editable{cursor:pointer}.shortcut-chip-replacing{border-color:var(--primary);background:color-mix(in srgb,var(--primary) 20%,var(--bg-primary));animation:shortcut-chip-pulse 1.6s ease-in-out infinite}.shortcut-chip button{border:none;background:transparent;color:var(--text-secondary);cursor:pointer;padding:0;line-height:1}.shortcut-keys-inline-actions{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap}.shortcut-keys-icon-btn{width:32px;height:32px;padding:0;display:inline-flex;align-items:center;justify-content:center;color:#f3f6fb!important}.shortcut-keys-icon-btn svg{width:15px!important;height:15px!important;display:block;flex:0 0 auto;stroke:currentColor!important;fill:none!important;stroke-width:2.35!important;color:currentColor!important}.shortcut-keys-icon-btn svg *{stroke:currentColor!important;fill:none!important}.shortcut-keys-icon-btn.primary,.shortcut-keys-icon-btn.danger{color:#fff!important}@keyframes shortcut-chip-pulse{0%{box-shadow:0 0 color-mix(in srgb,var(--primary) 45%,transparent)}50%{box-shadow:0 0 0 6px color-mix(in srgb,var(--primary) 0%,transparent)}to{box-shadow:0 0 color-mix(in srgb,var(--primary) 0%,transparent)}}@media (prefers-reduced-motion: reduce){.shortcut-chip-replacing{animation:none}}.shortcut-keys-edit-hint{color:var(--text-secondary);font-size:12px;line-height:1.4}.shortcut-keys-row-conflict{display:flex;flex-direction:column;gap:2px;color:var(--danger);font-size:12px}.shortcut-keys-row-conflict-title{font-weight:600}@media (max-width: 900px){.shortcut-keys-row{grid-template-columns:1fr}.shortcut-keys-binding-main{flex-direction:column;align-items:flex-start}}.settings-panel-content{height:100%;min-height:0;display:flex;flex-direction:column}.settings-body{display:flex;flex:1;min-height:0;overflow:hidden}.settings-sidebar{width:160px;flex-shrink:0;display:flex;flex-direction:column;padding:8px;border-right:1px solid var(--border-subtle);overflow-y:auto}.settings-sidebar-item{display:flex;align-items:center;gap:10px;padding:10px 14px;font-size:13px;color:var(--text-secondary);background:transparent;border:1px solid transparent;border-radius:var(--radius-lg);cursor:pointer;transition:all .15s ease;text-align:left;width:100%}.settings-sidebar-item:hover{background:var(--bg-tertiary);color:var(--text-primary)}.settings-sidebar-item.active{background:var(--primary-bg);color:var(--text-primary);border-color:var(--primary-border);font-weight:500}.settings-main{flex:1;min-width:0;overflow-x:hidden;overflow-y:auto;padding:20px;margin-right:8px}.settings-content{display:flex;flex-direction:column;gap:24px}.settings-section-title{font-size:18px;font-weight:600;color:var(--text-primary);margin:0 0 8px}.settings-section{display:flex;flex-direction:column;gap:12px}.settings-label{font-size:11px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.settings-description{font-size:13px;color:var(--text-secondary)}.settings-row{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:13px;color:var(--text-primary)}.color-grid{display:flex;flex-wrap:wrap;gap:8px;width:100%}.settings-color-swatch{width:36px;height:36px;border-radius:var(--radius-md);border:2px solid transparent;cursor:pointer;transition:all .15s ease;display:flex;align-items:center;justify-content:center;padding:0}.settings-color-swatch:hover{transform:scale(1.1);box-shadow:0 2px 8px #0000004d}.settings-color-swatch.selected{border-color:var(--text-primary);box-shadow:0 0 0 2px var(--bg-primary)}.settings-color-swatch .check-mark{color:#fff;font-size:16px;font-weight:700;text-shadow:0 1px 2px rgba(0,0,0,.5)}.toggle-switch{position:relative;display:inline-block;width:44px;height:24px;flex-shrink:0}.toggle-switch input{opacity:0;width:0;height:0}.toggle-slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:var(--bg-tertiary);border:1px solid var(--border);border-radius:12px;transition:all .2s ease}.toggle-slider:before{position:absolute;content:"";height:18px;width:18px;left:2px;bottom:2px;background-color:var(--text-secondary);border-radius:50%;transition:all .2s ease}.toggle-switch input:checked+.toggle-slider{background-color:var(--primary);border-color:var(--primary)}.toggle-switch input:checked+.toggle-slider:before{transform:translate(20px);background-color:#fff}.settings-select{padding:6px 10px;font-size:13px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-primary);color:var(--text-primary);cursor:pointer;min-width:150px}.settings-select:hover{border-color:var(--primary)}.settings-select:focus{outline:none;border-color:var(--primary)}.settings-number-input{padding:6px 10px;font-size:13px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-primary);color:var(--text-primary);min-width:120px}.settings-number-input:hover{border-color:var(--primary)}.settings-number-input:focus{outline:none;border-color:var(--primary)}.tablet-status-info{display:flex;flex-direction:column;gap:8px;padding:12px;background:var(--bg-tertiary);border-radius:var(--radius-md)}.tablet-status-info .status-row{display:flex;justify-content:space-between;font-size:12px}.tablet-status-info .status-row span:first-child{color:var(--text-secondary)}.tablet-status-info .status-row-warning span:first-child{color:var(--danger)}.tablet-status-info .status-row-warning span:last-child{color:var(--text-primary);max-width:70%;text-align:right;overflow-wrap:anywhere}.tablet-live-card{display:flex;flex-direction:column;gap:8px;padding:12px;border-radius:var(--radius-md);border:1px solid var(--border);background:var(--bg-tertiary)}.tablet-live-card .status-row{display:grid;grid-template-columns:168px minmax(0,1fr);align-items:center;gap:8px;font-size:12px;line-height:1.4}.tablet-live-card .status-row span:first-child{color:var(--text-secondary);white-space:nowrap}.tablet-live-card .status-row span:last-child{font-family:var(--font-mono);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:right}.tablet-live-empty{font-size:12px;line-height:1.45;color:var(--text-secondary)}.tablet-live-hint{margin-top:4px;padding-top:8px;border-top:1px solid var(--border-subtle);font-size:11px;color:var(--text-secondary)}.bridge-settings-input-row{justify-content:flex-start}.bridge-settings-port-input{width:min(220px,100%)}.bridge-settings-runtime{display:flex;flex-direction:column;gap:8px;padding:12px;border-radius:var(--radius-md);border:1px solid var(--border);background:var(--bg-tertiary)}.bridge-settings-runtime-row{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:12px}.bridge-settings-runtime-row span:first-child{color:var(--text-secondary)}.bridge-settings-status-pill{border-radius:var(--radius-full);border:1px solid var(--border);padding:2px 10px;font-size:11px;letter-spacing:.02em}.bridge-settings-status-pill--idle{color:var(--text-secondary);background:var(--bg-secondary)}.bridge-settings-status-pill--connected{color:#1f8a4c;background:#1f8a4c26;border-color:#1f8a4c59}.bridge-settings-status-pill--degraded{color:#b07700;background:#b077001f;border-color:#b0770052}.bridge-settings-status-pill--error{color:#c0392b;background:#c0392b1f;border-color:#c0392b52}.bridge-settings-meta-value{color:var(--text-primary);font-family:var(--font-mono)}.bridge-settings-error-message{margin:0;font-size:12px;color:#d06155}.settings-external-link-row{justify-content:flex-start}.settings-external-link-button{display:inline-flex;align-items:center;justify-content:center;text-decoration:none}.about-settings-card{display:flex;flex-direction:column;gap:8px;padding:12px;border-radius:var(--radius-md);border:1px solid var(--border);background:var(--bg-tertiary)}.about-settings-row{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:12px}.about-settings-row span:first-child{color:var(--text-secondary)}.about-settings-row span:last-child{color:var(--text-primary)}.about-settings-intro{margin:0;line-height:1.5}.about-settings-links{display:flex;flex-direction:column;align-items:flex-start;gap:8px}.settings-actions{display:flex;gap:8px}.settings-btn{padding:8px 16px;font-size:13px;font-weight:500;border-radius:var(--radius-md);cursor:pointer;transition:all .15s ease;border:1px solid var(--border);background:var(--bg-tertiary);color:var(--text-primary)}.settings-btn:hover{background:var(--bg-elevated);border-color:var(--border-strong)}.settings-btn.primary{background:var(--primary);border-color:var(--primary);color:#fff}.settings-btn.primary:hover{background:var(--primary-hover);border-color:var(--primary-hover)}.settings-btn.danger{background:var(--danger);border-color:var(--danger);color:#fff}.settings-btn.danger:hover{background:var(--danger-hover);border-color:var(--danger-hover)}.pressure-curve-section{--pressure-curve-content-width: min(256px, 100%);display:flex;flex-direction:column;gap:10px}.pressure-curve-editor{width:256px;height:auto;aspect-ratio:1 / 1;max-width:100%;align-self:flex-start;display:block;touch-action:none;-webkit-user-select:none;user-select:none;cursor:crosshair;border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:#2f3032}.pressure-curve-editor__bg{fill:#3b3c3f}.pressure-curve-editor__grid{stroke:#ffffff1f;stroke-width:1}.pressure-curve-editor__baseline{stroke:#ffffff3d;stroke-width:1}.pressure-curve-editor__curve{fill:none;stroke:#f2f2f2;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.pressure-curve-editor__point{fill:#161616;stroke:#f1f1f1;stroke-width:1.2}.pressure-curve-editor__point--selected{fill:#fff;stroke:#111}.pressure-curve-labels{display:flex;justify-content:space-between;width:var(--pressure-curve-content-width);font-size:12px;color:var(--text-secondary)}.pressure-curve-preset-row{display:flex;align-items:center;justify-content:space-between;width:var(--pressure-curve-content-width);gap:10px;font-size:12px;color:var(--text-secondary)}.pressure-curve-preset-row .settings-actions{flex-wrap:wrap}.settings-slider-block{display:flex;flex-direction:column;gap:12px}.settings-slider-row{display:flex;flex-direction:column;gap:6px;font-size:13px}.settings-slider-control{width:100%;height:4px;cursor:pointer;-webkit-appearance:none;appearance:none;background:var(--divider);border-radius:var(--radius-full);accent-color:var(--accent)}.settings-slider-control::-webkit-slider-runnable-track{height:4px;background:var(--divider);border-radius:var(--radius-full)}.settings-slider-control::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:14px;height:14px;margin-top:-5px;border:1px solid rgba(0,0,0,.35);border-radius:var(--radius-full);background:var(--accent);box-shadow:0 1px 2px #00000059}.settings-slider-control::-moz-range-track{height:4px;background:var(--divider);border-radius:var(--radius-full)}.settings-slider-control::-moz-range-thumb{width:14px;height:14px;border:1px solid rgba(0,0,0,.35);border-radius:var(--radius-full);background:var(--accent);box-shadow:0 1px 2px #00000059}.settings-slider-control:hover::-webkit-slider-thumb{filter:brightness(1.05)}.settings-slider-control:hover::-moz-range-thumb{filter:brightness(1.05)}.ai-generator-panel{display:flex;flex-direction:column;gap:12px;min-height:0;max-height:100%;overflow:auto;padding:12px;background:var(--bg-panel);color:var(--text-primary);font-size:12px}.ai-generator-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;padding:2px;border-radius:var(--radius-md);border:1px solid var(--border-subtle);background:var(--bg-secondary)}.ai-generator-tab-btn{height:30px;border-radius:var(--radius-sm);border:none;background:transparent;color:var(--text-secondary);font-size:12px;cursor:pointer}.ai-generator-tab-btn.active{background:var(--bg-primary);color:var(--text-primary)}.ai-generator-section{display:flex;flex-direction:column;gap:8px;padding:10px;border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--bg-secondary)}.ai-generator-section-title{font-size:11px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em}.ai-generator-mode{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.ai-generator-mode-btn{height:30px;border-radius:var(--radius-sm);border:1px solid var(--border);background:transparent;color:var(--text-secondary);cursor:pointer}.ai-generator-mode-btn.active{background:var(--primary-bg);border-color:var(--primary-border);color:var(--primary)}.ai-generator-field{display:flex;flex-direction:column;gap:4px}.ai-generator-field span{color:var(--text-secondary);font-size:11px}.ai-generator-field input,.ai-generator-field textarea,.ai-generator-field select,.ai-generator-preset-select{width:100%;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-primary);color:var(--text-primary);font-size:12px;padding:6px 8px}.ai-generator-field select,.ai-generator-preset-select{appearance:none;-webkit-appearance:none;-moz-appearance:none;padding-right:28px;background-image:linear-gradient(45deg,transparent 50%,var(--text-secondary) 50%),linear-gradient(135deg,var(--text-secondary) 50%,transparent 50%);background-position:calc(100% - 13px) calc(50% - 2px),calc(100% - 8px) calc(50% - 2px);background-size:5px 5px,5px 5px;background-repeat:no-repeat}.ai-generator-field select:hover,.ai-generator-preset-select:hover{border-color:var(--primary)}.ai-generator-field select:focus,.ai-generator-preset-select:focus{outline:none;border-color:var(--primary)}.ai-generator-field select option,.ai-generator-preset-select option{background:var(--bg-primary);color:var(--text-primary)}.ai-generator-field textarea{resize:vertical;min-height:92px}.ai-generator-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.ai-generator-switch{display:flex;align-items:center;gap:6px;color:var(--text-secondary)}.ai-generator-ratio-row{display:grid;grid-template-columns:1fr auto;gap:6px}.ai-generator-btn{height:30px;padding:0 10px;border-radius:var(--radius-sm);border:1px solid var(--border);background:transparent;color:var(--text-primary);display:inline-flex;align-items:center;justify-content:center;gap:6px;cursor:pointer}.ai-generator-btn:hover:not(:disabled){background:var(--surface-hover)}.ai-generator-btn:disabled{opacity:.6;cursor:wait}.ai-generator-btn.primary{border-color:var(--primary-border);background:var(--primary-bg);color:var(--primary)}.ai-generator-btn.ghost{background:transparent}.ai-generator-btn.danger{color:#ef8080}.ai-generator-preset-row,.ai-generator-provider-add{display:grid;grid-template-columns:1fr;gap:8px}.ai-generator-provider-main-row{display:grid;grid-template-columns:1fr auto;gap:6px;align-items:end}.ai-generator-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.ai-generator-actions--preset{grid-template-columns:repeat(4,minmax(0,1fr))}.ai-generator-meta{font-size:11px;color:var(--text-secondary)}.ai-generator-connection{border-radius:var(--radius-sm);border:1px solid var(--border-subtle);background:var(--bg-primary);color:var(--text-secondary);padding:6px 8px;font-size:11px;word-break:break-word}.ai-generator-connection--testing{border-color:var(--primary-border);color:var(--text-primary)}.ai-generator-connection--success{border-color:#3a8f5a;color:#8ee8ad}.ai-generator-connection--error{border-color:#9e4040;color:#ff9f9f}.ai-generator-debug-row{display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px;align-items:center}.ai-generator-debug-path{display:block;min-width:0;padding:6px 8px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-primary);color:var(--text-secondary);font-size:11px;line-height:1.2;white-space:normal;word-break:break-all}.toast-layer{position:fixed;top:16px;right:16px;display:flex;flex-direction:column;gap:8px;z-index:10000;pointer-events:none}.toast{min-width:220px;max-width:360px;padding:10px 12px;background:#18181aeb;color:#f2f2f2;border:1px solid rgba(255,255,255,.08);border-left:3px solid var(--toast-accent, #3b82f6);border-radius:8px;box-shadow:0 6px 16px #00000059;font-size:13px;line-height:1.3;letter-spacing:.2px;animation:toast-in .16s ease-out}.toast--error{--toast-accent: #ef4444}.toast--info{--toast-accent: #3b82f6}.toast--success{--toast-accent: #22c55e}@keyframes toast-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 480px){.toast-layer{left:12px;right:12px}.toast{width:100%;max-width:none}}:root{--mica-bg: rgba(20, 20, 25, .8);--mica-bg-solid: #1e1e23;--mica-blur: blur(20px) saturate(120%);--mica-border: rgba(255, 255, 255, .08);--mica-shadow: 0 4px 30px rgba(0, 0, 0, .3);--mica-shadow-lg: 0 8px 40px rgba(0, 0, 0, .4);--primary: #137fec;--primary-hover: #1a8fff;--primary-active: #0d6ecc;--primary-bg: rgba(19, 127, 236, .2);--primary-border: rgba(19, 127, 236, .4);--bg-primary: #0f1318;--bg-secondary: #111a22;--bg-tertiary: rgba(255, 255, 255, .05);--bg-elevated: rgba(255, 255, 255, .08);--app-bg: var(--bg-primary);--surface-color: var(--mica-bg-solid);--surface-hover: rgba(255, 255, 255, .1);--border-color: var(--mica-border);--text-primary: #ffffff;--text-secondary: #9ca3af;--text-muted: #6b7280;--text-disabled: #4b5563;--accent: var(--primary);--accent-hover: var(--primary-hover);--danger: #ef4444;--danger-hover: #f87171;--success: #22c55e;--warning: #f59e0b;--border: var(--mica-border);--border-subtle: rgba(255, 255, 255, .05);--border-strong: rgba(255, 255, 255, .12);--divider: rgba(255, 255, 255, .1);--radius-sm: 4px;--radius-md: 6px;--radius-lg: 8px;--radius-xl: 10px;--radius-full: 9999px;--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono: "JetBrains Mono", "Fira Code", Consolas, monospace;--z-canvas: 0;--z-panels: 40;--z-header: 50;--z-overlay: 1000;--z-modal: 2000;--z-dropdown: 3000;--z-popover: 4000;--z-tooltip: 5000;--danger-bg: rgba(239, 68, 68, .1);--success-bg: rgba(34, 197, 94, .1);--warning-bg: rgba(245, 158, 11, .1);--pattern-light: #ffffff;--pattern-dark: #e5e5e5}*{margin:0;padding:0;box-sizing:border-box}html,body,#root{width:100%;height:100%;overflow:hidden}body{background:var(--app-bg);color:var(--text-primary);font-family:var(--font-sans);font-size:14px;line-height:1.5;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.app{display:flex;flex-direction:column;width:100%;height:100%}.workspace{display:flex;flex:1;overflow:hidden}.loading{display:flex;align-items:center;justify-content:center;width:100%;height:100%;font-size:18px;color:var(--text-secondary)}::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#fff3;border-radius:var(--radius-sm)}::-webkit-scrollbar-thumb:hover{background:#ffffff4d}button{background:transparent;color:var(--text-primary);border:none;border-radius:var(--radius-md);padding:6px 12px;cursor:pointer;font-size:13px;font-family:inherit;outline:none;transition:background-color .15s ease,color .15s ease}button:hover{background:var(--surface-hover)}button:active{background:var(--bg-elevated)}button:disabled{opacity:.5;cursor:not-allowed}input[type=text],input[type=number]{background:var(--bg-primary);color:var(--text-primary);border:1px solid var(--border);border-radius:var(--radius-sm);padding:6px 10px;font-size:13px;font-family:inherit}input:focus{outline:none;border-color:var(--primary)}.mica-panel{background-color:var(--mica-bg);backdrop-filter:var(--mica-blur);-webkit-backdrop-filter:var(--mica-blur);border:1px solid var(--mica-border);box-shadow:var(--mica-shadow);border-radius:var(--radius-xl)}.mica-panel-header{height:40px;background:var(--bg-elevated);border-bottom:1px solid var(--border-subtle);display:flex;align-items:center;justify-content:space-between;padding:0 12px}.mica-panel-header h2,.mica-panel-header h3{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-primary)}.icon-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;background:transparent;border:none;border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;transition:background-color .15s ease,color .15s ease}.icon-btn:hover{background:var(--surface-hover);color:var(--text-primary)}.icon-btn.active{background:var(--primary-bg);color:var(--primary)}.tool-btn-fluent{position:relative;display:flex;align-items:center;justify-content:center;width:40px;height:40px;padding:0;background:transparent;border:none;border-radius:var(--radius-lg);color:var(--text-secondary);cursor:pointer;transition:background-color .15s ease,color .15s ease}.tool-btn-fluent:hover{background:var(--surface-hover);color:var(--text-primary)}.tool-btn-fluent.active{background:var(--primary-bg);color:var(--primary)}.tool-btn-fluent.active:before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:2px;height:24px;background:var(--primary);border-radius:0 var(--radius-full) var(--radius-full) 0}.mica-divider{width:24px;height:1px;background:var(--divider);margin:4px auto}
