*{box-sizing:border-box;margin:0;padding:0}
body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;background:#e4ecf8;color:#1a1a2e;min-height:100vh;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}

/* ── ROUTE PALETTE (employee cards) ───────────────────────────────── */
:root{
  --e5310-bg:#fff0f0;--e5310-b:#dc2626;
  --e5320-bg:#f0fdf4;--e5320-b:#16a34a;
  --e5330-bg:#fefce8;--e5330-b:#ca8a04;
  --e5340-bg:#eff6ff;--e5340-b:#2563eb;
  --e5350-bg:#f3e8ff;--e5350-b:#7c3aed;
  /* store card route colours (user spec) */
  --s5310-bg:#fee2e2;--s5310-b:#dc2626;
  --s5320-bg:#dcfce7;--s5320-b:#16a34a;
  --s5330-bg:#fef9c3;--s5330-b:#ca8a04;
  --s5340-bg:#dbeafe;--s5340-b:#2563eb;
  --s5350-bg:#f3e8ff;--s5350-b:#a855f7;
}

/* ── HEADER ────────────────────────────────────────────────────────── */
.hdr{background:linear-gradient(135deg,#001A6E,#0038A8);color:#fff;padding:10px 24px;display:flex;align-items:center;gap:10px;flex-wrap:wrap;box-shadow:0 2px 12px rgba(0,0,0,.4);position:sticky;top:0;z-index:60;border-bottom:3px solid #E31837}
.hdr-title{font-size:1rem;font-weight:700;white-space:nowrap;display:flex;align-items:center;gap:10px}
.hdr-right{display:flex;align-items:center;gap:7px;margin-left:auto;flex-wrap:wrap}
.hsearch{padding:6px 13px;border-radius:20px;border:none;background:rgba(255,255,255,.13);color:#fff;font-size:.82rem;width:175px;outline:none}
.hsearch::placeholder{color:rgba(255,255,255,.45)}
.hsearch:focus{background:rgba(255,255,255,.22)}
.hbtn{padding:6px 12px;border-radius:6px;border:none;font-size:.78rem;font-weight:600;cursor:pointer;transition:.15s;white-space:nowrap}
.hbtn-dir{background:#E31837;color:#fff}.hbtn-dir:hover{background:#c0122c}
.hbtn-reset{background:rgba(255,255,255,.13);color:#fff}.hbtn-reset:hover{background:rgba(255,255,255,.22)}
.saved-flash{font-size:.72rem;color:#86efac;opacity:0;transition:opacity .3s;white-space:nowrap}
.saved-flash.show{opacity:1}

/* ── SETTINGS DROPDOWN ───────────────────────────────────────────── */
.settings-wrap{position:relative;display:inline-flex}
.settings-dd{position:absolute;top:calc(100% + 8px);right:0;background:#fff;border:1.5px solid #e2e8f0;border-radius:10px;padding:4px;min-width:190px;box-shadow:0 8px 28px rgba(0,0,0,.18);z-index:300;display:none}
.settings-dd.open{display:block}
.settings-mi{padding:9px 14px;border-radius:7px;color:#1e293b;font-size:.8rem;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:9px;transition:.1s}
.settings-mi:hover{background:#eff5ff;color:#0038A8}
.settings-sep{height:1px;background:#e2e8f0;margin:3px 4px}
/* ── REMINDER BANNER ─────────────────────────────────────────────── */
#reminderBannerContainer{width:100%;box-sizing:border-box}
.reminder-banner{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:7px 16px;background:linear-gradient(90deg,#fef3c7,#fffbeb);border-bottom:2px solid #fbbf24}
.reminder-pill{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border-radius:20px;font-size:.74rem;font-weight:700;color:#78350f;background:#fde68a;border:1.5px solid #f59e0b}
.reminder-pill-blue{color:#1e3a8a;background:#dbeafe;border-color:#93c5fd}
.reminder-pill-red{color:#7f1d1d;background:#fee2e2;border-color:#fca5a5}
.reminder-banner-lbl{font-size:.67rem;font-weight:700;color:#b45309;text-transform:uppercase;letter-spacing:.06em;flex-shrink:0}
/* ── REMINDERS SETTINGS MODAL ────────────────────────────────────── */
.rem-row{display:flex;align-items:center;gap:8px;padding:9px 0;border-bottom:1px solid #f1f5f9}
.rem-row:last-child{border-bottom:none}
.rem-label{flex:1;font-size:.82rem;font-weight:600;color:#1e293b}
.rem-type-badge{font-size:.62rem;font-weight:700;padding:2px 7px;border-radius:10px;background:#f1f5f9;color:#64748b;white-space:nowrap}
.rem-toggle{width:36px;height:20px;border-radius:10px;border:none;cursor:pointer;position:relative;flex-shrink:0;transition:.2s}
.rem-toggle.on{background:#0038A8}.rem-toggle.off{background:#cbd5e0}
.rem-toggle::after{content:'';position:absolute;top:3px;width:14px;height:14px;border-radius:50%;background:#fff;transition:.2s}
.rem-toggle.on::after{left:19px}.rem-toggle.off::after{left:3px}
.rem-del{background:none;border:none;color:#94a3b8;font-size:1rem;cursor:pointer;padding:0 3px;line-height:1}.rem-del:hover{color:#dc2626}
/* ── FIREBASE SYNC ───────────────────────────────────────────────── */
.fb-dot{width:9px;height:9px;border-radius:50%;display:inline-block;flex-shrink:0;cursor:default}
.fb-dot-ok{background:#22c55e}.fb-dot-none{background:#94a3b8}
.fb-dot-sync{background:#f59e0b;animation:fb-pulse .8s ease-in-out infinite}
.fb-dot-err{background:#ef4444}
@keyframes fb-pulse{0%,100%{opacity:1}50%{opacity:.3}}

/* ── SCHEDULE SWITCHER ───────────────────────────────────────────── */
.sched-switcher-wrap{background:#001252;padding:5px 18px;display:flex;align-items:center;gap:6px;flex-wrap:wrap;min-height:34px}
#schedSwitcher{position:sticky;top:var(--hdr-only-h,52px);z-index:55}
.ss-pill{display:inline-flex;align-items:center;gap:4px;padding:3px 11px;border-radius:14px;border:1.5px solid rgba(255,255,255,.18);background:rgba(255,255,255,.08);color:#cbd5e1;font-size:.74rem;font-weight:600;cursor:pointer;transition:.13s;white-space:nowrap}
.ss-pill:hover{background:rgba(255,255,255,.16);color:#fff}
.ss-pill.ss-active{background:#E31837;border-color:#E31837;color:#fff}
.ss-del{font-size:.9rem;color:rgba(255,255,255,.45);margin-left:3px;line-height:1;cursor:pointer;transition:.1s}
.ss-del:hover{color:#f87171}
.ss-edit{font-size:.75rem;color:rgba(255,255,255,.45);margin-left:3px;line-height:1;cursor:pointer;transition:.1s}
.ss-edit:hover{color:#fbbf24}
.ss-active .ss-edit{color:rgba(255,255,255,.75)}
.ss-active .ss-edit:hover{color:#fde68a}
.ss-add{padding:3px 10px;border-radius:14px;border:1.5px dashed rgba(255,255,255,.3);background:transparent;color:#94a3b8;font-size:.72rem;font-weight:600;cursor:pointer;transition:.13s}
.ss-add:hover{border-color:#38bdf8;color:#38bdf8}
.ss-lbl{font-size:.65rem;font-weight:700;color:#64748b;text-transform:uppercase;letter-spacing:.05em;margin-right:2px}
.ss-sep{width:1px;height:16px;background:rgba(255,255,255,.12);margin:0 4px;flex-shrink:0}
.ss-compare{padding:3px 10px;border-radius:14px;border:1.5px solid #f59e0b;background:rgba(245,158,11,.12);color:#fbbf24;font-size:.72rem;font-weight:700;cursor:pointer;transition:.13s;margin-left:6px}
.ss-compare:hover{background:#f59e0b;color:#1e293b}
.ss-compare.has-changes{animation:pulse-amber 1.6s ease-in-out infinite}
@keyframes pulse-amber{0%,100%{box-shadow:0 0 0 0 rgba(245,158,11,.4)}50%{box-shadow:0 0 0 5px rgba(245,158,11,0)}}
.ss-archive-wrap{position:relative;display:inline-flex}
.ss-archive-btn{display:inline-flex;align-items:center;gap:5px;padding:3px 11px;border-radius:14px;border:1.5px solid rgba(255,255,255,.18);background:rgba(255,255,255,.08);color:#94a3b8;font-size:.74rem;font-weight:600;cursor:pointer;transition:.13s;white-space:nowrap;line-height:1.4}
.ss-archive-btn:hover,.ss-archive-btn.open{background:rgba(255,255,255,.16);color:#e2e8f0}
.ss-archive-btn.has-active{background:#475569;border-color:#64748b;color:#e2e8f0}
.ss-archive-dd{position:absolute;top:calc(100% + 7px);left:0;background:#001252;border:1.5px solid rgba(255,255,255,.15);border-radius:10px;padding:4px;min-width:170px;box-shadow:0 8px 28px rgba(0,0,0,.45);z-index:300;display:none}
.ss-archive-dd.open{display:block}
.ss-archive-item{padding:7px 12px;border-radius:7px;color:#cbd5e1;font-size:.73rem;font-weight:600;cursor:pointer;transition:.1s;white-space:nowrap}
.ss-archive-item:hover{background:rgba(255,255,255,.1);color:#fff}
.ss-archive-item.active{background:#475569;color:#f1f5f9}
#archiveBanner{display:none;background:#001252;color:#94a3b8;font-size:.75rem;font-weight:600;text-align:center;padding:5px 16px;border-bottom:2px solid #f59e0b;letter-spacing:.02em}
#archiveBanner.visible{display:block}
/* Create schedule modal */
.cs-week-preview{background:#f1f5f9;border-radius:8px;padding:10px 14px;font-size:.78rem;color:#374151;margin-top:8px;min-height:32px}
/* Compare modal */
.cmp-wrap{max-width:860px;width:100%}
.cmp-row{border:1px solid #e2e8f0;border-radius:8px;padding:11px 14px;margin-bottom:10px;background:#fff}
.cmp-who{font-size:.78rem;font-weight:700;color:#1e293b;margin-bottom:7px}
.cmp-cols{display:flex;gap:10px;margin-bottom:8px}
.cmp-side{flex:1;background:#f8fafc;border-radius:6px;padding:7px 10px;min-height:32px}
.cmp-lbl{font-size:.6rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:#94a3b8;margin-bottom:4px}
.cmp-store{font-size:.72rem;color:#1e293b;padding:1px 0;display:flex;align-items:center;gap:4px}
.cmp-acts{display:flex;gap:7px}
.cmp-accept{padding:3px 12px;border-radius:6px;border:none;background:#059669;color:#fff;font-size:.72rem;font-weight:700;cursor:pointer}
.cmp-accept:hover{background:#047857}
.cmp-deny{padding:3px 12px;border-radius:6px;border:1.5px solid #e2e8f0;background:#f8fafc;color:#64748b;font-size:.72rem;font-weight:700;cursor:pointer}
.cmp-deny:hover{background:#fee2e2;color:#b91c1c;border-color:#fca5a5}
.cmp-all-row{display:flex;gap:8px;margin-bottom:14px;padding-bottom:10px;border-bottom:2px solid #e2e8f0}
.cmp-accept-all{padding:5px 16px;border-radius:7px;border:none;background:#059669;color:#fff;font-size:.76rem;font-weight:700;cursor:pointer}
.cmp-deny-all{padding:5px 16px;border-radius:7px;border:1.5px solid #e2e8f0;background:#f8fafc;color:#64748b;font-size:.76rem;font-weight:700;cursor:pointer}
.viewing-weekly-badge{display:inline-flex;align-items:center;gap:5px;background:#0c4a6e;color:#7dd3fc;font-size:.68rem;font-weight:700;padding:2px 10px;border-radius:12px;border:1px solid #0369a1}

/* ── TABS ────────────────────────────────────────────────────────── */
#dayTabBar{position:sticky;top:var(--hdr-h,52px);z-index:51;background:#fff;display:flex;align-items:center;gap:8px;padding:6px 12px 4px;box-shadow:0 2px 6px rgba(0,0,0,.08)}
#dayTabBar .tabs{flex:1 1 auto;min-width:0;display:flex;gap:5px;overflow-x:auto;padding:0;background:transparent;border:none;box-shadow:none}
#page-top{position:sticky;top:var(--hdr-h-full,52px);z-index:50;background:#eef3fb;box-shadow:0 2px 6px rgba(0,0,0,.1)}
.tabs{display:flex;gap:5px;padding:6px 24px;background:#f0f5fc;border-bottom:2px solid #c5d6ee;overflow-x:auto}
.tab{padding:5px 13px;border-radius:20px;border:2px solid #c5d6ee;background:transparent;color:#4a5568;font-size:.79rem;font-weight:600;cursor:pointer;transition:.15s;white-space:nowrap}
.tab:hover{border-color:#0038A8;color:#0038A8}
.tab.active{background:#0038A8;border-color:#0038A8;color:#fff}

/* ── TOOLBAR ─────────────────────────────────────────────────────── */
.toolbar{display:flex;align-items:center;gap:8px;padding:7px 24px;flex-wrap:wrap}
.stats-row{display:flex;gap:6px;flex-wrap:wrap;flex:1}
.stat{background:#fff;border-radius:8px;padding:5px 11px;font-size:.75rem;color:#475569;box-shadow:0 1px 4px rgba(0,26,110,.08);display:flex;align-items:center;gap:5px;border:1px solid #e4eaf6}
.stat b{color:#001A6E;font-size:.88rem;font-weight:800}
.stat.spares-stat{background:#f0fdf4;border:1px solid #86efac}
.add-emp-btn{padding:6px 14px;border-radius:8px;border:2px dashed #0038A8;background:transparent;color:#0038A8;font-size:.8rem;font-weight:700;cursor:pointer;transition:.15s}
.add-emp-btn:hover{background:#0038A8;color:#fff}

/* ── LEGEND ──────────────────────────────────────────────────────── */
.legend{display:flex;gap:16px;align-items:center;padding:0 24px 6px;flex-wrap:wrap}
.leg-ttl{font-size:.73rem;font-weight:700;color:#4a5568}
.leg-grp{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.leg{display:flex;align-items:center;gap:4px;font-size:.71rem;color:#4a5568}
.leg-sq{width:18px;height:10px;border-radius:2px;flex-shrink:0}
.leg-sep{color:#cbd5e0;font-size:.9rem}

/* ── MAIN ────────────────────────────────────────────────────────── */
.main{padding:0 24px 32px}

/* ── EMPLOYEE CARD ───────────────────────────────────────────────── */
.emp-card{border-radius:13px;box-shadow:0 2px 8px rgba(0,26,110,.08),0 1px 2px rgba(0,0,0,.05);overflow:hidden;margin-bottom:12px;border:2px solid #dde6f5;background:#fff;transition:box-shadow .2s,transform .15s}
.emp-card:hover{box-shadow:0 4px 16px rgba(0,26,110,.13),0 1px 4px rgba(0,0,0,.07)}
.emp-card.hidden{display:none}
.emp-card.route-5310{border-color:var(--e5310-b)}
.emp-card.route-5320{border-color:var(--e5320-b)}
.emp-card.route-5330{border-color:var(--e5330-b)}
.emp-card.route-5340{border-color:var(--e5340-b)}
.emp-card.route-5350{border-color:var(--e5350-b)}

.emp-head{display:flex;align-items:center;gap:10px;padding:10px 14px;border-bottom:1px solid rgba(0,0,0,.06)}
.emp-card.route-5310 .emp-head{background:var(--e5310-bg)}
.emp-card.route-5320 .emp-head{background:var(--e5320-bg)}
.emp-card.route-5330 .emp-head{background:var(--e5330-bg)}
.emp-card.route-5340 .emp-head{background:var(--e5340-bg)}
.emp-card.route-5350 .emp-head{background:var(--e5350-bg)}
.emp-card:not([class*=route-]) .emp-head{background:#f7f8fc}

.avatar{width:33px;height:33px;border-radius:50%;color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.8rem;flex-shrink:0}
.route-5310 .avatar{background:var(--e5310-b)}
.route-5320 .avatar{background:var(--e5320-b)}
.route-5330 .avatar{background:var(--e5330-b)}
.route-5340 .avatar{background:var(--e5340-b)}
.route-5350 .avatar{background:var(--e5350-b)}
.emp-card:not([class*=route-]) .avatar{background:#0038A8}

.emp-info{flex:1;min-width:0}
.emp-name-inp{font-weight:700;font-size:.93rem;color:#0d1b4b;outline:none;border:none;background:transparent;width:100%;font-family:inherit;cursor:text}
.emp-name-inp:focus{border-bottom:2px solid #0038A8}
.emp-chips{display:flex;gap:4px;margin-top:3px;flex-wrap:wrap;align-items:center}
.chip{font-size:.62rem;font-weight:800;padding:1px 7px;border-radius:10px;letter-spacing:.03em}
.chip-route{background:#e5e7eb;color:#374151}
.route-5310 .chip-route{background:var(--e5310-bg);color:#b91c1c;border:1px solid var(--e5310-b)}
.route-5320 .chip-route{background:var(--e5320-bg);color:#15803d;border:1px solid var(--e5320-b)}
.route-5330 .chip-route{background:var(--e5330-bg);color:#92400e;border:1px solid var(--e5330-b)}
.route-5340 .chip-route{background:var(--e5340-bg);color:#1d4ed8;border:1px solid var(--e5340-b)}
.route-5350 .chip-route{background:var(--e5350-bg);color:#6b21a8;border:1px solid var(--e5350-b)}
.chip-spare{background:#d1fae5;color:#065f46;border:1px solid #6ee7b7}
.chip-oot{background:#ede9fe;color:#5b21b6;border:1px solid #c4b5fd}
.card-drag-h{cursor:grab;padding:0 4px 0 8px;color:#cbd5e0;font-size:1.1rem;display:flex;align-items:center;flex-shrink:0;user-select:none;line-height:1}
.card-drag-h:hover{color:#94a3b8}
.emp-card.card-drag-over{border-color:#0038A8!important;box-shadow:0 0 0 3px rgba(0,56,168,.2)}
#schedule.drag-active{display:flex;flex-direction:column}
#schedule.drag-active .emp-card[data-emp-id]{opacity:.35;transition:opacity .12s;order:2}
#schedule.drag-active .emp-card.drag-match{opacity:1;box-shadow:0 0 0 3px rgba(0,56,168,.35);order:1}
.chip-ft{background:#e0f2fe;color:#0369a1}
.chip-pt{background:#fef3c7;color:#92400e}
.chip-seasonal{background:#fce7f3;color:#9d174d}
.chip-vac{background:#fef3c7;color:#92400e;border:1px solid #fbbf24}
.chip-sick{background:#fee2e2;color:#991b1b;border:1px solid #f87171}
.chip-mod{background:#f5f3ff;color:#5b21b6;border:1px solid #a78bfa}
.chip-loa{background:#f1f5f9;color:#334155;border:1px solid #94a3b8;font-weight:700}
.chip-stat-given{background:#dcfce7;color:#166534;border:1px solid #86efac}
.chip-stat-missing{background:#fee2e2;color:#991b1b;border:1px solid #f87171}
.chip-trainer{background:#fef9c3;color:#92400e;border:1px solid #fbbf24}
.chip-leadhand{background:#fff7ed;color:#9a3412;border:1px solid #fb923c}
.chip-supervisor{background:#fff1f2;color:#9f1239;border:1px solid #fb7185}
.chip-trainee{background:#e0f2fe;color:#0369a1;border:1px solid #7dd3fc}
.chip-resigned{background:#fecaca;color:#991b1b;border:1px solid #f87171;font-weight:700}
.chip-resigning{background:#fef3c7;color:#92400e;border:1px solid #fbbf24}
.chip-area{background:#ede9fe;color:#4c1d95;border:1px solid #c4b5fd;font-style:italic}
.chip-overday{background:#fff7ed;color:#9a3412;border:1.5px solid #fb923c;font-weight:700}
.day-act-spare-blocked{background:#fff7ed!important;color:#9a3412!important;border:1px solid #fb923c!important;cursor:not-allowed!important;opacity:.7}

/* ── TRAINEE LABEL ────────────────────────────────────────────── */
.trainee-lbl{font-size:.66rem;color:#0369a1;background:#e0f2fe;border:1px solid #7dd3fc;border-radius:5px;padding:3px 7px;margin:3px 4px 2px;display:flex;align-items:center;gap:4px}

/* ── CONSISTENCY PANEL ────────────────────────────────────────── */
.cons-panel{margin:4px 16px 2px;padding:6px 10px;background:#fff;border-radius:8px;border:1px solid #dde6f5;box-shadow:0 1px 4px rgba(0,26,110,.07);display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.cons-chip{display:inline-flex;align-items:center;gap:5px;font-size:.7rem;font-weight:700;padding:3px 9px;border-radius:20px;border:1.5px solid;white-space:nowrap}
.cons-chip.ok{background:#f0fdf4;border-color:#86efac;color:#166534}
.cons-chip.warn{background:#fefce8;border-color:#fbbf24;color:#92400e;cursor:pointer}
.cons-chip.warn:hover{background:#fef3c7}
.cons-chip.bad{background:#fef2f2;border-color:#fca5a5;color:#991b1b;cursor:pointer}
.cons-chip.bad:hover{background:#fee2e2}
.cons-chip.info{background:#eff6ff;border-color:#93c5fd;color:#1d4ed8;cursor:pointer}
.cons-chip.info:hover{background:#dbeafe}
.cons-chip.none{background:#f8fafc;border-color:#e2e8f0;color:#94a3b8}
.cons-panel-hdr{font-size:.68rem;font-weight:700;color:#64748b;margin-right:4px}
/* Consistency drilldown overlay */
.cons-ov-wrap{background:#fff;border-radius:14px;width:100%;max-width:560px;max-height:82vh;display:flex;flex-direction:column;box-shadow:0 20px 60px rgba(0,0,0,.35)}
.cons-ov-hd{padding:14px 18px;border-bottom:1px solid #e2e8f0;display:flex;align-items:center;justify-content:space-between}
.cons-ov-body{overflow-y:auto;flex:1;padding:12px 18px}
.cons-ov-row{display:flex;align-items:flex-start;gap:10px;padding:7px 0;border-bottom:1px solid #f1f5f9;font-size:.75rem}
.cons-ov-row:last-child{border-bottom:none}
.cons-ov-store{font-weight:700;color:#1e293b;flex:1}
.cons-ov-type{padding:1px 6px;border-radius:4px;font-size:.65rem;font-weight:700}
.cons-ov-detail{color:#64748b;font-size:.7rem}
/* ── SUGGESTIONS OVERLAY ─────────────────────────────────────── */
.sug-card{border:1.5px solid #e2e8f0;border-radius:10px;padding:12px 14px;margin-bottom:10px;background:#fff;transition:box-shadow .12s}
.sug-card:hover{box-shadow:0 2px 12px rgba(0,26,110,.1)}
.sug-card.sug-route{border-left:4px solid #0038A8}
.sug-card.sug-time{border-left:4px solid #059669}
.sug-card.sug-affinity{border-left:4px solid #d97706}
.sug-type{display:inline-block;font-size:.6rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase;padding:2px 7px;border-radius:10px;margin-bottom:6px}
.sug-type-route{background:#dbeafe;color:#1d4ed8}
.sug-type-time{background:#dcfce7;color:#15803d}
.sug-type-affinity{background:#fef9c3;color:#854d0e}
.sug-move{display:flex;align-items:center;gap:8px;margin:6px 0;flex-wrap:wrap}
.sug-emp{font-size:.78rem;font-weight:700;color:#1e293b}
.sug-arrow{font-size:.9rem;color:#94a3b8}
.sug-store-pill{display:inline-flex;align-items:center;gap:4px;background:#f1f5f9;border-radius:6px;padding:3px 8px;font-size:.72rem;font-weight:600;border:1px solid #e2e8f0}
.sug-times{font-size:.68rem;color:#64748b;margin-top:4px;display:flex;gap:12px;flex-wrap:wrap}
.sug-time-item{display:flex;align-items:center;gap:3px}
.sug-time-item b{color:#334155}
.sug-reason{font-size:.68rem;color:#64748b;margin-top:5px;font-style:italic}
.sug-aff-warn{font-size:.63rem;color:#b45309;font-weight:700;margin-top:3px}
.sug-actions{display:flex;gap:8px;margin-top:10px}
.sug-accept{background:#0038A8;color:#fff;border:none;border-radius:7px;padding:5px 16px;font-size:.74rem;font-weight:700;cursor:pointer;transition:.12s}
.sug-accept:hover{background:#001e7a}
.sug-dismiss{background:none;border:1.5px solid #e2e8f0;border-radius:7px;padding:5px 12px;font-size:.74rem;color:#64748b;cursor:pointer;transition:.12s}
.sug-dismiss:hover{background:#f8fafc}
.sug-empty{text-align:center;padding:30px 20px;color:#94a3b8;font-size:.82rem}
/* ── STORE SEARCH BAR (all-days) ─────────────────────────────── */
.store-search-bar{margin:4px 16px 2px;display:flex;align-items:center;gap:8px;padding:5px 10px;background:#fff;border-radius:8px;border:1px solid #dde6f5}
.store-search-bar input{flex:1;min-width:260px;border:1.5px solid #e2e8f0;border-radius:20px;padding:4px 12px;font-size:.75rem;outline:none;transition:border-color .15s}
.store-search-bar input:focus{border-color:#6699cc}
.store-search-bar .ssb-lbl{font-size:.7rem;font-weight:700;color:#0038A8;white-space:nowrap}
.store-search-bar .ssb-clear{background:none;border:none;cursor:pointer;color:#94a3b8;font-size:.85rem;padding:0 2px;line-height:1}
.store-search-bar .ssb-count{font-size:.68rem;color:#64748b;white-space:nowrap}
/* ── STATUS OVERVIEW ──────────────────────────────────────────── */
.status-overview-card{margin:4px 16px 2px;padding:5px 10px;background:#fff;border-radius:8px;border:1px solid #dde6f5;box-shadow:0 1px 4px rgba(0,26,110,.07)}
.cost-bar{display:flex;align-items:center;gap:10px;margin:6px 24px 2px;padding:8px 16px;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:10px;font-size:.78rem;flex-wrap:wrap}
.cost-bar-inline{display:flex;align-items:center;gap:7px;padding:3px 10px;background:#f0fdf4;border:1.5px solid #bbf7d0;border-radius:8px;font-size:.72rem;white-space:nowrap}
.cost-ttl{font-weight:800;color:#166534;font-size:.8rem;margin-right:4px}
.cost-item{display:flex;align-items:center;gap:5px;font-weight:700;color:#15803d}
.cost-lbl{font-weight:400;color:#64748b;font-size:.72rem}
.cost-sep{color:#94a3b8;font-weight:400}
.cost-total{font-weight:800;color:#166534;font-size:.9rem;background:#dcfce7;border-radius:6px;padding:2px 10px}
.cost-detail{margin-left:auto;color:#94a3b8;font-size:.68rem;white-space:nowrap}
.sov-top-hdr{display:flex;align-items:center;justify-content:space-between;cursor:pointer;font-size:.78rem;font-weight:700;color:#334155;padding:2px 0;user-select:none}
.sov-top-hdr:hover{color:#0038A8}
.sov-chevron{font-size:.65rem;color:#94a3b8}
.sov-hdr{font-size:.72rem;font-weight:700;color:#64748b;margin-bottom:5px;text-transform:uppercase;letter-spacing:.04em}
.sov-grid{display:flex;gap:8px;flex-wrap:wrap}
.sov-col{border-radius:7px;padding:8px 10px;min-width:160px;flex:1}
.sov-col-hdr{font-size:.72rem;font-weight:800;margin-bottom:5px}
.sov-row{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:2px 0;border-bottom:1px solid rgba(0,0,0,.06);font-size:.72rem}
.sov-row:last-child{border-bottom:none}
.sov-name{font-weight:600;color:#1e293b}
.sov-days{color:#64748b;font-size:.67rem;white-space:nowrap}
.sov-training-grid{display:flex;flex-wrap:wrap;gap:6px}
.sov-pair{display:flex;align-items:center;gap:6px;background:#f0f9ff;border:1px solid #bae6fd;border-radius:7px;padding:5px 10px;font-size:.74rem}
.sov-trainee{font-weight:700;color:#0369a1}
.sov-trainer{font-weight:700;color:#92400e}
.sov-arrow{color:#94a3b8;font-size:.8rem}
.sov-export-btn{font-size:.65rem;padding:2px 8px;border-radius:5px;border:1.5px solid #94a3b8;background:#f1f5f9;color:#475569;cursor:pointer;font-weight:600;line-height:1.4}
.sov-export-btn:hover{background:#e2e8f0;border-color:#64748b}
.conflict-card{margin:4px 16px 2px;padding:5px 10px;background:#fff5f5;border-radius:8px;border:1.5px solid #fca5a5;box-shadow:0 1px 4px rgba(220,38,38,.08)}
.conflict-hdr{font-size:.74rem;font-weight:700;color:#dc2626;margin-bottom:4px;cursor:pointer;display:flex;align-items:center;justify-content:space-between}
.conflict-cols{display:flex;overflow-x:auto;overflow-y:auto}
.conflict-col{flex:1;min-width:120px;border-right:1px solid #fecaca;padding:4px 6px;flex-shrink:0}
.conflict-col:last-child{border-right:none}
.conflict-col-hdr{font-size:.63rem;font-weight:800;color:#b91c1c;text-transform:uppercase;letter-spacing:.05em;margin-bottom:3px;padding:2px 0}
.conflict-item{padding:4px 0;border-bottom:1px solid #fee2e2;font-size:.72rem}
.conflict-item:last-child{border-bottom:none}
.conflict-store{font-weight:600;color:#1e293b;display:block;margin-bottom:2px}
.conflict-row{display:flex;align-items:center;gap:10px;padding:4px 0 4px 8px;border-bottom:1px solid #fee2e2;font-size:.74rem;flex-wrap:wrap}
.conflict-row:last-child{border-bottom:none}
.conflict-who{color:#dc2626;font-size:.7rem}
.conflict-goto-wrap{display:flex;gap:5px;flex-wrap:wrap}
.conflict-goto-btn{font-size:.68rem;padding:2px 8px;border-radius:5px;border:1.5px solid #fca5a5;background:#fff5f5;color:#dc2626;cursor:pointer;font-weight:600;white-space:nowrap}
.conflict-goto-btn:hover{background:#fca5a5;color:#7f1d1d}
.conflict-hdr{font-size:.78rem;font-weight:700;color:#dc2626;margin-bottom:6px;display:flex;align-items:center;justify-content:space-between}
.conflict-merch-tag{font-size:.6rem;font-weight:700;background:#fee2e2;color:#b91c1c;border-radius:3px;padding:1px 5px;margin-left:4px;vertical-align:middle}
.prof-cfl-banner{font-size:.68rem;padding:3px 9px;border-radius:12px;border:1.5px solid #e2e8f0;background:#f8fafc;color:#64748b;cursor:pointer;font-weight:600;line-height:1.4;transition:background .1s,color .1s,border-color .1s}
.prof-cfl-banner.active{background:#fee2e2;border-color:#fca5a5;color:#b91c1c;font-weight:700}
.prof-cfl-store-row{display:flex;align-items:center;gap:5px;font-size:.72rem;cursor:pointer;padding:3px 5px;border-radius:4px;line-height:1.3}
.prof-cfl-store-row:hover{background:#f8fafc}
.prof-cfl-store-row input{flex-shrink:0;accent-color:#dc2626}
.day-act-ovn{background:#f5f3ff;border-color:#c4b5fd;color:#6d28d9}
.day-act-ovn-on{background:#6d28d9;border-color:#5b21b6;color:#fff;font-weight:700}
.ovn-badge{display:inline-block;font-size:.65rem;font-weight:700;background:#ede9fe;color:#5b21b6;border:1px solid #c4b5fd;border-radius:5px;padding:1px 7px;margin-top:3px}
.ua-selected .ua-chk{outline:2px solid #0038A8;accent-color:#0038A8}
.ua-chk-wrap{display:flex;align-items:center;cursor:pointer;padding:2px 4px}
.ua-chk{width:14px;height:14px;cursor:pointer;accent-color:#0038A8}
.ua-bulk-btn{margin-left:auto;padding:4px 12px;border-radius:6px;border:none;background:#0038A8;color:#fff;font-size:.75rem;font-weight:700;cursor:pointer;white-space:nowrap}
.ua-bulk-btn:hover{background:#002d8a}
.ua-filter-row{display:flex;gap:4px;flex-wrap:wrap;padding:3px 12px 3px;border-bottom:1px solid #fecaca}
.ua-rf-btn{font-size:.64rem;padding:2px 7px;border-radius:5px;border:1.5px solid #cbd5e1;background:#f1f5f9;color:#475569;cursor:pointer;font-weight:600;white-space:nowrap}
.ua-rf-btn:hover{background:#e2e8f0}
.ua-rf-on{background:#0038A8;border-color:#0038A8;color:#fff}
.ua-rf-on:hover{background:#002d8a}
.emp-meta{font-size:.68rem;color:#94a3b8;margin-top:1px}

.emp-acts{display:flex;gap:5px;align-items:center;flex-shrink:0}
.ea-btn{padding:4px 9px;border-radius:6px;border:1px solid #e2e8f0;background:#fff;color:#374151;font-size:.73rem;font-weight:600;cursor:pointer;transition:.15s;white-space:nowrap}
.ea-btn:hover{background:#f1f5f9}
.ea-dd{position:relative}
.ea-menu{position:fixed;background:#fff;border-radius:8px;box-shadow:0 4px 20px rgba(0,0,0,.15);border:1px solid #e2e8f0;min-width:170px;z-index:9999;max-height:260px;overflow-y:auto;overflow-x:hidden;display:none}
.ea-menu.open{display:block}
.ea-mi{padding:8px 13px;font-size:.8rem;cursor:pointer;display:flex;align-items:center;gap:7px;color:#1e293b;transition:.1s}
.ea-mi:hover{background:#eff5ff;color:#001A6E}
.ea-mi.sep{border-top:1px solid #e2e8f0}
.ea-mi.danger{color:#dc2626}
.ea-mi.danger:hover{background:#fff5f5}

/* ── DAY COLUMNS ────────────────────────────────────────────────── */
.emp-days{display:flex;overflow-x:auto;border-top:1px solid #edf0f5}
.day-col{flex:1;min-width:145px;border-right:1px solid #edf0f5;display:flex;flex-direction:column}
.day-col:last-child{border-right:none}
.day-act-btns{display:flex;gap:3px;padding:3px 4px 5px;flex-wrap:wrap}
.day-act-btn{font-size:.6rem;padding:3px 6px;border-radius:4px;border:1px solid #e2e8f0;background:#f8fafc;color:#475569;cursor:pointer;transition:.1s;line-height:1.3}
.day-act-btn:hover{background:#e2e8f0}
.day-act-sick{border-color:#fca5a5;background:#fff5f5;color:#dc2626}
.day-act-sick:hover{background:#dc2626;color:#fff}
.day-act-vac{border-color:#fbbf24;background:#fef3c7;color:#92400e}
.day-act-vac:hover{background:#f59e0b;color:#fff}
.day-act-clear{border-color:#94a3b8;background:#f1f5f9;color:#475569}
.day-act-spare{border-color:#6ee7b7;background:#f0fdf4;color:#065f46}
.day-act-spare:hover{background:#059669;color:#fff}
.day-act-spare-on{border-color:#059669;background:#d1fae5;color:#065f46;font-weight:700}
.day-act-mod{border-color:#a78bfa;background:#f5f3ff;color:#5b21b6}
.day-act-mod:hover{background:#7c3aed;color:#fff}
.day-act-loa{border-color:#94a3b8;background:#f1f5f9;color:#334155}
.day-act-loa:hover{background:#475569;color:#fff}
.day-act-stat{border-color:#6699cc;background:#dce8ff;color:#001A6E}
.day-act-stat:hover{background:#0038A8;color:#fff}
.unassigned-card{background:#fff8f8;border-color:#f87171;margin:4px 16px 4px}
.ua-header{padding:4px 10px;font-weight:700;font-size:.74rem;color:#dc2626;border-bottom:1px solid #fecaca;display:flex;align-items:center;gap:6px}
.ua-cols{display:flex;overflow-x:auto;overflow-y:auto}
.resize-grip{height:11px;cursor:ns-resize;background:radial-gradient(circle,#94a3b8 1px,transparent 1px) center/8px 5px repeat-x;margin:0;opacity:.55;transition:opacity .15s;touch-action:none}
.resize-grip:hover{opacity:1}
.ua-store-card{padding:2px 4px 2px 4px!important;margin-bottom:2px!important}
.ua-store-card .store-body{gap:1px}
.ua-store-card .store-nm{font-size:.72rem}
.ua-store-card .store-loc,.ua-store-card .store-time,.ua-store-card .early-start-note{font-size:.62rem}
.ua-day-col{flex:1;min-width:145px;border-right:1px solid #fecaca;padding:3px 5px;flex-shrink:0;min-height:40px;transition:background .12s}
.ua-day-col:last-child{border-right:none}
.ua-day-col.drag-over{background:#fee2e2;outline:2px dashed #f87171;outline-offset:-2px}
.ua-day-head{font-size:.63rem;font-weight:800;color:#b91c1c;text-transform:uppercase;margin-bottom:3px;padding:0 2px}
.ua-empty{font-size:.67rem;color:#fca5a5;padding:6px 4px;font-style:italic;text-align:center;border:1px dashed #fca5a5;border-radius:5px;margin:2px}
.day-head{padding:5px 8px;font-size:.63rem;font-weight:800;letter-spacing:.07em;text-transform:uppercase;color:#94a3b8;background:#fafbff;border-bottom:1px solid #edf0f5;text-align:center}
.day-col.has-sh .day-head{color:#475569;background:#f4f6ff}
.route-5310 .day-col.has-sh .day-head{background:var(--e5310-bg);color:#b91c1c}
.route-5320 .day-col.has-sh .day-head{background:var(--e5320-bg);color:#15803d}
.route-5330 .day-col.has-sh .day-head{background:var(--e5330-bg);color:#92400e}
.route-5340 .day-col.has-sh .day-head{background:var(--e5340-bg);color:#1d4ed8}
.route-5350 .day-col.has-sh .day-head{background:var(--e5350-bg);color:#6b21a8}
/* Day column header */
.day-col-head{padding:5px 6px 4px;text-align:center;background:#f1f5f9;border-bottom:2px solid #dce8ff;line-height:1}
.dch-day{display:block;font-size:.62rem;font-weight:900;letter-spacing:.08em;color:#0038A8;text-transform:uppercase}
.dch-date{display:block;font-size:.7rem;font-weight:700;color:#334155;margin-top:1px}
.day-col.has-sh .day-col-head{background:#dce8ff;border-bottom-color:#93c5fd}
.day-col.has-sh .dch-day{color:#001252}
.day-col.has-sh .dch-date{color:#1e3a8a}
.route-5310 .day-col.has-sh .day-col-head{background:var(--e5310-bg);border-bottom-color:#fca5a5}
.route-5310 .day-col.has-sh .dch-day{color:#b91c1c}
.route-5310 .day-col.has-sh .dch-date{color:#7f1d1d}
.route-5320 .day-col.has-sh .day-col-head{background:var(--e5320-bg);border-bottom-color:#86efac}
.route-5320 .day-col.has-sh .dch-day{color:#15803d}
.route-5320 .day-col.has-sh .dch-date{color:#14532d}
.route-5330 .day-col.has-sh .day-col-head{background:var(--e5330-bg);border-bottom-color:#fde68a}
.route-5330 .day-col.has-sh .dch-day{color:#92400e}
.route-5330 .day-col.has-sh .dch-date{color:#451a03}
.route-5340 .day-col.has-sh .day-col-head{background:var(--e5340-bg);border-bottom-color:#93c5fd}
.route-5340 .day-col.has-sh .dch-day{color:#1d4ed8}
.route-5340 .day-col.has-sh .dch-date{color:#1e3a8a}
.route-5350 .day-col.has-sh .day-col-head{background:var(--e5350-bg);border-bottom-color:#d8b4fe}
.route-5350 .day-col.has-sh .dch-day{color:#6b21a8}
.route-5350 .day-col.has-sh .dch-date{color:#3b0764}

.stores-list{flex:1;padding:4px;min-height:50px}
.stores-list.drag-over{background:#ddeeff;outline:2px dashed #0038A8;border-radius:5px}
.off-lbl{padding:18px 8px;font-size:1rem;font-weight:700;font-style:italic;text-align:center;letter-spacing:.01em;opacity:.85}
.sick-overlay{padding:5px 4px 0}

/* ── STORE CARD (route-coloured) ────────────────────────────────── */
.store-card{border-radius:7px;margin-bottom:4px;display:flex;align-items:flex-start;gap:3px;padding:5px 5px 5px 5px;cursor:grab;user-select:none;border:1px solid #e2e8f0;background:#f8fafc;transition:box-shadow .12s,transform .12s;border-left-width:3px}
.store-card:hover:not(.greyed){box-shadow:0 3px 10px rgba(0,26,110,.12);transform:translateY(-1px)}
.store-card.dragging{opacity:.4}
.store-card.store-search-hl{box-shadow:0 0 0 2.5px #7c3aed!important;background:#f5f3ff!important;border-color:#a78bfa!important}
.store-card.greyed{opacity:.45;cursor:default;filter:grayscale(.4)}
.store-card.doh-top{box-shadow:0 -2px 0 0 #0038A8!important}
.store-card.doh-bot{box-shadow:0 2px 0 0 #0038A8!important}

/* Route colours for store cards */
.store-card.sc-5310{background:var(--s5310-bg);border-color:#fca5a5;border-left-color:var(--s5310-b)}
.store-card.sc-5320{background:var(--s5320-bg);border-color:#86efac;border-left-color:var(--s5320-b)}
.store-card.sc-5330{background:var(--s5330-bg);border-color:#fde047;border-left-color:var(--s5330-b)}
.store-card.sc-5340{background:var(--s5340-bg);border-color:#93c5fd;border-left-color:var(--s5340-b)}
.store-card.sc-5350{background:var(--s5350-bg);border-color:#d8b4fe;border-left-color:var(--s5350-b)}
.store-card.sc-5350{background:var(--s5350-bg);border-color:#d8b4fe;border-left-color:var(--s5350-b)}

.drag-h{color:#c8cdd8;font-size:.85rem;cursor:grab;line-height:1;padding-top:2px;flex-shrink:0;letter-spacing:-2px}
.drag-h:hover{color:#8b96a8}
.store-body{flex:1;min-width:0}
.store-top{display:flex;align-items:center;gap:3px;flex-wrap:wrap}

/* Type badges */
.badge{font-size:.58rem;font-weight:800;padding:1px 5px;border-radius:3px;letter-spacing:.04em;flex-shrink:0;border:1px solid transparent}
.badge-d{background:#fef08a;color:#713f12;border-color:#ca8a04}
.badge-b{background:#f1f5f9;color:#475569;border-color:#cbd5e1}
.badge-2t{background:#fca5a5;color:#7f1d1d;border-color:#ef4444}

.store-nm{font-size:.72rem;font-weight:700;color:#1e293b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:115px}
.store-loc{font-size:.65rem;color:#64748b;display:flex;align-items:center;gap:3px;margin-top:1px;flex-wrap:wrap}
.store-time{font-size:.65rem;color:#374151;font-weight:600;display:block;margin-top:1px}
.store-pal{color:#7c3aed;font-weight:700}
.store-note{font-size:.63rem;color:#64748b;font-style:italic;display:block;margin-top:1px}
.early-start-note{font-size:.61rem;font-weight:700;color:#b45309;background:#fef3c7;border:1px solid #fbbf24;border-radius:3px;padding:1px 5px;display:inline-block;margin-top:2px}
.tag-2t-last{font-size:.61rem;font-weight:700;color:#7c3aed;background:#f5f3ff;border:1px solid #c4b5fd;border-radius:3px;padding:1px 5px;display:inline-block;margin-top:2px}
.svc-time-tag{font-size:.58rem;color:#475569;background:#f1f5f9;border:1px solid #cbd5e0;border-radius:3px;padding:1px 4px;display:inline-block;margin-top:2px}
.shift-est-row{font-size:.62rem;color:#0038A8;font-weight:600;text-align:center;padding:2px 5px;margin-top:3px;background:#dce8ff;border-radius:4px;letter-spacing:.01em}
.oot-drive-tag{font-size:.6rem;color:#7c3aed;font-weight:600;text-align:center;padding:2px 5px;margin-top:2px;background:#f5f3ff;border:1px solid #c4b5fd;border-radius:4px;letter-spacing:.01em}
.meeting-card{display:flex;flex-direction:column;gap:1px;padding:5px 8px;border-radius:6px;border:1.5px solid #7c3aed;background:#f5f3ff;margin:3px 0;font-size:.72rem}
.meeting-card-head{display:flex;align-items:center;gap:4px;font-weight:700;color:#5b21b6}
.meeting-card-sub{font-size:.63rem;color:#6d28d9;margin-top:1px}
.meeting-drive-note{font-size:.61rem;color:#0038a8;font-weight:700;margin-top:2px}
.mtg-list-row{display:flex;align-items:flex-start;gap:8px;padding:7px 2px;border-bottom:1px solid #f1f5f9;font-size:.75rem}
.mtg-chk{accent-color:#7c3aed;width:14px;height:14px;cursor:pointer;flex-shrink:0;margin-top:2px}
.mtg-del-btn{padding:2px 7px;border-radius:5px;border:1px solid #fca5a5;background:#fee2e2;color:#b91c1c;font-size:.68rem;font-weight:700;cursor:pointer;flex-shrink:0}
.mtg-edit-btn{padding:2px 7px;border-radius:5px;border:1px solid #bfdbfe;background:#dbeafe;color:#1e3a8a;font-size:.68rem;font-weight:700;cursor:pointer;flex-shrink:0}
.ua-group-block{background:#f0fdf4;border:1.5px solid #86efac;border-radius:8px;padding:6px 10px;margin-bottom:6px;display:flex;align-items:center;gap:8px;cursor:grab}
.ua-group-block:active{cursor:grabbing}
.ua-group-block.dragging{opacity:.4}
.ua-group-name{font-weight:700;font-size:.74rem;color:#065f46;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ua-group-meta{font-size:.63rem;color:#059669;white-space:nowrap}
.ua-group-btn{padding:3px 10px;border-radius:5px;border:none;background:#059669;color:#fff;font-size:.7rem;font-weight:700;cursor:pointer;flex-shrink:0}
.srt-rule-row{display:flex;align-items:flex-start;gap:8px;padding:8px 0;border-bottom:1px solid #f1f5f9;font-size:.75rem}
.srt-rule-nm{flex:1;min-width:0;font-weight:600;color:#374151}
.srt-rule-desc{font-size:.66rem;color:#64748b;margin-top:2px}
.srt-toggle{accent-color:#0038A8}
.srt-drag-handle{cursor:grab;color:#94a3b8;font-size:1rem;flex-shrink:0;user-select:none;padding:0 2px}
.srt-dragging{opacity:.35}
.srt-drag-over{outline:2px solid #0038A8;outline-offset:2px;border-radius:6px}
.slack-btn{padding:5px 12px;border-radius:7px;border:1.5px solid #4ade80;background:#f0fdf4;color:#15803d;font-size:.78rem;font-weight:700;cursor:pointer;transition:.15s}
.slack-btn:hover{background:#dcfce7}
.store-acts{display:flex;flex-direction:column;gap:2px;flex-shrink:0}
.sa{width:18px;height:18px;border-radius:3px;border:none;font-size:.66rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:.1s;padding:0}
.sa-e{background:#e0f2fe;color:#0369a1}.sa-e:hover{background:#0369a1;color:#fff}
.sa-d{background:#fee2e2;color:#dc2626}.sa-d:hover{background:#dc2626;color:#fff}

.add-store-btn{margin:3px 4px 4px;padding:4px;border-radius:5px;border:1px dashed #cbd5e0;background:transparent;color:#94a3b8;font-size:.68rem;font-weight:600;cursor:pointer;transition:.15s;text-align:center}
.store-reassign-btn{width:18px;height:18px;border-radius:3px;border:none;font-size:.66rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:.1s;padding:0;background:#e8efff;color:#0038A8}
.store-reassign-btn:hover{background:#0038A8;color:#fff}
.sa-trainer{background:#fef9c3;color:#92400e}
.sa-trainer:hover{background:#f59e0b;color:#fff}
.sa-trainer-on{background:#fbbf24;color:#78350f}
.sa-trainer-on:hover{background:#d97706;color:#fff}
/* On touch devices, enlarge the small store-card action buttons (assign/remove/checkbox) so they're tappable.
   18×18 with a mouse is fine; with a finger it's not — the user reported the reassign + select in the
   unassigned section being too small to hit reliably. */
@media(pointer:coarse){
  /* Stretch the store card so the acts column fills full height */
  .store-card{align-items:stretch}
  .store-acts{align-self:stretch;gap:2px;height:auto}
  /* Each button shares height equally and fills the column */
  .sa{width:32px;height:auto;flex:1;font-size:1rem;border-radius:5px;min-height:28px}
  .store-reassign-btn{width:32px;height:auto;flex:1;font-size:1rem;border-radius:5px;min-height:28px}
  .ua-chk{width:22px;height:22px}
  .ua-chk-wrap{padding:8px}
}
.shift-trainer-lbl{font-size:.63rem;color:#92400e;background:#fef9c3;border:1px solid #fbbf24;border-radius:4px;padding:1px 5px;margin-top:3px;display:inline-flex;align-items:center;gap:3px}
.day-trainer-lbl{font-size:.66rem;color:#78350f;background:#fef9c3;border:1px solid #fbbf24;border-radius:5px;padding:3px 7px;margin:3px 4px 2px;display:flex;align-items:center;gap:4px}
.gf-group{display:flex;gap:3px;flex-wrap:wrap}
.gf-btn{padding:4px 10px;border-radius:6px;border:1.5px solid #d0dcf0;background:#f4f7fd;color:#4a5568;font-size:.72rem;font-weight:600;cursor:pointer;transition:.12s;white-space:nowrap}
.gf-btn:hover{border-color:#0056C8;color:#0038A8}
.gf-btn.gf-on{background:#0038A8;color:#fff;border-color:#0038A8}
.gf-btn.rf-5310.gf-on{background:var(--e5310-b);border-color:var(--e5310-b);color:#fff}
.gf-btn.rf-5320.gf-on{background:var(--e5320-b);border-color:var(--e5320-b);color:#fff}
.gf-btn.rf-5330.gf-on{background:var(--e5330-b);border-color:var(--e5330-b);color:#fff}
.gf-btn.rf-5340.gf-on{background:var(--e5340-b);border-color:var(--e5340-b);color:#fff}
.gf-btn.rf-5350.gf-on{background:#7c3aed;border-color:#7c3aed;color:#fff}
.day-act-trainer{border-color:#fbbf24;background:#fefce8;color:#92400e}
.day-act-trainer:hover{background:#f59e0b;color:#fff}
.day-act-trainer-on{border-color:#d97706;background:#fef9c3;color:#78350f;font-weight:700}
.day-act-trainer-on:hover{background:#d97706;color:#fff}
.ua-add-btn{width:calc(100% - 8px);margin:4px 4px 2px}
.add-store-btn:hover{border-color:#0056C8;color:#0056C8;background:#dce8ff}

/* Sick-day assign button */
.assign-spare-btn{display:block;width:calc(100% - 8px);margin:3px 4px 4px;padding:5px 4px;border-radius:5px;border:2px solid #f87171;background:#fff5f5;color:#dc2626;font-size:.7rem;font-weight:700;cursor:pointer;transition:.15s;text-align:center}
.assign-spare-btn:hover{background:#dc2626;color:#fff}
.avail-lbl{padding:6px 8px;font-size:.7rem;color:#16a34a;font-style:italic;text-align:center;background:#f0fdf4;border-radius:4px;margin:3px 4px}

/* ── OVERLAYS & MODALS ───────────────────────────────────────────── */
.overlay{position:fixed;inset:0;background:rgba(0,0,0,.48);display:none;align-items:center;justify-content:center;z-index:650;padding:12px}
.overlay.open{display:flex}
.modal{background:#fff;border-radius:13px;width:100%;max-width:450px;box-shadow:0 20px 60px rgba(0,0,0,.28);animation:pop .15s ease;max-height:92vh;display:flex;flex-direction:column}
.modal.wide{max-width:620px}
.modal.slim{max-width:360px}
@keyframes pop{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.mhd{padding:13px 17px;border-bottom:1px solid #e2e8f0;display:flex;align-items:center;justify-content:space-between;flex-shrink:0}
.mhd h3{font-size:.95rem;font-weight:700;color:#1a1a2e}
.mx{border:none;background:transparent;font-size:1.15rem;cursor:pointer;color:#718096;padding:2px 5px;border-radius:3px;line-height:1}
.mx:hover{background:#f1f5f9}
.mbd{padding:15px 17px;overflow-y:auto;flex:1}
.mft{padding:9px 17px;border-top:1px solid #e2e8f0;display:flex;gap:6px;justify-content:flex-end;flex-shrink:0}
.mb{padding:7px 15px;border-radius:7px;border:none;font-size:.82rem;font-weight:600;cursor:pointer;transition:.15s}
.mb-c{background:#e2e8f0;color:#374151}.mb-c:hover{background:#cbd5e0}
.mb-s{background:#0038A8;color:#fff}.mb-s:hover{background:#002d8a}
.mb-d{background:#fff5f5;color:#dc2626;border:1px solid #fecaca;margin-right:auto}.mb-d:hover{background:#dc2626;color:#fff;border-color:#dc2626}

/* ── FORM FIELDS ─────────────────────────────────────────────────── */
.fld{display:flex;flex-direction:column;gap:3px;margin-bottom:10px}
.fld label{font-size:.73rem;font-weight:700;color:#374151}
.fld input,.fld select,.fld textarea{padding:7px 10px;border-radius:7px;border:1.5px solid #e2e8f0;font-size:.84rem;color:#1a1a2e;outline:none;transition:.15s;font-family:inherit}
.fld input:focus,.fld select:focus,.fld textarea:focus{border-color:#0056C8;box-shadow:0 0 0 3px rgba(0,56,168,.1)}
.frow{display:flex;gap:8px}
.frow .fld{flex:1;margin-bottom:0}
.fld-hint{font-size:.68rem;color:#94a3b8;margin-top:2px}

/* Radio group */
.radio-grp{display:flex;gap:10px;flex-wrap:wrap;margin-top:4px}
.radio-grp label{display:flex;align-items:center;gap:5px;font-size:.82rem;font-weight:500;color:#374151;cursor:pointer;padding:5px 10px;border-radius:7px;border:1.5px solid #e2e8f0;transition:.12s}
.radio-grp label:hover{border-color:#0056C8;background:#dce8ff}
.radio-grp input[type=radio]:checked+span{color:#0038A8;font-weight:700}
.radio-grp label:has(input:checked){border-color:#0056C8;background:#dce8ff}

/* Day checkboxes */
.day-chks{display:flex;gap:6px;flex-wrap:wrap;margin-top:4px}
.day-chk{display:flex;flex-direction:column;align-items:center;gap:3px;cursor:pointer}
.day-chk input{display:none}
.day-chk span{width:36px;height:36px;border-radius:8px;border:2px solid #e2e8f0;display:flex;align-items:center;justify-content:center;font-size:.7rem;font-weight:700;color:#94a3b8;transition:.15s}
.day-chk input:checked+span{background:#0038A8;border-color:#0038A8;color:#fff}
.day-chk:hover span{border-color:#0038A8}

/* ── STORE PICKER ────────────────────────────────────────────────── */
.pk-wrap{position:relative;margin-bottom:8px}
.pk-ico{position:absolute;left:9px;top:50%;transform:translateY(-50%);color:#94a3b8;pointer-events:none}
.pk-inp{width:100%;padding:7px 10px 7px 28px;border-radius:7px;border:1.5px solid #e2e8f0;font-size:.84rem;outline:none}
.pk-inp:focus{border-color:#0056C8}
.rf-row{display:flex;gap:4px;flex-wrap:wrap;margin-bottom:7px}
.rf{padding:3px 9px;border-radius:12px;border:1.5px solid #e2e8f0;background:transparent;font-size:.7rem;font-weight:700;cursor:pointer;transition:.12s;color:#4a5568}
.rf:hover,.rf.on{background:#0038A8;border-color:#0038A8;color:#fff}
.rf.r5310.on{background:#dc2626;border-color:#dc2626}
.rf.r5320.on{background:#16a34a;border-color:#16a34a}
.rf.r5330.on{background:#ca8a04;border-color:#ca8a04}
.rf.r5340.on{background:#2563eb;border-color:#2563eb}
.rf.r5350.on{background:#a855f7;border-color:#a855f7}
.pk-list{max-height:190px;overflow-y:auto;border:1.5px solid #e2e8f0;border-radius:8px;margin-bottom:10px}
.pki{padding:7px 11px;cursor:pointer;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #f1f5f9;transition:.1s;font-size:.81rem}
.pki:last-child{border-bottom:none}
.pki:hover{background:#f5f7ff}
.pki.sel{background:#dce8ff;font-weight:700}
.pki-nm{font-weight:600;color:#1e293b}
.pki.ua-pki{background:#fff5f5;border-left:3px solid #f87171}
.pki.ua-pki:hover{background:#fee2e2}
.pki.ua-pki.sel{background:#fee2e2}
.pk-ua-hdr{padding:4px 11px;font-size:.63rem;font-weight:800;color:#dc2626;text-transform:uppercase;background:#fff8f8;border-bottom:1px solid #fecaca;letter-spacing:.05em}
.pki-ua-badge{font-size:.58rem;font-weight:800;color:#dc2626;margin-right:5px;vertical-align:middle}
.pki-loc{font-size:.7rem;color:#64748b}
.rp{font-size:.66rem;font-weight:800;padding:1px 6px;border-radius:8px;flex-shrink:0}
.rp.r5310{background:var(--s5310-bg);color:#b91c1c}
.rp.r5320{background:var(--s5320-bg);color:#15803d}
.rp.r5330{background:var(--s5330-bg);color:#713f12}
.rp.r5340{background:var(--s5340-bg);color:#1d4ed8}
.rp.r5350{background:var(--s5350-bg);color:#6b21a8}
.rp.ro{background:#f1f5f9;color:#475569}
.shift-box{background:#f8fafc;border-radius:8px;padding:11px;border:1px solid #e2e8f0}
.shift-box h4{font-size:.77rem;font-weight:700;color:#374151;margin-bottom:8px}
.sel-store-disp{background:#dce8ff;border-radius:6px;padding:6px 10px;margin-bottom:9px;font-size:.8rem;font-weight:700;color:#001A6E}

/* ── SPARE MODAL ─────────────────────────────────────────────────── */
.shifts-preview{background:#fef9c3;border-radius:7px;padding:9px 11px;margin-bottom:12px;border:1px solid #fde047}
.shifts-preview h4{font-size:.76rem;font-weight:700;color:#713f12;margin-bottom:6px}
.sp-item{font-size:.77rem;color:#1e293b;padding:2px 0;display:flex;align-items:center;gap:5px}
.sp-item-swap{cursor:pointer;border-radius:4px;padding:2px 4px;transition:background .1s}
.sp-item-swap:hover{background:#f1f5f9}
.sp-item-swap.swap-sel{background:#dbeafe;outline:2px solid #3b82f6;border-radius:4px}
.assign-btn.swap-mode{background:#7c3aed}
.spares-list-area{display:flex;flex-direction:column;gap:7px}
.spare-row{background:#fff;border:1.5px solid #e2e8f0;border-radius:9px;padding:10px 12px;display:flex;align-items:center;gap:10px;transition:.15s}
.spare-row:hover{border-color:#0056C8;background:#dce8ff}
.spare-av{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,#0038A8,#0056C8);color:#fff;display:flex;align-items:center;justify-content:center;font-size:.78rem;font-weight:700;flex-shrink:0}
.spare-info{flex:1;min-width:0}
.spare-nm{font-weight:700;font-size:.85rem;color:#1e293b}
.spare-meta{font-size:.71rem;color:#64748b;margin-top:1px}
.spare-load{font-size:.7rem;font-weight:600;color:#7c3aed;margin-top:2px}
.assign-btn{padding:6px 14px;border-radius:7px;border:none;background:#0038A8;color:#fff;font-size:.78rem;font-weight:700;cursor:pointer;flex-shrink:0;transition:.15s}
.assign-btn:hover{background:#002d8a}
.no-spares{text-align:center;padding:20px;color:#94a3b8;font-size:.84rem}

/* ── STORE DIRECTORY PANEL ───────────────────────────────────────── */
.panel-ov{position:fixed;inset:0;background:rgba(0,0,0,.38);display:none;z-index:600}
.panel-ov.open{display:block}
.panel{position:fixed;top:0;right:0;height:100%;width:100%;max-width:500px;background:#fff;box-shadow:-4px 0 20px rgba(0,0,0,.18);display:flex;flex-direction:column;animation:slideR .2s ease}
@keyframes slideR{from{transform:translateX(100%)}to{transform:none}}
.panel-hd{padding:14px 18px;border-bottom:1px solid #e2e8f0;display:flex;align-items:center;justify-content:space-between;background:linear-gradient(to right,#f7f8fc,#dce8ff);flex-shrink:0}
.panel-hd h2{font-size:1rem;font-weight:700}
.panel-bd{flex:1;overflow-y:auto;padding:14px 18px}
.panel-ft{padding:10px 18px;border-top:1px solid #e2e8f0;display:flex;justify-content:flex-end}
.dir-item{padding:8px 11px;border-radius:8px;border:1px solid #e8edf5;margin-bottom:5px;cursor:pointer;display:flex;align-items:center;justify-content:space-between;transition:.12s;background:#fff}
.dir-item:hover{background:#dce8ff;border-color:#6699cc}
.di-nm{font-size:.83rem;font-weight:700;color:#1e293b}
.di-sub{font-size:.69rem;color:#64748b;margin-top:1px}
.di-right{display:flex;align-items:center;gap:6px}

@media(max-width:768px){
  /* Header — compact, allow wrap so logout button never disappears */
  .hdr{padding:8px 12px;gap:6px}
  .hdr-title{font-size:.95rem}
  .hsearch{width:120px;font-size:.74rem;padding:5px 9px}
  .hbtn{padding:5px 8px;font-size:.71rem}
  .saved-flash{display:none}

  /* Schedule switcher — compact */
  .sched-switcher-wrap{padding:4px 10px;gap:4px}
  .ss-pill{font-size:.67rem;padding:2px 7px}
  .ss-add{font-size:.67rem;padding:2px 7px}
  .ss-lbl{display:none}
  .ss-sep{display:none}

  /* Mobile: schedule pill row + toolbar scroll away. Only #dayTabBar stays pinned (with search). */
  #schedSwitcher{position:static!important}
  #page-top{position:static!important}
  #dayTabBar{top:var(--hdr-only-h,52px)!important;padding:5px 8px}
  #dayTabBar .tabs{gap:3px}
  .tab{padding:3px 9px;font-size:.72rem}
  /* Hide the toolbar's search input on mobile — the sticky tab bar already has one. */
  #empSearch{display:none!important}

  /* Toolbar + content — reduced padding, flush left */
  .toolbar{padding:6px 8px 6px 0}
  #publishBtn{order:-1;flex-shrink:0}
  .main{padding:0 8px 24px 0}
  .legend{padding:0 8px 6px 0;gap:8px}
  .status-overview-card{margin:4px 8px 4px 0}
  .cost-bar-inline{padding:2px 7px;gap:5px}
  .cost-detail{display:none}

  /* Allow emp-card to grow with wrapped rows (fixes overflow:hidden clipping on iOS) */
  /* Edge-to-edge cards on mobile: flush left, small right margin, no left border-radius */
  .emp-card{overflow:visible;margin-left:0;border-top-left-radius:0;border-bottom-left-radius:0}
  .emp-card{margin-bottom:8px}

  /* All-days tab: 2-column grid instead of horizontal scroll */
  .emp-days.all-days-mode{flex-wrap:wrap;overflow:visible}
  .emp-days.all-days-mode .day-col{flex:0 0 50%;min-width:0;box-sizing:border-box}
  .emp-days.all-days-mode .day-col:nth-child(odd){border-right:1px solid #edf0f5}
  .emp-days.all-days-mode .day-col:nth-child(even){border-right:none}
  .emp-days.all-days-mode .day-col:nth-child(n+3){border-top:1px solid #edf0f5}
  /* Unassigned Visits. On a single-day tab each day's column fills the FULL width
     so all store info is visible; the compact 2-column grid is only for All Days. */
  .ua-cols{flex-wrap:wrap;overflow-x:visible;max-height:none!important}
  .ua-day-col{flex:0 0 100%;min-width:0;box-sizing:border-box}
  .ua-cols.ua-alldays .ua-day-col{flex:0 0 50%}
  .ua-cols.ua-alldays .ua-day-col:nth-child(odd){border-right:1px solid #fecaca}
  .ua-cols.ua-alldays .ua-day-col:nth-child(even){border-right:none}
  .ua-cols.ua-alldays .ua-day-col:nth-child(n+3){border-top:1px solid #fecaca}
  /* Vertical resize grip is meaningless when the row is wrapped — hide it on mobile. */
  .unassigned-card .resize-grip{display:none}

  /* Single-day tab: column fills full width */
  .day-col{min-width:0}
  .emp-days:not(.all-days-mode){overflow-x:visible}

  .panel{max-width:100%}

  /* Store cards — emphasize store name, location, pallets, time; de-emphasize badge */
  .store-nm{font-size:.85rem;max-width:none;white-space:normal}
  .store-loc{font-size:.75rem;color:#475569;margin-top:2px}
  .store-time{font-size:.78rem;font-weight:700;margin-top:3px}
  .store-pal{font-size:.78rem}
  .store-top{gap:4px;align-items:flex-start}
  .badge{font-size:.52rem;padding:1px 4px;opacity:.75}

  /* Settings dropdown — anchor to viewport so it can't render off-screen */
  .settings-dd{position:fixed;top:calc(var(--hdr-only-h,60px) + 4px);right:8px;left:auto;min-width:0;width:max-content;max-width:calc(100vw - 16px);max-height:calc(100vh - var(--hdr-only-h,60px) - 24px);overflow-y:auto;-webkit-overflow-scrolling:touch}
  .settings-mi{padding:11px 14px;font-size:.85rem}
}

@media(max-width:480px){
  .hsearch{width:90px}
  .hbtn-reset{display:none}
  .tab{padding:3px 7px;font-size:.68rem}
  /* Survey buttons — icon-only on very small screens */
  #pushSurveysBtn{padding:5px 8px;font-size:.68rem}
  #surveyHistBtn{padding:5px 7px}
  #updFilterBtn{padding:5px 8px;font-size:.68rem}
}

/* ── GLOBAL QUALITY-OF-LIFE ──────────────────────────────────────── */
html{scroll-behavior:smooth;-webkit-tap-highlight-color:transparent}
/* Refined focus ring — matches brand colour */
:focus-visible{outline:2.5px solid #0038A8;outline-offset:2px;border-radius:4px}
/* Subtle input polish */
input,select,textarea{transition:border-color .15s,box-shadow .15s}
input:focus,select:focus{box-shadow:0 0 0 3px rgba(0,56,168,.12)}
/* Smooth button feedback */
button:active{transform:scale(.97)}
/* Avoid double-tap zoom on mobile buttons */
button,a{touch-action:manipulation}

/* ── MOBILE TOOLBAR — horizontal scroll instead of chaotic wrap ─── */
@media(max-width:640px){
  .toolbar{flex-wrap:nowrap;overflow-x:auto;padding:6px 10px;
    -webkit-overflow-scrolling:touch;gap:6px;
    scrollbar-width:none}
  .toolbar::-webkit-scrollbar{display:none}
  .stats-row{flex-wrap:nowrap;min-width:max-content}
  /* Prevent giant employee search from eating all space on mobile */
  #empSearch{width:140px!important;min-width:100px;flex-shrink:0}
}

/* ── MODAL POLISH ────────────────────────────────────────────────── */
.modal{box-shadow:0 24px 64px rgba(0,0,0,.32),0 4px 16px rgba(0,0,0,.12)}
@keyframes pop{from{opacity:0;transform:scale(.94) translateY(6px)}to{opacity:1;transform:scale(1) translateY(0)}}
/* Better modal scroll on iOS */
.mbd{-webkit-overflow-scrolling:touch}
/* Make overlay backdrop blur on capable browsers */
@supports(backdrop-filter:blur(4px)){
  .overlay{background:rgba(0,0,0,.38);backdrop-filter:blur(4px)}
}
/* ── HELP MODAL BODY ─────────────────────────────────────────────── */
.help-body h1{font-size:1.3rem;color:#1a1410;border-bottom:1px solid #ebe5de;padding-bottom:10px;margin:0 0 20px;font-weight:800;letter-spacing:-.03em}
.help-body h2{font-size:1.02rem;color:#1a1410;border-left:none;padding-left:0;margin:30px 0 10px;font-weight:700;letter-spacing:-.025em;display:flex;align-items:center;gap:8px;position:relative}
.help-body h2::before{content:'';display:block;width:3px;height:18px;background:#1a1410;border-radius:2px;margin-right:2px;flex-shrink:0}
.help-body h3{font-size:.9rem;color:#3a3530;margin:18px 0 6px;font-weight:700;letter-spacing:-.02em}
.help-body p{font-size:.84rem;color:#3a3530;line-height:1.65;margin:0 0 10px;letter-spacing:-.005em}
.help-body ul,.help-body ol{font-size:.84rem;color:#3a3530;line-height:1.7;padding-left:22px;margin:0 0 12px}
.help-body li{margin-bottom:4px}
.help-body strong{color:#1a1410;font-weight:700}
.help-body hr{border:none;border-top:1px solid #ebe5de;margin:24px 0}
.help-body img{display:block;margin:12px 0 16px;border-radius:10px;box-shadow:0 1px 3px rgba(0,0,0,.08);max-width:100%;border:1px solid #ebe5de}
.help-body table{border-collapse:collapse;width:100%;font-size:.82rem;margin:10px 0 18px;border:1px solid #ebe5de;border-radius:10px;overflow:hidden}
.help-body th{background:#faf7f2;color:#1a1410;padding:9px 14px;text-align:left;font-weight:700;font-size:.76rem;letter-spacing:.02em;text-transform:uppercase;border-bottom:1px solid #ebe5de}
.help-body td{padding:8px 14px;border-bottom:1px solid #f0ece5;color:#3a3530}
.help-body tr:last-child td{border-bottom:none}
.help-body tr:nth-child(even) td{background:#fbf9f5}
.help-body code{background:#f0ece5;padding:2px 6px;border-radius:4px;font-size:.78rem;color:#1a1410;font-family:'SFMono-Regular',Consolas,Monaco,monospace}

/* Help modal header (Manager Guide title bar) in neutral theme */
body.has-sb #helpOv .mhd{background:#faf7f2!important;border-bottom:1px solid #ebe5de!important;border-radius:16px 16px 0 0;padding:16px 22px}
body.has-sb #helpOv .mhd h3{color:#1a1410!important;font-size:1rem;font-weight:700;letter-spacing:-.025em;display:flex;align-items:center;gap:8px}
body.has-sb #helpOv .mhd .mx{color:#7a7068}
body.has-sb #helpOv .mhd .mx:hover{background:#ebe5de;color:#1a1410}
body.has-sb #helpOv .mft{background:#faf7f2!important;border-top:1px solid #ebe5de!important;padding:14px 22px}
/* Replace navy h2 markers with neutral dark */
body.has-sb .help-body h1{color:#1a1410;border-bottom-color:#ebe5de}
body.has-sb .help-body h2::before{background:#1a1410}
body.has-sb .help-body th{background:#faf7f2;color:#1a1410}

/* New-UI banner at the top of the help guide */
.help-banner{display:flex;gap:12px;align-items:flex-start;padding:13px 16px;background:#faf7f2;border:1px solid #ebe5de;border-left:3px solid #1a1410;border-radius:10px;margin-bottom:22px}
.help-banner-icon{flex-shrink:0;color:#1a1410;display:flex;align-items:center;padding-top:1px}
.help-banner-text{font-size:.82rem;line-height:1.55;color:#3a3530;letter-spacing:-.005em}
.help-banner-text strong{color:#1a1410;font-weight:700}
/* Mark help-body screenshots as showing previous layout (subtle desat + caption) */
body.has-sb .help-body img{filter:saturate(.85);opacity:.92;position:relative}
body.has-sb .help-body img+em,body.has-sb .help-body img+p em:first-child{color:#7a7068;font-size:.75rem;display:inline-block;margin-top:-8px}

/* ── CARD / STORE CARD POLISH ────────────────────────────────────── */
.store-card{transition:box-shadow .12s,transform .12s,border-color .12s}

/* ── TABS — hide scrollbar but keep scroll on mobile ─────────────── */
.tabs{-webkit-overflow-scrolling:touch;scrollbar-width:none}
.tabs::-webkit-scrollbar{display:none}

/* ── ROUTE OVERVIEW ─────────────────────────────────────────────── */
.ov-btn{padding:6px 13px;border-radius:7px;border:1.5px solid #6699cc;background:#dce8ff;color:#0038A8;font-size:.78rem;font-weight:700;cursor:pointer;transition:.15s}
.ov-btn:hover{background:#0038A8;color:#fff}
.ov-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:700;display:none;align-items:flex-start;justify-content:center;overflow-y:auto;padding:20px}
.ov-backdrop.open{display:flex}
.ov-modal{background:#f1f5f9;border-radius:12px;width:100%;max-width:1400px;box-shadow:0 8px 40px rgba(0,0,0,.25);display:flex;flex-direction:column;min-height:0}
.ov-modal-hd{padding:14px 20px;background:#001252;border-radius:12px 12px 0 0;display:flex;align-items:center;justify-content:space-between;flex-shrink:0}
.ov-modal-hd h2{color:#fff;font-size:1rem;font-weight:700;margin:0}
.ov-modal-body{display:flex;gap:10px;padding:14px;overflow-x:auto;align-items:flex-start}
.ovt{border-collapse:collapse;font-size:.73rem;background:#fff;box-shadow:0 1px 6px rgba(0,0,0,.1);flex-shrink:0;min-width:200px}
.ovt th,.ovt td{border:1px solid #94a3b8;padding:3px 6px;white-space:nowrap}
.ovt thead tr:first-child th{text-align:center;font-size:.82rem;font-weight:800;color:#fff;padding:5px 8px;letter-spacing:.5px}
.ovt thead tr:last-child th{background:#e2e8f0;color:#1e293b;font-size:.66rem;font-weight:700;text-transform:uppercase;text-align:center}
.ovt .ovt-emp{font-weight:700;font-size:.72rem;padding:3px 6px}
.ovt td.ovt-type{text-align:center;font-weight:700}
.ovt td.ovt-time{color:#64748b;font-size:.7rem}
.ovt .ovt-empty td{color:#cbd5e0;text-align:center;font-size:.7rem}
.ovt-5310 thead tr:first-child th{background:#ef4444}
.ovt-5320 thead tr:first-child th{background:#16a34a}
.ovt-5330 thead tr:first-child th{background:#ca8a04}
.ovt-5340 thead tr:first-child th{background:#3b82f6}
.ovt-5350 thead tr:first-child th{background:#a855f7}
.ovt-emp-5310{background:#fee2e2}
.ovt-emp-5320{background:#dcfce7}
.ovt-emp-5330{background:#fef9c3}
.ovt-emp-5340{background:#dbeafe}
.ovt-emp-5350{background:#f3e8ff}
@media print{
  @page{size:landscape;margin:6mm}
  /* hide everything except the full schedule */
  body > *{display:none!important}
  #fsBackdrop{display:block!important;position:static!important;background:none!important;padding:0!important;overflow:visible!important;height:auto!important}
  .fs-modal-wrap{display:block!important;box-shadow:none!important;border-radius:0!important;max-height:none!important;max-width:none!important;width:100%!important;height:auto!important;overflow:visible!important}
  .fs-hd{border-radius:0;padding:5px 8px;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .fs-hd button{display:none!important}
  .fs-body{overflow:visible!important;height:auto!important;flex:none!important;max-height:none!important}
  /* table layout */
  .fs-table{table-layout:fixed;width:100%;font-size:.54rem;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .fs-table thead th{font-size:.53rem;padding:3px 3px;white-space:normal;min-width:0!important;position:static!important}
  .fs-table thead th:first-child{width:90px;min-width:0}
  .fs-table thead th:nth-child(2){width:36px;min-width:0}
  .fs-table td{font-size:.53rem;padding:2px 3px;white-space:normal;border-bottom:2px solid #94a3b8}
  .fs-table td:first-child{white-space:normal}
  /* allow rows to break across pages, keep each row together */
  .fs-table tbody tr{page-break-inside:avoid;break-inside:avoid}
  .fs-sep-row{page-break-before:auto;break-before:auto}
  /* compact text elements */
  .fs-store-line{flex-wrap:wrap;white-space:normal;gap:2px;font-size:.53rem}
  .fs-store-nm{font-size:.53rem}
  .fs-store-loc{font-size:.49rem}
  .fs-emp-sub{font-size:.49rem}
  .fs-status{font-size:.51rem;padding:1px 3px}
  .fs-sep-row td{padding:2px 4px;font-size:.51rem}
  .rp{font-size:.47rem!important;padding:0 2px!important}
  .chip{font-size:.47rem!important;padding:0 3px!important}
  .fs-trainee-lbl,.fs-trainer-lbl,.fs-early{font-size:.47rem;padding:0 2px}
  .fs-tabs{display:none!important}
  .fs-sug-wrap{display:none!important}
}

/* ── FULL SCHEDULE MODAL ─────────────────────────────────────────── */
.fs-modal-wrap{background:#f1f5f9;border-radius:12px;width:100%;max-width:1700px;box-shadow:0 8px 40px rgba(0,0,0,.28);display:flex;flex-direction:column;max-height:92vh}
.fs-hd{padding:11px 18px;background:#001252;border-radius:12px 12px 0 0;display:flex;align-items:center;justify-content:space-between;flex-shrink:0}
.fs-hd h2{color:#fff;font-size:1rem;font-weight:700;margin:0}
.fs-body{overflow:auto;flex:1;background:#fff}
.fs-table{border-collapse:collapse;font-size:.67rem;width:100%}
.fs-table thead th{background:#001252;color:#fff;padding:5px 6px;font-size:.66rem;font-weight:700;border:1px solid #1a3066;text-align:center;white-space:nowrap;position:sticky;top:0;z-index:3}
.fs-table thead th:first-child{text-align:left;min-width:110px}
.fs-table thead th:nth-child(2){min-width:48px}
.fs-table td{border:1px solid #e2e8f0;border-bottom:2px solid #94a3b8;padding:4px 5px;vertical-align:top;font-size:.65rem}
.fs-table td:first-child{background:#f8fafc;font-weight:700;white-space:nowrap;border-right:2px solid #cbd5e0}
.fs-table td:nth-child(2){background:#f8fafc;text-align:center;border-right:2px solid #cbd5e0}
.fs-table tbody tr:nth-child(even) td:first-child,.fs-table tbody tr:nth-child(even) td:nth-child(2){background:#f1f5f9}
.fs-emp-sub{font-size:.6rem;margin-top:2px;display:flex;gap:3px;flex-wrap:wrap}
.fs-store-line{display:flex;align-items:center;gap:3px;padding:1px 0;flex-wrap:nowrap;white-space:nowrap}
.fs-store-nm{font-weight:600;color:#1e293b;font-size:.65rem}
.fs-store-loc{color:#94a3b8;font-size:.59rem}
.fs-status{font-size:.64rem;font-weight:700;padding:2px 6px;border-radius:3px;display:inline-block;margin-bottom:2px}
.fs-status-sick{background:#fee2e2;color:#dc2626}
.fs-status-vac{background:#fef3c7;color:#92400e}
.fs-status-loa{background:#f1f5f9;color:#334155;border:1px solid #94a3b8}
.fs-status-mod{background:#f5f3ff;color:#5b21b6}
.fs-status-stat{background:#ede9fe;color:#5b21b6}
.fs-spare-lbl{font-size:.62rem;color:#059669;font-style:italic}
.fs-off{color:#cbd5e0;font-style:italic;font-size:.62rem}
.fs-trainer-lbl{font-size:.59rem;color:#92400e;background:#fef9c3;border:1px solid #fbbf24;border-radius:3px;padding:1px 4px;display:inline-block;margin-top:2px}
.fs-trainee-lbl{font-size:.59rem;color:#0369a1;background:#e0f2fe;border:1px solid #7dd3fc;border-radius:3px;padding:1px 4px;display:inline-block;margin-top:2px}
.fs-early{font-size:.56rem;font-weight:700;color:#b45309;background:#fef3c7;border:1px solid #fbbf24;border-radius:2px;padding:0 3px;display:inline-block;margin-left:2px}
.fs-sep-row td{background:#e2e8f0;font-size:.6rem;font-weight:800;color:#475569;text-transform:uppercase;letter-spacing:.06em;padding:3px 6px}
/* Route row tinting */
.fs-table tbody tr.fs-r5310 td:first-child{border-left:3px solid var(--e5310-b);background:var(--e5310-bg)}
.fs-table tbody tr.fs-r5320 td:first-child{border-left:3px solid var(--e5320-b);background:var(--e5320-bg)}
.fs-table tbody tr.fs-r5330 td:first-child{border-left:3px solid var(--e5330-b);background:var(--e5330-bg)}
.fs-table tbody tr.fs-r5340 td:first-child{border-left:3px solid var(--e5340-b);background:var(--e5340-bg)}
.fs-table tbody tr.fs-r5350 td:first-child{border-left:3px solid var(--e5350-b);background:var(--e5350-bg)}
/* ── FULL SCHEDULE TABS ─────────────────────────────────────────── */
.fs-tabs{display:flex;gap:0;background:#001252;border-top:1px solid #1a3066;flex-shrink:0;padding:0 12px}
.fs-tab{background:transparent;border:none;color:rgba(255,255,255,.6);padding:9px 18px;font-size:.78rem;font-weight:600;cursor:pointer;border-bottom:3px solid transparent;transition:.13s}
.fs-tab:hover{color:#fff}
.fs-tab-active{color:#fff;border-bottom-color:#E31837}
/* ── SUGGESTIONS PANE ───────────────────────────────────────────── */
.fs-sug-wrap{padding:18px 22px;max-width:1100px;margin:0 auto}
.sug-stats{background:#fff;border:1.5px solid #e2e8f0;border-radius:10px;padding:14px 18px;margin-bottom:18px}
.sug-stats-title{font-size:.78rem;font-weight:700;color:#0f172a;margin-bottom:8px}
.sug-stats-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:4px 14px}
.sug-stat-row{display:flex;justify-content:space-between;font-size:.74rem;padding:3px 0;border-bottom:1px dashed #f1f5f9}
.sug-stat-row .sug-stat-nm{color:#334155}
.sug-stat-low{color:#b91c1c;font-weight:700}
.sug-stat-high{color:#15803d;font-weight:700}
.sug-stat-mid{color:#64748b;font-weight:600}
.sug-hdr{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}
.sug-hdr-title{font-size:.85rem;font-weight:700;color:#0f172a}
.sug-hdr-title small{font-size:.72rem;color:#64748b;font-weight:500;margin-left:5px}
.sug-refresh{padding:5px 11px;border-radius:6px;border:1.5px solid #cbd5e0;background:#fff;font-size:.72rem;cursor:pointer;color:#374151;font-weight:600}
.sug-refresh:hover{background:#f8fafc}
.sug-card{background:#fff;border:1.5px solid #e2e8f0;border-radius:10px;padding:12px 16px;margin-bottom:8px;display:flex;justify-content:space-between;gap:14px;align-items:flex-start}
.sug-card:hover{border-color:#cbd5e0}
.sug-card-day{font-size:.7rem;color:#64748b;text-transform:uppercase;letter-spacing:.05em;font-weight:700;margin-bottom:4px}
.sug-card-flow{font-size:.85rem;font-weight:600;color:#0f172a;line-height:1.45}
.sug-flow-from{color:#b91c1c}
.sug-flow-to{color:#15803d}
.sug-flow-meta{color:#94a3b8;font-weight:500;font-size:.74rem}
.sug-card-shifts{margin-top:7px;display:flex;flex-wrap:wrap;gap:4px}
.sug-shift-chip{background:#f1f5f9;border:1px solid #cbd5e0;border-radius:6px;padding:2px 7px;font-size:.7rem;color:#334155;white-space:nowrap}
.sug-apply{padding:7px 16px;border-radius:7px;border:none;background:#0038A8;color:#fff;font-size:.74rem;font-weight:700;cursor:pointer;flex-shrink:0;align-self:center}
.sug-apply:hover{background:#001f6b}
.sug-empty{background:#f0fdf4;border:1.5px solid #bbf7d0;border-radius:10px;padding:20px;text-align:center;font-size:.8rem;color:#166534;font-weight:600}
.sug-note{font-size:.7rem;color:#64748b;margin-top:8px;line-height:1.4}

/* ── PUBLISH / UPDATE-NEEDED ─────────────────────────────────────── */
#publishBtn{padding:4px 14px;border-radius:18px;border:none;font-size:.78rem;font-weight:700;cursor:pointer;color:#fff;transition:background .18s}
.upd-needed-cell{background:#fee2e2!important;border:2px solid #f87171!important}
.upd-needed-cell td{background:#fee2e2!important}
.upd-banner{display:flex;align-items:center;gap:5px;background:#fecaca;border:1.5px solid #f87171;border-radius:4px;padding:2px 5px;margin-bottom:3px;font-size:.61rem;font-weight:700;color:#b91c1c}
/* ── SHIFT SEND MODAL ────────────────────────────────────────────── */
#shiftSendModal{display:none;position:fixed;inset:0;z-index:9000;background:rgba(0,0,0,.7);align-items:center;justify-content:center;padding:16px}
#shiftSendModal.open{display:flex}
#shiftSendBox{background:#fff;border-radius:14px;overflow:hidden;max-width:680px;width:100%;box-shadow:0 20px 60px rgba(0,0,0,.4)}
#shiftSendHeader{background:linear-gradient(90deg,#001252,#0038A8);color:#fff;padding:14px 18px;display:flex;align-items:center;justify-content:space-between;font-weight:700;font-size:.95rem}
#shiftSendHeader button{background:none;border:none;color:#fff;font-size:1.3rem;cursor:pointer;line-height:1;padding:0 2px}
#shiftSendImg{display:block;width:100%;max-height:60vh;object-fit:contain;background:#f1f5f9}
#shiftSendFooter{padding:14px 18px;display:flex;flex-direction:column;gap:10px}
#shiftSendHint{font-size:.78rem;color:#64748b;text-align:center}
#shiftSendSmsBtn{background:#0038A8;color:#fff;border:none;border-radius:8px;padding:11px;font-size:.95rem;font-weight:700;cursor:pointer;width:100%;transition:background .15s}
#shiftSendSmsBtn:hover:not(:disabled){background:#002280}
#shiftSendSmsBtn:disabled{background:#94a3b8;cursor:default}
.upd-ack-btn{background:#ef4444;color:#fff;border:none;border-radius:3px;font-size:.57rem;font-weight:800;padding:1px 5px;cursor:pointer;white-space:nowrap;flex-shrink:0}
.upd-ack-btn:hover{background:#b91c1c}
.upd-send-btn{background:#0038A8;color:#fff;border:none;border-radius:3px;font-size:.57rem;font-weight:800;padding:1px 5px;cursor:pointer;white-space:nowrap;flex-shrink:0}
.upd-send-btn:hover{background:#002280}
.confirm-upd-btn{display:flex;align-items:center;justify-content:center;gap:5px;background:#16a34a;color:#fff;border:none;border-radius:4px;padding:5px 8px;margin-bottom:4px;font-size:.68rem;font-weight:700;cursor:pointer;width:100%}
.confirm-upd-btn:hover{background:#15803d}
.confirm-status-pill{display:inline-flex;align-items:center;gap:4px;border-radius:3px;padding:1px 5px;font-size:.57rem;font-weight:700;margin-bottom:3px}
.confirm-status-pending{background:#fee2e2;color:#b91c1c}
.confirm-status-ok{background:#dcfce7;color:#15803d}
.day-upd-banner{display:flex;align-items:center;flex-wrap:wrap;row-gap:3px;gap:4px;background:#fee2e2;border:1.5px solid #f87171;border-radius:4px;padding:2px 5px;margin-bottom:4px;font-size:.62rem;font-weight:700;color:#b91c1c}
.day-upd-banner>span:first-child{flex:1 1 auto;min-width:0}
.day-upd-banner:hover{background:#fecaca}

/* ── DELIVERY INFO PANEL ─────────────────────────────────────────── */
.hbtn-deliv{background:#0891b2;color:#fff}.hbtn-deliv:hover{background:#0e7490}
.deliv-day-tabs{display:flex;gap:4px;flex-wrap:wrap}
.deliv-day-tab{padding:4px 9px;border-radius:14px;border:1.5px solid #e2e8f0;background:#f8fafc;color:#4a5568;font-size:.72rem;font-weight:700;cursor:pointer;transition:.12s;white-space:nowrap}
.deliv-day-tab:hover{border-color:#0891b2;color:#0e7490}
.deliv-day-tab.ddt-active{background:#0891b2;border-color:#0891b2;color:#fff}
.deliv-section{margin-bottom:18px}
.deliv-section-hdr{font-size:.73rem;font-weight:800;color:#374151;text-transform:uppercase;letter-spacing:.04em;margin-bottom:6px;padding:5px 0 5px;border-bottom:2px solid #e2e8f0;display:flex;align-items:center;justify-content:space-between;gap:6px}
.deliv-clr-btn{font-size:.62rem;padding:2px 8px;background:#fee2e2;color:#b91c1c;border:1px solid #fca5a5;border-radius:4px;cursor:pointer;font-weight:600;white-space:nowrap;text-transform:none;letter-spacing:0}
.deliv-clr-btn:hover{background:#fecaca}
.deliv-table{width:100%;border-collapse:collapse;font-size:.76rem}
.deliv-table th{text-align:left;padding:5px 7px;font-size:.65rem;font-weight:700;color:#94a3b8;text-transform:uppercase;letter-spacing:.04em;border-bottom:1.5px solid #e2e8f0;background:#f8fafc}
.deliv-table td{padding:5px 7px;border-bottom:1px solid #f1f5f9;vertical-align:middle}
.deliv-table tbody tr:last-child td{border-bottom:none}
.deliv-table tbody tr:hover td{background:#f0f9ff}
.deliv-inp{padding:3px 7px;border-radius:5px;border:1.5px solid #e2e8f0;font-size:.75rem;font-family:inherit;color:#1a1a2e;outline:none;background:#fff}
.deliv-inp:focus{border-color:#0891b2;box-shadow:0 0 0 2px rgba(8,145,178,.12)}
.deliv-store-nm{font-weight:700;color:#1e293b;display:flex;align-items:center;gap:4px;flex-wrap:wrap}
.deliv-emp-lbl{font-size:.67rem;color:#64748b;margin-top:1px}
.deliv-empty{text-align:center;color:#94a3b8;font-size:.84rem;padding:32px 16px}
.deliv-ua-badge{font-size:.62rem;font-weight:800;color:#dc2626;background:#fee2e2;border-radius:4px;padding:1px 5px}
.deliv-subhd{padding:8px 14px;border-bottom:1px solid #e2e8f0;display:flex;align-items:center;justify-content:space-between;gap:10px;flex-shrink:0;background:#f8fafc;flex-wrap:wrap}
.deliv-manifest-toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);background:#1e293b;color:#fff;padding:9px 18px;border-radius:8px;font-size:.82rem;font-weight:600;z-index:9999;box-shadow:0 4px 14px rgba(0,0,0,.3);pointer-events:none;opacity:0;transition:opacity .25s}
.deliv-manifest-toast.show{opacity:1}
/* Brief soft pulse on the main schedule area whenever a remote update arrives from another device. */
@keyframes remote-pulse-kf{0%{box-shadow:inset 0 0 0 0 rgba(16,185,129,0)}25%{box-shadow:inset 0 0 0 4px rgba(16,185,129,.35)}100%{box-shadow:inset 0 0 0 0 rgba(16,185,129,0)}}
.remote-pulse{animation:remote-pulse-kf 1.4s ease-out}

/* ── STORE SCHEDULE GRID ─────────────────────────────────────────── */
.dvt-wrap{display:flex;gap:4px;flex-shrink:0}
.dvt-btn{padding:4px 10px;border-radius:5px;border:1.5px solid #e2e8f0;background:#f8fafc;color:#4a5568;font-size:.72rem;font-weight:700;cursor:pointer;transition:.12s;white-space:nowrap}
.dvt-btn.on{background:#0038A8;border-color:#0038A8;color:#fff}
.ssg-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%}
.ssg-table{border-collapse:collapse;font-size:.7rem;width:max-content;min-width:560px}
.ssg-table th{padding:5px 5px;background:#f1f5f9;font-size:.63rem;font-weight:700;color:#64748b;text-transform:uppercase;letter-spacing:.03em;border:1px solid #e2e8f0;white-space:nowrap;text-align:center;position:sticky;top:0;z-index:2}
.ssg-table th:first-child{text-align:left;min-width:120px}
.ssg-table td{padding:3px 4px;border:1px solid #edf0f5;vertical-align:middle}
.ssg-table tbody tr:hover td{background:#f8fafc}
.ssg-nm{font-weight:700;color:#1e293b;font-size:.72rem;white-space:nowrap}
.ssg-sub{font-size:.6rem;color:#94a3b8}
.ssg-day-cell{text-align:center;min-width:36px;padding:2px 3px}
.ssg-entry{display:flex;flex-direction:column;align-items:center;margin:1px 0}
.ssg-badge{display:inline-block;border-radius:3px;font-size:.6rem;font-weight:800;padding:1px 5px;border:1px solid transparent}
.ssg-badge-d{background:#fef08a;color:#713f12;border-color:#ca8a04}
.ssg-badge-b{background:#dbeafe;color:#1e40af;border-color:#93c5fd}
.ssg-badge-2t{background:#fca5a5;color:#7f1d1d;border-color:#ef4444}
.ssg-emp-lbl{font-size:.56rem;color:#94a3b8;max-width:36px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ssg-ua-lbl{font-size:.56rem;color:#dc2626;font-weight:700}
.ssg-add-btn{color:#6699cc;font-size:.72rem;border:1px dashed #6699cc;border-radius:3px;padding:0 4px;cursor:pointer;background:transparent;transition:.12s;line-height:1.5;display:block;margin:1px auto}
.ssg-add-btn:hover{color:#0038A8;border-color:#0038A8;background:#dce8ff}
.ssg-cnt{text-align:center;font-size:.72rem;font-weight:700}
/* ── VACATION REQUESTS ── */
.vac-req-btn{padding:5px 12px;border-radius:7px;border:1.5px solid #6699cc;background:#dce8ff;color:#0038A8;font-size:.75rem;font-weight:700;cursor:pointer;transition:.13s}
.vac-req-btn:hover{background:#0038A8;color:#fff}
.vac-stat-req-btn{padding:5px 12px;border-radius:7px;border:1.5px solid #6699cc;background:#dce8ff;color:#0038A8;font-size:.75rem;font-weight:700;cursor:pointer;transition:.13s}
.vac-stat-req-btn:hover{background:#0038A8;color:#fff}
.vac-admin-btn{padding:5px 12px;border-radius:7px;border:none;background:#64748b;color:#fff;font-size:.75rem;font-weight:700;cursor:pointer;transition:.13s}
.vac-admin-btn:hover{background:#475569}
.vac-admin-btn.has-pending{background:#dc2626}
.vac-admin-btn.has-pending:hover{background:#b91c1c}
.vac-notif-btn{padding:5px 12px;border-radius:7px;border:none;background:#7c3aed;color:#fff;font-size:.75rem;font-weight:700;cursor:pointer;transition:.13s;display:none}
.vac-notif-btn.has-notif{display:inline-flex;align-items:center;gap:5px}
.vac-notif-btn:hover{background:#6d28d9}
.vac-card{border:1px solid #e2e8f0;border-radius:10px;padding:14px 16px;margin-bottom:10px;background:#fff}
.vac-card-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:8px}
.vac-status-pill{font-size:.68rem;font-weight:700;padding:2px 8px;border-radius:10px}
.vac-date-row{display:flex;gap:8px;align-items:center;font-size:.72rem;margin-bottom:3px}
.vac-spare-count{font-weight:700}
.vac-spare-ok{color:#16a34a}
.vac-spare-none{color:#dc2626}
.vac-act-row{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap}
.vac-act-approve{flex:1;padding:8px;border:none;border-radius:7px;background:#16a34a;color:#fff;font-weight:700;font-size:.78rem;cursor:pointer;transition:.13s;min-width:88px}
.vac-act-approve:hover{background:#15803d}
.vac-act-pending{flex:1;padding:8px;border:none;border-radius:7px;background:#d97706;color:#fff;font-weight:700;font-size:.78rem;cursor:pointer;transition:.13s;min-width:88px}
.vac-act-pending:hover{background:#b45309}
.vac-act-deny{flex:1;padding:8px;border:none;border-radius:7px;background:#dc2626;color:#fff;font-weight:700;font-size:.78rem;cursor:pointer;transition:.13s;min-width:88px}
.vac-act-deny:hover{background:#b91c1c}
/* current review state — ring around the active choice */
.vac-act-on{outline:3px solid rgba(15,23,42,.28);outline-offset:1px}
.vac-notif-approved{background:#f0fdf4;border:1px solid #86efac;border-radius:10px;padding:12px 14px;margin-bottom:10px}
.vac-notif-denied{background:#fef2f2;border:1px solid #fca5a5;border-radius:10px;padding:12px 14px;margin-bottom:10px}
.vac-ukg-banner{background:#dbeafe;border:1px solid #93c5fd;border-radius:7px;padding:8px 12px;margin-top:8px;font-size:.79rem;color:#1e40af}
/* ── LOGIN ── */
#loginOv{position:fixed;inset:0;background:linear-gradient(145deg,#001A6E,#0038A8);z-index:9999;display:flex;align-items:center;justify-content:center}
.login-box{background:#fff;border-radius:16px;padding:38px 40px;width:340px;box-shadow:0 12px 48px rgba(0,0,0,.4);border-top:4px solid #E31837}
.login-title{text-align:center;margin-bottom:22px}
.login-title .login-icon{font-size:2.2rem}
.login-title h2{margin:6px 0 4px;font-size:1.1rem;color:#001A6E;font-weight:800}
.login-title p{margin:0;color:#64748b;font-size:.82rem}
.login-lbl{font-size:.77rem;font-weight:600;color:#374151;display:block;margin-bottom:4px}
.login-inp{width:100%;box-sizing:border-box;padding:9px 12px;border:1.5px solid #e2e8f0;border-radius:8px;font-size:.9rem;outline:none;transition:.15s}
.login-inp:focus{border-color:#0038A8;box-shadow:0 0 0 3px rgba(0,56,168,.12)}
.login-err{display:none;color:#dc2626;font-size:.75rem;margin-bottom:10px;padding:7px 10px;background:#fee2e2;border-radius:6px;white-space:pre-line;word-break:break-word}
.login-btn{width:100%;padding:11px;border:none;border-radius:8px;background:#E31837;color:#fff;font-size:.9rem;font-weight:700;cursor:pointer;transition:.15s;margin-top:4px}
.login-btn:hover{background:#c0122c}
.login-user-badge{display:flex;align-items:center;gap:10px;background:#f0fdf4;border:1px solid #86efac;border-radius:8px;padding:8px 12px;margin-bottom:14px;font-size:.8rem;color:#166534}

/* ══════════════════════════════════════════════════════════════════
   DREELIO-STYLE REDESIGN — warm palette, flat cards, clean type
══════════════════════════════════════════════════════════════════ */

/* ── INTER FONT ────────────────────────────────────────────────── */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap');
body{font-family:'Inter',-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:#edeae4;background-image:none;font-feature-settings:"cv11","ss01","cv04";-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
button,input,select,textarea{font-family:inherit}

/* ── MOTION SYSTEM ──────────────────────────────────────────────── */
:root{--ease-out-expo:cubic-bezier(0.16,1,0.3,1);--dur-fast:130ms;--dur-base:200ms}
button,a,.tab,.ss-pill,.hbtn,.mb,.fld input,.fld select{transition-timing-function:var(--ease-out-expo);transition-duration:var(--dur-fast)}
button{transition-property:background-color,box-shadow,transform,border-color,color,opacity}
button:active{transform:scale(.97);transition-duration:60ms}

/* ── HEADER — deep clean dark ───────────────────────────────────── */
.hdr{background:#0f1523;border-bottom:1px solid rgba(255,255,255,.05);box-shadow:0 1px 0 rgba(0,0,0,.4);padding:10px 28px;gap:10px}
.hdr-title{font-size:.97rem;letter-spacing:-.025em;font-weight:700}
.hsearch{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.1);border-radius:9px;padding:6px 13px;font-size:.8rem;transition:background var(--dur-fast),border-color var(--dur-fast)}
.hsearch:focus{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.22)}
.hbtn{border-radius:7px;font-size:.75rem;font-weight:600;letter-spacing:-.01em;border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.07);color:rgba(255,255,255,.78);padding:5px 11px}
.hbtn:hover{background:rgba(255,255,255,.13);color:#fff;transform:translateY(-1px)}
.hbtn-reset{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.09)}
#logoutBtn{background:rgba(255,255,255,.06)!important;border-color:rgba(255,255,255,.1)!important;color:rgba(255,255,255,.72)!important}
#logoutBtn:hover{background:rgba(239,68,68,.18)!important;border-color:rgba(239,68,68,.35)!important;color:#fca5a5!important}
.hbtn-deliv{background:rgba(14,165,233,.16)!important;border-color:rgba(14,165,233,.28)!important;color:#7dd3fc!important}
.hbtn-deliv:hover{background:rgba(14,165,233,.26)!important}
.hbtn-dir{background:rgba(239,68,68,.14)!important;border-color:rgba(239,68,68,.25)!important;color:#fca5a5!important}
.hbtn-dir:hover{background:rgba(239,68,68,.24)!important}
#salesViewBtn{background:rgba(59,130,246,.18)!important;border-color:rgba(59,130,246,.3)!important;color:#93c5fd!important}
#salesViewBtn:hover{background:rgba(59,130,246,.28)!important}

/* ── SCHEDULE SWITCHER ──────────────────────────────────────────── */
.sched-switcher-wrap{background:#080d1a;border-bottom:1px solid rgba(255,255,255,.04);padding:5px 28px}

/* ── DAY TAB BAR — warm white ───────────────────────────────────── */
#dayTabBar{background:#faf7f2;box-shadow:0 1px 0 #e8e2da,0 2px 8px rgba(0,0,0,.04);border-bottom:none;padding:6px 20px 5px}
.tab{border-radius:8px;font-size:.76rem;font-weight:600;letter-spacing:-.01em;border:1px solid transparent;padding:5px 13px;color:#7a7068;transition:all var(--dur-fast) var(--ease-out-expo)}
.tab.active{background:#fff;border-color:#e0d9d0;color:#1a1410;box-shadow:0 1px 4px rgba(0,0,0,.08)}
.tab:not(.active):hover{background:#f0ebe3;color:#1a1410}

/* ── TOOLBAR — warm white ───────────────────────────────────────── */
.toolbar{background:#faf7f2;border-bottom:1px solid #e8e2da;padding:7px 28px;backdrop-filter:none;-webkit-backdrop-filter:none}
.stat{background:#fff;border:1px solid #ede7df;border-radius:10px;box-shadow:none;font-size:.73rem;letter-spacing:-.01em;color:#7a7068}
.stat b{font-size:.9rem;font-weight:700;color:#1a1410;letter-spacing:-.025em}
.stat.spares-stat{background:#f0fdf4;border-color:#bbf7d0}
.add-emp-btn{border-color:#c8c0b5;color:#7a7068;border-radius:8px;font-weight:600;letter-spacing:-.01em}
.add-emp-btn:hover{background:#1a1410;border-color:#1a1410;color:#fff}

/* ── EMPLOYEE CARDS — Dreelio flat style ────────────────────────── */
.emp-card{border-width:1px;border-radius:12px;background:#fff;border-color:#ebe5de!important;box-shadow:0 1px 2px rgba(0,0,0,.05);transition:box-shadow var(--dur-base) var(--ease-out-expo),transform var(--dur-base) var(--ease-out-expo)}
.emp-card:hover{box-shadow:0 4px 20px rgba(0,0,0,.09);transform:translateY(-1px)}
.emp-head{padding:11px 14px;border-bottom:1px solid #f0ece5}
.emp-card:not([class*=route-]) .emp-head{background:#faf7f2}
.emp-name-inp{font-size:.9rem;font-weight:700;letter-spacing:-.02em;color:#1a1410}
.emp-chips{gap:4px;margin-top:3px}
.chip{border-radius:11px;letter-spacing:.01em}
.avatar{border-radius:9px!important}

/* ── STORE CARDS ─────────────────────────────────────────────────── */
.store-card{border-radius:9px;transition:box-shadow var(--dur-fast) var(--ease-out-expo),transform var(--dur-fast) var(--ease-out-expo)}
.store-card:hover{box-shadow:0 3px 12px rgba(0,0,0,.09);transform:translateY(-1px)}
.store-nm{font-weight:700;letter-spacing:-.015em}

/* ── MODALS ──────────────────────────────────────────────────────── */
.modal{border-radius:16px;box-shadow:0 20px 60px rgba(0,0,0,.15),0 4px 16px rgba(0,0,0,.07);background:#fff}
.mhd{padding:16px 20px;border-bottom:1px solid #f0ece5;background:#faf7f2;border-radius:16px 16px 0 0}
.mhd h3{font-size:.95rem;font-weight:700;letter-spacing:-.025em;color:#1a1410}
.mbd{padding:16px 20px}
.mft{padding:12px 20px}
@keyframes pop{from{opacity:0;transform:scale(.96) translateY(8px)}to{opacity:1;transform:none}}
.modal{animation:pop var(--dur-base) var(--ease-out-expo)}
.mx{border-radius:6px;color:#9a9289}
.mx:hover{background:#f0ece5;color:#1a1410}

/* ── FORM FIELDS ─────────────────────────────────────────────────── */
.fld label{font-size:.71rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#7a7068}
.fld input,.fld select,.fld textarea{border-radius:9px;font-family:inherit;letter-spacing:-.01em;border-color:#e0d9d0;background:#faf7f2;transition:border-color var(--dur-fast),box-shadow var(--dur-fast),background var(--dur-fast)}
.fld input:focus,.fld select:focus,.fld textarea:focus{background:#fff;border-color:#0038A8;box-shadow:0 0 0 3px rgba(0,56,168,.09)}

/* ── MODAL BUTTONS ───────────────────────────────────────────────── */
.mb{border-radius:8px;font-size:.82rem;letter-spacing:-.01em;padding:8px 16px;font-weight:600}
.mb-c{background:#f0ece5;color:#5a534a}.mb-c:hover{background:#e5dfd6;transform:translateY(-1px)}
.mb-s{background:#0038A8;color:#fff;box-shadow:none}.mb-s:hover{background:#002d8a;transform:translateY(-1px)}
.mb-d:hover{transform:translateY(-1px)}

/* ── LOGIN ───────────────────────────────────────────────────────── */
#loginOv{padding:24px;background:#0a0f1c;background-image:radial-gradient(ellipse at 25% 35%,rgba(59,89,200,.28) 0%,transparent 55%),radial-gradient(ellipse at 78% 68%,rgba(20,55,180,.2) 0%,transparent 50%)}
.login-box{width:100%;max-width:380px;padding:44px;border-radius:20px;border-top:none;background:#fff;box-shadow:0 24px 64px rgba(0,0,0,.32),0 4px 16px rgba(0,0,0,.1)}
.login-title h2{font-size:1.2rem;font-weight:800;letter-spacing:-.04em;color:#0f1523;margin-top:14px}
.login-title p{color:#9a9289;font-size:.83rem;letter-spacing:-.01em}
.login-lbl{font-size:.71rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#7a7068}
.login-inp{border-radius:10px;padding:10px 13px;font-size:.88rem;letter-spacing:-.01em;border-color:#e0d9d0;background:#faf7f2;font-family:inherit;transition:all var(--dur-fast) var(--ease-out-expo)}
.login-inp:focus{background:#fff;border-color:#0038A8;box-shadow:0 0 0 3px rgba(0,56,168,.09)}
.login-btn{border-radius:10px;padding:12px;font-size:.9rem;font-weight:700;letter-spacing:-.01em;background:#E31837;box-shadow:0 2px 8px rgba(227,24,55,.25);margin-top:6px;transition:all var(--dur-fast) var(--ease-out-expo)}
.login-btn:hover{background:#c8112a;box-shadow:0 6px 18px rgba(227,24,55,.35);transform:translateY(-1px)}
.login-btn:active{transform:scale(.98);box-shadow:none}
.login-err{border-radius:9px;border:1px solid #fecaca;font-size:.78rem}

/* ── SALES VIEW ──────────────────────────────────────────────────── */
#salesViewPanel{background:#edeae4;min-height:calc(100vh - 60px)}
body.has-sb #salesViewPanel{background:#edeae4}
body.has-sb #salesViewPanel>div:first-child{background:#fff!important;border-bottom:1px solid #ebe5de!important}
body.has-sb #salesViewPanel>div:first-child span{color:#1a1410!important}
body.has-sb #salesViewPanel>div:first-child span span{color:#7a7068!important;font-weight:500}
body.has-sb #salesRepGrid{background:#edeae4;padding:14px}
body.has-sb #salesRepGrid>div{background:#fff;border:1px solid #ebe5de;border-radius:12px;box-shadow:0 1px 3px rgba(0,15,70,.05);overflow:hidden}

/* ── STATUS/CONSISTENCY CARDS ────────────────────────────────────── */
.status-overview-card,.cons-panel,.store-search-bar{background:#fff;border-color:#ebe5de;border-radius:10px;box-shadow:none}

/* ── PANEL ───────────────────────────────────────────────────────── */
.panel{background:#fff;box-shadow:-6px 0 32px rgba(0,0,0,.1)}
.panel-hd{background:#faf7f2;border-bottom:1px solid #ebe5de}

/* ── RADIO / DAY CHECKBOXES ──────────────────────────────────────── */
.radio-grp label{border-radius:8px;border-color:#e0d9d0;transition:all var(--dur-fast) var(--ease-out-expo)}
.radio-grp label:hover{border-color:#0038A8;background:#eff4ff}

/* ── FOCUS RING ──────────────────────────────────────────────────── */
:focus-visible{outline:2px solid #0038A8;outline-offset:2px;border-radius:5px}

/* ── PANELS — Delivery + Employee Dir as centered modals ── */
body.has-sb .panel-ov{background:rgba(20,15,10,.48);display:none;align-items:center;justify-content:center;padding:24px}
body.has-sb .panel-ov.open{display:flex}
body.has-sb .panel{position:relative;top:auto;right:auto;height:auto;width:100%;max-width:780px;max-height:88vh;border-radius:16px;background:#fff;animation:pop 200ms var(--ease-out-expo);box-shadow:0 32px 80px rgba(0,0,0,.32),0 8px 24px rgba(0,0,0,.12)}
body.has-sb .panel-hd{background:#faf7f2!important;border-bottom:1px solid #ebe5de!important;border-radius:16px 16px 0 0;padding:16px 22px}
body.has-sb .panel-hd h2{font-size:1rem;font-weight:700;letter-spacing:-.025em;color:#1a1410;display:flex;align-items:center;gap:8px}
body.has-sb .panel-hd h2::before{content:none}
body.has-sb .panel-bd{padding:18px 22px;background:#fff}
body.has-sb .panel-ft{background:#faf7f2;border-top:1px solid #ebe5de;border-radius:0 0 16px 16px;padding:12px 22px}
body.has-sb .dvt-btn{background:#fff;border:1px solid #e0d9d0;color:#6b6560;font-weight:600;border-radius:7px;padding:5px 11px;font-size:.74rem;letter-spacing:-.01em}
body.has-sb .dvt-btn:hover{background:#faf7f2;color:#1a1410;border-color:#cfc7bc}
body.has-sb .dvt-btn.on{background:#1a1410;border-color:#1a1410;color:#fff}
body.has-sb .dir-item{background:#fff;border:1px solid #ede7df;border-radius:10px;padding:10px 12px;margin-bottom:5px;transition:all 120ms var(--ease-out-expo)}
body.has-sb .dir-item:hover{background:#faf7f2;border-color:#cfc7bc;transform:none}
body.has-sb .di-nm{color:#1a1410;letter-spacing:-.01em}
body.has-sb .di-sub{color:#7a7068}
body.has-sb .rf{background:#fff;border:1px solid #e0d9d0;color:#6b6560;font-weight:600;border-radius:14px;padding:3px 10px;font-size:.7rem;letter-spacing:.01em}
body.has-sb .rf:hover,body.has-sb .rf.on{background:#1a1410;border-color:#1a1410;color:#fff}
/* Route variants also neutralized */
body.has-sb .rf.r5310.on,body.has-sb .rf.r5320.on,body.has-sb .rf.r5330.on,body.has-sb .rf.r5340.on,body.has-sb .rf.r5350.on{background:#1a1410;border-color:#1a1410;color:#fff}

/* Delivery info specific */
body.has-sb #delivOv .panel{max-width:1100px}
body.has-sb #empDirOv .panel{max-width:560px}

/* ── STORE DIRECTORY — centered modal, wider in schedule view ── */
body.has-sb #dirOv .panel{max-width:560px}
body.has-sb #dirOv.ssg-mode .panel{max-width:min(960px,calc(100vw - 48px))}
/* Schedule grid — stretch table to fill full modal width */
body.has-sb #dirOv .ssg-wrap{width:100%}
body.has-sb #dirOv .ssg-table{width:100%;table-layout:fixed;min-width:0}
body.has-sb #dirOv .ssg-table th:first-child,body.has-sb #dirOv .ssg-table td:first-child{width:130px;overflow:hidden;text-overflow:ellipsis}
body.has-sb #dirOv .ssg-table th:nth-child(2),body.has-sb #dirOv .ssg-table td:nth-child(2){width:52px}
body.has-sb #dirOv .ssg-table th:nth-last-child(1),body.has-sb #dirOv .ssg-table td:nth-last-child(1){width:34px}
body.has-sb #dirOv .ssg-table th:nth-last-child(2),body.has-sb #dirOv .ssg-table td:nth-last-child(2){width:34px}
body.has-sb .deliv-day-tab{background:#fff;border:1px solid #e0d9d0;color:#6b6560;font-weight:600;border-radius:14px}
body.has-sb .deliv-day-tab:hover{background:#faf7f2;color:#1a1410;border-color:#cfc7bc}
body.has-sb .deliv-day-tab.ddt-active{background:#1a1410;border-color:#1a1410;color:#fff}
body.has-sb .deliv-section-hdr{color:#1a1410;border-bottom-color:#ebe5de}
body.has-sb .deliv-table th{background:#faf7f2;color:#7a7068;border-bottom-color:#ebe5de}
body.has-sb .deliv-table td{border-bottom-color:#f0ece5}
body.has-sb .deliv-table tbody tr:hover td{background:#faf7f2}
body.has-sb .deliv-inp{background:#faf7f2;border:1px solid #e0d9d0;color:#1a1410;border-radius:6px}
body.has-sb .deliv-inp:focus{background:#fff;border-color:#0038A8;box-shadow:0 0 0 3px rgba(0,56,168,.09)}
body.has-sb .deliv-store-nm{color:#1a1410;letter-spacing:-.01em}
body.has-sb .deliv-emp-lbl{color:#7a7068}
body.has-sb .deliv-subhd{background:#faf7f2!important;border-bottom:1px solid #ebe5de!important}
body.has-sb .deliv-clr-btn{background:#fff;border:1px solid #ebe5de;color:#7a7068}
body.has-sb .deliv-clr-btn:hover{background:#1a1410;border-color:#1a1410;color:#fff}

/* ── COST SUMMARY BAR — neutral ─────────────────────────────────── */
body.has-sb .cost-bar-inline{background:#faf7f2!important;border:1px solid #ebe5de!important;color:#3a3530;padding:4px 12px;border-radius:8px;font-weight:600}
body.has-sb .cost-ttl{color:#1a1410!important}
body.has-sb .cost-item{color:#1a1410!important;font-weight:700}
body.has-sb .cost-lbl{color:#7a7068!important;font-weight:500}
body.has-sb .cost-sep{color:#cfc7bc!important}
body.has-sb .cost-total{background:#1a1410!important;color:#fff!important;border-radius:6px;padding:2px 10px;font-weight:700}
body.has-sb .cost-close-btn{margin-left:6px;padding:2px 7px;border-radius:5px;border:1px solid #e0d9d0;background:#fff;color:#7a7068;font-size:.7rem;cursor:pointer;transition:all 120ms var(--ease-out-expo);font-family:inherit}
body.has-sb .cost-close-btn:hover{background:#1a1410;border-color:#1a1410;color:#fff}

/* ── KM ROUTE / COMMUTE INLINE — neutralize aggressively ─────────── */
body.has-sb .day-col>div[style*="#0038A8"],
body.has-sb .day-col>div[style*="#dce8ff"]{background:#faf7f2!important;color:#3a3530!important;border:1px solid #ebe5de!important;font-weight:600!important;letter-spacing:-.005em}
body.has-sb .day-col>div[style*="#0038A8"] span,
body.has-sb .day-col>div[style*="#dce8ff"] span{color:#3a3530!important}
/* The "est" / globe-icon mini-badge to the right of route line */
body.has-sb .day-col>div[style*="#dce8ff"] span[style*="#fff"]{background:#1a1410!important;color:#fff!important}

/* ── TRAINEE / TRAINER LABEL CHIPS — neutral ─────────────────────── */
body.has-sb .trainee-lbl,
body.has-sb .day-trainer-lbl,
body.has-sb .fs-trainee-lbl,
body.has-sb .fs-trainer-lbl{background:#faf7f2!important;color:#1a1410!important;border:1px solid #ebe5de!important;font-weight:600;letter-spacing:-.005em}
body.has-sb .day-trainer-lbl a{color:#7a7068!important}
body.has-sb .day-trainer-lbl b{color:#1a1410!important;font-weight:700}

/* ── KM ROUTE / COMMUTE / DRIVE BADGES — neutral ─────────────────── */
/* The route distance row has inline style: color:#0038A8; background:#dce8ff;
   We catch the badges inside it (green/amber chips) and the badge to the right. */
body.has-sb .day-col>div[style*="color:#0038A8"][style*="background:#dce8ff"]{background:#faf7f2!important;color:#3a3530!important;border:1px solid #ebe5de;border-radius:5px;padding:3px 8px;font-weight:600}
body.has-sb .day-col>div[style*="background:#dce8ff"] span[style*="background:#16a34a"],
body.has-sb .day-col>div[style*="background:#dce8ff"] span[style*="background:#f59e0b"],
body.has-sb .day-col>div[style*="background:#dce8ff"] span[style*="background:#22c55e"]{background:#ebe5de!important;color:#3a3530!important}
body.has-sb [style*="background:#16a34a"][style*="color:#fff"][style*="border-radius:3px"],
body.has-sb [style*="background:#f59e0b"][style*="color:#fff"][style*="border-radius:3px"]{background:#ebe5de!important;color:#3a3530!important}
/* The em chip on the right of route ("est" / globe-icon) */
body.has-sb [style*="background:#f59e0b;color:#fff"]{background:#ebe5de!important;color:#3a3530!important}
body.has-sb [style*="background:#16a34a;color:#fff"]{background:#1a1410!important;color:#fff!important}
body.has-sb [style*="background:#22c55e;color:#fff"]{background:#1a1410!important;color:#fff!important}

/* ── MOBILE SEARCH (sticky in day-tab bar) ──────────────────────── */
.mobile-search-wrap{display:none}
/* Mobile search — icon-only button that expands to full-width overlay */
.mob-search-btn{display:none}
.mob-search-overlay{display:none;position:absolute;inset:0 0 0 42px;background:#faf7f2;z-index:10;align-items:center;gap:6px;padding:0 8px}
.mob-search-overlay input{flex:1;border:1.5px solid #ebe5de;border-radius:18px;padding:6px 12px;font-size:.82rem;outline:none;background:#fff;color:#1a1410;min-width:0}
.mob-search-overlay .mob-search-close{background:none;border:none;padding:4px 6px;cursor:pointer;color:#7a7068;font-size:1.1rem;flex-shrink:0;line-height:1}
@media(max-width:900px){
  .mob-search-btn{display:flex!important;align-items:center;justify-content:center;flex-shrink:0;width:34px;height:34px;border:1px solid #ebe5de;border-radius:8px;background:#fff;cursor:pointer;margin-left:4px;color:var(--sb-text,#1a1410)}
  .mob-search-btn svg{width:16px;height:16px}
  .mob-search-overlay.open{display:flex!important}
  /* Full Schedule — full-screen on mobile with horizontal scroll */
  #fsBackdrop{padding:0!important}
  .fs-modal-wrap{border-radius:0!important;max-height:100dvh!important}
  .fs-body{overflow:auto!important}
  .fs-table{width:max-content!important;min-width:700px!important}
  /* Store Directory schedule grid — hide Route/Del/Bck, fixed layout so all 7 days fit */
  .ssg-table{table-layout:fixed!important;width:100%!important;min-width:0!important}
  .ssg-table th:nth-child(2),.ssg-table td:nth-child(2){display:none}
  .ssg-table th:nth-last-child(1),.ssg-table td:nth-last-child(1){display:none}
  .ssg-table th:nth-last-child(2),.ssg-table td:nth-last-child(2){display:none}
  .ssg-table th:first-child,.ssg-table td:first-child{width:70px!important;overflow:hidden}
  .ssg-day-cell,.ssg-table th:nth-child(n+3){width:31px!important;overflow:hidden;padding:2px 1px}
  .ssg-nm{font-size:.52rem;white-space:normal;word-break:break-word;line-height:1.2;overflow:visible}
  .ssg-sub{display:block!important;font-size:.48rem;color:#94a3b8;white-space:normal;word-break:break-word;margin-top:1px;line-height:1.2}
  .ssg-badge{font-size:.58rem;padding:2px 4px}
  .ssg-emp-lbl{display:none}
  .ssg-ua-lbl{display:none}
}
@media(max-width:768px){
  /* dayTabBar needs to flex-row + allow tabs to scroll */
  #dayTabBar{display:flex;align-items:center;flex-wrap:nowrap}
  #dayTabBar .tabs{flex:1 1 auto;min-width:0;overflow-x:auto;-webkit-overflow-scrolling:touch}

  /* ── MOBILE TOOLBAR — compact + horizontal scroll ──────────────── */
  body.has-sb .toolbar{padding:6px 8px!important;gap:4px;flex-wrap:wrap;justify-content:center!important}
  /* Kill margin-left:auto on gf-group — it breaks centering on mobile */
  body.has-sb .toolbar .gf-group:not(#routeFilterGrp){margin-left:0!important}
  /* Stats: tight horizontal scrolling pills */
  body.has-sb .toolbar .stats-row{flex:1 1 100%;flex-wrap:nowrap!important;overflow-x:auto;-webkit-overflow-scrolling:touch;justify-content:safe center;padding-bottom:2px;margin-bottom:2px;scrollbar-width:none;gap:2px;min-width:0}
  body.has-sb .toolbar .stats-row::-webkit-scrollbar{display:none}
  body.has-sb .toolbar .stat{flex:0 0 auto;padding:1px 3px;font-size:.55rem;border-radius:5px}
  body.has-sb .toolbar .stat b{font-size:.6rem}
  /* Hide desktop search wrap on mobile — the day-tab-bar mobile search covers it */
  body.has-sb .toolbar .search-wrap{display:none!important}
  /* Hide store filter bar on mobile — not needed in mobile view */
  body.has-sb #store-search-bar{display:none!important}
  /* Action buttons — smaller on mobile */
  body.has-sb .toolbar #publishBtn,
  body.has-sb .toolbar #finalizeBtn,
  body.has-sb .toolbar #suggestBtn,
  body.has-sb .toolbar #overviewBtn,
  body.has-sb .toolbar #workloadSugBtn,
  body.has-sb .toolbar #pushSurveysBtn,
  body.has-sb .toolbar #updFilterBtn{flex:0 0 auto;font-size:.62rem!important;padding:3px 8px!important;white-space:nowrap}
  /* Filter pill groups — centered scrollable row */
  body.has-sb .toolbar .gf-group{display:flex;gap:3px;flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;margin-left:0!important;flex:1 1 100%;justify-content:center}
  body.has-sb .toolbar .gf-group::-webkit-scrollbar{display:none}
  body.has-sb .toolbar .gf-btn{flex:0 0 auto;font-size:.62rem!important;padding:2px 8px!important;white-space:nowrap}
  /* Hide the legend on mobile — colour info is non-essential */
  body.has-sb .legend{display:none!important}
}

/* ── DAY TABS — centered across the top (desktop) ────────────────── */
body.has-sb #dayTabBar{justify-content:center;padding:8px 24px 6px}
body.has-sb #dayTabBar .tabs{flex:0 1 auto;justify-content:center;gap:6px}
@media(max-width:768px){
  body.has-sb #dayTabBar{justify-content:flex-start;padding:5px 10px 4px}
  body.has-sb #dayTabBar .tabs{flex:1 1 auto;justify-content:flex-start}
}

/* ── DAY VIEW — store cards stretch full width with denser layout ── */
body.has-sb .emp-days:not(.all-days-mode) .day-col{flex:1 1 100%;width:100%}
body.has-sb .emp-days:not(.all-days-mode) .store-card{width:100%;padding:9px 14px}
/* Store header: badges on row 1, full store name on row 2 (wraps as needed) */
body.has-sb .store-top{gap:6px;align-items:center;flex-wrap:wrap}
body.has-sb .store-nm{max-width:none!important;white-space:normal!important;overflow:visible!important;text-overflow:clip!important;flex:1 1 100%;font-size:.86rem;line-height:1.3;font-weight:700;letter-spacing:-.015em;color:#1a1410;margin-top:2px;word-break:break-word}
body.has-sb .store-loc{font-size:.74rem;color:#7a7068;margin-top:2px}
body.has-sb .store-time{font-size:.78rem;color:#3a3530;margin-top:3px;font-weight:600}
body.has-sb .badge{flex-shrink:0}
body.has-sb .rp{flex-shrink:0}

/* ── SHIFT ESTIMATE BREAKDOWN — modal neutralization ──────────────── */
body.has-sb #estBreakdownOv .modal{max-width:480px}
body.has-sb #estBreakdownOv .mbd{padding:18px 22px}
body.has-sb #estBreakdownOv [style*="border-bottom:1px solid #f0ece5"]+div{padding-top:6px!important}
/* Total Estimate row at the bottom — make it stand out */
body.has-sb #estBreakdownOv .est-total,
body.has-sb #estBreakdownOv [style*="font-weight:700"][style*="border-top"]{border-top:1px solid #ebe5de!important;padding-top:10px!important;margin-top:6px;font-size:.92rem;color:#1a1410!important;font-weight:700!important}
/* Override the inline navy color on store name + total in breakdown */
body.has-sb #estBreakdownOv [style*="color:#0038A8"]{color:#1a1410!important}
body.has-sb #estBreakdownOv [style*="color:#b45309"]{color:#7a7068!important}
body.has-sb #estBreakdownOv [style*="color:#374151"]{color:#1a1410!important}
body.has-sb #estBreakdownOv [style*="color:#64748b"]{color:#7a7068!important}
body.has-sb #estBreakdownOv [style*="color:#94a3b8"]{color:#9a9289!important}

/* ── CONSISTENCY CHIPS / WEEKLY ROUND UP / STORE FILTER — neutral ── */
body.has-sb .cons-chip,
body.has-sb .cons-chip.ok,
body.has-sb .cons-chip.warn,
body.has-sb .cons-chip.bad,
body.has-sb .cons-chip.info,
body.has-sb .cons-chip.none{background:#faf7f2!important;border:1px solid #ebe5de!important;color:#3a3530!important;font-weight:600;letter-spacing:-.005em}
body.has-sb .cons-chip b{color:#1a1410!important;font-weight:700}
body.has-sb .cons-chip.warn:hover,body.has-sb .cons-chip.bad:hover,body.has-sb .cons-chip.info:hover{background:#f0ece5!important;border-color:#cfc7bc!important}
body.has-sb .cons-panel-hdr{color:#7a7068!important;text-transform:uppercase;letter-spacing:.05em;font-size:.66rem;font-weight:700}
body.has-sb .cons-panel{background:#fff!important;border:1px solid #ebe5de!important;border-radius:10px}
body.has-sb .store-search-bar{background:#fff!important;border:1px solid #ebe5de!important;border-radius:10px}
body.has-sb .store-search-bar .ssb-lbl{color:#1a1410!important;letter-spacing:-.01em;font-weight:600}
body.has-sb .store-search-bar input{background:#faf7f2!important;border:1px solid #e0d9d0!important;color:#1a1410}
body.has-sb .store-search-bar input:focus{background:#fff!important;border-color:#0038A8!important;box-shadow:0 0 0 3px rgba(0,56,168,.08)}
body.has-sb .store-search-bar .ssb-count{color:#7a7068}
/* Weekly Round Up panel */
body.has-sb .sov-top-hdr{color:#1a1410}
body.has-sb .sov-export-btn{background:#faf7f2!important;border:1px solid #e0d9d0!important;color:#3a3530!important;border-radius:6px;font-weight:600;padding:3px 9px}
body.has-sb .sov-export-btn:hover{background:#1a1410!important;border-color:#1a1410!important;color:#fff!important}
body.has-sb .sov-chevron{color:#7a7068}
body.has-sb .status-overview-card{background:#fff!important;border:1px solid #ebe5de!important;border-radius:10px}

/* ── MEETINGS MODAL — neutral theme ─────────────────────────────── */
body.has-sb .mtg-toolbar{display:flex;align-items:center;gap:8px;margin-bottom:14px;flex-wrap:wrap}
body.has-sb .mtg-selectall{display:flex;align-items:center;gap:6px;font-size:.78rem;color:#3a3530;cursor:pointer;letter-spacing:-.005em;font-weight:500}
body.has-sb .mtg-selectall input{margin:0;accent-color:#1a1410}
body.has-sb .mtg-btn{display:inline-flex;align-items:center;gap:5px;padding:6px 12px;border-radius:7px;border:1px solid #e0d9d0;background:#faf7f2;color:#3a3530;font-size:.74rem;font-weight:600;cursor:pointer;letter-spacing:-.005em;transition:all 120ms var(--ease-out-expo);white-space:nowrap}
body.has-sb .mtg-btn:hover{background:#1a1410;border-color:#1a1410;color:#fff;transform:translateY(-1px)}
body.has-sb .mtg-btn-add{margin-left:auto}
body.has-sb .mtg-btn .ic{width:13px;height:13px;color:inherit;margin-right:0}
/* Existing inline-styled .meeting-row / chips inside */
body.has-sb .meeting-row{background:#fff!important;border:1px solid #ebe5de!important;border-radius:9px;padding:10px 12px;margin-bottom:8px}

/* ── DELIVERY INFO — neutral action buttons ────────────────────── */
body.has-sb .deliv-act-btn{display:inline-flex;align-items:center;gap:5px;padding:6px 11px;border-radius:7px;border:1px solid #e0d9d0;background:#faf7f2;color:#3a3530;font-size:.74rem;font-weight:600;cursor:pointer;letter-spacing:-.005em;transition:all 120ms var(--ease-out-expo);white-space:nowrap;font-family:inherit}
body.has-sb .deliv-act-btn:hover{background:#1a1410;border-color:#1a1410;color:#fff;transform:translateY(-1px)}
body.has-sb .deliv-act-btn .ic{width:13px;height:13px;margin-right:0}
/* 74% ON TIME bubble + similar inline-coloured pills inside deliv body */
body.has-sb .deliv-section-hdr span[style*="background"]{background:#faf7f2!important;color:#3a3530!important;border:1px solid #ebe5de!important}

/* ── GLOBAL CATCH-ALL: inline-styled coloured buttons → neutral ── */
/* Red action buttons (#ef4444, #dc2626, #b91c1c, #d92d20) */
body.has-sb button[style*="background:#ef4444"],
body.has-sb button[style*="background:#dc2626"],
body.has-sb button[style*="background:#b91c1c"]:not(.upd-ack-btn),
body.has-sb button[style*="background:#7f1d1d"]{
  background:#faf7f2!important;color:#3a3530!important;border:1px solid #e0d9d0!important;font-weight:600
}
body.has-sb button[style*="background:#ef4444"]:hover,
body.has-sb button[style*="background:#dc2626"]:hover,
body.has-sb button[style*="background:#b91c1c"]:not(.upd-ack-btn):hover,
body.has-sb button[style*="background:#7f1d1d"]:hover{background:#1a1410!important;border-color:#1a1410!important;color:#fff!important}

/* Purple action buttons (#7c3aed, #6d28d9, #5b21b6, #a855f7) */
body.has-sb button[style*="background:#7c3aed"],
body.has-sb button[style*="background:#6d28d9"],
body.has-sb button[style*="background:#5b21b6"],
body.has-sb button[style*="background:#a855f7"]{
  background:#faf7f2!important;color:#3a3530!important;border:1px solid #e0d9d0!important;font-weight:600
}
body.has-sb button[style*="background:#7c3aed"]:hover,
body.has-sb button[style*="background:#6d28d9"]:hover,
body.has-sb button[style*="background:#5b21b6"]:hover,
body.has-sb button[style*="background:#a855f7"]:hover{background:#1a1410!important;border-color:#1a1410!important;color:#fff!important}

/* Green action buttons (#059669, #16a34a, #15803d, #22c55e) */
body.has-sb button[style*="background:#059669"],
body.has-sb button[style*="background:#16a34a"],
body.has-sb button[style*="background:#15803d"],
body.has-sb button[style*="background:#22c55e"]{
  background:#faf7f2!important;color:#3a3530!important;border:1px solid #e0d9d0!important;font-weight:600
}
body.has-sb button[style*="background:#059669"]:hover,
body.has-sb button[style*="background:#16a34a"]:hover,
body.has-sb button[style*="background:#15803d"]:hover,
body.has-sb button[style*="background:#22c55e"]:hover{background:#1a1410!important;border-color:#1a1410!important;color:#fff!important}

/* Blue action buttons (#0038A8, #0056C8, #0891b2, #3b82f6, #1e3a8a, #001A6E, #1d4ed8) */
body.has-sb button[style*="background:#0038A8"],
body.has-sb button[style*="background:#0056C8"],
body.has-sb button[style*="background:#0891b2"],
body.has-sb button[style*="background:#3b82f6"],
body.has-sb button[style*="background:#1e3a8a"],
body.has-sb button[style*="background:#001A6E"],
body.has-sb button[style*="background:#1d4ed8"]{
  background:#faf7f2!important;color:#3a3530!important;border:1px solid #e0d9d0!important;font-weight:600
}
body.has-sb button[style*="background:#0038A8"]:hover,
body.has-sb button[style*="background:#0056C8"]:hover,
body.has-sb button[style*="background:#0891b2"]:hover,
body.has-sb button[style*="background:#3b82f6"]:hover,
body.has-sb button[style*="background:#1e3a8a"]:hover,
body.has-sb button[style*="background:#001A6E"]:hover,
body.has-sb button[style*="background:#1d4ed8"]:hover{background:#1a1410!important;border-color:#1a1410!important;color:#fff!important}

/* Dark slate buttons */
body.has-sb button[style*="background:#0f172a"],
body.has-sb button[style*="background:#1e293b"],
body.has-sb button[style*="background:#334155"]{
  background:#faf7f2!important;color:#3a3530!important;border:1px solid #e0d9d0!important;font-weight:600
}
body.has-sb button[style*="background:#0f172a"]:hover,
body.has-sb button[style*="background:#1e293b"]:hover,
body.has-sb button[style*="background:#334155"]:hover{background:#1a1410!important;border-color:#1a1410!important;color:#fff!important}

/* Override the primary Save-style button (.mb-s) to neutralize colour */
body.has-sb .mb-s{background:#1a1410!important;color:#fff!important;border:1px solid #1a1410!important}
body.has-sb .mb-s:hover{background:#3a3530!important;border-color:#3a3530!important}

/* Publish button on toolbar (already hidden via toolbar:none but in case it appears) */
body.has-sb #publishBtn{background:#faf7f2!important;color:#3a3530!important;border:1px solid #e0d9d0!important}

/* Vac-notif badge red bubble → neutral */
body.has-sb .vac-notif-badge,body.has-sb [class*="badge"][style*="background:#ef4444"]{background:#1a1410!important;color:#fff!important;border:none!important}

/* Coloured H2 / titles inside modals (h2 with inline color) — strip dark navy */
body.has-sb h2[style*="color:#001A6E"],body.has-sb h3[style*="color:#0038A8"],body.has-sb h2[style*="color:#001252"]{color:#1a1410!important}

/* Settings/section labels inside modals that use blue accents */
body.has-sb [style*="color:#0038A8"]:not(input):not(button){color:#1a1410!important}

/* "Save All" / Save button consistency */
body.has-sb button[style*="background:#16a34a"][style*="color:#fff"]{background:#1a1410!important;color:#fff!important;border:1px solid #1a1410!important}

/* Lucide icon size override inside modal headers (h2/h3) */
body.has-sb .modal h2 .ic,body.has-sb .panel h2 .ic{width:17px!important;height:17px!important;margin-right:0;color:#1a1410}

/* ── DAY COLUMN HEADERS — neutral (MON May 25 strip) ────────────── */
body.has-sb .day-col-head{background:#faf7f2!important;border-bottom:1px solid #ebe5de!important;padding:6px 8px 5px}
body.has-sb .day-col.has-sh .day-col-head,
body.has-sb .route-5310 .day-col.has-sh .day-col-head,
body.has-sb .route-5320 .day-col.has-sh .day-col-head,
body.has-sb .route-5330 .day-col.has-sh .day-col-head,
body.has-sb .route-5340 .day-col.has-sh .day-col-head,
body.has-sb .route-5350 .day-col.has-sh .day-col-head{background:#f0ebe3!important;border-bottom:1px solid #ebe5de!important}
body.has-sb .dch-day{color:#1a1410!important;letter-spacing:.05em;font-weight:700;font-size:.66rem;text-transform:uppercase}
body.has-sb .dch-date{color:#7a7068!important;font-size:.7rem;font-weight:500}
body.has-sb .day-col.has-sh .dch-day{color:#1a1410!important}
body.has-sb .day-col.has-sh .dch-date{color:#7a7068!important}

/* Day-head route-tinted strips → neutral */
body.has-sb .day-col.has-sh .day-head,
body.has-sb .route-5310 .day-col.has-sh .day-head,
body.has-sb .route-5320 .day-col.has-sh .day-head,
body.has-sb .route-5330 .day-col.has-sh .day-head,
body.has-sb .route-5340 .day-col.has-sh .day-head,
body.has-sb .route-5350 .day-col.has-sh .day-head{background:#faf7f2!important;color:#1a1410!important}

/* Route distance + shift estimate rows — neutral */
body.has-sb .day-col [class*="shift-est"],
body.has-sb .shift-est-row{background:#faf7f2!important;color:#3a3530!important;border-top:1px solid #f0ece5!important;border-bottom:none;font-weight:600;letter-spacing:-.005em;font-size:.62rem;padding:3px 5px}
/* The inline route distance badge (style="font-size:.62rem;color:#0038A8;...") - we can't easily override inline */
body.has-sb .day-col>div[style*="color:#0038A8"][style*="background:#dce8ff"]{background:#faf7f2!important;color:#3a3530!important;font-weight:600}
body.has-sb .oot-drive-tag{background:#faf7f2!important;color:#3a3530!important;border:1px solid #f0ece5!important}

/* Update-needed action buttons — neutral */
body.has-sb .upd-send-btn{background:#faf7f2!important;color:#3a3530!important;border:1px solid #e0d9d0!important;font-weight:600;border-radius:5px;padding:2px 7px}
body.has-sb .upd-send-btn:hover{background:#1a1410!important;color:#fff!important;border-color:#1a1410!important}
body.has-sb .upd-ack-btn{background:#faf7f2!important;color:#3a3530!important;border:1px solid #e0d9d0!important;font-weight:600;border-radius:5px;padding:2px 7px}
body.has-sb .upd-ack-btn:hover{background:#1a1410!important;color:#fff!important;border-color:#1a1410!important}
body.has-sb .confirm-upd-btn{background:#faf7f2!important;color:#3a3530!important;border:1px solid #e0d9d0!important;font-weight:600;border-radius:6px}
body.has-sb .confirm-upd-btn:hover{background:#1a1410!important;color:#fff!important;border-color:#1a1410!important}
/* Update-needed banners stay red — they're a critical alert, the buttons inside them are neutral */
body.has-sb .confirm-status-pill{background:#faf7f2!important;color:#3a3530!important;border:1px solid #e0d9d0}
body.has-sb .confirm-status-ok{background:#f0ece5!important;color:#1a1410!important;border-color:#cfc7bc!important}
body.has-sb .confirm-status-pending{background:#faf7f2!important;color:#7a7068!important;border-color:#ebe5de!important}

/* Role chips (Supervisor / Trainer / Lead Hand) — neutral */
body.has-sb .chip-supervisor,
body.has-sb .chip-trainer,
body.has-sb .chip-leadhand{background:#faf7f2!important;color:#3a3530!important;border:1px solid #ebe5de!important;font-weight:600;letter-spacing:.02em}
/* Hide SPARE chip if it slips through anywhere */
body.has-sb .chip-spare{display:none!important}

/* ── DAY-ACT QUICK BUTTONS — neutralized (Dreelio style) ─────────── */
body.has-sb .day-act-btn,
body.has-sb .day-act-sick,
body.has-sb .day-act-vac,
body.has-sb .day-act-mod,
body.has-sb .day-act-loa,
body.has-sb .day-act-stat,
body.has-sb .day-act-spare,
body.has-sb .day-act-spare-on,
body.has-sb .day-act-clear,
body.has-sb .day-act-ovn,
body.has-sb .day-act-ovn-on{
  background:#faf7f2!important;
  border:1px solid #e8e2da!important;
  color:#6b6560!important;
  font-weight:600;
  border-radius:6px;
  padding:4px 8px;
  font-size:.62rem;
  letter-spacing:-.005em;
  transition:all 120ms var(--ease-out-expo);
}
body.has-sb .day-act-btn:hover{
  background:#1a1410!important;
  border-color:#1a1410!important;
  color:#fff!important;
}
body.has-sb .day-act-spare-on{
  background:#1a1410!important;
  border-color:#1a1410!important;
  color:#fff!important;
}
body.has-sb .day-act-spare-blocked{
  background:#faf7f2!important;
  border:1px dashed #cfc7bc!important;
  color:#b3aba0!important;
  cursor:not-allowed!important;
}
body.has-sb .day-act-spare-blocked:hover{
  background:#faf7f2!important;
  border-color:#cfc7bc!important;
  color:#b3aba0!important;
}
/* Day-act icons go muted-grey to match the neutral palette */
body.has-sb .day-act-btn .ic{color:#9a9289;width:11px;height:11px;margin-right:3px}
body.has-sb .day-act-btn:hover .ic{color:#fff}
body.has-sb .day-act-spare-on .ic{color:#fff}
body.has-sb .day-act-spare-blocked .ic{color:#cfc7bc}

/* "Reassign" button — neutral too */
body.has-sb .day-act-btn.day-act-reassign,body.has-sb button[onclick*="Reassign"]{background:#faf7f2!important;border:1px solid #e8e2da!important;color:#6b6560!important;font-weight:600!important;border-radius:6px!important}
body.has-sb .day-act-btn.day-act-reassign:hover,body.has-sb button[onclick*="Reassign"]:hover{background:#1a1410!important;border-color:#1a1410!important;color:#fff!important}

/* ── INLINE LUCIDE ICONS (inside buttons / chips) ───────────────── */
.ic{width:14px;height:14px;flex-shrink:0;display:inline-block;vertical-align:-2px;margin-right:5px;stroke-width:2}
button .ic:last-child,a .ic:last-child{margin-right:0}
button.ic-only{padding-left:8px;padding-right:8px}
button.ic-only .ic{margin-right:0}
/* Buttons that hold Lucide icons render with flex so icon + text align cleanly */
button:has(.ic),a:has(.ic){display:inline-flex;align-items:center;gap:0;line-height:1.2}
button:has(.ic) .ic{margin-right:6px}
.search-wrap{position:relative;display:inline-block}
.search-wrap .search-ic{position:absolute;left:9px;top:50%;transform:translateY(-50%);color:#94a3b8;pointer-events:none;margin:0;width:15px;height:15px}

/* ── SCROLLBAR ───────────────────────────────────────────────────── */
::-webkit-scrollbar{width:5px;height:5px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:rgba(0,0,0,.12);border-radius:3px}
::-webkit-scrollbar-thumb:hover{background:rgba(0,0,0,.22)}

/* ══════════════════════════════════════════════════════════════════
   SIDEBAR LAYOUT — Dreelio-style collapsible navigation
══════════════════════════════════════════════════════════════════ */
:root{--sb-w:240px;--sb-w-collapsed:64px;--sb-border:#ebe5de;--sb-bg:#ffffff;--sb-text:#1a1410;--sb-muted:#7a7068;--sb-icon:#9a9289;--sb-accent:#0038A8;--sb-active-bg:#f5f1ea}

.sidebar{position:fixed;top:0;left:0;bottom:0;width:var(--sb-w);background:var(--sb-bg);border-right:1px solid var(--sb-border);display:flex;flex-direction:column;z-index:120;transition:width 200ms var(--ease-out-expo),transform 160ms var(--ease-out-expo);font-family:inherit;will-change:transform}
.sidebar.collapsed{width:var(--sb-w-collapsed)}

.sb-top{display:flex;align-items:center;justify-content:space-between;padding:16px 14px 14px 16px;gap:8px;border-bottom:1px solid #f5f1ea}
.sb-brand{display:flex;align-items:center;gap:10px;overflow:hidden;min-width:0}
.sb-logo{width:32px;height:32px;border-radius:9px;background:#fff;display:flex;align-items:center;justify-content:center;flex-shrink:0;overflow:hidden;border:1px solid #ebe5de}
.sb-logo img{max-width:100%;max-height:100%}
.sb-brand-text{font-size:.92rem;font-weight:700;letter-spacing:-.025em;color:var(--sb-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0}
.sb-fb-dot{width:8px;height:8px;border-radius:50%;background:#cbd5e0;flex-shrink:0;transition:background 200ms,box-shadow 200ms;display:inline-block}
.sb-fb-dot.fb-ok{background:#22c55e;box-shadow:0 0 0 3px rgba(34,197,94,.18)}
.sb-fb-dot.fb-sync{background:#f59e0b;animation:fb-pulse .8s ease-in-out infinite}
.sb-fb-dot.fb-err{background:#ef4444;box-shadow:0 0 0 3px rgba(239,68,68,.2)}
.sidebar.collapsed .sb-fb-dot{display:none}
.sb-toggle{width:28px;height:28px;border:1px solid var(--sb-border);background:#fff;border-radius:7px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;color:var(--sb-muted);transition:all 120ms var(--ease-out-expo);flex-shrink:0;padding:0}
.sb-toggle:hover{background:#faf7f2;color:var(--sb-text);border-color:#d8d0c5}
.sb-toggle svg{width:14px;height:14px;transition:transform 220ms var(--ease-out-expo);pointer-events:none}
.sidebar.collapsed .sb-toggle svg{transform:rotate(180deg)}

.sb-nav{flex:1;padding:12px 10px;overflow-y:auto;display:flex;flex-direction:column;gap:1px}
.sb-item{display:flex;align-items:center;gap:11px;padding:8px 10px;border-radius:8px;font-size:.84rem;font-weight:500;color:var(--sb-muted);cursor:pointer;white-space:nowrap;text-decoration:none;transition:all 120ms var(--ease-out-expo);position:relative;border:none;background:none;font-family:inherit;width:100%;letter-spacing:-.01em;user-select:none}
.sb-item *{pointer-events:none}
.sb-item svg{width:17px;height:17px;flex-shrink:0;color:var(--sb-icon);transition:color 120ms;stroke-width:1.75;pointer-events:none}
.sb-item span{flex:1;text-align:left;min-width:0;overflow:hidden;text-overflow:ellipsis}
.sb-item:hover{background:#faf7f2;color:var(--sb-text)}
.sb-item:hover svg{color:var(--sb-text)}
.sb-item.sb-active{background:var(--sb-active-bg);color:var(--sb-text);font-weight:600}
.sb-item.sb-active svg{color:var(--sb-accent)}

.sb-badge{background:#ef4444;color:#fff;font-size:.6rem;font-weight:700;padding:1px 6px;border-radius:9px;margin-left:auto;flex:0 0 auto}

/* Expandable group / sub-list (Archived, Upcoming) */
.sb-group{display:contents}
.sb-item.sb-expandable .sb-chev{width:14px;height:14px;color:var(--sb-icon);margin-left:auto;transition:transform 200ms var(--ease-out-expo)}
.sb-group.open .sb-item.sb-expandable .sb-chev{transform:rotate(90deg);color:var(--sb-text)}
.sb-sublist{display:none;flex-direction:column;gap:1px;padding:2px 0 4px 26px;border-left:1px solid #f0ece5;margin-left:18px}
.sb-group.open .sb-sublist{display:flex}
.sb-sub-item{display:flex;align-items:center;justify-content:space-between;gap:6px;padding:6px 10px;border-radius:7px;font-size:.78rem;font-weight:500;color:var(--sb-muted);cursor:pointer;transition:all 120ms var(--ease-out-expo);position:relative;border:1px solid transparent;background:none;font-family:inherit;text-align:left;width:100%;letter-spacing:-.005em}
.sb-sub-item:hover{background:#faf7f2;color:var(--sb-text)}
.sb-sub-item.sb-sub-active{background:var(--sb-active-bg);color:var(--sb-text);font-weight:600}
.sb-sub-item .sb-sub-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sb-sub-item .sb-sub-acts{display:flex;gap:2px;opacity:0;transition:opacity 120ms}
.sb-sub-item:hover .sb-sub-acts,.sb-sub-item.sb-sub-active .sb-sub-acts{opacity:1}
.sb-sub-act{width:18px;height:18px;border-radius:4px;border:none;background:transparent;color:var(--sb-icon);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;padding:0}
.sb-sub-act:hover{background:#ede7df;color:var(--sb-text)}
.sb-sub-act svg{width:11px;height:11px;stroke-width:2}
.sb-sub-empty{padding:6px 10px;font-size:.74rem;color:#b3aba0;font-style:italic}
.sb-sub-add{display:flex;align-items:center;gap:8px;padding:6px 10px;border-radius:7px;font-size:.76rem;font-weight:600;color:var(--sb-accent);cursor:pointer;border:1px dashed #cdd6e9;background:none;font-family:inherit;width:100%;text-align:left;margin-top:4px;transition:all 120ms var(--ease-out-expo)}
.sb-sub-add:hover{background:#eff4ff;border-color:var(--sb-accent);border-style:solid}
.sb-sub-add svg{width:13px;height:13px}
/* Hide sublists when sidebar collapsed */
.sidebar.collapsed .sb-sublist{display:none!important}
.sidebar.collapsed .sb-item.sb-expandable .sb-chev{display:none}
/* On mobile: show sublist when drawer is open and group is open */
@media(max-width:900px){body.has-sb .sidebar.open .sb-group.open .sb-sublist{display:flex!important;flex-direction:column}}

.sb-section-label{font-size:.62rem;font-weight:700;letter-spacing:.12em;color:#b3aba0;text-transform:uppercase;padding:14px 10px 5px;margin-top:4px}

.sb-bottom{padding:10px;border-top:1px solid #f5f1ea}
.sb-user{display:flex;align-items:center;gap:10px;padding:6px 8px 10px;overflow:hidden;min-width:0}
.sb-user-avatar{width:32px;height:32px;border-radius:9px;background:linear-gradient(135deg,#0038A8,#0056C8);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.76rem;flex-shrink:0;letter-spacing:-.02em}
.sb-user-info{flex:1;min-width:0;overflow:hidden}
.sb-user-name{font-size:.81rem;font-weight:700;color:var(--sb-text);white-space:nowrap;text-overflow:ellipsis;overflow:hidden;letter-spacing:-.015em}
.sb-user-role{font-size:.68rem;color:var(--sb-muted);text-transform:capitalize}
.sb-logout{justify-content:flex-start}

/* COLLAPSED state */
.sidebar.collapsed .sb-brand-text,
.sidebar.collapsed .sb-section-label,
.sidebar.collapsed .sb-item span,
.sidebar.collapsed .sb-user-info,
.sidebar.collapsed .sb-badge{display:none}
.sidebar.collapsed .sb-top{padding:16px 8px 14px;justify-content:center}
.sidebar.collapsed .sb-brand{justify-content:center;width:100%}
.sidebar.collapsed .sb-toggle{position:absolute;right:-14px;top:18px;background:#fff;box-shadow:0 2px 8px rgba(0,0,0,.15);z-index:130;width:30px;height:30px;border:1px solid #ebe5de}
.sidebar.collapsed .sb-toggle:hover{background:#faf7f2;border-color:#1a1410;color:#1a1410}
.sidebar.collapsed .sb-toggle svg{pointer-events:none}
.sidebar.collapsed .sb-item{justify-content:center;padding:9px 0}
.sidebar.collapsed .sb-item svg{color:var(--sb-muted)}
.sidebar.collapsed .sb-item.sb-active{background:var(--sb-active-bg)}
.sidebar.collapsed .sb-item.sb-active svg{color:var(--sb-accent)}
.sidebar.collapsed .sb-section-label{padding:10px 0 6px;text-align:center;position:relative}
.sidebar.collapsed .sb-section-label::after{content:'';display:block;width:20px;height:1px;background:#ebe5de;margin:0 auto}
.sidebar.collapsed .sb-user{justify-content:center;padding:8px 0}
.sidebar.collapsed .sb-bottom{padding:8px 6px}

/* Tooltip on hover when collapsed */
.sidebar.collapsed .sb-item:hover::after{content:attr(data-label);position:absolute;left:calc(100% + 12px);top:50%;transform:translateY(-50%);background:#1a1410;color:#fff;padding:5px 10px;border-radius:6px;font-size:.74rem;font-weight:500;white-space:nowrap;z-index:200;box-shadow:0 6px 16px rgba(0,0,0,.22);pointer-events:none}

/* ── PUSH MAIN CONTENT RIGHT ────────────────────────────────────── */
body.has-sb .hdr,
body.has-sb #schedSwitcher,
body.has-sb #dayTabBar,
body.has-sb #page-top,
body.has-sb .toolbar,
body.has-sb .legend,
body.has-sb .main,
body.has-sb #reminderBannerContainer,
body.has-sb #salesViewPanel,
body.has-sb #archiveBanner{
  padding-left:var(--sb-w)!important;
  transition:padding-left 220ms var(--ease-out-expo);
}
body.has-sb.sb-collapsed .hdr,
body.has-sb.sb-collapsed #schedSwitcher,
body.has-sb.sb-collapsed #dayTabBar,
body.has-sb.sb-collapsed #page-top,
body.has-sb.sb-collapsed .toolbar,
body.has-sb.sb-collapsed .legend,
body.has-sb.sb-collapsed .main,
body.has-sb.sb-collapsed #reminderBannerContainer,
body.has-sb.sb-collapsed #salesViewPanel,
body.has-sb.sb-collapsed #archiveBanner{
  padding-left:var(--sb-w-collapsed)!important;
}

/* ── HIDE BUTTONS THAT MOVED TO SIDEBAR ──────────────────────────── */
body.has-sb .hdr-title{display:none!important}
body.has-sb #logoutBtn,body.has-sb .hbtn-deliv,body.has-sb .hbtn-dir,body.has-sb #salesViewBtn,body.has-sb .vac-notif-btn{display:none!important}
body.has-sb #fullSchedBtn,body.has-sb #meetingsBtn,body.has-sb #addEmpBtn,body.has-sb #vacAdminBtn{display:none!important}
body.has-sb .vac-req-btn,body.has-sb .vac-stat-req-btn{background:#fff!important;color:#1a1410!important;border:1px solid #cfc7bc!important}
body.has-sb .vac-req-btn:hover,body.has-sb .vac-stat-req-btn:hover{background:#f0ece5!important;border-color:#b5aca0!important}
body.has-sb #helpBtn{display:none!important}
/* Hide the schedule switcher bar — schedule selection now lives in the sidebar */
body.has-sb #schedSwitcher{display:none!important}
/* Hide the per-row "Options" dropdown */
body.has-sb .ea-dd{display:none!important}

/* ── TOOLBAR (filters + stats + search) — restored with neutral theme ── */
body.has-sb .toolbar{display:flex!important;background:#faf7f2!important;border-bottom:1px solid #ebe5de!important;padding:10px 24px!important;gap:8px;flex-wrap:wrap;align-items:center;justify-content:center}
body.has-sb .toolbar .stats-row{flex:1 1 100%;display:flex;gap:8px;flex-wrap:wrap;align-items:center;justify-content:center;grid-template-columns:none;margin-bottom:6px}
body.has-sb .stat{background:#fff!important;border:1px solid #ebe5de!important;border-radius:8px;padding:4px 11px;display:inline-flex;align-items:center;gap:5px;font-size:.72rem;font-weight:600;color:#7a7068!important;text-transform:none;letter-spacing:-.005em;box-shadow:none;min-height:0}
body.has-sb .stat b{font-size:.86rem!important;font-weight:700;color:#1a1410!important;letter-spacing:-.02em;margin-bottom:0;line-height:1}
body.has-sb .stat.spares-stat{background:#fff!important;border-color:#cfc7bc!important;flex-shrink:0;white-space:nowrap}
body.has-sb .stat.spares-stat b{color:#1a1410!important}
/* Group filter pills (All / FT City / PT City / OOT / ★ Spares) */
body.has-sb .toolbar button[onclick*="setGroupFilter"],body.has-sb .toolbar button.grp-filter{background:#fff!important;border:1px solid #ebe5de!important;color:#7a7068!important;border-radius:18px;padding:4px 12px;font-size:.74rem;font-weight:600;letter-spacing:-.005em}
body.has-sb .toolbar button[onclick*="setGroupFilter"]:hover,body.has-sb .toolbar button.grp-filter:hover{background:#faf7f2!important;color:#1a1410!important;border-color:#cfc7bc!important}
body.has-sb .toolbar button[onclick*="setGroupFilter"].on,body.has-sb .toolbar button.grp-filter.on{background:#1a1410!important;color:#fff!important;border-color:#1a1410!important}
/* Search wrap */
body.has-sb .search-wrap{display:inline-flex;align-items:center;position:relative}
body.has-sb .search-wrap input{background:#fff!important;border:1px solid #ebe5de!important;color:#1a1410!important;border-radius:8px}
body.has-sb .search-wrap input:focus{border-color:#0038A8!important;box-shadow:0 0 0 3px rgba(0,56,168,.09)!important}
/* Legend — restored, neutral */
body.has-sb .legend{display:flex!important;padding:6px 24px;background:#faf7f2!important;border-bottom:1px solid #ebe5de!important;gap:14px;justify-content:center}
body.has-sb .leg-ttl{color:#7a7068;font-size:.7rem;font-weight:600;letter-spacing:.02em;text-transform:uppercase}
body.has-sb .leg{color:#3a3530;font-size:.72rem;font-weight:500}
body.has-sb .leg-sep{color:#cfc7bc}
/* Publish button stays in toolbar but neutralized */
body.has-sb #publishBtn{background:#1a1410!important;color:#fff!important;border:1px solid #1a1410!important;border-radius:18px;padding:4px 14px;font-size:.74rem;font-weight:700;letter-spacing:-.005em}
body.has-sb #publishBtn:hover{background:#3a3530!important;border-color:#3a3530!important}
/* Finalize button — neutral default; dark filled when finalized */
body.has-sb #finalizeBtn{background:#faf7f2!important;border:1px solid #e0d9d0!important;color:#3a3530!important;border-radius:7px;padding:5px 12px;font-size:.74rem;font-weight:600;letter-spacing:-.005em;display:inline-flex;align-items:center;gap:0}
body.has-sb #finalizeBtn:hover{background:#1a1410!important;border-color:#1a1410!important;color:#fff!important}
body.has-sb #finalizeBtn.finalized{background:#1a1410!important;color:#fff!important;border-color:#1a1410!important}
body.has-sb #finalizeBtn.finalized:hover{background:#3a3530!important;border-color:#3a3530!important}

/* Suggestions, Route Overview, Push Store Report — neutralized */
body.has-sb #suggestBtn,body.has-sb #overviewBtn,body.has-sb #workloadSugBtn,body.has-sb #pushSurveysBtn{background:#faf7f2!important;border:1px solid #e0d9d0!important;color:#3a3530!important;font-weight:600!important;border-radius:7px;padding:5px 12px;font-size:.74rem;letter-spacing:-.005em;display:inline-flex;align-items:center;gap:5px}
body.has-sb #suggestBtn:hover,body.has-sb #overviewBtn:hover,body.has-sb #workloadSugBtn:hover,body.has-sb #pushSurveysBtn:hover{background:#1a1410!important;border-color:#1a1410!important;color:#fff!important}

/* ── TOOLBAR LAYOUT ORDER ────────────────────────────────────────── */
/* Published → Schedule Finalized → Suggestions → Route Overview → Push Store Report → Updates Needed */
body.has-sb .toolbar .stats-row{order:0}
body.has-sb #publishBtn{order:1;margin-right:6px}
body.has-sb #finalizeBtn{order:2}
body.has-sb #suggestBtn{order:3}
body.has-sb #overviewBtn{order:4}
body.has-sb #pushSurveysBtn{order:5}
body.has-sb #updFilterBtn{order:6}
body.has-sb #workloadSugBtn{order:7}
body.has-sb #cost-summary-sec{order:8}
body.has-sb .gf-group:not(#routeFilterGrp){order:9;margin-left:auto}
body.has-sb #dayFilters{order:10;display:flex!important;align-items:center;gap:5px}
body.has-sb .search-wrap{order:11}
/* dayFilters was display:none — force visible on desktop */
body.has-sb #dayFilters #routeFilterGrp{display:flex;gap:5px;flex-wrap:wrap}
/* The settings button itself is hidden; the dropdown becomes a centered modal */
body.has-sb #settingsWrap>button{display:none!important}
body.has-sb #settingsWrap{position:static!important;display:block}
body.has-sb #settingsDD{position:fixed!important;left:50%!important;top:50%!important;bottom:auto!important;right:auto!important;transform:translate(-50%,-50%) scale(.96);opacity:0;display:block!important;transition:transform 200ms var(--ease-out-expo),opacity 200ms var(--ease-out-expo);pointer-events:none;min-width:300px;max-width:380px;width:calc(100vw - 40px);max-height:80vh;overflow-y:auto;background:#fff!important;border:1px solid #ebe5de!important;border-radius:16px!important;box-shadow:0 32px 80px rgba(0,0,0,.32),0 8px 24px rgba(0,0,0,.12)!important;padding:18px!important;z-index:9500}
body.has-sb #settingsDD.open{transform:translate(-50%,-50%) scale(1);opacity:1;pointer-events:auto;display:block!important}
body.has-sb #settingsDD::before{content:'Settings';display:block;font-size:.95rem;font-weight:700;letter-spacing:-.025em;color:#1a1410;padding:4px 10px 12px;border-bottom:1px solid #f0ece5;margin-bottom:8px}
body.has-sb .settings-mi{border-radius:8px;padding:10px 12px;color:#3a3530;font-size:.84rem;font-weight:500;display:flex;align-items:center;gap:11px;letter-spacing:-.01em}
body.has-sb .settings-mi:hover{background:#faf7f2;color:#1a1410}
body.has-sb .settings-mi .ic{width:16px;height:16px;color:#9a9289;margin-right:0}
body.has-sb .settings-mi:hover .ic{color:#1a1410}
body.has-sb .settings-sep{background:#f0ece5;margin:8px 4px}
/* Settings backdrop — separate element added via JS */
.settings-backdrop{position:fixed;inset:0;background:rgba(20,15,10,.4);z-index:9400;display:none;opacity:0;transition:opacity 180ms var(--ease-out-expo)}
.settings-backdrop.open{display:block;opacity:1}

/* ── HEADER — hidden entirely; user info + status now live in sidebar ── */
body.has-sb .hdr{display:none!important}
body.has-sb .hdr .hsearch{background:#faf7f2!important;border:1px solid #ebe5de!important;color:var(--sb-text)!important;border-radius:8px;padding:6px 13px}
body.has-sb .hdr .hsearch::placeholder{color:#b3aba0}
body.has-sb .hdr .hsearch:focus{background:#fff!important;border-color:var(--sb-accent)!important;box-shadow:0 0 0 3px rgba(0,56,168,.08)}
body.has-sb .hdr-right{margin-left:auto;flex:none}
body.has-sb #savedFlash{color:#16a34a;font-size:.72rem;font-weight:600}
body.has-sb #loginBadge{color:var(--sb-muted)!important;font-size:.78rem!important;font-weight:600;letter-spacing:-.01em}
body.has-sb .fb-dot{width:8px;height:8px}

/* Settings button when sidebar is in use — keep visible, restyled */
body.has-sb .settings-wrap .hbtn{background:#faf7f2!important;border:1px solid #ebe5de!important;color:var(--sb-muted)!important}
body.has-sb .settings-wrap .hbtn:hover{background:#f0ece5!important;color:var(--sb-text)!important}

/* Schedule switcher restyled — light theme */
body.has-sb .sched-switcher-wrap{background:#faf7f2;border-bottom:1px solid var(--sb-border);padding:6px 24px}
body.has-sb .ss-pill{background:#fff;border-color:#ebe5de;color:var(--sb-muted);font-weight:600;border-radius:18px;padding:4px 12px}
body.has-sb .ss-pill:hover{background:#f5f1ea;color:var(--sb-text)}
body.has-sb .ss-pill.ss-active{background:var(--sb-text);border-color:var(--sb-text);color:#fff}
body.has-sb .ss-active .ss-edit{color:rgba(255,255,255,.7)}
body.has-sb .ss-active .ss-edit:hover{color:#fde68a}
body.has-sb .ss-add{color:var(--sb-muted);border-color:#d8d0c5}
body.has-sb .ss-add:hover{color:var(--sb-accent);border-color:var(--sb-accent)}
body.has-sb .ss-lbl{color:var(--sb-muted)}
body.has-sb .ss-sep{background:#ebe5de}
body.has-sb .ss-archive-btn{background:#fff;border-color:#ebe5de;color:var(--sb-muted)}
body.has-sb .ss-archive-btn:hover,body.has-sb .ss-archive-btn.open{background:#f0ece5;color:var(--sb-text)}
body.has-sb .ss-archive-dd{background:#fff;border-color:#ebe5de}
body.has-sb .ss-archive-item{color:var(--sb-muted)}
body.has-sb .ss-archive-item:hover{background:#faf7f2;color:var(--sb-text)}

/* Day tab bar — clean light style */
body.has-sb #dayTabBar{background:#faf7f2;border-bottom:1px solid var(--sb-border)}

/* Stale dashboard-card rules — superseded by the toolbar block above */
body.has-sb .stat span{margin-left:0!important}

/* Toolbar action buttons — right side */
body.has-sb .toolbar #empSearch,body.has-sb .toolbar #addEmpBtn{order:99}
body.has-sb .toolbar #addEmpBtn{background:var(--sb-text);color:#fff;border:none;border-radius:8px;font-weight:600;padding:7px 14px;font-size:.78rem}
body.has-sb .toolbar #addEmpBtn:hover{background:#000;transform:translateY(-1px)}
body.has-sb .toolbar #empSearch{flex:0 0 220px}

/* ── MOBILE SIDEBAR — slide-over drawer ──────────────────────────── */
.sb-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:115;display:none;opacity:0;transition:opacity 140ms;will-change:opacity;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
.sb-backdrop.open{display:block;opacity:1}
.sb-mobile-trigger{flex-shrink:0;width:34px;height:34px;border-radius:8px;background:transparent;border:none;color:var(--sb-text,#1a1410);display:none;align-items:center;justify-content:center;cursor:pointer;padding:0;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
.sb-mobile-trigger svg{width:20px;height:20px;pointer-events:none}

@media(max-width:900px){
  body.has-sb .hdr,body.has-sb #schedSwitcher,body.has-sb #page-top,body.has-sb .toolbar,body.has-sb .legend,body.has-sb .main,body.has-sb #reminderBannerContainer,body.has-sb #salesViewPanel,body.has-sb #archiveBanner{padding-left:0!important}
  body.has-sb.sb-collapsed .hdr,body.has-sb.sb-collapsed #schedSwitcher,body.has-sb.sb-collapsed #page-top,body.has-sb.sb-collapsed .toolbar,body.has-sb.sb-collapsed .legend,body.has-sb.sb-collapsed .main,body.has-sb.sb-collapsed #reminderBannerContainer,body.has-sb.sb-collapsed #salesViewPanel,body.has-sb.sb-collapsed #archiveBanner{padding-left:0!important}
  /* Tab bar: offset right to clear the fixed hamburger button (42px) */
  body.has-sb #dayTabBar,body.has-sb.sb-collapsed #dayTabBar{padding-left:42px!important}
  /* Hamburger trigger: fixed-position, aligned with the tab bar row */
  body.has-sb .sb-mobile-trigger{position:fixed;top:var(--hdr-only-h,52px);left:0;z-index:600;width:42px;height:44px;display:flex!important}
  /* On mobile: ALWAYS show the sidebar in full-width drawer mode (never icons-only) */
  /* Override transition — transform-only, no width animation, faster */
  body.has-sb .sidebar{transform:translateX(-100%);width:var(--sb-w)!important;transition:transform 160ms cubic-bezier(0.25,1,0.5,1)}
  body.has-sb .sidebar.collapsed{width:var(--sb-w)!important}
  body.has-sb .sidebar.collapsed .sb-brand-text,
  body.has-sb .sidebar.collapsed .sb-section-label,
  body.has-sb .sidebar.collapsed .sb-item span,
  body.has-sb .sidebar.collapsed .sb-user-info,
  body.has-sb .sidebar.collapsed .sb-badge,
  body.has-sb .sidebar.collapsed .sb-fb-dot,
  body.has-sb .sidebar.collapsed .sb-logout span{display:inline!important}
  body.has-sb .sidebar.collapsed .sb-item span{display:block!important;flex:1;text-align:left}
  body.has-sb .sidebar.collapsed .sb-item{justify-content:flex-start!important;padding:8px 10px!important;gap:11px!important}
  body.has-sb .sidebar.collapsed .sb-item.sb-active{background:var(--sb-active-bg)}
  body.has-sb .sidebar.collapsed .sb-item svg{color:var(--sb-icon)}
  body.has-sb .sidebar.collapsed .sb-item.sb-active svg{color:var(--sb-accent)}
  body.has-sb .sidebar.collapsed .sb-top{padding:16px 14px 14px 16px!important;justify-content:space-between!important}
  body.has-sb .sidebar.collapsed .sb-brand{justify-content:flex-start!important;width:auto!important}
  body.has-sb .sidebar.collapsed .sb-toggle{position:static!important;top:auto;right:auto;background:#fff;box-shadow:none;width:28px;height:28px}
  body.has-sb .sidebar.collapsed .sb-toggle svg{transform:none}
  body.has-sb .sidebar.collapsed .sb-section-label{padding:14px 10px 5px!important;text-align:left!important}
  body.has-sb .sidebar.collapsed .sb-section-label::after{content:none}
  body.has-sb .sidebar.collapsed .sb-user{justify-content:flex-start!important;padding:6px 8px 10px!important}
  body.has-sb .sidebar.collapsed .sb-bottom{padding:10px!important}
  body.has-sb .sidebar.collapsed .sb-item:hover::after{display:none}
  body.has-sb .sidebar.open{transform:translateX(0);box-shadow:8px 0 32px rgba(0,0,0,.2)}
  body.has-sb .sb-mobile-trigger{display:flex!important}
  /* Chevron toggle inside open sidebar on mobile — make it prominent */
  body.has-sb .sidebar.open .sb-toggle{display:flex!important;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
  body.has-sb .sidebar.open .sb-toggle svg{pointer-events:none}
  body.has-sb .hdr{padding-left:58px!important}
  body.has-sb .sched-switcher-wrap{padding:6px 12px}
  /* No tooltips on mobile */
  body.has-sb .sidebar .sb-item:hover::after{display:none}
}


/* ── MOBILE ──────────────────────────────────────────────────────────── */
@media(max-width:768px){
  .toolbar{max-width:none;background:#faf7f2;padding:7px 10px}
  .legend,.main{max-width:none}
  .hdr{padding:9px 14px}
  .sched-switcher-wrap{padding:5px 10px}
  .login-box{max-width:calc(100vw - 48px);padding:34px 28px}
  .mhd{padding:13px 16px}
  .mbd{padding:14px 16px}
  .mft{padding:10px 16px}
  .emp-card{border-radius:12px}
}
@media(max-width:480px){
  .login-box{max-width:calc(100vw - 24px);padding:28px 22px}
  .hdr{padding:8px 12px}
}

/* Visible build tag (login box + sidebar footer) - lets anyone read a device's running version off the screen */
.app-ver-tag{margin-top:14px;text-align:center;font-size:.62rem;color:#94a3b8;letter-spacing:.05em;user-select:all}
.sb-bottom .app-ver-tag{margin-top:8px}

/* Sync stack: status dot + "Updated at" + Get-latest button, stacked under the dot in the header */
.sync-stack{display:flex;flex-direction:column;align-items:center;gap:3px;margin-right:6px}
.sync-upd{font-size:.58rem;color:#64748b;font-weight:700;white-space:nowrap;line-height:1;letter-spacing:.02em}
.sync-upd:empty{display:none}
.sync-latest-btn{padding:2px 9px;font-size:.6rem;font-weight:800;color:#0038A8;background:#eff6ff;border:1px solid #bfdbfe;border-radius:999px;cursor:pointer;line-height:1.5;white-space:nowrap;transition:background .12s,color .12s}
.sync-latest-btn:hover{background:#0038A8;color:#fff;border-color:#0038A8}
.sync-latest-btn:disabled{opacity:.6;cursor:default}
@media (max-width:700px){.sync-upd{font-size:.54rem}.sync-latest-btn{font-size:.56rem;padding:2px 7px}}

/* Sidebar "Get Latest Update" button — prominent enough that mobile users can actually find it */
.sb-item.sb-get-latest{color:#0038A8;font-weight:700}
.sb-item.sb-get-latest:hover{background:rgba(0,56,168,.08)}
.sb-item.sb-get-latest svg{color:#0038A8}

/* ── Vacation Tracker (features/vacation-tracker.js) ───────────────────────── */
.vt-range{font-weight:700}
.vt-range:hover{text-decoration:underline}
.vt-search-wrap{margin-bottom:8px;display:flex;align-items:center;gap:8px}
.vt-search{width:100%;max-width:280px;font-size:.74rem;padding:6px 10px;border:1px solid #cbd5e1;border-radius:8px;background:#fff;color:#1e293b;outline:none}
.vt-search:focus{border-color:#94a3b8;box-shadow:0 0 0 3px rgba(148,163,184,.18)}
.vt-nav{font-size:.72rem;padding:3px 8px;border:1px solid #cbd5e1;border-radius:6px;background:#fff;color:#334155;cursor:pointer;font-weight:600;line-height:1.2}
.vt-nav:hover{background:#f1f5f9}
.vt-scroll{overflow:auto;max-height:calc(100vh - 120px);border:1px solid #e2e8f0;border-radius:8px}
.vt-table{border-collapse:separate;border-spacing:0;font-size:.7rem;white-space:nowrap}
.vt-table th,.vt-table td{border-right:1px solid #eef0f4;border-bottom:1px solid #eef0f4;text-align:center;padding:0}
.vt-table thead th,.vt-table thead td{position:sticky;z-index:3;background:#f8fafc;font-weight:700;color:#475569}
/* stacked sticky header rows: week label / date / weekday / vacation tally / spares tally all freeze
   so the date and spare counts stay visible while scrolling employees */
.vt-r1 th,.vt-r1 td{top:0;height:30px}
.vt-r2 th,.vt-r2 td{top:30px;height:16px}
.vt-r3 th,.vt-r3 td{top:46px;height:14px}
.vt-r4 th,.vt-r4 td{top:60px;height:18px}
.vt-r5 th,.vt-r5 td{top:78px;height:18px}
.vt-r6 th,.vt-r6 td{top:96px;height:18px}
.vt-wkstart{border-left:2px solid #cbd5e1!important}
.vt-name{position:sticky;left:0;z-index:2;background:#fff;text-align:left!important;padding:3px 8px!important;font-weight:600;color:#1e293b;min-width:140px;max-width:160px;overflow:hidden;text-overflow:ellipsis;border-right:2px solid #e2e8f0}
.vt-table thead .vt-name{z-index:4;background:#f8fafc}
.vt-corner{min-width:140px}
.vt-wklbl{background:#f1f5f9!important;border-bottom:2px solid #e2e8f0;border-left:2px solid #cbd5e1;padding:2px 0!important}
.vt-wk-num{font-size:.68rem;font-weight:800;color:#334155;line-height:1.2}
.vt-wk-mon{font-size:.56rem;font-weight:700;color:#94a3b8;text-transform:uppercase;letter-spacing:.3px;line-height:1.2}
.vt-dt{font-size:.64rem;color:#94a3b8;min-width:22px}
.vt-dow{font-size:.6rem;color:#cbd5e1;font-weight:600}
.vt-wknd{background:#f8fafc}
.vt-cell{width:24px;height:22px;font-size:.62rem;line-height:1}
.vt-cell:hover{outline:2px solid #c7d2fe;outline-offset:-2px}
.vt-hasnote{position:relative}
.vt-hasnote::after{content:"";position:absolute;top:0;right:0;border-top:6px solid #f59e0b;border-left:6px solid transparent}
.vt-note-ta{width:100%;font-size:.72rem;padding:4px 6px;border:1px solid #cbd5e1;border-radius:6px;resize:vertical;font-family:inherit;box-sizing:border-box;color:#1e293b}
.vt-note-ta:focus{outline:none;border-color:#94a3b8}
.vt-cell-inner{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px}
.vt-mk{font-weight:800;font-size:.72rem}
.vt-A{background:#dcfce7}.vt-A .vt-mk{color:#15803d}
.vt-P{background:#fef3c7}.vt-P .vt-mk{color:#b45309}
.vt-R{background:#fee2e2}.vt-R .vt-mk{color:#b91c1c}
.vt-badge{display:inline-block;font-size:.5rem;font-weight:800;letter-spacing:.2px;padding:0 2px;border-radius:3px;margin-top:1px}
.vt-stt{background:#0ea5e9;color:#fff}
.vt-plus{background:#7c3aed;color:#fff}
.vt-tally th,.vt-tally td{background:#f8fafc;font-weight:700;border-bottom:2px solid #e2e8f0}
.vt-tally .vt-name{font-size:.64rem;color:#64748b;font-weight:700}
.vt-tnum{font-size:.64rem;color:#94a3b8}
.vt-thot{color:#b45309;font-weight:800}
.vt-tpend{color:#b45309;font-weight:800}
.vt-tspare{color:#0369a1}
/* approved tally row = green, pending tally row = yellow */
.vt-trow-appr th,.vt-trow-appr td{background:#dcfce7!important;color:#15803d}
.vt-trow-appr .vt-name{color:#15803d}
.vt-trow-pend th,.vt-trow-pend td{background:#fef9c3!important;color:#b45309}
.vt-trow-pend .vt-name{color:#b45309}
/* alternating employee rows */
.vt-rstripe .vt-name{background:#f4f6f9}
.vt-rstripe .vt-cell:not(.vt-A):not(.vt-P):not(.vt-R):not(.vt-wknd){background:#f4f6f9}
.vt-rstripe .vt-cell.vt-wknd:not(.vt-A):not(.vt-P):not(.vt-R){background:#e9eef4}
/* stat weeks — red week-label header + red stat-day date */
.vt-stat-week{background:#fef2f2!important;border-left-color:#fca5a5}
.vt-stat-week .vt-wk-num{color:#dc2626}
.vt-stat-week .vt-wk-mon{color:#f87171}
.vt-statday{color:#dc2626!important;font-weight:800;background:#fef2f2}
.vt-legend{font-size:.66rem;color:#94a3b8;margin-top:10px;line-height:1.6}
.vt-legend b{color:#475569}
.vt-emp-head{font-size:.78rem;font-weight:800;color:#1e293b;margin-bottom:6px}
.vt-empty{font-size:.72rem;color:#94a3b8;padding:8px 0}
.vt-up{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:5px}
.vt-up li{display:flex;align-items:center;gap:8px;font-size:.72rem;color:#334155}
.vt-up-a{background:#dcfce7;color:#15803d;font-weight:700;font-size:.6rem;padding:1px 6px;border-radius:5px}
.vt-up-p{background:#fef3c7;color:#b45309;font-weight:700;font-size:.6rem;padding:1px 6px;border-radius:5px}
.vt-pop{position:fixed;z-index:9000;background:#fff;border:1px solid #cbd5e1;border-radius:10px;box-shadow:0 12px 32px rgba(0,0,0,.18);padding:8px;min-width:240px}
.vt-pop-hd{font-size:.7rem;font-weight:800;color:#1e293b;display:flex;justify-content:space-between;gap:8px;margin-bottom:6px}
.vt-pop-hd span{font-weight:500;color:#94a3b8}
.vt-pop-row{display:flex;gap:4px;margin-bottom:4px}
.vt-pop-b{flex:1;font-size:.66rem;font-weight:700;padding:4px 6px;border:1px solid #cbd5e1;border-radius:6px;background:#fff;cursor:pointer;white-space:nowrap}
.vt-pop-b:hover{filter:brightness(.97)}
/* ── Vacation Tracker — mobile: keep everything inside the viewport ─────────── */
@media (max-width:760px){
  #vacTrackerOv .panel{max-width:100vw!important;width:100vw!important;left:0;right:0}
  #vacTrackerOv .panel-hd{padding:10px 10px;flex-wrap:wrap;gap:8px}
  #vacTrackerOv .panel-hd h2{font-size:.92rem;flex:1;min-width:0}
  #vacTrackerOv .panel-hd>div{width:100%;justify-content:space-between;gap:4px}
  #vacTrackerOv #vtRangeWrap{flex:1;min-width:0}
  #vacTrackerOv #vtRangeLabel{min-width:0}
  #vacTrackerOv .vt-nav{padding:3px 7px;font-size:.7rem}
  #vacTrackerOv .panel-bd{padding:10px 8px}
  #vacTrackerOv .vt-scroll{max-height:calc(100vh - 150px);max-width:100%}
  #vacTrackerOv .vt-search-wrap{flex-wrap:wrap}
  #vacTrackerOv .vt-search{max-width:none;flex:1 1 160px}
  #vacTrackerOv .vt-name{min-width:104px;max-width:120px;padding:3px 6px!important}
  #vacTrackerOv .vt-corner{min-width:104px}
  #vacTrackerOv .vt-pop{min-width:210px;max-width:calc(100vw - 16px)}
}
