/* Storyboard video maker — the arranger screen.
   Built to plans/storyboard-arranger/mock-arranger.html, using the app's own
   glow tokens (--glow-accent, --bg, --radius-*) rather than the mock's
   private copies, so it sits inside the Fizzavo window instead of beside it. */

.sb-arranger { display: block; }

/* ---------- top bar ---------- */
.sb-topbar {
  position: sticky; top: 0; z-index: 5;
  display: flex; align-items: center; gap: 16px; flex-wrap: wrap;
  padding: 16px 0;
  background: color-mix(in srgb, var(--glow-accent, #a78bfa) 5%, var(--bg, #06111a));
  border-bottom: 1px solid color-mix(in srgb, var(--glow-accent, #a78bfa) 22%, transparent);
}
.sb-runname { font-size: 1.25rem; font-weight: 700; display: block; }
.sb-runsub { display: block; font-size: 0.8rem; color: var(--text-muted, #7d8b99); }
.sb-spacer { flex: 1 1 auto; }
.sb-saved {
  display: inline-flex; align-items: center; gap: 6px;
  color: var(--success, #4ade80); font-size: 0.85rem; font-weight: 600;
}
.sb-bad { color: var(--danger, #f87171); font-size: 0.85rem; font-weight: 600; margin: 0; }

/* ---------- layout ---------- */
.sb-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 340px;
  gap: 24px;
  padding: 24px 0 96px;
  align-items: start;
}
@media (max-width: 980px) { .sb-layout { grid-template-columns: minmax(0, 1fr); } }
.sb-scroll { min-width: 0; }
.sb-helpline { margin: 0 0 16px; color: var(--text-muted, #7d8b99); font-size: 0.9rem; line-height: 1.5; }

/* ---------- a part of the voice ---------- */
.sb-part {
  padding: 16px; margin-bottom: 16px;
  background: color-mix(in srgb, var(--glow-accent, #a78bfa) 4%, var(--bg, #06111a));
  border: 1px solid transparent;
  border-radius: var(--radius-lg, 12px);
  box-shadow: 0 0 18px color-mix(in srgb, var(--glow-accent, #a78bfa) 18%, transparent);
}
.sb-part-check {
  border-color: color-mix(in srgb, var(--sunny, #ffd666) 55%, transparent);
  box-shadow: 0 0 20px color-mix(in srgb, var(--sunny, #ffd666) 30%, transparent);
}
.sb-part-head { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin-bottom: 12px; }
.sb-grip { color: color-mix(in srgb, var(--glow-accent, #a78bfa) 45%, transparent); font-size: 1.1rem; }
.sb-time {
  font-size: 0.8rem; color: var(--text-muted, #7d8b99);
  font-variant-numeric: tabular-nums;
  border: 1px dashed color-mix(in srgb, var(--glow-accent, #a78bfa) 22%, transparent);
  border-radius: 999px; padding: 3px 10px;
}
.sb-flag {
  display: inline-flex; align-items: center; gap: 6px;
  background: color-mix(in srgb, var(--sunny, #ffd666) 16%, transparent);
  border: 1px solid color-mix(in srgb, var(--sunny, #ffd666) 55%, transparent);
  color: var(--sunny, #ffd666);
  border-radius: 999px; padding: 3px 12px; font-size: 0.8rem; font-weight: 700;
}
.sb-words {
  width: 100%; min-height: 62px; resize: vertical;
  font: inherit; font-size: 1rem; line-height: 1.5;
  color: color-mix(in srgb, var(--glow-accent, #a78bfa) 85%, white);
  background: color-mix(in srgb, var(--glow-accent, #a78bfa) 7%, transparent);
  border: 1px solid color-mix(in srgb, var(--glow-accent, #a78bfa) 30%, transparent);
  border-radius: var(--radius-sm, 6px);
  padding: 10px 12px;
}

/* ---------- the picture row ---------- */
.sb-picrow {
  display: flex; gap: 12px; flex-wrap: wrap;
  margin-top: 12px; padding: 12px;
  border: 1px dashed color-mix(in srgb, var(--glow-accent, #a78bfa) 22%, transparent);
  border-radius: var(--radius-md, 10px);
  min-height: 150px; align-items: flex-start;
}
.sb-pic {
  width: 190px; margin: 0;
  border-radius: var(--radius-md, 10px);
  background: color-mix(in srgb, var(--glow-accent, #a78bfa) 6%, var(--bg-elevated, #0a1722));
  border: 1px solid color-mix(in srgb, var(--glow-accent, #a78bfa) 26%, transparent);
  box-shadow: 0 0 10px color-mix(in srgb, var(--glow-accent, #a78bfa) 16%, transparent);
  overflow: hidden;
  cursor: grab;
  touch-action: none;          /* the pointer drag owns the gesture */
  user-select: none;
}
.sb-pic:active { cursor: grabbing; }
.sb-pic-dragging { opacity: 0.35; }
.sb-thumb { display: block; width: 100%; height: 106px; object-fit: cover; background: #0b0b0b; }
.sb-pic-tray { width: 140px; }
.sb-pic-tray .sb-thumb { height: 84px; }
.sb-pic-body { padding: 8px 10px 10px; }
.sb-pic-name { font-size: 0.8rem; font-weight: 600; margin-bottom: 6px; }
.sb-pic-meta { font-size: 0.72rem; color: var(--text-muted, #7d8b99); margin-bottom: 8px; }
.sb-blocked-why { font-size: 0.75rem; color: var(--danger, #f87171); font-weight: 600; line-height: 1.35; margin: 0 0 8px; }

.sb-toggles { display: flex; flex-direction: column; gap: 5px; }
.sb-tog { display: flex; align-items: center; gap: 7px; font-size: 0.76rem;
  color: var(--text-muted, #7d8b99); cursor: pointer; }
.sb-tog input { accent-color: var(--glow-accent, #a78bfa); width: 15px; height: 15px; }
.sb-tog-off { cursor: not-allowed; opacity: 0.65; }
.sb-why { display: block; font-size: 0.7rem; font-style: italic;
  color: var(--sunny, #ffd666); margin-top: 2px; padding-left: 22px; }
.sb-empty-hint { color: var(--text-muted, #7d8b99); font-size: 0.85rem; margin: auto; }

/* ---------- the tray ---------- */
.sb-aside { position: sticky; top: 88px; }
.sb-tray {
  padding: 16px;
  background: color-mix(in srgb, var(--glow-accent, #a78bfa) 4%, var(--bg, #06111a));
  border-radius: var(--radius-lg, 12px);
  box-shadow: 0 0 18px color-mix(in srgb, var(--glow-accent, #a78bfa) 18%, transparent);
}
.sb-tray h2 { font-size: 1rem; margin: 0 0 8px; }
.sb-tray-sub { font-size: 0.82rem; color: var(--text-muted, #7d8b99); margin: 0 0 12px; line-height: 1.45; }
.sb-input { width: 100%; }
.sb-wide { width: 100%; margin-top: 8px; }
.sb-drop-zone {
  margin-top: 12px;
  border: 2px dashed color-mix(in srgb, var(--glow-accent, #a78bfa) 34%, transparent);
  border-radius: var(--radius-md, 10px);
  padding: 24px 12px; text-align: center; cursor: pointer;
  color: var(--text-muted, #7d8b99); font-size: 0.85rem; line-height: 1.5;
}
.sb-drop-zone strong { display: block; color: var(--text, #cbbcf5); font-size: 0.92rem; margin-bottom: 4px; }
.sb-drop-over { background: color-mix(in srgb, var(--glow-accent, #a78bfa) 12%, transparent); }
.sb-tray-pics { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 16px; min-height: 100px; }
.sb-stock-strip { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 8px; }
.sb-stock { border: 0; background: none; padding: 0; cursor: pointer; width: 96px; }
.sb-stock-img { width: 96px; height: 60px; object-fit: cover; border-radius: var(--radius-sm, 6px); display: block; }
.sb-stock-name { display: block; font-size: 0.7rem; color: var(--text-muted, #7d8b99);
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

.sb-audio-holder { margin-top: 8px; }
.sb-audio { width: 100%; }

/* ---------- the approve bar ---------- */
.sb-approvebar {
  position: sticky; bottom: 0; z-index: 6;
  display: flex; align-items: center; gap: 16px; flex-wrap: wrap;
  padding: 12px 0;
  background: color-mix(in srgb, var(--glow-accent, #a78bfa) 7%, var(--bg-sunken, #040c13));
  border-top: 1px solid color-mix(in srgb, var(--glow-accent, #a78bfa) 22%, transparent);
}
.sb-approvebar p { margin: 0; font-size: 0.85rem; color: var(--text-muted, #7d8b99); }

/* ---------- the drag ---------- */
.sb-ghost {
  position: fixed; z-index: 200; pointer-events: none;
  display: flex; align-items: center; justify-content: center; text-align: center;
  padding: 8px; font-size: 0.78rem; font-weight: 600;
  color: var(--text, #cbbcf5);
  background: color-mix(in srgb, var(--glow-accent, #a78bfa) 22%, var(--bg-elevated, #0a1722));
  border: 1px solid color-mix(in srgb, var(--glow-accent, #a78bfa) 60%, transparent);
  border-radius: var(--radius-md, 10px);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.5);
  opacity: 0.9;
}
.sb-picrow .sb-drop, .sb-tray-pics .sb-drop {
  border: 2px dashed color-mix(in srgb, var(--glow-accent, #a78bfa) 55%, transparent);
  border-radius: var(--radius-md, 10px);
  background: color-mix(in srgb, var(--glow-accent, #a78bfa) 8%, transparent);
  padding: 0; margin: 0;
}
