:root{--bg-main:#0c0e12;--bg-panel:#131720;--bg-panel-subtle:#191e2b;--bg-card:#1f2535;--bg-card-hover:#262e42;--bg-input:#0e1118;--bg-input-focus:#141822;--border-subtle:#232a3b;--border-medium:#303a50;--border-strong:#435270;--border-focus:#6366f1;--text-main:#f3f5f9;--text-muted:#94a1b8;--text-dim:#64748b;--primary:#6366f1;--primary-hover:#4f46e5;--primary-glow:#6366f140;--success:#10b981;--success-bg:#10b9811f;--success-border:#059669;--danger:#ef4444;--danger-hover:#dc2626;--danger-bg:#ef44441f;--danger-border:#b91c1c;--warning:#f59e0b;--warning-bg:#f59e0b1f;--warning-border:#d97706;--ai-badge:#8b5cf6;--ai-badge-bg:#8b5cf626;--ai-badge-border:#7c3aed;--radius-sm:6px;--radius-md:9px;--radius-lg:12px;--radius-full:9999px;--font-sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono:"JetBrains Mono", "Cascadia Code", Consolas, monospace;--shadow-sm:0 1px 2px 0 #0006;--shadow-md:0 4px 12px 0 #00000073;--shadow-lg:0 10px 25px -3px #0009;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%;margin:0;padding:0}body{background-color:var(--bg-main);color:var(--text-main);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:13.5px;line-height:1.5;overflow:hidden}::-webkit-scrollbar{width:7px;height:7px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border-medium);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--border-strong)}h1,h2,h3,h4{letter-spacing:-.015em;margin:0 0 8px;font-weight:600}h1{font-size:22px}h2{font-size:18px}h3{font-size:15px}h4{font-size:13px}code,pre{font-family:var(--font-mono)}code{background:var(--bg-panel-subtle);border-radius:var(--radius-sm);border:1px solid var(--border-subtle);padding:2px 6px;font-size:12px}hr{border:0;border-top:1px solid var(--border-subtle);margin:14px 0}.muted{color:var(--text-muted)}.dim{color:var(--text-dim)}.warn{color:var(--warning)}.success-text{color:var(--success)}.danger-text{color:var(--danger)}button,.button{background:var(--bg-card);color:var(--text-main);border:1px solid var(--border-medium);border-radius:var(--radius-sm);cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;gap:6px;padding:7px 13px;font-family:inherit;font-size:13px;font-weight:500;text-decoration:none;transition:all .15s;display:inline-flex}button:hover:not(:disabled),.button:hover{background:var(--bg-card-hover);border-color:var(--border-strong);transform:translateY(-.5px)}button:active:not(:disabled),.button:active{transform:translateY(0)}button:disabled,.button:disabled{opacity:.45;cursor:not-allowed;transform:none}button.primary,.button.primary{background:var(--primary);border-color:var(--primary);color:#fff;box-shadow:0 1px 3px #6366f159}button.primary:hover:not(:disabled),.button.primary:hover{background:var(--primary-hover);border-color:var(--primary-hover);box-shadow:0 2px 8px var(--primary-glow)}button.danger,.button.danger{background:var(--danger-bg);border-color:var(--danger-border);color:#fca5a5}button.danger:hover:not(:disabled),.button.danger:hover{background:var(--danger);border-color:var(--danger);color:#fff}button.ghost,.button.ghost{background:0 0;border-color:#0000}button.ghost:hover:not(:disabled),.button.ghost:hover{background:var(--bg-card);border-color:var(--border-subtle)}button.small,.button.small{border-radius:var(--radius-sm);padding:4px 9px;font-size:12px}button.icon-btn{border-radius:var(--radius-sm);width:28px;height:28px;padding:5px}input,select,textarea{background:var(--bg-input);width:100%;color:var(--text-main);border:1px solid var(--border-medium);border-radius:var(--radius-sm);outline:none;padding:7px 10px;font-family:inherit;font-size:13px;transition:border-color .15s,background .15s}input:focus,select:focus,textarea:focus{border-color:var(--border-focus);background:var(--bg-input-focus);box-shadow:0 0 0 2px #6366f133}textarea{resize:vertical;min-height:70px}textarea.code,.code-view{font-family:var(--font-mono);tab-size:2;font-size:12px;line-height:1.55}input[type=checkbox]{cursor:pointer;width:16px;height:16px;accent-color:var(--primary)}input[type=range]{accent-color:var(--primary);cursor:pointer;background:0 0;padding:0}.color-input{align-items:center;gap:8px;display:flex}.color-picker-swatch{border-radius:var(--radius-sm);cursor:pointer;border:1px solid var(--border-medium);flex-shrink:0;width:36px;height:32px;padding:2px}.app{flex-direction:column;width:100vw;height:100vh;display:flex;overflow:hidden}.topbar{background:var(--bg-panel);border-bottom:1px solid var(--border-subtle);z-index:20;align-items:center;gap:10px;min-height:52px;padding:8px 16px;display:flex}.brand-section{align-items:center;gap:8px;display:flex}.brand-title{letter-spacing:-.02em;background:linear-gradient(135deg,#fff 40%,#a5b4fc 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;font-size:15px;font-weight:750}.project-controls{align-items:center;gap:8px;display:flex}.project-select{width:220px;font-size:13px;font-weight:500}.name-input-wrap{align-items:center;display:flex;position:relative}.project-name-input{width:210px;padding-right:22px;font-weight:600}.dirty-indicator{background:var(--warning);width:7px;height:7px;box-shadow:0 0 6px var(--warning);border-radius:50%;position:absolute;right:8px}.tabs-nav{background:var(--bg-input);border-radius:var(--radius-md);border:1px solid var(--border-subtle);gap:3px;margin-left:12px;padding:3px;display:flex}.tab-button{color:var(--text-muted);border-radius:var(--radius-sm);background:0 0;border:0;padding:5px 14px;font-size:12.5px;font-weight:500;transition:all .15s}.tab-button:hover{color:var(--text-main);background:#ffffff0a}.tab-button.active{background:var(--bg-card);color:#fff;box-shadow:var(--shadow-sm)}.spacer{flex:1}.topbar-actions{align-items:center;gap:8px;display:flex}.health-badge{background:var(--bg-panel-subtle);border:1px solid var(--border-subtle);border-radius:var(--radius-full);color:var(--text-muted);align-items:center;gap:6px;padding:4px 9px;font-size:11.5px;display:flex}.health-dot{border-radius:50%;width:7px;height:7px}.health-dot.ok{background:var(--success);box-shadow:0 0 6px #10b98180}.health-dot.warn{background:var(--warning);box-shadow:0 0 6px #f59e0b80}.health-dot.error{background:var(--danger);box-shadow:0 0 6px #ef444480}.badge{border-radius:var(--radius-full);background:var(--bg-panel-subtle);border:1px solid var(--border-subtle);color:var(--text-muted);align-items:center;padding:2px 7px;font-size:11px;font-weight:600;line-height:1;display:inline-flex}.badge.ai{background:var(--ai-badge-bg);border-color:var(--ai-badge-border);color:#c4b5fd}.badge.media{color:#93c5fd;background:#3b82f626;border-color:#2563eb}.main-content{flex:1;min-height:0;position:relative;overflow:auto}.editor-layout{grid-template-columns:290px 1fr 370px;height:100%;min-height:0;display:grid}.editor-sidebar{background:var(--bg-panel);border-right:1px solid var(--border-subtle);flex-direction:column;min-height:0;display:flex;overflow:hidden}.editor-sidebar.right{border-right:0;border-left:1px solid var(--border-subtle)}.sidebar-header{border-bottom:1px solid var(--border-subtle);background:var(--bg-panel);justify-content:space-between;align-items:center;padding:12px 14px;display:flex}.sidebar-content{flex-direction:column;flex:1;gap:6px;padding:10px;display:flex;overflow-y:auto}.scene-list{flex-direction:column;gap:5px;margin:0;padding:0;list-style:none;display:flex}.scene-item{background:var(--bg-panel-subtle);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);cursor:pointer;-webkit-user-select:none;user-select:none;border-left:4px solid;padding:8px 10px;transition:all .15s}.scene-item:hover{background:var(--bg-card);border-color:var(--border-medium)}.scene-item.active{background:var(--bg-card-hover);border-color:var(--primary);border-left-width:4px;box-shadow:0 0 0 1px #6366f140}.scene-header-row{align-items:center;gap:8px;display:flex}.scene-index-badge{color:var(--text-dim);text-align:center;font-variant-numeric:tabular-nums;width:18px;font-size:11px;font-weight:700}.scene-title-text{white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:13px;font-weight:500;overflow:hidden}.scene-duration-tag{color:var(--text-muted);font-variant-numeric:tabular-nums;background:#0003;border-radius:4px;padding:2px 6px;font-size:11.5px}.scene-actions-bar{border-top:1px solid #ffffff0f;gap:4px;margin-top:8px;padding-top:6px;display:none}.scene-item:hover .scene-actions-bar,.scene-item.active .scene-actions-bar{display:flex}.scene-actions-bar button{background:var(--bg-input);border-color:var(--border-subtle);padding:2px 7px;font-size:11.5px}.scene-actions-bar button:hover:not(:disabled){background:var(--bg-card);border-color:var(--border-strong)}.sidebar-footer{border-top:1px solid var(--border-subtle);background:var(--bg-panel);padding:10px 12px}.project-settings-btn{justify-content:center;width:100%;padding:8px;font-size:12.5px}.project-settings-btn.active{background:var(--bg-card);border-color:var(--primary);color:var(--text-main)}.preview-panel{background:#08090d;flex-direction:column;gap:12px;min-height:0;padding:16px;display:flex;overflow:hidden}.player-container{border-radius:var(--radius-md);border:1px solid var(--border-subtle);background:radial-gradient(circle,#151822 0%,#08090d 100%);flex:1;justify-content:center;align-items:center;min-height:0;display:flex;position:relative;overflow:hidden}.player-error-view{color:#fca5a5;text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:30px;display:flex}.timeline-section{background:var(--bg-panel);border:1px solid var(--border-subtle);border-radius:var(--radius-md);flex-direction:column;gap:6px;padding:10px 14px;display:flex}.timeline-track{background:var(--bg-input);border-radius:var(--radius-sm);border:1px solid var(--border-subtle);gap:3px;width:100%;height:34px;padding:3px;display:flex}.timeline-scene-block{color:#0c0e12;opacity:.78;cursor:pointer;text-overflow:ellipsis;white-space:nowrap;border:0;border-radius:4px;justify-content:center;align-items:center;min-width:20px;padding:0 4px;font-size:11.5px;font-weight:700;transition:all .15s;display:flex;overflow:hidden}.timeline-scene-block:hover{opacity:.95;transform:scaleY(1.04)}.timeline-scene-block.active{opacity:1;outline-offset:-1px;outline:2px solid #fff;box-shadow:0 0 10px #fff6}.timeline-info-row{color:var(--text-muted);justify-content:space-between;align-items:center;font-size:12px;display:flex}.timeline-stats{align-items:center;gap:10px;display:flex}.inspector-form{flex-direction:column;gap:12px;display:flex}.field-group{flex-direction:column;gap:5px;display:flex}.field-label{color:var(--text-muted);justify-content:space-between;align-items:center;font-size:12px;font-weight:500;display:flex}.field-help{color:var(--text-dim);margin-top:2px;font-size:11.5px}.field-row{grid-template-columns:1fr 1fr;gap:10px;display:grid}.field-boolean-row{background:var(--bg-panel-subtle);border-radius:var(--radius-sm);border:1px solid var(--border-subtle);justify-content:space-between;align-items:center;padding:8px 10px;display:flex}.asset-select-box{flex-direction:column;gap:6px;display:flex}.asset-thumb-preview{border-radius:var(--radius-sm);border:1px solid var(--border-subtle);object-fit:cover;background:#000;max-width:100px;max-height:80px}.page-container{max-width:1400px;height:100%;margin:0 auto;padding:24px 30px;overflow-y:auto}.page-header{justify-content:space-between;align-items:center;gap:14px;margin-bottom:16px;display:flex}.dropzone{border:2px dashed var(--border-medium);background:var(--bg-panel-subtle);border-radius:var(--radius-md);text-align:center;color:var(--text-muted);cursor:pointer;margin:16px 0;padding:30px 20px;transition:all .2s}.dropzone:hover,.dropzone.drag-active{border-color:var(--primary);color:var(--text-main);background:#6366f10d}.upload-progress-list{flex-direction:column;gap:8px;margin-bottom:16px;display:flex}.upload-progress-item{background:var(--bg-panel-subtle);border-radius:var(--radius-sm);border:1px solid var(--border-subtle);align-items:center;gap:12px;padding:8px 12px;font-size:12.5px;display:flex}.upload-progress-item progress{height:8px;accent-color:var(--primary);border-radius:4px;flex:1}.asset-grid{grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:16px;margin-top:16px;display:grid}.asset-card{background:var(--bg-panel);border:1px solid var(--border-subtle);border-radius:var(--radius-md);flex-direction:column;transition:border-color .15s,transform .15s;display:flex;overflow:hidden}.asset-card:hover{border-color:var(--border-medium);box-shadow:var(--shadow-md);transform:translateY(-2px)}.asset-media-frame{background:#08090d;justify-content:center;align-items:center;height:140px;display:flex;position:relative;overflow:hidden}.asset-media-frame img,.asset-media-frame video{object-fit:contain;max-width:100%;max-height:100%}.asset-media-frame audio{width:90%}.asset-meta-section{flex-direction:column;gap:3px;padding:10px 12px;display:flex}.asset-meta-name{white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:600;overflow:hidden}.asset-actions-row{flex-wrap:wrap;gap:6px;margin-top:auto;padding:8px 12px 12px;display:flex}.renders-table-wrap{border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--bg-panel);margin-top:16px;overflow-x:auto}table.renders-table{border-collapse:collapse;width:100%}.renders-table th{background:var(--bg-panel-subtle);text-align:left;color:var(--text-muted);border-bottom:1px solid var(--border-subtle);padding:10px 14px;font-size:12px;font-weight:600}.renders-table td{border-bottom:1px solid var(--border-subtle);padding:12px 14px;font-size:13px}.status-badge{border-radius:var(--radius-full);align-items:center;padding:3px 8px;font-size:11.5px;font-weight:600;display:inline-flex}.status-badge.done{background:var(--success-bg);color:#6ee7b7;border:1px solid var(--success-border)}.status-badge.failed{background:var(--danger-bg);color:#fca5a5;border:1px solid var(--danger-border)}.status-badge.rendering{color:#a5b4fc;border:1px solid var(--primary);background:#6366f126;animation:1.5s infinite pulse}.status-badge.queued{color:#fcd34d;border:1px solid var(--warning-border);background:#f59e0b26}@keyframes pulse{0%,to{opacity:1}50%{opacity:.6}}.error-log-box{color:#fecaca;border-radius:var(--radius-sm);white-space:pre-wrap;background:#251212;border:1px solid #7f1d1d;max-height:250px;margin:0;padding:12px;font-size:11.5px;overflow-y:auto}.templates-layout-grid{grid-template-columns:280px 1fr 1fr;gap:16px;height:calc(100vh - 180px);margin-top:16px;display:grid}.templates-panel-card{background:var(--bg-panel);border:1px solid var(--border-subtle);border-radius:var(--radius-md);flex-direction:column;gap:12px;padding:14px;display:flex;overflow-y:auto}.templates-nav-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.templates-nav-item{background:var(--bg-panel-subtle);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);cursor:pointer;flex-direction:column;gap:3px;padding:8px 10px;transition:all .15s;display:flex}.templates-nav-item:hover{background:var(--bg-card);border-color:var(--border-medium)}.templates-nav-item.active{background:var(--bg-card-hover);border-color:var(--primary)}.inject-result-card{border-radius:var(--radius-sm);border:1px solid;margin-top:8px;padding:12px}.inject-result-card.ok{background:var(--success-bg);border-color:var(--success-border);color:#6ee7b7}.inject-result-card.error{background:var(--danger-bg);border-color:var(--danger-border);color:#fca5a5}.inject-preview-img{object-fit:contain;border-radius:var(--radius-sm);border:1px solid var(--border-medium);background:#000;max-width:100%;max-height:320px;margin-top:10px}.toast-container{z-index:1000;flex-direction:column;gap:8px;display:flex;position:fixed;bottom:20px;right:20px}.toast{border-radius:var(--radius-md);background:var(--bg-card);border:1px solid var(--border-strong);color:var(--text-main);box-shadow:var(--shadow-lg);align-items:center;gap:10px;max-width:450px;padding:10px 16px;font-size:13px;animation:.2s ease-out slideIn;display:flex}.toast.ok{border-color:var(--success-border);color:#6ee7b7;background:#11281e}.toast.error{border-color:var(--danger-border);color:#fca5a5;background:#2b1414}.toast.warn{border-color:var(--warning-border);color:#fde68a;background:#2b2210}@keyframes slideIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.offline-container{text-align:center;flex-direction:column;justify-content:center;align-items:center;height:100vh;padding:24px;display:flex}.offline-card{background:var(--bg-panel);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);max-width:580px;box-shadow:var(--shadow-lg);padding:36px 40px}.offline-commands{background:var(--bg-input);border-radius:var(--radius-sm);border:1px solid var(--border-subtle);text-align:left;margin:18px 0;padding:14px}.offline-commands pre{color:#a5b4fc;margin:4px 0;font-size:12.5px}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:100;background:#000000bf;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal-content{background:var(--bg-panel);border:1px solid var(--border-strong);border-radius:var(--radius-lg);width:100%;max-width:620px;max-height:85vh;box-shadow:var(--shadow-lg);flex-direction:column;animation:.15s ease-out modalEnter;display:flex;overflow:hidden}@keyframes modalEnter{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}.modal-header{border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;padding:14px 18px;display:flex}.modal-body{flex:1;padding:18px;overflow-y:auto}.modal-footer{border-top:1px solid var(--border-subtle);background:var(--bg-panel-subtle);justify-content:flex-end;align-items:center;gap:10px;padding:12px 18px;display:flex}@media (width<=1200px){.editor-layout{grid-template-columns:250px 1fr 320px}.templates-layout-grid{grid-template-columns:1fr;height:auto}}
