:root{--tert-c:#FFD8E4;--on-tert-c:#31111D}
@media (prefers-color-scheme:dark){:root{--tert-c:#633B48;--on-tert-c:#FFD8E4}}
#tlView{position:fixed;inset:0;z-index:20;background:var(--surface);display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr) minmax(230px,42vh);gap:12px;padding:12px}
.tlbar{display:flex;align-items:center;flex-wrap:wrap;gap:12px;padding:0 4px}
.seg{display:inline-flex;border:1px solid var(--outline);border-radius:20px;overflow:hidden}
.seg button{border:0;background:transparent;color:var(--on-surface);padding:0 16px;height:38px;font:500 14px var(--font);cursor:pointer}
.seg button.on{background:var(--secondary-c);color:var(--on-secondary-c)}
.tlbar h2{margin:0}
.tlbody{display:grid;grid-template-columns:minmax(160px,220px) minmax(0,1fr) minmax(0,1.2fr) minmax(190px,250px);grid-template-areas:"bin src out insp";gap:12px;min-height:0;min-width:0}
.binc{grid-area:bin}.srcw{grid-area:src}.outw{grid-area:out}.inspc{grid-area:insp}
.tlcard{background:var(--surf);border-radius:20px;padding:14px;overflow:auto;min-height:0}
.tlcard h3{font:500 14px var(--font);margin:0 0 8px}
.hint{color:var(--on-var);font-size:12px;line-height:16px;margin:10px 0 0}
.bi{display:flex;gap:8px;align-items:center;padding:6px 6px 6px 10px;border-radius:12px;background:var(--surf-low);margin-top:8px;cursor:grab}
.bi .bn{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bi small{color:var(--on-var)}
.bk{color:var(--primary)}
.prevwrap{display:flex;flex-direction:column;align-items:center;gap:10px;min-height:0}
#pv{flex:1;min-height:0;aspect-ratio:16/9;max-width:100%;background:#000;border-radius:16px;overflow:hidden;position:relative}
.tlpanel{background:var(--surf);border-radius:20px;display:flex;flex-direction:column;min-height:0;min-width:0}
.tltool{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:10px 14px}
.tltool .btn{height:36px;padding:0 16px}
.tltool input[type=range]{width:110px;margin:0}
#tlTime{font-variant-numeric:tabular-nums;color:var(--on-var);min-width:110px}
#tlScroll{overflow:auto;flex:1;min-height:0;min-width:0;position:relative}
#tlInner{position:relative;min-height:100%}
.ruler{position:sticky;top:0;z-index:4;height:28px;background:var(--surf-high);cursor:pointer;display:flex}
.ruler .lbl{flex:0 0 56px}
.tick{position:absolute;top:8px;font-size:11px;color:var(--on-var);padding-left:4px;border-left:1px solid var(--outline-var);height:20px;pointer-events:none}
.trk{display:flex;height:56px;border-bottom:1px solid var(--outline-var)}
.lbl{position:sticky;left:0;z-index:3;flex:0 0 56px;background:var(--surf-high);display:grid;place-items:center;font:500 12px var(--font);color:var(--on-var)}
.lane{position:relative;flex:none}
.clip{position:absolute;top:6px;bottom:6px;border-radius:8px;padding:0 12px;display:flex;align-items:center;overflow:hidden;white-space:nowrap;cursor:grab;font-size:12px;user-select:none;touch-action:none}
.clip.video{background:var(--primary-c);color:var(--on-primary-c)}
.clip.image{background:var(--secondary-c);color:var(--on-secondary-c)}
.clip.audio{background:var(--tert-c);color:var(--on-tert-c)}
.clip.sel{outline:2px solid var(--primary);outline-offset:1px}
.clip .h{position:absolute;top:0;bottom:0;width:9px;cursor:ew-resize}
.clip .h.l{left:0}.clip .h.r{right:0}
.clip .h:hover{background:rgba(0,0,0,.2)}
#tph{position:absolute;top:0;bottom:0;width:2px;background:var(--error);z-index:5;pointer-events:none}
#tlView[data-fmt=v] #pv{aspect-ratio:9/16}
.prevwrap{min-width:0}
@media (max-width:1300px){
  .tlbody{grid-template-columns:minmax(150px,210px) minmax(0,1fr) minmax(0,1fr);grid-template-areas:"bin src out" "insp src out";grid-template-rows:minmax(0,1fr) minmax(0,1fr)}
}
@media (max-width:820px){
  #tlView{overflow-y:auto;grid-template-rows:auto auto minmax(300px,auto)}
  .tlbody{grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-areas:"out out" "src src" "bin insp";grid-template-rows:none;gap:10px}
  #pv{flex:none;width:min(100%,560px)}
  #tlView[data-fmt=v] #pv{width:min(100%,240px)}
  #srcBox{flex:none;height:220px}
  .tlcard{max-height:280px}
  .tlpanel{min-height:300px}
}

.plabel{font:500 13px var(--font);color:var(--on-var);margin:0;align-self:flex-start}
.srcw,.outw{min-width:0;min-height:0}
#srcBox{flex:1;min-height:0;width:100%;background:#000;border-radius:16px;overflow:hidden;display:grid;place-items:center}
#srcBox video,#srcBox img{width:100%;height:100%;object-fit:contain}
#srcNote{color:#9FB0B4;padding:16px;text-align:center}
.pc{display:flex;align-items:center;gap:6px;width:100%}
.pc input[type=range]{flex:1;margin:0}
.bi.on{outline:2px solid var(--primary)}

.mic{max-width:190px;height:36px;border-radius:8px;border:1px solid var(--outline);background:transparent;color:var(--on-surface);padding:0 8px;font:inherit}
.mic option{color:#000}
.lvl{width:60px;height:6px;border-radius:3px;background:var(--secondary-c);overflow:hidden;display:inline-block}
.lvl i{display:block;height:100%;width:0;background:var(--primary);transition:width .08s}
.clip.rec{background:var(--error-c);color:var(--error);outline:2px solid var(--error)}
#tlRec.on{background:var(--error);color:#fff;border-color:var(--error)}
