/*
 * Morong Health Center Management Information System — UI/UX V4.3
 * Static-first component system. Loaded LAST by HtmlSecurityInjector.
 * No dependency on runtime DOM normalizers for layout.
 */

:root {
  --mhs-sidebar-w: 276px;
  --mhs-sidebar-collapsed-w: 84px;
  --mhs-radius-xs: 7px;
  --mhs-radius-sm: 10px;
  --mhs-radius: 14px;
  --mhs-radius-lg: 20px;
  --mhs-shadow-sm: 0 2px 8px rgba(13, 49, 58, .06);
  --mhs-shadow: 0 12px 34px rgba(12, 42, 51, .09);
  --mhs-transition: 160ms ease;
  --mhs-font: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

html[data-mhs-theme="light"],
html:not([data-mhs-theme]) {
  color-scheme: light;
  --mhs-bg: #eef5f6;
  --mhs-bg-soft: #f7fafb;
  --mhs-surface: #ffffff;
  --mhs-surface-2: #f5f9fa;
  --mhs-surface-3: #edf4f5;
  --mhs-text: #18323a;
  --mhs-heading: #0c3640;
  --mhs-muted: #667f86;
  --mhs-muted-2: #8ba0a6;
  --mhs-border: #d8e5e8;
  --mhs-border-strong: #bfd2d6;
  --mhs-primary: #0f7d78;
  --mhs-primary-strong: #0b6865;
  --mhs-primary-soft: #e3f5f2;
  --mhs-blue: #1778a6;
  --mhs-blue-soft: #e7f4fb;
  --mhs-success: #167a57;
  --mhs-success-soft: #e8f6ef;
  --mhs-warning: #9a6907;
  --mhs-warning-soft: #fff5db;
  --mhs-danger: #b43e48;
  --mhs-danger-soft: #fdecef;
  --mhs-purple: #7151a3;
  --mhs-input: #ffffff;
  --mhs-table-head: #edf5f6;
  --mhs-table-stripe: #f9fbfc;
  --mhs-table-hover: #eef8f7;
  --mhs-overlay: rgba(4, 22, 28, .58);
}

html[data-mhs-theme="dark"] {
  color-scheme: dark;
  --mhs-bg: #07181e;
  --mhs-bg-soft: #0b2027;
  --mhs-surface: #10262d;
  --mhs-surface-2: #142d34;
  --mhs-surface-3: #19363e;
  --mhs-text: #e5f0f2;
  --mhs-heading: #f5fbfc;
  --mhs-muted: #9db1b7;
  --mhs-muted-2: #7f989f;
  --mhs-border: #29434b;
  --mhs-border-strong: #38565f;
  --mhs-primary: #2bb7aa;
  --mhs-primary-strong: #45c8bc;
  --mhs-primary-soft: #123c3b;
  --mhs-blue: #58b7e0;
  --mhs-blue-soft: #153642;
  --mhs-success: #52c993;
  --mhs-success-soft: #153d31;
  --mhs-warning: #e6b84d;
  --mhs-warning-soft: #493b17;
  --mhs-danger: #f17c84;
  --mhs-danger-soft: #482329;
  --mhs-purple: #b098df;
  --mhs-input: #0b2027;
  --mhs-table-head: #17333b;
  --mhs-table-stripe: #112930;
  --mhs-table-hover: #183b40;
  --mhs-overlay: rgba(0, 8, 12, .72);
  --mhs-shadow-sm: 0 2px 8px rgba(0, 0, 0, .18);
  --mhs-shadow: 0 18px 44px rgba(0, 0, 0, .24);
}

* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
html, body { width: 100%; max-width: 100%; }
body {
  margin: 0;
  min-width: 0;
  overflow-x: hidden;
  font-family: var(--mhs-font) !important;
  color: var(--mhs-text) !important;
  background: var(--mhs-bg) !important;
  transition: background-color var(--mhs-transition), color var(--mhs-transition);
}

body:not(.auth-page) :where(h1,h2,h3,h4,h5,h6,.page-title,.modal-title,.card-title) {
  color: var(--mhs-heading) !important;
}
body:not(.auth-page) :where(p,span,label,small,td,th,li,div) { border-color: var(--mhs-border); }
body:not(.auth-page) :where(.text-muted,.page-subtitle,.form-text,.help-text,.small-muted) { color: var(--mhs-muted) !important; }
body:not(.auth-page) :where(.bg-white,.bg-light) { background: var(--mhs-surface-2) !important; }
body:not(.auth-page) :where(.text-dark) { color: var(--mhs-text) !important; }

/* ------------------------------------------------------------------
   APP SHELL / SIDEBAR — always a dark civic-health identity surface
   ------------------------------------------------------------------ */
.sidebar {
  position: fixed !important;
  inset: 0 auto 0 0 !important;
  z-index: 1040 !important;
  width: var(--mhs-sidebar-w) !important;
  height: 100dvh !important;
  overflow: hidden !important;
  color: #e9f8f7 !important;
  background:
    radial-gradient(circle at 18% 7%, rgba(49, 182, 170, .16), transparent 30%),
    linear-gradient(180deg, #0b3440 0%, #0a4a50 48%, #076151 100%) !important;
  border-right: 1px solid rgba(164, 224, 219, .16) !important;
  box-shadow: 10px 0 32px rgba(5, 31, 37, .12) !important;
  transition: width .2s ease, transform .2s ease !important;
}
.sidebar * { box-sizing: border-box; }
.sidebar .sidebar-content {
  width: 100% !important;
  height: 100% !important;
  overflow-y: auto !important;
  overflow-x: hidden !important;
  padding: 18px 14px 28px !important;
  scrollbar-width: thin;
  scrollbar-color: rgba(185, 232, 228, .35) transparent;
}
.sidebar .sidebar-toggle {
  position: absolute !important;
  top: 16px !important;
  right: 14px !important;
  z-index: 3 !important;
  display: grid !important;
  place-items: center !important;
  width: 38px !important;
  height: 38px !important;
  padding: 0 !important;
  color: #dff5f3 !important;
  background: rgba(255,255,255,.08) !important;
  border: 1px solid rgba(255,255,255,.14) !important;
  border-radius: 11px !important;
  cursor: pointer !important;
}
.sidebar .sidebar-toggle:hover { background: rgba(255,255,255,.14) !important; }
.sidebar .logo,
.sidebar .mhs-v4-sidebar-brand {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  min-height: 190px !important;
  margin: 0 0 18px !important;
  padding: 16px 34px 18px !important;
  text-align: center !important;
  border-bottom: 1px solid rgba(206, 241, 238, .14) !important;
}
.sidebar .logo img,
.sidebar .mhs-v4-sidebar-brand img {
  display: block !important;
  width: 76px !important;
  height: 76px !important;
  max-width: none !important;
  object-fit: contain !important;
  margin: 0 auto 12px !important;
  padding: 6px !important;
  background: #fff !important;
  border-radius: 18px !important;
  box-shadow: 0 7px 22px rgba(0,0,0,.18) !important;
}
.sidebar .logo h3,
.sidebar .mhs-v4-sidebar-brand__name {
  margin: 0 !important;
  color: #fff !important;
  font-size: 1rem !important;
  font-weight: 800 !important;
  line-height: 1.25 !important;
  letter-spacing: -.01em !important;
}
.sidebar .mhs-v4-sidebar-brand__eyebrow {
  margin-bottom: 5px;
  color: #a7d9d4 !important;
  font-size: .64rem;
  font-weight: 800;
  letter-spacing: .11em;
  line-height: 1.25;
  text-transform: uppercase;
}
.sidebar .mhs-v4-sidebar-brand__system {
  margin-top: 6px;
  color: #b9d8d7 !important;
  font-size: .72rem;
  line-height: 1.35;
}
.sidebar .menu { list-style: none !important; margin: 0 !important; padding: 0 !important; }
.sidebar .mhs-v4-menu-section {
  margin: 15px 10px 7px !important;
  color: #81b9b4 !important;
  font-size: .62rem !important;
  font-weight: 800 !important;
  letter-spacing: .12em !important;
  text-transform: uppercase !important;
}
.sidebar .menu > li { margin: 2px 0 !important; }
.sidebar .menu a,
.sidebar .dropdown-btn {
  position: relative !important;
  display: flex !important;
  align-items: center !important;
  gap: 12px !important;
  min-height: 43px !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 10px 12px !important;
  color: #d8eceb !important;
  background: transparent !important;
  border: 1px solid transparent !important;
  border-radius: 10px !important;
  text-decoration: none !important;
  cursor: pointer !important;
  transition: background var(--mhs-transition), border-color var(--mhs-transition), color var(--mhs-transition) !important;
}
.sidebar .menu a:hover,
.sidebar .dropdown-btn:hover { color: #fff !important; background: rgba(255,255,255,.075) !important; }
.sidebar .menu a.active {
  color: #fff !important;
  background: linear-gradient(90deg, rgba(38, 177, 163, .25), rgba(255,255,255,.08)) !important;
  border-color: rgba(122, 219, 208, .24) !important;
  box-shadow: inset 3px 0 0 #f0c84c !important;
}
.sidebar .menu a > i:first-child,
.sidebar .dropdown-btn > i:first-child {
  flex: 0 0 20px !important;
  width: 20px !important;
  min-width: 20px !important;
  margin: 0 !important;
  color: #9bd9d3 !important;
  text-align: center !important;
}
.sidebar .menu-text { flex: 1 1 auto !important; min-width: 0 !important; font-size: .88rem !important; font-weight: 650 !important; line-height: 1.25 !important; }
.sidebar .dropdown-arrow {
  flex: 0 0 14px !important;
  width: 14px !important;
  min-width: 14px !important;
  color: #8fc5c1 !important;
  font-size: .7rem !important;
  transition: transform var(--mhs-transition) !important;
}
.sidebar .dropdown.open > .dropdown-btn .dropdown-arrow { transform: rotate(180deg) !important; }
.sidebar .dropdown-content {
  display: none !important;
  list-style: none !important;
  margin: 3px 0 7px 31px !important;
  padding: 3px 0 3px 9px !important;
  border-left: 1px solid rgba(148, 213, 207, .18) !important;
}
.sidebar .dropdown.open > .dropdown-content { display: block !important; }
.sidebar .dropdown-content a { min-height: 38px !important; padding: 8px 10px !important; font-size: .82rem !important; }
.sidebar .badge { margin-left: auto !important; color: #0b3f44 !important; background: #dff5f1 !important; border-radius: 999px !important; }

.sidebar.collapsed { width: var(--mhs-sidebar-collapsed-w) !important; }
.sidebar.collapsed .sidebar-content { padding-left: 10px !important; padding-right: 10px !important; }
.sidebar.collapsed .sidebar-toggle { right: 23px !important; }
.sidebar.collapsed .logo,
.sidebar.collapsed .mhs-v4-sidebar-brand { min-height: 118px !important; padding: 54px 0 14px !important; border-bottom-color: rgba(255,255,255,.1) !important; }
.sidebar.collapsed .logo img,
.sidebar.collapsed .mhs-v4-sidebar-brand img { width: 50px !important; height: 50px !important; margin-bottom: 0 !important; border-radius: 13px !important; }
.sidebar.collapsed .logo h3,
.sidebar.collapsed .mhs-v4-sidebar-brand__eyebrow,
.sidebar.collapsed .mhs-v4-sidebar-brand__name,
.sidebar.collapsed .mhs-v4-sidebar-brand__system,
.sidebar.collapsed .menu-text,
.sidebar.collapsed .mhs-v4-menu-section,
.sidebar.collapsed .menu .badge,
.sidebar.collapsed .dropdown-arrow { display: none !important; }
.sidebar.collapsed .menu a,
.sidebar.collapsed .dropdown-btn { justify-content: center !important; gap: 0 !important; padding: 10px !important; overflow: visible !important; }
.sidebar.collapsed .menu a > i:first-child,
.sidebar.collapsed .dropdown-btn > i:first-child { flex-basis: 22px !important; width: 22px !important; min-width: 22px !important; font-size: 1rem !important; }
.sidebar.collapsed .dropdown-content { display: none !important; }

.main-content,
.mhs-v4-main {
  width: auto !important;
  max-width: none !important;
  min-height: 100dvh !important;
  margin-left: var(--mhs-sidebar-w) !important;
  padding: 22px 24px 38px !important;
  color: var(--mhs-text) !important;
  background: var(--mhs-bg) !important;
  transition: margin-left .2s ease, background-color var(--mhs-transition) !important;
}
.sidebar.collapsed ~ .main-content { margin-left: var(--mhs-sidebar-collapsed-w) !important; }

/* ------------------------------------------------------------------
   TOP BAR
   ------------------------------------------------------------------ */
.header-box,
.mhs-v4-topbar {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 14px !important;
  min-height: 66px !important;
  width: 100% !important;
  margin: 0 0 18px !important;
  padding: 10px 12px !important;
  color: var(--mhs-text) !important;
  background: var(--mhs-surface) !important;
  border: 1px solid var(--mhs-border) !important;
  border-radius: var(--mhs-radius) !important;
  box-shadow: var(--mhs-shadow-sm) !important;
}
.mhs-v4-topbar__identity { display: flex !important; align-items: center !important; gap: 10px !important; min-width: 0 !important; }
.mhs-v4-topbar__mark {
  display: grid !important;
  place-items: center !important;
  width: 38px !important;
  height: 38px !important;
  flex: 0 0 38px !important;
  color: #fff !important;
  background: linear-gradient(135deg, var(--mhs-blue), var(--mhs-primary)) !important;
  border-radius: 11px !important;
}
.mhs-v4-topbar__eyebrow { display: block !important; color: var(--mhs-muted) !important; font-size: .61rem !important; font-weight: 800 !important; letter-spacing: .1em !important; text-transform: uppercase !important; }
.mhs-v4-topbar__title { display: block !important; color: var(--mhs-heading) !important; font-size: .87rem !important; font-weight: 800 !important; line-height: 1.25 !important; }
.mhs-v4-topbar__actions { display: flex !important; align-items: center !important; justify-content: flex-end !important; gap: 8px !important; flex-wrap: wrap !important; }
.mhs-v4-user-chip,
.mhs-v4-secure-chip {
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
  min-height: 38px !important;
  padding: 6px 10px !important;
  color: var(--mhs-text) !important;
  background: var(--mhs-surface-2) !important;
  border: 1px solid var(--mhs-border) !important;
  border-radius: 10px !important;
}
.mhs-v4-secure-chip { color: var(--mhs-success) !important; background: var(--mhs-success-soft) !important; font-size: .72rem !important; font-weight: 700 !important; }
.mhs-v4-user-avatar { display: grid !important; place-items: center !important; width: 30px !important; height: 30px !important; color: #fff !important; background: var(--mhs-blue) !important; border-radius: 9px !important; font-size: .78rem !important; font-weight: 800 !important; }
.mhs-v4-user-meta { display: grid !important; line-height: 1.12 !important; }
.mhs-v4-user-meta strong { color: var(--mhs-heading) !important; font-size: .76rem !important; }
.mhs-v4-user-meta small { color: var(--mhs-muted) !important; font-size: .63rem !important; }
.mhs-v4-mobile-menu { display: none !important; }

.mhs-v4-theme-toggle,
[data-mhs-theme-toggle] {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 7px !important;
  min-height: 38px !important;
  padding: 7px 11px !important;
  color: var(--mhs-text) !important;
  background: var(--mhs-surface-2) !important;
  border: 1px solid var(--mhs-border) !important;
  border-radius: 10px !important;
  font: inherit !important;
  font-size: .73rem !important;
  font-weight: 700 !important;
  cursor: pointer !important;
}
[data-mhs-theme-toggle]:hover { border-color: var(--mhs-primary) !important; }
.logout-btn,
.mhs-v4-signout {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 7px !important;
  min-height: 38px !important;
  padding: 7px 12px !important;
  color: var(--mhs-danger) !important;
  background: var(--mhs-danger-soft) !important;
  border: 1px solid color-mix(in srgb, var(--mhs-danger) 36%, transparent) !important;
  border-radius: 10px !important;
  font-size: .73rem !important;
  font-weight: 700 !important;
}

/* ------------------------------------------------------------------
   MODULE PAGE COMPOSITION
   ------------------------------------------------------------------ */
.health-center-header,
.branch-header,
.page-header,
.mhs-v4-page-header {
  position: relative !important;
  width: 100% !important;
  margin: 0 0 16px !important;
  padding: 18px 18px 15px !important;
  color: var(--mhs-text) !important;
  background: var(--mhs-surface) !important;
  border: 1px solid var(--mhs-border) !important;
  border-left: 4px solid var(--mhs-primary) !important;
  border-radius: var(--mhs-radius-lg) !important;
  box-shadow: var(--mhs-shadow-sm) !important;
  overflow: hidden !important;
}
.health-center-header::after,
.branch-header::after,
.page-header::after,
.mhs-v4-page-header::after {
  content: "";
  position: absolute;
  width: 240px;
  height: 240px;
  right: -100px;
  top: -130px;
  border-radius: 50%;
  background: color-mix(in srgb, var(--mhs-primary) 7%, transparent);
  pointer-events: none;
}
.header-top-row,
.branch-header-top,
.mhs-v4-page-header-top {
  position: relative !important;
  z-index: 1 !important;
  display: flex !important;
  align-items: flex-start !important;
  justify-content: space-between !important;
  gap: 18px !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 0 13px !important;
  border-bottom: 1px solid var(--mhs-border) !important;
}
.header-text,
.mhs-v4-page-title-group { min-width: 0 !important; flex: 1 1 auto !important; }
.page-title,
.branch-title {
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  margin: 0 !important;
  color: var(--mhs-heading) !important;
  font-size: clamp(1.35rem, 2.1vw, 1.85rem) !important;
  font-weight: 800 !important;
  letter-spacing: -.035em !important;
  line-height: 1.15 !important;
}
.page-title > i,
.branch-title > i {
  display: grid !important;
  place-items: center !important;
  width: 36px !important;
  height: 36px !important;
  flex: 0 0 36px !important;
  margin: 0 !important;
  color: var(--mhs-primary) !important;
  background: var(--mhs-primary-soft) !important;
  border: 1px solid color-mix(in srgb, var(--mhs-primary) 25%, transparent) !important;
  border-radius: 10px !important;
  font-size: .9rem !important;
}
.page-subtitle { margin: 7px 0 0 44px !important; max-width: 760px !important; color: var(--mhs-muted) !important; font-size: .84rem !important; line-height: 1.5 !important; }
.action-legend,
.mhs-v4-hidden-legend { display: none !important; }
.health-center-header > .d-flex,
.branch-header > .d-flex,
.page-header > .d-flex {
  position: relative !important;
  z-index: 1 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  flex-wrap: wrap !important;
  gap: 10px !important;
  margin-top: 12px !important;
}
.record-count,
.mhs-v4-record-count,
.branch-badge {
  display: inline-flex !important;
  align-items: center !important;
  gap: 7px !important;
  min-height: 34px !important;
  margin: 0 !important;
  padding: 6px 10px !important;
  color: var(--mhs-primary) !important;
  background: var(--mhs-primary-soft) !important;
  border: 1px solid color-mix(in srgb, var(--mhs-primary) 22%, transparent) !important;
  border-radius: 999px !important;
  font-size: .74rem !important;
  font-weight: 700 !important;
}

/* Buttons: one vocabulary and one geometry. */
body:not(.auth-page) :where(.btn,button.btn,a.btn,input.btn) {
  min-height: 36px;
  border-radius: 9px !important;
  font-family: var(--mhs-font) !important;
  font-size: .75rem !important;
  font-weight: 700 !important;
  line-height: 1.15 !important;
  box-shadow: none !important;
  transition: transform 120ms ease, box-shadow 120ms ease, background-color 120ms ease, border-color 120ms ease !important;
}
body:not(.auth-page) :where(.btn,button.btn,a.btn):hover { transform: translateY(-1px); }
body:not(.auth-page) .btn-primary { color: #fff !important; background: var(--mhs-blue) !important; border-color: var(--mhs-blue) !important; }
body:not(.auth-page) .btn-success { color: #fff !important; background: var(--mhs-success) !important; border-color: var(--mhs-success) !important; }
body:not(.auth-page) .btn-info { color: #fff !important; background: var(--mhs-blue) !important; border-color: var(--mhs-blue) !important; }
body:not(.auth-page) .btn-warning { color: #3a2a00 !important; background: #f0c453 !important; border-color: #dfb33d !important; }
body:not(.auth-page) .btn-danger { color: #fff !important; background: var(--mhs-danger) !important; border-color: var(--mhs-danger) !important; }
body:not(.auth-page) :where(.btn-secondary,.btn-outline-secondary,.btn-light,.btn-third) { color: var(--mhs-text) !important; background: var(--mhs-surface-2) !important; border-color: var(--mhs-border-strong) !important; }
body:not(.auth-page) :where(.btn-outline-primary) { color: var(--mhs-blue) !important; background: var(--mhs-blue-soft) !important; border-color: color-mix(in srgb, var(--mhs-blue) 32%, transparent) !important; }
body:not(.auth-page) :where(.btn-outline-danger) { color: var(--mhs-danger) !important; background: var(--mhs-danger-soft) !important; border-color: color-mix(in srgb, var(--mhs-danger) 32%, transparent) !important; }
body:not(.auth-page) .mhs-v4-action-label { display: inline !important; margin-left: 6px !important; white-space: nowrap !important; }

/* ------------------------------------------------------------------
   FILTERS
   ------------------------------------------------------------------ */
.filter-section,
.filter-container,
.search-filter-section,
.mhs-v4-filter-panel {
  position: relative !important;
  display: block !important;
  width: 100% !important;
  margin: 0 0 16px !important;
  padding: 46px 14px 14px !important;
  color: var(--mhs-text) !important;
  background: var(--mhs-surface) !important;
  border: 1px solid var(--mhs-border) !important;
  border-radius: var(--mhs-radius) !important;
  box-shadow: var(--mhs-shadow-sm) !important;
}
.filter-section::before,
.filter-container::before,
.search-filter-section::before,
.mhs-v4-filter-panel::before {
  content: "Search & Filters";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  display: flex;
  align-items: center;
  min-height: 34px;
  padding: 8px 14px;
  color: var(--mhs-heading);
  background: var(--mhs-surface-2);
  border-bottom: 1px solid var(--mhs-border);
  border-radius: var(--mhs-radius) var(--mhs-radius) 0 0;
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .01em;
}
.filter-section :where(.row),
.filter-container :where(.row) { row-gap: 10px !important; }
.search-box { position: relative !important; }
.search-box > i { position: absolute !important; z-index: 2 !important; left: 12px !important; top: 50% !important; transform: translateY(-50%) !important; color: var(--mhs-muted) !important; }
.search-box .form-control { padding-left: 36px !important; }
.active-filter-badge {
  display: inline-flex !important;
  align-items: center !important;
  gap: 7px !important;
  max-width: 100% !important;
  padding: 6px 10px !important;
  color: var(--mhs-primary) !important;
  background: var(--mhs-primary-soft) !important;
  border: 1px solid color-mix(in srgb, var(--mhs-primary) 22%, transparent) !important;
  border-radius: 999px !important;
  font-size: .72rem !important;
  overflow-wrap: anywhere !important;
}

/* Single native dropdown indicator — no SVG/pseudo duplicate arrows. */
body:not(.auth-page) select,
body:not(.auth-page) .form-select {
  -webkit-appearance: auto !important;
  appearance: auto !important;
  background-image: none !important;
  background-repeat: no-repeat !important;
  background-position: initial !important;
  background-size: auto !important;
  padding-right: 12px !important;
}
html[data-mhs-theme="dark"] body:not(.auth-page) select,
html[data-mhs-theme="dark"] body:not(.auth-page) .form-select { color-scheme: dark; }
html[data-mhs-theme="light"] body:not(.auth-page) select,
html[data-mhs-theme="light"] body:not(.auth-page) .form-select { color-scheme: light; }

/* ------------------------------------------------------------------
   FORMS / FIELDS
   ------------------------------------------------------------------ */
body:not(.auth-page) :where(
  .form-control,.form-select,input[type="text"],input[type="email"],input[type="password"],input[type="number"],
  input[type="date"],input[type="time"],input[type="tel"],input[type="search"],textarea,select,.input-group-text
) {
  min-height: 38px;
  color: var(--mhs-text) !important;
  background: var(--mhs-input) !important;
  border-color: var(--mhs-border-strong) !important;
  border-radius: 9px !important;
  font-family: var(--mhs-font) !important;
  font-size: .8rem !important;
}
body:not(.auth-page) :where(.form-control,.form-select,input,textarea,select):focus {
  color: var(--mhs-text) !important;
  background: var(--mhs-input) !important;
  border-color: var(--mhs-primary) !important;
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--mhs-primary) 15%, transparent) !important;
}
body:not(.auth-page) :where(input,textarea)::placeholder { color: var(--mhs-muted-2) !important; opacity: 1 !important; }
body:not(.auth-page) select option { color: var(--mhs-text) !important; background: var(--mhs-input) !important; }
body:not(.auth-page) :where(input[readonly],textarea[readonly],.form-control[readonly],input:disabled,select:disabled,textarea:disabled) {
  color: var(--mhs-muted) !important;
  background: var(--mhs-surface-3) !important;
  opacity: 1 !important;
}
.form-label,label { color: var(--mhs-text) !important; font-weight: 650 !important; }

/* ------------------------------------------------------------------
   CARDS / TABLES / PAGINATION
   ------------------------------------------------------------------ */
body:not(.auth-page) :where(.card,.stats-card,.stat-card,.chart-card,.content-card,.data-card,.quick-actions,.summary-card) {
  color: var(--mhs-text) !important;
  background: var(--mhs-surface) !important;
  border-color: var(--mhs-border) !important;
  border-radius: var(--mhs-radius) !important;
  box-shadow: var(--mhs-shadow-sm) !important;
}
body:not(.auth-page) :where(.card-header,.mhs-v4-card-header) {
  min-height: 48px !important;
  padding: 11px 14px !important;
  color: var(--mhs-heading) !important;
  background: var(--mhs-surface-2) !important;
  border-bottom-color: var(--mhs-border) !important;
  font-size: .82rem !important;
  font-weight: 800 !important;
}
body:not(.auth-page) :where(.card-body) { color: var(--mhs-text) !important; }
.table-responsive,
.mhs-v4-table-shell {
  width: 100% !important;
  max-width: 100% !important;
  overflow-x: auto !important;
  overflow-y: visible !important;
  -webkit-overflow-scrolling: touch !important;
  scrollbar-gutter: stable !important;
}
body:not(.auth-page) :where(table,.table) {
  width: 100% !important;
  margin-bottom: 0 !important;
  color: var(--mhs-text) !important;
  background: var(--mhs-surface) !important;
  border-color: var(--mhs-border) !important;
  font-size: .77rem !important;
  vertical-align: middle !important;
}
body:not(.auth-page) :where(table,.table) thead th {
  padding: 10px 10px !important;
  color: var(--mhs-heading) !important;
  background: var(--mhs-table-head) !important;
  border-color: var(--mhs-border) !important;
  font-size: .66rem !important;
  font-weight: 800 !important;
  line-height: 1.3 !important;
  letter-spacing: .025em !important;
  text-transform: uppercase !important;
  white-space: nowrap !important;
}
body:not(.auth-page) :where(table,.table) tbody td {
  padding: 10px 10px !important;
  color: var(--mhs-text) !important;
  background: var(--mhs-surface) !important;
  border-color: var(--mhs-border) !important;
  line-height: 1.4 !important;
}
body:not(.auth-page) :where(table,.table) tbody tr:nth-child(even) td { background: var(--mhs-table-stripe) !important; }
body:not(.auth-page) :where(table,.table) tbody tr:hover td { background: var(--mhs-table-hover) !important; }
body:not(.auth-page) :where(table,.table) strong { color: var(--mhs-heading) !important; }

/* Critical: action cell remains a TABLE CELL. Never display:flex on the TD itself. */
td.action-buttons,
td.mhs-v4-action-cell,
td[data-mhs-actions="true"] {
  display: table-cell !important;
  min-width: 190px !important;
  width: 1% !important;
  white-space: normal !important;
  vertical-align: middle !important;
}
td.action-buttons > :where(button,.btn,a.btn),
td.mhs-v4-action-cell > :where(button,.btn,a.btn),
td[data-mhs-actions="true"] > :where(button,.btn,a.btn) {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-width: 72px !important;
  min-height: 33px !important;
  margin: 2px !important;
  padding: 6px 8px !important;
  white-space: nowrap !important;
  vertical-align: middle !important;
}

.status-badge,
.badge {
  border-radius: 999px !important;
  font-size: .66rem !important;
  font-weight: 750 !important;
}
.status-scheduled { color: var(--mhs-blue) !important; background: var(--mhs-blue-soft) !important; }
.status-completed,.status-active { color: var(--mhs-success) !important; background: var(--mhs-success-soft) !important; }
.status-cancelled,.status-inactive { color: var(--mhs-danger) !important; background: var(--mhs-danger-soft) !important; }
.status-pending,.status-rescheduled { color: var(--mhs-warning) !important; background: var(--mhs-warning-soft) !important; }

.pagination-container,
.mhs-v4-pagination {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 12px !important;
  flex-wrap: wrap !important;
  padding: 12px 14px !important;
  color: var(--mhs-muted) !important;
  background: var(--mhs-surface-2) !important;
  border-top: 1px solid var(--mhs-border) !important;
}
.pagination { margin: 0 !important; gap: 3px !important; }
.page-link {
  display: grid !important;
  place-items: center !important;
  min-width: 34px !important;
  min-height: 34px !important;
  padding: 6px 9px !important;
  color: var(--mhs-text) !important;
  background: var(--mhs-surface) !important;
  border-color: var(--mhs-border) !important;
  border-radius: 8px !important;
}
.page-item.active .page-link { color: #fff !important; background: var(--mhs-primary) !important; border-color: var(--mhs-primary) !important; }

/* ------------------------------------------------------------------
   DASHBOARD / CHARTS / ALERTS
   ------------------------------------------------------------------ */
.quick-actions,
.quick-actions-section { margin-bottom: 16px !important; }
.quick-action-card,
.quick-action,
.action-card {
  color: var(--mhs-text) !important;
  background: var(--mhs-surface) !important;
  border: 1px solid var(--mhs-border) !important;
  border-radius: var(--mhs-radius) !important;
}
.chart-container,
.chart-wrapper,
.canvas-container {
  max-width: 100% !important;
  min-width: 0 !important;
  color: var(--mhs-text) !important;
  background: var(--mhs-surface) !important;
  border-color: var(--mhs-border) !important;
}
.chart-container canvas,
.chart-wrapper canvas,
canvas { max-width: 100% !important; }

.low-stock-alert,
.low-stock-modal,
.stock-alert,
[id*="lowStock"],
[class*="low-stock"] {
  color: var(--mhs-text) !important;
  background: var(--mhs-surface) !important;
  border-color: color-mix(in srgb, var(--mhs-warning) 55%, var(--mhs-border)) !important;
}
.low-stock-alert :where(h1,h2,h3,h4,strong),
.low-stock-modal :where(h1,h2,h3,h4,strong),
[id*="lowStock"] :where(h1,h2,h3,h4,strong) { color: var(--mhs-heading) !important; }

/* ------------------------------------------------------------------
   MODALS — one operational canvas, compact confirmations remain compact
   ------------------------------------------------------------------ */
.modal-backdrop.show { opacity: .58 !important; }
.modal,
.modal-overlay,
.custom-modal-overlay,
.action-modal { color: var(--mhs-text) !important; }
.modal-overlay,
.custom-modal-overlay,
.action-modal { background: var(--mhs-overlay) !important; backdrop-filter: blur(5px) !important; }
.modal-dialog:not(.modal-sm),
.mhs-v4-modal-dialog:not(.modal-sm) {
  width: min(920px, calc(100vw - 36px)) !important;
  max-width: 920px !important;
  margin: 24px auto !important;
}
.modal-dialog.modal-sm { max-width: 440px !important; }
.modal-content,
.custom-modal,
.modal-container,
.action-modal-content,
.mhs-v4-modal-content {
  display: flex !important;
  flex-direction: column !important;
  max-height: calc(100dvh - 48px) !important;
  color: var(--mhs-text) !important;
  background: var(--mhs-surface) !important;
  border: 1px solid var(--mhs-border) !important;
  border-radius: 18px !important;
  box-shadow: 0 28px 80px rgba(0,0,0,.28) !important;
  overflow: hidden !important;
}
.modal-dialog:not(.modal-sm) > .modal-content { min-height: min(620px, calc(100dvh - 48px)) !important; }
.modal-header,
.custom-header,
.action-modal-header,
.modal-header-custom,
.mhs-v4-modal-header {
  position: relative !important;
  flex: 0 0 auto !important;
  min-height: 62px !important;
  padding: 14px 58px 14px 18px !important;
  color: var(--mhs-heading) !important;
  background: var(--mhs-surface-2) !important;
  border-bottom: 1px solid var(--mhs-border) !important;
}
.modal-title { margin: 0 !important; color: var(--mhs-heading) !important; font-size: 1.05rem !important; font-weight: 800 !important; }
.modal-body,
.custom-body,
.action-modal-body,
.modal-body-custom,
.mhs-v4-modal-body {
  flex: 1 1 auto !important;
  min-height: 0 !important;
  padding: 18px !important;
  color: var(--mhs-text) !important;
  background: var(--mhs-surface) !important;
  overflow-y: auto !important;
  overscroll-behavior: contain !important;
}
.modal-footer,
.custom-footer,
.action-modal-footer,
.modal-footer-custom,
.mhs-v4-modal-footer {
  flex: 0 0 auto !important;
  display: flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  gap: 8px !important;
  padding: 12px 18px !important;
  color: var(--mhs-text) !important;
  background: var(--mhs-surface-2) !important;
  border-top: 1px solid var(--mhs-border) !important;
}
.btn-close,
.modal-close,
.close-modal,
.close-modal-btn,
button.close {
  position: absolute !important;
  top: 14px !important;
  right: 14px !important;
  z-index: 5 !important;
  display: grid !important;
  place-items: center !important;
  width: 34px !important;
  height: 34px !important;
  min-height: 34px !important;
  margin: 0 !important;
  padding: 0 !important;
  color: var(--mhs-text) !important;
  background: var(--mhs-surface) !important;
  background-image: none !important;
  border: 1px solid var(--mhs-border-strong) !important;
  border-radius: 9px !important;
  opacity: 1 !important;
  box-shadow: none !important;
  font-size: 0 !important;
}
.btn-close::before,
.modal-close::before,
.close-modal::before,
.close-modal-btn::before,
button.close::before {
  content: "×" !important;
  color: var(--mhs-text) !important;
  font-size: 1.25rem !important;
  font-weight: 500 !important;
  line-height: 1 !important;
}
.btn-close:hover,
.modal-close:hover,
.close-modal:hover,
.close-modal-btn:hover { color: var(--mhs-danger) !important; background: var(--mhs-danger-soft) !important; border-color: color-mix(in srgb, var(--mhs-danger) 35%, var(--mhs-border)) !important; }

/* View/Add/Edit internal sections */
.modal-body :where(.form-section,.info-section,.detail-section,.patient-info-section,.appointment-info-section,.section-card),
.custom-body :where(.form-section,.info-section,.detail-section,.section-card) {
  color: var(--mhs-text) !important;
  background: var(--mhs-surface-2) !important;
  border-color: var(--mhs-border) !important;
  border-radius: 12px !important;
}

/* Logout confirmation */
.logout-modal-overlay { background: var(--mhs-overlay) !important; backdrop-filter: blur(5px) !important; }
.logout-modal-content {
  width: min(420px, calc(100vw - 32px)) !important;
  color: var(--mhs-text) !important;
  background: var(--mhs-surface) !important;
  border: 1px solid var(--mhs-border) !important;
  border-radius: 16px !important;
  box-shadow: 0 24px 70px rgba(0,0,0,.28) !important;
}
.logout-modal-body { color: var(--mhs-text) !important; background: var(--mhs-surface) !important; }
.logout-modal-footer { background: var(--mhs-surface-2) !important; border-top: 1px solid var(--mhs-border) !important; }

/* ------------------------------------------------------------------
   SCREEN LOCK — overrides legacy inline styling without changing auth flow
   ------------------------------------------------------------------ */
#lockScreen > div {
  background: var(--mhs-overlay) !important;
  backdrop-filter: blur(9px) !important;
}
#lockScreen > div > div {
  position: relative !important;
  width: min(420px, calc(100vw - 32px)) !important;
  max-width: 420px !important;
  padding: 30px !important;
  color: var(--mhs-text) !important;
  background: var(--mhs-surface) !important;
  border: 1px solid var(--mhs-border) !important;
  border-top: 4px solid var(--mhs-primary) !important;
  border-radius: 20px !important;
  box-shadow: 0 30px 90px rgba(0,0,0,.35) !important;
}
#lockScreen > div > div::before {
  content: "MORONG HEALTH MIS · SECURE SESSION";
  display: block;
  margin: 0 0 18px;
  color: var(--mhs-primary) !important;
  font-size: .62rem;
  font-weight: 800;
  letter-spacing: .1em;
}
#lockScreen h3 { color: var(--mhs-heading) !important; font-size: 1.35rem !important; font-weight: 800 !important; }
#lockScreen p,
#lockScreen p small,
#lockScreen #lockTime { color: var(--mhs-muted) !important; }
#lockScreen input {
  color: var(--mhs-text) !important;
  background: var(--mhs-input) !important;
  border-color: var(--mhs-border-strong) !important;
  border-radius: 10px !important;
}
#lockScreen #togglePassword { color: var(--mhs-muted) !important; }
#lockScreen button {
  min-height: 42px !important;
  border-radius: 10px !important;
  font-family: var(--mhs-font) !important;
  font-weight: 750 !important;
  transform: none !important;
  box-shadow: none !important;
}
#lockScreen button:first-of-type { color: #fff !important; background: linear-gradient(135deg, var(--mhs-blue), var(--mhs-primary)) !important; border: 0 !important; }
#lockScreen button:last-of-type { color: var(--mhs-danger) !important; background: var(--mhs-danger-soft) !important; border: 1px solid color-mix(in srgb, var(--mhs-danger) 45%, transparent) !important; }

/* ------------------------------------------------------------------
   SMALL, NON-OBSTRUCTIVE SCROLL-TO-TOP ONLY
   ------------------------------------------------------------------ */
.mhs-v4-scroll-top {
  position: fixed !important;
  right: max(16px, env(safe-area-inset-right)) !important;
  bottom: max(16px, env(safe-area-inset-bottom)) !important;
  z-index: 1025 !important;
  display: none !important;
  place-items: center !important;
  width: 42px !important;
  height: 42px !important;
  padding: 0 !important;
  color: #fff !important;
  background: var(--mhs-primary) !important;
  border: 1px solid color-mix(in srgb, var(--mhs-primary) 75%, white) !important;
  border-radius: 12px !important;
  box-shadow: 0 9px 28px rgba(0,0,0,.18) !important;
}
.mhs-v4-scroll-top.is-visible { display: grid !important; }

/* ------------------------------------------------------------------
   RESPONSIVE TABLE CARDS — only tables explicitly marked by lightweight JS
   ------------------------------------------------------------------ */
@media (max-width: 767.98px) {
  table.mhs-v4-responsive-table { display: block !important; width: 100% !important; background: transparent !important; }
  table.mhs-v4-responsive-table thead { display: none !important; }
  table.mhs-v4-responsive-table tbody { display: grid !important; gap: 12px !important; }
  table.mhs-v4-responsive-table tbody tr {
    display: grid !important;
    width: 100% !important;
    padding: 8px 12px !important;
    background: var(--mhs-surface) !important;
    border: 1px solid var(--mhs-border) !important;
    border-radius: 14px !important;
    box-shadow: var(--mhs-shadow-sm) !important;
  }
  table.mhs-v4-responsive-table tbody td {
    display: grid !important;
    grid-template-columns: minmax(105px, 36%) minmax(0, 1fr) !important;
    gap: 12px !important;
    min-width: 0 !important;
    width: 100% !important;
    padding: 8px 0 !important;
    background: transparent !important;
    border: 0 !important;
    border-bottom: 1px solid var(--mhs-border) !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
  }
  table.mhs-v4-responsive-table tbody td::before {
    content: attr(data-mhs-label);
    color: var(--mhs-muted) !important;
    font-size: .64rem !important;
    font-weight: 800 !important;
    letter-spacing: .03em !important;
    text-transform: uppercase !important;
  }
  table.mhs-v4-responsive-table tbody td:last-child { border-bottom: 0 !important; }
  table.mhs-v4-responsive-table tbody td[data-mhs-actions="true"],
  table.mhs-v4-responsive-table tbody td.action-buttons {
    display: block !important;
    padding-top: 10px !important;
  }
  table.mhs-v4-responsive-table tbody td[data-mhs-actions="true"]::before,
  table.mhs-v4-responsive-table tbody td.action-buttons::before {
    display: block !important;
    margin-bottom: 7px !important;
  }
  table.mhs-v4-responsive-table tbody td[data-mhs-actions="true"] > :where(button,.btn,a.btn),
  table.mhs-v4-responsive-table tbody td.action-buttons > :where(button,.btn,a.btn) {
    min-width: 82px !important;
    margin: 3px 3px 3px 0 !important;
  }
}

/* ------------------------------------------------------------------
   TABLET / MOBILE APP SHELL
   ------------------------------------------------------------------ */
.mhs-v4-sidebar-backdrop {
  position: fixed;
  inset: 0;
  z-index: 1035;
  display: none;
  background: rgba(3, 17, 21, .54);
  backdrop-filter: blur(2px);
}
.mhs-v4-sidebar-backdrop.is-visible { display: block; }

@media (max-width: 1199.98px) {
  .main-content,
  .mhs-v4-main { padding: 18px 18px 32px !important; }
  td.action-buttons,
  td.mhs-v4-action-cell { min-width: 170px !important; }
}

@media (max-width: 991.98px) {
  .sidebar {
    width: min(86vw, 304px) !important;
    transform: translateX(-105%) !important;
    box-shadow: 18px 0 44px rgba(0,0,0,.28) !important;
  }
  .sidebar.mobile-open { transform: translateX(0) !important; }
  .sidebar.collapsed { width: min(86vw, 304px) !important; }
  .sidebar.collapsed .sidebar-content { padding: 18px 14px 28px !important; }
  .sidebar.collapsed .sidebar-toggle { right: 14px !important; }
  .sidebar.collapsed .logo,
  .sidebar.collapsed .mhs-v4-sidebar-brand { min-height: 190px !important; padding: 16px 34px 18px !important; }
  .sidebar.collapsed .logo img,
  .sidebar.collapsed .mhs-v4-sidebar-brand img { width: 76px !important; height: 76px !important; margin-bottom: 12px !important; }
  .sidebar.collapsed .logo h3,
  .sidebar.collapsed .mhs-v4-sidebar-brand__eyebrow,
  .sidebar.collapsed .mhs-v4-sidebar-brand__name,
  .sidebar.collapsed .mhs-v4-sidebar-brand__system,
  .sidebar.collapsed .menu-text,
  .sidebar.collapsed .mhs-v4-menu-section,
  .sidebar.collapsed .menu .badge,
  .sidebar.collapsed .dropdown-arrow { display: initial !important; }
  .sidebar.collapsed .menu-text { display: block !important; }
  .sidebar.collapsed .mhs-v4-menu-section { display: block !important; }
  .sidebar.collapsed .menu a,
  .sidebar.collapsed .dropdown-btn { justify-content: flex-start !important; gap: 12px !important; padding: 10px 12px !important; }
  .sidebar.collapsed .dropdown-arrow { display: block !important; }
  .main-content,
  .sidebar.collapsed ~ .main-content,
  .mhs-v4-main {
    width: 100% !important;
    margin-left: 0 !important;
    padding: 14px 14px 30px !important;
  }
  .mhs-v4-mobile-menu {
    display: grid !important;
    place-items: center !important;
    width: 38px !important;
    height: 38px !important;
    flex: 0 0 38px !important;
    color: var(--mhs-text) !important;
    background: var(--mhs-surface-2) !important;
    border: 1px solid var(--mhs-border) !important;
    border-radius: 10px !important;
  }
  .header-box,.mhs-v4-topbar { margin-bottom: 12px !important; }
  .mhs-v4-topbar__eyebrow { display: none !important; }
  .mhs-v4-secure-chip { display: none !important; }
  .modal-dialog:not(.modal-sm),
  .mhs-v4-modal-dialog:not(.modal-sm) { width: min(94vw, 920px) !important; margin: 18px auto !important; }
}

@media (max-width: 767.98px) {
  .main-content,.mhs-v4-main { padding: 10px 10px 24px !important; }
  .header-box,.mhs-v4-topbar { min-height: 58px !important; padding: 8px !important; border-radius: 12px !important; }
  .mhs-v4-topbar__identity { gap: 7px !important; }
  .mhs-v4-topbar__mark { width: 34px !important; height: 34px !important; flex-basis: 34px !important; }
  .mhs-v4-topbar__title { font-size: .76rem !important; }
  .mhs-v4-user-chip .mhs-v4-user-meta { display: none !important; }
  .mhs-v4-user-chip { padding: 4px !important; }
  [data-mhs-theme-toggle] span { display: none !important; }
  [data-mhs-theme-toggle] { width: 38px !important; padding: 0 !important; }
  .mhs-v4-signout span,.logout-btn span { display: none !important; }

  .health-center-header,
  .branch-header,
  .page-header,
  .mhs-v4-page-header { padding: 14px 13px !important; border-radius: 14px !important; }
  .header-top-row,
  .branch-header-top,
  .mhs-v4-page-header-top { display: block !important; padding-bottom: 11px !important; }
  .page-title,.branch-title { font-size: 1.28rem !important; }
  .page-title > i,.branch-title > i { width: 32px !important; height: 32px !important; flex-basis: 32px !important; }
  .page-subtitle { margin-left: 0 !important; font-size: .78rem !important; }
  .health-center-header > .d-flex,
  .branch-header > .d-flex,
  .page-header > .d-flex { align-items: stretch !important; }
  .health-center-header > .d-flex > :where(button,.btn,a.btn),
  .branch-header > .d-flex > :where(button,.btn,a.btn),
  .page-header > .d-flex > :where(button,.btn,a.btn) { flex: 1 1 auto !important; }

  .filter-section,
  .filter-container,
  .search-filter-section,
  .mhs-v4-filter-panel { padding: 44px 10px 11px !important; border-radius: 12px !important; }
  .filter-section :where(.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-8,.col-lg-3,.col-lg-4,.col-lg-6),
  .filter-container :where(.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-8,.col-lg-3,.col-lg-4,.col-lg-6) { width: 100% !important; max-width: 100% !important; }
  .filter-section .d-flex.justify-content-end { justify-content: stretch !important; }
  .filter-section .d-flex.justify-content-end > :where(button,.btn,a.btn) { flex: 1 1 auto !important; }

  .pagination-container,.mhs-v4-pagination { align-items: stretch !important; flex-direction: column !important; }
  .pagination-container nav { overflow-x: auto !important; }

  .modal-dialog:not(.modal-sm),
  .mhs-v4-modal-dialog:not(.modal-sm) { width: calc(100vw - 14px) !important; margin: 7px auto !important; }
  .modal-content,.custom-modal,.modal-container,.action-modal-content,.mhs-v4-modal-content {
    max-height: calc(100dvh - 14px) !important;
    min-height: calc(100dvh - 14px) !important;
    border-radius: 14px !important;
  }
  .modal-header,.custom-header,.action-modal-header,.modal-header-custom,.mhs-v4-modal-header { min-height: 56px !important; padding: 12px 52px 12px 14px !important; }
  .modal-body,.custom-body,.action-modal-body,.modal-body-custom,.mhs-v4-modal-body { padding: 13px !important; }
  .modal-footer,.custom-footer,.action-modal-footer,.modal-footer-custom,.mhs-v4-modal-footer { padding: 10px 13px !important; }
  .modal-footer > :where(button,.btn,a.btn),
  .custom-footer > :where(button,.btn,a.btn) { flex: 1 1 auto !important; }
}

@media (max-width: 479.98px) {
  .mhs-v4-topbar__title { max-width: 135px !important; white-space: nowrap !important; overflow: hidden !important; text-overflow: ellipsis !important; }
  .page-title,.branch-title { font-size: 1.16rem !important; }
  .health-center-header > .d-flex,
  .branch-header > .d-flex,
  .page-header > .d-flex { flex-direction: column !important; }
  .record-count,.mhs-v4-record-count,.branch-badge { align-self: flex-start !important; }
  body:not(.auth-page) :where(.btn,button.btn,a.btn,input.btn) { min-height: 39px; }
  table.mhs-v4-responsive-table tbody td { grid-template-columns: 1fr !important; gap: 4px !important; }
  table.mhs-v4-responsive-table tbody td[data-mhs-actions="true"] > :where(button,.btn,a.btn),
  table.mhs-v4-responsive-table tbody td.action-buttons > :where(button,.btn,a.btn) { width: 100% !important; margin-right: 0 !important; }
}

@media (prefers-reduced-motion: reduce) {
  *,*::before,*::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}

@media print {
  html,body { color-scheme: light !important; color: #000 !important; background: #fff !important; }
  .sidebar,.header-box,.mhs-v4-topbar,.mhs-v4-scroll-top,[data-mhs-theme-toggle],.mhs-v4-sidebar-backdrop { display: none !important; }
  .main-content,.mhs-v4-main { width: 100% !important; margin: 0 !important; padding: 0 !important; color: #000 !important; background: #fff !important; }
}

/* ========================================================================== */
/* Morong Health MIS — V4.1 Full Theme + Component Consistency                */
/* ========================================================================== */

:root {
  --mhs-control-h: 40px;
  --mhs-action-gap: 8px;
  --mhs-modal-w: 920px;
  --mhs-modal-max-h: calc(100dvh - 40px);
  --mhs-focus-ring: 0 0 0 3px color-mix(in srgb, var(--mhs-primary) 18%, transparent);
}

html[data-mhs-theme="light"],
html:not([data-mhs-theme]) {
  --bs-body-color: var(--mhs-text);
  --bs-body-bg: var(--mhs-bg);
  --bs-emphasis-color: var(--mhs-heading);
  --bs-secondary-color: var(--mhs-muted);
  --bs-secondary-bg: var(--mhs-surface-2);
  --bs-tertiary-bg: var(--mhs-surface-3);
  --bs-border-color: var(--mhs-border);
  --bs-light-rgb: 245, 249, 250;
  --bs-dark-rgb: 24, 50, 58;
}
html[data-mhs-theme="dark"] {
  --bs-body-color: var(--mhs-text);
  --bs-body-bg: var(--mhs-bg);
  --bs-emphasis-color: var(--mhs-heading);
  --bs-secondary-color: var(--mhs-muted);
  --bs-secondary-bg: var(--mhs-surface-2);
  --bs-tertiary-bg: var(--mhs-surface-3);
  --bs-border-color: var(--mhs-border);
  --bs-light-rgb: 20, 45, 52;
  --bs-dark-rgb: 7, 24, 30;
}

/* Complete semantic surface contract. */
body:not(.auth-page) :where(
  .dropdown-menu,.dropdown-item,.list-group,.list-group-item,.accordion,.accordion-item,.accordion-button,
  .offcanvas,.offcanvas-header,.offcanvas-body,.toast,.toast-header,.toast-body,.popover,
  .nav-tabs,.nav-pills,.tab-content,.tab-pane,.input-group-text,
  .panel,.content-panel,.form-panel,.details-panel,.detail-panel,.info-panel,.summary-panel,
  .info-card,.details-card,.detail-card,.form-card,.profile-card,.record-card,.history-card,.settings-card,
  .form-section,.info-section,.detail-section,.section-card,.patient-info-section,.appointment-info-section,
  .data-section,.records-section,.table-section,.history-section,.settings-section,.backup-section,
  .empty-state,.empty-state-container,.no-data,.no-records,.search-results,.notification-item
) {
  color: var(--mhs-text) !important;
  background-color: var(--mhs-surface) !important;
  border-color: var(--mhs-border) !important;
}
body:not(.auth-page) :where(
  .card-header,.card-footer,.panel-header,.panel-footer,.section-header,.section-footer,
  .accordion-button,.toast-header,.offcanvas-header,.modal-header,.modal-footer,
  .list-group-item.active + .list-group-item
) {
  color: var(--mhs-heading) !important;
  background-color: var(--mhs-surface-2) !important;
  border-color: var(--mhs-border) !important;
}
body:not(.auth-page) :where(.dropdown-item,.nav-link,.list-group-item,.accordion-button) { color: var(--mhs-text) !important; }
body:not(.auth-page) :where(.dropdown-item:hover,.dropdown-item:focus,.list-group-item-action:hover,.accordion-button:not(.collapsed)) {
  color: var(--mhs-heading) !important;
  background: var(--mhs-table-hover) !important;
}
body:not(.auth-page) :where(.dropdown-divider,.hr,hr) { border-color: var(--mhs-border) !important; opacity: 1 !important; }
body:not(.auth-page) :where(.text-body,.text-body-secondary,.text-secondary) { color: var(--mhs-muted) !important; }
body:not(.auth-page) :where(.text-black,.text-black-50,.text-dark) { color: var(--mhs-text) !important; }
body:not(.auth-page) :where(.bg-white,.bg-light,.bg-body,.bg-body-tertiary,.bg-body-secondary) { background: var(--mhs-surface) !important; }
body:not(.auth-page) :where(.border,.border-top,.border-bottom,.border-start,.border-end,.border-light,.border-secondary) { border-color: var(--mhs-border) !important; }

/* Theme protection for the few legacy inline surfaces left in rendered views. */
html[data-mhs-theme="dark"] body:not(.auth-page) :where(.main-content,.mhs-v4-main,.modal,.custom-modal-overlay,.action-modal) :where(
  [style*="background: white"],[style*="background:white"],[style*="background: #fff"],[style*="background:#fff"],
  [style*="background: #ffffff"],[style*="background:#ffffff"],
  [style*="background-color: white"],[style*="background-color:white"],[style*="background-color: #fff"],[style*="background-color:#fff"],
  [style*="background-color: #ffffff"],[style*="background-color:#ffffff"]
) { background: var(--mhs-surface) !important; background-color: var(--mhs-surface) !important; }
html[data-mhs-theme="dark"] body:not(.auth-page) :where(.main-content,.mhs-v4-main,.modal,.custom-modal-overlay,.action-modal) :where(
  [style*="color: #333"],[style*="color:#333"],[style*="color: #444"],[style*="color:#444"],
  [style*="color: #555"],[style*="color:#555"],[style*="color: #666"],[style*="color:#666"],
  [style*="color: black"],[style*="color:black"]
) { color: var(--mhs-text) !important; }

/* One control geometry everywhere. */
body:not(.auth-page) :where(.form-control,.form-select,input:not([type="checkbox"]):not([type="radio"]),select,textarea,.input-group-text) {
  min-height: var(--mhs-control-h) !important;
}
body:not(.auth-page) :where(.form-check-input) {
  color: var(--mhs-text) !important;
  background-color: var(--mhs-input) !important;
  border-color: var(--mhs-border-strong) !important;
}
body:not(.auth-page) .form-check-input:checked { background-color: var(--mhs-primary) !important; border-color: var(--mhs-primary) !important; }
body:not(.auth-page) :where(input[type="date"],input[type="time"],input[type="datetime-local"])::-webkit-calendar-picker-indicator { opacity: .75; }
html[data-mhs-theme="dark"] body:not(.auth-page) :where(input[type="date"],input[type="time"],input[type="datetime-local"])::-webkit-calendar-picker-indicator { filter: invert(1) brightness(1.35); }

/* Native selects only: a single browser-provided dropdown indicator. */
body:not(.auth-page) :where(select,.form-select) {
  appearance: auto !important;
  -webkit-appearance: auto !important;
  background-image: none !important;
  background-position: initial !important;
  background-repeat: no-repeat !important;
  background-size: auto !important;
  padding-inline-end: 12px !important;
}
body:not(.auth-page) :where(select,.form-select)::before,
body:not(.auth-page) :where(select,.form-select)::after { content: none !important; display: none !important; }

/* Unified page actions / toolbars. */
body:not(.auth-page) :where(
  .header-actions,.toolbar-actions,.page-actions,.filter-actions,.action-buttons-wrap,.mhs-v4-page-actions,
  .health-center-header > .d-flex,.branch-header > .d-flex,.page-header > .d-flex,
  .modal-footer,.custom-footer,.action-modal-footer,.modal-footer-custom,.mhs-v4-modal-footer,.export-buttons
) {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  flex-wrap: wrap !important;
  gap: var(--mhs-action-gap) !important;
}
body:not(.auth-page) :where(.health-center-header > .d-flex,.branch-header > .d-flex,.page-header > .d-flex) { justify-content: space-between !important; }

/* Action cells stay cells; child controls get breathing room. */
td.action-buttons,
td.mhs-v4-action-cell,
td[data-mhs-actions="true"] { min-width: 204px !important; }
td.action-buttons > :where(button,.btn,a.btn),
td.mhs-v4-action-cell > :where(button,.btn,a.btn),
td[data-mhs-actions="true"] > :where(button,.btn,a.btn) {
  min-width: 72px !important;
  margin: 4px 6px 4px 0 !important;
  padding-inline: 10px !important;
}
td.action-buttons > :where(button,.btn,a.btn):last-child,
td.mhs-v4-action-cell > :where(button,.btn,a.btn):last-child,
td[data-mhs-actions="true"] > :where(button,.btn,a.btn):last-child { margin-right: 0 !important; }

/* Semantic action vocabulary wins over historical Bootstrap colors. */
body:not(.auth-page) [data-mhs-action] {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 6px !important;
  min-height: 36px !important;
  padding: 7px 11px !important;
  border-width: 1px !important;
  border-style: solid !important;
  border-radius: 9px !important;
  white-space: nowrap !important;
  text-decoration: none !important;
}
body:not(.auth-page) :where([data-mhs-action="add"],[data-mhs-action="save"],[data-mhs-action="schedule"]) {
  color: #fff !important; background: var(--mhs-primary) !important; border-color: var(--mhs-primary) !important;
}
body:not(.auth-page) :where([data-mhs-action="view"],[data-mhs-action="history"],[data-mhs-action="download"]) {
  color: var(--mhs-blue) !important; background: var(--mhs-blue-soft) !important; border-color: color-mix(in srgb,var(--mhs-blue) 38%,var(--mhs-border)) !important;
}
body:not(.auth-page) [data-mhs-action="edit"] {
  color: var(--mhs-warning) !important; background: var(--mhs-warning-soft) !important; border-color: color-mix(in srgb,var(--mhs-warning) 42%,var(--mhs-border)) !important;
}
body:not(.auth-page) :where([data-mhs-action="restore"],[data-mhs-action="complete"],[data-mhs-action="approve"],[data-mhs-action="enable"],[data-mhs-action="restock"]) {
  color: var(--mhs-success) !important; background: var(--mhs-success-soft) !important; border-color: color-mix(in srgb,var(--mhs-success) 40%,var(--mhs-border)) !important;
}
body:not(.auth-page) :where([data-mhs-action="archive"],[data-mhs-action="delete"],[data-mhs-action="reject"],[data-mhs-action="disable"]) {
  color: var(--mhs-danger) !important; background: var(--mhs-danger-soft) !important; border-color: color-mix(in srgb,var(--mhs-danger) 40%,var(--mhs-border)) !important;
}
body:not(.auth-page) :where([data-mhs-action="print"],[data-mhs-action="export"],[data-mhs-action="apply"],[data-mhs-action="clear"],[data-mhs-action="cancel"],[data-mhs-action="reschedule"],[data-mhs-action="issue"],[data-mhs-action="upload"]) {
  color: var(--mhs-text) !important; background: var(--mhs-surface-2) !important; border-color: var(--mhs-border-strong) !important;
}
body:not(.auth-page) [data-mhs-action]:hover { filter: brightness(1.035); box-shadow: var(--mhs-shadow-sm) !important; }
body:not(.auth-page) [data-mhs-action]:focus-visible { outline: 0 !important; box-shadow: var(--mhs-focus-ring) !important; }

/* Filters: same placement and visual hierarchy in every module. */
body:not(.auth-page) :where(.filter-section,.filter-container,.search-filter-section,.mhs-v4-filter-panel) {
  padding: 48px 16px 16px !important;
}
body:not(.auth-page) :where(.filter-section,.filter-container,.search-filter-section,.mhs-v4-filter-panel) :where(form,.row) {
  align-items: end !important;
}
body:not(.auth-page) :where(.filter-section,.filter-container,.search-filter-section,.mhs-v4-filter-panel) :where(.form-group,.filter-group,.col,.col-auto,[class*="col-"]) {
  min-width: 0 !important;
}
body:not(.auth-page) :where(.filter-section,.filter-container,.search-filter-section,.mhs-v4-filter-panel) :where(.btn) { min-height: var(--mhs-control-h) !important; }

/* Tables are stable, readable and easy to scan. */
body:not(.auth-page) :where(.table-responsive,.mhs-v4-table-shell) {
  color: var(--mhs-text) !important;
  background: var(--mhs-surface) !important;
  border-color: var(--mhs-border) !important;
  border-radius: var(--mhs-radius) !important;
}
body:not(.auth-page) :where(table,.table) thead { position: sticky; top: 0; z-index: 2; }
body:not(.auth-page) :where(table,.table) thead th { box-shadow: inset 0 -1px 0 var(--mhs-border) !important; }
body:not(.auth-page) :where(table,.table) :where(a:not(.btn),button:not(.btn)) { color: var(--mhs-blue); }
body:not(.auth-page) :where(.table-striped > tbody > tr:nth-of-type(odd) > *) { --bs-table-bg-type: var(--mhs-table-stripe) !important; color: var(--mhs-text) !important; }
body:not(.auth-page) :where(.table-hover > tbody > tr:hover > *) { --bs-table-bg-state: var(--mhs-table-hover) !important; color: var(--mhs-text) !important; }

/* Pagination / tabs / accordions inherit the active theme. */
body:not(.auth-page) .page-item.disabled .page-link { color: var(--mhs-muted-2) !important; background: var(--mhs-surface-2) !important; }
body:not(.auth-page) :where(.nav-tabs .nav-link,.nav-pills .nav-link) { color: var(--mhs-muted) !important; border-color: transparent !important; }
body:not(.auth-page) :where(.nav-tabs .nav-link.active,.nav-pills .nav-link.active) {
  color: var(--mhs-primary) !important; background: var(--mhs-primary-soft) !important; border-color: var(--mhs-border) !important;
}

/* Dashboard/chart surfaces must follow the same theme, including their inner cards. */
body:not(.auth-page) :where(
  .dashboard-grid,.dashboard-card,.stats-grid,.stat-item,.quick-actions-section,.quick-actions-grid,
  .weekly-overview,.weekly-summary,.chart-section,.charts-grid,.chart-card,.chart-body,.chart-container,.chart-wrapper,
  .health-center-selection,.period-selection,.dashboard-filters,.dashboard-filter-panel
) {
  color: var(--mhs-text) !important;
  border-color: var(--mhs-border) !important;
}
body:not(.auth-page) :where(.chart-card,.chart-body,.chart-container,.chart-wrapper,.weekly-overview,.weekly-summary) { background: var(--mhs-surface) !important; }
body:not(.auth-page) :where(.health-center-selection,.period-selection,.dashboard-filters,.dashboard-filter-panel) { background: var(--mhs-surface-2) !important; }
html[data-mhs-theme="dark"] body:not(.auth-page) canvas { color-scheme: dark; }

/* Low-stock / notification surfaces: never retain a light panel in dark mode. */
body:not(.auth-page) :where(.low-stock-alert,.low-stock-modal,.stock-alert,[id*="lowStock"],[class*="low-stock"],.notification-panel,.notifications-panel) {
  color: var(--mhs-text) !important;
  background: var(--mhs-surface) !important;
  border-color: color-mix(in srgb,var(--mhs-warning) 48%,var(--mhs-border)) !important;
}
body:not(.auth-page) :where(.low-stock-alert,.low-stock-modal,.stock-alert,[id*="lowStock"],[class*="low-stock"]) :where(div,section,header,footer,article) {
  border-color: color-mix(in srgb,var(--mhs-warning) 30%,var(--mhs-border)) !important;
}
html[data-mhs-theme="dark"] body:not(.auth-page) :where(.low-stock-alert,.low-stock-modal,.stock-alert,[id*="lowStock"],[class*="low-stock"]) :where(.bg-white,.bg-light,[style*="background"]) {
  background: var(--mhs-surface-2) !important;
  color: var(--mhs-text) !important;
}

/* Unified operational modal canvas. */
body:not(.auth-page) :where(.modal-dialog:not(.modal-sm),.mhs-v4-modal-dialog:not(.modal-sm)) {
  width: min(var(--mhs-modal-w), calc(100vw - 32px)) !important;
  max-width: var(--mhs-modal-w) !important;
  margin: 20px auto !important;
}
body:not(.auth-page) :where(.modal-content,.custom-modal,.modal-container,.action-modal-content,.mhs-v4-modal-content) {
  width: 100% !important;
  max-width: none !important;
  max-height: var(--mhs-modal-max-h) !important;
  background: var(--mhs-surface) !important;
  border-color: var(--mhs-border) !important;
  border-radius: 18px !important;
}
body:not(.auth-page) :where(.modal-header,.custom-header,.action-modal-header,.modal-header-custom,.mhs-v4-modal-header) {
  min-height: 64px !important;
  padding: 15px 58px 15px 20px !important;
  background: var(--mhs-surface-2) !important;
  border-color: var(--mhs-border) !important;
}
body:not(.auth-page) :where(.modal-body,.custom-body,.action-modal-body,.modal-body-custom,.mhs-v4-modal-body) {
  padding: 20px !important;
  background: var(--mhs-surface) !important;
  color: var(--mhs-text) !important;
}
body:not(.auth-page) :where(.modal-footer,.custom-footer,.action-modal-footer,.modal-footer-custom,.mhs-v4-modal-footer) {
  min-height: 62px !important;
  padding: 12px 20px !important;
  background: var(--mhs-surface-2) !important;
  border-color: var(--mhs-border) !important;
}
body:not(.auth-page) :where(.modal-body,.custom-body,.action-modal-body,.modal-body-custom,.mhs-v4-modal-body) :where(
  .card,.form-section,.info-section,.detail-section,.section-card,.patient-info-section,.appointment-info-section,
  .patient-info,.appointment-info,.details-grid,.info-grid,.form-grid,.detail-grid,.field-value,.info-box,.guidelines-box
) {
  color: var(--mhs-text) !important;
  background: var(--mhs-surface-2) !important;
  border-color: var(--mhs-border) !important;
}
body:not(.auth-page) :where(.modal-body,.custom-body,.action-modal-body,.modal-body-custom,.mhs-v4-modal-body) :where(.form-control,.form-select,input,select,textarea) {
  color: var(--mhs-text) !important;
  background: var(--mhs-input) !important;
  border-color: var(--mhs-border-strong) !important;
}
body:not(.auth-page) :where(.btn-close,.modal-close,.close-modal,.close-modal-btn,button.close) {
  color: var(--mhs-text) !important;
  background: var(--mhs-surface-3) !important;
  border-color: var(--mhs-border-strong) !important;
}
body:not(.auth-page) :where(.btn-close,.modal-close,.close-modal,.close-modal-btn,button.close)::before { color: var(--mhs-heading) !important; }
body:not(.auth-page) :where(.btn-close,.modal-close,.close-modal,.close-modal-btn,button.close):focus-visible { outline: 0 !important; box-shadow: var(--mhs-focus-ring) !important; }
body.modal-open .mhs-v41-scroll-nav { display: none !important; }

/* Screen lock follows the same modal/form language. */
#lockScreen > div > div { color: var(--mhs-text) !important; background: var(--mhs-surface) !important; border-color: var(--mhs-border) !important; }
#lockScreen :where(input,.form-control) { color: var(--mhs-text) !important; background: var(--mhs-input) !important; border-color: var(--mhs-border-strong) !important; }

/* Hide all previous page scroll controls; V4.1 supplies one responsive navigator. */
.scroll-buttons,#scrollControls,.mhs-v4-scroll-top { display: none !important; }
.mhs-v41-scroll-nav {
  position: fixed !important;
  right: max(14px, env(safe-area-inset-right)) !important;
  bottom: max(14px, env(safe-area-inset-bottom)) !important;
  z-index: 1024 !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 7px !important;
  pointer-events: none !important;
  opacity: 0 !important;
  transform: translateY(8px) !important;
  transition: opacity 150ms ease, transform 150ms ease !important;
}
.mhs-v41-scroll-nav.is-needed { opacity: 1 !important; transform: none !important; }
.mhs-v41-scroll-nav button {
  display: grid !important;
  place-items: center !important;
  width: 40px !important;
  height: 40px !important;
  min-height: 40px !important;
  padding: 0 !important;
  pointer-events: auto !important;
  color: var(--mhs-heading) !important;
  background: color-mix(in srgb,var(--mhs-surface) 92%,transparent) !important;
  border: 1px solid var(--mhs-border-strong) !important;
  border-radius: 11px !important;
  box-shadow: var(--mhs-shadow) !important;
  backdrop-filter: blur(10px) !important;
}
.mhs-v41-scroll-nav button:hover { color: #fff !important; background: var(--mhs-primary) !important; border-color: var(--mhs-primary) !important; }
.mhs-v41-scroll-nav button[hidden] { display: none !important; }
.mhs-v41-scroll-nav button:focus-visible { outline: 0 !important; box-shadow: var(--mhs-focus-ring), var(--mhs-shadow) !important; }

/* Workflow refinements: keyboard focus, dense scanning, clear hover/focus. */
body:not(.auth-page) :where(a,button,input,select,textarea,[tabindex]):focus-visible {
  outline: 2px solid color-mix(in srgb,var(--mhs-primary) 72%,white) !important;
  outline-offset: 2px !important;
}
body:not(.auth-page) .mhs-v41-search-focus { animation: mhs-v41-focus-pulse 650ms ease; }
@keyframes mhs-v41-focus-pulse { 0%,100% { box-shadow: var(--mhs-focus-ring); } 50% { box-shadow: 0 0 0 6px color-mix(in srgb,var(--mhs-primary) 11%,transparent); } }

/* Responsive consistency. */
@media (max-width: 991.98px) {
  body:not(.auth-page) :where(.header-top-row,.branch-header-top,.mhs-v4-page-header-top) { align-items: stretch !important; flex-direction: column !important; }
  body:not(.auth-page) :where(.header-actions,.toolbar-actions,.page-actions,.mhs-v4-page-actions) { width: 100% !important; justify-content: flex-start !important; }
  body:not(.auth-page) :where(.filter-section,.filter-container,.search-filter-section,.mhs-v4-filter-panel) :where(.row) { row-gap: 10px !important; }
}
@media (max-width: 767.98px) {
  body:not(.auth-page) :where(.modal-dialog:not(.modal-sm),.mhs-v4-modal-dialog:not(.modal-sm)) {
    width: calc(100vw - 16px) !important;
    max-width: none !important;
    margin: 8px auto !important;
  }
  body:not(.auth-page) :where(.modal-content,.custom-modal,.modal-container,.action-modal-content,.mhs-v4-modal-content) {
    max-height: calc(100dvh - 16px) !important;
    border-radius: 14px !important;
  }
  body:not(.auth-page) :where(.modal-header,.custom-header,.action-modal-header,.modal-header-custom,.mhs-v4-modal-header) { min-height: 58px !important; padding: 12px 52px 12px 14px !important; }
  body:not(.auth-page) :where(.modal-body,.custom-body,.action-modal-body,.modal-body-custom,.mhs-v4-modal-body) { padding: 14px !important; }
  body:not(.auth-page) :where(.modal-footer,.custom-footer,.action-modal-footer,.modal-footer-custom,.mhs-v4-modal-footer) { padding: 10px 14px !important; }
  body:not(.auth-page) :where(.header-actions,.toolbar-actions,.page-actions,.filter-actions,.mhs-v4-page-actions,.modal-footer,.custom-footer,.action-modal-footer,.mhs-v4-modal-footer) > :where(.btn,button,a.btn) { flex: 1 1 auto !important; }
  td.action-buttons > :where(button,.btn,a.btn),td.mhs-v4-action-cell > :where(button,.btn,a.btn),td[data-mhs-actions="true"] > :where(button,.btn,a.btn) { margin: 4px 5px 4px 0 !important; }
}
@media (max-width: 520px) {
  .mhs-v41-scroll-nav { right: max(9px, env(safe-area-inset-right)) !important; bottom: max(9px, env(safe-area-inset-bottom)) !important; gap: 5px !important; }
  .mhs-v41-scroll-nav button { width: 38px !important; height: 38px !important; min-height: 38px !important; }
  body:not(.auth-page) :where(.filter-section,.filter-container,.search-filter-section,.mhs-v4-filter-panel) { padding: 46px 10px 10px !important; }
}

@media print {
  html,body { color-scheme: light !important; background: #fff !important; color: #111 !important; }
  .mhs-v41-scroll-nav,[data-mhs-theme-toggle] { display: none !important; }
  body:not(.auth-page) :where(.card,.modal-content,.table-responsive,.mhs-v4-table-shell,table,.table,td,th) { background: #fff !important; color: #111 !important; border-color: #bbb !important; box-shadow: none !important; }
}

/* Theme-aware alerts and feedback surfaces. */
body:not(.auth-page) :where(.alert,.flash-message,.flash-success,.flash-error,.flash-warning,.message-box) {
  color: var(--mhs-text) !important;
  background: var(--mhs-surface-2) !important;
  border-color: var(--mhs-border) !important;
  border-radius: 11px !important;
}
body:not(.auth-page) :where(.alert-success,.flash-success,.success-message) {
  color: var(--mhs-success) !important;
  background: var(--mhs-success-soft) !important;
  border-color: color-mix(in srgb,var(--mhs-success) 35%,var(--mhs-border)) !important;
}
body:not(.auth-page) :where(.alert-danger,.alert-error,.flash-error,.error-message) {
  color: var(--mhs-danger) !important;
  background: var(--mhs-danger-soft) !important;
  border-color: color-mix(in srgb,var(--mhs-danger) 35%,var(--mhs-border)) !important;
}
body:not(.auth-page) :where(.alert-warning,.flash-warning,.warning-message) {
  color: var(--mhs-warning) !important;
  background: var(--mhs-warning-soft) !important;
  border-color: color-mix(in srgb,var(--mhs-warning) 38%,var(--mhs-border)) !important;
}
body:not(.auth-page) :where(.alert-info,.info-message) {
  color: var(--mhs-blue) !important;
  background: var(--mhs-blue-soft) !important;
  border-color: color-mix(in srgb,var(--mhs-blue) 35%,var(--mhs-border)) !important;
}
body:not(.auth-page) :where(div.action-buttons,.actions,.form-actions,.modal-actions) {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  flex-wrap: wrap !important;
  gap: var(--mhs-action-gap) !important;
}
body:not(.auth-page) :where(div.action-buttons,.actions,.form-actions,.modal-actions) > :where(.btn,button,a) { margin: 0 !important; }

/* ========================================================================== */
/* V4.3 COMPONENT CONSOLIDATION                                               */
/* Explicit semantics, strict theme coverage, unified modal/filter/actions.    */
/* ========================================================================== */
:root {
  --mhs-action-gap: 8px;
  --mhs-control-h: 42px;
  --mhs-modal-standard: 920px;
  --mhs-modal-clinical: 1080px;
  --mhs-modal-confirm: 460px;
  --mhs-focus-ring: 0 0 0 3px color-mix(in srgb, var(--mhs-primary) 20%, transparent);
}

/* ---- Explicit semantic actions: V4.3 never rewrites labels in JS. ---- */
body:not(.auth-page) :where(button,a,.btn,input[type="button"],input[type="submit"])[data-mhs-action] {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 7px !important;
  min-height: 38px !important;
  min-width: 74px !important;
  padding: 7px 12px !important;
  margin: 0 !important;
  border: 1px solid var(--mhs-border-strong) !important;
  border-radius: 9px !important;
  color: var(--mhs-text) !important;
  background: var(--mhs-surface-2) !important;
  font: 700 .75rem/1.15 var(--mhs-font) !important;
  text-decoration: none !important;
  white-space: normal !important;
  text-align: center !important;
  vertical-align: middle !important;
  box-shadow: none !important;
  transition: transform var(--mhs-transition), border-color var(--mhs-transition), background-color var(--mhs-transition), color var(--mhs-transition) !important;
}
body:not(.auth-page) :where(button,a,.btn)[data-mhs-action]:hover { transform: translateY(-1px) !important; }
body:not(.auth-page) :where(button,a,.btn)[data-mhs-action]:focus-visible { outline: 0 !important; box-shadow: var(--mhs-focus-ring) !important; }
body:not(.auth-page) :where(button,a,.btn)[data-mhs-action="add"],
body:not(.auth-page) :where(button,a,.btn)[data-mhs-action="save"],
body:not(.auth-page) :where(button,a,.btn)[data-mhs-action="apply"] {
  color: #fff !important; background: var(--mhs-primary) !important; border-color: var(--mhs-primary) !important;
}
body:not(.auth-page) :where(button,a,.btn)[data-mhs-action="view"],
body:not(.auth-page) :where(button,a,.btn)[data-mhs-action="history"] {
  color: var(--mhs-blue) !important; background: var(--mhs-blue-soft) !important; border-color: color-mix(in srgb, var(--mhs-blue) 38%, var(--mhs-border)) !important;
}
body:not(.auth-page) :where(button,a,.btn)[data-mhs-action="edit"] {
  color: var(--mhs-warning) !important; background: var(--mhs-warning-soft) !important; border-color: color-mix(in srgb, var(--mhs-warning) 42%, var(--mhs-border)) !important;
}
body:not(.auth-page) :where(button,a,.btn)[data-mhs-action="restore"],
body:not(.auth-page) :where(button,a,.btn)[data-mhs-action="complete"],
body:not(.auth-page) :where(button,a,.btn)[data-mhs-action="enable"],
body:not(.auth-page) :where(button,a,.btn)[data-mhs-action="restock"] {
  color: var(--mhs-success) !important; background: var(--mhs-success-soft) !important; border-color: color-mix(in srgb, var(--mhs-success) 42%, var(--mhs-border)) !important;
}
body:not(.auth-page) :where(button,a,.btn)[data-mhs-action="archive"],
body:not(.auth-page) :where(button,a,.btn)[data-mhs-action="delete"],
body:not(.auth-page) :where(button,a,.btn)[data-mhs-action="disable"] {
  color: var(--mhs-danger) !important; background: var(--mhs-danger-soft) !important; border-color: color-mix(in srgb, var(--mhs-danger) 42%, var(--mhs-border)) !important;
}
body:not(.auth-page) :where(button,a,.btn)[data-mhs-action="cancel"],
body:not(.auth-page) :where(button,a,.btn)[data-mhs-action="clear"] {
  color: var(--mhs-muted) !important; background: var(--mhs-surface-2) !important; border-color: var(--mhs-border-strong) !important;
}
body:not(.auth-page) :where(button,a,.btn)[data-mhs-action="print"],
body:not(.auth-page) :where(button,a,.btn)[data-mhs-action="export"],
body:not(.auth-page) :where(button,a,.btn)[data-mhs-action="download"],
body:not(.auth-page) :where(button,a,.btn)[data-mhs-action="upload"] {
  color: var(--mhs-primary) !important; background: var(--mhs-primary-soft) !important; border-color: color-mix(in srgb, var(--mhs-primary) 38%, var(--mhs-border)) !important;
}

/* Consistent action spacing without turning TDs into flex containers. */
body:not(.auth-page) :where(.header-actions,.toolbar-actions,.page-actions,.filter-actions,.form-actions,.modal-actions,.mhs-v4-page-actions,.export-buttons),
body:not(.auth-page) :where(.modal-footer,.custom-footer,.action-modal-footer,.modal-footer-custom,.mhs-v4-modal-footer) {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  flex-wrap: wrap !important;
  gap: var(--mhs-action-gap) !important;
}
body:not(.auth-page) td.action-buttons,
body:not(.auth-page) td.mhs-v4-action-cell,
body:not(.auth-page) td[data-mhs-actions="true"] {
  min-width: 170px !important;
  padding: 10px 12px !important;
  white-space: normal !important;
  vertical-align: middle !important;
}
body:not(.auth-page) td.action-buttons > :where(button,.btn,a.btn),
body:not(.auth-page) td.mhs-v4-action-cell > :where(button,.btn,a.btn),
body:not(.auth-page) td[data-mhs-actions="true"] > :where(button,.btn,a.btn) {
  margin: 3px 6px 3px 0 !important;
  vertical-align: middle !important;
}

/* ---- Page headers and Backup/Restore now share the same contract. ---- */
body:not(.auth-page) :where(.backup-header,.mhs-v42-backup-header) {
  position: relative !important;
  width: 100% !important;
  margin: 0 0 16px !important;
  padding: 18px !important;
  color: var(--mhs-text) !important;
  background: var(--mhs-surface) !important;
  border: 1px solid var(--mhs-border) !important;
  border-left: 4px solid var(--mhs-primary) !important;
  border-radius: var(--mhs-radius-lg) !important;
  box-shadow: var(--mhs-shadow-sm) !important;
}
body:not(.auth-page) .mhs-v42-backup-header .time-info { color: var(--mhs-muted) !important; font-size: .76rem !important; }
body:not(.auth-page) .mhs-v42-page-meta-row { gap: 12px !important; flex-wrap: wrap !important; }

/* ---- Filter layout: one predictable panel directly after the module header. ---- */
body:not(.auth-page) :where(.filter-section,.mhs-v4-filter-panel) {
  position: relative !important;
  width: 100% !important;
  margin: 0 0 16px !important;
  padding: 48px 16px 14px !important;
  color: var(--mhs-text) !important;
  background: var(--mhs-surface) !important;
  border: 1px solid var(--mhs-border) !important;
  border-radius: var(--mhs-radius) !important;
  box-shadow: var(--mhs-shadow-sm) !important;
}
body:not(.auth-page) :where(.filter-section,.mhs-v4-filter-panel)::before {
  content: "Search & Filters" !important;
  position: absolute !important;
  inset: 0 0 auto 0 !important;
  height: 38px !important;
  display: flex !important;
  align-items: center !important;
  padding: 0 16px !important;
  color: var(--mhs-heading) !important;
  background: var(--mhs-surface-2) !important;
  border-bottom: 1px solid var(--mhs-border) !important;
  border-radius: var(--mhs-radius) var(--mhs-radius) 0 0 !important;
  font: 800 .75rem/1 var(--mhs-font) !important;
  letter-spacing: .01em !important;
}
body:not(.auth-page) :where(.filter-section,.mhs-v4-filter-panel) :where(.row,form) { row-gap: 10px !important; }
body:not(.auth-page) :where(.filter-section,.mhs-v4-filter-panel) :where(.form-control,.form-select,input,select,textarea,.btn,button,a.btn) { min-height: var(--mhs-control-h) !important; }

/* Exactly one select indicator: use native browser rendering in the active scheme. */
body :where(select,.form-select,.filter-select) {
  appearance: auto !important;
  -webkit-appearance: menulist !important;
  background-image: none !important;
  color-scheme: inherit !important;
}
body :where(select,.form-select,.filter-select)::after,
body :where(select,.form-select,.filter-select)::before { content: none !important; display: none !important; }

/* ---- Strict operational theme contract. ---- */
body:not(.auth-page) :where(
  .card,.card-body,.card-header,.list-group-item,.accordion-item,.accordion-body,.accordion-header,
  .section-box,.info-card,.info-box,.history-card,.user-card,.user-item,.stat-card,.stats-card,
  .table-responsive,.mhs-v4-table-shell,.dropdown-menu,.tab-content,.tab-pane,
  .custom-body,.custom-footer,.action-modal-body,.action-modal-footer,.modal-body,.modal-footer
) {
  color: var(--mhs-text) !important;
  border-color: var(--mhs-border) !important;
}
body:not(.auth-page) :where(.card,.card-body,.section-box,.info-card,.history-card,.user-card,.user-item,.table-responsive,.mhs-v4-table-shell,.dropdown-menu,.tab-content) {
  background: var(--mhs-surface) !important;
}
body:not(.auth-page) :where(.card-header,.accordion-header,.modal-header,.custom-header,.action-modal-header) {
  color: var(--mhs-heading) !important;
  background: var(--mhs-surface-2) !important;
  border-color: var(--mhs-border) !important;
}
body:not(.auth-page) :where(.form-control,.form-select,input:not([type="checkbox"]):not([type="radio"]),select,textarea) {
  color: var(--mhs-text) !important;
  background: var(--mhs-input) !important;
  border-color: var(--mhs-border-strong) !important;
}
body:not(.auth-page) :where(.form-control,.form-select,input,select,textarea)::placeholder { color: var(--mhs-muted-2) !important; }
body:not(.auth-page) :where(input[readonly],textarea[readonly],.form-control[readonly],input:disabled,select:disabled,textarea:disabled) {
  color: var(--mhs-muted) !important;
  background: var(--mhs-surface-3) !important;
  opacity: 1 !important;
}

/* Repair common legacy inline light surfaces inside operational UI. */
html[data-mhs-theme="dark"] body:not(.auth-page) :where(.modal,.modal-overlay,.action-modal,.custom-modal,.section-box,.info-card,.history-card) [style*="background: white"],
html[data-mhs-theme="dark"] body:not(.auth-page) :where(.modal,.modal-overlay,.action-modal,.custom-modal,.section-box,.info-card,.history-card) [style*="background-color: white"],
html[data-mhs-theme="dark"] body:not(.auth-page) :where(.modal,.modal-overlay,.action-modal,.custom-modal,.section-box,.info-card,.history-card) [style*="background-color: #fff"],
html[data-mhs-theme="dark"] body:not(.auth-page) :where(.modal,.modal-overlay,.action-modal,.custom-modal,.section-box,.info-card,.history-card) [style*="background-color: #ffffff"],
html[data-mhs-theme="dark"] body:not(.auth-page) :where(.modal,.modal-overlay,.action-modal,.custom-modal,.section-box,.info-card,.history-card) [style*="background-color: #f8f9fa"],
html[data-mhs-theme="dark"] body:not(.auth-page) :where(.modal,.modal-overlay,.action-modal,.custom-modal,.section-box,.info-card,.history-card) [style*="background-color: #e9ecef"] {
  background: var(--mhs-surface-2) !important;
  background-color: var(--mhs-surface-2) !important;
  color: var(--mhs-text) !important;
}
html[data-mhs-theme="dark"] body:not(.auth-page) :where(.modal,.modal-overlay,.action-modal,.custom-modal) [style*="color: #333"],
html[data-mhs-theme="dark"] body:not(.auth-page) :where(.modal,.modal-overlay,.action-modal,.custom-modal) [style*="color:#333"],
html[data-mhs-theme="dark"] body:not(.auth-page) :where(.modal,.modal-overlay,.action-modal,.custom-modal) [style*="color: #000"] { color: var(--mhs-text) !important; }

/* ---- Unified modal system ---- */
body:not(.auth-page) .modal { color: var(--mhs-text) !important; }
body:not(.auth-page) .modal-backdrop.show { opacity: .64 !important; background: #03141a !important; }
body:not(.auth-page) :where(.modal-dialog,.mhs-v4-modal-dialog):not(.modal-sm) {
  width: min(calc(100vw - 32px), var(--mhs-modal-standard)) !important;
  max-width: var(--mhs-modal-standard) !important;
  margin: 22px auto !important;
}
body:not(.auth-page) :where(.modal-dialog.modal-xl,.mhs-v4-modal-dialog.modal-xl) {
  width: min(calc(100vw - 32px), var(--mhs-modal-clinical)) !important;
  max-width: var(--mhs-modal-clinical) !important;
}
body:not(.auth-page) :where(.modal-dialog.modal-sm,.confirm-modal .modal-dialog) { max-width: var(--mhs-modal-confirm) !important; }
body:not(.auth-page) :where(.modal-content,.mhs-v4-modal-content,.custom-modal,.modal-container,.action-modal-content,.modal-content-large) {
  overflow: hidden !important;
  color: var(--mhs-text) !important;
  background: var(--mhs-surface) !important;
  border: 1px solid var(--mhs-border-strong) !important;
  border-radius: 16px !important;
  box-shadow: 0 24px 70px rgba(0,0,0,.28) !important;
}
body:not(.auth-page) :where(.modal-header,.mhs-v4-modal-header,.custom-header,.action-modal-header) {
  position: relative !important;
  min-height: 62px !important;
  padding: 14px 58px 14px 18px !important;
  color: var(--mhs-heading) !important;
  background: var(--mhs-surface-2) !important;
  border: 0 !important;
  border-bottom: 1px solid var(--mhs-border) !important;
  box-shadow: inset 4px 0 0 var(--mhs-primary) !important;
}
body:not(.auth-page) :where(.modal-header,.mhs-v4-modal-header,.custom-header,.action-modal-header) :where(h1,h2,h3,h4,h5,.modal-title) {
  margin: 0 !important; color: var(--mhs-heading) !important; font-size: 1.05rem !important; font-weight: 800 !important;
}
body:not(.auth-page) :where(.modal-body,.mhs-v4-modal-body,.custom-body,.action-modal-body) {
  max-height: calc(88dvh - 124px) !important;
  overflow: auto !important;
  padding: 18px !important;
  color: var(--mhs-text) !important;
  background: var(--mhs-surface) !important;
  overscroll-behavior: contain !important;
}
body:not(.auth-page) :where(.modal-footer,.mhs-v4-modal-footer,.custom-footer,.action-modal-footer) {
  min-height: 58px !important;
  padding: 10px 16px !important;
  color: var(--mhs-text) !important;
  background: var(--mhs-surface-2) !important;
  border: 0 !important;
  border-top: 1px solid var(--mhs-border) !important;
}
body:not(.auth-page) :where(.btn-close,.modal-close,.close-modal,.close-modal-btn,.mhs-v42-modal-close,button.close,span.close) {
  position: absolute !important;
  top: 12px !important;
  right: 14px !important;
  z-index: 8 !important;
  display: grid !important;
  place-items: center !important;
  width: 36px !important;
  height: 36px !important;
  min-width: 36px !important;
  min-height: 36px !important;
  margin: 0 !important;
  padding: 0 !important;
  color: var(--mhs-heading) !important;
  background: var(--mhs-surface-3) !important;
  border: 1px solid var(--mhs-border-strong) !important;
  border-radius: 9px !important;
  opacity: 1 !important;
  filter: none !important;
  font: 800 1.2rem/1 var(--mhs-font) !important;
  cursor: pointer !important;
}
body:not(.auth-page) .btn-close { background-image: none !important; }
body:not(.auth-page) .btn-close::before { content: "×" !important; color: var(--mhs-heading) !important; }
body:not(.auth-page) :where(.btn-close,.modal-close,.close-modal,.close-modal-btn,.mhs-v42-modal-close,button.close,span.close):hover {
  color: #fff !important; background: var(--mhs-danger) !important; border-color: var(--mhs-danger) !important;
}

/* Custom modal overlays use the same canvas instead of full-width legacy layouts. */
body:not(.auth-page) :where(.modal-overlay,.action-modal,.mhs-v42-custom-modal) {
  position: fixed !important;
  inset: 0 !important;
  z-index: 1060 !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 20px !important;
  background: var(--mhs-overlay) !important;
  backdrop-filter: blur(5px) !important;
}
body:not(.auth-page) .action-modal-content.mhs-v42-standard-modal {
  width: min(calc(100vw - 40px), var(--mhs-modal-standard)) !important;
  max-width: var(--mhs-modal-standard) !important;
  max-height: 88dvh !important;
  margin: auto !important;
}
body:not(.auth-page) #historyModalOverlay .modal-content-large.mhs-v42-clinical-modal {
  width: min(calc(100vw - 40px), var(--mhs-modal-clinical)) !important;
  max-width: var(--mhs-modal-clinical) !important;
  max-height: 88dvh !important;
  margin: auto !important;
  padding: 0 !important;
}

/* Medical History theme completion. */
body:not(.auth-page) #historyModalOverlay :where(.patient-summary-enhanced,.history-card) {
  color: var(--mhs-text) !important; background: var(--mhs-surface-2) !important; border-color: var(--mhs-border) !important;
}
body:not(.auth-page) #historyModalOverlay .patient-info-item .label { color: var(--mhs-muted) !important; }
body:not(.auth-page) #historyModalOverlay .patient-info-item .value {
  color: var(--mhs-text) !important; background: var(--mhs-surface-3) !important; border: 1px solid var(--mhs-border) !important;
}
body:not(.auth-page) #historyModalOverlay .history-card .card-title {
  color: var(--mhs-heading) !important; background: transparent !important; border-color: var(--mhs-border) !important;
}
body:not(.auth-page) #historyModalOverlay .history-table thead th { color: var(--mhs-heading) !important; background: var(--mhs-table-head) !important; }
body:not(.auth-page) #historyModalOverlay .history-table tbody td { color: var(--mhs-text) !important; background: var(--mhs-surface) !important; }

/* Health Center Users modal: force all dynamic information to stay readable. */
body:not(.auth-page) #viewUsersModal :where(.stats-card,.user-list-section,.user-item,.user-card,.user-info) {
  color: var(--mhs-text) !important; background: var(--mhs-surface-2) !important; border-color: var(--mhs-border) !important;
}
body:not(.auth-page) #viewUsersModal :where(.user-name,.user-email,.user-role,.user-status,h4,h5,h6,p,small,span) { color: var(--mhs-text) !important; }
body:not(.auth-page) #viewUsersModal :where(.user-email,small,.text-muted) { color: var(--mhs-muted) !important; }
body:not(.auth-page) #viewUsersModal .user-role-badge { color: var(--mhs-blue) !important; background: var(--mhs-blue-soft) !important; }

/* Backup cards/guide are theme-safe. */
body:not(.auth-page) :where(.simple-guide,.upload-area,.file-preview,.backup-section,.backup-card) {
  color: var(--mhs-text) !important; background: var(--mhs-surface) !important; border-color: var(--mhs-border) !important;
}
body:not(.auth-page) :where(.simple-guide,.upload-area,.file-preview,.backup-section,.backup-card) :where(p,li,small,code) { color: var(--mhs-muted) !important; }

/* ---- Scroll navigator: compact, contextual, never over an active dialog. ---- */
.mhs-v41-scroll-nav { display: none !important; }
.mhs-v42-scroll-nav {
  position: fixed !important;
  right: max(14px, env(safe-area-inset-right)) !important;
  bottom: max(18px, env(safe-area-inset-bottom)) !important;
  z-index: 1025 !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 6px !important;
  opacity: 0 !important;
  transform: translateY(8px) !important;
  pointer-events: none !important;
  transition: opacity var(--mhs-transition), transform var(--mhs-transition) !important;
}
.mhs-v42-scroll-nav.is-needed { opacity: .9 !important; transform: none !important; pointer-events: auto !important; }
.mhs-v42-scroll-nav button {
  display: grid !important; place-items: center !important; width: 38px !important; height: 38px !important; padding: 0 !important;
  color: var(--mhs-text) !important; background: color-mix(in srgb, var(--mhs-surface) 92%, transparent) !important;
  border: 1px solid var(--mhs-border-strong) !important; border-radius: 11px !important; box-shadow: var(--mhs-shadow-sm) !important;
  backdrop-filter: blur(8px) !important;
}
.mhs-v42-scroll-nav button:hover { color: #fff !important; background: var(--mhs-primary) !important; border-color: var(--mhs-primary) !important; }
.mhs-v42-scroll-nav button[hidden] { display: none !important; }
body.modal-open .mhs-v42-scroll-nav,
body:has(.modal-overlay.active) .mhs-v42-scroll-nav,
body:has(.mhs-v42-custom-modal[style*="display: flex"]) .mhs-v42-scroll-nav,
body:has(.mhs-v42-custom-modal[style*="display:flex"]) .mhs-v42-scroll-nav { display: none !important; }

/* Responsive contract */
@media (max-width: 991.98px) {
  body:not(.auth-page) :where(.modal-dialog,.mhs-v4-modal-dialog):not(.modal-sm),
  body:not(.auth-page) .action-modal-content.mhs-v42-standard-modal,
  body:not(.auth-page) #historyModalOverlay .modal-content-large.mhs-v42-clinical-modal {
    width: min(calc(100vw - 20px), 760px) !important; max-width: calc(100vw - 20px) !important; margin: 10px auto !important;
  }
  body:not(.auth-page) :where(.filter-section,.mhs-v4-filter-panel) :where([class*="col-"]) { flex: 1 1 240px !important; max-width: 100% !important; }
}
@media (max-width: 575.98px) {
  body:not(.auth-page) :where(.filter-section,.mhs-v4-filter-panel) { padding: 48px 10px 10px !important; }
  body:not(.auth-page) :where(.modal-overlay,.action-modal,.mhs-v42-custom-modal) { padding: 6px !important; }
  body:not(.auth-page) :where(.modal-dialog,.mhs-v4-modal-dialog):not(.modal-sm),
  body:not(.auth-page) .action-modal-content.mhs-v42-standard-modal,
  body:not(.auth-page) #historyModalOverlay .modal-content-large.mhs-v42-clinical-modal {
    width: calc(100vw - 12px) !important; max-width: calc(100vw - 12px) !important; max-height: calc(100dvh - 12px) !important; margin: 6px auto !important;
  }
  body:not(.auth-page) :where(.modal-body,.mhs-v4-modal-body,.custom-body,.action-modal-body) { max-height: calc(100dvh - 126px) !important; padding: 13px !important; }
  body:not(.auth-page) :where(.modal-footer,.mhs-v4-modal-footer,.custom-footer,.action-modal-footer) > :where(.btn,button,a.btn) { flex: 1 1 120px !important; }
  body:not(.auth-page) td.action-buttons,
  body:not(.auth-page) td.mhs-v4-action-cell,
  body:not(.auth-page) td[data-mhs-actions="true"] { min-width: 150px !important; }
}

/* Period controls + Search & Filters render as one two-row filter workspace. */
body:not(.auth-page) .period-filter {
  width: 100% !important;
  margin: 0 !important;
  padding: 12px 16px !important;
  color: var(--mhs-text) !important;
  background: var(--mhs-surface-2) !important;
  border: 1px solid var(--mhs-border) !important;
  border-bottom: 0 !important;
  border-radius: var(--mhs-radius) var(--mhs-radius) 0 0 !important;
  box-shadow: var(--mhs-shadow-sm) !important;
}
body:not(.auth-page) .period-filter + :where(.filter-section,.mhs-v4-filter-panel) {
  border-radius: 0 0 var(--mhs-radius) var(--mhs-radius) !important;
  margin-top: 0 !important;
}
body:not(.auth-page) .period-filter + :where(.filter-section,.mhs-v4-filter-panel)::before {
  border-radius: 0 !important;
}
body:not(.auth-page) .period-filter :where(.period-btn,button,.btn,input,select) {
  min-height: 38px !important;
  color: var(--mhs-text) !important;
  background: var(--mhs-surface) !important;
  border-color: var(--mhs-border-strong) !important;
}
body:not(.auth-page) .period-filter :where(.period-btn.active,.btn.active,button.active) {
  color: #fff !important;
  background: var(--mhs-primary) !important;
  border-color: var(--mhs-primary) !important;
}
body:not(.auth-page) :where(button,a,.btn)[data-mhs-action="schedule"],
body:not(.auth-page) :where(button,a,.btn)[data-mhs-action="process"],
body:not(.auth-page) :where(button,a,.btn)[data-mhs-action="issue"],
body:not(.auth-page) :where(button,a,.btn)[data-mhs-action="approve"] {
  color: #fff !important; background: var(--mhs-primary) !important; border-color: var(--mhs-primary) !important;
}
body:not(.auth-page) :where(button,a,.btn)[data-mhs-action="reject"],
body:not(.auth-page) :where(button,a,.btn)[data-mhs-action="logout"] {
  color: var(--mhs-danger) !important; background: var(--mhs-danger-soft) !important; border-color: color-mix(in srgb, var(--mhs-danger) 42%, var(--mhs-border)) !important;
}
body:not(.auth-page) :where(button,a,.btn)[data-mhs-action="back"] {
  color: var(--mhs-text) !important; background: var(--mhs-surface-2) !important; border-color: var(--mhs-border-strong) !important;
}

/* Compact confirmation dialogs (Sign out / archive-style confirmations). */
body:not(.auth-page) .logout-modal-overlay {
  position: fixed !important;
  inset: 0 !important;
  z-index: 1080 !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 18px !important;
  background: var(--mhs-overlay) !important;
  backdrop-filter: blur(5px) !important;
}
body:not(.auth-page) .logout-modal-content {
  width: min(calc(100vw - 36px), var(--mhs-modal-confirm)) !important;
  max-width: var(--mhs-modal-confirm) !important;
  margin: auto !important;
  overflow: hidden !important;
  color: var(--mhs-text) !important;
  background: var(--mhs-surface) !important;
  border: 1px solid var(--mhs-border-strong) !important;
  border-radius: 15px !important;
  box-shadow: 0 24px 70px rgba(0,0,0,.3) !important;
}
body:not(.auth-page) .logout-modal-body {
  padding: 20px 20px 14px !important;
  color: var(--mhs-text) !important;
  background: var(--mhs-surface) !important;
}
body:not(.auth-page) .logout-modal-body h3 { margin: 0 0 7px !important; color: var(--mhs-heading) !important; font-size: 1.08rem !important; }
body:not(.auth-page) .logout-modal-body p { margin: 0 !important; color: var(--mhs-muted) !important; }
body:not(.auth-page) .logout-modal-footer {
  display: flex !important;
  justify-content: flex-end !important;
  gap: 8px !important;
  padding: 11px 16px !important;
  background: var(--mhs-surface-2) !important;
  border-top: 1px solid var(--mhs-border) !important;
}
body:not(.auth-page) .logout-modal-footer > button { min-width: 92px !important; }


/* ==================================================================
   HEALTH MIS V4.3 — FINAL COMPONENT CONSOLIDATION
   Shared modal, session, action-grid and theme authority.
   This file is loaded after all legacy compatibility styles.
   ================================================================== */
:root {
  --mhs-modal-standard: 900px;
  --mhs-modal-clinical: 1040px;
  --mhs-modal-confirm: 460px;
  --mhs-modal-section-gap: 16px;
  --mhs-modal-field-gap: 14px;
  --mhs-action-gap: 8px;
}

/* Shared overlays */
body:not(.auth-page) :where(.modal-overlay,.custom-modal-overlay,.action-modal,.ajax-modal-overlay,.mhs-v43-modal-overlay) {
  position: fixed !important; inset: 0 !important; z-index: 1060 !important;
  display: none; align-items: center !important; justify-content: center !important;
  padding: 18px !important; background: var(--mhs-overlay) !important;
  backdrop-filter: blur(8px) !important; -webkit-backdrop-filter: blur(8px) !important;
}
body:not(.auth-page) :where(.modal-overlay,.custom-modal-overlay,.action-modal,.ajax-modal-overlay,.mhs-v43-modal-overlay).show,
body:not(.auth-page) :where(.modal-overlay,.custom-modal-overlay,.action-modal,.ajax-modal-overlay,.mhs-v43-modal-overlay).active,
body:not(.auth-page) :where(.mhs-v43-modal-overlay)[style*="display: flex"],
body:not(.auth-page) :where(.modal-overlay,.action-modal,.ajax-modal-overlay)[style*="display: flex"] { display:flex !important; }

/* One shell for Bootstrap and custom dialogs */
body:not(.auth-page) :where(.modal-dialog,.mhs-v43-modal-dialog):not(.modal-sm),
body:not(.auth-page) :where(.custom-modal,.modal-container,.action-modal-content,.ajax-modal-content,.modal-content-large,.mhs-v43-modal):not(.mhs-v43-modal--confirm) {
  width: min(calc(100vw - 36px), var(--mhs-modal-standard)) !important;
  max-width: var(--mhs-modal-standard) !important;
  margin: 20px auto !important;
}
body:not(.auth-page) :where(.modal-dialog.modal-xl,.mhs-v43-modal--clinical,.modal-content-large) {
  width: min(calc(100vw - 36px), var(--mhs-modal-clinical)) !important;
  max-width: var(--mhs-modal-clinical) !important;
}
body:not(.auth-page) :where(.modal-dialog.modal-sm,.mhs-v43-modal--confirm,.confirm-modal .modal-dialog) {
  width: min(calc(100vw - 28px), var(--mhs-modal-confirm)) !important;
  max-width: var(--mhs-modal-confirm) !important;
}
body:not(.auth-page) :where(.modal-content,.custom-modal,.modal-container,.action-modal-content,.ajax-modal-content,.modal-content-large,.mhs-v43-modal-content,.mhs-v43-modal) {
  display:flex !important; flex-direction:column !important; min-height:0 !important;
  max-height: min(88dvh, 860px) !important; overflow:hidden !important;
  color:var(--mhs-text) !important; background:var(--mhs-surface) !important;
  border:1px solid var(--mhs-border-strong) !important; border-radius:18px !important;
  box-shadow:0 28px 86px rgba(0,0,0,.32) !important;
}
body:not(.auth-page) :where(.modal-header,.custom-header,.action-modal-header,.ajax-modal-header,.modal-header-custom,.mhs-v43-modal-header) {
  position:relative !important; flex:0 0 auto !important; display:flex !important; align-items:center !important;
  min-height:64px !important; padding:14px 62px 14px 18px !important;
  color:var(--mhs-heading) !important; background:var(--mhs-surface-2) !important;
  border:0 !important; border-bottom:1px solid var(--mhs-border) !important;
}
body:not(.auth-page) :where(.modal-header,.custom-header,.action-modal-header,.ajax-modal-header,.mhs-v43-modal-header) :where(h1,h2,h3,h4,h5,.modal-title) {
  margin:0 !important; color:var(--mhs-heading) !important; font-size:1.04rem !important; font-weight:800 !important; line-height:1.3 !important;
}
body:not(.auth-page) :where(.modal-body,.custom-body,.action-modal-body,.ajax-modal-body,.modal-body-custom,.mhs-v43-modal-body) {
  flex:1 1 auto !important; min-height:0 !important; overflow:auto !important; overscroll-behavior:contain !important;
  padding:18px !important; color:var(--mhs-text) !important; background:var(--mhs-surface) !important;
}
body:not(.auth-page) :where(.modal-footer,.custom-footer,.action-modal-footer,.modal-footer-custom,.mhs-v43-modal-footer) {
  flex:0 0 auto !important; display:flex !important; align-items:center !important; justify-content:flex-end !important; flex-wrap:wrap !important;
  gap:var(--mhs-action-gap) !important; min-height:58px !important; padding:11px 18px !important;
  color:var(--mhs-text) !important; background:var(--mhs-surface-2) !important; border:0 !important; border-top:1px solid var(--mhs-border) !important;
}

/* Standard internal section rhythm */
body:not(.auth-page) :where(.modal-body,.custom-body,.action-modal-body,.ajax-modal-body,.mhs-v43-modal-body) > * + * { margin-top:var(--mhs-modal-section-gap) !important; }
body:not(.auth-page) :where(.modal-body,.custom-body,.action-modal-body,.ajax-modal-body,.mhs-v43-modal-body)
  :where(.info-card,.section-card,.form-section,.info-section,.detail-section,.history-card,.patient-summary-enhanced,.section-box) {
  margin:0 0 var(--mhs-modal-section-gap) !important; padding:16px !important;
  color:var(--mhs-text) !important; background:var(--mhs-surface-2) !important;
  border:1px solid var(--mhs-border) !important; border-radius:14px !important; box-shadow:none !important;
}
body:not(.auth-page) :where(.modal-body,.custom-body,.action-modal-body,.ajax-modal-body,.mhs-v43-modal-body)
  :where(.form-grid,.row,.patient-info-grid) { row-gap:var(--mhs-modal-field-gap) !important; }
body:not(.auth-page) :where(.modal-body,.custom-body,.action-modal-body,.ajax-modal-body,.mhs-v43-modal-body)
  :where(.card-title,.section-title) { color:var(--mhs-heading) !important; }

/* Exactly one close control with invariant visibility */
body:not(.auth-page) :where(.btn-close,.modal-close,.close-modal,.close-modal-btn,.close-ajax-modal,button.close,.mhs-v43-modal-close) {
  position:absolute !important; top:14px !important; right:14px !important; z-index:8 !important;
  display:grid !important; place-items:center !important; width:36px !important; height:36px !important; min-height:36px !important;
  margin:0 !important; padding:0 !important; color:var(--mhs-text) !important; background:var(--mhs-surface) !important;
  background-image:none !important; border:1px solid var(--mhs-border-strong) !important; border-radius:10px !important;
  opacity:1 !important; box-shadow:none !important; font-size:0 !important; line-height:1 !important; text-indent:-9999px !important; overflow:hidden !important;
}
body:not(.auth-page) :where(.btn-close,.modal-close,.close-modal,.close-modal-btn,.close-ajax-modal,button.close,.mhs-v43-modal-close)::before {
  content:"×" !important; display:block !important; color:currentColor !important; font:700 21px/1 var(--mhs-font) !important; text-indent:0 !important;
}
body:not(.auth-page) :where(.btn-close,.modal-close,.close-modal,.close-modal-btn,.close-ajax-modal,button.close,.mhs-v43-modal-close):hover {
  color:var(--mhs-danger) !important; background:var(--mhs-danger-soft) !important; border-color:color-mix(in srgb,var(--mhs-danger) 42%,var(--mhs-border)) !important;
}
body:not(.auth-page) :where(.modal-header,.custom-header,.action-modal-header,.ajax-modal-header,.mhs-v43-modal-header) > :is(.btn-close,.modal-close,.close-modal,.close-modal-btn,.close-ajax-modal,button.close,.mhs-v43-modal-close) ~ :is(.btn-close,.modal-close,.close-modal,.close-modal-btn,.close-ajax-modal,button.close,.mhs-v43-modal-close) { display:none !important; }

/* Theme hardening: no light islands in dark mode and vice versa */
html[data-mhs-theme="dark"] body:not(.auth-page) :where(.modal-content,.custom-modal,.action-modal-content,.ajax-modal-content,.modal-content-large,.mhs-v43-modal-content,.mhs-v43-modal,
 .modal-body,.custom-body,.action-modal-body,.ajax-modal-body,.modal-footer,.custom-footer,.action-modal-footer,
 .info-card,.section-card,.history-card,.patient-summary-enhanced,.section-box,.table-responsive,.tab-content,.accordion-item) {
  color:var(--mhs-text) !important; background:var(--mhs-surface) !important; border-color:var(--mhs-border) !important;
}
html[data-mhs-theme="dark"] body:not(.auth-page) :where(.modal-header,.custom-header,.action-modal-header,.ajax-modal-header,.mhs-v43-modal-header,.card-header,.accordion-header) {
  color:var(--mhs-heading) !important; background:var(--mhs-surface-2) !important; border-color:var(--mhs-border) !important;
}
html[data-mhs-theme="light"] body:not(.auth-page) :where(.modal-content,.custom-modal,.action-modal-content,.ajax-modal-content,.modal-content-large,.mhs-v43-modal-content,.mhs-v43-modal) {
  color:var(--mhs-text) !important; background:var(--mhs-surface) !important; border-color:var(--mhs-border) !important;
}

/* Action cells: horizontal up to 3, 3-column grid for 4+ actions */
body:not(.auth-page) .mhs-v43-action-grid { display:flex; align-items:center; flex-wrap:wrap; gap:var(--mhs-action-gap); }
body:not(.auth-page) .mhs-v43-action-grid[data-mhs-action-count="4"],
body:not(.auth-page) .mhs-v43-action-grid[data-mhs-action-count="5"],
body:not(.auth-page) .mhs-v43-action-grid[data-mhs-action-count="6"],
body:not(.auth-page) .mhs-v43-action-grid[data-mhs-action-many="true"] {
  display:grid !important; grid-template-columns:repeat(3,minmax(78px,1fr)) !important; gap:var(--mhs-action-gap) !important; min-width:254px !important;
}
body:not(.auth-page) .mhs-v43-action-grid > :where(button,.btn,a.btn,form) { margin:0 !important; min-width:0 !important; }
body:not(.auth-page) .mhs-v43-action-grid > form { display:contents !important; }
body:not(.auth-page) .mhs-v43-action-grid > :where(button,.btn,a.btn),
body:not(.auth-page) .mhs-v43-action-grid > form > :where(button,.btn) { justify-content:center !important; width:100% !important; min-height:36px !important; white-space:nowrap !important; }

/* Session overlays — Municipal seal identity for lock + sign out */
#lockScreen > div,
.mhs-v43-session-overlay,
.logout-modal-overlay { background:rgba(2,18,23,.78) !important; backdrop-filter:blur(12px) !important; -webkit-backdrop-filter:blur(12px) !important; }
#lockScreen > div > div,
.mhs-v43-lock-card,
.logout-modal-content.mhs-v43-session-card {
  width:min(calc(100vw - 32px),460px) !important; max-width:460px !important; padding:28px !important;
  color:var(--mhs-text) !important; background:var(--mhs-surface) !important; border:1px solid var(--mhs-border-strong) !important;
  border-radius:20px !important; box-shadow:0 30px 90px rgba(0,0,0,.36) !important; text-align:center !important;
}
.mhs-v43-session-logo { display:block !important; width:78px !important; height:78px !important; object-fit:contain !important; margin:0 auto 14px !important; padding:7px !important; background:#fff !important; border-radius:18px !important; box-shadow:0 8px 22px rgba(0,0,0,.18) !important; }
.mhs-v43-session-eyebrow { margin:0 0 8px !important; color:var(--mhs-primary) !important; font-size:.68rem !important; font-weight:850 !important; letter-spacing:.12em !important; text-transform:uppercase !important; }
#lockScreen h3,.mhs-v43-session-card h3 { margin:0 0 8px !important; color:var(--mhs-heading) !important; font-size:1.4rem !important; font-weight:850 !important; }
#lockScreen p,.mhs-v43-session-card p { color:var(--mhs-muted) !important; }
#lockScreen input { width:100% !important; min-height:44px !important; color:var(--mhs-text) !important; background:var(--mhs-input) !important; border:1px solid var(--mhs-border-strong) !important; border-radius:10px !important; }
#lockScreen button { min-height:42px !important; border-radius:10px !important; font-family:var(--mhs-font) !important; }
.mhs-v43-session-warning { margin:16px 0 !important; padding:12px 14px !important; color:var(--mhs-warning) !important; background:var(--mhs-warning-soft) !important; border:1px solid color-mix(in srgb,var(--mhs-warning) 35%,var(--mhs-border)) !important; border-radius:12px !important; text-align:left !important; }
.logout-modal-content.mhs-v43-session-card { padding:0 !important; overflow:hidden !important; }
.logout-modal-content.mhs-v43-session-card .logout-modal-body { padding:26px 26px 18px !important; background:var(--mhs-surface) !important; }
.logout-modal-content.mhs-v43-session-card .logout-modal-footer { display:flex !important; justify-content:flex-end !important; gap:8px !important; padding:12px 16px !important; background:var(--mhs-surface-2) !important; border-top:1px solid var(--mhs-border) !important; }
.logout-modal-content.mhs-v43-session-card .mhs-v43-signout-progress { display:none; }
.logout-modal-content.mhs-v43-session-card.is-processing .mhs-v43-signout-copy,
.logout-modal-content.mhs-v43-session-card.is-processing .logout-modal-footer { display:none !important; }
.logout-modal-content.mhs-v43-session-card.is-processing .mhs-v43-signout-progress { display:block !important; padding:28px !important; }

/* Reliable scroll navigator */
.mhs-v42-scroll-nav,.mhs-v43-scroll-nav { z-index:1030 !important; right:16px !important; bottom:16px !important; gap:6px !important; }
body:has(.modal.show) .mhs-v42-scroll-nav,
body:has(.mhs-v43-modal-overlay[style*="display: flex"]) .mhs-v42-scroll-nav,
body:has(.ajax-modal-overlay) .mhs-v42-scroll-nav { display:none !important; }

@media (max-width: 767.98px) {
  body:not(.auth-page) :where(.modal-dialog,.mhs-v43-modal-dialog,.custom-modal,.action-modal-content,.ajax-modal-content,.modal-content-large,.mhs-v43-modal) {
    width:calc(100vw - 14px) !important; max-width:none !important; margin:7px auto !important; max-height:calc(100dvh - 14px) !important;
  }
  body:not(.auth-page) .mhs-v43-action-grid[data-mhs-action-count="4"],
  body:not(.auth-page) .mhs-v43-action-grid[data-mhs-action-count="5"],
  body:not(.auth-page) .mhs-v43-action-grid[data-mhs-action-count="6"],
  body:not(.auth-page) .mhs-v43-action-grid[data-mhs-action-many="true"] { grid-template-columns:repeat(2,minmax(0,1fr)) !important; min-width:0 !important; }
}
@media (max-width: 430px) {
  body:not(.auth-page) .mhs-v43-action-grid { display:grid !important; grid-template-columns:1fr !important; }
}


/* V4.3 final accessibility / consistency hardening */
body:not(.auth-page) .mhs-v43-action-text { margin-left:6px !important; }
body:not(.auth-page) :where(.mhs-v43-modal-header,.modal-header,.ajax-modal-header) > :where(.modal-title,h1,h2,h3,h4,h5) { padding-right:4px !important; }
body:not(.auth-page) :where(.mhs-v43-modal-body,.modal-body,.ajax-modal-body) :where(label,.label,strong) { color:var(--mhs-heading) !important; }
body:not(.auth-page) :where(.mhs-v43-modal-body,.modal-body,.ajax-modal-body) :where(.value,p,span,small,li,td) { color:var(--mhs-text) !important; }
body:not(.auth-page) :where(.mhs-v43-modal-body,.modal-body,.ajax-modal-body) .text-muted { color:var(--mhs-muted) !important; }
body:not(.auth-page) :where(.mhs-v43-modal-body,.modal-body,.ajax-modal-body) table { background:var(--mhs-surface) !important; }
body:not(.auth-page) :where(.mhs-v43-modal-body,.modal-body,.ajax-modal-body) thead th { color:var(--mhs-heading) !important; background:var(--mhs-table-head) !important; }
body:not(.auth-page) :where(.mhs-v43-modal-body,.modal-body,.ajax-modal-body) tbody td { color:var(--mhs-text) !important; background:transparent !important; }
#lockScreen .mhs-v43-lock-card > i.fa-lock { display:none !important; }
#lockScreen .mhs-v43-lock-card > p:first-of-type { margin-bottom:12px !important; }
#lockScreen .mhs-v43-lock-card button:first-of-type { color:#fff !important; background:linear-gradient(135deg,var(--mhs-primary),var(--mhs-blue)) !important; border:0 !important; }
#lockScreen .mhs-v43-lock-card button:last-of-type { color:var(--mhs-danger) !important; background:var(--mhs-danger-soft) !important; border:1px solid color-mix(in srgb,var(--mhs-danger) 42%,var(--mhs-border)) !important; }
@media (max-width:767.98px){.mhs-v42-scroll-nav,.mhs-v43-scroll-nav{right:10px !important;bottom:10px !important;}}


/* V4.3 final action semantics */
body:not(.auth-page) :where(button,a,.btn)[data-mhs-action="issue"],
body:not(.auth-page) :where(button,a,.btn)[data-mhs-action="repeat"] {
  color:var(--mhs-success) !important; background:var(--mhs-success-soft) !important;
  border-color:color-mix(in srgb,var(--mhs-success) 42%,var(--mhs-border)) !important;
}
body:not(.auth-page) :where(button,a,.btn)[data-mhs-action="unavailable"] {
  color:var(--mhs-muted) !important; background:var(--mhs-surface-3) !important; border-color:var(--mhs-border-strong) !important;
}
body:not(.auth-page) :where(button,a,.btn)[data-mhs-action="schedule"],
body:not(.auth-page) :where(button,a,.btn)[data-mhs-action="reschedule"] {
  color:var(--mhs-blue) !important; background:var(--mhs-blue-soft) !important;
  border-color:color-mix(in srgb,var(--mhs-blue) 38%,var(--mhs-border)) !important;
}
body:not(.auth-page) td:has(> .mhs-v43-action-grid[data-mhs-action-count="4"]),
body:not(.auth-page) td:has(> .mhs-v43-action-grid[data-mhs-action-count="5"]),
body:not(.auth-page) td:has(> .mhs-v43-action-grid[data-mhs-action-count="6"]),
body:not(.auth-page) td:has(> .mhs-v43-action-grid[data-mhs-action-many="true"]) { min-width:310px !important; }

/* ==================================================================
   HEALTH MIS V4.3.1 — FINAL POLISH / THEME + WORKFLOW CONSISTENCY
   Addresses remaining custom Add dialog, AJAX detail themes, semantic
   status colors, backup navigation, session action spacing and Reports.
   ================================================================== */

/* Consultation Add/Edit is a legacy custom overlay: make it a real V4.3 modal. */
body:not(.auth-page) #consultModal {
  position:fixed !important;
  inset:0 !important;
  z-index:1060 !important;
  display:none;
  align-items:center !important;
  justify-content:center !important;
  padding:18px !important;
  overflow:hidden !important;
  background:var(--mhs-overlay) !important;
  backdrop-filter:blur(8px) !important;
  -webkit-backdrop-filter:blur(8px) !important;
}
body:not(.auth-page) #consultModal[style*="display: flex"],
body:not(.auth-page) #consultModal.show,
body:not(.auth-page) #consultModal.active { display:flex !important; }
body:not(.auth-page) #consultModal > .modal-content {
  width:min(calc(100vw - 36px), var(--mhs-modal-clinical)) !important;
  max-width:var(--mhs-modal-clinical) !important;
  max-height:min(90dvh,900px) !important;
  margin:0 !important;
  overflow:hidden !important;
  background:var(--mhs-surface) !important;
  border:1px solid var(--mhs-border-strong) !important;
  border-radius:18px !important;
  box-shadow:0 28px 86px rgba(0,0,0,.34) !important;
}
body:not(.auth-page) #consultModal .modal-body {
  flex:1 1 auto !important;
  min-height:0 !important;
  max-height:none !important;
  overflow:auto !important;
  padding:18px !important;
  background:var(--mhs-surface) !important;
}
body:not(.auth-page) #consultModal :where(.section-box,.form-section,.info-section) {
  margin:0 0 16px !important;
  padding:16px !important;
  color:var(--mhs-text) !important;
  background:var(--mhs-surface-2) !important;
  border:1px solid var(--mhs-border) !important;
  border-radius:14px !important;
  box-shadow:none !important;
}
body:not(.auth-page) #consultModal :where(.save-btn,.cancel-btn) {
  min-height:40px !important;
  padding:9px 16px !important;
  border-radius:10px !important;
  font-family:var(--mhs-font) !important;
  font-size:.86rem !important;
  font-weight:750 !important;
}
body:not(.auth-page) #consultModal .save-btn {
  color:#fff !important;
  background:linear-gradient(135deg,var(--mhs-primary),var(--mhs-primary-strong)) !important;
  border:1px solid var(--mhs-primary) !important;
}
body:not(.auth-page) #consultModal .cancel-btn {
  margin-left:8px !important;
  color:var(--mhs-text) !important;
  background:var(--mhs-surface-2) !important;
  border:1px solid var(--mhs-border-strong) !important;
}

/* AJAX/detail responses often ship legacy inline <style> blocks. V4.3.1 is
   the visual authority, so their content follows the active theme. */
body:not(.auth-page) :where(.mhs-v43-modal-body,.ajax-modal-body,.modal-body) :where(.patient-view-wrapper,.inventory-view-wrapper) {
  max-width:none !important;
  margin:0 !important;
  color:var(--mhs-text) !important;
  background:transparent !important;
  font-family:var(--mhs-font) !important;
}
body:not(.auth-page) :where(.mhs-v43-modal-body,.ajax-modal-body,.modal-body) :where(.patient-view-wrapper,.inventory-view-wrapper) .view-header h3 {
  margin:0 0 16px !important;
  padding:0 0 0 12px !important;
  color:var(--mhs-heading) !important;
  background:transparent !important;
  border-left:4px solid var(--mhs-primary) !important;
  font-size:1.15rem !important;
  font-weight:800 !important;
}
body:not(.auth-page) :where(.mhs-v43-modal-body,.ajax-modal-body,.modal-body) :where(.patient-view-wrapper,.inventory-view-wrapper) .view-header h3 i,
body:not(.auth-page) :where(.mhs-v43-modal-body,.ajax-modal-body,.modal-body) :where(.patient-view-wrapper,.inventory-view-wrapper) .card-title i {
  color:var(--mhs-blue) !important;
}
body:not(.auth-page) :where(.mhs-v43-modal-body,.ajax-modal-body,.modal-body) :where(.patient-view-wrapper,.inventory-view-wrapper) .view-row {
  gap:16px !important;
  margin-bottom:16px !important;
}
body:not(.auth-page) :where(.mhs-v43-modal-body,.ajax-modal-body,.modal-body) :where(.patient-view-wrapper,.inventory-view-wrapper) :where(.info-card,.section-card) {
  margin:0 !important;
  padding:16px !important;
  color:var(--mhs-text) !important;
  background:var(--mhs-surface-2) !important;
  border:1px solid var(--mhs-border) !important;
  border-radius:14px !important;
  box-shadow:none !important;
}
body:not(.auth-page) :where(.mhs-v43-modal-body,.ajax-modal-body,.modal-body) :where(.patient-view-wrapper,.inventory-view-wrapper) .card-title {
  margin:0 0 14px !important;
  padding:0 0 10px !important;
  color:var(--mhs-heading) !important;
  background:transparent !important;
  border-bottom:1px solid var(--mhs-border) !important;
  font-size:1rem !important;
  font-weight:800 !important;
}
body:not(.auth-page) :where(.mhs-v43-modal-body,.ajax-modal-body,.modal-body) :where(.patient-view-wrapper,.inventory-view-wrapper) .form-grid {
  gap:14px !important;
}
body:not(.auth-page) :where(.mhs-v43-modal-body,.ajax-modal-body,.modal-body) :where(.patient-view-wrapper,.inventory-view-wrapper) .field-group label {
  margin-bottom:5px !important;
  color:var(--mhs-muted) !important;
  font-size:.68rem !important;
  font-weight:800 !important;
}
body:not(.auth-page) :where(.mhs-v43-modal-body,.ajax-modal-body,.modal-body) :where(.patient-view-wrapper,.inventory-view-wrapper) .field-value {
  min-height:38px !important;
  padding:9px 12px !important;
  color:var(--mhs-text) !important;
  background:var(--mhs-input) !important;
  border:1px solid var(--mhs-border) !important;
  border-radius:10px !important;
  font-size:.88rem !important;
}
body:not(.auth-page) :where(.mhs-v43-modal-body,.ajax-modal-body,.modal-body) :where(.patient-view-wrapper,.inventory-view-wrapper) .view-tabs {
  gap:8px !important;
  margin:0 0 16px !important;
  padding:0 0 8px !important;
  border-bottom:1px solid var(--mhs-border) !important;
}
body:not(.auth-page) :where(.mhs-v43-modal-body,.ajax-modal-body,.modal-body) :where(.patient-view-wrapper,.inventory-view-wrapper) .tab-btn {
  min-height:40px !important;
  padding:8px 13px !important;
  color:var(--mhs-muted) !important;
  background:var(--mhs-surface-2) !important;
  border:1px solid var(--mhs-border) !important;
  border-radius:10px 10px 0 0 !important;
}
body:not(.auth-page) :where(.mhs-v43-modal-body,.ajax-modal-body,.modal-body) :where(.patient-view-wrapper,.inventory-view-wrapper) .tab-btn:hover {
  color:var(--mhs-primary) !important;
  background:var(--mhs-primary-soft) !important;
}
body:not(.auth-page) :where(.mhs-v43-modal-body,.ajax-modal-body,.modal-body) :where(.patient-view-wrapper,.inventory-view-wrapper) .tab-btn.active {
  color:var(--mhs-primary) !important;
  background:var(--mhs-primary-soft) !important;
  border-color:color-mix(in srgb,var(--mhs-primary) 40%,var(--mhs-border)) !important;
  box-shadow:inset 0 -2px 0 var(--mhs-primary) !important;
}
html[data-mhs-theme="dark"] body:not(.auth-page) :where(.mhs-v43-modal-body,.ajax-modal-body,.modal-body)
  :where([style*="background: white"],[style*="background:white"],[style*="background: #fff"],[style*="background:#fff"],[style*="background: #ffffff"],[style*="background:#ffffff"],[style*="background: #f8fafc"],[style*="background:#f8fafc"],[style*="background: #e7f3ff"],[style*="background:#e7f3ff"]) {
  color:var(--mhs-text) !important;
  background:var(--mhs-surface-2) !important;
  border-color:var(--mhs-border) !important;
}

/* Semantic colors must remain meaningful and legible in either theme. */
body:not(.auth-page) :where(.status-badge,.badge,.badge-success,.badge-danger,.badge-warning,.badge-info,.badge-secondary) {
  border:1px solid transparent !important;
  font-weight:750 !important;
}
body:not(.auth-page) :where(.badge-success,.bg-success,.status-completed,.status-active,.status-normal,.status-approved,.status-restored) {
  color:var(--mhs-success) !important;
  background:var(--mhs-success-soft) !important;
  border-color:color-mix(in srgb,var(--mhs-success) 32%,var(--mhs-border)) !important;
}
body:not(.auth-page) :where(.badge-danger,.bg-danger,.status-cancelled,.status-inactive,.status-critical,.status-expired,.status-out-of-stock,.status-rejected) {
  color:var(--mhs-danger) !important;
  background:var(--mhs-danger-soft) !important;
  border-color:color-mix(in srgb,var(--mhs-danger) 32%,var(--mhs-border)) !important;
}
body:not(.auth-page) :where(.badge-warning,.bg-warning,.status-pending,.status-rescheduled,.status-low,.status-at-risk) {
  color:var(--mhs-warning) !important;
  background:var(--mhs-warning-soft) !important;
  border-color:color-mix(in srgb,var(--mhs-warning) 34%,var(--mhs-border)) !important;
}
body:not(.auth-page) :where(.badge-info,.bg-info,.status-scheduled,.status-draft,.status-issued) {
  color:var(--mhs-blue) !important;
  background:var(--mhs-blue-soft) !important;
  border-color:color-mix(in srgb,var(--mhs-blue) 32%,var(--mhs-border)) !important;
}
body:not(.auth-page) :where(.badge-secondary,.bg-secondary,.status-archived,.status-disabled) {
  color:var(--mhs-muted) !important;
  background:var(--mhs-surface-3) !important;
  border-color:var(--mhs-border) !important;
}
body:not(.auth-page) :where(.text-success,.nutrition-normal) { color:var(--mhs-success) !important; }
body:not(.auth-page) :where(.text-danger,.nutrition-severely-underweight) { color:var(--mhs-danger) !important; }
body:not(.auth-page) :where(.text-warning,.nutrition-moderately-underweight,.nutrition-overweight) { color:var(--mhs-warning) !important; }
body:not(.auth-page) :where(.text-info,.text-primary,.nutrition-stunted,.nutrition-wasted) { color:var(--mhs-blue) !important; }
body:not(.auth-page) :where(.alert-success,.success-message) { color:var(--mhs-success) !important; background:var(--mhs-success-soft) !important; border-color:color-mix(in srgb,var(--mhs-success) 32%,var(--mhs-border)) !important; }
body:not(.auth-page) :where(.alert-danger,.error-message) { color:var(--mhs-danger) !important; background:var(--mhs-danger-soft) !important; border-color:color-mix(in srgb,var(--mhs-danger) 32%,var(--mhs-border)) !important; }
body:not(.auth-page) :where(.alert-warning,.warning-message) { color:var(--mhs-warning) !important; background:var(--mhs-warning-soft) !important; border-color:color-mix(in srgb,var(--mhs-warning) 34%,var(--mhs-border)) !important; }
body:not(.auth-page) :where(.alert-info,.info-message) { color:var(--mhs-blue) !important; background:var(--mhs-blue-soft) !important; border-color:color-mix(in srgb,var(--mhs-blue) 32%,var(--mhs-border)) !important; }
/* Keep action legends hidden per the approved header design; status/color legends remain readable. */
body:not(.auth-page) :where(.status-legend,.color-legend,.legend-panel,.legend-box) {
  display:flex !important;
  align-items:center !important;
  flex-wrap:wrap !important;
  gap:10px !important;
  color:var(--mhs-text) !important;
  background:var(--mhs-surface-2) !important;
  border:1px solid var(--mhs-border) !important;
  border-radius:12px !important;
}
body:not(.auth-page) :where(.status-legend,.color-legend,.legend-panel,.legend-box) .legend-item { color:var(--mhs-text) !important; }

/* Disabled Backups empty-state navigation behaves like every other toolbar button. */
body:not(.auth-page) .empty-state .mhs-v431-backup-link {
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:7px !important;
  width:auto !important;
  min-width:150px !important;
  min-height:40px !important;
  padding:9px 15px !important;
  color:var(--mhs-primary) !important;
  background:var(--mhs-primary-soft) !important;
  border:1px solid color-mix(in srgb,var(--mhs-primary) 40%,var(--mhs-border)) !important;
  border-radius:10px !important;
  font-size:.86rem !important;
  font-weight:750 !important;
}
body:not(.auth-page) .empty-state .mhs-v431-backup-link i {
  width:auto !important;
  height:auto !important;
  margin:0 !important;
  padding:0 !important;
  color:currentColor !important;
  background:transparent !important;
  font-size:.84rem !important;
  line-height:1 !important;
}
body:not(.auth-page) .empty-state .mhs-v431-backup-link:hover { color:#fff !important; background:var(--mhs-primary) !important; }

/* Secure-session cards: clear breathing room between actions. */
#lockScreen .mhs-v43-lock-card button + button { margin-top:10px !important; }
.logout-modal-content.mhs-v43-session-card .logout-modal-footer { gap:10px !important; }
.logout-modal-content.mhs-v43-session-card .logout-modal-footer > button { margin:0 !important; }

/* Reports: use the Health MIS palette and a theme-aware Bootstrap caret. */
body:not(.auth-page) #reportTypeDropdown {
  color:#fff !important;
  background:linear-gradient(135deg,var(--mhs-primary),var(--mhs-primary-strong)) !important;
  border:1px solid var(--mhs-primary) !important;
  box-shadow:none !important;
}
body:not(.auth-page) #reportTypeDropdown:hover,
body:not(.auth-page) #reportTypeDropdown:focus { background:var(--mhs-primary-strong) !important; }
body:not(.auth-page) .export-buttons .btn-success {
  color:#fff !important;
  background:linear-gradient(135deg,var(--mhs-primary),var(--mhs-primary-strong)) !important;
  border:1px solid var(--mhs-primary) !important;
}
body:not(.auth-page) .export-buttons .btn-outline-success.dropdown-toggle {
  color:var(--mhs-primary) !important;
  background:var(--mhs-primary-soft) !important;
  border:1px solid color-mix(in srgb,var(--mhs-primary) 42%,var(--mhs-border)) !important;
}
body:not(.auth-page) .export-buttons .btn-outline-success.dropdown-toggle:hover,
body:not(.auth-page) .export-buttons .btn-outline-success.dropdown-toggle:focus,
body:not(.auth-page) .export-buttons .btn-outline-success.dropdown-toggle.show {
  color:#fff !important;
  background:var(--mhs-primary) !important;
  border-color:var(--mhs-primary) !important;
}
body:not(.auth-page) :where(#reportTypeDropdown,.export-buttons .dropdown-toggle)::after {
  border-top-color:currentColor !important;
  border-right-color:transparent !important;
  border-left-color:transparent !important;
  opacity:.95 !important;
}
body:not(.auth-page) .dropdown-section {
  color:var(--mhs-text) !important;
  background:var(--mhs-surface) !important;
  border-color:var(--mhs-border) !important;
}

@media (max-width: 767.98px) {
  body:not(.auth-page) #consultModal { padding:7px !important; }
  body:not(.auth-page) #consultModal > .modal-content { width:calc(100vw - 14px) !important; max-width:none !important; max-height:calc(100dvh - 14px) !important; }
  body:not(.auth-page) :where(.mhs-v43-modal-body,.ajax-modal-body,.modal-body) :where(.patient-view-wrapper,.inventory-view-wrapper) .view-row { display:grid !important; grid-template-columns:1fr !important; }
  body:not(.auth-page) :where(.mhs-v43-modal-body,.ajax-modal-body,.modal-body) :where(.patient-view-wrapper,.inventory-view-wrapper) .form-grid.two-cols { grid-template-columns:1fr !important; }
  body:not(.auth-page) :where(.mhs-v43-modal-body,.ajax-modal-body,.modal-body) :where(.patient-view-wrapper,.inventory-view-wrapper) .field-group.full-width { grid-column:auto !important; }
}


/* ==================================================================
   HEALTH MIS V4.3.x — CROSS-ROLE MODAL CENTERING + TABLE FLEXIBILITY
   Final shared authority for Admin and every operational role.
   ================================================================== */
:root {
  --mhs-v432-modal-gap: 18px;
  --mhs-v432-action-shadow: rgba(2, 22, 28, .22);
}

/* Role parity: the same component contract is intentionally role-neutral. */
body:not(.auth-page) :where(.main-content,.mhs-v4-main,.content-wrapper) {
  color: var(--mhs-text) !important;
}

/* Every custom/AJAX overlay centers its direct dialog independently of old
   display/margin rules. This remains reliable even when a legacy module sets
   the overlay to display:block. */
body:not(.auth-page) :where(.mhs-v43-modal-overlay,.modal-overlay,.custom-modal-overlay,.action-modal,.ajax-modal-overlay) {
  position: fixed !important;
  inset: 0 !important;
  width: 100vw !important;
  height: 100dvh !important;
  max-width: none !important;
  max-height: none !important;
  overflow: hidden !important;
  padding: var(--mhs-v432-modal-gap) !important;
  background: var(--mhs-overlay) !important;
  backdrop-filter: blur(8px) !important;
  -webkit-backdrop-filter: blur(8px) !important;
}
body:not(.auth-page) :where(.mhs-v43-modal-overlay,.modal-overlay,.custom-modal-overlay,.action-modal,.ajax-modal-overlay)
  > :where(.mhs-v43-modal-content,.modal-content,.custom-modal,.modal-container,.action-modal-content,.ajax-modal-content,.modal-content-large) {
  position: absolute !important;
  top: 50% !important;
  left: 50% !important;
  right: auto !important;
  bottom: auto !important;
  transform: translate(-50%, -50%) !important;
  margin: 0 !important;
  max-height: calc(100dvh - (var(--mhs-v432-modal-gap) * 2)) !important;
}

/* Consultation Add/Edit is explicitly centered as a clinical dialog. */
body:not(.auth-page) #consultModal > .modal-content {
  position: absolute !important;
  top: 50% !important;
  left: 50% !important;
  right: auto !important;
  bottom: auto !important;
  transform: translate(-50%, -50%) !important;
  width: min(calc(100vw - 36px), var(--mhs-modal-clinical)) !important;
  max-width: var(--mhs-modal-clinical) !important;
  max-height: calc(100dvh - 36px) !important;
  margin: 0 !important;
}

/* Bootstrap dialogs use the same centered viewport behavior. */
body:not(.auth-page) .modal.show {
  display: grid !important;
  place-items: center !important;
  padding: var(--mhs-v432-modal-gap) !important;
  overflow: hidden !important;
}
body:not(.auth-page) .modal.show > .modal-dialog {
  width: min(calc(100vw - 36px), var(--mhs-modal-standard)) !important;
  max-width: var(--mhs-modal-standard) !important;
  max-height: calc(100dvh - 36px) !important;
  margin: 0 !important;
}
body:not(.auth-page) .modal.show > .modal-dialog.modal-xl {
  width: min(calc(100vw - 36px), var(--mhs-modal-clinical)) !important;
  max-width: var(--mhs-modal-clinical) !important;
}
body:not(.auth-page) .modal.show > .modal-dialog.modal-sm {
  width: min(calc(100vw - 28px), var(--mhs-modal-confirm)) !important;
  max-width: var(--mhs-modal-confirm) !important;
}

/* Remove remaining legacy blue modal chrome: the modal frame always follows
   the current Health MIS theme, while primary blue/teal remains an accent. */
body:not(.auth-page) :where(.mhs-v43-modal-header,.modal-header,.custom-header,.action-modal-header,.ajax-modal-header,.modal-header-custom) {
  color: var(--mhs-heading) !important;
  background: var(--mhs-surface-2) !important;
  border-bottom: 1px solid var(--mhs-border) !important;
  box-shadow: inset 4px 0 0 var(--mhs-primary) !important;
}
body:not(.auth-page) :where(.mhs-v43-modal-header,.modal-header,.custom-header,.action-modal-header,.ajax-modal-header) :where(h1,h2,h3,h4,h5,.modal-title) {
  color: var(--mhs-heading) !important;
}
body:not(.auth-page) :where(.mhs-v43-modal-content,.modal-content,.custom-modal,.action-modal-content,.ajax-modal-content,.modal-content-large) {
  color: var(--mhs-text) !important;
  background: var(--mhs-surface) !important;
  border-color: var(--mhs-border-strong) !important;
}

/* Wide tables must scroll instead of clipping their final columns. */
body:not(.auth-page) :where(.table-responsive,.mhs-v4-table-shell,.mhs-v432-table-scroll) {
  position: relative !important;
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  overflow-x: auto !important;
  overflow-y: visible !important;
  overscroll-behavior-inline: contain !important;
  -webkit-overflow-scrolling: touch !important;
  scrollbar-gutter: stable both-edges !important;
}
body:not(.auth-page) table.mhs-v432-table {
  width: max-content !important;
  min-width: 100% !important;
  max-width: none !important;
  table-layout: auto !important;
}

/* Keep the Actions column reachable and fully visible while horizontally
   scrolling a record table. */
body:not(.auth-page) th.mhs-v432-action-head,
body:not(.auth-page) td.mhs-v432-action-cell,
body:not(.auth-page) td[data-mhs-actions="true"] {
  position: sticky !important;
  right: 0 !important;
  min-width: 230px !important;
  width: auto !important;
  max-width: none !important;
  overflow: visible !important;
  white-space: normal !important;
  box-shadow: -10px 0 16px -16px var(--mhs-v432-action-shadow) !important;
}
body:not(.auth-page) th.mhs-v432-action-head {
  z-index: 8 !important;
  background: var(--mhs-table-head) !important;
}
body:not(.auth-page) td.mhs-v432-action-cell,
body:not(.auth-page) td[data-mhs-actions="true"] {
  z-index: 5 !important;
  background: var(--mhs-surface) !important;
}
body:not(.auth-page) tbody tr:nth-child(even) td.mhs-v432-action-cell,
body:not(.auth-page) tbody tr:nth-child(even) td[data-mhs-actions="true"] {
  background: var(--mhs-table-stripe) !important;
}
body:not(.auth-page) tbody tr:hover td.mhs-v432-action-cell,
body:not(.auth-page) tbody tr:hover td[data-mhs-actions="true"] {
  background: var(--mhs-table-hover) !important;
}
body:not(.auth-page) td.mhs-v432-action-cell:has(.mhs-v43-action-grid[data-mhs-action-count="4"]),
body:not(.auth-page) td.mhs-v432-action-cell:has(.mhs-v43-action-grid[data-mhs-action-count="5"]),
body:not(.auth-page) td.mhs-v432-action-cell:has(.mhs-v43-action-grid[data-mhs-action-count="6"]),
body:not(.auth-page) td.mhs-v432-action-cell:has(.mhs-v43-action-grid[data-mhs-action-many="true"]) {
  min-width: 310px !important;
}
body:not(.auth-page) .mhs-v43-action-grid {
  max-width: 100% !important;
  overflow: visible !important;
}
body:not(.auth-page) .mhs-v43-action-grid > :where(button,.btn,a.btn),
body:not(.auth-page) .mhs-v43-action-grid > form > :where(button,.btn,a.btn) {
  min-width: 78px !important;
  max-width: 100% !important;
  overflow: visible !important;
}

/* Shared role views use the same panel/modal/button contract. User-specific
   legacy styles may provide data/layout details but cannot replace the shell. */
body:not(.auth-page) :where(.mhs-v4-page-header,.mhs-standard-module-header,.filter-panel,.mhs-v4-filter-panel,.card,.mhs-v4-data-surface) {
  border-color: var(--mhs-border) !important;
}

@media (max-width: 767.98px) {
  :root { --mhs-v432-modal-gap: 7px; }
  body:not(.auth-page) :where(.mhs-v43-modal-overlay,.modal-overlay,.custom-modal-overlay,.action-modal,.ajax-modal-overlay)
    > :where(.mhs-v43-modal-content,.modal-content,.custom-modal,.modal-container,.action-modal-content,.ajax-modal-content,.modal-content-large),
  body:not(.auth-page) #consultModal > .modal-content {
    width: calc(100vw - 14px) !important;
    max-width: none !important;
    max-height: calc(100dvh - 14px) !important;
  }
  body:not(.auth-page) th.mhs-v432-action-head,
  body:not(.auth-page) td.mhs-v432-action-cell,
  body:not(.auth-page) td[data-mhs-actions="true"] {
    position: static !important;
    right: auto !important;
    box-shadow: none !important;
  }
}


/* ==================================================================
   V4.3.3 — THEME RELIABILITY / SEMANTIC STATES / QUIET CLOCK
   Final acceptance pass: dynamic modal contents, badges, empty/error
   states and the shared Asia/Manila minute clock.
   ================================================================== */

/* Higher-contrast semantic foregrounds keep badges readable in both themes. */
html[data-mhs-theme="light"] {
  --mhs-sem-success-fg:#0f6948;
  --mhs-sem-danger-fg:#a12f3a;
  --mhs-sem-warning-fg:#7f5500;
  --mhs-sem-info-fg:#0d6992;
  --mhs-sem-neutral-fg:#526a71;
}
html[data-mhs-theme="dark"] {
  --mhs-sem-success-fg:#8ee7bc;
  --mhs-sem-danger-fg:#ffabb1;
  --mhs-sem-warning-fg:#ffd978;
  --mhs-sem-info-fg:#9bdcf6;
  --mhs-sem-neutral-fg:#c0d0d4;
}
body:not(.auth-page) [data-mhs-semantic="success"] {
  color:var(--mhs-sem-success-fg)!important;
  background:var(--mhs-success-soft)!important;
  border-color:color-mix(in srgb,var(--mhs-success) 46%,var(--mhs-border))!important;
}
body:not(.auth-page) [data-mhs-semantic="danger"] {
  color:var(--mhs-sem-danger-fg)!important;
  background:var(--mhs-danger-soft)!important;
  border-color:color-mix(in srgb,var(--mhs-danger) 46%,var(--mhs-border))!important;
}
body:not(.auth-page) [data-mhs-semantic="warning"] {
  color:var(--mhs-sem-warning-fg)!important;
  background:var(--mhs-warning-soft)!important;
  border-color:color-mix(in srgb,var(--mhs-warning) 48%,var(--mhs-border))!important;
}
body:not(.auth-page) [data-mhs-semantic="info"] {
  color:var(--mhs-sem-info-fg)!important;
  background:var(--mhs-blue-soft)!important;
  border-color:color-mix(in srgb,var(--mhs-blue) 44%,var(--mhs-border))!important;
}
body:not(.auth-page) [data-mhs-semantic="neutral"] {
  color:var(--mhs-sem-neutral-fg)!important;
  background:var(--mhs-surface-3)!important;
  border-color:var(--mhs-border)!important;
}
body:not(.auth-page) :where(.status-badge,.badge,.status-pill,.risk-badge,.stock-status) {
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:5px!important;
  min-height:23px!important;
  padding:3px 9px!important;
  line-height:1.15!important;
  border:1px solid var(--mhs-border)!important;
  border-radius:999px!important;
  white-space:nowrap!important;
  opacity:1!important;
}

/* Dynamic/AJAX legacy content must never create a light island in Dark Mode. */
html[data-mhs-theme="dark"] body:not(.auth-page) :where(.mhs-v43-modal-body,.ajax-modal-body,.modal-body,.custom-body,.action-modal-body)
  :where(div,section,article,aside,fieldset)[style*="background: #f0f8ff"],
html[data-mhs-theme="dark"] body:not(.auth-page) :where(.mhs-v43-modal-body,.ajax-modal-body,.modal-body,.custom-body,.action-modal-body)
  :where(div,section,article,aside,fieldset)[style*="background:#f0f8ff"],
html[data-mhs-theme="dark"] body:not(.auth-page) :where(.mhs-v43-modal-body,.ajax-modal-body,.modal-body,.custom-body,.action-modal-body)
  :where(div,section,article,aside,fieldset)[style*="background: #fff"],
html[data-mhs-theme="dark"] body:not(.auth-page) :where(.mhs-v43-modal-body,.ajax-modal-body,.modal-body,.custom-body,.action-modal-body)
  :where(div,section,article,aside,fieldset)[style*="background: white"] {
  color:var(--mhs-text)!important;
  background:var(--mhs-surface-2)!important;
  border-color:var(--mhs-border)!important;
}
html[data-mhs-theme="dark"] body:not(.auth-page) :where(.mhs-v43-modal-body,.ajax-modal-body,.modal-body,.custom-body,.action-modal-body)
  :where([style*="color: #666"],[style*="color:#666"],[style*="color: #999"],[style*="color:#999"],[style*="color: #888"],[style*="color:#888"]) {
  color:var(--mhs-muted)!important;
}
html[data-mhs-theme="dark"] body:not(.auth-page) :where(.mhs-v43-modal-body,.ajax-modal-body,.modal-body,.custom-body,.action-modal-body)
  :where([style*="color: #0f172a"],[style*="color:#0f172a"],[style*="color: #1e293b"],[style*="color:#1e293b"],[style*="color: #333"],[style*="color:#333"]) {
  color:var(--mhs-text)!important;
}

/* Theme-safe record summaries used by Appointment and Patient AJAX forms. */
.mhs-v433-record-summary {
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:12px!important;
  flex-wrap:wrap!important;
  margin:0 0 16px!important;
  padding:12px 14px!important;
  color:var(--mhs-text)!important;
  background:var(--mhs-surface-2)!important;
  border:1px solid var(--mhs-border)!important;
  border-radius:12px!important;
}
.mhs-v433-record-summary :where(strong,span,div) { color:inherit; }
.mhs-v433-summary-label {
  display:block!important;
  margin-bottom:3px!important;
  color:var(--mhs-muted)!important;
  font-size:.68rem!important;
  font-weight:800!important;
  letter-spacing:.055em!important;
  text-transform:uppercase!important;
}
.mhs-v433-form-grid { display:grid!important; gap:14px!important; margin-bottom:14px!important; }
.mhs-v433-form-grid--three { grid-template-columns:repeat(3,minmax(0,1fr))!important; }
.mhs-v433-field-block { margin-bottom:14px!important; }
.mhs-v433-inline-footer { margin:18px -18px -18px!important; padding:14px 18px!important; }
.mhs-v433-photo-panel {
  color:var(--mhs-text)!important;
  background:var(--mhs-surface-2)!important;
  border-color:var(--mhs-border)!important;
}
.mhs-v433-photo-panel #noPhotoPlaceholder {
  background:var(--mhs-surface-3)!important;
  border-color:var(--mhs-border-strong)!important;
}
.mhs-v433-photo-panel #noPhotoPlaceholder i { color:var(--mhs-muted)!important; }
.mhs-v433-photo-panel input[type="file"] {
  color:var(--mhs-text)!important;
  background:var(--mhs-input)!important;
  border-color:var(--mhs-border-strong)!important;
}
.mhs-v433-health-center-summary { justify-content:flex-start!important; }

/* Consistent recoverable AJAX error state. */
.mhs-v433-error-state {
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  gap:8px!important;
  min-height:190px!important;
  padding:28px 22px!important;
  text-align:center!important;
  color:var(--mhs-text)!important;
  background:var(--mhs-danger-soft)!important;
  border:1px solid color-mix(in srgb,var(--mhs-danger) 38%,var(--mhs-border))!important;
  border-radius:14px!important;
}
.mhs-v433-error-state__icon {
  display:grid!important;
  place-items:center!important;
  width:48px!important;
  height:48px!important;
  color:var(--mhs-sem-danger-fg)!important;
  background:color-mix(in srgb,var(--mhs-danger-soft) 80%,var(--mhs-surface))!important;
  border:1px solid color-mix(in srgb,var(--mhs-danger) 35%,var(--mhs-border))!important;
  border-radius:14px!important;
  font-size:1.2rem!important;
}
.mhs-v433-error-state h5 { margin:3px 0 0!important; color:var(--mhs-heading)!important; }
.mhs-v433-error-state p { margin:0 0 8px!important; max-width:520px!important; color:var(--mhs-muted)!important; }

/* Empty states use the normal button system; no oversized glyph buttons. */
body:not(.auth-page) .empty-state > :where(button,.btn,a.btn),
body:not(.auth-page) .empty-state .btn {
  width:auto!important;
  min-width:132px!important;
  min-height:38px!important;
  padding:8px 14px!important;
  border-radius:10px!important;
  font-size:.82rem!important;
}
body:not(.auth-page) .empty-state > :where(button,.btn,a.btn) i,
body:not(.auth-page) .empty-state .btn i {
  width:auto!important;
  height:auto!important;
  margin:0 6px 0 0!important;
  padding:0!important;
  font-size:.86rem!important;
  line-height:1!important;
}

/* One calm, role-neutral clock. No seconds, no animated/ticking treatment. */
.clock-text {
  display:flex!important;
  flex-direction:column!important;
  align-items:flex-end!important;
  justify-content:center!important;
  min-width:180px!important;
  padding:8px 12px!important;
  color:var(--mhs-text)!important;
  background:var(--mhs-surface-2)!important;
  border:1px solid var(--mhs-border)!important;
  border-radius:12px!important;
  font-variant-numeric:tabular-nums!important;
  box-shadow:none!important;
}
.clock-text .date,#dateDisplay {
  color:var(--mhs-muted)!important;
  font-size:.66rem!important;
  font-weight:800!important;
  letter-spacing:.045em!important;
  text-transform:uppercase!important;
}
.clock-text .time,#timeDisplay {
  margin-top:2px!important;
  color:var(--mhs-primary)!important;
  font-size:.9rem!important;
  font-weight:800!important;
  letter-spacing:.015em!important;
}
.seconds-highlight { display:none!important; }

@media (max-width: 767.98px) {
  .mhs-v433-form-grid--three { grid-template-columns:1fr!important; }
  .clock-text { align-items:flex-start!important; min-width:0!important; width:100%!important; }
}
