/* ============================================================================
   PREVIOUSLY · pv-progress.css — continue-watching UI (2026-10-02)
   Shared by podcasts + free movies. Progress bars are transform: scaleX()
   only — compositor thread, zero layout thrash.
   ========================================================================== */

/* episode number badge (podcast show pages) — overlays the artwork corner */
.pvnum{
  position:absolute; top:8px; left:8px; z-index:4;
  min-width:34px; height:34px; padding:0 8px; border-radius:10px;
  background:rgba(var(--desert-pressed-rgb), .88); border:1px solid var(--desert-pressed); color:var(--brand-ink);
  display:inline-flex; align-items:center; justify-content:center;
  font-weight:800; font-size:15px; font-variant-numeric:tabular-nums;
  pointer-events:none;
}button[data-pv-play].pv-latest .pvnum{ background:var(--brand-red); border-color:var(--brand-red); color:var(--desert-ink); }.pvlatest{
  display:inline-block; background:var(--brand-red); color:var(--desert-ink); font-size:10px; font-weight:800;
  letter-spacing:1.4px; text-transform:uppercase; border-radius:20px; padding:3px 10px;
  margin:0 6px 4px 0; vertical-align:1px;
}/* thin progress bar pinned to the bottom of a card/button */
.pvprog{
  position:absolute; left:0; right:0; bottom:0; height:3px; z-index:3;
  background:rgba(var(--desert-card-rgb), .14); border-radius:0 0 12px 12px; overflow:hidden;
  pointer-events:none;
}.pvprog i{
  display:block; height:100%; width:100%; background:var(--brand-red);
  transform:scaleX(0); transform-origin:left center;
}button[data-pv-play]{ position:relative; }button[data-pv-play].pv-watched .pvprog i{ background:var(--color-win); }/* "Resume from 24:15" line under the episode meta */
.pvresume{
  display:block; color:var(--color-win); font-size:12px; font-weight:600; margin-top:4px;
  font-variant-numeric:tabular-nums;
}.pvresume.pv-done{ color:var(--desert-ink-dim); }/* Continue Listening / Continue Watching rails */
.pv-rail{
  display:flex; gap:12px; overflow-x:auto; padding:4px 2px 16px;
  scroll-snap-type:x proximity; -webkit-overflow-scrolling:touch; scrollbar-width:thin;
}.pvccard{
  flex:0 0 218px; scroll-snap-align:start; position:relative; text-align:left;
  background:var(--desert-pressed); border:1px solid var(--desert-pressed); border-radius:14px; overflow:hidden;
  cursor:pointer; color:var(--brand-ink); font:inherit; padding:0;
  transition:border-color .15s ease;
}.pvccard:hover{ border-color:var(--desert-pressed); }.pvccard .art{ position:relative; display:block; aspect-ratio:16/10; background:var(--desert-pressed); }.pvccard .art img{ width:100%; height:100%; object-fit:cover; display:block; }.pvccard .art .pvprog{ border-radius:0; }.pvccard .art .go{
  position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
  background:rgba(var(--desert-shadow-rgb), .25); opacity:0; transition:opacity .15s;
  color:var(--desert-ink); font-size:20px;
}.pvccard:hover .art .go{ opacity:1; }.pvccard .art .go::before{
  content:"▶"; width:46px; height:46px; border-radius:50%; background:var(--brand-red);
  display:flex; align-items:center; justify-content:center; padding-left:3px;
}.pvccard .tb{ display:block; padding:10px 12px 12px; }.pvccard .tb b{
  display:block; font-size:13.5px; line-height:1.35; margin-bottom:3px;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
}.pvccard .tb small{ color:var(--desert-ink-dim); font-size:12px; }/* free-movie card progress (cards have id="movie-<slug>") */
.pv-card{ position:relative; }.pv-card .pvprog{ border-radius:0; height:4px; }.pv-card.pv-watched .pvprog i{ background:var(--color-win); }/* resume toast inside players */
.pv-resumed{
  display:none; margin-top:10px; font-size:12.5px; font-weight:600; color:var(--color-win);
  background:rgba(var(--color-win-rgb), .1); border:1px solid rgba(var(--color-win-rgb), .3);
  border-radius:10px; padding:8px 12px; font-variant-numeric:tabular-nums;
}.pv-resumed.show{ display:block; }@media (prefers-reduced-motion:reduce){.pvccard, button[data-pv-play]{ transition:none; }
}/* James 2026-10-04: Clip badge — clips are labeled, never numbered.
   Same position as .pvnum but distinct styling (gray, not red). */
.pvclip{
  position:absolute; top:8px; left:8px; z-index:4;
  height:26px; padding:0 10px; border-radius:8px;
  background:rgba(var(--desert-ink-dim-rgb), .92); border:1px solid var(--desert-ink-dim); color:var(--desert-ink);
  display:inline-flex; align-items:center; justify-content:center;
  font-weight:700; font-size:11px; letter-spacing:1.2px; text-transform:uppercase;
  pointer-events:none;
}button[data-pv-play].pv-clip .pvnum{ display:none; }
