/* The screen while the film is made, after the review (progress_panel.html #render-screen, app-status-render.js). */
/* minmax(0, 1fr) and min-width: 0: a long format line or stage name wraps instead of widening the panel on a phone. */
.render-screen { display: grid; grid-template-columns: minmax(0, 1fr); gap: 14px; margin: 4px 0 18px; }
.render-screen > * { min-width: 0; margin: 0; }
.render-screen[hidden] { display: none; }

/* While it shows, the build's checklist and its counters are not on the panel (the photos chosen stay, under it). */
#progress.rendering > .eyebrow, #progress.rendering > #status-title, #progress.rendering > .progress-track,
#progress.rendering > #status-message, #progress.rendering > #status-detail, #progress.rendering > #status-wait,
#progress.rendering > #showcase, #progress.rendering > #status-log, #progress.rendering > #retry-build { display: none; }

.render-format { color: var(--accent); font-size: .8rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.render-overall { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 14px; }
.render-percent { font-family: "Fraunces", Georgia, serif; font-size: 2.2rem; line-height: 1; color: var(--ink);
  font-variant-numeric: tabular-nums; }
.render-track { height: 8px; border-radius: var(--r-pill); background: var(--surface-2); overflow: hidden; }
.render-track span { display: block; width: 0; height: 100%; border-radius: var(--r-pill);
  background: linear-gradient(100deg, var(--gold), var(--violet)); transition: width .6s ease; }
.render-now { font-size: 1.1rem; font-weight: 600; color: var(--ink); }

/* The latest finished scene large (a phone's width at most), the ones before it in a strip under it. */
.render-scene { display: grid; gap: 6px; justify-items: start; }
.render-scene[hidden] { display: none; }
.render-scene img { width: min(100%, 360px); aspect-ratio: 4 / 3; object-fit: cover; border-radius: 12px;
  background: var(--surface-2); border: 1px solid var(--line); animation: showcase-in .4s ease-out; }
.render-scene figcaption { font-size: .8rem; color: var(--muted); }
.render-strip { list-style: none; padding: 0; display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 6px;
  max-width: 360px; }
.render-strip:empty { display: none; }
.render-strip li { aspect-ratio: 1; border-radius: 8px; overflow: hidden; background: var(--surface-2); min-width: 0; }
.render-strip img { width: 100%; height: 100%; object-fit: cover; display: block; }
.render-count { font-size: .9rem; color: var(--ink-dim); font-variant-numeric: tabular-nums; }
.render-count:empty { display: none; }

.render-stages { list-style: none; padding: 0; display: grid; gap: 8px; font-size: .9rem; color: var(--muted); }
.render-stages li { display: grid; grid-template-columns: 18px minmax(0, 1fr) auto; align-items: center; gap: 10px; min-width: 0; }
.render-stages li::before { content: ""; width: 10px; height: 10px; margin: 0 4px; border-radius: 50%; border: 1.5px solid var(--line-strong); }
.render-stages li.done { color: var(--ink-dim); }
.render-stages li.done::before { background: var(--gold); border-color: var(--gold); }
.render-stages li.current { color: var(--ink); font-weight: 600; }
.render-stages li.current::before { border-color: var(--accent); box-shadow: 0 0 0 4px rgba(240, 177, 85, .18); }
.render-stage-name { min-width: 0; overflow-wrap: break-word; }
.render-stage-state { font-variant-numeric: tabular-nums; color: var(--accent); font-weight: 600; }
.render-stages li.done .render-stage-state { color: var(--ink-dim); font-weight: 400; }
.render-leave { font-size: .88rem; color: var(--ink-dim); }

@media (prefers-reduced-motion: reduce) { .render-scene img { animation: none; } .render-track span { transition: none; } }
