/* Adapted from SuperSplat Editor src/ui/scss/timeline-panel.scss
 * SHA 0911f786db652a7700068fe6ccdfe32e24269e1d, MIT © PlayCanvas Ltd.
 * Colors mapped to LichtFeld tokens; 44px key hit targets. */
.lf-timeline { min-width: 0; }
.lf-timeline--locked { pointer-events: none; }
.lf-ticks {
  height: 44px;
  position: relative;
  background: color-mix(in srgb, var(--color-heading) 8%, var(--color-surface));
  border: 1px solid var(--color-border);
  border-radius: var(--r-2);
  overflow: visible;
}
.lf-ticks-area { position: relative; width: 100%; height: 100%; touch-action: none; }
.lf-ticks-area > .time-tick {
  position: absolute;
  bottom: 1px;
  width: 1px;
  height: 5px;
  transform: translate(-50%, 0);
  background: var(--color-muted);
  pointer-events: none;
}
.lf-ticks-area > .time-label {
  position: absolute;
  font-size: 12px;
  bottom: 1px;
  transform: translate(-50%, 0);
  padding: 2px;
  pointer-events: none;
  color: var(--color-muted);
  line-height: 16px;
}
.lf-ticks-area > .time-label.cursor {
  color: #fff;
  background: var(--color-primary);
  padding: 2px 6px;
  border-radius: var(--r-1);
  z-index: 2;
  pointer-events: none;
}
.lf-ticks-area > .time-label.key {
  background: transparent;
  bottom: 0;
  width: 44px;
  height: 44px;
  padding: 0;
  cursor: pointer;
  pointer-events: auto;
  z-index: 3;
  transform: translate(-50%, 0);
}
.lf-ticks-area > .time-label.key::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 8px;
  width: 8px;
  height: 8px;
  transform: translateX(-50%);
  clip-path: polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%);
  background: var(--color-primary);
}
.lf-ticks-area > .time-label.key.out-of-range::after,
.lf-ticks-area > .time-label.key.preroll::after {
  background: var(--color-error);
  opacity: 0.7;
}
.lf-ticks-area > .time-label.key.selected::after {
  box-shadow: 0 0 0 2px var(--color-heading);
  width: 10px;
  height: 10px;
}
.lf-ticks-area > .time-label.key.stamping { cursor: crosshair; }
.lf-ticks-area > .time-label.key.dragging { cursor: ew-resize; }
.lf-ticks-area > .time-label.key.copying { cursor: copy; }
.lf-timeline-controls { display: flex; flex-wrap: wrap; gap: var(--sp-2); }
.lf-timeline-controls .button { min-height: 44px; }
@media (max-width: 720px) {
  .lf-timeline-controls .button { min-width: 44px; }
}

.lf-ticks-tail, .lf-ticks-end { position: absolute; top: 0; bottom: 0; pointer-events: none; }
.lf-ticks-tail { background: var(--lf-track); opacity: .4; }
.lf-ticks-end { width: 1px; background: var(--lf-line, var(--color-border)); }
