.container { display: flex; flex-direction: column; flex: 1; min-height: 0; background: #1a1a1a; border-top: 1px solid #333; overflow: hidden; } .toolbar { display: flex; align-items: center; gap: 4px; padding: 4px 8px; background: #222; border-bottom: 1px solid #333; flex-shrink: 0; } .tbBtn { background: #2d2d2d; border: 1px solid #404040; color: #bbb; border-radius: 3px; padding: 3px 8px; font-size: 11px; transition: background 0.1s; } .tbBtn:hover:not(:disabled) { background: #3a3a3a; color: #fff; } .tbBtn:disabled { opacity: 0.3; cursor: default; } .spacer { flex: 1; } .zoomLabel { font-size: 11px; color: #666; margin-right: 2px; } .scroll { flex: 1; overflow: auto; position: relative; cursor: default; } /* ── Ruler ────────────────────────────────────────────────────── */ .ruler { display: flex; height: 22px; background: #212121; border-bottom: 1px solid #333; position: sticky; top: 0; z-index: 10; user-select: none; cursor: crosshair; } .tick { position: absolute; top: 0; bottom: 0; width: 1px; background: #444; } .tickLabel { position: absolute; top: 3px; left: 3px; font-size: 9px; color: #666; white-space: nowrap; } /* ── Layers area ──────────────────────────────────────────────── */ .layersArea { position: relative; } .playhead { position: absolute; top: 0; bottom: 0; width: 2px; background: #e05050; z-index: 20; pointer-events: none; } .gridLine { position: absolute; top: 0; bottom: 0; width: 1px; background: rgba(255,255,255,0.04); pointer-events: none; } /* ── Layer row ────────────────────────────────────────────────── */ .row { position: absolute; left: 0; right: 0; height: 32px; display: flex; align-items: center; border-bottom: 1px solid #2a2a2a; cursor: pointer; transition: background 0.1s; } .row:hover { background: rgba(255,255,255,0.03); } .rowSelected { background: rgba(91,155,213,0.08); } .rowLabel { position: absolute; left: 0; width: 140px; height: 100%; display: flex; align-items: center; padding: 0 8px; background: #1e1e1e; border-right: 1px solid #2a2a2a; z-index: 5; overflow: hidden; flex-shrink: 0; } .layerName { font-size: 11px; color: #bbb; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } /* ── Segment bar ──────────────────────────────────────────────── */ .bar { position: absolute; height: 22px; border-radius: 3px; cursor: grab; top: 5px; border: 1px solid rgba(255,255,255,0.15); box-sizing: border-box; min-width: 4px; } .bar:active { cursor: grabbing; } .handle { position: absolute; top: 0; bottom: 0; width: 6px; cursor: ew-resize; z-index: 2; } .handleLeft { left: 0; border-radius: 3px 0 0 3px; background: rgba(255,255,255,0.15); } .handleRight { right: 0; border-radius: 0 3px 3px 0; background: rgba(255,255,255,0.15); } /* ── Subtitle row ─────────────────────────────────────────────── */ .subtitleRow { position: absolute; left: 0; right: 0; height: 14px; border-bottom: 1px solid #2a2a2a; } .subtitleLabel { position: absolute; left: 0; width: 140px; height: 100%; background: #1e1e1e; border-right: 1px solid #2a2a2a; display: flex; align-items: center; padding: 0 8px; font-size: 9px; color: #555; z-index: 5; } .subtitleBlock { position: absolute; top: 2px; height: 10px; background: #8a6040; border-radius: 2px; border: 1px solid #aa7050; opacity: 0.8; }