/* =========================================================================
   styleWellnessScheduler.css -- 1 Oct 2026 (Chris)
   The Scheduler page (scheduler/wellness-scheduler.php, slug scheduler-spa -- replaced the old month grid 1 Oct 2026).
   Each day is a card like the home page phone (css/styleHomePage.css .bsm-phone-cal-card):
   white card, navy border, strong shadow, date block top-left, coloured left-border rows.
   One day card on every screen (full page width, phone-style stacked layout), flick left/right, + month overview.
   --bsm3-* variables only (css/brand.css). Pop-ups, plan detail and Monitor keep the styles
   css/styleBodyNew.css already has for .page-slug-scheduler-spa.
   ========================================================================= */

.page-slug-scheduler-spa .sday-wrap { width: 100%; max-width: var(--bsm3-width-extra-wide); margin: 0 auto; padding: var(--bsm3-space-lg); box-sizing: border-box; font-family: var(--bsm3-font-body); color: var(--bsm3-color-ink-navy-1E1B48-use-on-primary-text); }
.page-slug-scheduler-spa .sday-hidden { display: none; }
.page-slug-scheduler-spa.sday-noscroll, body.sday-noscroll { overflow: hidden; }
.page-slug-scheduler-spa .sday-login,
.page-slug-scheduler-spa .sday-loading,
.page-slug-scheduler-spa .sday-error { text-align: center; padding: var(--bsm3-space-xl); font-size: var(--bsm3-text-medium-14px-use-on-text); color: var(--bsm3-color-ink3-lavender-gray-9D9BBF-use-on-secondary-text); }
.page-slug-scheduler-spa .sday-error { color: var(--bsm3-color-status-severe-red-C0392B-use-on-status-severe); }

/* ---------- top bar ---------- */
.page-slug-scheduler-spa .sday-top { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--bsm3-space-md); margin-bottom: var(--bsm3-space-lg); }
.page-slug-scheduler-spa .sday-title { margin: 0; font-family: var(--bsm3-font-heading); font-size: var(--bsm3-size-page-title-24px-use-on-h1); font-weight: var(--bsm3-weight-bold-700-use-on-h1); color: var(--bsm3-color-ink-navy-1E1B48-use-on-primary-text); }
.page-slug-scheduler-spa .sday-top-tools { display: flex; align-items: center; gap: var(--bsm3-space-sm); flex-wrap: wrap; }
.page-slug-scheduler-spa .sday-range { min-width: 140px; text-align: center; font-size: var(--bsm3-text-medium-14px-use-on-text); font-weight: var(--bsm3-weight-semibold-600-use-on-h2-h3-h4); }

/* ---------- buttons ---------- */
.page-slug-scheduler-spa .sday-btn { font-family: var(--bsm3-font-body); font-size: var(--bsm3-text-medium-14px-use-on-text); font-weight: var(--bsm3-weight-medium-500-use-on-buttons-links); border-radius: var(--bsm3-radius-pills); padding: var(--bsm3-pill-chip-padding); cursor: pointer; border: var(--bsm3-border-default) solid var(--bsm3-color-divider-lavender-gray-C8C6E0-use-on-dividers); background: var(--bsm3-color-white-FFFFFF-use-on-bg-day-general); color: var(--bsm3-color-ink-navy-1E1B48-use-on-primary-text); }
.page-slug-scheduler-spa .sday-btn:hover { border-color: var(--bsm3-color-sleep-core-purple-7C3AED-use-on-sleep-pillar-accent-icon); }
.page-slug-scheduler-spa .sday-btn.sday-on { background: var(--bsm3-color-ink-navy-1E1B48-use-on-primary-text); color: var(--bsm3-color-white-FFFFFF-use-on-bg-day-general); border-color: var(--bsm3-color-ink-navy-1E1B48-use-on-border); }
.page-slug-scheduler-spa .sday-btn-main { background: var(--bsm3-color-sleep-core-purple-7C3AED-use-on-sleep-pillar-accent-icon); color: var(--bsm3-color-white-FFFFFF-use-on-bg-day-general); border-color: var(--bsm3-color-sleep-core-purple-7C3AED-use-on-sleep-pillar-accent-icon); }
.page-slug-scheduler-spa .sday-btn-wide { display: block; width: 100%; margin-top: var(--bsm3-space-sm); text-align: center; box-sizing: border-box; }
.page-slug-scheduler-spa .sday-btn-sub { display: block; font-size: var(--bsm3-text-small-12px-use-on-text); font-weight: var(--bsm3-weight-regular-400-use-on-h5-or-text); }
.page-slug-scheduler-spa .sday-link { border: 0; background: var(--bsm3-transparent); padding: 0; cursor: pointer; font-size: var(--bsm3-text-small-12px-use-on-text); font-weight: var(--bsm3-weight-semibold-600-use-on-h2-h3-h4); color: var(--bsm3-color-sleep-core-purple-7C3AED-use-on-sleep-pillar-accent-icon); text-decoration: underline; }

/* ---------- "nights need you to choose" alert ---------- */
.page-slug-scheduler-spa .sday-alert { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--bsm3-space-sm); margin-bottom: var(--bsm3-space-lg); padding: var(--bsm3-status-card-padding); border-radius: var(--bsm3-radius-status-cards); background: var(--bsm3-color-attention-pink-FEE2E2-use-on-status-alert-background); border-left: var(--bsm3-border-thick) solid var(--bsm3-color-status-severe-red-C0392B-use-on-status-severe); font-size: var(--bsm3-text-medium-14px-use-on-text); font-weight: var(--bsm3-weight-semibold-600-use-on-h2-h3-h4); }
.page-slug-scheduler-spa .sday-alert.sday-hidden { display: none; }
.page-slug-scheduler-spa .sday-btn-alert { background: var(--bsm3-color-status-severe-red-C0392B-use-on-status-severe); color: var(--bsm3-color-white-FFFFFF-use-on-bg-day-general); border-color: var(--bsm3-color-status-severe-red-C0392B-use-on-status-severe); }

/* ---------- the swipe track: one day at a time ---------- */
.page-slug-scheduler-spa .sday-track { display: flex; column-gap: var(--bsm3-space-md); overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth; -webkit-overflow-scrolling: touch; padding: var(--bsm3-space-xs) var(--bsm3-space-xs) var(--bsm3-space-xl); align-items: flex-start; scrollbar-width: thin; }
.page-slug-scheduler-spa .sday-track:focus { outline: none; }
.page-slug-scheduler-spa .sday-day { flex: 0 0 100%; box-sizing: border-box; scroll-snap-align: start; }
/* 1 Oct 2026 (Chris): the single day view on every screen size, full page width. On desktop the card
   keeps the phone's tall, stacked layout (the page just scrolls down further). Flick left/right:
   touch swipe, trackpad swipe, mouse drag, or the arrow keys (js/wellnessScheduler.js). */
.page-slug-scheduler-spa .sday-track { cursor: grab; }
.page-slug-scheduler-spa .sday-track.sday-dragging { cursor: grabbing; scroll-snap-type: none; scroll-behavior: auto; user-select: none; }

/* ---------- one day card (the home page phone card) ---------- */
.page-slug-scheduler-spa .sday-day { background: var(--bsm3-color-white-FFFFFF-use-on-bg-day-general); border: var(--bsm3-border-thin) solid var(--bsm3-color-ink-navy-1E1B48-use-on-border); border-radius: var(--bsm3-radius-primary-cards); box-shadow: var(--bsm3-elevation-medium); padding: var(--bsm3-space-lg); }
.page-slug-scheduler-spa .sday-day.sday-today { border-width: var(--bsm3-border-default); border-color: var(--bsm3-color-sleep-core-purple-7C3AED-use-on-sleep-pillar-accent-icon); box-shadow: var(--bsm3-elevation-strong); }
.page-slug-scheduler-spa .sday-day.sday-past { opacity: var(--bsm3-opacity-high); }
.page-slug-scheduler-spa .sday-day.sday-day-clash { border-color: var(--bsm3-color-status-severe-red-C0392B-use-on-status-severe); }

.page-slug-scheduler-spa .sday-day-head { display: flex; justify-content: space-between; align-items: flex-start; gap: var(--bsm3-space-sm); margin-bottom: var(--bsm3-space-md); }
.page-slug-scheduler-spa .sday-day-when { display: flex; flex-direction: column; }
.page-slug-scheduler-spa .sday-dow { font-size: var(--bsm3-text-small-12px-use-on-text); font-weight: var(--bsm3-weight-bold-700-use-on-h1); text-transform: capitalize; color: var(--bsm3-color-ink-navy-1E1B48-use-on-primary-text); }
.page-slug-scheduler-spa .sday-dnum { font-size: var(--bsm3-size-page-title-24px-use-on-h1); font-weight: var(--bsm3-weight-bold-700-use-on-h1); line-height: 1; color: var(--bsm3-color-sleep-core-purple-7C3AED-use-on-sleep-pillar-accent-icon); }
.page-slug-scheduler-spa .sday-mon { font-size: var(--bsm3-text-small-12px-use-on-text); font-weight: var(--bsm3-weight-bold-700-use-on-h1); color: var(--bsm3-color-sleep-core-purple-7C3AED-use-on-sleep-pillar-accent-icon); }
.page-slug-scheduler-spa .sday-day-acts { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: var(--bsm3-space-xs); }
.page-slug-scheduler-spa .sday-act { width: 32px; height: 32px; border-radius: var(--bsm3-radius-pills); border: var(--bsm3-border-thin) solid var(--bsm3-color-divider-lavender-gray-C8C6E0-use-on-dividers); background: var(--bsm3-color-surface-pale-lavender-F1F0F9-use-on-card-background); cursor: pointer; font-size: var(--bsm3-text-medium-14px-use-on-text); padding: 0; display: inline-flex; align-items: center; justify-content: center; color: var(--bsm3-color-ink-navy-1E1B48-use-on-primary-text); }
.page-slug-scheduler-spa .sday-act:hover { border-color: var(--bsm3-color-sleep-core-purple-7C3AED-use-on-sleep-pillar-accent-icon); }
.page-slug-scheduler-spa .sday-act.sday-act-done { background: var(--bsm3-color-status-normal-green-2E9E6C-use-on-status-normal); color: var(--bsm3-color-white-FFFFFF-use-on-bg-day-general); border-color: var(--bsm3-color-status-normal-green-2E9E6C-use-on-status-normal); }

/* ---------- tonight's sleep (top of the card) ---------- */
.page-slug-scheduler-spa .sday-sleep { display: block; width: 100%; box-sizing: border-box; text-align: left; font-family: var(--bsm3-font-body); margin-bottom: var(--bsm3-space-md); padding: var(--bsm3-status-card-padding); border-radius: var(--bsm3-radius-status-cards); border: 0; border-left: var(--bsm3-border-thick) solid var(--bsm3-color-sleep-core-purple-7C3AED-use-on-sleep-pillar-accent-icon); background: var(--bsm3-color-sleep-light-lavender-EDE9FE-use-on-sleep-pillar-background); color: var(--bsm3-color-ink-navy-1E1B48-use-on-primary-text); }
.page-slug-scheduler-spa .sday-sleep-shift { border-left-color: var(--bsm3-color-mind-deep-navy-blue-1E40AF-use-on-mind-pillar-strong); background: var(--bsm3-color-mind-light-sky-blue-DBEAFE-use-on-mind-pillar-background); }
.page-slug-scheduler-spa .sday-sleep-jetlag { border-left-color: var(--bsm3-color-status-high-orange-F2994A-use-on-status-high); background: var(--bsm3-color-caution-cream-FEF3C7-use-on-status-warning-background); }
.page-slug-scheduler-spa .sday-sleep-reset { border-left-color: var(--bsm3-color-sleep-core-purple-7C3AED-use-on-sleep-pillar-accent-icon); }
.page-slug-scheduler-spa .sday-sleep-usual { border-left-color: var(--bsm3-color-sleep-outline-light-purple-C4B5FD-use-on-sleep-pillar-outline); background: var(--bsm3-color-surface-pale-lavender-F1F0F9-use-on-card-background); }
.page-slug-scheduler-spa .sday-sleep-clash { cursor: pointer; border-left-color: var(--bsm3-color-status-severe-red-C0392B-use-on-status-severe); background: var(--bsm3-color-attention-pink-FEE2E2-use-on-status-alert-background); }
.page-slug-scheduler-spa .sday-sleep-head { display: flex; justify-content: space-between; align-items: center; gap: var(--bsm3-space-xs); font-size: var(--bsm3-text-small-12px-use-on-text); font-weight: var(--bsm3-weight-bold-700-use-on-h1); margin-bottom: var(--bsm3-space-xs); }
.page-slug-scheduler-spa .sday-sleep-clash .sday-sleep-head { color: var(--bsm3-color-status-severe-red-C0392B-use-on-status-severe); }
.page-slug-scheduler-spa .sday-sleep-line { display: flex; justify-content: space-between; gap: var(--bsm3-space-sm); font-size: var(--bsm3-text-small-12px-use-on-text); line-height: 1.5; }
.page-slug-scheduler-spa .sday-sleep-label { font-weight: var(--bsm3-weight-medium-500-use-on-buttons-links); }
.page-slug-scheduler-spa .sday-sleep-time { font-weight: var(--bsm3-weight-bold-700-use-on-h1); white-space: nowrap; }
.page-slug-scheduler-spa .sday-sleep-src { display: block; margin-top: var(--bsm3-space-xs); font-size: var(--bsm3-text-tiny-10px-use-on-text); font-weight: var(--bsm3-weight-medium-500-use-on-buttons-links); color: var(--bsm3-sleep-text-muted-day); text-decoration: none; }
.page-slug-scheduler-spa a.sday-sleep-src:hover { text-decoration: underline; }
.page-slug-scheduler-spa .sday-sleep-tap { display: block; font-size: var(--bsm3-text-small-12px-use-on-text); margin-top: var(--bsm3-space-xs); }

/* ---------- Body / Mind / Sleep / AI Day pills ---------- */
.page-slug-scheduler-spa .sday-pills { display: flex; flex-wrap: wrap; gap: var(--bsm3-space-xs); margin-bottom: var(--bsm3-space-md); }
.page-slug-scheduler-spa .sday-pill { border-radius: var(--bsm3-radius-pills); padding: var(--bsm3-pill-chip-padding); font-size: var(--bsm3-text-small-12px-use-on-text); font-weight: var(--bsm3-weight-bold-700-use-on-h1); cursor: pointer; border: var(--bsm3-border-thin) solid var(--bsm3-transparent); }
.page-slug-scheduler-spa .sday-pill-body { background: var(--bsm3-color-body-light-mint-DCFCE7-use-on-body-pillar-background); color: var(--bsm3-color-body-deep-forest-green-166534-use-on-body-pillar-strong); border-color: var(--bsm3-color-body-outline-light-green-86EFAC-use-on-body-pillar-outline); }
.page-slug-scheduler-spa .sday-pill-mind { background: var(--bsm3-color-mind-light-sky-blue-DBEAFE-use-on-mind-pillar-background); color: var(--bsm3-color-mind-deep-navy-blue-1E40AF-use-on-mind-pillar-strong); border-color: var(--bsm3-color-mind-outline-light-blue-93C5FD-use-on-mind-pillar-outline); }
.page-slug-scheduler-spa .sday-pill-sleep { background: var(--bsm3-color-sleep-light-lavender-EDE9FE-use-on-sleep-pillar-background); color: var(--bsm3-color-sleep-deep-violet-6D28D9-use-on-sleep-pillar-strong); border-color: var(--bsm3-color-sleep-outline-light-purple-C4B5FD-use-on-sleep-pillar-outline); }
.page-slug-scheduler-spa .sday-pill-auto { background: var(--bsm3-color-ink-navy-1E1B48-use-on-primary-text); color: var(--bsm3-color-white-FFFFFF-use-on-bg-day-general); }

/* ---------- zones and items (the phone's timeline rows) ---------- */
.page-slug-scheduler-spa .sday-zone { margin-bottom: var(--bsm3-space-md); }
.page-slug-scheduler-spa .sday-zone-title { margin: 0 0 var(--bsm3-space-xs); font-size: var(--bsm3-text-small-12px-use-on-text); font-weight: var(--bsm3-weight-bold-700-use-on-h1); text-transform: capitalize; letter-spacing: var(--bsm3-section-label-tracking); color: var(--bsm3-color-ink-navy-1E1B48-use-on-primary-text); }
.page-slug-scheduler-spa .sday-item { display: flex; align-items: flex-start; gap: var(--bsm3-space-sm); width: 100%; box-sizing: border-box; text-align: left; font-family: var(--bsm3-font-body); margin-bottom: var(--bsm3-space-xs); padding: var(--bsm3-space-sm) var(--bsm3-space-sm); border: 0; border-left: var(--bsm3-border-thick) solid var(--bsm3-color-divider-lavender-gray-C8C6E0-use-on-dividers); border-radius: var(--bsm3-radius-status-cards); background: var(--bsm3-color-surface-pale-lavender-F1F0F9-use-on-card-background); cursor: pointer; color: var(--bsm3-color-black-000000-use-on-bg-sleep); }
.page-slug-scheduler-spa .sday-item:hover { box-shadow: var(--bsm3-elevation-soft); }
.page-slug-scheduler-spa .sday-item-body { border-left-color: var(--bsm3-color-body-core-green-16A34A-use-on-body-pillar-accent-icon); }
.page-slug-scheduler-spa .sday-item-sleep { border-left-color: var(--bsm3-color-sleep-core-purple-7C3AED-use-on-sleep-pillar-accent-icon); }
.page-slug-scheduler-spa .sday-item-mind { border-left-color: var(--bsm3-color-mind-core-blue-2563EB-use-on-mind-pillar-accent-icon); }
.page-slug-scheduler-spa .sday-item-icon { flex: 0 0 auto; font-size: var(--bsm3-text-medium-14px-use-on-text); line-height: 1.3; }
.page-slug-scheduler-spa .sday-item-text { display: flex; flex-direction: column; min-width: 0; }
.page-slug-scheduler-spa .sday-item-title { font-size: var(--bsm3-text-small-12px-use-on-text); font-weight: var(--bsm3-weight-bold-700-use-on-h1); line-height: 1.3; overflow-wrap: anywhere; }
.page-slug-scheduler-spa .sday-item-sub { font-size: var(--bsm3-text-small-12px-use-on-text); font-weight: var(--bsm3-weight-medium-500-use-on-buttons-links); color: var(--bsm3-color-ink-navy-1E1B48-use-on-primary-text); line-height: 1.3; overflow-wrap: anywhere; }
.page-slug-scheduler-spa .sday-ai-mark { font-size: var(--bsm3-text-tiny-10px-use-on-text); }

.page-slug-scheduler-spa .sday-empty { margin: 0; font-size: var(--bsm3-text-small-12px-use-on-text); color: var(--bsm3-color-ink3-lavender-gray-9D9BBF-use-on-secondary-text); text-align: center; padding: var(--bsm3-space-md) 0; }
.page-slug-scheduler-spa .sday-empty-btn { display: block; width: 100%; border: var(--bsm3-border-default) dashed var(--bsm3-color-divider-lavender-gray-C8C6E0-use-on-dividers); border-radius: var(--bsm3-radius-status-cards); background: var(--bsm3-transparent); cursor: pointer; font-family: var(--bsm3-font-body); padding: var(--bsm3-space-lg) var(--bsm3-space-sm); }

/* ---------- cheats and recovery taxes ---------- */
.page-slug-scheduler-spa .sday-extras { display: flex; flex-wrap: wrap; gap: var(--bsm3-space-xs); margin-top: var(--bsm3-space-sm); }
.page-slug-scheduler-spa .sday-extra { border-radius: var(--bsm3-radius-pills); padding: var(--bsm3-pill-chip-padding); font-size: var(--bsm3-text-small-12px-use-on-text); font-weight: var(--bsm3-weight-semibold-600-use-on-h2-h3-h4); cursor: pointer; border: var(--bsm3-border-thin) solid var(--bsm3-color-divider-lavender-gray-C8C6E0-use-on-dividers); background: var(--bsm3-color-white-FFFFFF-use-on-bg-day-general); color: var(--bsm3-color-ink-navy-1E1B48-use-on-primary-text); }
.page-slug-scheduler-spa .sday-extra-unpaid { background: var(--bsm3-color-attention-pink-FEE2E2-use-on-status-alert-background); border-color: var(--bsm3-color-status-severe-red-C0392B-use-on-status-severe); color: var(--bsm3-color-status-severe-red-C0392B-use-on-status-severe); }
.page-slug-scheduler-spa .sday-extra-tax { background: var(--bsm3-color-body-light-mint-DCFCE7-use-on-body-pillar-background); border-color: var(--bsm3-color-body-outline-light-green-86EFAC-use-on-body-pillar-outline); }

/* ---------- month overview ---------- */
.page-slug-scheduler-spa .sday-month { margin-bottom: var(--bsm3-space-lg); padding: var(--bsm3-space-lg); background: var(--bsm3-color-white-FFFFFF-use-on-bg-day-general); border: var(--bsm3-border-thin) solid var(--bsm3-color-divider-lavender-gray-C8C6E0-use-on-dividers); border-radius: var(--bsm3-radius-primary-cards); box-shadow: var(--bsm3-elevation-soft); }
.page-slug-scheduler-spa .sday-month.sday-hidden { display: none; }
.page-slug-scheduler-spa .sday-month-head { display: flex; justify-content: space-between; align-items: center; margin-bottom: var(--bsm3-space-md); }
.page-slug-scheduler-spa .sday-month-label { font-size: var(--bsm3-size-sub-section-title-18px-use-on-h3); font-weight: var(--bsm3-weight-bold-700-use-on-h1); }
.page-slug-scheduler-spa .sday-month-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: var(--bsm3-space-xs); }
.page-slug-scheduler-spa .sday-mcell-head { text-align: center; font-size: var(--bsm3-text-tiny-10px-use-on-text); font-weight: var(--bsm3-weight-bold-700-use-on-h1); text-transform: capitalize; color: var(--bsm3-color-ink3-lavender-gray-9D9BBF-use-on-secondary-text); }
.page-slug-scheduler-spa .sday-mcell { min-height: 54px; display: flex; flex-direction: column; align-items: center; gap: 2px; padding: var(--bsm3-space-xs) 2px; border-radius: var(--bsm3-radius-status-cards); border: var(--bsm3-border-thin) solid var(--bsm3-color-divider-lavender-gray-C8C6E0-use-on-dividers); background: var(--bsm3-color-white-FFFFFF-use-on-bg-day-general); cursor: pointer; font-family: var(--bsm3-font-body); color: var(--bsm3-color-ink-navy-1E1B48-use-on-primary-text); }
.page-slug-scheduler-spa .sday-mcell-empty { border: 0; background: var(--bsm3-transparent); cursor: default; }
.page-slug-scheduler-spa .sday-mcell-today { border-color: var(--bsm3-color-sleep-core-purple-7C3AED-use-on-sleep-pillar-accent-icon); border-width: var(--bsm3-border-default); }
.page-slug-scheduler-spa .sday-mcell-clash { background: var(--bsm3-color-attention-pink-FEE2E2-use-on-status-alert-background); border-color: var(--bsm3-color-status-severe-red-C0392B-use-on-status-severe); }
.page-slug-scheduler-spa .sday-mnum { font-size: var(--bsm3-text-small-12px-use-on-text); font-weight: var(--bsm3-weight-bold-700-use-on-h1); }
.page-slug-scheduler-spa .sday-mplans { display: flex; flex-wrap: wrap; justify-content: center; font-size: var(--bsm3-text-tiny-10px-use-on-text); line-height: 1.2; }
.page-slug-scheduler-spa .sday-dot { display: inline-block; width: 8px; height: 8px; border-radius: var(--bsm3-radius-pills); background: var(--bsm3-color-sleep-outline-light-purple-C4B5FD-use-on-sleep-pillar-outline); }
.page-slug-scheduler-spa .sday-dot-shift { background: var(--bsm3-color-mind-deep-navy-blue-1E40AF-use-on-mind-pillar-strong); }
.page-slug-scheduler-spa .sday-dot-jetlag { background: var(--bsm3-color-status-high-orange-F2994A-use-on-status-high); }
.page-slug-scheduler-spa .sday-dot-reset { background: var(--bsm3-color-sleep-core-purple-7C3AED-use-on-sleep-pillar-accent-icon); }
.page-slug-scheduler-spa .sday-dot-usual { background: var(--bsm3-color-sleep-outline-light-purple-C4B5FD-use-on-sleep-pillar-outline); }
.page-slug-scheduler-spa .sday-dot-clash { background: var(--bsm3-color-status-severe-red-C0392B-use-on-status-severe); }
.page-slug-scheduler-spa .sday-legend { display: flex; flex-wrap: wrap; gap: var(--bsm3-space-md); margin-top: var(--bsm3-space-md); font-size: var(--bsm3-text-small-12px-use-on-text); }
.page-slug-scheduler-spa .sday-legend-item { display: inline-flex; align-items: center; gap: var(--bsm3-space-xs); }

/* ---------- clash picker ---------- */
.page-slug-scheduler-spa .sday-modal { position: fixed; left: 0; right: 0; bottom: 0; top: var(--bsm-sched-top, 0px); z-index: 10010; display: flex; align-items: center; justify-content: center; padding: var(--bsm3-space-lg); box-sizing: border-box; background: color-mix(in srgb, var(--bsm3-color-ink-navy-1E1B48-use-on-primary-text) 55%, transparent); } /* starts below the site top bar, like the old Scheduler pop-ups (--bsm-sched-top: styleBodyNew.css) */
.page-slug-scheduler-spa .sday-modal.sday-hidden { display: none; }
.page-slug-scheduler-spa .sday-modal-box { position: relative; width: 100%; max-width: var(--bsm3-width-standard); max-height: 100%; overflow-y: auto; box-sizing: border-box; padding: var(--bsm3-space-xl) var(--bsm3-space-lg) var(--bsm3-space-lg); background: var(--bsm3-color-white-FFFFFF-use-on-bg-day-general); border-radius: var(--bsm3-radius-primary-cards); box-shadow: var(--bsm3-elevation-overlay-soft); }
.page-slug-scheduler-spa .sday-modal-close { position: absolute; top: var(--bsm3-space-sm); right: var(--bsm3-space-sm); border: 0; background: var(--bsm3-transparent); cursor: pointer; font-size: var(--bsm3-text-small-12px-use-on-text); font-weight: var(--bsm3-weight-semibold-600-use-on-h2-h3-h4); color: var(--bsm3-color-ink-navy-1E1B48-use-on-primary-text); }
.page-slug-scheduler-spa .sday-modal-title { margin: 0 0 var(--bsm3-space-sm); font-size: var(--bsm3-size-sub-section-title-18px-use-on-h3); font-weight: var(--bsm3-weight-bold-700-use-on-h1); color: var(--bsm3-color-ink-navy-1E1B48-use-on-primary-text); }
.page-slug-scheduler-spa .sday-modal-text { margin: 0 0 var(--bsm3-space-md); font-size: var(--bsm3-text-medium-14px-use-on-text); line-height: 1.5; }
.page-slug-scheduler-spa .sday-claim { margin-bottom: var(--bsm3-space-md); padding: var(--bsm3-space-md); border-radius: var(--bsm3-radius-status-cards); border: var(--bsm3-border-thin) solid var(--bsm3-color-divider-lavender-gray-C8C6E0-use-on-dividers); border-left: var(--bsm3-border-thick) solid var(--bsm3-color-sleep-core-purple-7C3AED-use-on-sleep-pillar-accent-icon); }
.page-slug-scheduler-spa .sday-claim-shift { border-left-color: var(--bsm3-color-mind-deep-navy-blue-1E40AF-use-on-mind-pillar-strong); }
.page-slug-scheduler-spa .sday-claim-jetlag { border-left-color: var(--bsm3-color-status-high-orange-F2994A-use-on-status-high); }
.page-slug-scheduler-spa .sday-claim-on { background: var(--bsm3-color-surface-pale-lavender-F1F0F9-use-on-card-background); }
.page-slug-scheduler-spa .sday-claim-name { font-size: var(--bsm3-text-medium-14px-use-on-text); font-weight: var(--bsm3-weight-bold-700-use-on-h1); }
.page-slug-scheduler-spa .sday-claim-phase { font-size: var(--bsm3-text-small-12px-use-on-text); color: var(--bsm3-sleep-text-muted-day); margin-bottom: var(--bsm3-space-xs); }

/* ---------- pop-ups shared with the old Scheduler (extra bits only) ---------- */
.page-slug-scheduler-spa .sday-add-list { display: flex; flex-direction: column; gap: var(--bsm3-space-xs); max-height: 50vh; overflow-y: auto; margin: var(--bsm3-space-md) 0; }
.page-slug-scheduler-spa .sday-add-item { display: flex; justify-content: space-between; align-items: center; gap: var(--bsm3-space-sm); width: 100%; text-align: left; padding: var(--bsm3-space-md); border-radius: var(--bsm3-radius-list-rows); border: var(--bsm3-border-thin) solid var(--bsm3-color-divider-lavender-gray-C8C6E0-use-on-dividers); background: var(--bsm3-color-white-FFFFFF-use-on-bg-day-general); cursor: pointer; font-family: var(--bsm3-font-body); font-size: var(--bsm3-text-medium-14px-use-on-text); font-weight: var(--bsm3-weight-semibold-600-use-on-h2-h3-h4); color: var(--bsm3-color-ink-navy-1E1B48-use-on-primary-text); }
.page-slug-scheduler-spa .sday-add-item:hover { border-color: var(--bsm3-color-sleep-core-purple-7C3AED-use-on-sleep-pillar-accent-icon); }
.page-slug-scheduler-spa .sday-upload { display: flex; flex-direction: column; align-items: center; gap: var(--bsm3-space-sm); width: 100%; padding: var(--bsm3-space-xl); margin-top: var(--bsm3-space-sm); border: var(--bsm3-border-default) dashed var(--bsm3-color-divider-lavender-gray-C8C6E0-use-on-dividers); border-radius: var(--bsm3-radius-primary-cards); background: var(--bsm3-color-surface-pale-lavender-F1F0F9-use-on-card-background); cursor: pointer; font-family: var(--bsm3-font-body); }
.page-slug-scheduler-spa .sday-upload-icon { font-size: var(--bsm3-size-page-title-24px-use-on-h1); }
.page-slug-scheduler-spa .sday-scanning { text-align: center; padding: var(--bsm3-space-xl); font-weight: var(--bsm3-weight-semibold-600-use-on-h2-h3-h4); }
.page-slug-scheduler-spa .sday-scanning.sday-hidden { display: none; }
.page-slug-scheduler-spa .sday-label { display: block; margin: var(--bsm3-space-md) 0 var(--bsm3-space-xs); font-size: var(--bsm3-text-small-12px-use-on-text); font-weight: var(--bsm3-weight-semibold-600-use-on-h2-h3-h4); }
.page-slug-scheduler-spa .sday-debt { display: flex; flex-direction: column; align-items: center; margin: var(--bsm3-space-md) 0; padding: var(--bsm3-space-md); border-radius: var(--bsm3-radius-status-cards); background: var(--bsm3-color-attention-pink-FEE2E2-use-on-status-alert-background); }
.page-slug-scheduler-spa .sday-debt-num { font-size: var(--bsm3-size-page-title-24px-use-on-h1); font-weight: var(--bsm3-weight-bold-700-use-on-h1); color: var(--bsm3-color-status-severe-red-C0392B-use-on-status-severe); }
.page-slug-scheduler-spa .sday-debt-label { font-size: var(--bsm3-text-small-12px-use-on-text); }

/* ---------- print window (body class sday-print-doc) ---------- */
.sday-print-doc .dp-header-actions,
.sday-print-doc .dp-btn-print { display: none; }
.sday-print-doc { background: var(--bsm3-color-white-FFFFFF-use-on-bg-day-general); padding: var(--bsm3-space-lg); }

/* ---------- 1 Oct 2026 (Chris): day 1 is today; yesterday is a small "log it" card ---------- */
.page-slug-scheduler-spa .sday-past-note { margin: 0 0 var(--bsm3-space-sm); font-size: var(--bsm3-text-small-12px-use-on-text); color: var(--bsm3-color-ink-navy-1E1B48-use-on-primary-text); }
.page-slug-scheduler-spa .sday-mcell-past { cursor: default; opacity: var(--bsm3-opacity-medium); background: var(--bsm3-color-surface-pale-lavender-F1F0F9-use-on-card-background); }

/* ---------- 1 Oct 2026 (Chris): Body Clock -- title, the three sleep-window tools, night pop-up links ---------- */
.page-slug-scheduler-spa .sday-clock-title { margin: 0 0 var(--bsm3-space-md); font-size: var(--bsm3-size-sub-section-title-18px-use-on-h3); font-weight: var(--bsm3-weight-bold-700-use-on-h1); color: var(--bsm3-color-ink-navy-1E1B48-use-on-primary-text); }
.page-slug-scheduler-spa .sday-tools { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--bsm3-space-sm); margin-bottom: var(--bsm3-space-lg); }
.page-slug-scheduler-spa .sday-tool { display: flex; flex-direction: column; align-items: center; gap: var(--bsm3-space-xs); padding: var(--bsm3-space-md) var(--bsm3-space-sm); border-radius: var(--bsm3-radius-status-cards); border: var(--bsm3-border-thin) solid var(--bsm3-color-divider-lavender-gray-C8C6E0-use-on-dividers); background: var(--bsm3-color-surface-pale-lavender-F1F0F9-use-on-card-background); text-align: center; text-decoration: none; color: var(--bsm3-color-ink-navy-1E1B48-use-on-primary-text); }
.page-slug-scheduler-spa .sday-tool:hover { border-color: var(--bsm3-color-sleep-core-purple-7C3AED-use-on-sleep-pillar-accent-icon); }
.page-slug-scheduler-spa .sday-tool-icon { font-size: var(--bsm3-text-large-16px-use-on-text); }
.page-slug-scheduler-spa .sday-tool-name { font-size: var(--bsm3-text-small-12px-use-on-text); font-weight: var(--bsm3-weight-bold-700-use-on-h1); line-height: 1.3; }
.page-slug-scheduler-spa .sday-tool-tick { display: none; font-size: var(--bsm3-text-tiny-10px-use-on-text); font-weight: var(--bsm3-weight-bold-700-use-on-h1); color: var(--bsm3-color-status-normal-green-2E9E6C-use-on-status-normal); }
.page-slug-scheduler-spa .sday-tool.sday-tool-on { border-color: var(--bsm3-color-status-normal-green-2E9E6C-use-on-status-normal); background: var(--bsm3-color-white-FFFFFF-use-on-bg-day-general); }
.page-slug-scheduler-spa .sday-tool.sday-tool-on .sday-tool-tick { display: block; }
.page-slug-scheduler-spa .sday-claim-link { display: block; margin-top: var(--bsm3-space-sm); font-size: var(--bsm3-text-small-12px-use-on-text); font-weight: var(--bsm3-weight-semibold-600-use-on-h2-h3-h4); color: var(--bsm3-color-sleep-core-purple-7C3AED-use-on-sleep-pillar-accent-icon); text-decoration: underline; }

/* ---------- 1 Oct 2026 (Chris): unpaid debts icon in each day card's icon row ---------- */
.page-slug-scheduler-spa .sday-act.sday-act-debt { position: relative; background: var(--bsm3-color-attention-pink-FEE2E2-use-on-status-alert-background); border-color: var(--bsm3-color-status-severe-red-C0392B-use-on-status-severe); }
.page-slug-scheduler-spa .sday-act-count { position: absolute; top: -4px; right: -4px; min-width: 16px; height: 16px; padding: 0 var(--bsm3-space-xs); box-sizing: border-box; border-radius: var(--bsm3-radius-pills); background: var(--bsm3-color-status-severe-red-C0392B-use-on-status-severe); color: var(--bsm3-color-white-FFFFFF-use-on-bg-day-general); font-size: var(--bsm3-text-tiny-10px-use-on-text); font-weight: var(--bsm3-weight-bold-700-use-on-h1); line-height: 16px; text-align: center; }

/* ---------- General Improvements V1 (1 Oct 2026, Chris) ---------- */
/* today keeps its month; TODAY is a small badge beside the date */
.page-slug-scheduler-spa .sday-dnum { display: inline-flex; align-items: center; gap: var(--bsm3-space-sm); }
.page-slug-scheduler-spa .sday-today-badge { display: inline-block; padding: 2px var(--bsm3-space-sm); border-radius: var(--bsm3-radius-pills); background: var(--bsm3-color-sleep-core-purple-7C3AED-use-on-sleep-pillar-accent-icon); color: var(--bsm3-color-white-FFFFFF-use-on-bg-day-general); font-size: var(--bsm3-text-tiny-10px-use-on-text); font-weight: var(--bsm3-weight-bold-700-use-on-h1); letter-spacing: var(--bsm3-section-label-tracking); line-height: 1.4; }
/* item rows: grey type label on the right, foods with source icon + portion */
.page-slug-scheduler-spa .sday-item-text { flex: 1 1 auto; }
.page-slug-scheduler-spa .sday-item-kind { flex: 0 0 auto; display: flex; flex-direction: column; align-items: flex-end; gap: 2px; margin-left: auto; font-size: var(--bsm3-text-tiny-10px-use-on-text); font-weight: var(--bsm3-weight-medium-500-use-on-buttons-links); color: var(--bsm3-color-ink3-lavender-gray-9D9BBF-use-on-secondary-text); text-align: right; white-space: nowrap; }
.page-slug-scheduler-spa .sday-item-kind-ai { color: var(--bsm3-color-sleep-core-purple-7C3AED-use-on-sleep-pillar-accent-icon); }
.page-slug-scheduler-spa .sday-item-foods { display: flex; flex-direction: column; gap: 2px; margin-top: 2px; }
.page-slug-scheduler-spa .sday-food { font-size: var(--bsm3-text-small-12px-use-on-text); font-weight: var(--bsm3-weight-medium-500-use-on-buttons-links); color: var(--bsm3-color-ink-navy-1E1B48-use-on-primary-text); overflow-wrap: anywhere; }
.page-slug-scheduler-spa .sday-food-portion { color: var(--bsm3-color-ink3-lavender-gray-9D9BBF-use-on-secondary-text); font-weight: var(--bsm3-weight-medium-500-use-on-buttons-links); white-space: nowrap; }
/* opened plan: what it is + edit links */
.page-slug-scheduler-spa .sday-plan-head { margin: 0 0 var(--bsm3-space-lg); padding: var(--bsm3-space-md) var(--bsm3-space-lg); border-radius: var(--bsm3-radius-status-cards); background: var(--bsm3-color-surface-pale-lavender-F1F0F9-use-on-card-background); border: var(--bsm3-border-thin) solid var(--bsm3-color-divider-lavender-gray-C8C6E0-use-on-dividers); }
.page-slug-scheduler-spa .sday-plan-kind { font-size: var(--bsm3-text-medium-14px-use-on-text); font-weight: var(--bsm3-weight-bold-700-use-on-h1); letter-spacing: var(--bsm3-section-label-tracking); color: var(--bsm3-color-ink-navy-1E1B48-use-on-primary-text); }
.page-slug-scheduler-spa .sday-plan-what { margin-top: 2px; font-size: var(--bsm3-text-small-12px-use-on-text); color: var(--bsm3-color-ink-navy-1E1B48-use-on-primary-text); }
.page-slug-scheduler-spa .sday-plan-edit { display: flex; flex-wrap: wrap; gap: var(--bsm3-space-md); margin-top: var(--bsm3-space-sm); }
.page-slug-scheduler-spa .sday-plan-edit a,
.page-slug-scheduler-spa .sday-link-btn { padding: 0; border: 0; background: var(--bsm3-transparent); cursor: pointer; font-family: var(--bsm3-font-body); font-size: var(--bsm3-text-small-12px-use-on-text); font-weight: var(--bsm3-weight-bold-700-use-on-h1); color: var(--bsm3-color-sleep-core-purple-7C3AED-use-on-sleep-pillar-accent-icon); text-decoration: underline; }
/* the Body Plan page's own "Back to Plans" is not needed here -- "Back to your days" does that */
.page-slug-scheduler-spa #sched-god-content .bp-btn-back { display: none; }


/* =========================================================
   SAMPLE DAY + PHONE FRAME (3 Oct 2026, Road Map it_afa2c4d642 -- the new home page's live phone).
   Markup: scheduler/wellness-scheduler.php. Behaviour: js/wellnessScheduler.js (cfg.sample / cfg.embed).
   --bsm3-* only. No shadows. Dark background only on the small toast (under 300px / 50px).
   ========================================================= */
.page-slug-scheduler-spa .sday-sample-note { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--bsm3-space-sm); margin-bottom: var(--bsm3-space-md); padding: var(--bsm3-status-card-padding); background: var(--bsm3-color-sleep-light-lavender-EDE9FE-use-on-sleep-pillar-background); border: var(--bsm3-border-default) solid var(--bsm3-color-sleep-outline-light-purple-C4B5FD-use-on-sleep-pillar-outline); border-radius: var(--bsm3-radius-status-cards); }
.page-slug-scheduler-spa .sday-sample-note.sday-hidden { display: none; }
.page-slug-scheduler-spa .sday-sample-text { margin: 0; flex: 1 1 200px; font-size: var(--bsm3-text-small-12px-use-on-text); color: var(--bsm3-color-ink-navy-1E1B48-use-on-primary-text); }
.page-slug-scheduler-spa .sday-sample-btn { display: inline-block; text-decoration: none; border-color: var(--bsm3-color-sleep-core-purple-7C3AED-use-on-sleep-pillar-accent-icon); color: var(--bsm3-color-sleep-deep-violet-6D28D9-use-on-sleep-pillar-strong); font-size: var(--bsm3-text-small-12px-use-on-text); white-space: nowrap; }
.page-slug-scheduler-spa .sday-sample-toast { position: fixed; left: 50%; bottom: var(--bsm3-space-xl); transform: translateX(-50%); z-index: 100000; max-width: var(--bsm3-dark-background-max-width); padding: var(--bsm3-pill-chip-padding); border-radius: var(--bsm3-radius-pills); background: var(--bsm3-color-ink-navy-1E1B48-use-on-primary-text); color: var(--bsm3-color-white-FFFFFF-use-on-bg-day-general); font-size: var(--bsm3-text-small-12px-use-on-text); font-weight: var(--bsm3-weight-medium-500-use-on-buttons-links); text-align: center; }
.page-slug-scheduler-spa .sday-sample-toast.sday-hidden { display: none; }
.page-slug-scheduler-spa .sday-sample-plan { padding: var(--bsm3-space-lg); }
.page-slug-scheduler-spa .sday-sample-zone { margin: var(--bsm3-space-lg) 0 var(--bsm3-space-sm); font-size: var(--bsm3-size-card-list-title-15px-use-on-h4); font-weight: var(--bsm3-weight-semibold-600-use-on-h2-h3-h4); color: var(--bsm3-color-ink-navy-1E1B48-use-on-primary-text); }
.page-slug-scheduler-spa .sday-sample-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: var(--bsm3-space-sm); }
.page-slug-scheduler-spa .sday-sample-item { display: flex; flex-direction: column; gap: var(--bsm3-space-xs); padding: var(--bsm3-status-card-padding); background: var(--bsm3-color-white-FFFFFF-use-on-bg-day-general); border: var(--bsm3-border-default) solid var(--bsm3-color-divider-lavender-gray-C8C6E0-use-on-dividers); border-radius: var(--bsm3-radius-list-rows); font-size: var(--bsm3-text-medium-14px-use-on-text); color: var(--bsm3-color-ink-navy-1E1B48-use-on-primary-text); }
.page-slug-scheduler-spa .sday-sample-foods { font-size: var(--bsm3-text-small-12px-use-on-text); color: var(--bsm3-color-ink3-lavender-gray-9D9BBF-use-on-secondary-text); }
.page-slug-scheduler-spa .sday-sample-plannote { margin: var(--bsm3-space-lg) 0 0; font-size: var(--bsm3-text-small-12px-use-on-text); color: var(--bsm3-color-ink3-lavender-gray-9D9BBF-use-on-secondary-text); }

/* Inside the home page phone (?bsm_embed=1 -> body.bsm-embed): only the Scheduler, no site bars.
   Same list as the BMI therapy embed in styleAssessment.css (30 Sep 2026). */
body.bsm-embed.page-slug-scheduler-spa #wpadminbar,
body.bsm-embed.page-slug-scheduler-spa #bsm-global-topbar,
body.bsm-embed.page-slug-scheduler-spa #katie-widget-wrapper,
body.bsm-embed.page-slug-scheduler-spa .bsm-footer-disclaimer-wrapper,
body.bsm-embed.page-slug-scheduler-spa #bcc-finder-root,
body.bsm-embed.page-slug-scheduler-spa #bsm-panic-root,
body.bsm-embed.page-slug-scheduler-spa header.wp-block-template-part,
body.bsm-embed.page-slug-scheduler-spa footer.wp-block-template-part { display: none !important; }
html:has(body.bsm-embed.page-slug-scheduler-spa) { margin-top: 0 !important; }
body.bsm-embed.page-slug-scheduler-spa { padding: 0 !important; background: var(--bsm3-color-white-FFFFFF-use-on-bg-day-general) !important; } /* padding 0: the theme's 20px side padding wasted a strip each side of the phone (live check 3 Oct 2026) */
body.bsm-embed.page-slug-scheduler-spa .wp-site-blocks,
body.bsm-embed.page-slug-scheduler-spa main,
body.bsm-embed.page-slug-scheduler-spa .entry-content { padding-top: 0 !important; margin-top: 0 !important; padding-bottom: 0 !important; }
/* inside the phone the Scheduler uses the whole width: cancel the theme's 20px side margins
   (common.css .is-layout-constrained) and any content-width cap (live check 3 Oct 2026) */
body.bsm-embed.page-slug-scheduler-spa .is-layout-constrained > * { margin-left: 0 !important; margin-right: 0 !important; max-width: none !important; }
body.bsm-embed.page-slug-scheduler-spa .sday-wrap { max-width: none; padding: var(--bsm3-space-sm); }
/* no scroll bars inside the phone (Chris, 3 Oct 2026) -- scrolling and swiping still work, like a real phone */
html:has(body.bsm-embed.page-slug-scheduler-spa),
body.bsm-embed.page-slug-scheduler-spa,
body.bsm-embed.page-slug-scheduler-spa * { scrollbar-width: none; }
html:has(body.bsm-embed.page-slug-scheduler-spa)::-webkit-scrollbar,
body.bsm-embed.page-slug-scheduler-spa::-webkit-scrollbar,
body.bsm-embed.page-slug-scheduler-spa *::-webkit-scrollbar { display: none; }
/* sample plan: each item is a button that opens its detail card (4 Oct 2026) */
.page-slug-scheduler-spa .sday-sample-open { display: flex; flex-direction: column; gap: var(--bsm3-space-xs); width: 100%; padding: 0; border: 0; background: var(--bsm3-transparent); color: var(--bsm3-color-ink-navy-1E1B48-use-on-primary-text); font-family: var(--bsm3-font-body); font-size: var(--bsm3-text-medium-14px-use-on-text); text-align: left; cursor: pointer; }

/* the plan's Edit button(s) in the overlay's top bar, next to "Back to your days" (4 Oct 2026) */
.page-slug-scheduler-spa .sday-plan-edit-top { display: inline-flex; flex-wrap: wrap; gap: var(--bsm3-space-sm); }
.page-slug-scheduler-spa .sday-plan-edit-top:empty { display: none; }
.page-slug-scheduler-spa .sday-edit-btn { display: inline-flex; align-items: center; gap: var(--bsm3-space-xs); padding: var(--bsm3-space-sm) var(--bsm3-space-lg); border-radius: var(--bsm3-radius-pills); border: var(--bsm3-border-default) solid var(--bsm3-color-sleep-core-purple-7C3AED-use-on-sleep-pillar-accent-icon); background: var(--bsm3-color-sleep-core-purple-7C3AED-use-on-sleep-pillar-accent-icon); color: var(--bsm3-color-white-FFFFFF-use-on-bg-day-general); font-family: var(--bsm3-font-body); font-size: var(--bsm3-text-medium-14px-use-on-text); font-weight: var(--bsm3-weight-semibold-600-use-on-h2-h3-h4); text-decoration: none; cursor: pointer; }
.page-slug-scheduler-spa .sday-edit-btn:hover { background: var(--bsm3-color-sleep-deep-violet-6D28D9-use-on-sleep-pillar-strong); border-color: var(--bsm3-color-sleep-deep-violet-6D28D9-use-on-sleep-pillar-strong); }

/* Missing Body / Sleep / Mind plan links on a day card (Chris, 4 Oct 2026): amber status pills with a warning triangle, each opens that planner. Sit above the sleep block. */
.page-slug-scheduler-spa .sday-missing-row { display: flex; flex-wrap: wrap; gap: var(--bsm3-space-xs); margin-bottom: var(--bsm3-space-md); }
.page-slug-scheduler-spa .sday-missing { display: inline-flex; align-items: center; gap: var(--bsm3-space-xs); border-radius: var(--bsm3-radius-pills); padding: var(--bsm3-pill-chip-padding); font-size: var(--bsm3-text-small-12px-use-on-text); font-weight: var(--bsm3-weight-semibold-600-use-on-h2-h3-h4); text-decoration: none; background: var(--bsm3-color-caution-cream-FEF3C7-use-on-status-warning-background); color: var(--bsm3-color-ink-navy-1E1B48-use-on-primary-text); border: var(--bsm3-border-default) solid var(--bsm3-color-status-high-orange-F2994A-use-on-status-high); }
.page-slug-scheduler-spa .sday-missing-warn { color: var(--bsm3-color-status-high-orange-F2994A-use-on-status-high); }
.page-slug-scheduler-spa .sday-missing:hover { background: var(--bsm3-color-white-FFFFFF-use-on-bg-day-general); }

/* 5 Oct 2026 (Chris): one icon size for every row -- activity, mind, sleep and meal icons sit in the same
   box as the food pictures (--bsm3-food-thumb-size-small-use-on-food-picture-lists), so non-food rows don't
   look less important. */
.page-slug-scheduler-spa .sday-item-icon { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; width: var(--bsm3-food-thumb-size-small-use-on-food-picture-lists); height: var(--bsm3-food-thumb-size-small-use-on-food-picture-lists); font-size: var(--bsm3-icon-size-card); line-height: 1; }
.page-slug-scheduler-spa .sday-item-text { min-height: var(--bsm3-food-thumb-size-small-use-on-food-picture-lists); justify-content: center; }

/* Key Points pop-up (General Improvements V1 item 1, Chris 5 Oct 2026): grouped short lines, each opens its plan */
.page-slug-scheduler-spa .sday-keys { display: flex; flex-direction: column; gap: var(--bsm3-space-md); }
.page-slug-scheduler-spa .sday-key-label { margin: 0 0 var(--bsm3-space-xs); font-family: var(--bsm3-font-body); font-size: var(--bsm3-text-small-12px-use-on-text); font-weight: var(--bsm3-weight-semibold-600-use-on-h2-h3-h4); color: var(--bsm3-color-ink3-lavender-gray-9D9BBF-use-on-secondary-text); }
.page-slug-scheduler-spa .sday-key-line { display: flex; align-items: center; gap: var(--bsm3-space-sm); width: 100%; box-sizing: border-box; padding: var(--bsm3-space-sm); margin-bottom: var(--bsm3-space-xs); border: 0; border-radius: var(--bsm3-radius-status-cards); background: var(--bsm3-color-surface-pale-lavender-F1F0F9-use-on-card-background); font-family: var(--bsm3-font-body); font-size: var(--bsm3-text-medium-14px-use-on-text); color: var(--bsm3-color-ink-navy-1E1B48-use-on-primary-text); text-align: left; text-decoration: none; }
.page-slug-scheduler-spa button.sday-key-line { cursor: pointer; }
.page-slug-scheduler-spa .sday-key-ico { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; width: var(--bsm3-food-thumb-size-small-use-on-food-picture-lists); font-size: var(--bsm3-icon-size-card); }
.page-slug-scheduler-spa .sday-key-text { flex: 1 1 auto; min-width: 0; }
.page-slug-scheduler-spa .sday-key-go { flex: 0 0 auto; color: var(--bsm3-color-ink3-lavender-gray-9D9BBF-use-on-secondary-text); }
.page-slug-scheduler-spa .sday-key-missing { border-left: var(--bsm3-border-thick) solid var(--bsm3-color-status-high-orange-F2994A-use-on-status-high); }

/* Sleep menu on Body Clock (Chris 5 Oct 2026, Sleep sweep A6): the shared Sleep nav (menus/menu_sleep_section_tabs.php)
   shown above Day Plans when the page is opened as Body Clock. Links only: one row that swipes sideways, active one underlined
   in Sleep purple. The Menu button, Sleep Diary and Day/Sleep switch belong to the Sleep pages, so hidden here. */
.page-slug-scheduler-spa .bsst-tabs-row { display: flex; margin: 0 0 var(--bsm3-space-lg); }
.page-slug-scheduler-spa .bsst-tabs-row .bsst-menu-toggle,
.page-slug-scheduler-spa .bsst-tabs-row .bsst-tools,
.page-slug-scheduler-spa .bsst-info-overlay[hidden] { display: none; }
.page-slug-scheduler-spa .bsst-tabs { display: flex; flex-wrap: nowrap; gap: var(--bsm3-space-lg); width: 100%; overflow-x: auto; scrollbar-width: none; }
.page-slug-scheduler-spa .bsst-tabs::-webkit-scrollbar { display: none; }
.page-slug-scheduler-spa .bsst-tab { flex: 0 0 auto; padding: var(--bsm3-space-xs) 0; border-bottom: var(--bsm3-border-thick) solid var(--bsm3-transparent); font-family: var(--bsm3-font-body); font-size: var(--bsm3-text-medium-14px-use-on-text); font-weight: var(--bsm3-weight-medium-500-use-on-buttons-links); color: var(--bsm3-color-ink-navy-1E1B48-use-on-primary-text); text-decoration: none; white-space: nowrap; }
.page-slug-scheduler-spa .bsst-tab-active { font-weight: var(--bsm3-weight-semibold-600-use-on-h2-h3-h4); border-bottom-color: var(--bsm3-color-sleep-core-purple-7C3AED-use-on-sleep-pillar-accent-icon); }

/* ===== SLEEP v2 MENU, option A (Chris 6 Oct 2026) -- phones: all six Sleep links in one row, each an icon
   with its name under it. Nothing to swipe (replaces the swipe row and its fade). Desktop: names only. ===== */
.page-slug-scheduler-spa .bsst-tab-ic { display: none; }
@media (max-width: 900px) {
    .page-slug-scheduler-spa .bsst-tabs-row .bsst-tabs { display: flex; flex-wrap: nowrap; justify-content: space-between; gap: var(--bsm3-space-xs); overflow: visible; -webkit-mask-image: none; mask-image: none; padding-right: 0; }
    .page-slug-scheduler-spa .bsst-tabs-row .bsst-tab { display: flex; flex: 0 1 auto; flex-direction: column; align-items: center; gap: var(--bsm3-space-xs); min-width: 0; padding: var(--bsm3-space-xs) 0; font-size: var(--bsm3-text-small-12px-use-on-text); text-align: center; white-space: nowrap; }
    .page-slug-scheduler-spa .bsst-tabs-row .bsst-tab-ic { display: block; width: var(--bsm3-icon-size-card); height: var(--bsm3-icon-size-card); flex: 0 0 auto; }
}

/* ---------- 9 Oct 2026 (Chris): Body Clock from the Sleep menu (?view=clock, #sday-root.sday-clock-only) =
   just the overlap calendar -- tap a night to resolve it. Day Plans header, choose banner, the three
   tool cards and the day cards are hidden here; they stay on Day Plans itself. ---------- */
.page-slug-scheduler-spa .sday-clock-only .sday-top,
.page-slug-scheduler-spa .sday-clock-only .sday-alert,
.page-slug-scheduler-spa .sday-clock-only .sday-clock-title,
.page-slug-scheduler-spa .sday-clock-only .sday-tools,
.page-slug-scheduler-spa .sday-clock-only .sday-track,
.page-slug-scheduler-spa .sday-clock-only .sday-loading { display: none; }

/* ---------- 15 Oct 2026 (Chris): RESCHEDULE -- when a plan runs + Reschedule, the Reschedule pop-up, the Stop pop-up ---------- */
.page-slug-scheduler-spa .sday-when { display: flex; align-items: center; gap: var(--bsm3-space-md); margin-top: var(--bsm3-space-md); padding: var(--bsm3-space-md); border-radius: var(--bsm3-radius-primary-cards); background: var(--bsm3-color-sleep-light-lavender-EDE9FE-use-on-sleep-pillar-background); border: var(--bsm3-border-default) solid var(--bsm3-color-sleep-outline-light-purple-C4B5FD-use-on-sleep-pillar-outline); }
.page-slug-scheduler-spa .sday-when-ic { flex-shrink: 0; font-size: var(--bsm3-text-large-16px-use-on-text); }
.page-slug-scheduler-spa .sday-when-t { flex: 1; min-width: 0; font-size: var(--bsm3-text-small-12px-use-on-text); line-height: 1.4; color: var(--bsm3-color-ink-navy-1E1B48-use-on-primary-text); }
.page-slug-scheduler-spa .sday-when-t strong { display: block; font-size: var(--bsm3-text-medium-14px-use-on-text); font-weight: var(--bsm3-weight-bold-700-use-on-h1); }
.page-slug-scheduler-spa .sday-when-btn { flex-shrink: 0; white-space: nowrap; }
.page-slug-scheduler-spa .sday-resched-name { margin: 0; font-size: var(--bsm3-text-medium-14px-use-on-text); font-weight: var(--bsm3-weight-semibold-600-use-on-h2-h3-h4); }
.page-slug-scheduler-spa .sday-resched-note { margin: var(--bsm3-space-md) 0 0; font-size: var(--bsm3-text-small-12px-use-on-text); line-height: 1.4; color: var(--bsm3-color-ink-navy-1E1B48-use-on-primary-text); }
.page-slug-scheduler-spa #sday-resched .sched-input { width: 100%; box-sizing: border-box; }
.page-slug-scheduler-spa #sday-resched-end { margin-top: var(--bsm3-space-sm); }
.page-slug-scheduler-spa .sday-chips { display: flex; flex-wrap: wrap; gap: var(--bsm3-space-sm); }
.page-slug-scheduler-spa .sday-chip { font-family: var(--bsm3-font-body); font-size: var(--bsm3-text-medium-14px-use-on-text); font-weight: var(--bsm3-weight-medium-500-use-on-buttons-links); padding: var(--bsm3-pill-chip-padding); border-radius: var(--bsm3-radius-pills); border: var(--bsm3-border-default) solid var(--bsm3-color-divider-lavender-gray-C8C6E0-use-on-dividers); background: var(--bsm3-color-white-FFFFFF-use-on-bg-day-general); color: var(--bsm3-color-ink-navy-1E1B48-use-on-primary-text); cursor: pointer; }
.page-slug-scheduler-spa .sday-chip.sday-chip-on { border-color: var(--bsm3-color-sleep-deep-violet-6D28D9-use-on-sleep-pillar-strong); background: var(--bsm3-color-sleep-light-lavender-EDE9FE-use-on-sleep-pillar-background); color: var(--bsm3-color-sleep-deep-violet-6D28D9-use-on-sleep-pillar-strong); font-weight: var(--bsm3-weight-semibold-600-use-on-h2-h3-h4); }
.page-slug-scheduler-spa .sday-stop-q { font-weight: var(--bsm3-weight-semibold-600-use-on-h2-h3-h4); }
.page-slug-scheduler-spa .sday-tip { margin: 0 0 var(--bsm3-space-sm); padding: var(--bsm3-space-sm) var(--bsm3-space-md); border-radius: var(--bsm3-radius-list-rows); background: var(--bsm3-color-caution-cream-FEF3C7-use-on-status-warning-background); font-size: var(--bsm3-text-small-12px-use-on-text); line-height: 1.45; }
.page-slug-scheduler-spa .sday-btn.sday-btn-stop { border-color: var(--bsm3-color-status-severe-red-C0392B-use-on-status-severe); color: var(--bsm3-color-status-severe-red-C0392B-use-on-status-severe); }

/* 23 Oct 2026 (Chris): Body Clock keeps pace with the Sleep pages -- on phones held upright the Sleep menu is two rows of
   four, every tab the same width, icon above the full name (same as css/styleSleepShared.css). */
@media (max-width: 480px) {
    .page-slug-scheduler-spa .bsst-tabs-row #bsst-tabs { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--bsm3-space-sm) 0; width: 100%; overflow: visible; }
    .page-slug-scheduler-spa .bsst-tabs-row #bsst-tabs .bsst-tab { display: flex; flex-direction: column; align-items: center; justify-content: flex-start; gap: var(--bsm3-space-xs); min-width: 0; margin: 0; padding: var(--bsm3-space-xs) 0; text-align: center; }
    .page-slug-scheduler-spa .bsst-tabs-row #bsst-tabs .bsst-tab-label { display: block; overflow: visible; text-overflow: clip; white-space: nowrap; font-size: var(--bsm3-text-small-12px-use-on-text); }
}

/* ===== 23 Oct 2026 (Chris): BODY CLOCK NIGHT LOOK -- Body Clock (?view=clock) follows the Sleep Day / Night switch in the header
   (#sday-root[data-theme="sleep"], set by scheduler/wellness-scheduler.php and the switch). Same Night colours as the Sleep pages
   (brand.css). Day Plans has no data-theme, so it never changes. ===== */
body.page-slug-scheduler-spa:has(#sday-root.sday-clock-only[data-theme="sleep"]),
body.page-slug-scheduler-spa:has(#sday-root.sday-clock-only[data-theme="sleep"]) :is(.wp-site-blocks, main, .entry-content) { background-color: var(--bsm3-color-black-000000-use-on-bg-sleep); }
body.page-slug-scheduler-spa:has(#sday-root.sday-clock-only[data-theme="sleep"]) .bsst-tab { color: var(--bsm3-color-white-FFFFFF-use-on-bg-day-general); }
body.page-slug-scheduler-spa:has(#sday-root.sday-clock-only[data-theme="sleep"]) .bsst-tab-ic { color: var(--bsm3-color-sleep-outline-light-purple-C4B5FD-use-on-sleep-pillar-outline); }
body.page-slug-scheduler-spa:has(#sday-root.sday-clock-only[data-theme="sleep"]) .bsst-tab-active { border-bottom-color: var(--bsm3-color-sleep-outline-light-purple-C4B5FD-use-on-sleep-pillar-outline); }
.page-slug-scheduler-spa #sday-root.sday-clock-only[data-theme="sleep"] .sday-month { background: var(--bsm3-sleep-inner-bg-night); border-color: var(--bsm3-sleep-border-night); }
.page-slug-scheduler-spa #sday-root.sday-clock-only[data-theme="sleep"] :is(.sday-month-label, .sday-mnum) { color: var(--bsm3-color-white-FFFFFF-use-on-bg-day-general); }
.page-slug-scheduler-spa #sday-root.sday-clock-only[data-theme="sleep"] :is(.sday-mcell-head, .sday-legend, .sday-legend-item) { color: var(--bsm3-sleep-text-muted-sleep); }
.page-slug-scheduler-spa #sday-root.sday-clock-only[data-theme="sleep"] .sday-mcell { background: var(--bsm3-sleep-glass-bg-night); border-color: var(--bsm3-sleep-border-night); }
.page-slug-scheduler-spa #sday-root.sday-clock-only[data-theme="sleep"] .sday-mcell.sday-mcell-clash { background: color-mix(in srgb, var(--bsm3-color-status-severe-red-C0392B-use-on-status-severe) 35%, var(--bsm3-color-black-000000-use-on-bg-sleep)); border-color: var(--bsm3-color-status-severe-red-C0392B-use-on-status-severe); }
.page-slug-scheduler-spa #sday-root.sday-clock-only[data-theme="sleep"] .sday-month-head .sday-btn { background: var(--bsm3-sleep-glass-bg-night); border-color: var(--bsm3-sleep-border-night); color: var(--bsm3-color-white-FFFFFF-use-on-bg-day-general); }
