*{box-sizing:border-box;margin:0;padding:0}:root{--bg-primary:#0a0a1a;--bg-secondary:#12122a;--bg-tertiary:#1a1a3e;--bg-surface:#16213e;--text-primary:#e0e0e0;--text-secondary:#888;--text-muted:#555;--accent:#4a6fa5;--accent-hover:#5a8fc5;--danger:#c0392b;--danger-hover:#e74c3c;--success:#27ae60;--border:#2a2a4a;--radius:6px}body{background:var(--bg-primary);color:var(--text-primary);height:100vh;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;overflow:hidden}#root{flex-direction:column;height:100vh;display:flex}button{cursor:pointer;border:1px solid var(--border);background:var(--bg-tertiary);color:var(--text-primary);border-radius:var(--radius);padding:6px 12px;font-family:inherit;font-size:13px;transition:background .15s}button:hover:not(:disabled){background:var(--bg-surface)}button:disabled{opacity:.4;cursor:default}input,select,textarea{background:var(--bg-primary);color:var(--text-primary);border:1px solid var(--border);border-radius:var(--radius);outline:none;width:100%;margin-bottom:8px;padding:8px 12px;font-family:inherit;font-size:13px}input:focus,select:focus{border-color:var(--accent)}label{color:var(--text-secondary);margin-top:8px;margin-bottom:4px;font-size:12px;display:block}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:500}.btn-primary:hover:not(:disabled){background:var(--accent-hover)}.btn-secondary{border-color:var(--border);background:0 0}.btn-small{padding:4px 10px;font-size:12px}.btn-back{color:var(--text-secondary);background:0 0;border:none;padding:4px 8px;font-size:14px}.btn-back:hover{color:var(--text-primary)}.link-btn{color:var(--accent);font-size:inherit;background:0 0;border:none;padding:0;text-decoration:underline}.link-btn:hover{color:var(--accent-hover)}.danger{color:var(--danger)!important}.danger:hover{color:var(--danger-hover)!important}.error-msg{border:1px solid var(--danger);color:var(--danger);border-radius:var(--radius);background:#c0392b26;margin-bottom:12px;padding:8px 12px;font-size:13px}.loading-full{height:100vh;color:var(--text-secondary);justify-content:center;align-items:center;font-size:18px;display:flex}.auth-page{background:var(--bg-primary);justify-content:center;align-items:center;height:100vh;display:flex}.auth-card{background:var(--bg-secondary);border:1px solid var(--border);border-radius:12px;width:400px;max-width:90vw;padding:40px}.auth-card h1{margin-bottom:4px;font-size:28px}.auth-subtitle{color:var(--text-secondary);margin-bottom:24px}.auth-card form{margin-top:16px}.auth-card .btn-primary{width:100%;margin-top:16px;padding:10px;font-size:15px}.auth-switch{text-align:center;color:var(--text-secondary);margin-top:20px;font-size:14px}.dashboard{flex-direction:column;height:100vh;display:flex}.dashboard-header{border-bottom:1px solid var(--border);background:var(--bg-secondary);justify-content:space-between;align-items:center;padding:16px 24px;display:flex}.dashboard-header h1{font-size:20px;font-weight:600}.header-right{align-items:center;gap:12px;display:flex}.user-name{color:var(--text-secondary);font-size:14px}.dashboard-content{flex:1;padding:24px;overflow-y:auto}.dashboard-toolbar{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.dashboard-toolbar h2{font-size:18px}.create-project-form{align-items:flex-start;gap:8px;margin-bottom:20px;display:flex}.create-project-form input{flex:1;margin:0}.project-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;display:grid}.project-card{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;transition:border-color .15s;overflow:hidden}.project-card:hover{border-color:var(--accent)}.project-thumb{background:var(--bg-tertiary);justify-content:center;align-items:center;height:160px;display:flex}.project-thumb-placeholder{color:var(--text-muted);font-size:14px}.project-info{justify-content:space-between;align-items:center;padding:12px;display:flex}.project-info h3{font-size:14px;font-weight:500}.project-date{color:var(--text-muted);font-size:12px}.project-actions{gap:4px;padding:0 12px 12px;display:flex}.project-actions button{color:var(--text-secondary);background:0 0;border:none;padding:4px 8px;font-size:16px}.empty-state{text-align:center;color:var(--text-secondary);padding:60px}.editor-layout{flex-direction:column;height:100vh;display:flex;overflow:hidden}.editor-header{border-bottom:1px solid var(--border);background:var(--bg-secondary);flex-shrink:0;align-items:center;gap:16px;padding:8px 16px;display:flex}.editor-header h2{flex:1;font-size:16px;font-weight:500}.editor-header-actions{align-items:center;gap:8px;display:flex}.save-status{color:var(--success);border-radius:3px;padding:2px 8px;font-size:12px}.save-unsaved{color:var(--text-secondary)}.save-error{color:var(--danger);font-weight:600}.editor-main{flex:1;min-height:0;display:flex;overflow:hidden}.editor-left{border-right:1px solid var(--border);flex-shrink:0;width:250px;overflow-y:auto}.editor-center{background:#000;flex:1;justify-content:center;align-items:center;min-width:0;display:flex}.editor-right{border-left:1px solid var(--border);flex-shrink:0;width:260px;overflow-y:auto}.editor-bottom{border-top:1px solid var(--border);flex-shrink:0;height:250px;overflow:hidden}.media-bin{padding:8px}.media-bin-header{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.media-bin-header h3{font-size:13px;font-weight:600}.upload-progress{align-items:center;gap:8px;margin-bottom:8px;font-size:12px;display:flex}.progress-bar{background:var(--bg-tertiary);border-radius:2px;flex:1;height:4px;overflow:hidden}.progress-bar.large{border-radius:4px;height:8px}.progress-fill{background:var(--accent);height:100%;transition:width .3s}.media-list{flex-direction:column;gap:4px;display:flex}.media-item{border-radius:var(--radius);cursor:grab;border:1px solid #0000;align-items:center;gap:8px;padding:6px;font-size:12px;transition:background .15s;display:flex}.media-item:hover{background:var(--bg-tertiary)}.media-item.processing{opacity:.5;cursor:wait}.media-thumb{background:var(--bg-tertiary);border-radius:3px;flex-shrink:0;width:48px;height:36px;overflow:hidden}.media-thumb img{object-fit:cover;width:100%;height:100%}.thumb-placeholder{width:100%;height:100%;color:var(--text-muted);text-transform:uppercase;justify-content:center;align-items:center;font-size:9px;display:flex}.media-info{flex:1;min-width:0}.media-name{white-space:nowrap;text-overflow:ellipsis;color:var(--text-primary);display:block;overflow:hidden}.media-meta{color:var(--text-muted);font-size:10px}.media-actions{gap:2px;display:flex}.media-actions button{color:var(--text-secondary);background:0 0;border:none;padding:2px 4px;font-size:14px}.empty-state-small{text-align:center;color:var(--text-muted);padding:20px;font-size:12px}.preview-player{flex-direction:column;align-items:center;width:100%;height:100%;display:flex}.preview-canvas-container{flex:1;justify-content:center;align-items:center;width:100%;padding:8px;display:flex}.preview-canvas{background:#000;border-radius:4px;max-width:100%;max-height:100%}.preview-controls{flex-shrink:0;align-items:center;gap:8px;padding:8px;display:flex}.preview-controls button{color:var(--text-primary);background:0 0;border:none;padding:4px 8px;font-size:18px}.play-btn{font-size:24px!important}.timeline-editor{background:var(--bg-secondary);flex-direction:column;height:100%;display:flex}.timeline-toolbar{border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:8px;padding:4px 8px;display:flex}.zoom-control{color:var(--text-muted);align-items:center;gap:4px;margin-left:auto;font-size:11px;display:flex}.zoom-control button{padding:2px 8px;font-size:14px}.timecode{color:var(--accent);background:var(--bg-primary);border-radius:3px;padding:4px 8px;font-family:SF Mono,Consolas,monospace;font-size:12px}.toolbar-group{align-items:center;gap:4px;display:flex}.toolbar-spacer{flex:1}.track-controls-inline{gap:2px;display:inline-flex}.track-controls-inline button{padding:2px 6px;font-size:12px}.timeline-canvas-container{flex:1;position:relative;overflow:hidden}.timeline-canvas-container canvas{width:100%;height:100%;display:block}.clip-inspector{padding:12px}.clip-inspector h3{margin-bottom:8px;font-size:13px;font-weight:600}.inspector-empty{color:var(--text-muted);text-align:center;padding:20px;font-size:12px}.inspector-filename{color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;margin-bottom:12px;font-size:11px;overflow:hidden}.inspector-group{border-top:1px solid var(--border);margin-top:8px;padding-top:8px}.inspector-group input[type=number]{width:100%}.inspector-group input[type=range]{margin-bottom:0;padding:0}.range-value{color:var(--text-muted);text-align:right;min-width:40px;font-size:11px}.inline-row{align-items:center;gap:8px;margin-bottom:4px;display:flex}.inline-row input[type=range]{flex:1;margin:0}.speed-presets{gap:2px;margin-top:4px;margin-bottom:8px;display:flex}.speed-presets button{flex:1;padding:2px 6px;font-size:10px}.speed-presets button.active{background:var(--accent);border-color:var(--accent);color:#fff}.inspector-group textarea{background:var(--bg-primary);color:var(--text-primary);border:1px solid var(--border);border-radius:var(--radius);resize:vertical;width:100%;margin-bottom:8px;padding:8px;font-family:inherit;font-size:13px}.inspector-group input[type=color]{cursor:pointer;width:100%;height:32px;padding:2px}.modal-overlay{z-index:1000;background:#000000b3;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:var(--bg-secondary);border:1px solid var(--border);border-radius:12px;width:480px;max-width:90vw;padding:32px}.modal h2{margin-bottom:20px;font-size:20px}.export-settings{margin-bottom:24px}.export-settings select{margin-bottom:4px}.export-status{text-align:center;padding:20px 0}.progress-text{color:var(--text-secondary);margin:12px 0;font-size:14px}.modal-actions{justify-content:flex-end;gap:8px;display:flex}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-primary)}::-webkit-scrollbar-thumb{background:var(--bg-tertiary);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--border)}
