:root{--bg: #0b0e14;--surface-1: #121722;--surface-2: #1a2130;--surface-3: #232c3e;--border: #2b3548;--border-strong: #3b4560;--text: #e8ebf1;--text-dim: #98a2b8;--text-faint: #5f6a80;--accent: #4f7cff;--accent-hover: #6b91ff;--solo: #eab308;--mute: #ef4444;--ok: #34d399;--warn: #f59e0b;--clip: #1e3a5f;--clip-unplaced: #78350f;--wave: #7dd3fc;--radius: 6px;--radius-sm: 4px;--font-mono: ui-monospace, "SF Mono", Menlo, monospace}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:14px/1.45 -apple-system,system-ui,Segoe UI,sans-serif;-webkit-font-smoothing:antialiased}h1,h2,h3{margin:0;font-weight:600}button{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:1px}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--surface-3);border-radius:5px}::-webkit-scrollbar-track{background:transparent}.btn{display:inline-flex;align-items:center;gap:6px;padding:5px 12px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;font-size:13px;color:var(--text);transition:background .12s,border-color .12s}.btn:hover{background:var(--surface-3);border-color:var(--border-strong)}.btn--primary{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:500}.btn--primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.btn--ghost{background:transparent;border-color:transparent;color:var(--text-dim)}.btn--ghost:hover{background:var(--surface-2);color:var(--text)}.input{background:var(--surface-1);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);padding:6px 9px;font-size:13px}.input:focus{border-color:var(--accent);outline:none}.input--tc{font-family:var(--font-mono);letter-spacing:.03em}.seg{display:inline-flex;background:var(--surface-1);border:1px solid var(--border);border-radius:var(--radius-sm);padding:2px;gap:2px}.seg>button{border:none;background:transparent;color:var(--text-dim);font-size:11px;padding:2px 8px;border-radius:3px;cursor:pointer}.seg>button:hover{color:var(--text)}.seg>button.active{background:var(--surface-3);color:var(--text)}.sm-btn{width:22px;height:20px;padding:0;border:1px solid var(--border);border-radius:3px;background:var(--surface-1);color:var(--text-dim);font-size:11px;line-height:1;cursor:pointer;transition:background .1s,color .1s}.sm-btn:hover{border-color:var(--border-strong);color:var(--text)}.sm-btn.solo-on{background:var(--solo);border-color:var(--solo);color:#1a1503;font-weight:700}.sm-btn.mute-on{background:var(--mute);border-color:var(--mute);color:#fff;font-weight:700}.lfe-toggle{height:20px;padding:0 6px;border:1px solid var(--border);border-radius:3px;background:var(--surface-1);color:var(--text-dim);font-size:10px;font-weight:600;letter-spacing:.02em;cursor:pointer;flex-shrink:0}.lfe-toggle:hover{border-color:var(--border-strong);color:var(--text)}.lfe-toggle.active{background:var(--accent);border-color:var(--accent);color:#fff}.app{display:flex;min-height:100vh}.mobile-topbar{display:none}.menu-btn{width:34px;height:34px;display:flex;align-items:center;justify-content:center;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);cursor:pointer;font-size:16px;flex-shrink:0}.sidebar-backdrop{display:none}.sidebar{width:240px;flex-shrink:0;border-right:1px solid var(--border);background:var(--surface-1);padding:16px 12px;display:flex;flex-direction:column;gap:12px}.sidebar h1{font-size:15px;padding:0 8px;letter-spacing:.01em}.sidebar h1 .logo-dot{color:var(--accent)}.sidebar-label{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--text-faint);padding:0 8px}.project-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:1px}.project-list button{width:100%;text-align:left;padding:7px 8px;border:none;background:transparent;border-radius:var(--radius-sm);cursor:pointer;color:var(--text-dim);font-size:13px}.project-list button:hover{background:var(--surface-2);color:var(--text)}.project-list button.selected{background:var(--surface-3);color:var(--text)}.main{flex:1;min-width:0;padding:20px 24px}.muted-note{color:var(--text-dim)}.error-text{color:var(--mute);font-size:13px}.warn-text{color:var(--warn);font-size:12px}.stage-row{display:flex;gap:16px;justify-content:center;align-items:flex-start}.video-stage{position:relative;flex:1;max-width:880px;min-width:0}.video-stage video{width:100%;display:block;background:#000;border-radius:var(--radius)}.tc-overlay{position:absolute;top:10px;right:10px;padding:3px 10px;background:#04060acc;color:var(--ok);font-family:var(--font-mono);font-size:18px;border-radius:var(--radius-sm);pointer-events:none;letter-spacing:.04em}.comments-panel{width:340px;flex-shrink:0;display:flex;flex-direction:column;background:var(--surface-1);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;max-height:560px}.comments-head{padding:9px 12px;border-bottom:1px solid var(--border);font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--text-faint)}.comment-composer{padding:10px 12px;border-bottom:1px solid var(--border);display:flex;flex-direction:column;gap:6px}.composer-meta{display:flex;align-items:center;gap:8px}.comment-list{overflow-y:auto;flex:1}.comment-item{padding:10px 12px;border-bottom:1px solid var(--border)}.comment-item:last-child{border-bottom:none}.comment-item .meta,.comment-reply .meta{display:flex;align-items:center;gap:7px;font-size:12px;color:var(--text-dim)}.comment-body{margin:5px 0 7px;font-size:13px;white-space:pre-wrap;overflow-wrap:anywhere}.comment-reply{margin:8px 0 0 10px;border-left:2px solid var(--border);padding-left:10px}.comment-reply .comment-body{margin-bottom:0;font-size:12px}.comment-actions{display:flex;align-items:center;gap:4px;flex-wrap:wrap}.action-link{padding:2px 7px;font-size:11px}.tc-chip{font-family:var(--font-mono);font-size:11px;letter-spacing:.02em;color:var(--accent-hover);background:var(--surface-2);border:1px solid var(--border);border-radius:3px;padding:1px 7px;cursor:pointer;white-space:nowrap}button.tc-chip:hover{border-color:var(--accent)}span.tc-chip{cursor:default;color:var(--text-dim)}.track-tag{font-size:10px;padding:1px 6px;border-radius:3px;background:var(--surface-3);color:var(--text-dim);white-space:nowrap}.status-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.status-dot--open{background:var(--accent)}.status-dot--resolved{background:var(--ok)}.status-dot--needs_remix{background:var(--warn)}.status-chip{font-size:10px;padding:2px 7px;border-radius:3px;border:1px solid var(--border);background:transparent;color:var(--text-dim);cursor:pointer}.status-chip:hover{border-color:var(--border-strong);color:var(--text)}.status-chip--open.active{background:var(--accent);border-color:var(--accent);color:#fff}.status-chip--resolved.active{background:var(--ok);border-color:var(--ok);color:#062b1e}.status-chip--needs_remix.active{background:var(--warn);border-color:var(--warn);color:#2b1a02}.track-area{position:relative;margin-top:16px;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;background:var(--surface-1)}.buffering-overlay{position:absolute;top:0;right:0;bottom:0;left:224px;z-index:10;display:flex;align-items:center;justify-content:center;background:#04060a8c;-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px);pointer-events:none}.buffering-overlay span{padding:6px 14px;background:var(--surface-2);border:1px solid var(--border-strong);border-radius:var(--radius-sm);font-size:12px;color:var(--text-dim);animation:buffering-pulse 1.4s ease-in-out infinite}@keyframes buffering-pulse{0%,to{opacity:.6}50%{opacity:1}}.track-row{display:flex;border-top:1px solid var(--border)}.track-row:first-child{border-top:none}.track-header{width:224px;flex-shrink:0;padding:8px 10px;background:var(--surface-2);border-right:1px solid var(--border);display:flex;flex-direction:column;gap:6px;font-size:12px}.track-header .name-line{display:flex;align-items:center;gap:6px}.track-header .track-name{font-weight:600;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0}.track-header .ctl-line{display:flex;align-items:center;gap:6px}.tc-btn{border:1px solid transparent;background:transparent;color:var(--text-dim);font-family:var(--font-mono);font-size:11px;padding:2px 5px;border-radius:3px;cursor:pointer;letter-spacing:.02em}.tc-btn:hover{border-color:var(--border);background:var(--surface-1);color:var(--text)}.chan-grid{display:flex;flex-wrap:wrap;gap:4px}.chan-cell{display:flex;align-items:center;gap:3px;background:var(--surface-1);border:1px solid var(--border);border-radius:3px;padding:2px 4px}.chan-cell.silent{opacity:.5}.chan-cell .chan-label{font-family:var(--font-mono);font-size:10px;min-width:18px;text-align:center}.chan-cell .sm-btn{width:17px;height:15px;font-size:9px}.lane{flex:1;min-width:0;position:relative}.lane canvas{display:block;width:100%}.ruler-row{display:flex;background:var(--surface-2)}.ruler-spacer{width:224px;flex-shrink:0;border-right:1px solid var(--border);display:flex;align-items:center;gap:8px;padding:0 10px;font-size:11px;color:var(--text-faint)}.time-zoom,.wave-zoom{display:flex;gap:3px}.wave-zoom{margin-left:auto}.time-zoom .sm-btn,.wave-zoom .sm-btn{width:18px;height:16px;font-size:11px}.swatch{width:12px;height:12px;flex-shrink:0;border:1px solid rgba(255,255,255,.25);border-radius:3px;padding:0}.swatch-row{display:flex;gap:4px;flex-wrap:wrap}.swatch-row .swatch{width:16px;height:16px;cursor:pointer}.swatch-row .swatch.selected{outline:2px solid var(--text);outline-offset:1px}.overview-row{display:flex;border-top:1px solid var(--border);background:var(--surface-2)}.overview-row .ruler-spacer{height:16px}.overview{position:relative;flex:1;min-width:0;height:16px;cursor:pointer;touch-action:none}.overview-window{position:absolute;top:2px;bottom:2px;background:#4f7cff40;border:1px solid var(--accent);border-radius:3px;min-width:6px}.overview-window.full{opacity:.35;border-color:var(--border-strong);background:transparent}.overview-playhead{position:absolute;top:0;bottom:0;width:2px;margin-left:-1px;background:var(--ok);pointer-events:none}.marker-row{display:flex;background:var(--surface-1);border-top:1px solid var(--border)}.marker-row .ruler-spacer{height:16px}.marker-lane{position:relative;flex:1;min-width:0;height:16px}.marker{position:absolute;top:4px;width:8px;height:8px;padding:0;border:none;border-radius:1px;transform:translate(-50%) rotate(45deg);cursor:pointer}.marker:hover{transform:translate(-50%) rotate(45deg) scale(1.35)}.marker--open{background:var(--accent)}.marker--resolved{background:var(--ok);opacity:.55}.marker--needs_remix{background:var(--warn)}.marker-label{position:absolute;top:2px;padding-left:8px;font-size:9px;line-height:11px;color:var(--text-dim);pointer-events:none;white-space:nowrap;max-width:90px;overflow:hidden;text-overflow:ellipsis}.comment-item.highlighted{background:#4f7cff1a;box-shadow:inset 2px 0 0 var(--accent)}.lane-markers{position:absolute;left:0;right:0;bottom:0;height:13px;pointer-events:none}.lane-markers .marker{pointer-events:auto;top:2px}.dialog-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#04060aa6;display:flex;align-items:center;justify-content:center;z-index:50}.dialog{position:static;margin:0;color:var(--text);background:var(--surface-2);border:1px solid var(--border-strong);border-radius:var(--radius);padding:20px;width:360px;box-shadow:0 16px 48px #00000080}.dialog h3{font-size:14px;margin-bottom:10px}.dialog .dialog-note{color:var(--text-dim);font-size:12px;margin:0 0 12px}.dialog .dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:16px}.auth-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px}.auth-card{width:320px;background:var(--surface-1);border:1px solid var(--border);border-radius:var(--radius);padding:24px;display:flex;flex-direction:column;gap:8px}.auth-card h1{font-size:16px;margin-bottom:8px}.auth-card .btn{margin-top:10px;justify-content:center}.auth-label{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--text-faint);margin-top:6px}.portal-head{display:flex;align-items:baseline;gap:14px;padding:14px 24px 0;flex-wrap:wrap}.portal-head h1{font-size:15px}.sidebar-user{margin-top:auto;display:flex;align-items:center;justify-content:space-between;gap:6px;padding:0 8px;font-size:12px}.sharing{margin-top:16px;background:var(--surface-1);border:1px solid var(--border);border-radius:var(--radius)}.sharing>summary{padding:10px 14px;cursor:pointer;font-size:13px;color:var(--text-dim);-webkit-user-select:none;user-select:none}.sharing>summary:hover{color:var(--text)}.sharing-cols{display:flex;gap:24px;padding:4px 14px 16px;flex-wrap:wrap}.sharing-cols section{flex:1;min-width:280px}.sharing-cols h3{font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-faint)}.sharing-hint{font-size:12px;margin:4px 0 8px}.sharing-list{list-style:none;margin:0 0 10px;padding:0;display:flex;flex-direction:column;gap:4px;font-size:12px}.sharing-list li{display:flex;align-items:center;gap:6px}.sharing-item-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mono-url{font-family:var(--font-mono);font-size:11px;color:var(--text-dim)}.sharing-entry-line{display:flex;align-items:center;gap:6px;min-width:0;flex:1}.track-access{position:relative;flex-shrink:0}.track-access .restricted{color:var(--warn)}.track-access-list{position:absolute;right:0;top:calc(100% + 4px);z-index:20;display:flex;flex-direction:column;gap:4px;padding:8px 10px;background:var(--surface-3);border:1px solid var(--border-strong);border-radius:var(--radius-sm);box-shadow:0 8px 24px #0006;white-space:nowrap;font-size:12px}.track-access-list label{cursor:pointer}.users-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:1px;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.users-row{padding:10px 12px;background:var(--surface-1);border-top:1px solid var(--border)}.users-row:first-child{border-top:none}.users-row-line{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.users-edit-fields{display:flex;gap:6px;flex:1;min-width:200px}.users-edit-fields .input{flex:1;min-width:120px;padding:4px 8px;font-size:13px}.role-badge{font-size:10px;text-transform:uppercase;letter-spacing:.05em;padding:2px 7px;border-radius:3px;flex-shrink:0}.role-badge--admin{background:var(--accent);color:#fff}.role-badge--client{background:var(--surface-3);color:var(--text-dim)}.sharing-form{display:flex;flex-wrap:wrap;gap:6px}.sharing-form .input{flex:1;min-width:130px;padding:5px 8px;font-size:12px}.project-title{display:flex;align-items:center;gap:10px;margin-bottom:12px}.project-title h2{font-size:17px}.danger-zone{margin-top:16px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}.btn--danger{background:transparent;border-color:#ef535080;color:var(--mute)}.btn--danger:hover{background:#ef53501f;border-color:var(--mute)}.upload-line{display:flex;align-items:center;gap:10px;margin-top:12px;color:var(--text-dim);font-size:13px}.upload-line input[type=file]{font-size:12px;color:var(--text-dim)}@media(max-width:780px){.mobile-topbar{display:flex;align-items:center;gap:10px;padding:10px 14px;border-bottom:1px solid var(--border);background:var(--surface-1);position:sticky;top:0;z-index:40}.mobile-topbar h1{font-size:15px}.app{flex-direction:column}.sidebar{position:fixed;inset:0 auto 0 0;width:260px;max-width:82vw;height:100vh;transform:translate(-100%);transition:transform .2s ease;z-index:60;box-shadow:12px 0 32px #00000080}.sidebar.open{transform:translate(0)}.sidebar-backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#04060a99;z-index:55}.main{padding:14px}.stage-row{flex-direction:column}.video-stage{max-width:100%;width:100%}.comments-panel{width:100%;max-height:320px}.track-header,.ruler-spacer{width:118px}.buffering-overlay{left:118px}.tracks-label{display:none}.track-header .track-name{font-size:12px}.ruler-spacer{gap:4px;padding:0 6px}.time-zoom{padding-right:4px;border-right:1px solid var(--border)}.track-header .ctl-line{flex-wrap:wrap}.track-header .seg,.track-header .tc-btn{flex:1 1 100%}.track-header .seg>button{flex:1}.dialog{width:calc(100vw - 32px)}.auth-card{width:calc(100vw - 48px)}.sharing-cols{gap:14px}.sharing-cols section{min-width:100%}.track-access-list{right:auto;left:0;max-width:calc(100vw - 60px)}.portal-head{padding:12px 14px 0}}
