:root{
  color-scheme: light;
  --bg: #eef1ee;
  --surface: #ffffff;
  --surface-2: #e3e9e5;
  --ink: #1a231f;
  --ink-dim: #55625b;
  --ink-faint: #7c8880;
  --border: #cbd5cd;
  --accent: #a8681c;
  --accent-ink: #6d4210;
  --accent-bg: #f2e3cd;
  --teal: #2b6c5e;
  --teal-bg: #d9ece5;
  --shadow: 0 1px 2px rgba(26,35,31,.06), 0 10px 28px -10px rgba(26,35,31,.18);
  --stage: #05070a;
  --stage-ink: #f4f2ec;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    color-scheme: dark;
    --bg: #12161a;
    --surface: #1a2025;
    --surface-2: #212830;
    --ink: #eae7e0;
    --ink-dim: #a7ada6;
    --ink-faint: #7d857f;
    --border: #2b333a;
    --accent: #e0984c;
    --accent-ink: #f4d9b3;
    --accent-bg: rgba(224,152,76,.14);
    --teal: #63b6a1;
    --teal-bg: rgba(99,182,161,.14);
    --shadow: 0 1px 2px rgba(0,0,0,.3), 0 10px 30px -10px rgba(0,0,0,.55);
  }
}
:root[data-theme="dark"]{
  color-scheme: dark;
  --bg: #12161a;
  --surface: #1a2025;
  --surface-2: #212830;
  --ink: #eae7e0;
  --ink-dim: #a7ada6;
  --ink-faint: #7d857f;
  --border: #2b333a;
  --accent: #e0984c;
  --accent-ink: #f4d9b3;
  --accent-bg: rgba(224,152,76,.14);
  --teal: #63b6a1;
  --teal-bg: rgba(99,182,161,.14);
  --shadow: 0 1px 2px rgba(0,0,0,.3), 0 10px 30px -10px rgba(0,0,0,.55);
}
*{ box-sizing: border-box; }
html, body{ margin:0; padding:0; background:var(--bg); color:var(--ink); font-family:'IBM Plex Sans', system-ui, sans-serif; }
:focus-visible{ outline:2px solid var(--accent); outline-offset:2px; }
#stage{ position:fixed; inset:0; background:var(--stage); overflow:hidden; z-index:1; }
.frame{ position:absolute; inset:0; }
.scene-video{ width:100%; height:100%; object-fit:cover; display:block; background:var(--stage); }
.video-scrim{ position:absolute; left:0; right:0; bottom:0; height:110px; background:linear-gradient(to top, rgba(0,0,0,.6), transparent); z-index:1; pointer-events:none; }
.slate{ position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; padding:48px; }
.slate--vinheta{ background: radial-gradient(140% 100% at 50% -10%, #163a33 0%, var(--stage) 62%); }
.slate--anuncio{ background: radial-gradient(140% 100% at 50% -10%, #3a2a12 0%, var(--stage) 62%); }
.slate--encerramento{ background: radial-gradient(140% 100% at 50% -10%, #1c1f24 0%, var(--stage) 62%); }
.slate-brand{ position:absolute; bottom:44px; left:32px; font-family:'Fraunces', serif; font-style:italic; font-weight:600; font-size:15px; letter-spacing:.02em; color: rgba(244,242,236,.5); }
.slate-title{ font-family:'Fraunces', serif; font-weight:700; font-size:clamp(30px,6vw,60px); color:var(--stage-ink); margin:0 0 14px; text-wrap:balance; max-width:18ch; }
.slate-caption{ font-family:'IBM Plex Mono', monospace; font-size:14px; letter-spacing:.04em; text-transform:uppercase; color: rgba(244,242,236,.62); margin:0; max-width:44ch; }
.tally{ position:absolute; top:24px; left:32px; display:flex; align-items:center; gap:8px; font-family:'IBM Plex Mono', monospace; font-size:11px; letter-spacing:.08em; text-transform:uppercase; color: rgba(244,242,236,.8); z-index:2; }
.dot{ width:8px; height:8px; border-radius:50%; animation: pulse 1.6s ease-in-out infinite; flex:none; }
.dot--vinheta{ background:#63b6a1; }
.dot--anuncio{ background:#e0984c; }
.dot--encerramento{ background:#8a9089; }
@keyframes pulse{ 0%,100%{ opacity:1; } 50%{ opacity:.35; } }
@media (prefers-reduced-motion: reduce){ .dot{ animation:none; } }
.counter{ position:absolute; top:24px; right:32px; font-family:'IBM Plex Mono', monospace; font-size:11px; letter-spacing:.06em; color: rgba(244,242,236,.7); z-index:2; font-variant-numeric: tabular-nums; }
.progress{ position:absolute; left:0; right:0; bottom:0; height:4px; background: rgba(244,242,236,.14); z-index:2; }
.progress-fill{ height:100%; width:0%; background:currentColor; }
.updated{ position:absolute; bottom:14px; left:32px; font-family:'IBM Plex Mono', monospace; font-size:10px; color: rgba(244,242,236,.32); z-index:2; }
#panelToggle{ position:fixed; right:18px; bottom:18px; width:42px; height:42px; border-radius:50%; border:1px solid var(--border); background:var(--surface); color:var(--ink-dim); display:flex; align-items:center; justify-content:center; font-size:17px; cursor:pointer; opacity:.4; transition: opacity .2s ease; z-index:10; box-shadow:var(--shadow); }
#panelToggle:hover, #panelToggle:focus-visible{ opacity:1; }
#panel{ position:fixed; top:0; right:0; bottom:0; width:min(420px, 100vw); background:var(--surface); border-left:1px solid var(--border); box-shadow:var(--shadow); z-index:11; display:flex; flex-direction:column; font-family:'IBM Plex Sans', sans-serif; color:var(--ink); }
#panel[hidden]{ display:none; }
.panel-header{ padding:20px 20px 14px; border-bottom:1px solid var(--border); display:flex; align-items:baseline; justify-content:space-between; flex:none; }
.panel-header h2{ font-family:'Fraunces', serif; font-size:19px; margin:0; font-weight:600; }
.panel-close{ background:none; border:none; color:var(--ink-faint); font-size:22px; line-height:1; cursor:pointer; padding:0; }
.panel-close:hover{ color:var(--ink); }
.scene-list{ list-style:none; margin:0; padding:14px 16px; display:flex; flex-direction:column; gap:12px; overflow-y:auto; flex:1 1 auto; min-height:0; }
.scene-card{ border:1px solid var(--border); border-radius:8px; padding:14px; background:var(--surface-2); display:flex; flex-direction:column; gap:9px; }
.scene-card-head{ display:flex; align-items:center; gap:8px; }
.scene-badge{ font-family:'IBM Plex Mono', monospace; font-size:10.5px; font-weight:600; padding:3px 9px; border-radius:20px; text-transform:uppercase; letter-spacing:.03em; white-space:nowrap; }
.scene-badge--vinheta{ background:var(--teal-bg); color:var(--teal); }
.scene-badge--anuncio{ background:var(--accent-bg); color:var(--accent-ink); }
.scene-badge--encerramento{ background:var(--surface); color:var(--ink-dim); border:1px solid var(--border); }
.scene-order-btns{ margin-left:auto; display:flex; gap:4px; }
.icon-btn{ border:1px solid var(--border); background:var(--surface); color:var(--ink-dim); border-radius:6px; width:26px; height:26px; display:flex; align-items:center; justify-content:center; cursor:pointer; font-size:12px; }
.icon-btn:hover{ color:var(--ink); }
.icon-btn:disabled{ opacity:.35; cursor:default; }
.scene-field label{ font-family:'IBM Plex Mono', monospace; font-size:10px; text-transform:uppercase; letter-spacing:.05em; color:var(--ink-faint); display:block; margin-bottom:3px; }
.scene-field input, .scene-field select{ width:100%; padding:7px 9px; border:1px solid var(--border); border-radius:6px; background:var(--surface); color:var(--ink); font:13px 'IBM Plex Sans', sans-serif; }
.scene-field-row{ display:flex; gap:8px; }
.scene-field-row > *{ flex:1; }
.scene-remove{ align-self:flex-end; font-family:'IBM Plex Mono', monospace; font-size:11px; color:var(--ink-faint); background:none; border:none; cursor:pointer; text-decoration:underline; padding:0; }
.scene-remove:hover{ color:#b5493f; }
.panel-add{ padding:4px 16px 14px; flex:none; }
.btn{ font-family:'IBM Plex Sans', sans-serif; font-size:13px; font-weight:600; padding:9px 14px; border-radius:7px; border:1px solid var(--border); background:var(--surface); color:var(--ink); cursor:pointer; }
.btn:hover{ background:var(--surface-2); }
.btn--primary{ background:var(--accent); color:#fff; border-color:var(--accent); }
.btn--primary:hover{ filter:brightness(1.06); }
.btn-row{ display:flex; gap:8px; padding:0 16px 16px; flex:none; }
.btn-row .btn{ flex:1; }
.status{ padding:0 16px 10px; font-family:'IBM Plex Mono', monospace; font-size:11.5px; color:var(--ink-dim); min-height:1.3em; flex:none; }
.status--ok{ color:var(--teal); }
.status--warn{ color:var(--accent-ink); }
.panel-note{ padding:0 16px 18px; font-size:11.5px; line-height:1.5; color:var(--ink-faint); flex:none; }
@media (max-width: 480px){ #panel{ width:100vw; } }
