/* ─────────────────────────────────────────────────────────────────────────────
 * KND Dark Mode — three coexisting systems (do NOT consolidate):
 *   body.dark-theme  — base.html pages (CRM, planner, admin, settings)
 *   html[data-theme] — standalone portal pages (ecm/*, chw/*, hp/*, ihsp/*, intake/*)
 *   body.lm          — legacy light-mode override (some standalone pages)
 * --color-brand: #6366f1 — canonical brand indigo token
 * ─────────────────────────────────────────────────────────────────────────────
 * Activated by: body.dark-theme (toggle) + body.module-* (per-module tint)
 * Approved design: design/ihsp-chw-hp-dark-theme-v1.html (2026-05-21)
 * ───────────────────────────────────────────────────────────────────────────── */

/* ── 1. BASE DARK VARIABLES ─────────────────────────────────────── */
body.dark-theme {
  --color-surface:        #0f172a;
  --color-bg:             #020817;
  --color-bg-2:           #1e293b;
  --color-text:           #e2e8f0;
  --color-text-secondary: #94a3b8;
  --color-text-muted:     #64748b;
  --color-border:         #1e293b;
  --color-border-strong:  #334155;
  --shadow-sm:            0 1px 3px rgba(0,0,0,.4);
  --shadow-md:            0 4px 12px rgba(0,0,0,.4);
  --shadow-lg:            0 8px 24px rgba(0,0,0,.5);
  --shadow-xl:            0 16px 40px rgba(0,0,0,.6);
  /* Module tint fallback (overridden per module below) */
  --module-bg:     #020817;
  --module-nav:    #0f172a;
  --module-card:   #0c1e30;
  --module-border: #1e293b;
  --module-input:  #0f172a;
  /* Brand indigo — dark theme override of knd.css --color-brand (#667eea) */
  --color-brand:   #6366f1;
}

/* ── 2. MODULE-SPECIFIC TINT VARIABLES ──────────────────────────── */
body.dark-theme.module-ihsp {
  --module-bg:     #020d18;
  --module-nav:    #071623;
  --module-card:   #0c1e30;
  --module-border: #1a3448;
  --module-input:  #071623;
}
body.dark-theme.module-chw {
  --module-bg:     #020c08;
  --module-nav:    #061510;
  --module-card:   #0b1c12;
  --module-border: #163524;
  --module-input:  #061510;
}
body.dark-theme.module-hp {
  --module-bg:     #0a0802;
  --module-nav:    #130f02;
  --module-card:   #1a1503;
  --module-border: #2e2508;
  --module-input:  #130f02;
}

/* ── 3. GLOBAL PAGE + NAV ───────────────────────────────────────── */
body.dark-theme { background: var(--module-bg); color: var(--color-text); }
body.dark-theme .knd-page { background: var(--module-bg); }
body.dark-theme .knd-page-body { background: var(--module-bg); }
body.dark-theme .knd-page-body--full { background: var(--module-bg); }

body.dark-theme .knd-nav {
  background: var(--module-nav);
  border-bottom: 1px solid var(--module-border);
  box-shadow: none;
}
body.dark-theme .knd-nav-title { color: #f1f5f9; }
body.dark-theme .knd-nav-btn {
  color: #94a3b8;
  border-color: var(--module-border);
  background: transparent;
}
body.dark-theme .knd-nav-btn:hover {
  background: var(--module-card);
  color: #e2e8f0;
}
body.dark-theme .knd-nav-user { color: #64748b; }
body.dark-theme .knd-theme-toggle { opacity: .7; }
body.dark-theme .knd-theme-toggle:hover { opacity: 1; }

/* ── 4. IHSP TOOLBAR ────────────────────────────────────────────── */
body.dark-theme .plan-form-toolbar {
  background: var(--module-nav);
  border-bottom: 1px solid var(--module-border);
  box-shadow: none;
}
body.dark-theme .plan-form-back { color: #64748b; }
body.dark-theme .plan-form-back:hover {
  background: var(--module-card);
  color: #94a3b8;
}
body.dark-theme .plan-form-title { color: #f1f5f9; }

/* ── 5. CHW FORM HEADER ─────────────────────────────────────────── */
body.dark-theme .chw-form-header {
  background: var(--module-nav);
  border-bottom: 1px solid var(--module-border);
  box-shadow: none;
}
body.dark-theme .chw-form-breadcrumb { color: #64748b; }
body.dark-theme .chw-form-title { color: #f1f5f9; }
body.dark-theme .chw-save-status { color: #64748b; }

/* ── 6. HP OUTER WRAP ───────────────────────────────────────────── */
body.dark-theme .hp-wrap { background: var(--module-bg); }

/* ── 7. IHSP SECTIONS (.form-section / .form-section-header) ────── */
body.dark-theme .plan-form-wrap { background: var(--module-bg); }

body.dark-theme .form-section {
  background: var(--module-card);
  border: 1px solid var(--module-border);
  box-shadow: none;
}
body.dark-theme .form-section-header {
  background: var(--module-card);
  color: var(--color-text);
  border-bottom: 1px solid var(--module-border);
}
body.dark-theme .form-section-header:hover { filter: brightness(1.12); }
body.dark-theme .form-section-title { color: #f1f5f9; }
body.dark-theme .form-section-icon { opacity: .85; }
body.dark-theme .form-section-status { color: #64748b; }
body.dark-theme .form-section-chevron { color: #64748b; }
body.dark-theme .form-section-body {
  background: var(--module-card);
  border-top: 1px solid rgba(255,255,255,.05);
}

/* ── 8. CHW SECTIONS (.chw-section) ─────────────────────────────── */
body.dark-theme.module-chw .knd-table tbody tr:hover,
body.dark-theme.module-chw .knd-table tbody tr:hover td { background: #1a2540; }

body.dark-theme .chw-form-outer { background: var(--module-bg); }
body.dark-theme .chw-form-content { background: var(--module-bg); }
body.dark-theme .chw-form-body { background: var(--module-bg); }

body.dark-theme .chw-section {
  background: var(--module-card);
  border: 1px solid var(--module-border);
  box-shadow: none;
}
body.dark-theme .chw-section-header {
  background: var(--module-card);
  color: var(--color-text);
  border-bottom: 1px solid var(--module-border);
}
body.dark-theme .chw-section-header:hover { filter: brightness(1.12); }
body.dark-theme .chw-section-title { color: #f1f5f9; }
body.dark-theme .chw-section-icon { opacity: .85; }
body.dark-theme .chw-section-status { color: #64748b; }
body.dark-theme .chw-section-toggle { color: #64748b; }
body.dark-theme .chw-section-body {
  background: var(--module-card);
  border-top: 1px solid rgba(255,255,255,.05);
}
body.dark-theme .chw-lock-banner {
  background: #1c1409;
  border-color: #92400e;
  color: #fbbf24;
}

/* ── 9. MEMBER SUMMARY BOX ──────────────────────────────────────── */
body.dark-theme #memberSummaryBox,
body.dark-theme .memberSummaryBox {
  background: var(--module-input);
  border: 1px solid var(--module-border);
  color: var(--color-text);
  border-left: 3px solid var(--color-brand);
}
body.dark-theme .member-summary-label { color: #64748b; }
body.dark-theme .member-summary-value { color: #e2e8f0; }

/* ── 10. KND-SECTION-HEADER (page-level section titles) ─────────── */
body.dark-theme .knd-section-header h2 { color: #f1f5f9; }
body.dark-theme .knd-section-header p  { color: #64748b; }

/* ── 11. FORM LABELS ────────────────────────────────────────────── */
body.dark-theme .form-label,
body.dark-theme label.form-label { color: #94a3b8; }

/* ── 12. TEXT INPUTS, SELECTS, TEXTAREAS ────────────────────────── */
body.dark-theme .form-input,
body.dark-theme input.form-input,
body.dark-theme .form-select,
body.dark-theme select.form-select,
body.dark-theme .chw-field input,
body.dark-theme .chw-field select,
body.dark-theme .chw-field textarea,
body.dark-theme textarea {
  background: var(--module-input);
  border-color: var(--module-border);
  color: #e2e8f0;
}
body.dark-theme .form-input::placeholder,
body.dark-theme .chw-field input::placeholder,
body.dark-theme textarea::placeholder { color: #64748b; }

body.dark-theme .form-input:focus,
body.dark-theme .form-select:focus,
body.dark-theme .chw-field input:focus,
body.dark-theme .chw-field select:focus,
body.dark-theme .chw-field textarea:focus,
body.dark-theme textarea:focus {
  border-color: var(--color-brand);
  box-shadow: 0 0 0 2px rgba(99,102,241,.18);
  outline: none;
}

/* Readonly / disabled fields */
body.dark-theme .form-input[readonly],
body.dark-theme .form-input:disabled,
body.dark-theme .form-select:disabled {
  background: rgba(255,255,255,.04);
  color: #475569;
  border-color: var(--module-border);
}

/* Tom Select (dropdowns used in CHW/IHSP) */
body.dark-theme .ts-wrapper .ts-control {
  background: var(--module-input);
  border-color: var(--module-border);
  color: #e2e8f0;
}
body.dark-theme .ts-wrapper.focus .ts-control {
  border-color: var(--color-brand);
  box-shadow: 0 0 0 2px rgba(99,102,241,.18);
}
body.dark-theme .ts-dropdown {
  background: var(--module-nav);
  border-color: var(--module-border);
  box-shadow: 0 8px 24px rgba(0,0,0,.5);
}
body.dark-theme .ts-dropdown .option { color: #e2e8f0; }
body.dark-theme .ts-dropdown .option:hover,
body.dark-theme .ts-dropdown .option.active { background: var(--module-card); }
body.dark-theme .ts-dropdown .option.selected { background: #1e1b4b; color: #a5b4fc; }
body.dark-theme .ts-wrapper .ts-control .item { background: #1e1b4b; color: #a5b4fc; }

/* ── 13. FORM ROW / GRID WRAPPERS ───────────────────────────────── */
body.dark-theme .form-row { border-color: var(--module-border); }
body.dark-theme .form-grid-divider { border-color: var(--module-border); }

/* ── 14. BUTTONS ────────────────────────────────────────────────── */
/* Primary buttons stay indigo — no override needed */
body.dark-theme .btn-secondary,
body.dark-theme .btn-outline,
body.dark-theme .btn-default {
  background: var(--module-card);
  border-color: var(--module-border);
  color: #94a3b8;
}
body.dark-theme .btn-secondary:hover,
body.dark-theme .btn-outline:hover {
  background: #1e293b;
  color: #e2e8f0;
  border-color: #334155;
}
body.dark-theme .btn-ghost {
  background: transparent;
  color: #64748b;
  border-color: transparent;
}
body.dark-theme .btn-ghost:hover { color: #94a3b8; background: var(--module-card); }
body.dark-theme .btn-danger { background: #991b1b; border-color: #991b1b; color: #fff; }
body.dark-theme .btn-danger:hover { background: #7f1d1d; }

/* ── 15. STATUS BADGES ──────────────────────────────────────────── */
body.dark-theme .status-badge { box-shadow: none; }
body.dark-theme .status-badge--signed,
body.dark-theme .status-badge--complete {
  background: #052e16; color: #4ade80; border-color: #15803d;
}
body.dark-theme .status-badge--draft,
body.dark-theme .status-badge--unsigned {
  background: #1e293b; color: #94a3b8; border-color: #334155;
}
body.dark-theme .status-badge--pending {
  background: #1c1409; color: #fbbf24; border-color: #92400e;
}
body.dark-theme .status-badge--error,
body.dark-theme .status-badge--denied {
  background: #1a0a0a; color: #f87171; border-color: #991b1b;
}

/* ── 16. AUTOSAVE INDICATOR ─────────────────────────────────────── */
body.dark-theme #autosaveBadge { color: #475569; }
body.dark-theme #autosaveBadge.saving { color: var(--color-brand); }
body.dark-theme #autosaveBadge.saved  { color: #22c55e; }
body.dark-theme #autosaveBadge.error  { color: #ef4444; }
body.dark-theme #chw-save-status      { color: #475569; }
body.dark-theme #chw-save-status.saving { color: var(--color-brand); }
body.dark-theme #chw-save-status.saved  { color: #22c55e; }

/* ── 17. MODAL OVERLAYS ─────────────────────────────────────────── */
body.dark-theme .knd-modal-overlay { background: rgba(0,0,0,.7); }
body.dark-theme .knd-modal {
  background: var(--module-nav);
  border: 1px solid var(--module-border);
  box-shadow: 0 24px 60px rgba(0,0,0,.6);
  color: var(--color-text);
}
body.dark-theme .knd-modal-title { color: #f1f5f9; }
body.dark-theme .knd-modal-body  { color: #94a3b8; }

/* ── 18. HP SIDEBAR ─────────────────────────────────────────────── */
body.dark-theme .hp-sidebar {
  background: var(--module-nav);
  border-right: 1px solid var(--module-border);
}
body.dark-theme .hp-sidebar-title { color: #f1f5f9; }
body.dark-theme .hp-nav-item { color: #64748b; }
body.dark-theme .hp-nav-item:hover { background: var(--module-card); color: #94a3b8; }
body.dark-theme .hp-nav-item.active,
body.dark-theme .hp-nav-item.is-active {
  background: var(--module-card);
  color: #f1f5f9;
  border-left: 3px solid var(--color-brand);
}
body.dark-theme .hp-nav-status { color: #475569; }
body.dark-theme .hp-nav-num {
  background: #1e293b;
  color: #64748b;
}
body.dark-theme .hp-nav-item.active .hp-nav-num,
body.dark-theme .hp-nav-item.is-active .hp-nav-num {
  background: #1e1b4b;
  color: #a5b4fc;
}

/* ── 19. HP MAIN AREA ───────────────────────────────────────────── */
body.dark-theme .hp-main { background: var(--module-bg); }

/* ── 20. HP NOTE CARDS ──────────────────────────────────────────── */
body.dark-theme .hp-note-card {
  background: var(--module-card);
  border: 1px solid var(--module-border);
  box-shadow: none;
}
body.dark-theme .hp-note-card-header {
  background: var(--module-nav);
  border-bottom: 1px solid var(--module-border);
  color: #f1f5f9;
}
body.dark-theme .hp-note-card-body { color: #e2e8f0; }
body.dark-theme .hp-note-card-meta { color: #64748b; }
body.dark-theme .hp-note-card-actions { border-top: 1px solid var(--module-border); }

/* ── 21. HP PROGRESS BAR ────────────────────────────────────────── */
body.dark-theme .hp-progress-bar-wrap {
  background: var(--module-card);
  border-color: var(--module-border);
}
body.dark-theme .hp-progress-bar-fill { background: var(--color-brand); }
body.dark-theme .hp-progress-label { color: #64748b; }
body.dark-theme .hp-progress-pct { color: #a5b4fc; }

/* ── 22. CARD CONTAINERS (list page wrappers) ───────────────────── */
body.dark-theme .card {
  background: var(--module-card);
  border: 1px solid var(--module-border);
  box-shadow: none;
}

/* ── 23. FORMS TOOLBAR (search / filters above table) ──────────── */
body.dark-theme .forms-toolbar { border-color: var(--module-border); }
body.dark-theme .forms-toolbar input,
body.dark-theme .forms-toolbar select {
  background: var(--module-input);
  border-color: var(--module-border);
  color: #e2e8f0;
}
body.dark-theme .forms-toolbar input:focus,
body.dark-theme .forms-toolbar select:focus {
  border-color: var(--color-brand);
  box-shadow: 0 0 0 2px rgba(99,102,241,.18);
}

/* ── 24. KND-TABLE ──────────────────────────────────────────────── */
body.dark-theme .knd-table {
  background: var(--module-card);
  color: #e2e8f0;
  border-color: var(--module-border);
}
body.dark-theme .knd-table thead th {
  background: var(--module-nav);
  color: #64748b;
  border-bottom: 1px solid var(--module-border);
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: .06em;
}
body.dark-theme .knd-table tbody td {
  border-bottom: 1px solid var(--module-border);
  color: #e2e8f0;
}
body.dark-theme .knd-table tbody tr:hover    { background: transparent; }
body.dark-theme .knd-table tbody tr:hover td { background: rgba(255,255,255,.03); }
body.dark-theme .knd-table .table-id    { color: #475569; font-family: monospace; }
body.dark-theme .knd-table .table-name  { color: #f1f5f9; font-weight: 600; }
body.dark-theme .knd-table .table-date  { color: #64748b; }
body.dark-theme .knd-table .table-empty { color: #334155; }

/* ── 25. PAGINATION ─────────────────────────────────────────────── */
body.dark-theme .pagination { color: #64748b; }
body.dark-theme .pagination a {
  color: #94a3b8;
  border-color: var(--module-border);
  background: transparent;
}
body.dark-theme .pagination a:hover { background: var(--module-card); color: #e2e8f0; }
body.dark-theme .pagination .current {
  background: #1e1b4b;
  color: #a5b4fc;
  border-color: #3730a3;
}

/* ── 26. EMPTY STATE ────────────────────────────────────────────── */
body.dark-theme .empty-state { color: #334155; }
body.dark-theme .empty-state-icon { opacity: .3; }

/* ── 27. DARK SHELL — module label, step nav, member banner, action bar ── */

/* Module label strip */
body.dark-theme .mod-lbl {
  padding: 4px 16px;
  font-size: 9px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase;
  border-bottom: 1px solid var(--module-border);
  display: flex; align-items: center; gap: 6px;
  color: #64748b;
}
body.dark-theme .mod-lbl .acc-dot {
  width: 5px; height: 5px; border-radius: 50%; background: var(--color-brand); flex-shrink: 0;
}

/* App nav (dark shell version) */
body.dark-theme .dark-app-nav {
  height: 44px; display: flex; align-items: center; gap: 9px;
  padding: 0 16px;
  background: var(--module-nav);
  border-bottom: 1px solid var(--module-border);
  position: sticky; top: 0; z-index: 100;
}
body.dark-theme .dark-app-nav .logo-mark {
  font-size: 12px; font-weight: 700; color: #f1f5f9;
  display: flex; align-items: center; gap: 5px;
}
body.dark-theme .dark-app-nav .logo-dot {
  width: 7px; height: 7px; border-radius: 50%; background: var(--color-brand);
}
body.dark-theme .dark-app-nav .mod-name { font-size: 10px; color: #475569; margin-left: 2px; }
body.dark-theme .dark-app-nav .nav-sep  { flex: 1; }
body.dark-theme .dark-app-nav .nav-save { font-size: 10px; color: #64748b; display: flex; align-items: center; gap: 4px; }
body.dark-theme .dark-app-nav .nav-dot-ok   { width: 5px; height: 5px; border-radius: 50%; background: #22c55e; }
body.dark-theme .dark-app-nav .nav-dot-warn { width: 5px; height: 5px; border-radius: 50%; background: #f59e0b; }
body.dark-theme .dark-app-nav .nav-btn-dark {
  padding: 4px 10px; border-radius: 5px; font-size: 11px; font-weight: 600;
  cursor: pointer; font-family: inherit;
  color: #94a3b8; border: 1px solid var(--module-border); background: transparent;
}
body.dark-theme .dark-app-nav .nav-btn-dark:hover { background: var(--module-card); color: #e2e8f0; }
body.dark-theme .dark-app-nav .nav-btn-primary {
  background: var(--color-brand); border: 1px solid var(--color-brand); color: #fff;
}
body.dark-theme .dark-app-nav .nav-btn-primary:hover { background: #4f46e5; }

/* Step tab navigation */
body.dark-theme .dark-step-nav {
  display: flex; padding: 0 16px;
  background: var(--module-nav);
  border-bottom: 1px solid var(--module-border);
  overflow-x: auto; flex-shrink: 0;
}
body.dark-theme .dark-step-tab {
  padding: 9px 12px; font-size: 11px; font-weight: 600;
  color: #64748b; border-bottom: 2px solid transparent;
  cursor: pointer; white-space: nowrap;
  display: flex; align-items: center; gap: 5px;
  transition: color 0.15s, border-color 0.15s;
  user-select: none;
}
body.dark-theme .dark-step-tab:hover { color: #94a3b8; }
body.dark-theme .dark-step-tab.active { color: #a5b4fc; border-bottom-color: var(--color-brand); }
body.dark-theme .dark-step-tab.visited { color: #94a3b8; }
body.dark-theme .dark-step-num {
  width: 16px; height: 16px; border-radius: 50%;
  background: #2d3f55; color: #94a3b8;
  font-size: 9px; font-weight: 700;
  display: flex; align-items: center; justify-content: center; flex-shrink: 0;
}
body.dark-theme .dark-step-tab.active  .dark-step-num { background: #1e1b4b; color: #a5b4fc; }
body.dark-theme .dark-step-tab.visited .dark-step-num { background: rgba(99,102,241,.12); color: var(--color-brand); }

/* Member banner */
body.dark-theme .dark-member-banner {
  padding: 10px 16px; display: flex; align-items: center; gap: 10px;
  background: var(--module-nav);
  border-bottom: 1px solid var(--module-border);
  border-left: 3px solid var(--color-brand);
  flex-shrink: 0;
}
body.dark-theme .dark-m-avatar {
  width: 32px; height: 32px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-size: 12px; font-weight: 700; flex-shrink: 0;
}
body.dark-theme.module-ihsp .dark-m-avatar { background: #1e1b4b; border: 1px solid #3730a3; color: #a5b4fc; }
body.dark-theme.module-chw .dark-m-avatar  { background: #052e16; border: 1px solid #15803d; color: #4ade80; } /* kept for backward compat */
/* module-chw .dark-member-banner border override removed 2026-05-28 — form.html now standalone */
body.dark-theme.module-hp  .dark-m-avatar  { background: #1c1409; border: 1px solid #92400e; color: #fbbf24; }
body.dark-theme .dark-m-name { font-size: 13px; font-weight: 700; color: #f1f5f9; }
body.dark-theme .dark-m-meta { font-size: 10px; color: #94a3b8; display: flex; gap: 8px; flex-wrap: wrap; margin-top: 2px; }
body.dark-theme .dark-s-pill { padding: 2px 8px; border-radius: 10px; font-size: 10px; font-weight: 700; flex-shrink: 0; }
body.dark-theme .dark-s-pill.active  { background: #052e16; color: #4ade80; border: 1px solid #15803d; }
body.dark-theme .dark-s-pill.draft   { background: #1e293b; color: #94a3b8; border: 1px solid #334155; }
body.dark-theme .dark-s-pill.signed  { background: #052e16; color: #4ade80; border: 1px solid #15803d; }
body.dark-theme .dark-s-pill.pending { background: #1c1409; color: #fbbf24; border: 1px solid #92400e; }

/* Content area */
body.dark-theme .dark-content-area {
  flex: 1; overflow-y: auto;
  padding: 16px 16px 80px;
  background: var(--module-bg);
}

/* Section title upgrade — uppercase indigo label (form-section only, not CHW sections) */
body.dark-theme .form-section-title {
  font-size: 10px !important;
  font-weight: 700 !important;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: var(--color-brand) !important;
}

/* Action bar */
body.dark-theme .dark-action-bar {
  position: sticky; bottom: 0; z-index: 50;
  padding: 9px 16px;
  background: var(--module-nav);
  border-top: 1px solid var(--module-border);
  display: flex; align-items: center; gap: 8px;
  flex-shrink: 0;
}
body.dark-theme .dark-action-bar .ab-auto {
  font-size: 10px; color: #475569; flex: 1;
  display: flex; align-items: center; gap: 5px;
}

/* ── 28. MISSING COMPONENT SELECTORS ────────────────────────────── */

/* Signature blocks */
body.dark-theme .sig-block,
body.dark-theme .sig-box {
  background: var(--module-card); border: 1px solid var(--module-border); border-radius: 6px;
}
body.dark-theme .sig-label,
body.dark-theme .sig-box-title { color: #64748b; font-size: 11px; }
body.dark-theme .sig-canvas-placeholder,
body.dark-theme .sig-canvas-wrap { background: var(--module-input); border-color: var(--module-border); }
body.dark-theme .sig-field { color: #e2e8f0; border-color: var(--module-border); }
body.dark-theme .sig-applied { color: #4ade80; }
body.dark-theme .sig-static-display { color: #94a3b8; }
body.dark-theme .sig-grid { border-color: var(--module-border); }
body.dark-theme .sig-actions .btn { border-color: var(--module-border); }

/* Field hints */
body.dark-theme .field-hint { color: #475569; font-size: 11px; }

/* Form textareas (class-based) */
body.dark-theme .form-textarea,
body.dark-theme .form-textarea--tall {
  background: var(--module-input);
  border-color: var(--module-border);
  color: #e2e8f0;
}
body.dark-theme .form-textarea:focus,
body.dark-theme .form-textarea--tall:focus {
  border-color: var(--color-brand);
  box-shadow: 0 0 0 2px rgba(99,102,241,.18);
}

/* Form dividers */
body.dark-theme .chw-form-divider { border-color: var(--module-border); }

/* SDOH grid & checkboxes */
body.dark-theme .sdoh-grid { border-color: var(--module-border); }
body.dark-theme .sdoh-checkbox-item { color: #e2e8f0; }
body.dark-theme input[type="checkbox"],
body.dark-theme input[type="radio"] { accent-color: var(--color-brand); }

/* ICD-10 / CPT code widget */
body.dark-theme .icd10-wrap,
body.dark-theme .icd10-input { background: var(--module-input); border-color: var(--module-border); color: #e2e8f0; }
body.dark-theme .cpt-code  { color: #a5b4fc; }
body.dark-theme .cpt-desc  { color: #94a3b8; }
body.dark-theme .cpt-rationale { color: #64748b; }
body.dark-theme .cpt-result-item { background: var(--module-card); border-color: var(--module-border); }
body.dark-theme .cpt-state { color: #64748b; }

/* CHW documents section */
body.dark-theme .chw-docs-section,
body.dark-theme .step-docs { border-color: var(--module-border); }
body.dark-theme .chw-docs-section-header,
body.dark-theme .step-docs-header { background: var(--module-card); color: #f1f5f9; border-color: var(--module-border); }
body.dark-theme .chw-docs-section-body,
body.dark-theme .step-docs-body { background: var(--module-card); }
body.dark-theme .step-docs-row { border-color: var(--module-border); color: #e2e8f0; }
body.dark-theme .step-docs-empty { color: #334155; }
body.dark-theme .step-docs-title { color: #f1f5f9; }
body.dark-theme .step-docs-status { color: #64748b; }

/* CHW goal cards */
body.dark-theme .chw-goal-card-header { background: var(--module-card); border-color: var(--module-border); color: #f1f5f9; }
body.dark-theme .chw-goal-card-body   { background: var(--module-card); border-color: var(--module-border); }
body.dark-theme .chw-goal-card-title  { color: #f1f5f9; }
body.dark-theme .chw-goal-chevron     { color: #475569; }
body.dark-theme .chw-ai-spinner       { color: var(--color-brand); }
body.dark-theme .chw-cpt-state        { color: #64748b; }

/* HP-specific tags and hints */
body.dark-theme .hp-tag       { background: var(--module-card); border-color: var(--module-border); color: #94a3b8; }
body.dark-theme .hp-tag-auto  { background: #1e1b4b; border-color: #3730a3; color: #a5b4fc; }
body.dark-theme .hp-tag-exhibit { background: #1c1409; border-color: #92400e; color: #fbbf24; }
body.dark-theme .hp-crm-hint  { color: #475569; font-size: 11px; }
body.dark-theme .hp-note-count-badge { background: #1e1b4b; color: #a5b4fc; border-color: #3730a3; }
body.dark-theme .hp-notes-empty  { color: #334155; }
body.dark-theme .hp-notes-toolbar { border-color: var(--module-border); background: var(--module-nav); }

/* Section-right containers */
body.dark-theme .chw-section-right { display: flex; align-items: center; gap: 8px; }
body.dark-theme .plan-form-toolbar-right { display: flex; align-items: center; gap: 8px; }
body.dark-theme .chw-form-header-right   { display: flex; align-items: center; gap: 8px; }

/* ── 29a. SEGMENTED THEME TOGGLE ────────────────────────────────── */
.knd-seg-toggle {
  display: flex; align-items: center; gap: 0;
  border: 1px solid #2a2a2a; border-radius: 6px;
  overflow: hidden; flex-shrink: 0;
}
.knd-seg-opt {
  padding: 4px 10px; font-size: 11px; font-weight: 600;
  color: #555; background: transparent;
  border: none; cursor: pointer; font-family: inherit;
  transition: color 0.15s, background 0.15s;
  white-space: nowrap;
}
.knd-seg-opt.active    { background: #1e1e1e; color: #c4c8f0; }
.knd-seg-toggle.light-mode { border-color: #c8cfe8; }
.knd-seg-toggle.light-mode .knd-seg-opt.active { background: #eef0fc; color: #4c51bf; }
.knd-seg-toggle.light-mode .knd-seg-opt:not(.active) { color: #9098c8; }

/* ── 29. HIDE DUPLICATE LIGHT TOOLBAR IN DARK MODE ─────────────── */
body.dark-theme .plan-form-toolbar { display: none !important; }
body.dark-theme .chw-form-header   { display: none !important; }

/* ── 30. CREATE PAGE (s1-*) OVERRIDES ───────────────────────────── */
body.dark-theme .s1-container {
  background: var(--module-card) !important;
  border: 1px solid var(--module-border);
  box-shadow: 0 8px 32px rgba(0,0,0,.5);
  color: var(--color-text);
}
body.dark-theme .s1-phase-card {
  background: var(--module-card);
  border-color: var(--module-border) !important;
}
body.dark-theme .s1-phase-header {
  background: var(--module-nav) !important;
  border-bottom-color: var(--module-border) !important;
  color: #f1f5f9;
}
body.dark-theme .s1-tab {
  border-color: var(--module-border) !important;
  background: var(--module-card) !important;
  color: #94a3b8 !important;
}
body.dark-theme .s1-tab--active {
  background: var(--color-brand) !important;
  border-color: var(--color-brand) !important;
  color: #fff !important;
}
body.dark-theme .s1-tab:hover:not(.s1-tab--active) {
  border-color: var(--color-brand) !important;
  color: #a5b4fc !important;
}
body.dark-theme .crm-search-input {
  background: var(--module-input) !important;
  border-color: var(--module-border) !important;
  color: #e2e8f0 !important;
}
body.dark-theme .crm-search-input:focus {
  border-color: var(--color-brand) !important;
  box-shadow: 0 0 0 2px rgba(99,102,241,.18) !important;
}
body.dark-theme .crm-result-item {
  background: var(--module-input) !important;
  border-color: var(--module-border) !important;
  color: #e2e8f0;
}
body.dark-theme .crm-result-item:hover { background: var(--module-card) !important; }
body.dark-theme .crm-result-name { color: #f1f5f9 !important; }
body.dark-theme .crm-result-meta { color: #64748b !important; }
body.dark-theme .crm-status-msg  { color: #64748b !important; }
body.dark-theme .crm-contact-card,
body.dark-theme .contact-card {
  background: var(--module-nav) !important;
  border-color: var(--color-brand) !important;
}
body.dark-theme .contact-card-detail { color: #64748b !important; }
body.dark-theme .places-item {
  background: var(--module-input) !important;
  border-color: var(--module-border) !important;
  color: #e2e8f0 !important;
}
body.dark-theme .places-item:hover { background: var(--module-card) !important; }
body.dark-theme #intakeText {
  background: var(--module-input) !important;
  border-color: var(--module-border) !important;
  color: #e2e8f0 !important;
}
body.dark-theme #intakeText:focus {
  border-color: var(--color-brand) !important;
  box-shadow: 0 0 0 2px rgba(99,102,241,.18) !important;
}
body.dark-theme #intakeText::placeholder { color: #64748b !important; }
body.dark-theme .s1-error {
  background: #1a0a0a !important;
  border-color: #991b1b !important;
  color: #f87171 !important;
}
/* Page-level background for create flow */
body.dark-theme .knd-page-body { background: var(--module-bg); }
body.dark-theme h1 { color: #f1f5f9; }
body.dark-theme h2 { color: #e2e8f0; }
body.dark-theme .knd-label { color: #64748b; }

/* ── 31. LIGHT MODE OVERRIDES ──────────────────────────────────────
   When body.dark-theme is OFF, restore readable colors for dark-shell
   nav elements that use hardcoded dark hex values.
────────────────────────────────────────────────────────────────── */

/* Module label strip */
body:not(.dark-theme) .mod-lbl { color: var(--color-text-muted); }

/* Dark app nav (IHSP/CHW/HP form pages) */
/* Generic light-mode override — not for module pages that keep a dark nav */
body:not(.dark-theme):not(.module-ihsp):not(.module-chw):not(.module-hp) .dark-app-nav {
  background: var(--color-surface);
  border-bottom: 1px solid var(--color-border);
}
/* Module pages: keep dark-app-nav dark in light mode too */
body:not(.dark-theme).module-ihsp .dark-app-nav,
body:not(.dark-theme).module-chw .dark-app-nav,
body:not(.dark-theme).module-hp .dark-app-nav {
  background: #1e293b;
  border-bottom: 1px solid #334155;
}
body:not(.dark-theme).module-chw .knd-nav,
body:not(.dark-theme).module-ihsp .knd-nav,
body:not(.dark-theme).module-hp .knd-nav {
  background: #1e293b;
  border-bottom: 1px solid #334155;
  box-shadow: none;
}
body:not(.dark-theme).module-chw .knd-nav-btn,
body:not(.dark-theme).module-ihsp .knd-nav-btn,
body:not(.dark-theme).module-hp .knd-nav-btn {
  color: #cbd5e1;
  border-color: #475569;
}
body:not(.dark-theme).module-chw .knd-nav-btn:hover,
body:not(.dark-theme).module-ihsp .knd-nav-btn:hover,
body:not(.dark-theme).module-hp .knd-nav-btn:hover {
  color: #f1f5f9;
  background: rgba(255,255,255,.08);
}
body:not(.dark-theme).module-chw .knd-nav-title,
body:not(.dark-theme).module-ihsp .knd-nav-title,
body:not(.dark-theme).module-hp .knd-nav-title {
  color: #f1f5f9;
}
body:not(.dark-theme).module-chw .knd-nav-user,
body:not(.dark-theme).module-ihsp .knd-nav-user,
body:not(.dark-theme).module-hp .knd-nav-user {
  color: #94a3b8;
}
body:not(.dark-theme) .dark-app-nav .logo-mark { color: var(--color-text); }
body:not(.dark-theme) .dark-app-nav .mod-name  { color: var(--color-text-secondary); }
body:not(.dark-theme) .dark-app-nav .nav-save  { color: var(--color-text-muted); }
body:not(.dark-theme) .dark-app-nav .nav-btn-dark {
  color: var(--color-text-secondary);
  border-color: var(--color-border);
  background: transparent;
}
body:not(.dark-theme) .dark-app-nav .nav-btn-dark:hover {
  background: var(--color-bg-2); color: var(--color-text);
}
body:not(.dark-theme) .dark-app-nav .nav-btn-primary {
  background: var(--color-brand); border-color: var(--color-brand); color: #fff;
}

/* Dark step nav (slim pill tabs — CHW/HP) */
body:not(.dark-theme) .dark-step-nav {
  background: var(--color-surface);
  border-bottom: 1px solid var(--color-border);
}
body:not(.dark-theme) .dark-step-tab         { color: var(--color-text-secondary); }
body:not(.dark-theme) .dark-step-tab:hover   { color: var(--color-text); }
body:not(.dark-theme) .dark-step-tab.active  { color: var(--color-brand); border-bottom-color: var(--color-brand); }
body:not(.dark-theme) .dark-step-tab.visited { color: var(--color-text-muted); }
body:not(.dark-theme) .dark-step-num {
  background: var(--color-bg-2); color: var(--color-text-secondary);
}
body:not(.dark-theme) .dark-step-tab.active .dark-step-num {
  background: #f0f4ff; color: var(--color-brand);
}

/* Dark member banner (CHW/HP) */
body:not(.dark-theme) .dark-member-banner {
  background: var(--color-surface);
  border-bottom: 1px solid var(--color-border);
  border-left-color: var(--color-brand);
}
body:not(.dark-theme) .dark-m-avatar { background: var(--color-bg-2); color: var(--color-text); }
body:not(.dark-theme) .dark-m-name   { color: var(--color-text); }
body:not(.dark-theme) .dark-m-meta   { color: var(--color-text-muted); }
body:not(.dark-theme) .dark-s-pill.active,
body:not(.dark-theme) .dark-s-pill.signed  { background: #f0fff4; color: #276749; border-color: #9ae6b4; }
body:not(.dark-theme) .dark-s-pill.draft   { background: var(--color-bg-2); color: var(--color-text-secondary); border-color: var(--color-border); }
body:not(.dark-theme) .dark-s-pill.pending { background: #fffbeb; color: #92400e; border-color: #fcd34d; }

/* Action bars */
body:not(.dark-theme) .ihsp-action-bar,
body:not(.dark-theme) .dark-action-bar {
  background: var(--color-surface);
  border-top: 1px solid var(--color-border);
}

/* Segmented theme toggle (light mode ring) */
body:not(.dark-theme) .knd-seg-toggle { border-color: #c8cfe8; }
body:not(.dark-theme) .knd-seg-opt.active { background: #eef0fc; color: #4c51bf; }

/* ── CHW goal cards (light mode) ── */
body:not(.dark-theme) .chw-goal-comp { border-bottom: 1px solid var(--color-border); }
body:not(.dark-theme) .chw-goal-comp-label { background: var(--color-bg-2); border-right: 1px solid var(--color-border); }
body:not(.dark-theme) .chw-goal-comp-label .comp-hint { color: var(--color-text-muted); }
body:not(.dark-theme) .chw-goal-comp-ta { color: var(--color-text); }
body:not(.dark-theme) .chw-goal-comp-ta::placeholder { color: var(--color-text-muted); }

/* ── CHW AI suggestion banners (light mode) ── */
body:not(.dark-theme) .chw-suggest-feedback { color: var(--color-text); }
body:not(.dark-theme) .chw-suggest-preview { background: var(--color-bg-2); border-color: var(--color-border); color: var(--color-text-secondary); }

/* ── CHW payer banner (light mode) ── */
body:not(.dark-theme) .chw-payer-name   { color: var(--color-text); }
body:not(.dark-theme) .chw-payer-format { color: var(--color-text-muted); }
body:not(.dark-theme) .chw-bi-label     { color: var(--color-text-secondary); }
body:not(.dark-theme) .chw-bi-note      { color: var(--color-text-muted); }

/* ── CHW 3-tab nav (light mode) ── */
body:not(.dark-theme) .chw-step-nav {
  background: var(--color-surface);
  border-bottom: 1px solid var(--color-border);
}
body:not(.dark-theme) .chw-tab:not(.active):not(.done) {
  background: var(--color-bg-2);
  border: 1px solid var(--color-border);
}
body:not(.dark-theme) .chw-tab.active { background: #eef2ff; border-bottom-color: var(--color-brand); border: 1px solid #c7d2fe; }
body:not(.dark-theme) .chw-tab.done   { background: #f0fdf4; border-bottom-color: #16a34a; border: 1px solid #bbf7d0; }
body:not(.dark-theme) .chw-tab-lbl { color: var(--color-text-muted); }
body:not(.dark-theme) .chw-tab-name { color: var(--color-text-secondary); }
body:not(.dark-theme) .chw-tab-sub { color: var(--color-text-muted); }
body:not(.dark-theme) .chw-tab.active .chw-tab-lbl { color: var(--color-brand); }
body:not(.dark-theme) .chw-tab.done   .chw-tab-lbl { color: #16a34a; }
body:not(.dark-theme) .chw-tab.active .chw-tab-name { color: var(--color-text); }
body:not(.dark-theme) .chw-tab.done   .chw-tab-name { color: #15803d; }
body:not(.dark-theme) .chw-tab.active .chw-tab-sub  { color: #818cf8; }
body:not(.dark-theme) .chw-tab.done   .chw-tab-sub  { color: #16a34a; }

/* ── CHW horizontal member banner (light mode) ── */
body:not(.dark-theme) .chw-m-field-lbl { color: var(--color-text-muted); }
body:not(.dark-theme) .chw-m-field-val { color: var(--color-text); }
body:not(.dark-theme) .chw-m-field-val.mono { color: #15803d; }
body:not(.dark-theme) .chw-m-divider   { background: var(--color-border); }

/* ── 28. CASELOAD MANAGER ───────────────────────────────────────── */

/* Stat cards */
body.dark-theme .stat-card {
  background: var(--module-card);
  border-color: var(--module-border);
  box-shadow: none;
}
body.dark-theme .stat-card:hover {
  border-color: var(--color-brand);
  box-shadow: 0 0 0 3px rgba(99,102,241,.15);
}
body.dark-theme .stat-card.stat-active {
  border-color: var(--color-brand);
  box-shadow: 0 0 0 3px rgba(99,102,241,.18);
}
body.dark-theme .stat-label { color: #64748b; }
body.dark-theme .stat-value { color: #e2e8f0; }
body.dark-theme .stat-sub   { color: #475569; }
body.dark-theme .stat-card.s-ecm  .stat-label,
body.dark-theme .stat-card.s-ecm  .stat-value { color: #818cf8; }
body.dark-theme .stat-card.s-ihsp .stat-label,
body.dark-theme .stat-card.s-ihsp .stat-value { color: #4ade80; }
body.dark-theme .stat-card.s-chw  .stat-label,
body.dark-theme .stat-card.s-chw  .stat-value { color: #fb923c; }
body.dark-theme .stat-card.s-hp   .stat-label,
body.dark-theme .stat-card.s-hp   .stat-value { color: #f87171; }

/* Plan bar chart card */
body.dark-theme .plan-card {
  background: var(--module-card);
  border-color: var(--module-border);
  box-shadow: none;
}
body.dark-theme .plan-bar-bg { background: var(--module-border); }
body.dark-theme .plan-name   { color: #64748b; }
body.dark-theme .plan-count  { color: #64748b; }
body.dark-theme .plan-row:hover .plan-name { color: #818cf8; }

/* Toolbar */
body.dark-theme .toolbar {
  background: var(--module-card);
  border-color: var(--module-border);
}
body.dark-theme .search-input {
  background: var(--module-nav);
  border-color: var(--module-border);
  color: #e2e8f0;
}
body.dark-theme .search-input::placeholder { color: #475569; }
body.dark-theme .search-input:focus {
  border-color: var(--color-brand);
  background: var(--module-card);
  box-shadow: 0 0 0 3px rgba(99,102,241,.15);
}
body.dark-theme .search-icon  { color: #475569; }
body.dark-theme .search-clear { color: #475569; }
body.dark-theme .toolbar-divider { background: var(--module-border); }
body.dark-theme .count-badge      { color: #64748b; }
body.dark-theme .count-badge span { color: #818cf8; }

/* Program filter chips */
body.dark-theme .chip {
  background: var(--module-nav);
  border-color: var(--module-border);
  color: #64748b;
}
body.dark-theme .chip:hover       { border-color: var(--color-brand); color: #818cf8; }
body.dark-theme .chip.active      { background: var(--color-brand); border-color: var(--color-brand); color: #fff; }
body.dark-theme .chip.c-ecm.active  { background: #2563eb; border-color: #2563eb; }
body.dark-theme .chip.c-ihsp.active { background: #16a34a; border-color: #16a34a; }
body.dark-theme .chip.c-chw.active  { background: #c2410c; border-color: #c2410c; }
body.dark-theme .chip.c-hp.active   { background: #dc2626; border-color: #dc2626; }

/* Toolbar & group-by selects */
body.dark-theme .toolbar-select,
body.dark-theme .mini-select {
  background-color: var(--module-nav);
  border-color: var(--module-border);
  color: #94a3b8;
}
body.dark-theme .toolbar-select:focus,
body.dark-theme .mini-select:focus { border-color: var(--color-brand); }

/* Group-by bar */
body.dark-theme .groupby-bar {
  background: var(--module-nav);
  border-color: var(--module-border);
  border-top-color: var(--module-border);
}
body.dark-theme .groupby-label { color: #475569; }
body.dark-theme .groupby-opt {
  background: var(--module-card);
  border-color: var(--module-border);
  color: #64748b;
}
body.dark-theme .groupby-opt:hover  { border-color: var(--color-brand); color: #818cf8; }
body.dark-theme .groupby-opt.active { background: #1e1b4b; border-color: #4338ca; color: #a5b4fc; }

/* Table wrapper */
body.dark-theme .table-wrap {
  background: var(--module-card);
  border-color: var(--module-border);
  box-shadow: none;
}
body.dark-theme thead th {
  background: var(--module-nav);
  color: #475569;
  border-bottom: 2px solid var(--module-border);
}
body.dark-theme thead th:hover { color: #818cf8; }
body.dark-theme thead th.sorted-asc  .si::after,
body.dark-theme thead th.sorted-desc .si::after { color: #818cf8; }

/* Table rows — replace hardcoded #f0f4f8, #f7f9ff, #eef2ff */
body.dark-theme tbody tr.member-row         { border-bottom: 1px solid var(--module-border); }
body.dark-theme tbody tr.member-row:hover   { background: rgba(99,102,241,.06); }
body.dark-theme tbody tr.member-row.expanded-row { background: rgba(99,102,241,.1); border-bottom: none; }
body.dark-theme tbody tr.drill-tr           { border-bottom: 1px solid var(--module-border); }
body.dark-theme tbody tr.group-hdr td {
  background: var(--module-nav);
  color: #475569;
  border-color: var(--module-border);
}
body.dark-theme tbody tr.group-hdr:hover { background: var(--module-nav); }

/* Table cell text */
body.dark-theme .td-exp                  { color: #334155; }
body.dark-theme tr.expanded-row .td-exp  { color: #818cf8; }
body.dark-theme .td-mrn                  { color: #475569; }
body.dark-theme .td-name                 { color: #e2e8f0; }
body.dark-theme .td-name small           { color: #475569; }
body.dark-theme .td-plan                 { color: #94a3b8; }
body.dark-theme .td-plan small           { color: #475569; }
body.dark-theme .td-asgn                 { color: #94a3b8; }
body.dark-theme .td-asgn small           { color: #475569; }
body.dark-theme .td-act                  { color: #475569; }

/* Program badges — dark equivalents of light pastel backgrounds */
body.dark-theme .b-ecm  { background: #1e1b4b; color: #818cf8; border-color: #3730a3; }
body.dark-theme .b-ihsp { background: #052e16; color: #4ade80; border-color: #15803d; }
body.dark-theme .b-chw  { background: #1c1409; color: #fb923c; border-color: #92400e; }
body.dark-theme .b-hp   { background: #1a0a0a; color: #f87171; border-color: #991b1b; }

/* Status badges */
body.dark-theme .s-enrolled { background: #052e16; color: #4ade80; border-color: #15803d; }
body.dark-theme .s-pending  { background: #1c1409; color: #fbbf24; border-color: #92400e; }
body.dark-theme .s-urgent   { background: #1a0a0a; color: #f87171; border-color: #991b1b; }
body.dark-theme .dot-enrolled { background: #4ade80; }
body.dark-theme .dot-pending  { background: #fb923c; }
body.dark-theme .dot-urgent   { background: #f87171; }

/* Label chips — replace hardcoded pastel backgrounds */
body.dark-theme .lc-blue   { background: #1e1b4b; color: #818cf8; }
body.dark-theme .lc-green  { background: #052e16; color: #4ade80; }
body.dark-theme .lc-orange { background: #1c1409; color: #fb923c; }
body.dark-theme .lc-red    { background: #1a0a0a; color: #f87171; }
body.dark-theme .lc-purple { background: #2e1065; color: #c084fc; }
body.dark-theme .lc-more   { background: #1e1b4b; color: #818cf8; }
body.dark-theme .lc-add {
  background: var(--module-nav);
  color: #475569;
  border-color: var(--module-border);
}
body.dark-theme .lc-add:hover {
  background: var(--module-card);
  color: #818cf8;
  border-color: var(--color-brand);
}

/* Drill panel — replace hardcoded #eef2ff / #c3d2f7 */
body.dark-theme .drill-panel {
  background: rgba(99,102,241,.07);
  border-top: 1px solid rgba(99,102,241,.2);
}
body.dark-theme .drill-section-title { color: #818cf8; }
body.dark-theme .dk      { color: #64748b; }
body.dark-theme .dv      { color: #e2e8f0; }
body.dark-theme .dv.ok   { color: #4ade80; }
body.dark-theme .dv.warn { color: #fbbf24; }
body.dark-theme .dv.bad  { color: #f87171; }
body.dark-theme .drill-actions { border-top: 1px solid rgba(99,102,241,.2); }
body.dark-theme .db {
  background: var(--module-card);
  border-color: #4338ca;
  color: #818cf8;
}
body.dark-theme .db:hover         { background: #1e1b4b; }
body.dark-theme .db.primary       { background: var(--color-brand); border-color: var(--color-brand); color: #fff; }
body.dark-theme .db.primary:hover { background: #4f46e5; }

/* Pagination */
body.dark-theme .table-footer {
  background: var(--module-nav);
  border-color: var(--module-border);
  border-top-color: var(--module-border);
}
body.dark-theme .page-info { color: #475569; }
body.dark-theme .page-btn {
  background: var(--module-card);
  border-color: var(--module-border);
  color: #64748b;
}
body.dark-theme .page-btn:hover  { border-color: var(--color-brand); color: #818cf8; }
body.dark-theme .page-btn.active { background: var(--color-brand); border-color: var(--color-brand); color: #fff; }

/* Label modal */
body.dark-theme .modal-overlay { background: rgba(0,0,0,.6); }
body.dark-theme .modal {
  background: var(--module-card);
  border: 1px solid var(--module-border);
  box-shadow: 0 20px 60px rgba(0,0,0,.6);
}
body.dark-theme .modal h3                    { color: #f1f5f9; }
body.dark-theme .modal-label-opt             { border-color: var(--module-border); color: #94a3b8; }
body.dark-theme .modal-label-opt:hover       { border-color: var(--color-brand); background: rgba(99,102,241,.1); }
body.dark-theme .modal-label-opt.selected    { border-color: var(--color-brand); background: #1e1b4b; }
body.dark-theme .modal-close {
  background: var(--module-nav);
  border-color: var(--module-border);
  color: #64748b;
}
body.dark-theme .modal-apply { background: var(--color-brand); border-color: var(--color-brand); }

/* Sort flash — override hardcoded #faf5ff keyframe */
@keyframes flash-dark { 0% { background: rgba(99,102,241,.2); } 100% { background: transparent; } }
body.dark-theme tr.sort-flash { animation: flash-dark 600ms ease-out; }

/* CHW form type badges — dark theme overrides */
body.dark-theme .badge-short { background: var(--status-pending-bg); color: var(--status-pending); border-color: var(--status-pending-border); }
body.dark-theme .badge-long  { background: var(--color-info-bg);     color: var(--color-info);     border-color: var(--color-info-border); }
