
  /* ── Luna CSS Variables ─────────────────────── */
  :root {
    --rose:    #c2647a;
    --rose-lt: #e8b4bf;
    --rose-dk: #8b3a50;
    --blush:   #f5e6e8;
    --cream:   #fdf8f5;
    --ink:     #2a1f24;
    --muted:   #8a7075;
    --border:  #e5d5d8;
    --card:    #ffffff;
    --card-blur: 0px;
    --bs-card-border-color: var(--border);
    --bs-card-cap-bg: transparent;
    --bs-card-cap-color: var(--rose-dk);
    --bs-card-color: var(--ink);
    --bs-card-bg: var(--card);
    --period:  #c2647a;
    --predicted: #d4a0ab;
    --symptom: #7a9cbf;
    --ovulation: #7abf9c;
    --modal-overlay: rgba(0,0,0,0.45);
    --modal-bg: #ffffff;
    --modal-border: var(--rose);
    --modal-accent: var(--rose);
    --modal-text: var(--ink);
    --modal-muted: var(--muted);
    /* Header */
    --header-bg: var(--rose-dk);
    --header-text: #ffffff;
    --header-border: rgba(255,255,255,0.18);
    /* Cards / panels */
    --card-header-bg: transparent;
    --card-header-text: var(--rose-dk);
    --card-header-border: var(--border);
    --overview-card-bg: var(--bs-card-bg);
    --overview-card-border: var(--bs-card-border-color);
    --overview-card-blur: var(--card-blur);
    --overview-card-shadow: var(--shadow);
    --logday-card-bg: var(--bs-card-bg);
    --logday-card-border: var(--bs-card-border-color);
    --logday-card-blur: var(--card-blur);
    --logday-card-shadow: var(--shadow);
    --planner-card-bg: var(--bs-card-bg);
    --planner-card-border: var(--bs-card-border-color);
    --planner-card-blur: var(--card-blur);
    --planner-card-shadow: var(--shadow);
    --planner-text-color: var(--ink);
    --planner-title-color: var(--bs-card-cap-color);
    --planner-flower-color: var(--rose-dk);
    --planner-flower-bg: var(--blush);
    --planner-flower-border: var(--rose-lt);
    --planner-paper-tone: #fff9f1;
    --planner-line-color: rgba(201, 171, 186, 0.48);
    --planner-floral-accent-1: #d07a9a;
    --planner-floral-accent-2: #7cae7f;
    --planner-border-darkness: #9a7f87;
    --planner-panel-bg: color-mix(in srgb, var(--card) 94%, white 6%);
    --planner-panel-border: var(--border);
    --planner-panel-text: var(--ink);
    --planner-panel-muted: var(--muted);
    --planner-editor-card-bg: var(--planner-card-bg);
    --planner-editor-card-border: var(--planner-card-border);
    --planner-editor-card-blur: var(--planner-card-blur);
    --planner-editor-card-text: var(--planner-text-color);
    --planner-list-card-bg: var(--planner-card-bg);
    --planner-list-card-border: var(--planner-card-border);
    --planner-list-card-blur: var(--planner-card-blur);
    --planner-list-card-text: var(--planner-text-color);
    --planner-insights-card-bg: var(--planner-card-bg);
    --planner-insights-card-border: var(--planner-card-border);
    --planner-insights-card-blur: var(--planner-card-blur);
    --planner-insights-card-text: var(--planner-text-color);
    --journal-card-bg: linear-gradient(180deg, color-mix(in srgb, var(--card) 88%, white 12%) 0%, color-mix(in srgb, var(--card) 96%, white 4%) 100%);
    --journal-card-border: color-mix(in srgb, var(--rose-lt) 46%, var(--border) 54%);
    --journal-card-shadow: 0 18px 40px rgba(87, 48, 79, 0.16);
    --diary-page-card-bg: var(--cal-bg);
    --diary-page-card-border: var(--journal-card-border);
    --diary-page-card-blur: var(--card-blur);
    --diary-page-card-shadow: var(--journal-card-shadow);
    --diary-page-title-color: var(--journal-title-color);
    --diary-page-flower-color: var(--journal-flower-color);
    --diary-page-flower-bg: var(--journal-flower-bg);
    --diary-page-flower-border: var(--journal-flower-border);
    --diary-page-text-color: var(--journal-ink-color);
    --diary-entry-card-bg: var(--cal-bg);
    --diary-entry-card-border: var(--diary-page-card-border);
    --diary-entry-card-blur: var(--diary-page-card-blur);
    --diary-entry-card-text: var(--diary-page-text-color);
    --diary-book-card-bg: var(--cal-bg);
    --diary-book-card-border: var(--diary-page-card-border);
    --diary-book-card-blur: var(--diary-page-card-blur);
    --diary-book-card-text: var(--diary-page-text-color);
    --diary-archive-card-bg: var(--cal-bg);
    --diary-archive-card-border: var(--diary-page-card-border);
    --diary-archive-card-blur: var(--diary-page-card-blur);
    --diary-archive-card-text: var(--diary-page-text-color);
    --calendar-card-bg: var(--cal-bg);
    --calendar-card-border: var(--bs-card-border-color);
    --calendar-card-blur: var(--card-blur);
    --calendar-card-shadow: var(--shadow);
    /* Stat boxes */
    --stat-bg: rgba(255,255,255,0.42);
    --stat-border: var(--border);
    --stat-text: var(--rose-dk);
    --stat-label: var(--muted);
    /* Calendar */
    --cal-bg: var(--card);
    --cal-day-color: var(--text);
    --cal-day-name-color: var(--muted);
    --cal-day-border-color: transparent;
    --cal-day-border-width: 1.5px;
    --cal-day-hover: var(--blush);
    --cal-day-today-border: var(--rose);
    --cal-day-other: var(--muted);
    --cal-header-text: var(--rose-dk);
    --cal-month-year-color: var(--cal-header-text);
    --cal-nav-btn-color: var(--cal-header-text);
    --cal-nav-btn-bg: transparent;
    --cal-nav-btn-border: var(--border);
    --cal-nav-btn-radius: 8px;
    --cal-nav-btn-hover-bg: var(--blush);
    --collapse-btn-bg: color-mix(in srgb, var(--blush) 85%, white 15%);
    --collapse-btn-border: var(--border);
    --collapse-btn-text: var(--rose);
    --collapse-btn-hover-bg: color-mix(in srgb, var(--blush) 72%, white 28%);
    --collapse-btn-hover-text: var(--rose-dk);
    --collapse-btn-radius: 8px;
    --collapse-btn-shadow: 0 2px 8px color-mix(in srgb, var(--rose) 28%, transparent);
    --cal-legend-bg: transparent;
    --cal-legend-border: var(--border);
    --cal-legend-text: var(--muted);
    --legend-color: var(--cal-legend-text);
    /* Log Day */
    --logday-title-color: var(--bs-card-cap-color);
    --logday-flower-color: var(--rose-dk);
    --logday-flower-bg: var(--blush);
    --logday-flower-border: var(--rose-lt);
    --logday-section-label: var(--muted);
    --section-label-color: var(--logday-section-label);
    --logday-date-label-color: var(--rose-dk);
    --selected-date-label-color: var(--logday-date-label-color);
    --logday-toggle-bg: #ffffff;
    --logday-toggle-text: var(--ink);
    --logday-toggle-border: var(--border);
    --logday-toggle-hover-border: var(--rose);
    --logday-toggle-active-bg: var(--rose);
    --logday-toggle-active-text: #ffffff;
    --logday-pill-bg: #ffffff;
    --logday-pill-text: var(--ink);
    --logday-pill-border: var(--border);
    --logday-pill-hover-border: var(--symptom);
    --logday-pill-active-bg: var(--symptom);
    --logday-pill-active-text: #ffffff;
    --logday-mood-btn-bg: var(--btn-secondary-bg);
    --logday-mood-btn-text: var(--btn-secondary-text);
    --logday-mood-btn-border: color-mix(in srgb, var(--btn-border) 35%, var(--border) 65%);
    --logday-mood-btn-hover-bg: var(--btn-secondary-hover-bg);
    --logday-mood-btn-active-bg: color-mix(in srgb, var(--btn-bg) 18%, white 82%);
    --logday-mood-btn-label-color: var(--muted);
    --logday-icon-color: var(--btn-secondary-text);
    --logday-slider-accent: var(--rose);
    --overview-title-color: var(--bs-card-cap-color);
    --overview-flower-color: var(--rose-dk);
    --overview-flower-bg: var(--blush);
    --overview-flower-border: var(--rose-lt);
    /* Diary */
    --journal-title-color: color-mix(in srgb, var(--rose-dk) 82%, var(--ink) 18%);
    --journal-flower-color: var(--rose-dk);
    --journal-flower-bg: color-mix(in srgb, var(--blush) 86%, white 14%);
    --journal-flower-border: color-mix(in srgb, var(--rose-lt) 80%, white 20%);
    --journal-paper-bg: linear-gradient(180deg, rgba(255, 252, 246, 0.98) 0%, rgba(255, 249, 243, 0.96) 100%);
    --journal-paper-line: rgba(194, 171, 205, 0.42);
    --journal-paper-margin: rgba(222, 132, 167, 0.42);
    --journal-paper-border: color-mix(in srgb, var(--rose-lt) 48%, var(--border) 52%);
    --journal-ink-color: color-mix(in srgb, var(--ink) 78%, #54344b 22%);
    --journal-archive-excerpt-color: var(--journal-ink-color);
    --journal-window-sky: linear-gradient(180deg, #cde9ff 0%, #f7d7ec 100%);
    --journal-window-frame: color-mix(in srgb, var(--rose-lt) 58%, white 42%);
    --journal-book-cover: linear-gradient(180deg, color-mix(in srgb, var(--rose-dk) 85%, #3a2433 15%) 0%, color-mix(in srgb, var(--rose) 78%, #4f3041 22%) 100%);
    --journal-book-shadow: 0 18px 38px rgba(60, 33, 50, 0.22);
    --journal-book-line-font-family: 'Caveat', cursive;
    --journal-book-line-color: var(--journal-ink-color);
    --journal-book-line-font-size: 1.34rem;
    --journal-book-line-height: 1.3;
    --journal-book-line-margin: 0 0 10px;
    --journal-book-empty-opacity: 0.62;
    --journal-book-empty-padding-top: 2px;
    /* Buttons */
    --btn-bg: var(--rose-dk);
    --btn-text: #ffffff;
    --btn-border: var(--rose-dk);
    --btn-hover-bg: var(--rose);
    --btn-hover-text: #ffffff;
    --btn-muted-bg: var(--muted);
    --btn-muted-hover-bg: color-mix(in srgb, var(--muted) 80%, black 20%);
    --btn-secondary-bg: #f5f0f2;
    --btn-secondary-text: var(--ink);
    --btn-secondary-border: var(--border);
    --btn-secondary-hover-bg: var(--blush);
    --btn-border-width: 1px;
    --btn-radius: 10px;
    --btn-shadow: none;
    --btn-pad-y: 10px;
    --btn-pad-x: 12px;
    /* Inputs */
    --input-bg: color-mix(in srgb, var(--card) 90%, white 10%);
    --input-text: var(--ink);
    --input-border: color-mix(in srgb, var(--ink) 22%, transparent);
    --input-placeholder: color-mix(in srgb, var(--muted) 85%, white 15%);
    --input-focus-border: var(--rose);
    --input-focus-ring: color-mix(in srgb, var(--rose) 25%, transparent);
    --bg-art: none;
    --bg-art-fallback: linear-gradient(135deg, #f5d8e6 0%, #d9e7ff 52%, #f7e4c8 100%);
    --bg-position: center center;
    --card-art: none;
    --shadow:  0 2px 20px rgba(194,100,122,0.08);
    --r: 14px;
    /* Bootstrap overrides */
    --bs-primary: var(--rose);
    --bs-secondary: var(--muted);
    --bs-success: #7abf9c;
    --bs-info: #7a9cbf;
    --bs-warning: #f0c15f;
    --bs-danger: #cf6f6f;
    --bs-light: var(--blush);
    --bs-dark: var(--ink);
    --app-font: 'DM Sans', sans-serif;
    --heading-font: var(--app-font);
    --bs-body-font-family: var(--app-font);
    --bs-body-bg: var(--cream);
    --bs-body-color: var(--ink);
    --bs-link-color: var(--rose-dk);
    --bs-border-color: var(--border);
    --bs-focus-ring-color: color-mix(in srgb, var(--rose) 25%, transparent);
    --bs-border-radius: var(--r);
    --bs-border-radius-sm: 8px;
    --bs-box-shadow: var(--shadow);
  }
