@import url('https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Bungee:wght@600;700;800&display=swap');
:root{
  --bg:#0d0f14;--surface:#161a23;--surface2:#1c2130;--border:#252b38;
  --accent:#00e5a0;--warn:#ff6b35;--pto:#c084fc;--late:#fbbf24;
  --text:#e8eaf0;--muted:#6b7280;--blue:#0078d4;
}
*{box-sizing:border-box;margin:0;padding:0;}
html,body{min-height:100%;background:var(--bg);}
body{color:var(--text);font-family:'DM Mono',monospace;padding:24px 16px 60px;}

/* PIN MODAL */
.pin-modal{position:fixed;inset:0;background:rgba(13,15,20,0.88);display:flex;align-items:center;justify-content:center;z-index:300;}
.pin-modal.hidden{display:none;}
.pin-card{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:26px 28px;max-width:340px;width:100%;text-align:center;}
.pin-title{font-family:'Bungee',sans-serif;font-weight:800;font-size:1rem;color:var(--text);margin-bottom:8px;}
.pin-sub{font-size:0.74rem;color:var(--muted);line-height:1.55;margin-bottom:14px;}
/* BULK EDIT */
.bulk-people{display:flex;flex-wrap:wrap;gap:6px;min-height:32px;padding:8px;background:#1e2330;border:1px solid var(--border);border-radius:8px;}
.bulk-chip{display:inline-flex;align-items:center;gap:5px;padding:4px 11px;border-radius:6px;font-size:0.75rem;cursor:pointer;border:1px solid var(--border);background:var(--surface2);color:var(--muted);transition:all 0.15s;user-select:none;}
.bulk-chip.selected{background:rgba(0,229,160,0.12);border-color:rgba(0,229,160,0.4);color:var(--accent);}
.bulk-chip:hover{border-color:var(--accent);color:var(--text);}
.bulk-select-all{font-size:0.67rem;color:var(--muted);cursor:pointer;margin-bottom:4px;display:block;}
.bulk-select-all:hover{color:var(--accent);}

.unlock{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:88vh;gap:16px;padding:16px;}
.unlock h2{font-family:'Bungee',sans-serif;font-weight:800;font-size:1.6rem;text-align:center;}
.unlock h2 em{color:var(--accent);font-style:normal;}
.unlock-card{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:24px 26px;max-width:400px;width:100%;}
.unlock-card h3{font-family:'Bungee',sans-serif;font-weight:700;font-size:0.72rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--muted);margin-bottom:14px;}
.unlock-card p{font-size:0.75rem;color:var(--muted);line-height:1.6;margin-bottom:14px;}

.setup{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:88vh;gap:16px;padding:16px;}
.setup h2{font-family:'Bungee',sans-serif;font-weight:800;font-size:1.6rem;text-align:center;}
.setup h2 em{color:var(--accent);font-style:normal;}
.setup-sub{color:var(--muted);font-size:0.77rem;text-align:center;max-width:400px;line-height:1.6;}
.setup-card{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:24px 26px;max-width:500px;width:100%;}
.setup-card h3{font-family:'Bungee',sans-serif;font-weight:700;font-size:0.72rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--muted);margin-bottom:14px;}
.steps{display:flex;flex-direction:column;gap:12px;margin-bottom:18px;}
.step{display:grid;grid-template-columns:24px 1fr;gap:10px;align-items:start;}
.sn{width:22px;height:22px;border-radius:50%;background:var(--surface2);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;font-family:'Bungee',sans-serif;font-weight:700;font-size:0.66rem;color:var(--accent);flex-shrink:0;margin-top:2px;}
.sb{font-size:0.75rem;color:var(--muted);line-height:1.6;}
.sb strong{color:var(--text);}
.sb a{color:var(--accent);}
.sb code{color:var(--accent);background:rgba(0,229,160,0.08);padding:1px 4px;border-radius:3px;font-size:0.69rem;}
.field-lbl{font-size:0.66rem;color:var(--muted);letter-spacing:0.07em;text-transform:uppercase;margin-bottom:4px;margin-top:10px;}
.setup-inp{width:100%;background:#1e2330;border:1px solid var(--border);border-radius:8px;padding:9px 12px;color:var(--text);font-family:'DM Mono',monospace;font-size:0.79rem;outline:none;transition:border-color 0.2s;}
.setup-inp:focus{border-color:var(--accent);}
.setup-inp::placeholder{color:var(--muted);}
.setup-err{color:var(--warn);font-size:0.73rem;margin-top:6px;display:none;}
.hr{height:1px;background:var(--border);margin:14px 0;}
.hint{font-size:0.68rem;color:var(--muted);line-height:1.55;}
.hint a{color:var(--accent);}

/* HEADER */
.hdr{text-align:center;margin-bottom:20px;}
.hdr h1{font-family:'Bungee',sans-serif;font-weight:800;font-size:1.75rem;letter-spacing:-0.02em;}
.hdr h1 em{color:var(--accent);font-style:normal;}
.hdr p{color:var(--muted);font-size:0.71rem;margin-top:4px;letter-spacing:0.07em;text-transform:uppercase;}
.srow{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:7px;flex-wrap:wrap;}
.pill{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:20px;border:1px solid;font-size:0.65rem;transition:all 0.2s;}
.pi{color:var(--muted);border-color:var(--border);}
.ps{color:var(--late);border-color:rgba(251,191,36,0.3);background:rgba(251,191,36,0.05);}
.po{color:var(--accent);border-color:rgba(0,229,160,0.3);background:rgba(0,229,160,0.05);}
.pe{color:var(--warn);border-color:rgba(255,107,53,0.3);background:rgba(255,107,53,0.05);}
.pdot{width:5px;height:5px;border-radius:50%;background:currentColor;}
.rcfg{background:none;border:1px solid var(--border);border-radius:5px;padding:3px 9px;color:var(--muted);font-family:'DM Mono',monospace;font-size:0.65rem;cursor:pointer;}
.rcfg:hover{border-color:var(--accent);color:var(--accent);}

/* TABS */
.tabs{display:flex;gap:4px;max-width:780px;margin:0 auto 18px;background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:4px;}
.tab{flex:1;background:none;border:none;border-radius:7px;padding:8px 5px;font-family:'Bungee',sans-serif;font-weight:700;font-size:0.62rem;letter-spacing:0.05em;text-transform:uppercase;color:var(--muted);cursor:pointer;transition:all 0.18s;}
.tab.active{background:var(--surface2);color:var(--accent);border:1px solid var(--border);}
.tab-panel{display:none;}.tab-panel.active{display:block;}

/* CARD */
.card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:20px;margin-bottom:16px;max-width:780px;margin-left:auto;margin-right:auto;}
.ct{font-family:'Bungee',sans-serif;font-weight:700;font-size:0.68rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--muted);margin-bottom:11px;}

/* INPUTS */
.add-row{display:flex;gap:8px;}
input[type=text],input[type=date],select{background:#1e2330;border:1px solid var(--border);border-radius:8px;padding:8px 12px;color:var(--text);font-family:'DM Mono',monospace;font-size:0.79rem;outline:none;transition:border-color 0.2s;width:100%;}
input[type=text]:focus,input[type=date]:focus,select:focus{border-color:var(--accent);}
input::placeholder{color:var(--muted);}
select option{background:#1e2330;}

/* BUTTONS */
.btn{background:var(--accent);color:#0d0f14;border:none;border-radius:8px;padding:8px 16px;font-family:'Bungee',sans-serif;font-weight:700;font-size:0.75rem;letter-spacing:0.04em;cursor:pointer;white-space:nowrap;transition:opacity 0.15s,transform 0.1s;}
.btn:hover{opacity:0.85;transform:translateY(-1px);}
.btn:active{transform:translateY(0);}
.btn-sec{background:var(--border);color:var(--text);}
.btn-blue{background:var(--blue);color:#fff;}
.btn-big{width:100%;padding:13px;font-size:0.85rem;border-radius:10px;}

/* TAGS */
.tag-grid{display:flex;flex-wrap:wrap;gap:6px;min-height:28px;margin-bottom:11px;}
.tag{display:inline-flex;align-items:center;gap:5px;background:#1e2330;border:1px solid var(--border);border-radius:6px;padding:3px 9px;font-size:0.76rem;animation:popIn 0.15s ease;}
@keyframes popIn{from{transform:scale(0.85);opacity:0;}to{transform:scale(1);opacity:1;}}
.tag .rm{background:none;border:none;color:var(--muted);cursor:pointer;font-size:0.8rem;padding:0;transition:color 0.15s;}
.tag .rm:hover{color:var(--warn);}

/* AVAIL TABLE */
.avail-wrap{overflow-x:auto;}
.avail-table{width:100%;border-collapse:collapse;font-size:0.73rem;min-width:500px;}
.avail-table th{font-family:'Bungee',sans-serif;font-weight:700;font-size:0.59rem;letter-spacing:0.1em;text-transform:uppercase;color:var(--muted);padding:6px 4px;text-align:center;border-bottom:1px solid var(--border);}
.avail-table th.nc{text-align:left;min-width:86px;}
.avail-table td{padding:4px 3px;text-align:center;border-bottom:1px solid rgba(37,43,56,0.4);}
.avail-table td.nc{text-align:left;font-size:0.75rem;padding-left:3px;white-space:nowrap;}
.asel{width:90px;padding:3px 4px;font-size:0.64rem;border-radius:5px;text-align:center;background:#1e2330;border:1px solid var(--border);color:var(--text);font-family:'DM Mono',monospace;outline:none;}
.sa{border-color:rgba(0,229,160,0.4)!important;color:var(--accent)!important;}
.spto{border-color:rgba(192,132,252,0.5)!important;color:var(--pto)!important;background:rgba(192,132,252,0.07)!important;}
.slate{border-color:rgba(251,191,36,0.5)!important;color:var(--late)!important;background:rgba(251,191,36,0.07)!important;}
.sexclude{border-color:rgba(255,107,53,0.5)!important;color:var(--warn)!important;background:rgba(255,107,53,0.07)!important;}
.wk-nav{display:flex;align-items:center;gap:9px;margin-bottom:11px;}
.wk-nav span{flex:1;font-size:0.79rem;text-align:center;}
.wk-nav button{background:var(--border);border:none;border-radius:6px;padding:5px 10px;color:var(--text);cursor:pointer;font-family:'DM Mono',monospace;font-size:0.76rem;}
.legend{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:11px;}
.leg{display:flex;align-items:center;gap:4px;font-size:0.69rem;color:var(--muted);}
.ldot{width:7px;height:7px;border-radius:50%;}

/* SCHEDULE */
.sg{display:grid;gap:6px;}
.slotrow{display:grid;grid-template-columns:122px 1fr;border-radius:8px;overflow:hidden;border:1px solid var(--border);animation:sli 0.2s ease both;}
@keyframes sli{from{opacity:0;transform:translateX(-8px);}to{opacity:1;transform:translateX(0);}}
.stime{background:#1c2130;padding:9px 12px;font-size:0.75rem;color:var(--muted);display:flex;align-items:center;border-right:1px solid var(--border);white-space:nowrap;}
.speople{padding:7px 11px;display:flex;flex-wrap:wrap;gap:5px;align-items:center;background:var(--surface2);}
.badge{border-radius:5px;padding:2px 8px;font-size:0.73rem;}
.bn{background:rgba(0,229,160,0.1);color:var(--accent);border:1px solid rgba(0,229,160,0.2);}
.bl{background:rgba(251,191,36,0.1);color:var(--late);border:1px solid rgba(251,191,36,0.25);}
.slotrow.past{opacity:0.45;}
.slotrow.past .stime{color:var(--muted);}
.past-tag{font-family:'Bungee',sans-serif;font-size:0.53rem;letter-spacing:0.08em;text-transform:uppercase;color:var(--muted);background:rgba(107,114,128,0.1);border:1px solid var(--border);border-radius:4px;padding:2px 6px;margin-left:auto;}
letter-spacing:0.08em;text-transform:uppercase;color:var(--late);background:rgba(251,191,36,0.08);border:1px solid rgba(251,191,36,0.2);border-radius:4px;padding:2px 6px;margin-left:auto;}
.sched-hd{font-family:'Bungee',sans-serif;font-weight:800;font-size:1.08rem;margin-bottom:11px;max-width:780px;margin-left:auto;margin-right:auto;}
.msgbox{background:#0a0c11;border:1px solid var(--border);border-radius:10px;padding:14px 14px 10px;font-size:0.76rem;line-height:1.75;color:#c8cdd8;white-space:pre-wrap;font-family:'DM Mono',monospace;position:relative;}
.cpbtn{position:absolute;top:8px;right:8px;background:var(--border);border:none;border-radius:6px;padding:4px 8px;font-family:'DM Mono',monospace;font-size:0.65rem;color:var(--muted);cursor:pointer;transition:all 0.15s;}
.cpbtn:hover,.cpbtn.ok{background:var(--accent);color:#0d0f14;}

/* AUTO-SEND */
.fl{font-size:0.66rem;color:var(--muted);letter-spacing:0.07em;text-transform:uppercase;margin-bottom:4px;}
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.tbox{border-radius:8px;padding:10px 13px;font-size:0.73rem;margin-top:9px;border:1px solid;}
.ton{background:rgba(0,229,160,0.06);border-color:rgba(0,229,160,0.2);color:var(--accent);}
.toff{background:rgba(107,114,128,0.06);border-color:var(--border);color:var(--muted);}
.nfire{font-size:0.65rem;color:var(--muted);margin-top:3px;}

/* MISC */
.note{color:var(--muted);font-size:0.69rem;margin-top:8px;line-height:1.55;}
.note strong{color:var(--text);}
.errtxt{color:var(--warn);font-size:0.73rem;margin-top:6px;display:none;}
.toast{position:fixed;bottom:18px;left:50%;transform:translateX(-50%);background:var(--accent);color:#0d0f14;font-family:'Bungee',sans-serif;font-weight:700;font-size:0.76rem;padding:8px 17px;border-radius:8px;opacity:0;pointer-events:none;transition:opacity 0.2s;z-index:999;white-space:nowrap;}
.toast.show{opacity:1;}
.ov{position:fixed;inset:0;background:rgba(13,15,20,0.88);display:flex;align-items:center;justify-content:center;z-index:200;}
.ov.hidden{display:none;}
.spin{width:30px;height:30px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:rot 0.7s linear infinite;}
@keyframes rot{to{transform:rotate(360deg);}}

/* ── Utility classes (replaces inline styles for CSP compliance) ── */
.mt4{margin-top:4px}.mt6{margin-top:6px}.mt8{margin-top:8px}
.mt10{margin-top:10px}.mt14{margin-top:14px}
.mt0{margin-top:0}.mb14{margin-bottom:14px}
.flex1{flex:1}.full-width{width:100%}
.hidden-init{display:none}
.field-row{position:relative;display:flex;align-items:center}
.inp-flex{flex:1;padding-right:36px}
.logo-img{height:1em;width:auto;vertical-align:middle;margin-right:6px}
.lbl-hint{color:var(--muted);font-size:0.65rem;font-weight:400;text-transform:none;letter-spacing:0}
.ct-sm{font-size:0.72rem;margin-bottom:4px}
.pin-inp-style{margin-bottom:8px;text-align:center;letter-spacing:0.2em}
.row-between{display:flex;align-items:center;justify-content:space-between}
.row-gap8{display:flex;gap:8px}

.mt12{margin-top:12px}.mb10{margin-bottom:10px}.mb14{margin-bottom:14px}
.mt11{margin-top:11px}.mr6{margin-right:6px}.ml-auto{margin-left:auto}
.fs72{font-size:0.72rem}.btn-sm{font-size:0.68rem;padding:4px 10px}
.btn-nowrap{white-space:nowrap;padding:8px 14px}
.dim{opacity:0.5}.note-dim{opacity:0.6}
.pointer{cursor:pointer}.ai-center{align-items:center}
.flex-wrap{flex-wrap:wrap}.grid-gap10{display:grid;gap:10px}
.setup-back-row{width:100%;max-width:500px;margin-bottom:4px}
.toggle-vis-btn{position:absolute;right:8px;background:none;border:none;cursor:pointer;color:var(--muted);font-size:1rem;padding:4px;line-height:1}
.ldot-avail{background:var(--accent)}.ldot-late{background:var(--late)}
.ldot-pto{background:var(--pto)}.ldot-excl{background:var(--warn)}
.note-center{text-align:center;margin-top:-6px}

/* ── Shift Distribution Chart ─────────────────────────────────────────────── */
.dist-row{display:flex;align-items:center;gap:10px;padding:5px 0;border-bottom:1px solid rgba(37,43,56,0.4);}
.dist-row:last-child{border-bottom:none;}
.dist-name{font-size:0.75rem;min-width:80px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--text);}
.dist-bar-wrap{flex:1;display:flex;height:16px;border-radius:4px;overflow:hidden;background:var(--surface2);}
.dist-bar-reg{height:100%;background:var(--accent);border-radius:4px 0 0 4px;transition:width 0.4s ease;min-width:0;}
.dist-bar-late{height:100%;background:var(--late);transition:width 0.4s ease;min-width:0;}
.dist-count{font-size:0.75rem;color:var(--accent);min-width:28px;text-align:right;font-family:'DM Mono',monospace;}
.dist-late-count{color:var(--late);font-size:0.68rem;}

/* ── WebEx credential field lock states ──────────────────────────────────── */
.wx-locked{opacity:0.55;cursor:not-allowed;background:#161a23!important;border-color:var(--border)!important;}
.wx-editing{opacity:1;border-color:var(--accent)!important;background:#1e2330!important;}

/* ── Missing utility classes (required by app.js) ───────────────────────── */
.errtxt-show{display:block!important;}
.pulse-dim{opacity:0.4;transition:opacity 0.4s ease;}
.slotrow-0{animation-delay:0s}.slotrow-1{animation-delay:.04s}
.slotrow-2{animation-delay:.08s}.slotrow-3{animation-delay:.12s}
.slotrow-4{animation-delay:.16s}.slotrow-5{animation-delay:.20s}
.slotrow-6{animation-delay:.24s}.slotrow-7{animation-delay:.28s}
.slotrow-8{animation-delay:.32s}.slotrow-9{animation-delay:.36s}
.empty-msg{color:var(--muted);font-size:0.73rem;}
.empty-td{padding:16px;color:var(--muted);font-size:0.74rem;}
.lock-badge{font-size:0.6rem;background:rgba(255,107,53,0.12);color:var(--warn);border:1px solid rgba(255,107,53,0.3);border-radius:4px;padding:1px 7px;vertical-align:middle;cursor:pointer;}
.date-num{font-weight:400;}
.asel-locked{display:flex;align-items:center;justify-content:center;opacity:0.6;cursor:not-allowed;font-size:0.64rem;padding:4px;}
.ltag-warn{color:var(--warn)!important;border-color:rgba(255,107,53,0.3)!important;background:rgba(255,107,53,0.07)!important;}
.wx-editing{opacity:1;border-color:var(--accent)!important;background:#1e2330!important;}
.mt4{margin-top:4px}.mt6{margin-top:6px}.mt8{margin-top:8px}
.mt10{margin-top:10px}.mt11{margin-top:11px}.mt12{margin-top:12px}.mt14{margin-top:14px}
.mt0{margin-top:0}.mb10{margin-bottom:10px}.mb14{margin-bottom:14px}
.mr6{margin-right:6px}.ml-auto{margin-left:auto}
.flex1{flex:1}.full-width{width:100%}
.field-row{position:relative;display:flex;align-items:center}
.inp-flex{flex:1;padding-right:36px}
.logo-img{height:1em;width:auto;vertical-align:middle;margin-right:6px}
.lbl-hint{color:var(--muted);font-size:0.65rem;font-weight:400;text-transform:none;letter-spacing:0}
.ct-sm{font-size:0.72rem;margin-bottom:4px}
.pin-inp-style{margin-bottom:8px;text-align:center;letter-spacing:0.2em}
.row-between{display:flex;align-items:center;justify-content:space-between}
.row-gap8{display:flex;gap:8px}
.fs72{font-size:0.72rem}.btn-sm{font-size:0.68rem;padding:4px 10px}
.btn-nowrap{white-space:nowrap;padding:8px 14px}
.dim{opacity:0.5}.note-dim{opacity:0.6}
.pointer{cursor:pointer}.ai-center{align-items:center}
.flex-wrap{flex-wrap:wrap}.grid-gap10{display:grid;gap:10px}
.setup-back-row{width:100%;max-width:500px;margin-bottom:4px}
.toggle-vis-btn{position:absolute;right:8px;background:none;border:none;cursor:pointer;color:var(--muted);font-size:1rem;padding:4px;line-height:1}
.ldot-avail{background:var(--accent)}.ldot-late{background:var(--late)}
.ldot-pto{background:var(--pto)}.ldot-excl{background:var(--warn)}
.note-center{text-align:center;margin-top:-6px}

/* ── Options Tab ─────────────────────────────────────────────────────────── */
.opts-swatches{display:flex;flex-wrap:wrap;gap:7px;margin-top:6px;}
.opts-fonts{display:flex;flex-wrap:wrap;gap:7px;margin-top:6px;}
.opts-presets{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px;}
.opts-divider{height:1px;background:var(--border);margin:16px 0 4px;}

/* Colour swatch buttons */
.swatch{display:flex;align-items:center;gap:7px;background:var(--surface2);
  border:1px solid var(--border);border-radius:8px;padding:6px 11px;
  cursor:pointer;transition:all 0.15s;color:var(--muted);font-size:0.71rem;
  font-family:'DM Mono',monospace;}
.swatch:hover{border-color:var(--accent);color:var(--text);}
.swatch-active{border-color:var(--accent)!important;color:var(--accent)!important;
  background:rgba(0,229,160,0.08)!important;}
.swatch-dot{width:13px;height:13px;border-radius:50%;flex-shrink:0;
  border:1px solid rgba(255,255,255,0.15);}
.swatch-lbl{font-size:0.7rem;}

/* Font picker buttons */
.font-btn{display:flex;align-items:center;justify-content:space-between;gap:10px;
  background:var(--surface2);border:1px solid var(--border);border-radius:8px;
  padding:7px 13px;cursor:pointer;color:var(--muted);font-size:0.73rem;
  transition:all 0.15s;white-space:nowrap;min-width:130px;}
.font-btn:hover{border-color:var(--accent);color:var(--text);}
.font-btn-active{border-color:var(--accent)!important;color:var(--accent)!important;
  background:rgba(0,229,160,0.08)!important;}
.font-btn-name{font-size:0.7rem;}
.font-btn-sample{font-size:1rem;opacity:0.6;}

/* Quick preset cards */
.preset-btn{display:flex;align-items:center;gap:9px;background:var(--surface2);
  border:1px solid var(--border);border-radius:9px;padding:8px 13px;
  cursor:pointer;transition:all 0.15s;color:var(--muted);font-size:0.71rem;}
.preset-btn:hover{border-color:var(--accent);color:var(--text);
  background:rgba(0,229,160,0.05);}
.preset-dots{display:flex;gap:3px;align-items:center;}
.preset-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0;
  border:1px solid rgba(255,255,255,0.1);}
.preset-lbl{font-size:0.71rem;}

/* ── Slot Size Buttons ───────────────────────────────────────────────────── */
.slot-size-btn{background:var(--surface2);border:1px solid var(--border);
  border-radius:8px;padding:8px 18px;cursor:pointer;color:var(--muted);
  font-size:0.75rem;font-family:'DM Mono',monospace;transition:all 0.15s;}
.slot-size-btn:hover{border-color:var(--accent);color:var(--text);}
.slot-size-active{border-color:var(--accent)!important;color:var(--accent)!important;
  background:rgba(0,229,160,0.08)!important;}

/* ── Late Slot Toggle Buttons ────────────────────────────────────────────── */
.late-slot-grid{display:flex;flex-wrap:wrap;gap:7px;}
.late-slot-btn{background:var(--surface2);border:1px solid var(--border);
  border-radius:8px;padding:7px 14px;cursor:pointer;color:var(--muted);
  font-size:0.72rem;font-family:'DM Mono',monospace;transition:all 0.15s;}
.late-slot-btn:hover{border-color:var(--late);color:var(--text);}
.late-slot-active{border-color:var(--late)!important;color:var(--late)!important;
  background:rgba(251,191,36,0.08)!important;}
