/* Planer — prompter (app overlay and the stage clock screen). */
html.pr-lock,html.pr-lock body{overflow:hidden}
.pr-host{min-height:100vh;background:#000}
.pr{--pr-l:30;--pr-size:64px;--pr-margin:10%;--pr-bg:#000;--pr-fg:#f4f5f7;--pr-dim:rgba(244,245,247,.42);--pr-shade:rgba(0,0,0,.62);
  position:fixed;inset:0;z-index:300;background:var(--pr-bg);color:var(--pr-fg);font-family:var(--font-sans);overflow:hidden;
  clip-path:inset(calc(var(--pr-l) * 1%) 0 calc(100% - var(--pr-l) * 1%) 0);opacity:0;
  transition:clip-path .6s cubic-bezier(.76,0,.24,1),opacity .3s ease}
.pr.in{clip-path:inset(0 0 0 0);opacity:1}
.pr.out{clip-path:inset(calc(var(--pr-l) * 1%) 0 calc(100% - var(--pr-l) * 1%) 0);opacity:0;transition:clip-path .5s cubic-bezier(.76,0,.24,1),opacity .45s ease .05s}
.pr.invert{--pr-bg:#fff;--pr-fg:#0b0c0f;--pr-dim:rgba(11,12,15,.45);--pr-shade:rgba(255,255,255,.7)}
.pr-stage{position:absolute;inset:0;transition:transform .45s cubic-bezier(.76,0,.24,1)}
.pr-scroll{position:absolute;inset:0;overflow-y:auto;scrollbar-width:none;overscroll-behavior:contain}
.pr-scroll::-webkit-scrollbar{display:none}
.pr-content{padding:calc(var(--pr-l) * 1vh) var(--pr-margin) 100vh;transform:translateY(48px);opacity:0;transition:transform .7s cubic-bezier(.2,.8,.2,1) .28s,opacity .5s ease .28s}
.pr.in .pr-content{transform:none;opacity:1}
.pr.out .pr-content{transform:translateY(-24px);opacity:0;transition:transform .3s ease,opacity .25s ease}
.pr.upper .pr-text,.pr.upper .pr-cue-t{text-transform:uppercase}
.pr-cue{margin:0 0 calc(var(--pr-size) * .9)}
.pr-cue-h{display:flex;align-items:baseline;gap:.8em;font-size:max(13px,calc(var(--pr-size) * .3));color:var(--pr-dim);border:1px solid currentColor;border-radius:8px;padding:.35em .7em;margin-bottom:.9em;letter-spacing:.02em}
.pr-num{font-weight:800;font-variant-numeric:tabular-nums}
.pr-cue-t{font-weight:700;flex:1 1 auto;min-width:0}
.pr-cue-s{opacity:.85}
.pr-cue-time{font-variant-numeric:tabular-nums}
.pr-cue.on .pr-cue-h{color:#ef4444;background:rgba(239,68,68,.1)}
.pr-cue.on .pr-cue-h::before{content:"ON AIR";font-weight:800;font-size:.8em;letter-spacing:.08em}
.pr-cue.no-text .pr-cue-h{margin-bottom:0}
.pr.no-cues .pr-cue-h,.pr.no-cues .pr-cue.no-text{display:none}
.pr-text{font-size:min(var(--pr-size),11vw);line-height:1.38;font-weight:600;white-space:pre-wrap;overflow-wrap:break-word}
.pr-dir{color:var(--pr-dim);font-weight:500;font-style:italic}
.pr-end{font-size:max(14px,calc(var(--pr-size) * .35));letter-spacing:.3em;text-align:center;color:var(--pr-dim);padding:1em 0}
.pr-empty{font-size:max(16px,calc(var(--pr-size) * .4));color:var(--pr-dim);text-align:center;padding:1em 0}
.pr-blackout{position:absolute;left:0;right:0;top:0;height:calc(var(--pr-l) * 1% - var(--pr-size) * .55);background:linear-gradient(var(--pr-shade),var(--pr-shade) 70%,transparent);pointer-events:none;transition:opacity .3s}
.pr.no-blackout .pr-blackout{opacity:0}
.pr-line{position:absolute;left:0;right:0;top:calc(var(--pr-l) * 1%);height:0;pointer-events:none}
.pr-line::after{content:"";position:absolute;left:0;right:0;top:0;border-top:1px dashed rgba(239,68,68,.45);transform:scaleX(0);transition:transform .7s cubic-bezier(.2,.8,.2,1) .15s}
.pr.in .pr-line::after{transform:scaleX(1)}
.pr-line i{position:absolute;top:-14px;width:0;height:0;border-top:14px solid transparent;border-bottom:14px solid transparent}
.pr-line i:first-child{left:0;border-left:22px solid #ef4444}
.pr-line i:last-child{right:0;border-right:22px solid #ef4444}
.pr-head{position:absolute;left:0;right:0;top:0;padding:10px 16px;display:flex;font-size:13px;color:var(--pr-dim);pointer-events:none;transition:opacity .4s}
.pr-bar{position:absolute;left:50%;bottom:16px;transform:translateX(-50%);width:min(1100px,calc(100% - 32px));display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:8px;border-radius:14px;
  background:rgba(22,24,30,.88);border:1px solid rgba(255,255,255,.1);color:#e9ebef;backdrop-filter:blur(8px);transition:opacity .4s,transform .4s}
.pr.idle{cursor:none}
.pr.idle .pr-bar{opacity:0;transform:translate(-50%,24px);pointer-events:none}
.pr.idle .pr-head{opacity:0}
.pr-b{display:inline-flex;align-items:center;justify-content:center;min-width:40px;height:40px;border-radius:10px;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.05);color:inherit;cursor:pointer}
.pr-b:hover{background:rgba(255,255,255,.12)}
.pr-b:focus-visible,.pr-bar input:focus-visible{outline:2px solid #60a5fa;outline-offset:2px}
.pr-play{min-width:56px;background:#2563eb;border-color:#2563eb}
.pr-play:hover{background:#1d4ed8}
.pr-play.on{background:#dc2626;border-color:#dc2626}
.pr-speed{display:flex;align-items:center;gap:6px}
.pr-speed input{width:160px;accent-color:#3b82f6}
.pr-speed-v{min-width:34px;text-align:center;font-size:18px}
.pr-eta{font-size:13px;color:rgba(233,235,239,.6);padding:0 6px;white-space:nowrap}
.pr-pop{position:absolute;right:max(16px,calc(50% - 550px));bottom:84px;width:min(380px,calc(100% - 32px));max-height:calc(100% - 120px);overflow:auto;padding:14px;border-radius:14px;
  background:rgba(22,24,30,.96);border:1px solid rgba(255,255,255,.1);color:#e9ebef;display:flex;flex-direction:column;gap:10px;animation:pr-pop .22s cubic-bezier(.2,.8,.2,1)}
.pr-pop[hidden]{display:none}
@keyframes pr-pop{from{opacity:0;transform:translateY(10px) scale(.98)}}
.pr-pop-h{font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:rgba(233,235,239,.55)}
.pr-rng{display:grid;grid-template-columns:110px 1fr 54px;align-items:center;gap:10px;font-size:14px}
.pr-rng input{accent-color:#3b82f6;width:100%}
.pr-rng b{text-align:right;font-size:13px}
.pr-togs{display:grid;grid-template-columns:1fr 1fr;gap:6px 12px}
.pr-tog{display:flex;align-items:center;gap:8px;font-size:14px;cursor:pointer}
.pr-tog input{accent-color:#3b82f6;width:16px;height:16px}
.pr-keys{color:rgba(233,235,239,.55);line-height:1.5}
.pr-cuelist-b{display:flex;flex-direction:column;gap:4px}
.pr-cl{display:flex;align-items:center;gap:10px;text-align:left;padding:8px 10px;border-radius:8px;border:1px solid transparent;background:rgba(255,255,255,.04);color:inherit;cursor:pointer;font:inherit;font-size:14px}
.pr-cl:hover{background:rgba(255,255,255,.1)}
.pr-cl.on{border-color:rgba(239,68,68,.6)}
.pr-cl.dim{opacity:.55}
.pr-cl .pl-ellip{flex:1;min-width:0}
@media (max-width:720px){
  .pr-speed input{width:96px}
  .pr-eta{display:none}
  .pr-togs{grid-template-columns:1fr}
  .pr-rng{grid-template-columns:90px 1fr 48px}
  .pr-pop{top:40px;bottom:auto;max-height:calc(100% - 210px)}
}
/* director's switch: prompter on the stage clock */
.pr-onclock{gap:6px;padding:0 12px;font:inherit;font-size:13px;font-weight:600}
.pr-onclock.on{background:rgba(34,197,94,.18);border-color:rgba(34,197,94,.7);color:#bbf7d0}
@media (max-width:720px){.pr-onclock span{display:none}}
/* stage clock screen in prompter mode */
.pr-stageclock{cursor:none}
.pr-head-clock{align-items:center;gap:.8em;font-size:clamp(13px,1.8vw,24px);padding:.5em 1em;color:var(--pr-dim)}
.pr-proj{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pr-rem,.pr-clock{font-variant-numeric:tabular-nums;font-weight:800}
.pr-rem{color:var(--pr-fg);font-size:1.3em}
.pr-rem.warn{color:#f2c200}
.pr-rem.over{color:#ff3b3b}
.pr-msg{position:absolute;left:50%;top:calc(clamp(13px,1.8vw,24px) * 2.6);transform:translateX(-50%);max-width:92vw;padding:.2em .8em;border-radius:14px;background:#f5f6f8;color:#000;font-weight:800;text-align:center;font-size:clamp(18px,4.5vw,64px);line-height:1.15;z-index:2}
.pr-msg[hidden]{display:none}
.pr-msg.flash{animation:pr-flash 1s steps(2,jump-none) infinite}
@keyframes pr-flash{50%{background:#f2c200}}
@media (prefers-reduced-motion:reduce){.pr-msg.flash{animation:none;background:#f2c200}}
