:root{--bg: #0f1115;--panel: #171a21;--panel2: #1f232d;--line: #2a2f3b;--text: #e8eaf0;--muted: #9aa1b2;--accent: #8b5cf6;--accent2: #6d28d9;--good: #22c55e;--bad: #ef4444;--warn: #f59e0b}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:14px}.app{display:flex;flex-direction:column;height:100vh;overflow:hidden}.topbar{display:flex;align-items:center;gap:12px;padding:8px 14px;background:var(--panel);border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:8px;font-weight:700;white-space:nowrap}.brand-mark{background:var(--accent);border-radius:6px;padding:2px 7px}.project-name{background:transparent;border:1px solid transparent;border-radius:6px;color:var(--text);font-size:14px;padding:6px 10px;min-width:140px;max-width:320px}.project-name:hover,.project-name:focus{border-color:var(--line);outline:none}.top-actions{margin-left:auto;display:flex;align-items:center;gap:8px}.channel-tag{font-size:11px;letter-spacing:1px;color:var(--muted);border:1px solid var(--line);border-radius:20px;padding:4px 10px;white-space:nowrap}.btn{background:var(--panel2);color:var(--text);border:1px solid var(--line);border-radius:8px;padding:8px 14px;cursor:pointer;font-size:13px;text-decoration:none;display:inline-block}.btn:hover:not(:disabled){border-color:var(--accent)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.primary{background:var(--accent2);border-color:var(--accent2);color:#fff;font-weight:600}.btn.primary:hover:not(:disabled){background:var(--accent)}.btn.accent{background:#12351f;border-color:#1d5c31;color:#b7f4c9;font-weight:600}.btn.ghost{background:transparent}.btn.danger{border-color:#5c1d1d;color:#f4b7b7}.btn.block{display:block;width:100%;margin-top:8px}.btn.small{padding:5px 10px;font-size:12px}.chip{background:var(--panel2);border:1px solid var(--line);color:var(--muted);border-radius:20px;padding:4px 12px;cursor:pointer;font-size:12px}.chip.on{color:#fff;border-color:var(--accent);background:#2a2145}input[type=text],input:not([type]),input[type=number],select,textarea{background:var(--bg);border:1px solid var(--line);color:var(--text);border-radius:6px;padding:7px 9px;font-size:13px;width:100%}input[type=range]{accent-color:var(--accent)}input[type=number]{width:76px}select{width:auto;max-width:220px}label{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--muted)}.muted{color:var(--muted)}.small{font-size:12px}.error{background:#3a1414;border:1px solid #7a2323;color:#ffc9c9;border-radius:8px;padding:8px 12px;margin:8px 0;font-size:13px}.success{background:#12351f;border:1px solid #1d5c31;color:#b7f4c9;border-radius:8px;padding:8px 12px;margin:8px 0;font-size:13px}.success a{color:#fff}.workarea{flex:1;display:flex;min-height:0}.rail{width:64px;background:var(--panel);border-right:1px solid var(--line);display:flex;flex-direction:column;align-items:center;padding:10px 4px;gap:6px}.rail-btn{width:54px;background:transparent;border:1px solid transparent;border-radius:8px;color:var(--muted);cursor:pointer;font-size:18px;padding:6px 0;display:flex;flex-direction:column;align-items:center;gap:2px}.rail-btn span{font-size:10px}.rail-btn.on{background:var(--panel2);color:var(--text);border-color:var(--line)}.rail-btn:disabled{opacity:.4;cursor:not-allowed}.library{width:300px;min-width:300px;background:var(--panel);border-right:1px solid var(--line);display:flex;flex-direction:column;padding:12px;gap:8px;overflow-y:auto}.lib-head h2{margin:0 0 8px;font-size:15px}.lib-tabs{display:flex;gap:6px}.lib-actions{display:flex;flex-direction:column}.busy{color:var(--warn);font-size:12px}.insert-box{background:var(--panel2);border:1px dashed var(--accent);border-radius:8px;padding:8px}.insert-label{font-size:12px;margin-bottom:6px;word-break:break-all}.insert-btns{display:flex;gap:6px}.hint{font-size:11px;color:var(--muted);margin-top:6px}.media-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;flex:1;align-content:start}.media-card{position:relative;background:var(--panel2);border:1px solid var(--line);border-radius:8px;overflow:hidden;cursor:pointer;min-height:86px}.media-card.selected{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.media-card img{width:100%;height:64px;object-fit:cover;display:block}.audio-thumb{height:64px;display:flex;align-items:center;justify-content:center;gap:8px;background:linear-gradient(135deg,#2a2145,#1c2c4a);font-size:20px}.audio-thumb em{font-style:normal;font-size:12px;color:var(--muted)}.media-name{font-size:11px;padding:4px 6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--muted)}.media-x{position:absolute;top:4px;right:4px;background:#0009;border:none;color:#fff;border-radius:50%;width:20px;height:20px;font-size:10px;cursor:pointer;display:none}.media-card:hover .media-x{display:block}.music-badge{position:absolute;top:4px;left:4px;background:var(--accent2);color:#fff;font-size:10px;border-radius:4px;padding:1px 6px}.drop-hint{grid-column:1 / -1;border:1px dashed var(--line);border-radius:8px;padding:24px 12px;text-align:center;color:var(--muted);font-size:13px}.preview{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:14px;min-width:0;background:var(--bg)}.canvas-wrap{position:relative;width:100%;max-width:860px;aspect-ratio:16 / 9;background:#000;border-radius:10px;overflow:hidden;border:1px solid var(--line)}.canvas-wrap canvas{width:100%;height:100%;display:block}.canvas-empty,.canvas-status{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;text-align:center;color:var(--muted);font-size:15px;line-height:1.7;background:#0000008c;pointer-events:none}.transport{display:flex;align-items:center;gap:10px}.tbtn{background:var(--panel2);border:1px solid var(--line);color:var(--text);border-radius:50%;width:40px;height:40px;font-size:16px;cursor:pointer}.tbtn.play{width:48px;height:48px;font-size:20px;background:var(--accent2);border-color:var(--accent2)}.time{font-variant-numeric:tabular-nums;color:var(--muted)}.timeline{height:330px;min-height:330px;background:var(--panel);border-top:1px solid var(--line);display:flex;flex-direction:column;padding:8px 12px;gap:6px}.tl-toolbar{display:flex;align-items:center;gap:12px}.tl-zoom{display:flex;align-items:center;gap:6px}.tl-zoom input{width:120px}.tl-total{color:var(--muted);font-size:12px}.clip-editor{display:flex;align-items:center;gap:10px;background:var(--panel2);border:1px solid var(--line);border-radius:8px;padding:6px 10px;font-size:12px;flex-wrap:wrap}.clip-editor label{flex-direction:row;align-items:center}.clip-name{max-width:200px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tl-scroll{flex:1;overflow:auto;background:var(--bg);border:1px solid var(--line);border-radius:8px;position:relative}.tl-inner{position:relative;min-height:100%;padding-bottom:8px}.ruler{position:relative;height:22px;border-bottom:1px solid var(--line);cursor:pointer}.tick{position:absolute;top:3px;font-size:10px;color:var(--muted);border-left:1px solid var(--line);padding-left:3px;font-variant-numeric:tabular-nums}.track-label{font-size:10px;color:var(--muted);padding:3px 6px 0;letter-spacing:.5px;text-transform:uppercase}.track{position:relative;min-height:44px;margin:2px 6px 0 0}.track.images{display:flex;min-height:52px}.clip{position:relative;border:1px solid var(--line);border-radius:6px;overflow:hidden;cursor:grab;background:var(--panel2);flex-shrink:0;margin-right:2px}.clip.selected{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.clip img{width:100%;height:34px;object-fit:cover;display:block;pointer-events:none}.clip-meta{display:block;font-size:10px;color:var(--muted);padding:1px 4px;white-space:nowrap;overflow:hidden}.cue{position:absolute;top:2px;height:38px;background:#1c2c4a;border:1px solid #2d4a7a;border-radius:6px;font-size:11px;padding:9px 8px;white-space:nowrap;overflow:hidden;cursor:pointer}.music-bar{height:30px;background:#2a2145;border:1px solid var(--accent2);border-radius:6px;font-size:11px;padding:7px 8px;white-space:nowrap;overflow:hidden;margin-top:2px}.track-empty{color:var(--muted);font-size:12px;padding:10px}.playhead{position:absolute;top:0;bottom:0;width:2px;background:#fff;pointer-events:none;box-shadow:0 0 4px #000c}.playhead:before{content:"";position:absolute;top:0;left:-5px;border:6px solid transparent;border-top:8px solid #fff}.mixer{display:flex;align-items:center;gap:16px;font-size:12px}.mixer label{flex-direction:row;align-items:center;gap:8px}.mixer input[type=range]{width:110px}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:50;padding:20px}.modal{background:var(--panel);border:1px solid var(--line);border-radius:12px;width:560px;max-width:100%;max-height:90vh;overflow-y:auto;padding:18px}.modal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.modal-head h2{margin:0;font-size:17px;word-break:break-all}.modal-foot{margin-top:14px;display:flex;gap:8px}.modal-foot.spread{justify-content:space-between;align-items:center}.res-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;margin:12px 0}.res-card{background:var(--panel2);border:1px solid var(--line);border-radius:10px;color:var(--text);padding:14px 8px;cursor:pointer;display:flex;flex-direction:column;gap:4px}.res-card.selected{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.res-card span{color:var(--muted);font-size:12px}.progress{background:var(--bg);border:1px solid var(--line);border-radius:8px;height:14px;overflow:hidden;margin:10px 0}.progress.small{height:10px}.progress-bar{background:var(--accent);height:100%;transition:width .2s}.result-video{width:100%;border-radius:8px;background:#000;max-height:300px}.share-tabs{display:flex;gap:6px;margin-top:14px}.share-panel{display:flex;flex-direction:column;gap:10px;margin-top:12px;background:var(--panel2);border:1px solid var(--line);border-radius:10px;padding:12px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}.kids{display:flex;align-items:center;gap:12px;font-size:13px}.kids label{flex-direction:row;align-items:center;gap:4px;color:var(--text)}
