/* ---------- top-of-page summary and Show details ---------- */
.topmeta{margin-top:6px}
.topval{font-weight:500;padding:2px 0;overflow-wrap:anywhere}
.detmeta .wide{grid-column:span 2}
.crewlist{display:flex;flex-direction:column;gap:6px;max-width:640px;margin-bottom:10px}
.crewrow{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr) auto auto;gap:8px;align-items:center}
.crewrow input{border:1px solid var(--line);background:var(--surface);border-radius:var(--r);padding:6px 8px;min-width:0}
@media (max-width:520px){.detmeta .wide{grid-column:auto}}
.tab{padding-inline:12px;flex:none}
@media (max-width:520px){.topmeta{grid-template-columns:1fr 1fr;gap:6px 12px}}
/* Crew access: per-tab grid for custom crew */
.aa-tabs{grid-column:1/-1;display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:6px 12px;padding:4px 0 2px}
.aa-tab{display:flex;flex-direction:column;gap:3px;font-size:12px;color:var(--muted);font-weight:600}
.aa-tab select{font-weight:500;color:var(--fg)}
.aa-tab select[data-lv=edit]{border-color:var(--accent);background:var(--accent-soft)}
.aa-tab select[data-lv=none]{color:var(--muted)}
/* headshots: saved framing, and the Adjust photo dialog */
.av.framed{position:relative}
.ph-ov{position:fixed;inset:0;z-index:80;background:rgba(0,0,0,.55);display:grid;place-items:center;padding:16px}
.ph-box{width:min(420px,100%);max-height:100%;overflow:auto;background:var(--surface);color:var(--fg);border:1px solid var(--line-strong);border-radius:14px;padding:18px;box-shadow:0 20px 50px rgba(0,0,0,.35)}
.ph-box h3{margin:0 0 4px}.ph-box .hint{margin:0 0 12px}
.ph-stage{position:relative;width:min(260px,100%);aspect-ratio:1;margin:0 auto;border-radius:14px;overflow:hidden;background:var(--accent-soft);cursor:grab;touch-action:none;user-select:none}
.ph-stage.dragging{cursor:grabbing}
.ph-stage img{pointer-events:none}
.ph-zoom{display:flex;align-items:center;gap:10px;margin:14px auto 0;width:min(260px,100%);font-size:12px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}
.ph-zoom input{flex:1;accent-color:var(--accent)}
.ph-minis{display:flex;align-items:center;gap:12px;justify-content:center;margin:14px 0 4px}
.ph-minis .hint{margin:0;font-size:12px}
.ph-acts{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.ph-sp{flex:1}
.rehcell{display:flex;flex-direction:column;gap:2px;min-width:0}
.rehmore{align-self:flex-start;background:none;border:0;padding:0 2px;font:inherit;font-size:12px;color:var(--accent);cursor:pointer;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.rehmore:hover{text-decoration:underline}
.rehmore.add{color:var(--muted);opacity:.75}.rehmore.add:hover,.rehmore.add:focus-visible{opacity:1;color:var(--accent)}
.reh-box{width:min(520px,100%)}
.reh-list{display:flex;flex-direction:column;gap:8px}
.reh-row{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr) auto;gap:6px;align-items:center}
.reh-row .ci{border:1px solid var(--line-strong);border-radius:var(--r);padding:6px 8px;background:var(--surface);color:var(--fg)}
@media (max-width:480px){.reh-row{grid-template-columns:minmax(0,1fr) auto}.reh-row .ci:nth-child(2){grid-column:1}}
.segbox{display:grid;grid-template-columns:112px minmax(0,1fr);align-items:center;gap:0;border:1px solid var(--line-strong);border-radius:999px;padding:0 6px;min-width:250px;background:var(--surface)}
.segbox .ci{border-color:transparent;border-radius:999px;padding:4px 6px}
.segbox .ci.mono{width:100%;min-width:0;padding-right:2px;border-right:1px solid var(--line);border-radius:0}
.segbox:focus-within{border-color:var(--accent)}
.times-bar{display:flex;justify-content:flex-end;margin-bottom:8px}
.btn.tog[aria-pressed="true"]{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}
/* Live view button: red "on air" button with a pulsing white dot, stands out from the other RF view controls */
#btn-live{display:inline-flex;align-items:center;gap:8px;padding:9px 18px;margin-left:6px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;font-size:14px;background:#d63a2f;border-color:#d63a2f;color:#fff;box-shadow:0 2px 8px rgba(214,58,47,.35)}
#btn-live::before{content:"";width:9px;height:9px;border-radius:50%;background:#fff;box-shadow:0 0 0 0 rgba(255,255,255,.7);animation:livepulse 1.8s ease-out infinite}
#btn-live:hover{background:#c22f25;border-color:#c22f25;filter:none;box-shadow:0 3px 12px rgba(214,58,47,.45)}
#btn-live:focus-visible{outline:2px solid #d63a2f;outline-offset:2px}
@keyframes livepulse{0%{box-shadow:0 0 0 0 rgba(255,255,255,.7)}70%{box-shadow:0 0 0 7px rgba(255,255,255,0)}100%{box-shadow:0 0 0 0 rgba(255,255,255,0)}}
@media (prefers-reduced-motion:reduce){#btn-live::before{animation:none}}
.themebtn{display:inline-grid;place-items:center;width:36px;height:34px;padding:0;color:var(--fg)}
.themebtn svg{display:block}
/* header brand: JC Live logo (green on light, white on dark) | ADVANCE */
:root{--logo:#ffffff}html.lt{--logo:#0B3B27}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.brand{gap:12px}
.brand-logo{display:inline-block;width:68px;height:28px;background:var(--logo);-webkit-mask:url(/img/jc-live-logo.png) center/contain no-repeat;mask:url(/img/jc-live-logo.png) center/contain no-repeat}
.brand-sep{width:1.5px;height:22px;background:var(--line-strong)}
/* sign-in screen follows light / dark too: light = soft background, green logo and text */
html.lt #aa-gate{background:#f4f7f5;color:#0B3B27}
html.lt #aa-gate::before{background:linear-gradient(162deg,rgba(11,59,39,.06) 0 28%,transparent 28.1%),linear-gradient(200deg,rgba(11,59,39,.04) 0 22%,transparent 22.1%),linear-gradient(140deg,transparent 0 70%,rgba(11,59,39,.05) 70.1%)}
html.lt #aa-gate::after{background:linear-gradient(90deg,#0B3B27 0 25%,rgba(11,59,39,.75) 25% 50%,rgba(11,59,39,.55) 50% 75%,rgba(11,59,39,.35) 75%)}
html.lt .aa-logo{object-position:-9999px 0;background:#0B3B27;-webkit-mask:url(/img/jc-live-logo.png) center/contain no-repeat;mask:url(/img/jc-live-logo.png) center/contain no-repeat}
html.lt .aa-brand{color:rgba(11,59,39,.75);border-bottom-color:rgba(11,59,39,.2)}
html.lt .aa-box h1{color:#0B3B27}html.lt .aa-box p{color:rgba(11,59,39,.78)}
html.lt #aa-gate .btn{border-color:rgba(11,59,39,.5);color:#0B3B27}html.lt #aa-gate .btn:hover{background:rgba(11,59,39,.06)}
html.lt #aa-gate .aa-google{background:#0B3B27;color:#fff;border-color:#0B3B27;box-shadow:0 6px 24px rgba(11,59,39,.25)}html.lt #aa-gate .aa-google:hover{background:#124d34}
html.lt .aa-google .aa-g{background:#fff;border-radius:50%;padding:3px;box-sizing:content-box;width:18px;height:18px}
html.lt .aa-foot{color:rgba(11,59,39,.55)}
/* show logo at the far right of the show name */
.showhead{position:relative}
.show-logo{position:absolute;right:0;top:12px;height:60px;display:flex;align-items:center;justify-content:flex-end;max-width:240px}
.show-logo img{max-height:60px;max-width:240px;object-fit:contain}
html.lt .show-logo .d,html:not(.lt) .show-logo .l{display:none}
.showhead.haslogo{padding-right:260px}
@media (max-width:640px){.show-logo{position:static;height:auto;margin-bottom:6px;justify-content:flex-start}.show-logo img{max-height:44px}.showhead.haslogo{padding-right:0}}
/* Show details: logo uploads */
.logo-sec{margin-top:22px}
.logo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,340px));gap:12px}
.logo-slot{display:flex;flex-direction:column;gap:6px;border:1px solid var(--line);border-radius:10px;padding:12px;background:var(--surface)}
.logo-slot .hint{margin:0;font-size:12px}
.logo-slot.drop{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}
.logo-pv{height:96px;border-radius:8px;display:grid;place-items:center;padding:10px;border:1px solid var(--line)}
.logo-slot.lt .logo-pv{background:#ffffff}.logo-slot.dk .logo-pv{background:#0f1412}
.logo-pv img{max-height:76px;max-width:100%;object-fit:contain}
.logo-empty{font-size:12px;color:#8a958f}
.logo-acts{display:flex;gap:8px}
.brand-name{font-family:"Poppins",sans-serif;font-weight:600;font-size:14px;letter-spacing:.22em;text-transform:uppercase;line-height:1}
/* show logo on the RF live view, hard right of the session name */
.live-sess.haslogo{align-items:center}
.lv-logo{margin-left:auto;display:flex;align-items:center;height:52px}
.lv-logo img{max-height:52px;max-width:240px;object-fit:contain}
html.lt .lv-logo .d,html:not(.lt) .lv-logo .l{display:none}
@media (max-width:640px){.lv-logo{height:36px}.lv-logo img{max-height:36px;max-width:160px}}
/* RF live view: once "Mic Returned" is ticked the card collapses to the person + sign-off boxes (it stays in place) */
.lcard[data-st="ret"]{align-self:start;gap:10px}
.lcard[data-st="ret"] :is(.lc-sched,.lc-times,.lc-notes,.lc-cue){display:none}
.lcard[data-st="ret"] .lc-top .av.lg{width:56px;height:56px;font-size:18px;border-radius:10px}
.lcard[data-st="ret"] .lc-checks{margin-top:0}
.lc-times .lc-seg{grid-column:2}
/* ---------- more than one console (Console I/O tab) ---------- */
.conhd-main{margin:0 0 4px;font-family:var(--f-display);font-weight:600;font-size:15px;text-transform:uppercase;letter-spacing:.06em}
.conblock{border-top:1px solid var(--line);padding-top:12px;margin:0 0 14px}
.conhd{display:flex;align-items:center;justify-content:space-between;gap:8px 12px;flex-wrap:wrap}
.conhd h4{margin:0;font-family:var(--f-display);font-weight:600;font-size:15px;text-transform:uppercase;letter-spacing:.06em}
.conacts{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.conacts .confirm{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:13px}
.conacts .btn.sm{padding:4px 9px;font-size:13px;border-radius:6px}
.conblock .meta{margin-top:6px}
#btn-addcon{margin:0 0 18px}
.mcards h4.congrp{grid-column:1/-1;margin:10px 0 -2px;font-family:var(--f-display);font-weight:600;font-size:15px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.mcards h4.congrp:first-child{margin-top:0}
