.toolbar{display:flex;align-items:center;gap:5px;height:var(--toolbar-height);padding:0 var(--sp-3);background:var(--bg-panel);border-bottom:1px solid var(--border);flex-shrink:0;position:relative;z-index:300}.toolbar-logo{display:flex;align-items:center;gap:7px;margin-right:var(--sp-2);flex-shrink:0}.logo-mark{color:var(--accent);font-size:17px;line-height:1}.logo-text{font-family:var(--font-mono);font-size:var(--text-xs);font-weight:700;color:var(--text-primary);letter-spacing:2.5px}.toolbar-scene-name{font-family:var(--font-mono);font-size:var(--text-2xs);color:var(--text-ghost);padding:0 var(--sp-3);border-left:1px solid var(--border-dim);border-right:1px solid var(--border-dim);white-space:nowrap;flex-shrink:0}.toolbar-group{display:flex;align-items:center;gap:2px;flex-shrink:0}.shape-group{gap:2px}.group-label{font-family:var(--font-mono);font-size:8px;color:var(--text-ghost);letter-spacing:1.5px;padding-right:3px}.toolbar-divider{width:1px;height:22px;background:var(--border-dim);margin:0 3px;flex-shrink:0}.toolbar-spacer{flex:1}.toolbar-btn{display:flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:var(--radius-xs);color:var(--text-tertiary);font-size:var(--text-xs);font-family:var(--font-mono);font-weight:700;transition:all var(--dur-fast) var(--ease-out)}.toolbar-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.toolbar-btn.active{background:var(--accent-glow);color:var(--accent);box-shadow:0 0 0 1px var(--accent-dim) inset}.toolbar-btn.danger:hover:not(:disabled){background:#ff55771f;color:var(--danger)}.toolbar-btn:disabled{opacity:.3;cursor:not-allowed}.shape-btn{width:34px;font-size:9px;letter-spacing:.5px}.file-btn{width:auto;gap:5px;padding:0 var(--sp-3);font-size:var(--text-xs);font-family:var(--font-body);font-weight:600}.file-btn.accent{background:var(--accent);color:#fff;border-radius:var(--radius-xs)}.file-btn.accent:hover{background:var(--accent-dim)}.mode-group{gap:1px;background:var(--bg-elevated);border-radius:var(--radius-sm);padding:2px}.mode-btn{padding:3px 10px;font-size:var(--text-2xs);font-family:var(--font-mono);font-weight:700;letter-spacing:.8px;color:var(--text-ghost);border-radius:var(--radius-xs);text-transform:uppercase;transition:all var(--dur-fast)}.mode-btn:hover{color:var(--text-secondary)}.mode-btn--active{background:var(--accent-glow);color:var(--accent);box-shadow:0 0 0 1px var(--accent-ring) inset}.view-group{gap:1px;background:var(--bg-elevated);border-radius:var(--radius-sm);padding:2px}.view-btn{width:auto;padding:3px 8px;font-size:9px;font-family:var(--font-mono);font-weight:700;letter-spacing:.5px;color:var(--text-ghost);border-radius:var(--radius-xs)}.view-btn:hover{color:var(--text-secondary);background:var(--bg-hover)}.view-btn.active{background:var(--accent-glow);color:var(--accent);box-shadow:0 0 0 1px var(--accent-ring) inset}.export-wrap,.export-btn{position:relative}.export-dropdown{position:absolute;top:calc(100% + 6px);right:0;width:220px;background:var(--bg-float);border:1px solid var(--border-mid);border-radius:var(--radius);box-shadow:var(--shadow-lg);z-index:200;padding:4px;animation:exportDropIn .15s var(--ease-out)}@keyframes exportDropIn{0%{opacity:0;transform:translateY(-4px)}}.export-dropdown-title{font-family:var(--font-mono);font-size:9px;font-weight:700;letter-spacing:1.5px;color:var(--text-ghost);padding:6px 10px 4px;text-transform:uppercase}.export-option{display:flex;flex-direction:column;gap:1px;width:100%;padding:7px 10px;text-align:left;border-radius:var(--radius-xs);cursor:pointer;transition:background .1s}.export-option:hover{background:var(--bg-hover)}.export-option-label{font-size:12px;font-weight:600;color:var(--text-primary)}.export-option-tip{font-size:10px;color:var(--text-tertiary);font-family:var(--font-mono);letter-spacing:.3px}.user-group{gap:6px}.user-badge{display:flex;align-items:center;gap:6px;padding:3px 10px 3px 3px;background:var(--bg-elevated);border:1px solid var(--border-dim);border-radius:20px}.user-avatar{width:22px;height:22px;border-radius:50%;background:var(--accent-glow);border:1px solid var(--accent-ring);color:var(--accent);font-family:var(--font-mono);font-size:10px;font-weight:700;display:flex;align-items:center;justify-content:center}.user-name{font-family:var(--font-mono);font-size:10px;color:var(--text-tertiary);letter-spacing:.3px}.logout-btn{width:28px!important;height:28px!important;font-size:14px!important;color:var(--text-ghost)!important;border-radius:var(--radius-xs)}.logout-btn:hover{color:var(--danger)!important;background:#ff55771a!important}.viewport{flex:1;position:relative;overflow:hidden;background:var(--bg-primary);cursor:default}.viewport canvas{display:block}.viewport-hint{position:absolute;bottom:12px;left:50%;transform:translate(-50%);font-family:var(--font-mono);font-size:10px;color:var(--text-muted);background:#0a0a0fb3;padding:4px 12px;border-radius:20px;border:1px solid var(--border);pointer-events:none;letter-spacing:.5px}.snap-toggle{position:absolute;top:12px;left:12px;z-index:10;display:flex;align-items:center;gap:6px;padding:5px 12px;background:#111118d1;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-muted);font-family:var(--font-mono);font-size:10px;font-weight:700;letter-spacing:.5px;cursor:pointer;transition:all .15s}.snap-toggle:hover{border-color:var(--border-bright);color:var(--text-primary)}.snap-toggle--on{border-color:#43e97b;color:#43e97b;background:#43e97b14;box-shadow:0 0 10px #43e97b26}.snap-icon{font-size:14px;line-height:1}.hint-snap{margin-left:12px;color:#43e97b;font-family:var(--font-mono)}.view-label{position:absolute;top:12px;left:50%;transform:translate(-50%);z-index:10;font-family:var(--font-mono);font-size:10px;font-weight:700;letter-spacing:2px;color:var(--accent);background:#111118d1;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);padding:4px 14px;border-radius:var(--radius-sm);border:1px solid var(--accent-ring);pointer-events:none}.measure-badge{position:absolute;top:12px;left:50%;transform:translate(-50%);z-index:10;font-family:var(--font-mono);font-size:10px;font-weight:700;letter-spacing:1.5px;color:#4aea8a;background:#4aea8a14;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);padding:4px 14px;border-radius:var(--radius-sm);border:1px solid rgba(74,234,138,.3);pointer-events:none;box-shadow:0 0 12px #4aea8a1a}.hint-measure{margin-left:12px;color:#4aea8a;font-family:var(--font-mono)}.left-panel{width:var(--panel-width);background:var(--bg-panel);border-right:1px solid var(--border);display:flex;flex-direction:column;overflow:hidden;flex-shrink:0}.panel-section{display:flex;flex-direction:column;border-bottom:1px solid var(--border);flex-shrink:0}.panel-section--flex{flex:1;min-height:0;overflow:hidden}.panel-header{display:flex;align-items:center;justify-content:space-between;padding:7px 12px;background:var(--bg-secondary);flex-shrink:0}.panel-count{font-family:var(--font-mono);font-size:10px;color:var(--accent);background:var(--accent-glow);padding:1px 6px;border-radius:10px}.outliner-list{overflow-y:auto;max-height:200px;padding:3px}.empty-state{display:flex;flex-direction:column;align-items:center;padding:18px 12px;gap:3px}.empty-state span{font-size:11px;color:var(--text-muted)}.empty-hint{font-size:10px;opacity:.6;text-align:center}.outliner-item{display:flex;align-items:center;gap:6px;padding:5px 8px;border-radius:var(--radius-sm);cursor:pointer;transition:background .1s}.outliner-item:hover{background:var(--bg-hover)}.outliner-item.selected{background:var(--accent-glow);box-shadow:0 0 0 1px var(--accent-dim) inset}.outliner-item.hidden{opacity:.4}.item-name{flex:1;font-size:12px;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.item-actions{display:flex;gap:2px;opacity:0;transition:opacity .1s}.outliner-item:hover .item-actions,.outliner-item.selected .item-actions{opacity:1}.item-btn{display:flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:3px;color:var(--text-muted);transition:all .1s;background:none;border:none;cursor:pointer}.item-btn:hover{background:var(--bg-elevated);color:var(--text-primary)}.item-btn.danger:hover{background:#ff4d6d26;color:var(--danger)}.shape-grid{display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:8px}.shape-add-btn{display:flex;align-items:center;gap:7px;padding:6px 10px;border-radius:var(--radius-sm);background:var(--bg-elevated);color:var(--text-secondary);font-size:11px;font-family:var(--font-sans);border:1px solid transparent;cursor:pointer;transition:all .15s}.shape-add-btn:hover{background:var(--accent-glow);color:var(--accent);border-color:var(--accent-dim)}.asset-search-wrap{position:relative;display:flex;align-items:center;padding:7px 10px;border-bottom:1px solid var(--border);flex-shrink:0}.asset-search-icon{position:absolute;left:20px;color:var(--text-muted);pointer-events:none}.asset-search{width:100%;padding:5px 24px 5px 22px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);font-size:11px;font-family:var(--font-sans);outline:none;transition:border-color .15s}.asset-search:focus{border-color:var(--accent)}.asset-search::placeholder{color:var(--text-muted)}.asset-search-clear{position:absolute;right:16px;display:flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:50%;background:var(--bg-hover);color:var(--text-muted);border:none;cursor:pointer}.asset-search-clear:hover{color:var(--text-primary)}.vl-outer{flex:1;overflow-y:auto;overflow-x:hidden;min-height:0;height:100%}.vl-outer::-webkit-scrollbar{width:4px}.vl-outer::-webkit-scrollbar-track{background:transparent}.vl-outer::-webkit-scrollbar-thumb{background:var(--border-bright);border-radius:2px}.asset-row{display:flex;align-items:center;gap:8px;padding:0 10px;cursor:pointer;border-bottom:1px solid var(--border);box-sizing:border-box;transition:background .08s;-webkit-user-select:none;user-select:none}.asset-row:hover{background:var(--bg-hover)}.asset-row:focus-visible{outline:1px solid var(--accent);outline-offset:-1px}.asset-row--flash{animation:assetFlash .75s ease forwards}@keyframes assetFlash{0%{background:#6c63ff47}to{background:transparent}}.asset-row__icon{width:26px;height:26px;border-radius:5px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.asset-row__info{flex:1;display:flex;flex-direction:column;gap:2px;overflow:hidden}.asset-row__name{font-size:11px;font-weight:500;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.asset-row__params{font-family:var(--font-mono);font-size:9px;color:var(--text-muted)}.panel-header--toggle{cursor:pointer;-webkit-user-select:none;user-select:none;transition:background var(--dur-fast)}.panel-header--toggle:hover{background:var(--bg-hover)}.panel-chevron{font-size:11px;color:var(--text-ghost);transition:transform .15s var(--ease-out);display:inline-block;width:12px;flex-shrink:0}.panel-chevron--open{transform:rotate(90deg)}.panel-toggle-hint{font-family:var(--font-mono);font-size:11px;font-weight:700;color:var(--text-ghost);margin-left:auto;width:14px;text-align:center;flex-shrink:0}.csg-panel{border-bottom:1px solid var(--border)}.csg-badge{font-family:var(--font-mono);font-size:9px;color:#ff9a3c;background:#ff9a3c1f;border:1px solid rgba(255,154,60,.3);padding:2px 7px;border-radius:10px;letter-spacing:.5px}.csg-body{padding:10px 12px;display:flex;flex-direction:column;gap:8px}.csg-hint{font-size:11px;color:var(--text-muted);line-height:1.5;padding:6px 8px;background:var(--bg-elevated);border-radius:var(--radius-sm);border-left:2px solid var(--border-bright)}.csg-slots{display:flex;flex-direction:column;gap:4px}.csg-slot{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-sm);padding:8px 10px;display:flex;flex-direction:column;gap:5px;transition:border-color .15s}.csg-slot.filled{border-color:#6c63ff80;background:#6c63ff0d}.csg-slot.cutter-filled{border-color:#ff4d6d80;background:#ff4d6d0d}.slot-label-row{display:flex;align-items:center;gap:5px}.slot-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}.base-dot{background:var(--accent)}.cutter-dot{background:var(--danger)}.slot-label{font-family:var(--font-mono);font-size:9px;font-weight:700;letter-spacing:1px;color:var(--text-secondary)}.slot-hint{font-size:9px;color:var(--text-muted);margin-left:auto}.slot-value{display:flex;align-items:center;gap:6px}.slot-obj-name{font-size:12px;font-weight:500;color:var(--text-primary)}.slot-obj-type{font-family:var(--font-mono);font-size:9px;color:var(--text-muted);background:var(--bg-hover);padding:1px 5px;border-radius:3px}.slot-empty{font-size:11px;color:var(--text-muted);font-style:italic}.slot-btn{padding:4px 8px;font-size:11px;font-family:var(--font-sans);border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-hover);color:var(--text-secondary);cursor:pointer;transition:all .15s;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.base-btn:hover:not(:disabled){border-color:var(--accent-dim);color:var(--accent);background:var(--accent-glow)}.cutter-btn:hover:not(:disabled){border-color:#ff4d6d80;color:var(--danger);background:#ff4d6d1a}.slot-btn.disabled,.slot-btn:disabled{opacity:.4;cursor:not-allowed}.csg-operator{display:flex;align-items:center;justify-content:center;font-size:18px;color:var(--text-muted);height:16px;line-height:1}.csg-error{display:flex;align-items:flex-start;gap:6px;font-size:11px;color:var(--danger);background:#ff4d6d14;border:1px solid rgba(255,77,109,.25);border-radius:var(--radius-sm);padding:6px 8px;line-height:1.4}.csg-working{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--warning);background:#f9c74f14;border:1px solid rgba(249,199,79,.2);border-radius:var(--radius-sm);padding:6px 8px}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.spin{animation:spin 1s linear infinite}.csg-actions{display:flex;gap:5px;margin-top:2px}.csg-btn{display:flex;align-items:center;gap:5px;padding:6px 10px;border-radius:var(--radius-sm);font-size:11px;font-family:var(--font-sans);font-weight:500;cursor:pointer;border:1px solid transparent;transition:all .15s}.clear-btn{background:var(--bg-elevated);color:var(--text-secondary);border-color:var(--border)}.clear-btn:hover:not(:disabled){border-color:var(--border-bright);color:var(--text-primary)}.undo-btn{background:var(--bg-elevated);color:var(--text-secondary);border-color:var(--border)}.undo-btn:hover:not(:disabled){border-color:var(--warning);color:var(--warning);background:#f9c74f14}.subtract-btn{flex:1;justify-content:center;background:#ff9a3c26;color:#ff9a3c;border-color:#ff9a3c66;font-weight:600}.subtract-btn:hover:not(:disabled){background:#ff9a3c40;border-color:#ff9a3c}.csg-btn.disabled,.csg-btn:disabled{opacity:.35;cursor:not-allowed}.csg-last{display:flex;align-items:center;gap:6px;font-size:10px;color:var(--success);padding:4px 0}.csg-last strong{font-weight:600}.csg-technical{display:flex;align-items:center;gap:6px}.tech-label{font-family:var(--font-mono);font-size:9px;color:var(--text-muted);background:var(--bg-hover);padding:1px 5px;border-radius:3px;flex-shrink:0}.tech-value{font-family:var(--font-mono);font-size:9px;color:#3a3a5c}.pipe-controls{padding:10px 12px;display:flex;flex-direction:column;gap:10px;border-bottom:1px solid var(--border)}.pc-header{display:flex;align-items:center;gap:7px}.pc-icon{font-size:9px;color:#6c63ff;line-height:1}.pc-title{font-family:var(--font-mono);font-size:9px;font-weight:700;letter-spacing:1.5px;color:var(--text-muted)}.ps-row{display:flex;flex-direction:column;gap:3px}.ps-header{display:flex;justify-content:space-between;align-items:center}.ps-label{font-size:11px;color:var(--text-secondary)}.ps-val{font-family:var(--font-mono);font-size:11px;font-weight:700;display:flex;align-items:baseline;gap:2px;transition:color .15s}.ps-unit{font-size:8px;font-weight:400;color:var(--text-muted)}.ps-track{position:relative;height:4px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:4px}.ps-fill{position:absolute;top:0;left:0;height:100%;border-radius:4px;pointer-events:none;opacity:.75;transition:width .04s,background .2s}.ps-range{position:absolute;top:50%;left:0;width:100%;transform:translateY(-50%);margin:0;padding:0;height:16px;background:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;outline:none;z-index:1;accent-color:var(--accent)}.ps-bounds{display:flex;justify-content:space-between;font-family:var(--font-mono);font-size:8px;color:var(--text-muted);opacity:.5}:root{--warning-dim: rgba(249,199,79,.4);--warning: #f9c74f;--success: #43e97b}.pc-wall{display:flex;align-items:center;justify-content:space-between;padding:6px 8px;background:var(--bg-elevated);border-radius:var(--radius-sm);border:1px solid var(--border);transition:border-color .2s,background .2s}.pc-wall--warn{border-color:#f9c74f66;background:#f9c74f0f}.pc-wall-label{font-size:11px;color:var(--text-secondary)}.pc-wall-value{font-family:var(--font-mono);font-size:11px;font-weight:700;display:flex;align-items:center;gap:6px;transition:color .2s}.pc-wall-badge{font-size:8px;background:#f9c74f26;color:var(--warning);border:1px solid rgba(249,199,79,.4);border-radius:3px;padding:1px 5px;letter-spacing:.5px}.pc-dims{display:flex;align-items:center;justify-content:center;gap:6px;padding:5px 0}.pc-dim{display:flex;flex-direction:column;align-items:center;gap:1px}.pc-dim span{font-family:var(--font-mono);font-size:8px;color:var(--text-muted);letter-spacing:1px}.pc-dim strong{font-family:var(--font-mono);font-size:12px;color:var(--text-primary);font-weight:700}.pc-dim-sep{font-size:12px;color:var(--text-muted);padding-top:10px}.right-panel{width:var(--panel-width);background:var(--bg-panel);border-left:1px solid var(--border);display:flex;flex-direction:column;overflow-y:auto;overflow-x:hidden;flex-shrink:0}.panel-section{border-bottom:1px solid var(--border)}.panel-header{display:flex;align-items:center;justify-content:space-between;padding:7px 12px;background:var(--bg-secondary);position:sticky;top:0;z-index:1}.panel-title{font-family:var(--font-mono);font-size:9px;font-weight:700;letter-spacing:1.5px;color:var(--text-muted)}.type-badge{font-family:var(--font-mono);font-size:9px;color:var(--accent);background:var(--accent-glow);padding:2px 7px;border-radius:10px;text-transform:uppercase;letter-spacing:.5px}.panel-body{padding:10px 12px;display:flex;flex-direction:column;gap:8px}.field-row{display:flex;align-items:center;gap:8px}.field-row label{font-size:11px;color:var(--text-secondary);width:55px;flex-shrink:0}.text-input{flex:1;padding:4px 8px;font-size:12px}.select-input{flex:1;padding:4px 8px;font-size:12px;cursor:pointer}.vec3-row{display:flex;flex-direction:column;gap:4px}.vec3-label{font-size:10px;color:var(--text-muted);font-family:var(--font-mono);letter-spacing:.5px}.vec3-inputs{display:flex;gap:4px}.vec3-field{flex:1;display:flex;align-items:center;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden}.vec3-field input{flex:1;border:none;background:transparent;padding:4px;font-size:11px;font-family:var(--font-mono);width:0;min-width:0}.axis-tag{padding:0 5px;font-family:var(--font-mono);font-size:10px;font-weight:700}.axis-x{color:#ff4d6d}.axis-y{color:#43e97b}.axis-z{color:#4fc3f7}.reset-btn{padding:5px 10px;border-radius:var(--radius-sm);background:var(--bg-elevated);color:var(--text-secondary);font-size:11px;border:1px solid var(--border);transition:all .15s;align-self:flex-start}.reset-btn:hover{border-color:var(--border-bright);color:var(--text-primary)}.color-row{align-items:center}.color-picker-wrap{display:flex;align-items:center;gap:8px}.color-picker-wrap input[type=color]{width:32px;height:28px;padding:2px;cursor:pointer;border-radius:var(--radius-sm)}.color-hex{font-family:var(--font-mono);font-size:11px;color:var(--text-secondary)}.slider-row{display:flex;align-items:center;gap:8px}.slider-row label{font-size:11px;color:var(--text-secondary);width:65px;flex-shrink:0}.slider-row input[type=range]{flex:1;accent-color:var(--accent);height:4px;background:transparent;cursor:pointer}.slider-val{font-family:var(--font-mono);font-size:10px;color:var(--text-muted);width:28px;text-align:right}.toggle-row{display:flex;align-items:center;gap:8px}.toggle-row label:first-child{font-size:11px;color:var(--text-secondary);flex:1}.toggle{position:relative;display:inline-block;width:34px;height:18px;cursor:pointer}.toggle input{opacity:0;width:0;height:0;position:absolute}.toggle-slider{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--bg-elevated);border:1px solid var(--border);border-radius:18px;transition:.2s}.toggle-slider:before{content:"";position:absolute;width:12px;height:12px;left:2px;top:50%;transform:translateY(-50%);background:var(--text-muted);border-radius:50%;transition:.2s}.toggle input:checked+.toggle-slider{background:var(--accent-glow);border-color:var(--accent-dim)}.toggle input:checked+.toggle-slider:before{transform:translateY(-50%) translate(16px);background:var(--accent)}.no-selection{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:32px 16px;color:var(--text-muted)}.no-sel-icon{font-size:32px;color:var(--border-bright);line-height:1}.no-selection span{font-size:12px;color:var(--text-muted)}.no-sel-hint{font-size:11px;text-align:center;opacity:.6;line-height:1.5}.scene-settings{margin-top:auto;border-top:1px solid var(--border);border-bottom:none}.csg-result-info{font-size:11px;color:var(--text-muted);line-height:1.5;padding:6px 8px;background:var(--bg-elevated);border-radius:var(--radius-sm);border-left:2px solid #ff9a3c}.param-row{display:flex;flex-direction:column;gap:3px;margin-bottom:6px}.param-row:last-child{margin-bottom:0}.param-header{display:flex;justify-content:space-between;align-items:center}.param-label{font-size:11px;color:var(--text-secondary);font-family:var(--font-mono);font-size:10px;letter-spacing:.3px}.param-value{font-family:var(--font-mono);font-size:10px;font-weight:700}.param-track{position:relative;height:4px;background:var(--bg-elevated);border-radius:4px;overflow:visible;border:1px solid var(--border)}.param-fill{position:absolute;top:0;left:0;height:100%;border-radius:4px;pointer-events:none;opacity:.7;transition:width .04s}.param-range{position:absolute;top:50%;left:0;width:100%;transform:translateY(-50%);margin:0;padding:0;background:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;height:16px;outline:none;z-index:1}.param-minmax{display:flex;justify-content:space-between;font-family:var(--font-mono);font-size:8px;color:var(--text-muted);opacity:.5}.csg-param-note{font-size:11px;color:var(--text-muted);background:var(--bg-elevated);border-left:2px solid #ff9a3c;padding:6px 8px;border-radius:var(--radius-sm);line-height:1.4}.status-bar{display:flex;align-items:center;gap:var(--sp-4);height:var(--status-height);padding:0 var(--sp-3);background:var(--bg-secondary);border-top:1px solid var(--border-dim);flex-shrink:0}.status-item{font-family:var(--font-mono);font-size:var(--text-2xs);color:var(--text-ghost);display:flex;align-items:center;gap:4px;white-space:nowrap}.status-item strong{color:var(--text-tertiary)}.status-selected{color:var(--accent)}.status-undo{color:var(--text-ghost)}.status-autosave{color:var(--success);animation:statusFlash 2s ease forwards}@keyframes statusFlash{0%,80%{opacity:1}to{opacity:0}}.status-loading{color:var(--warning)}.status-error{color:var(--danger)}.status-mode{color:var(--accent);background:var(--accent-glow);padding:1px 6px;border-radius:8px;font-weight:700;letter-spacing:1px}.status-brand{color:var(--accent);font-weight:700;letter-spacing:2px}.status-dot{width:5px;height:5px;border-radius:50%;flex-shrink:0}.status-spacer{flex:1}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000}.modal{background:var(--bg-panel);border:1px solid var(--border-bright);border-radius:var(--radius);width:380px;box-shadow:0 24px 64px #0009;animation:modalIn .15s ease}.modal-lg{width:460px}@keyframes modalIn{0%{opacity:0;transform:scale(.96) translateY(8px)}to{opacity:1;transform:scale(1) translateY(0)}}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--border)}.modal-title{font-family:var(--font-mono);font-size:12px;font-weight:700;color:var(--text-primary);letter-spacing:1px}.modal-close{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:var(--radius-sm);color:var(--text-muted);transition:all .1s}.modal-close:hover{background:var(--bg-hover);color:var(--text-primary)}.modal-body{padding:16px}.modal-field{display:flex;flex-direction:column;gap:6px;margin-bottom:12px}.modal-field label{font-size:11px;color:var(--text-secondary);font-family:var(--font-mono);letter-spacing:.5px}.modal-input{padding:8px 12px;font-size:13px;border-radius:var(--radius-sm)}.modal-error{font-size:12px;color:var(--danger);padding:8px 10px;background:#ff4d6d1a;border-radius:var(--radius-sm);border:1px solid rgba(255,77,109,.3)}.modal-success{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--success);padding:8px 10px;background:#43e97b1a;border-radius:var(--radius-sm);border:1px solid rgba(67,233,123,.3)}.modal-footer{display:flex;align-items:center;justify-content:flex-end;gap:8px;padding:12px 16px;border-top:1px solid var(--border)}.modal-btn{display:flex;align-items:center;gap:6px;padding:7px 16px;border-radius:var(--radius-sm);font-size:12px;font-family:var(--font-sans);font-weight:500;transition:all .15s}.modal-btn.cancel{background:var(--bg-elevated);color:var(--text-secondary);border:1px solid var(--border)}.modal-btn.cancel:hover{border-color:var(--border-bright);color:var(--text-primary)}.modal-btn.primary{background:var(--accent);color:#fff}.modal-btn.primary:hover{background:var(--accent-dim)}.modal-btn:disabled{opacity:.4;cursor:not-allowed}.modal-loading,.modal-empty{display:flex;flex-direction:column;align-items:center;gap:8px;padding:32px;color:var(--text-muted);font-size:13px}.modal-empty-hint{font-size:11px;opacity:.6}.scenes-list{display:flex;flex-direction:column;gap:4px;max-height:320px;overflow-y:auto}.scene-item{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:var(--radius-sm);border:1px solid transparent;cursor:pointer;transition:all .15s}.scene-item:hover{background:var(--bg-elevated);border-color:var(--border)}.scene-icon{width:36px;height:36px;border-radius:var(--radius-sm);background:var(--accent-glow);border:1px solid var(--accent-dim);display:flex;align-items:center;justify-content:center;color:var(--accent);flex-shrink:0}.scene-info{flex:1;display:flex;flex-direction:column;gap:3px;overflow:hidden}.scene-name{font-size:13px;font-weight:500;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.scene-meta{display:flex;align-items:center;gap:5px;font-family:var(--font-mono);font-size:10px;color:var(--text-muted)}.scene-delete{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:var(--radius-sm);color:var(--text-muted);opacity:0;transition:all .15s}.scene-item:hover .scene-delete{opacity:1}.scene-delete:hover{background:#ff4d6d26;color:var(--danger)}.ob-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#06060ae0;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);display:flex;align-items:center;justify-content:center;z-index:2000;animation:obFadeIn .35s var(--ease-out)}@keyframes obFadeIn{0%{opacity:0}}.ob-card{width:440px;max-width:90vw;background:var(--bg-panel);border:1px solid var(--border-mid);border-radius:var(--radius);padding:var(--sp-8) var(--sp-6) var(--sp-6);box-shadow:var(--shadow-lg),var(--shadow-glow);text-align:center;position:relative;animation:obCardIn .4s var(--ease-out)}@keyframes obCardIn{0%{opacity:0;transform:scale(.94) translateY(12px)}}.ob-dots{display:flex;justify-content:center;gap:6px;margin-bottom:var(--sp-6)}.ob-dot{width:8px;height:8px;border-radius:50%;background:var(--border);transition:all .25s}.ob-dot--active{background:var(--accent);box-shadow:0 0 8px var(--accent-ring);transform:scale(1.2)}.ob-dot--done{background:var(--accent-dim)}.ob-icon{font-size:36px;line-height:1;margin-bottom:var(--sp-4);color:var(--accent)}.ob-title{font-family:var(--font-display);font-size:var(--text-xl);font-weight:600;color:var(--text-primary);margin-bottom:var(--sp-3);letter-spacing:-.3px}.ob-body{font-size:var(--text-md);color:var(--text-secondary);line-height:1.6;margin-bottom:var(--sp-4);padding:0 var(--sp-2)}.ob-hint{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-tertiary);background:var(--bg-elevated);border:1px solid var(--border-dim);border-radius:var(--radius-sm);padding:var(--sp-2) var(--sp-3);margin:0 auto var(--sp-5);max-width:340px;line-height:1.6}.ob-actions{display:flex;gap:var(--sp-3);justify-content:center;margin-bottom:var(--sp-3)}.ob-skip{padding:var(--sp-2) var(--sp-4);font-size:var(--text-sm);color:var(--text-tertiary);border-radius:var(--radius-sm)}.ob-skip:hover{color:var(--text-secondary)}.ob-next{padding:var(--sp-2) var(--sp-6);font-size:var(--text-sm);font-weight:600;color:#fff;background:var(--accent);border-radius:var(--radius-sm);box-shadow:0 2px 8px #7c6fff40}.ob-next:hover{background:var(--accent-dim)}.ob-counter{font-family:var(--font-mono);font-size:var(--text-2xs);color:var(--text-ghost);letter-spacing:1px}.asb{position:fixed;top:calc(var(--toolbar-height) + var(--sp-3));left:50%;transform:translate(-50%);display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-2) var(--sp-4);background:var(--bg-float);border:1px solid var(--border-mid);border-radius:var(--radius);box-shadow:var(--shadow-lg);z-index:1500;animation:asbIn .4s var(--ease-out)}@keyframes asbIn{0%{opacity:0;transform:translate(-50%) translateY(-8px)}}.asb-icon{font-size:16px}.asb-text{font-size:var(--text-sm);color:var(--text-secondary);white-space:nowrap}.asb-btn{font-size:var(--text-xs);padding:var(--sp-1) var(--sp-3);border-radius:var(--radius-xs);font-weight:600}.asb-restore{background:var(--accent);color:#fff}.asb-restore:hover{background:var(--accent-dim)}.asb-dismiss{color:var(--text-tertiary);border:1px solid var(--border)}.asb-dismiss:hover{color:var(--text-secondary);border-color:var(--border-mid)}.app-layout{display:flex;flex-direction:column;width:100vw;height:100vh;overflow:hidden;background:var(--bg-primary)}.app-workspace{display:flex;flex:1;overflow:hidden;min-height:0}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg-abyss: #06060a;--bg-primary: #0a0a0f;--bg-secondary: #0f0f17;--bg-panel: #111118;--bg-elevated: #171722;--bg-surface: #1c1c2a;--bg-hover: #21213a;--bg-float: #252540;--border-dim: #1e1e30;--border: #2a2a3d;--border-mid: #33335a;--border-bright: #404070;--accent: #7c6fff;--accent-dim: #5a50c0;--accent-glow: rgba(124, 111, 255, .14);--accent-ring: rgba(124, 111, 255, .4);--danger: #ff5577;--success: #4aea8a;--warning: #f5c842;--info: #4fc3f7;--text-primary: #ededf4;--text-secondary: #9494b8;--text-tertiary: #6060a0;--text-ghost: #3a3a60;--font-display: "DM Sans", -apple-system, "Segoe UI", sans-serif;--font-body: "DM Sans", -apple-system, "Segoe UI", sans-serif;--font-mono: "Space Mono", "SF Mono", "Fira Code", monospace;--text-2xs: 9px;--text-xs: 10px;--text-sm: 11px;--text-md: 13px;--text-lg: 15px;--text-xl: 18px;--text-2xl: 24px;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 20px;--sp-6: 24px;--sp-8: 32px;--sp-10: 40px;--panel-width: 270px;--toolbar-height: 48px;--status-height: 28px;--radius: 10px;--radius-sm: 6px;--radius-xs: 4px;--ease-out: cubic-bezier(.22, 1, .36, 1);--dur-fast: .12s;--dur-med: .2s;--dur-slow: .35s;--shadow-sm: 0 1px 3px rgba(0,0,0,.4);--shadow-md: 0 4px 12px rgba(0,0,0,.5);--shadow-lg: 0 12px 40px rgba(0,0,0,.6);--shadow-glow: 0 0 20px rgba(124,111,255,.12)}html,body,#root{width:100%;height:100%;overflow:hidden;background:var(--bg-abyss);color:var(--text-primary);font-family:var(--font-body);font-size:var(--text-md);line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}::-webkit-scrollbar{width:5px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-mid);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--border-bright)}button{font-family:var(--font-body);cursor:pointer;border:none;background:none;outline:none;transition:all var(--dur-fast) var(--ease-out)}button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}input,select,textarea{font-family:var(--font-body);color:var(--text-primary);background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-xs);outline:none;transition:border-color var(--dur-fast);font-size:var(--text-sm)}input:focus,select:focus{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-glow)}.tooltip{position:relative}.tooltip:after{content:attr(data-tip);position:absolute;left:50%;transform:translate(-50%);bottom:calc(100% + 8px);background:var(--bg-float);color:var(--text-primary);font-size:var(--text-xs);font-family:var(--font-mono);padding:var(--sp-1) var(--sp-2);border-radius:var(--radius-xs);border:1px solid var(--border-mid);box-shadow:var(--shadow-md);white-space:nowrap;pointer-events:none;opacity:0;transition:opacity var(--dur-fast);z-index:100}.tooltip:hover:after{opacity:1}.focus-ring:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}
