/* Planer app layer — builds on tokens.css + bundle.css. Depth only via layers and 1px borders, no shadows. */
html,body{min-height:100%}
:root{color-scheme:dark}
[data-theme=light]{color-scheme:light}
.gfx-grid td:first-child b{white-space:nowrap}
body{overscroll-behavior-y:none}
a{color:var(--accent-text)}
a.pl-btn,a.pl-nav,a.pl-livebtn{text-decoration:none}
button{font-family:var(--font-sans)}
[hidden]{display:none !important}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ---------- Shell ---------- */
.pl-app{min-height:100vh}
.pl-side{position:sticky;top:0;height:100vh;overflow-y:auto;z-index:20}
.pl-top{position:sticky;top:0;z-index:15;min-width:0}
.pl-top .proj{min-width:0}
.pl-top .proj b,.pl-top .proj span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}
.pl-nav{cursor:pointer;border:0;background:none;width:100%;text-align:left;font-family:var(--font-sans)}
.pl-app.collapsed .pl-side{align-items:center;padding:12px 8px}
.pl-app.collapsed .pl-side .pl-nav{width:40px;padding:0;justify-content:center}
.pl-app.collapsed .pl-side .nav-t,.pl-app.collapsed .pl-side .pl-label,.pl-app.collapsed .pl-side .pl-nav .pl-badge,.pl-app.collapsed .side-user .nav-t,.pl-app.collapsed .pl-logo .nav-t{display:none}
.pl-app.collapsed .pl-side .pl-logo{padding:2px 0 14px}
.side-user{display:flex;align-items:center;gap:8px;padding:6px 10px}
.pl-app.collapsed .side-user{padding:6px 0;justify-content:center}
.side-scrim{display:none}
.topclock-wrap{display:flex;align-items:center;gap:12px}
.pl-seg.days{max-width:100%;overflow-x:auto;scrollbar-width:none}
.pl-seg.days::-webkit-scrollbar{display:none}
.pl-main{max-width:100%}
.pl-input select,select.pl-input{appearance:none;-webkit-appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%);background-position:calc(100% - 16px) 50%,calc(100% - 11px) 50%;background-size:5px 5px;background-repeat:no-repeat;padding-right:30px}
input.pl-input::placeholder,textarea.pl-input::placeholder{color:var(--muted)}
input.pl-input[type=date]{color-scheme:dark}
[data-theme=light] input.pl-input[type=date]{color-scheme:light}
.pl-input.search{max-width:340px;padding:0 10px}
.pl-input.search input{border:0;background:transparent;color:var(--text);font:400 14px var(--font-sans);outline:none;flex:1;min-width:0;height:100%}

.ro-rundown .ed-rundown,.ro-live .ed-live,.ro-graphics .ed-graphics,.ro-tech .ed-tech,.ro-crew .ed-crew,.ro-budget .ed-budget,.ro-equipment .ed-equipment,.ro-files .ed-files,.ro-owner .ed-owner{display:none !important}

/* ---------- Auth ---------- */
.auth-wrap{min-height:100vh;display:grid;place-items:center;padding:16px}
.auth-card{width:100%;max-width:380px;padding:24px}

/* ---------- Generic ---------- */
.grid-2{display:grid;grid-template-columns:1.4fr 1fr;gap:16px;align-items:start}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px}
.cards > *,.grid-2 > *,.pl-pick .pl-grow{min-width:0}
.pl-badge.wrap{white-space:normal;height:auto;min-height:20px}
.pl-pick.proj-card{gap:12px;padding:16px;text-decoration:none}
.icon-tile{background:var(--surface2) !important;color:var(--accent-text) !important;border:1px solid var(--border)}
.stage-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}
.stage-tile{cursor:pointer;text-align:left;font-family:var(--font-sans);color:var(--text);display:block;width:100%}
.stage-tile:hover{border-color:var(--muted)}
.stage-tile.on{border-color:var(--accent);background:var(--accent-tint)}
.list-row{display:flex;align-items:center;gap:8px;padding:8px 10px}
.f-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.f-grid .full{grid-column:1/-1}
.f-grid-4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.err-text{color:var(--red-ink);font-size:13px}
.type-pick{display:flex;flex-wrap:wrap;gap:6px}
.type-pick button{cursor:pointer;height:30px;font-family:var(--font-sans)}
.type-pick button.on{border-color:var(--accent);background:var(--accent-tint)}
.stage-row{display:grid;grid-template-columns:1.1fr 1.2fr .8fr .8fr auto;gap:8px;align-items:end}
.cal{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.cal .pl-inset{min-height:76px;padding:6px;display:flex;flex-direction:column;gap:3px;min-width:0}
.cal .pl-inset.today{border-color:var(--accent)}
.cal .pl-inset.out{opacity:.45}
.cal .pl-badge{cursor:pointer;max-width:100%;overflow:hidden;text-overflow:ellipsis;display:block;line-height:18px}
.copied{color:var(--green-ink) !important}

/* ---------- Modules ---------- */
.gfx-grid{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:16px;align-items:start}
.l3-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,420px);gap:16px;align-items:start}
/* Checkerboard = transparency; color-scheme:normal keeps the iframe see-through under the dark theme. */
.l3-check{aspect-ratio:16/9;border-radius:8px;border:1px solid var(--border);overflow:hidden;background:#d9dde3 conic-gradient(#fff 25%,#d9dde3 0 50%,#fff 0 75%,#d9dde3 0) 0 0/24px 24px}
.l3-check iframe{display:block;width:100%;height:100%;border:0;background:transparent;color-scheme:normal}
.pl-table tr.seg[data-gid]:hover td{background:var(--surface2)}
.pl-table tr.sel[data-gid]:hover td{background:var(--accent-tint)}
.tech-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;align-items:start}
.tech-grid > *{min-width:0}
.up-row{cursor:pointer;border-radius:var(--radius-badge)}
.ro-tech .up-row{cursor:default}
.led-grid{display:grid;gap:2px;margin-bottom:12px;max-width:240px}
.led-grid > div{aspect-ratio:1;background:var(--surface2);border:1px solid var(--border);border-radius:2px}
.pick-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px}
.check-btn{background:none;border:0;padding:4px;margin:-4px;cursor:pointer;color:inherit;border-radius:6px}
.check-btn:disabled{cursor:default}
.perm-btn{background:none;border:0;padding:0;cursor:pointer;font:inherit;color:inherit;border-radius:6px}
.perm-btn:hover .pl-badge{border-color:var(--accent)}
.perm-grid{display:grid;grid-template-columns:auto 1fr;gap:8px 16px;align-items:center}
.perm-grid .pl-seg{justify-self:start}
.kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.kpi-grid > *{min-width:0}
.kpi{font-size:24px;line-height:30px;font-weight:800;margin-top:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

.eq-grid{display:grid;grid-template-columns:200px minmax(0,1fr) 320px;gap:16px;align-items:start}
.eq-grid.two{grid-template-columns:200px minmax(0,1fr)}
.eq-grid .pl-table td:nth-child(2){min-width:190px}
.eq-cats .pl-nav .pl-badge,.fs-tree .pl-nav .pl-badge{margin-left:auto}
.a4-check{background:none;border:0;padding:0;font:inherit;color:inherit;cursor:pointer;font-size:14px;line-height:1}
.a4-check:disabled{cursor:default}
.packing-wrap{max-width:794px}
.packing-wrap .pl-a4{font-size:12px;line-height:17px;padding:32px}
.cs-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;align-items:start}
.cs-times{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.cs-preview{background:var(--surface2);position:sticky;top:calc(var(--topbar-h) + 16px)}
.fs-grid{display:grid;grid-template-columns:220px minmax(0,1fr) 340px;gap:16px;align-items:start}
.fs-folder{gap:0}
.fs-folder .pl-nav{flex:1;min-width:0}
.fs-folder .fs-edit{opacity:0}
.fs-folder:hover .fs-edit,.fs-folder .fs-edit:focus-visible{opacity:1}
.fs-name{color:var(--text);font-weight:600;text-decoration:none;word-break:break-word}
.fs-name:hover{text-decoration:underline}
.fs-old td{color:var(--muted)}
.fs-old .fs-name{color:var(--muted);font-weight:500}
.fs-drop.drag{border-color:var(--accent);background:var(--accent-tint)}
.link-btn{background:none;border:0;padding:0;font:inherit;color:var(--accent-text);cursor:pointer;text-decoration:underline}
.sheet-page{background:var(--bg);padding:16px}
.sheet-bar{display:flex;align-items:center;gap:12px;max-width:794px;margin:0 auto 12px}
.sheet-a4{max-width:794px;margin:0 auto;aspect-ratio:auto;font-size:12px;line-height:17px;padding:32px}
@media (max-width:1280px){
  .eq-grid{grid-template-columns:180px minmax(0,1fr)}
  .eq-grid > :last-child:not(.pl-card.flush){grid-column:1/-1}
  .fs-grid{grid-template-columns:200px minmax(0,1fr)}
  .fs-grid > :last-child{grid-column:1/-1}
}
@media (max-width:900px){
  .eq-grid,.eq-grid.two,.fs-grid,.cs-grid{grid-template-columns:minmax(0,1fr)}
  .cs-preview{position:static}
  .eq-cats{flex-direction:row;overflow-x:auto;scrollbar-width:none;padding:6px !important}
  .eq-cats .pl-label{display:none}
  .eq-cats .pl-nav{width:auto;flex:none}
  .fs-folder .fs-edit{opacity:1}
}
@media (max-width:720px){
  .cs-times{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
}

/* ---------- Client (guest) view ---------- */
.guest-main{max-width:1280px;margin:0 auto;width:100%}
.guest-grid{display:grid;grid-template-columns:minmax(0,1fr) 400px;gap:16px;align-items:start}
.guest-top{height:auto;min-height:64px;flex-wrap:wrap;padding:8px 24px;gap:8px 16px}
.guest-brand .brand-logo{width:72px}
@media (max-width:1100px){
  .gfx-grid,.guest-grid,.l3-grid{grid-template-columns:minmax(0,1fr)}
  .tech-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:720px){
  .tech-grid,.kpi-grid{grid-template-columns:minmax(0,1fr)}
  .guest-hide-sm{display:none}
  .guest-top{padding:8px 16px}
  .guest-top .pl-seg{width:100%}
  .guest-top .pl-seg button{flex:1;justify-content:center;min-height:var(--touch-h)}
  .guest-pres{width:100%}
  .guest-pres button{flex:1 1 auto;justify-content:center;padding:0 8px}
  .perm-grid{grid-template-columns:1fr}
}

/* ---------- Rundown ---------- */
.rd-wrap{overflow-x:auto}
.pl-rd{min-width:1180px}
.pl-rd th:nth-child(4),.pl-rd tr.seg td:nth-child(4){min-width:200px}
@media (max-width:1440px){.pl-rd .c-opt{display:none}.pl-rd{min-width:940px}}
.pl-rd tbody tr.seg{cursor:pointer}
.pl-rd tbody tr.seg:hover td{background:var(--surface2)}
.pl-rd tr.onair:hover td{background:var(--red-tint)}
.pl-rd tr.flash td{background:var(--accent-tint-strong) !important;transition:background .15s}
.pl-rd td.notes{max-width:200px;color:var(--muted)}
.pl-rd .cell-in{height:30px;font-size:14px}
.pl-rd .t-in{width:72px;padding:0 8px;font-variant-numeric:tabular-nums;font-weight:700}
.pl-rd .pl-stepper{gap:4px}
.pl-rd .pl-stepper button{width:24px;height:24px}
.pl-rd .pl-stepper .v{min-width:28px;font-size:14px}
.pl-rd .pl-tally+.pl-tally{margin-left:3px}
.pl-rd .breakout-cell{padding:0 !important}
.pl-breakout > div{cursor:pointer}
.pl-breakout > div:hover{background:var(--surface2)}
.rd-cards{display:none;flex-direction:column;gap:8px}
.rd-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-card);padding:12px 14px;display:flex;flex-direction:column;gap:6px;cursor:pointer;text-align:left;color:var(--text);font-family:var(--font-sans);width:100%}
.rd-card.onair{border-color:var(--red);background:var(--red-tint)}
.rd-card.done{opacity:.6}
.rd-card.flash{background:var(--accent-tint-strong)}
.rd-card .meta{font-size:13px;color:var(--muted);font-variant-numeric:tabular-nums}
.rd-flag{border-radius:var(--radius-control);overflow:hidden}
.rd-flag .pl-flag{height:auto;min-height:44px;flex-wrap:wrap;padding:6px 10px}

/* ---------- Modal ---------- */
.modal-bg{position:fixed;inset:0;background:rgba(8,10,14,.72);z-index:100;display:flex;align-items:flex-start;justify-content:center;padding:6vh 16px 16px;overflow-y:auto}
.modal{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-card);width:100%;max-width:640px}
.modal.wide{max-width:820px}
.modal-h{display:flex;align-items:center;gap:8px;padding:14px 16px;border-bottom:1px solid var(--border)}
.modal-b{padding:16px;display:flex;flex-direction:column;gap:12px}
.modal-f{display:flex;align-items:center;gap:8px;padding:12px 16px;border-top:1px solid var(--border);flex-wrap:wrap}

/* ---------- Toasts ---------- */
.toasts{position:fixed;right:16px;bottom:16px;z-index:200;display:flex;flex-direction:column;gap:8px;align-items:flex-end;pointer-events:none}
.toasts .pl-toast{pointer-events:auto;width:min(420px,calc(100vw - 32px))}
.pl-toast.ok{border-color:var(--green)}

/* ---------- LIVE ---------- */
.pl-live{min-height:100vh;grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto auto 1fr auto;align-content:start}
.live-lower > *,.live-clocks > *{min-width:0}
#lv-offline{display:contents} /* the offline banner takes a grid row only while it is shown */
.pl-next b{min-width:0;overflow-wrap:anywhere}
.live-clocks{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:16px}
.live-clocks .pl-card{min-width:0}
.live-lower{display:grid;grid-template-columns:1.3fr 1fr;gap:16px;align-items:start}
.live-btns{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-content:start}
.live-btns .main{grid-column:1/3;height:96px;font-size:24px}
.pl-livebtn:disabled{opacity:.45;cursor:not-allowed}
.pl-livebtn:hover:not(:disabled){border-color:var(--muted)}
.pl-livebtn.primary:hover:not(:disabled){background:var(--accent2);border-color:var(--accent2)}
.pl-onair.idle{background:var(--surface);color:var(--text);border:1px solid var(--border)}
.pl-onair.idle .tag{border-color:var(--muted);color:var(--muted)}
.pl-onair .seg-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.live-clocks .pl-clock{white-space:nowrap}

/* ---------- Tablet / phone ---------- */
@media (max-width:1100px){
  .grid-2{grid-template-columns:1fr}
  .live-clocks .pl-clock{font-size:64px}
  .live-clocks .pl-clock.lg{font-size:40px}
}
@media (max-width:900px){
  .pl-app,.pl-app.collapsed{grid-template-columns:1fr;grid-template-rows:auto 1fr}
  .pl-side{position:fixed;left:0;top:0;bottom:0;width:var(--sidebar-w);transform:translateX(-100%);transition:transform .15s}
  .pl-app.menu-open .pl-side{transform:none}
  .pl-app.menu-open .side-scrim{display:block;position:fixed;inset:0;background:rgba(8,10,14,.6);z-index:19}
  .pl-app.collapsed .pl-side{align-items:stretch;padding:12px 10px}
  .pl-app.collapsed .pl-side .pl-nav{width:100%;padding:0 10px;justify-content:flex-start}
  .pl-app.collapsed .pl-side .nav-t,.pl-app.collapsed .pl-side .pl-label,.pl-app.collapsed .side-user .nav-t,.pl-app.collapsed .pl-logo .nav-t{display:initial}
  .pl-top{grid-column:1;height:auto;min-height:var(--topbar-h);flex-wrap:wrap;padding:8px 16px;gap:8px 12px}
  .pl-main{padding:16px}
  .live-clocks{grid-template-columns:1fr 1fr}
  .live-clocks > :first-child{grid-column:1/-1}
  .live-lower{grid-template-columns:1fr}
  .pl-btn,.pl-input,.pl-seg button,.pl-seg a{min-height:var(--touch-h)}
  .pl-btn.sm{min-height:36px}
  .pl-seg button,.pl-seg a{height:auto}
  .pl-nav{height:var(--touch-h)}
  .pl-stepper button{width:44px;height:44px}
}
@media (max-width:720px){
  .rd-wrap,.rd-table-card{display:none}
  .rd-cards{display:flex}
  .f-grid,.f-grid-4{grid-template-columns:1fr}
  .stage-row{grid-template-columns:1fr 1fr}
  .stage-row > :last-child{grid-column:1/-1}
  .pl-top .pl-seg.days{order:5;width:100%}
  .pl-top .pl-seg.days button,.pl-top .pl-seg.days a{flex:1;justify-content:center}
  .topclock-wrap .pl-topclock small{display:none}
  .pl-pagehead .pl-h1{width:100%}
  .pl-pagehead .pl-seg{max-width:100%;overflow-x:auto;scrollbar-width:none}
  .cards{grid-template-columns:1fr}
  .cal .pl-inset{min-height:56px}
  .cal .pl-badge{font-size:0;height:6px;padding:0;border-radius:3px}
  .pl-live{padding:16px;gap:12px}
  .live-clocks{grid-template-columns:1fr}
  .live-clocks .pl-clock{font-size:56px}
  .pl-onair{font-size:19px;flex-wrap:wrap}
  .pl-onair .seg-name{white-space:normal;flex-basis:100%;order:2}
  .live-btns .main{height:80px}
  .live-keys{display:none !important}
  .modal-bg{padding:0}
  .modal{border-radius:0;min-height:100vh;border:0}
}

/* ---------- Print (rundown) ---------- */
@media print{
  :root,[data-theme]{--bg:#fff;--surface:#fff;--surface2:#f1f3f5;--border:#ccd1d9;--text:#13151a;--muted:#5b6472;--accent-text:#137a96;--red-tint:#fde8e8;--yellow-tint:#fff4e0;--red-ink:#b91c1c;--yellow-ink:#a35a06;--green-ink:#15803d}
  .pl-side,.pl-top,.no-print,.toasts,.side-scrim{display:none !important}
  .pl-app{display:block}
  .pl-main{padding:0}
  .rd-wrap,.rd-table-card{display:block !important;overflow:visible}
  .pl-rd .c-opt{display:table-cell !important}
  .rd-cards{display:none !important}
  .pl-rd{min-width:0;font-size:10px}
  .pl-rd td,.pl-rd th{padding:4px 5px}
  .pl-rd .pl-time{font-size:12px}
  .pl-card{border:0}
  .cs-grid,.eq-grid,.fs-grid{display:block}
  .cs-preview{position:static;background:none;padding:0}
  .pl-a4,.sheet-a4{max-width:none;padding:0;border-radius:0;font-size:11px;line-height:16px}
  .sheet-page{padding:0;background:#fff}
  .a4-check{font-size:12px}
}
@media (prefers-reduced-motion:reduce){
  *{transition:none !important}
}

.parts-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 16px}
@media (max-width:720px){.parts-grid{grid-template-columns:1fr}}

/* ---------- vMix bridge ---------- */
.tally-btn{cursor:pointer;font-family:var(--font-sans)}
.tally-btn:hover{border-color:var(--accent)}
.pl-tally+.tally-btn,.tally-btn+.pl-tally,.tally-btn+.tally-btn{margin-left:3px}
.vmix-banner{gap:12px}
.vmix-banner.err{border-color:var(--red);background:var(--red-tint)}
.vmix-banner.warn{border-color:var(--yellow);background:var(--yellow-tint)}
.ink-warn{color:var(--yellow-ink)}
.bridge-steps{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:4px}
.ro-only{display:none}
.ro-owner .ro-only{display:block}

/* ---------- history & notifications ---------- */
.bell{position:relative}
.bell-n{position:absolute;top:-4px;right:-4px;min-width:16px;height:16px;padding:0 4px;border-radius:8px;background:var(--red);color:#fff;font-size:10px;font-weight:700;line-height:16px;text-align:center;font-variant-numeric:tabular-nums}
.hist-list{padding:6px 0}
.hist-day{padding:12px 16px 4px}
.hist-row,.notif-item{display:flex;align-items:flex-start;gap:12px;padding:8px 16px;color:inherit;text-decoration:none;border-radius:var(--radius-badge)}
.hist-row:hover,.notif-item:hover{background:var(--surface2)}
.hist-row>.pl-num{width:42px;flex:none;padding-top:2px}
.hist-ic{flex:none;display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:6px;background:var(--surface2);color:var(--muted)}
.hist-ic.guest{background:var(--accent-tint-strong);color:var(--accent-text)}
.hist-det{overflow-wrap:anywhere}
.hist-who{display:block;margin-top:2px}
.notif-item{padding:8px 10px}
.notif-item.unread{background:var(--accent-tint)}
.notif-item .pl-dot{flex:none;margin-top:8px;background:var(--accent)}
.hist-filter{max-width:100%;overflow-x:auto;scrollbar-width:none}
.hist-filter>button{flex:none}

/* ---------- stage clock (LIVE panel) ---------- */
.clock-card select.pl-input{width:auto;height:32px;padding:0 8px}
.clock-on{gap:10px;padding:8px 10px;border-radius:var(--radius-badge);background:var(--red-tint)}

/* ---------- brand logo ---------- */
.brand-logo{display:block;height:auto;max-width:100%}
.pl-logo.brand{flex-direction:column;align-items:flex-start;gap:4px}
.pl-logo.brand .brand-logo{width:132px}
.pl-logo.brand .brand-sub{font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.collapsed .pl-logo.brand .brand-logo{width:40px}
.auth-card .brand-logo{width:170px}

/* ---------- public upload page ---------- */
.drop-zone{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;text-align:center;padding:28px 16px;border:2px dashed var(--border);border-radius:12px;background:var(--surface2);cursor:pointer;transition:border-color .15s,background .15s}
.drop-zone:hover,.drop-zone.drag,.drop-zone:focus-within{border-color:var(--accent);background:var(--accent-tint)}
.drop-zone input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%}
.drop-zone .drop-ic{color:var(--accent-text)}
.drop-item{gap:8px}
.drop-item .pl-bar{height:10px}
/* upload page: programme item picker (one choice, grouped by day and room) */
.seg-pick{max-height:min(420px,60vh);overflow:auto;overscroll-behavior:contain;border:1px solid var(--border);border-radius:10px;background:var(--surface2)}
.seg-gh{position:sticky;top:0;z-index:1;padding:8px 12px;font-size:12px;font-weight:700;letter-spacing:.02em;text-transform:uppercase;color:var(--muted);background:var(--surface);border-bottom:1px solid var(--border)}
.seg-rh{padding:8px 12px 2px;font-size:12px;font-weight:700;color:var(--accent-text)}
.seg-opt{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border-bottom:1px solid var(--border);cursor:pointer;min-width:0}
.seg-opt:last-child{border-bottom:0}
.seg-opt:hover{background:var(--accent-tint)}
.seg-opt.on{background:var(--accent-tint);box-shadow:inset 3px 0 0 var(--accent)}
.seg-opt input{flex:none;margin:3px 0 0;accent-color:var(--accent)}
.seg-opt-t{flex:none;width:44px;font-weight:700}
.seg-opt-b{display:flex;flex-direction:column;gap:2px;min-width:0;overflow-wrap:anywhere}
.seg-opt-b b{font-weight:600}
.seg-opt-b .pl-track{margin-right:4px}
.seg-opt.none{border-bottom:1px solid var(--border)}
.seg-empty{margin:0;padding:12px}
.key-note{gap:8px;align-items:flex-start;padding:10px 12px;border:1px solid var(--yellow);border-radius:10px;background:var(--yellow-tint)}
.key-note b{display:block}
/* rundown: English titles */
.en-list{display:flex;flex-direction:column;gap:6px;max-height:60vh;overflow:auto}
.en-row{display:grid;grid-template-columns:44px 22px minmax(0,1fr) minmax(0,1.3fr);gap:8px;align-items:center}
@media (max-width:640px){.en-row{grid-template-columns:44px 22px minmax(0,1fr)}.en-row .pl-input{grid-column:1/-1}}
.drop-pct{font-weight:700;color:var(--text)}

/* ---------- import progress, mail templates ---------- */
.imp-progress{margin:4px 0 10px}
.pl-bar.indet > i{animation:pl-indet 1.2s ease-in-out infinite}
@keyframes pl-indet{0%{left:-30%}100%{left:100%}}
@media (prefers-reduced-motion:reduce){.pl-bar.indet > i{animation:none;width:100%!important;opacity:.5}}
.mail-frame{width:100%;height:62vh;border:1px solid var(--border);border-radius:var(--radius-badge);background:#eef0f3}
.mail-tpl{gap:10px;width:100%;padding:8px 10px;border:1px solid var(--border);border-radius:var(--radius-badge);background:var(--surface2);color:var(--text);font:inherit;cursor:pointer}
.mail-tpl:hover{border-color:var(--accent)}
.pl-side > .pl-logo.brand{padding-top:6px}
.fs-seg{display:flex;align-items:center;gap:4px;margin:2px 0 0 26px;text-align:left;max-width:100%}
.seg-files{margin-left:6px;text-decoration:none;vertical-align:1px}
.seg-flist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}
.seg-flist li{display:flex;align-items:center;gap:8px;padding:2px 4px 2px 10px;border:1px solid var(--border);border-radius:8px;background:var(--surface2)}
.seg-flist .pl-grow{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* ---------- material readiness ---------- */
.ready-table td{vertical-align:top}
.ready-table .rd-group td{background:var(--surface2);padding-top:6px;padding-bottom:6px}
.ready-table .pl-badge{margin:2px 4px 2px 0}
.ink-ok{color:var(--green-ink)}

.seg-script{color:var(--muted)}
/* ---------- rundown selection, rooms, vMix Call items ---------- */
.pl-rd .sel-cell{width:34px;padding-right:0}
.seg-sel{width:16px;height:16px;cursor:pointer;accent-color:var(--accent);vertical-align:middle}
.pl-rd tr.sel td,.pl-breakout > .sel{background:var(--accent-tint)}
.sel-bar{position:sticky;top:8px;z-index:5;gap:10px;margin-bottom:12px;border-color:var(--accent);background:var(--surface)}
.sel-bar select.pl-input{width:auto;min-width:180px}
.sel-bar [aria-expanded="true"]{border-color:var(--accent);color:var(--accent-text)}
.sel-more{flex-basis:100%;gap:10px 18px;padding-top:10px;border-top:1px solid var(--border)}
.sel-more .sel-grp{gap:6px}
.sel-more select.pl-input{min-width:0}
.sel-more .sel-min{width:84px}
.room-row select.pl-input{width:auto}
.call-seg-list{max-height:260px;overflow:auto;border:1px solid var(--border);border-radius:var(--radius-badge);padding:6px 8px}
.call-seg{padding:4px 2px;cursor:pointer}
.call-seg-day{padding:6px 0 2px}
@media print{.sel-cell,.sel-bar{display:none}}
/* ---------- rundown reordering (drag handle, drop marker) ---------- */
.pl-rd .sel-cell{width:56px}
.pl-rd .sel-in{display:inline-flex;align-items:center;gap:2px}
.seg-drag{display:inline-flex;align-items:center;justify-content:center;width:22px;height:28px;padding:0;border:0;border-radius:var(--radius-badge);background:none;color:var(--muted);cursor:grab;touch-action:none;flex:none}
.seg-drag:hover{color:var(--text);background:var(--surface2)}
.seg-drag:focus-visible{outline:2px solid var(--accent);outline-offset:1px;color:var(--text)}
.rd-dragging,.rd-dragging *{cursor:grabbing !important;user-select:none;-webkit-user-select:none}
.pl-rd tr.dragging td,.rd-card-row.dragging{opacity:.45}
.pl-rd tr.drop-before td{box-shadow:inset 0 3px 0 var(--accent)}
.pl-rd tr.drop-after td{box-shadow:inset 0 -3px 0 var(--accent)}
.rd-card-row{display:flex;align-items:stretch;gap:4px}
.rd-card-row > .ed-rundown{display:flex}
.rd-card-row .seg-drag{width:32px;height:auto;min-height:44px}
.rd-card-row.drop-before{box-shadow:0 -3px 0 var(--accent)}
.rd-card-row.drop-after{box-shadow:0 3px 0 var(--accent)}

/* ---------- per-room printouts ---------- */
.print-only{display:none}
.rd-print-room{font-weight:700;color:var(--text)}
.cs-room-sel{flex-wrap:wrap}
@media print{
  .print-only{display:inline !important}
  .print-hide{display:none !important}
}

/* ---------- Stream Deck URLs ---------- */
.ctl-row{gap:8px}
.ctl-label{flex:0 0 120px;color:var(--muted)}
.ctl-url{font-size:12px;color:var(--text);background:var(--surface2);border-radius:var(--radius-badge);padding:3px 6px;min-width:0}
/* speaker page */
.spk-wrap{max-width:760px;margin:0 auto;padding:20px 16px 40px;gap:16px}
.spk-wrap .brand-logo{width:150px;height:auto}
.spk-file{display:flex;gap:12px;align-items:flex-start;padding:10px;border:1px solid var(--border);border-radius:10px;background:var(--surface2)}
.spk-thumb{flex:none;width:176px;display:flex;flex-direction:column;gap:4px;padding:0;border:0;background:none;color:inherit;text-align:left;cursor:pointer;font:inherit}
.spk-thumb img{width:176px;aspect-ratio:16/9;object-fit:contain;background:#000;border-radius:6px;border:1px solid var(--border)}
.spk-thumb span{font-size:12px;color:var(--accent-text);display:flex;align-items:center;gap:4px}
.spk-thumb.wait{cursor:default;width:176px;aspect-ratio:16/9;align-items:center;justify-content:center;border:1px dashed var(--border);border-radius:6px;padding:8px;text-align:center}
.spk-thumb.wait span{color:var(--muted)}
.drop-zone.sm{padding:16px 12px}
@media (max-width:560px){.spk-file{flex-direction:column}.spk-thumb,.spk-thumb img,.spk-thumb.wait{width:100%}}
/* slide viewer */
.sv{position:fixed;inset:0;z-index:1000;display:flex;flex-direction:column;background:rgba(8,9,12,.96);color:#f3f4f6}
.sv-top{display:flex;align-items:center;gap:12px;padding:10px 14px;min-height:52px}
.sv-top .pl-btn{color:#f3f4f6}
.sv-stage{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;gap:8px;padding:0 8px}
.sv-img{max-width:calc(100% - 112px);max-height:100%;object-fit:contain;background:#000;box-shadow:0 8px 40px rgba(0,0,0,.6)}
.sv-nav{flex:none;width:48px;height:48px;border-radius:50%;border:1px solid rgba(255,255,255,.2);background:rgba(255,255,255,.06);color:#fff;display:grid;place-items:center;cursor:pointer}
.sv-nav:disabled{opacity:.25;cursor:default}
.sv-thumbs{display:flex;gap:8px;overflow-x:auto;padding:10px 14px 14px}
.sv-thumbs button{flex:none;position:relative;padding:0;border:2px solid transparent;border-radius:6px;background:#000;cursor:pointer}
.sv-thumbs button.on{border-color:var(--accent)}
.sv-thumbs img{display:block;height:64px;width:auto;aspect-ratio:16/9;object-fit:contain;border-radius:4px}
.sv-thumbs span{position:absolute;right:4px;bottom:2px;font-size:11px;color:#fff;text-shadow:0 1px 2px #000}
@media (max-width:560px){.sv-nav{display:none}.sv-img{max-width:100%}.sv-thumbs img{height:44px}}

/* ---------- conference website editor ---------- */
.site-ed { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); gap: 20px; align-items: start; }
.site-fs { border: 0; margin: 0; padding: 0; min-width: 0; display: flex; flex-direction: column; gap: 14px; }
.site-prev { position: sticky; top: 76px; }
.site-prev iframe { width: 100%; height: calc(100vh - 150px); min-height: 480px; border: 1px solid var(--border); border-radius: var(--radius-card); background: #fff; }
.site-sec.off { opacity: .6; }
.site-img img { height: 64px; width: auto; max-width: 160px; object-fit: contain; border: 1px solid var(--border); border-radius: 6px; background: repeating-conic-gradient(#ddd 0 25%, #fff 0 50%) 0 0 / 12px 12px; }
.site-img-empty { display: inline-grid; place-items: center; height: 64px; width: 96px; border: 1px dashed var(--border); border-radius: 6px; }
.site-color { width: 44px; height: 36px; padding: 2px; border: 1px solid var(--border); border-radius: 6px; background: var(--surface); cursor: pointer; }
.site-sw { width: 26px; height: 26px; border-radius: 50%; border: 2px solid var(--surface); box-shadow: 0 0 0 1px var(--border); cursor: pointer; padding: 0; }
.site-sw.static { cursor: default; }
.site-sw:not(.static):hover { transform: scale(1.12); }
.site-dns td, .site-dns th { font-size: 13px; }
@media (max-width: 1100px) { .site-ed { grid-template-columns: 1fr; } .site-prev { position: static; } .site-prev iframe { height: 70vh; } }
