/* ==========================================================================
   Health Design System — componentes (mobile-first)
   Base = celular 360–479px. min-width: 480 / 768 / 1024 / 1280.
   Tudo escopado em .page-health. Só tokens (tokens.css) — sem HEX solto.
   ========================================================================== */

/* ---------- Base ---------- */
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }

.page-health {
  margin: 0;
  min-height: 100dvh;
  background: var(--background);
  color: var(--text-primary);
  font-family: var(--font-ui);
  font-size: var(--fs-body);
  line-height: var(--lh-body);
  font-weight: 500;
  overscroll-behavior-y: none;
  -webkit-tap-highlight-color: transparent;
  -webkit-font-smoothing: antialiased;
  font-variant-numeric: tabular-nums;
  overflow-x: hidden;
}
.page-health *, .page-health *::before, .page-health *::after { box-sizing: border-box; }
.page-health h1, .page-health h2, .page-health h3, .page-health p, .page-health ul { margin: 0; padding: 0; }
.page-health ul { list-style: none; }
.page-health a { color: inherit; text-decoration: none; }
.page-health button { font: inherit; color: inherit; }
.page-health img { max-width: 100%; display: block; }
.page-health i[class^="ri-"], .page-health i[class*=" ri-"] { line-height: 1; }

.page-health :focus-visible {
  outline: 2px solid var(--primary);
  outline-offset: 2px;
  box-shadow: 0 0 0 5px var(--focus-ring);
  border-radius: var(--radius-xs);
}
.page-health .sr-only {
  position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}
.page-health .skip-link {
  position: absolute; left: var(--space-4); top: -64px; z-index: 100;
  background: var(--control-active); color: var(--text-inverse);
  padding: var(--space-3) var(--space-4); border-radius: var(--radius-pill);
}
.page-health .skip-link:focus { top: calc(var(--safe-top) + var(--space-2)); }

/* ---------- Toque ---------- */
.page-health .tappable {
  position: relative;
  touch-action: manipulation;
  transition: transform var(--dur-press) var(--ease-standard), background-color var(--dur-short) var(--ease-standard);
}
.page-health .tappable:active { transform: scale(var(--press-scale)); }
.page-health .tappable::after {
  content: ""; position: absolute; inset: 0; border-radius: inherit;
  background: var(--press-overlay); opacity: 0; pointer-events: none;
  transition: opacity var(--dur-press);
}
.page-health .tappable:active::after { opacity: 1; }
@media (hover: hover) and (pointer: fine) {
  .page-health .tappable:hover::after { opacity: .5; }
}

/* ---------- Casca: header / app bar ---------- */
.page-health .hh-header {
  position: sticky; top: 0; z-index: 30;
  display: flex; align-items: center; gap: var(--space-2);
  min-height: calc(var(--appbar-height) + var(--safe-top));
  padding: var(--safe-top) calc(var(--space-3) + var(--safe-right)) 0 calc(var(--space-3) + var(--safe-left));
  background: var(--background);
}
.page-health .hh-header.is-scrolled { box-shadow: 0 1px 0 var(--border); }

.page-health .hh-brand { display: flex; align-items: center; gap: var(--space-3); min-height: var(--touch-target); }
.page-health .hh-brand__logo {
  width: 40px; height: 40px; border-radius: var(--radius-pill);
  background: var(--logo-bg); display: grid; place-items: center; overflow: hidden; flex: none;
}
.page-health .hh-brand__logo img { width: 28px; height: 28px; object-fit: contain; }
.page-health .hh-brand__name { display: none; font: 600 20px/26px var(--font-ui); letter-spacing: -0.01em; }

.page-health .hh-title {
  flex: 1; min-width: 0; margin: 0;
  font: var(--text-appbar-title);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
  opacity: 0; transition: opacity var(--dur-short) var(--ease-standard);
}
.page-health .hh-header.is-scrolled .hh-title { opacity: 1; }

.page-health .hh-util { display: flex; align-items: center; gap: var(--space-2); margin-left: auto; }
.page-health .hh-user {
  display: inline-flex; align-items: center; gap: var(--space-2);
  min-height: var(--touch-target); padding: 0 var(--space-1);
  border: 0; border-radius: var(--radius-pill); background: transparent; cursor: pointer;
}
.page-health .hh-user__avatar {
  width: 36px; height: 36px; border-radius: var(--radius-pill);
  display: grid; place-items: center; overflow: hidden;
  background: var(--surface-tint); color: var(--text-primary);
  font: 700 13px/1 var(--font-ui);
}
.page-health .hh-user__avatar img { width: 100%; height: 100%; object-fit: cover; }
.page-health .hh-user__text { display: none; text-align: left; }
.page-health .hh-user__name { font: 600 14px/20px var(--font-ui); }
.page-health .hh-user__role { font: 500 12px/16px var(--font-ui); color: var(--text-secondary); }

/* ---------- Navegação: tab bar → rail → nav pill ---------- */
.page-health .hnav {
  position: fixed; inset: auto 0 0 0; z-index: 40;
  display: grid; grid-template-columns: repeat(5, 1fr);
  height: calc(var(--tabbar-height) + var(--safe-bottom));
  padding: 0 var(--safe-right) var(--safe-bottom) var(--safe-left);
  background: var(--surface-raised);
  box-shadow: 0 -1px 0 var(--border), 0 -8px 24px rgba(0, 29, 58, 0.06);
}
.page-health .hnav__item {
  display: grid; place-items: center; align-content: center; gap: 2px;
  min-height: var(--touch-target);
  border: 0; background: transparent; cursor: pointer;
  color: var(--text-secondary);
  font: 500 12px/16px var(--font-ui);
}
.page-health .hnav__icon {
  display: grid; place-items: center;
  width: 64px; height: 32px; border-radius: var(--radius-pill);
  font-size: 22px;
  transition: background-color var(--dur-short) var(--ease-standard), color var(--dur-short);
}
.page-health .hnav__item[aria-current="page"] { color: var(--text-primary); font-weight: 700; }
.page-health .hnav__item[aria-current="page"] .hnav__icon { background: var(--control-active); color: var(--text-inverse); }
.page-health .hnav__item:active .hnav__icon { background: var(--press-overlay); }
.page-health .hnav__item[aria-current="page"]:active .hnav__icon { background: var(--control-active-hover); }

/* wrappers da nav: no celular/tablet só os itens principais aparecem (tab bar / rail) */
.page-health .hnav__primary { display: contents; }
.page-health .hnav__brand, .page-health .hnav__groups, .page-health .hnav__title { display: none; }
.page-health .hh-header__brand { display: flex; align-items: center; }
.page-health .hh-util__tenant { display: none; }

/* ---------- Conteúdo ---------- */
.page-health .app-content {
  display: grid; gap: var(--gap-mobile);
  grid-template-columns: minmax(0, 1fr);   /* evita que chips/carrossel alarguem a trilha */
  align-content: start;
  padding: var(--space-2) calc(var(--gutter-mobile) + var(--safe-right))
           var(--space-4)
           calc(var(--gutter-mobile) + var(--safe-left));
  width: 100%; max-width: var(--content-max); margin-inline: auto;
}

/* ---------- Título da página ---------- */
.page-health .page-head { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--space-3); padding-block: var(--space-2) 0; }
.page-health .page-head__eyebrow { display: flex; flex-wrap: wrap; gap: var(--space-2); }
.page-health .page-title { font: var(--text-large-title); letter-spacing: -0.015em; }
.page-health .page-sub { color: var(--text-secondary); font-size: var(--fs-body-sm); line-height: var(--lh-body-sm); }
.page-health .page-actions { display: none; }

/* ---------- Card ---------- */
.page-health .hcard {
  background: var(--surface); border-radius: var(--radius-lg);
  padding: var(--space-4); box-shadow: var(--shadow-card);
  min-width: 0; container-type: inline-size;
}
.page-health .hcard__head { display: flex; align-items: center; gap: var(--space-3); margin-bottom: var(--space-4); }
.page-health .hcard__title { flex: 1; min-width: 0; font-size: var(--fs-h3); line-height: var(--lh-h3); font-weight: 600; }
.page-health .hcard__sub { color: var(--text-secondary); font-size: var(--fs-body-sm); line-height: var(--lh-body-sm); }
.page-health .hicon {
  flex: none; width: 40px; height: 40px; border-radius: var(--radius-pill);
  display: grid; place-items: center;
  background: var(--surface-raised); border: 1px solid var(--border);
  color: var(--text-primary); font-size: 18px;
}
.page-health .hicon--tint { background: var(--surface-tint); border-color: transparent; }
.page-health .hicon--lime { background: var(--accent); border-color: transparent; color: var(--on-accent); }

/* ---------- KPI ---------- */
.page-health .kpi { display: grid; gap: var(--space-2); align-content: start; }
.page-health .kpi__top { display: flex; align-items: center; gap: var(--space-2); color: var(--text-secondary); font-size: var(--fs-body-sm); line-height: var(--lh-body-sm); }
.page-health .kpi__top .hicon { width: 32px; height: 32px; font-size: 16px; }
.page-health .kpi__value { font-size: var(--fs-metric-lg); line-height: var(--lh-metric-lg); font-weight: 500; letter-spacing: -0.015em; }
.page-health .kpi__value small { font-size: var(--fs-body); color: var(--text-secondary); font-weight: 500; }
.page-health .kpi__meta { color: var(--text-secondary); font-size: var(--fs-caption); line-height: var(--lh-caption); }
.page-health .kpi--hero { background: var(--primary); color: var(--on-primary); padding: var(--space-5); }
.page-health .kpi--hero .kpi__top, .page-health .kpi--hero .kpi__meta { color: var(--on-primary-muted); }
.page-health .kpi--hero .kpi__value { font-size: var(--fs-metric-xl); line-height: var(--lh-metric-xl); }
.page-health .kpi--hero .hicon { background: var(--accent); color: var(--on-accent); border-color: transparent; }

/* ---------- Botões, chips, tabs ---------- */
.page-health .hbtn {
  display: inline-flex; align-items: center; justify-content: center; gap: var(--space-2);
  min-height: var(--touch-target); padding: 0 var(--space-5);
  border: 0; border-radius: var(--radius-pill); cursor: pointer;
  font: 600 14px/20px var(--font-ui); white-space: nowrap;
  background: var(--surface-raised); color: var(--text-primary);
}
.page-health .hbtn i { font-size: 18px; }
.page-health .hbtn--dark { background: var(--control-active); color: var(--text-inverse); }
.page-health .hbtn--dark:hover { background: var(--control-active-hover); }
.page-health .hbtn--primary { background: var(--primary); color: var(--on-primary); }
.page-health .hbtn--primary:hover { background: var(--primary-hover); }
.page-health .hbtn--ghost { background: transparent; }
.page-health .hbtn--block { width: 100%; }
.page-health .hbtn[disabled], .page-health .hbtn[aria-disabled="true"] {
  background: var(--disabled-bg); color: var(--disabled-fg); cursor: not-allowed;
}

.page-health .hicon-btn {
  display: inline-grid; place-items: center;
  width: var(--touch-target); height: var(--touch-target);
  border: 0; border-radius: var(--radius-pill); cursor: pointer;
  background: var(--surface-raised); color: var(--text-primary); font-size: 20px;
}
.page-health .hicon-btn--dark { background: var(--control-active); color: var(--text-inverse); }

/* Tabs / chips pill (período) */
.page-health .hchips {
  display: flex; gap: var(--space-2); overflow-x: auto;
  scrollbar-width: none; -webkit-overflow-scrolling: touch;
  padding-block: var(--space-1);
  scroll-padding-inline: var(--gutter-mobile);
}
.page-health .hchips::-webkit-scrollbar { display: none; }
.page-health .hchip {
  flex: none; display: inline-flex; align-items: center; gap: var(--space-2);
  min-height: var(--touch-target); padding: 0 var(--space-4);
  border: 0; border-radius: var(--radius-pill); cursor: pointer;
  background: var(--surface-raised); color: var(--text-primary);
  font: 500 14px/20px var(--font-ui); white-space: nowrap;
}
.page-health .hchip[aria-pressed="true"], .page-health .hchip[aria-selected="true"] {
  background: var(--control-active); color: var(--text-inverse); font-weight: 600;
}
.page-health .hchip__count {
  display: inline-grid; place-items: center; min-width: 20px; height: 20px; padding: 0 6px;
  border-radius: var(--radius-pill); background: var(--accent); color: var(--on-accent);
  font: 700 12px/1 var(--font-ui);
}

/* [hidden] vence display:inline-grid do contador */
.page-health .hchip__count[hidden] { display: none; }

/* Meta chip (informativo, não interativo) */
.page-health .hmeta {
  display: inline-flex; align-items: center; gap: var(--space-2);
  min-height: 28px; padding: 0 var(--space-3);
  border-radius: var(--radius-pill); background: var(--surface-raised);
  color: var(--text-secondary); font: 500 12px/16px var(--font-ui);
}

/* ---------- Badges ---------- */
.page-health .hbadge {
  display: inline-flex; align-items: center; gap: 6px;
  min-height: 26px; padding: 0 var(--space-3);
  border-radius: var(--radius-pill); font: 500 12px/16px var(--font-ui);
  background: var(--surface-subtle); color: var(--text-primary);
}
.page-health .hbadge--success { background: var(--success-subtle); color: var(--success); }
.page-health .hbadge--danger { background: var(--danger-subtle); color: var(--danger-text); }
.page-health .hbadge--warning { background: var(--warning-subtle); color: var(--warning); }
.page-health .hbadge--info { background: var(--info-subtle); color: var(--info); }

/* ---------- Formulário ---------- */
.page-health .hfield { display: grid; gap: var(--space-2); }
.page-health .hfield__label { font: 600 13px/18px var(--font-ui); color: var(--text-primary); }
.page-health .hinput {
  width: 100%; height: var(--control-height-lg);
  padding: 0 var(--space-4);
  border: 1.5px solid transparent; border-radius: var(--radius-sm);
  background: var(--surface-raised); color: var(--text-primary);
  font: 500 16px/24px var(--font-ui);   /* 16px: evita zoom no iOS */
  -webkit-appearance: none; appearance: none;
}
.page-health select.hinput {
  padding-right: var(--space-10);
  background-image:
    linear-gradient(45deg, transparent 50%, var(--text-secondary) 50%),
    linear-gradient(135deg, var(--text-secondary) 50%, transparent 50%);
  background-position: calc(100% - 22px) 50%, calc(100% - 16px) 50%;
  background-size: 6px 6px, 6px 6px;
  background-repeat: no-repeat;
}
.page-health .hinput:focus { border-color: var(--primary); outline: none; box-shadow: 0 0 0 4px var(--focus-ring); }
.page-health .hinput[disabled] { background: var(--disabled-bg); color: var(--disabled-fg); }
.page-health .hinput[aria-invalid="true"] { border-color: var(--danger-text); }
.page-health .hfield__error { color: var(--danger-text); font-size: var(--fs-caption); }

/* ---------- Lista (substitui tabela no celular) ---------- */
.page-health .hlist { display: grid; gap: var(--space-2); }
.page-health .hlist__row {
  display: grid; grid-template-columns: 40px minmax(0, 1fr) auto; align-items: center; gap: var(--space-3);
  min-height: var(--list-row-height); padding: var(--space-3) var(--space-3);
  background: var(--surface-raised); border-radius: var(--radius-md);
}
a.hlist__row { cursor: pointer; }
.page-health .hlist__title { font: 600 15px/20px var(--font-ui); overflow-wrap: anywhere; }
.page-health .hlist__meta { color: var(--text-secondary); font: 500 13px/18px var(--font-ui); }
.page-health .hlist__trail { display: flex; align-items: center; gap: var(--space-2); color: var(--text-secondary); }

/* ---------- Painel de abas internas (agenda) ---------- */
.page-health [role="tabpanel"][hidden] { display: none; }

/* ---------- Estados ---------- */
.page-health .empty {
  display: grid; justify-items: center; gap: var(--space-2);
  padding: var(--space-6) var(--space-4); text-align: center;
  background: var(--surface-raised); border-radius: var(--radius-md);
}
.page-health .empty__icon { width: 56px; height: 56px; font-size: 24px; background: var(--surface-tint); border-color: transparent; }
.page-health .empty__title { font: 600 16px/22px var(--font-ui); }
.page-health .empty__text { color: var(--text-secondary); font-size: var(--fs-body-sm); line-height: var(--lh-body-sm); max-width: 32ch; }
.page-health .empty .hbtn { margin-top: var(--space-2); }

.page-health .hbanner {
  display: flex; align-items: center; gap: var(--space-3);
  padding: var(--space-3) var(--space-4); border-radius: var(--radius-md);
  font-size: var(--fs-body-sm); line-height: var(--lh-body-sm); font-weight: 600;
}
.page-health .hbanner[hidden] { display: none; }
.page-health .hbanner--offline { background: var(--warning-subtle); color: var(--warning); }
.page-health .hbanner--error { background: var(--danger-subtle); color: var(--danger-text); }
.page-health .hbanner .hbtn { margin-left: auto; min-height: var(--control-height-sm); padding: 0 var(--space-4); background: var(--surface-raised); }

.page-health .skel {
  display: inline-block; min-width: 3ch; border-radius: var(--radius-xs);
  color: transparent !important; /* esconde o valor antigo durante o carregamento (estado de loading) */
  background: linear-gradient(90deg, var(--primary-subtle) 25%, var(--surface-subtle) 50%, var(--primary-subtle) 75%);
  background-size: 200% 100%;
  animation: hh-shimmer 1.2s linear infinite;
  user-select: none;
}
.page-health .kpi--hero .skel { background: linear-gradient(90deg, var(--primary-hover) 25%, var(--primary-active) 50%, var(--primary-hover) 75%); background-size: 200% 100%; }
@keyframes hh-shimmer { from { background-position: 200% 0; } to { background-position: -200% 0; } }

/* ---------- Sheet ---------- */
.page-health .hsheet-backdrop {
  position: fixed; inset: 0; z-index: 50; background: var(--overlay);
  opacity: 0; visibility: hidden;
  transition: opacity var(--dur-medium) var(--ease-standard), visibility 0s linear var(--dur-medium);
}
.page-health .hsheet-backdrop.is-open { opacity: 1; visibility: visible; transition-delay: 0s; }

.page-health .hsheet {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 51;
  max-height: var(--sheet-max-height); overflow: auto; overscroll-behavior: contain;
  padding: var(--space-2) var(--space-4) calc(var(--space-4) + var(--safe-bottom));
  background: var(--surface-raised);
  border-radius: var(--sheet-radius) var(--sheet-radius) 0 0;
  box-shadow: var(--shadow-overlay);
  transform: translateY(100%); visibility: hidden;
  transition: transform var(--dur-medium) var(--ease-emphasized), visibility 0s linear var(--dur-medium);
}
.page-health .hsheet.is-open { transform: none; visibility: visible; transition-delay: 0s; }
.page-health .hsheet__handle {
  width: var(--sheet-handle-w); height: var(--sheet-handle-h);
  margin: var(--space-1) auto var(--space-3); border-radius: var(--radius-pill); background: var(--border-strong);
}
.page-health .hsheet__head { display: flex; align-items: center; gap: var(--space-3); margin-bottom: var(--space-4); }
.page-health .hsheet__title { flex: 1; font: 600 20px/28px var(--font-ui); }
.page-health .hsheet__body { display: grid; gap: var(--space-4); }
.page-health .hsheet__foot {
  position: sticky; bottom: calc(-1 * var(--space-4) - var(--safe-bottom));
  display: flex; gap: var(--space-3); margin-top: var(--space-5);
  padding: var(--space-3) 0 0; background: var(--surface-raised);
}
.page-health .hsheet__foot .hbtn { flex: 1; }
.page-health .hsheet__foot .hbtn:not(.hbtn--dark) { background: var(--surface-subtle); }

/* grupos de links da sheet "Mais" */
.page-health .more-group { display: grid; gap: var(--space-1); }
.page-health .more-group__title { font: 600 12px/16px var(--font-ui); color: var(--text-secondary); padding: var(--space-2) var(--space-3); }
.page-health .more-link {
  display: flex; align-items: center; gap: var(--space-3);
  min-height: 52px; padding: 0 var(--space-3); border-radius: var(--radius-sm);
  font: 600 15px/20px var(--font-ui);
}
.page-health .more-link i { font-size: 20px; color: var(--text-secondary); }
.page-health .more-link--danger, .page-health .more-link--danger i { color: var(--danger-text); }
.page-health .more-account { display: flex; align-items: center; gap: var(--space-3); padding: var(--space-3); border-radius: var(--radius-md); background: var(--surface); }

/* ---------- Movimento reduzido ---------- */
@media (prefers-reduced-motion: reduce) {
  .page-health *, .page-health *::before, .page-health *::after {
    animation-duration: 0.01ms !important; animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important; scroll-behavior: auto !important;
  }
  .page-health .tappable:active { transform: none; }
}

/* ======================================================================
   ≥ 480px — celular grande
   ====================================================================== */
@media (min-width: 480px) {
  .page-health .hcard { padding: var(--space-5); }
}

/* ======================================================================
   ≥ 768px — tablet: tab bar vira rail
   ====================================================================== */
@media (min-width: 768px) {
  .page-health .hh-header,
  .page-health .app-content { margin-left: calc(var(--rail-width) + var(--safe-left)); width: auto; }
  .page-health .hh-header { padding-inline: var(--gutter-tablet) calc(var(--gutter-tablet) + var(--safe-right)); }
  .page-health .hh-brand__name, .page-health .hh-user__text { display: block; }

  .page-health .hnav {
    inset: 0 auto 0 0; width: calc(var(--rail-width) + var(--safe-left)); height: 100dvh;
    grid-template-columns: 1fr; grid-auto-rows: 72px; align-content: start;
    padding: calc(var(--safe-top) + var(--space-20)) 0 0 var(--safe-left);
    box-shadow: 1px 0 0 var(--border);
  }
  .page-health .hnav__icon { width: 56px; }

  .page-health .app-content {
    padding: var(--space-2) var(--gutter-tablet) var(--space-8);
    grid-template-columns: repeat(8, minmax(0, 1fr)); gap: var(--space-4);
  }
  .page-health .app-content > * { grid-column: 1 / -1; }
  .page-health .page-head { grid-template-columns: 1fr auto; grid-template-areas: "eyebrow eyebrow" "title actions" "sub sub"; align-items: end; row-gap: var(--space-2); }
  .page-health .page-head__eyebrow { grid-area: eyebrow; }
  .page-health .page-title { grid-area: title; }
  .page-health .page-actions { grid-area: actions; }
  .page-health .page-sub { grid-area: sub; }
  .page-health .page-title { font-size: var(--fs-h1); line-height: var(--lh-h1); font-weight: 500; }
  .page-health .page-actions { display: flex; gap: var(--space-2); flex-wrap: wrap; justify-content: flex-end; }

  /* sheet vira diálogo ancorado (560px) */
  .page-health .hsheet {
    left: 50%; right: auto; bottom: auto; top: 50%; width: min(560px, 90vw);
    border-radius: var(--sheet-radius);
    transform: translate(-50%, -46%); opacity: 0;
    transition: transform var(--dur-medium) var(--ease-emphasized), opacity var(--dur-short), visibility 0s linear var(--dur-medium);
  }
  .page-health .hsheet.is-open { transform: translate(-50%, -50%); opacity: 1; }
  .page-health .hsheet__handle { display: none; }
  .page-health .hsheet__foot { position: static; padding-top: 0; }

  .page-health .hcard--outlined { border: 1px solid var(--border); }
}

/* ---------- Footer ---------- */
.page-health .hh-footer {
  padding: var(--space-4) calc(var(--gutter-mobile) + var(--safe-right))
           calc(var(--tabbar-height) + var(--safe-bottom) + var(--space-6))
           calc(var(--gutter-mobile) + var(--safe-left));
  color: var(--text-secondary); font-size: var(--fs-caption); line-height: var(--lh-caption);
  text-align: center;
}
.page-health .hh-footer strong { color: var(--text-primary); font-weight: 600; }
@media (display-mode: standalone) { .page-health .hh-footer { display: none; } }

@media (min-width: 768px) {
  .page-health .hh-footer { margin-left: calc(var(--rail-width) + var(--safe-left)); padding: var(--space-4) var(--gutter-tablet) var(--space-6); }
}

/* ======================================================================
   ≥ 1280px — desktop: sidebar completa + navbar superior + footer
   ====================================================================== */
@media (min-width: 1280px) {
  .page-health { --touch-target: 44px; --sidebar-w: var(--rail-width-expanded); --sidebar-offset: calc(var(--sidebar-w) + var(--space-6)); }
  .page-health.sidebar-collapsed { --sidebar-w: var(--rail-width); }

  /* Navbar superior (sticky, ao lado da sidebar) */
  .page-health .hh-header {
    margin-left: var(--sidebar-offset); width: auto;
    height: var(--header-height); padding: 0 var(--space-8) 0 var(--space-4);
    max-width: none;
  }
  .page-health .hh-header.is-scrolled { box-shadow: 0 1px 0 var(--border); }
  .page-health .hh-header__brand { display: none; }
  .page-health .hh-title { opacity: 1; flex: 1; font: 600 20px/28px var(--font-ui); letter-spacing: -0.01em; }
  .page-health .hh-util__tenant { display: inline-flex; }
  .page-health .hh-user { padding: 4px 12px 4px 4px; background: var(--surface-raised); }

  /* Sidebar */
  .page-health .hnav {
    position: fixed; inset: var(--space-3) auto var(--space-3) var(--space-3);
    width: var(--sidebar-w); height: auto;
    transition: width var(--dur-medium) var(--ease-emphasized);
    display: flex; flex-direction: column; gap: var(--space-2);
    padding: var(--space-3);
    background: var(--surface); border-radius: var(--radius-lg); box-shadow: none;
    overflow-y: auto; overscroll-behavior: contain;
  }
  .page-health .hnav__brand { display: flex; align-items: center; justify-content: space-between; gap: var(--space-2); padding: 0 var(--space-1); }
  .page-health .hnav__brand .hh-brand__name { display: block; }
  .page-health .hnav__primary { display: grid; gap: var(--space-1); align-content: start; }
  .page-health .hnav__groups { display: grid; gap: var(--space-3); align-content: start; }
  .page-health .hnav__title { display: block; }

  .page-health .hnav__item, .page-health .hnav .more-link {
    display: flex; align-items: center; justify-content: flex-start; gap: var(--space-3);
    min-height: 36px; padding: 0 var(--space-3);
    border: 0; border-radius: var(--radius-pill); background: transparent;
    color: var(--text-primary); font: 600 14px/20px var(--font-ui); text-align: left;
  }
  .page-health .hnav__groups { display: flex; flex-direction: column; flex: 1; gap: var(--space-2); }
  .page-health .hnav__groups .more-group:last-child { margin-top: auto; padding-top: var(--space-2); border-top: 1px solid var(--border); }
  .page-health .hnav .more-group { gap: 0; }
  .page-health .hnav .more-link { min-height: 36px; }
  .page-health .hnav .more-group__title { padding-block: var(--space-1); }
  .page-health .hnav__item--compact { display: none; }
  .page-health .hnav__icon { width: 24px; height: 24px; background: transparent; color: var(--text-secondary); font-size: 20px; }
  .page-health .hnav .more-link i { color: var(--text-secondary); }
  .page-health .hnav__item:hover, .page-health .hnav .more-link:hover { background: var(--hover-overlay); }
  .page-health .hnav__item[aria-current="page"], .page-health .hnav .more-link[aria-current="page"] {
    background: var(--control-active); color: var(--text-inverse);
  }
  .page-health .hnav__item[aria-current="page"] .hnav__icon,
  .page-health .hnav .more-link[aria-current="page"] i { background: transparent; color: var(--text-inverse); }
  .page-health .hnav .more-link--danger, .page-health .hnav .more-link--danger i { color: var(--danger-text); }

  /* Conteúdo e footer deslocados pela sidebar */
  .page-health .app-content {
    margin-left: var(--sidebar-offset); margin-right: 0; width: auto; max-width: none;
    padding: var(--space-2) var(--space-8) var(--space-4) var(--space-4);
    grid-template-columns: repeat(12, minmax(0, 1fr)); gap: var(--grid-gap);
  }
  .page-health .hh-footer { margin-left: var(--sidebar-offset); padding: var(--space-4) var(--space-8) var(--space-6) var(--space-4); text-align: left; }
}

/* ---- Sidebar recolhida (>=1280): só ícones; botão burger no topo ---- */
.page-health .hnav__toggle { display: none; }
@media (min-width: 1280px) {
  .page-health .hnav__toggle { display: inline-grid; flex: none; width: 40px; height: 40px; background: var(--surface-raised); }
  .page-health .app-content, .page-health .hh-header, .page-health .hh-footer {
    transition: margin-left var(--dur-medium) var(--ease-emphasized);
  }
  .page-health.sidebar-collapsed .hnav { padding-inline: var(--space-2); }
  .page-health.sidebar-collapsed .hnav__brand { justify-content: center; padding: 0; }
  .page-health.sidebar-collapsed .hnav__brand .hh-brand { display: none; }
  .page-health.sidebar-collapsed .hnav__title,
  .page-health.sidebar-collapsed .hnav .more-group__title { display: none; }
  .page-health.sidebar-collapsed .hnav__item,
  .page-health.sidebar-collapsed .hnav .more-link {
    justify-content: center; padding: 0; font-size: 0; /* esconde o rótulo, mantém só o ícone */
  }
  .page-health.sidebar-collapsed .hnav__label { display: none; }
  .page-health.sidebar-collapsed .hnav__icon, .page-health.sidebar-collapsed .hnav .more-link i { font-size: 20px; }
  .page-health.sidebar-collapsed .hnav .more-group + .more-group { border-top: 1px solid var(--border); padding-top: var(--space-2); }
}

/* ---------- Tema (claro / escuro / automático) ---------- */
.page-health .theme-seg { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--space-2); }
.page-health .theme-seg .hchip { justify-content: center; gap: var(--space-2); padding: 0 var(--space-2); }
.page-health .theme-seg__title { font: 600 12px/16px var(--font-ui); color: var(--text-secondary); padding: 0 var(--space-3) var(--space-2); }

/* estado ativo também nos links da sheet "Mais" */
.page-health .hsheet .more-link[aria-current="page"] { background: var(--control-active); color: var(--text-inverse); }
.page-health .hsheet .more-link[aria-current="page"] i { color: var(--text-inverse); }

/* ---------- Filtros: chips sticky + sheet (celular) / barra inline (>= 768) ----------
   Promovido de page-dashboard.css (usado por Dashboard e Pacientes). */
.page-health .filters { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--space-3); }
.page-health .filters__bar {
  position: sticky; top: calc(var(--appbar-height) + var(--safe-top)); z-index: 20;
  display: flex; align-items: center; gap: var(--space-2);
  margin-inline: calc(-1 * var(--gutter-mobile));
  padding: var(--space-1) var(--gutter-mobile);
  background: var(--background);
}
.page-health .filters__bar .hchips { flex: 1; min-width: 0; padding-inline: 0; }
.page-health .filters__open { flex: none; background: var(--surface-raised); }
.page-health .filters__open[hidden] { display: none; }

@media (min-width: 768px) {
  .page-health .filters__bar { position: static; margin-inline: 0; padding: 0; background: transparent; }
  .page-health .filters__open { display: none; }
  .page-health .filters-sheet {
    position: static; left: auto; top: auto; width: auto; max-height: none;
    transform: none; opacity: 1; visibility: visible;
    padding: 0; background: transparent; box-shadow: none; border-radius: 0; overflow: visible;
    display: flex; flex-wrap: wrap; align-items: flex-end; gap: var(--space-3);
  }
  .page-health .filters-sheet .hsheet__head, .page-health .filters-sheet .hsheet__handle,
  .page-health .filters-sheet [data-sheet-clear] { display: none; }
  .page-health .filters-sheet .hsheet__body { display: flex; flex-wrap: wrap; align-items: flex-end; gap: var(--space-3); }
  .page-health .filters-sheet .hfield:not(.field-periodo) { min-width: 240px; }
  .page-health .filters-sheet .hsheet__foot { margin: 0; padding: 0; background: transparent; position: static; }
  .page-health .filters-sheet .hsheet__foot .hbtn { flex: none; background: var(--control-active); color: var(--text-inverse); }
}
@media (min-width: 1024px) {
  .page-health .filters { grid-template-columns: minmax(0, 1fr) auto; align-items: end; }
}

/* ---------- Busca (campo com ícone) — usado por Consultas ---------- */
.page-health .hsearch { position: relative; min-width: 0; }
.page-health .hsearch .hinput { padding-left: var(--space-10); }
.page-health .hsearch > i {
  position: absolute; left: var(--space-4); top: 50%; transform: translateY(-50%);
  color: var(--text-secondary); pointer-events: none;
}

/* ---------- Paginação (lista de botões) ---------- */
.page-health .hpager { display: flex; flex-wrap: wrap; justify-content: center; gap: var(--space-2); }
.page-health .hpager .hchip { min-width: var(--control-height-lg); justify-content: center; }
.page-health .hpager .hchip[aria-current="page"] { background: var(--control-active); color: var(--text-inverse); font-weight: 600; }
.page-health .hpager .hchip[disabled] { opacity: .4; cursor: not-allowed; }
.page-health .hpager__gap { align-self: center; color: var(--text-secondary); padding: 0 var(--space-1); }

/* ---------- Opção de rádio em cartão ---------- */
.page-health .hchoice {
  display: flex; align-items: flex-start; gap: var(--space-3);
  min-height: var(--touch-target); padding: var(--space-3);
  border-radius: var(--radius-sm); background: var(--surface); cursor: pointer;
  font: 500 14px/20px var(--font-ui);
}
.page-health .hchoice input { margin-top: 2px; width: 20px; height: 20px; flex: none; accent-color: var(--primary); }

/* ---------- Toast (feedback efêmero; HealthUI.toast) ---------- */
.page-health .htoast {
  position: fixed; z-index: 60; left: 50%; transform: translateX(-50%);
  bottom: calc(var(--tabbar-height) + var(--safe-bottom) + var(--space-4));
  width: min(480px, calc(100vw - 2 * var(--gutter-mobile)));
  display: flex; align-items: center; gap: var(--space-3);
  padding: var(--space-3) var(--space-4); border-radius: var(--radius-md);
  background: var(--surface-raised); color: var(--text-primary);
  border: 1px solid var(--border); box-shadow: var(--shadow-overlay);
  font: 600 14px/20px var(--font-ui);
}
.page-health .htoast[hidden] { display: none; }
.page-health .htoast--success { background: var(--success-subtle); color: var(--success); }
.page-health .htoast--error { background: var(--danger-subtle); color: var(--danger-text); }
.page-health .htoast--warning { background: var(--warning-subtle); color: var(--warning); }
.page-health .htoast--info { background: var(--info-subtle); color: var(--info); }
.page-health .htoast i { font-size: 20px; flex: none; }
@media (min-width: 768px) { .page-health .htoast { bottom: var(--space-6); } }

/* ---------- Confirmação (HealthUI.confirm) ---------- */
.page-health .hconfirm__text { color: var(--text-secondary); font-size: var(--fs-body-sm); line-height: var(--lh-body-sm); }
.page-health .hbtn--danger { background: var(--danger-subtle); color: var(--danger-text); }

/* ---------- Grade: span-4 / span-8 (promovido de page-dashboard.css) ---------- */
@media (min-width: 768px) {
  .page-health .app-content > .span-4 { grid-column: span 4; }
  .page-health .app-content > .span-8 { grid-column: span 8; }
}
@media (min-width: 1280px) {
  .page-health .app-content > .span-4 { grid-column: span 4; }
  .page-health .app-content > .span-8 { grid-column: span 8; }
}

/* ---------- Promovidos (Consultas/Bloqueios): sheet tela cheia, textarea, hint, linha de rótulo ---------- */
.page-health .hinput--area { height: auto; min-height: 96px; padding-block: var(--space-3); resize: vertical; }
.page-health .hfield__hint { color: var(--text-secondary); font-size: var(--fs-caption); line-height: var(--lh-caption); }
.page-health .hfield__row { display: flex; align-items: center; justify-content: space-between; gap: var(--space-3); }
.page-health .hfield[hidden] { display: none; }
.page-health .hchip[hidden] { display: none; }
@media (max-width: 767.98px) {
  .page-health .hsheet--full { top: 0; bottom: 0; max-height: none; height: 100dvh; border-radius: 0; padding-top: calc(var(--space-2) + var(--safe-top)); }
}

/* Financeiro Health — componentes reutilizáveis */
.page-health .hfinance-dialog { width:100%; }
.page-health .hfinance-dialog .hsheet__foot[hidden], .page-health .hfinance-dialog .hbanner[hidden] { display:none; }
.page-health .hfinance-dialog .hf-row { display:grid; grid-template-columns:minmax(0,1fr); gap:var(--space-4); }
.page-health .hfinance-dialog .hfield, .page-health .hfinance-dialog .mb-1, .page-health .hfinance-dialog .mb-3 { display:grid; gap:var(--space-2); }
.page-health .hfinance-dialog .hinput::placeholder { color:var(--text-secondary); opacity:1; }
.page-health .hfinance-dialog .hinput { min-width:0; }
.page-health .hfinance-dialog textarea.hinput { height:auto; min-height:var(--space-20); padding-block:var(--space-3); }
.page-health .hfinance-dialog .hledger { margin-top:var(--space-4); }
.page-health .hfinance-dialog #campos-cartao, .page-health .hfinance-dialog #campos-pix { display:none; }
.page-health .hf-body { color:var(--text-primary); }
@media(min-width:768px) { .page-health .hfinance-dialog { width:min(640px,calc(100vw - var(--space-12))); } .page-health .hfinance-dialog .hf-row { grid-template-columns:repeat(2,minmax(0,1fr)); } }
.page-health .page-actions.hfinance-primary { display:flex; position:fixed; right:var(--gutter-mobile); bottom:calc(var(--tabbar-height) + var(--safe-bottom) + var(--space-3)); z-index:30; }
@media(min-width:768px) { .page-health .page-actions.hfinance-primary { position:static; } }
/* Lista/tabela financeira, ações e formulário usados por Contas e Faturas. */
.page-health .hfinance-kpis { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--gap-mobile); }
.page-health .hfinance-kpis .kpi--hero, .page-health .hfinance-kpis .kpi:last-child { grid-column:1/-1; }
.page-health .hfinance-kpis .kpi__value { font-size:var(--fs-h3); line-height:var(--lh-h3); font-variant-numeric:tabular-nums; overflow-wrap:anywhere; }
.page-health .hfinance-kpis .kpi--hero .kpi__value { font-size:var(--fs-metric-xl); line-height:var(--lh-metric-xl); }
.page-health .hfinance-kpis .kpi--hero .kpi__top, .page-health .hfinance-kpis .kpi--hero .kpi__meta { color:var(--on-primary); }
.page-health .hledger { width:100%; border-collapse:collapse; font-variant-numeric:tabular-nums; }
.page-health .hledger thead { display:none; }
.page-health .hledger tbody { display:grid; grid-template-columns:minmax(0,1fr); }
.page-health .hledger tr { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--space-2) var(--space-3); padding:var(--space-4) 0; border-bottom:1px solid var(--border); }
.page-health .hledger td { min-width:0; overflow-wrap:anywhere; font-size:var(--fs-body-sm); }
.page-health .hledger td::before { content:attr(data-label); display:block; color:var(--text-secondary); font-size:var(--fs-caption); }
.page-health .hledger td[colspan] { grid-column:1/-1; text-align:center; padding:var(--space-6) 0; }
.page-health .hledger td[colspan]::before { display:none; }
.page-health .hledger .hbadge { white-space:nowrap; }
.page-health .hledger-actions { display:flex; flex-wrap:wrap; gap:var(--space-2); }
.page-health .hledger-actions .hicon-btn { width:var(--touch-target); height:var(--touch-target); }
.page-health .hf-muted { color:var(--text-secondary); }
.page-health .hf-danger { color:var(--danger-text); }
.page-health .hf-success { color:var(--success); }
.page-health .hf-inline { display:flex; align-items:center; gap:var(--space-2); }
.page-health .hfinance-form { display:grid; grid-template-columns:minmax(0,1fr); gap:var(--space-4); }
.page-health .hfinance-form .hfield, .page-health .hfinance-form .hf-row { min-width:0; }
.page-health .hfinance-form .hf-row { display:grid; grid-template-columns:minmax(0,1fr); gap:var(--space-4); }
.page-health .hfinance-form .hinput { min-width:0; }
.page-health .hfinance-form .hinput::placeholder { color:var(--text-secondary); opacity:1; }
.page-health .hfinance-form textarea.hinput { height:auto; padding-block:var(--space-3); resize:vertical; }
.page-health .hfinance-form .hsheet__foot { z-index:2; margin-top:0; }
@media(min-width:768px) {
  .page-health .hfinance-kpis .kpi--hero, .page-health .hfinance-kpis .kpi:last-child { grid-column:auto; }
  .page-health .hfinance-form .hf-row { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(min-width:1024px) { .page-health .hfinance-kpis { grid-template-columns:repeat(4,minmax(0,1fr)); } }
@media(min-width:1280px) {
  .page-health .hledger thead { display:table-header-group; background:var(--surface-subtle); color:var(--text-secondary); }
  .page-health .hledger tbody { display:table-row-group; }
  .page-health .hledger tr { display:table-row; }
  .page-health .hledger td, .page-health .hledger th { padding:var(--space-4) var(--space-2); border-bottom:1px solid var(--border); text-align:left; }
  .page-health .hledger th { font-size:var(--fs-caption); font-weight:500; }
  .page-health .hledger th:first-child { border-radius:var(--radius-sm) 0 0 var(--radius-sm); }
  .page-health .hledger th:last-child { border-radius:0 var(--radius-sm) var(--radius-sm) 0; }
  .page-health .hledger td::before { display:none; }
  .page-health .hledger td[data-label="Valor"], .page-health .hledger td[data-label="Valor Total"] { text-align:right; white-space:nowrap; font-weight:600; }
  .page-health .hledger td[data-label="Data"], .page-health .hledger td[data-label="Emissão"], .page-health .hledger td[data-label="Vencimento"] { white-space:nowrap; }
  .page-health .hledger-actions { min-width:calc(3 * var(--touch-target) + 2 * var(--space-2)); }
}
.page-health .hcombo { position: relative; min-width: 0; width: 100%; }
.page-health .hcombo .hcombo__native { position: absolute; inset-block-start: 0; inset-inline-start: 0; width: 1px; min-width: 0; height: 1px; padding: 0; border: 0; opacity: 0; pointer-events: none; overflow: hidden; }
.page-health .hcombo__input { padding-inline-end: calc(var(--touch-target) + var(--space-1)); }
.page-health .hcombo__clear {
  position: absolute; inset-block-start: 0; inset-inline-end: 0; width: var(--touch-target); height: var(--touch-target);
  display: inline-grid; place-items: center; background: transparent; border: 0; color: var(--text-secondary); cursor: pointer;
}
.page-health .hcombo__clear[hidden] { display: none; }
.page-health .hcombo__list {
  position: absolute; z-index: 60; inset-inline: 0; margin: var(--space-1) 0 0; padding: var(--space-1); list-style: none;
  max-height: 240px; overflow: auto; background: var(--surface-raised); border: 1px solid var(--border);
  border-radius: var(--radius-md); box-shadow: var(--shadow-overlay);
}
.page-health .hcombo__list[hidden] { display: none; }
.page-health .hcombo__opt { padding: var(--space-2) var(--space-3); border-radius: var(--radius-sm); cursor: pointer; font: 500 14px/20px var(--font-ui); overflow-wrap: anywhere; }
.page-health .hcombo__opt.is-active, .page-health .hcombo__opt:hover { background: var(--control-active); color: var(--text-inverse); }
.page-health .hcombo__status { margin: var(--space-1) 0 0; padding: var(--space-2) var(--space-3); color: var(--text-secondary); font: 500 13px/18px var(--font-ui); background: var(--surface-raised); border: 1px solid var(--border); border-radius: var(--radius-md); }
.page-health .hcombo__status[hidden] { display: none; }

/* ---------- PAM F11: contraste de campos em modais/sheets ----------
   O sheet usa --surface-raised e o campo tambem: ficavam iguais e sem borda.
   Dentro de sheets e dialogos o campo passa a ter fundo e borda proprios. */
.page-health .hsheet .hinput,
.page-health .hfinance-dialog .hinput,
.page-health .hfinance-form .hinput {
  background-color: var(--field-bg);
  border-color: var(--field-border);
}
.page-health .hsheet .hinput:hover,
.page-health .hfinance-dialog .hinput:hover,
.page-health .hfinance-form .hinput:hover { border-color: var(--text-secondary); }
.page-health .hsheet .hinput:focus,
.page-health .hfinance-dialog .hinput:focus,
.page-health .hfinance-form .hinput:focus { border-color: var(--primary); }
.page-health .hsheet .hinput[disabled],
.page-health .hfinance-dialog .hinput[disabled] { background-color: var(--disabled-bg); border-color: var(--border-strong); }
.page-health .hsheet .hinput[aria-invalid="true"],
.page-health .hsheet .was-validated .hinput:invalid { border-color: var(--danger-text); }
.page-health .hsheet .hfield__label { color: var(--text-primary); font-weight: 700; }
.page-health .hsheet .hfield__hint { color: var(--text-secondary); }
.page-health .hsheet .hinput::placeholder { color: var(--text-secondary); opacity: 1; }
.page-health .hsheet .hinput--area,
.page-health .hsheet textarea.hinput { background-color: var(--field-bg); border-color: var(--field-border); }

/* ---------- PAM F12: autocomplete de paciente (HealthPacienteBusca) ---------- */
.page-health .hac { position: relative; }
.page-health .hac__list {
  position: absolute; z-index: 6; inset-inline: 0; top: calc(100% + var(--space-1));
  max-height: 280px; overflow-y: auto; padding: var(--space-1);
  background: var(--surface-raised); border: 1px solid var(--border-strong);
  border-radius: var(--radius-md); box-shadow: var(--shadow-overlay);
}
.page-health .hac__list[hidden] { display: none; }
.page-health .hac__item { padding: var(--space-3); border-radius: var(--radius-sm); cursor: pointer; min-height: var(--touch-target); display: flex; align-items: center; }
.page-health .hac__item:hover, .page-health .hac__item.is-active { background: var(--surface-selected); }
.page-health .hac__main { display: grid; gap: 2px; min-width: 0; }
.page-health .hac__nome { font: 600 14px/20px var(--font-ui); color: var(--text-primary); overflow-wrap: anywhere; }
.page-health .hac__det { font: 500 12px/16px var(--font-ui); color: var(--text-secondary); font-variant-numeric: tabular-nums; }
.page-health .hac__empty, .page-health .hac__more { padding: var(--space-3); color: var(--text-secondary); font: 500 13px/18px var(--font-ui); }
.page-health .hac__erro { color: var(--danger-text); }
.page-health .hac__status { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.page-health .hac__list.hac__stale { opacity: .45; pointer-events: none; }

/* ---------- PAG F2: "Quem paga?" da consulta ---------- */
.page-health .qp { display: grid; gap: var(--space-2); }
.page-health .qp__chips { flex-wrap: wrap; }
.page-health .qp__chips[hidden], .page-health .qp [hidden] { display: none; }
.page-health .qp__dados { display: grid; gap: var(--space-3); padding: var(--space-3); border: 1px dashed var(--field-border); border-radius: var(--radius-md); background: var(--surface-subtle); }
.page-health .qp__check { display: flex; align-items: center; gap: var(--space-3); min-height: var(--touch-target); color: var(--text-primary); font: 500 14px/20px var(--font-ui); }
.page-health .qp__check input { width: var(--space-5); height: var(--space-5); accent-color: var(--primary); flex: none; }
.page-health .qp__valor { color: var(--text-primary); font-variant-numeric: tabular-nums; font-weight: 600; }
.page-health .qp__aviso { margin: 0; padding: var(--space-3); border-radius: var(--radius-md); background: var(--warning-subtle); color: var(--warning); font: 500 13px/18px var(--font-ui); }

/* ---- SweetAlert2 no tema Health (bug 12: titulo/texto/toast com contraste baixo no tema escuro) ---- */
.swal2-popup { background: var(--surface-raised, #16262e); color: var(--text-primary, #e8f1f4); font-family: var(--font-ui, inherit); }
.swal2-popup .swal2-title,
.swal2-popup .swal2-html-container,
.swal2-popup .swal2-content { color: var(--text-primary, #e8f1f4); }
.swal2-popup.swal2-toast { background: var(--surface-raised, #16262e); color: var(--text-primary, #e8f1f4); box-shadow: 0 8px 24px rgba(0,0,0,.35); }
.swal2-popup.swal2-toast .swal2-title { color: var(--text-primary, #e8f1f4); font-size: .95rem; }
.swal2-popup .swal2-confirm { background: var(--control-active, #2e9e6b); color: var(--text-inverse, #fff); }
.swal2-popup .swal2-cancel,
.swal2-popup .swal2-deny { background: var(--surface-subtle, #22343c); color: var(--text-primary, #e8f1f4); }
.swal2-popup .swal2-input, .swal2-popup .swal2-textarea { color: var(--text-primary, #e8f1f4); background: transparent; }

/* =====================================================================
   Listagem de dados (padrão do lote 4 — 18/10/2026)
   Tabela (≥1024px) que vira lista de cartões abaixo disso, com busca,
   chips, ações em "⋮" (action sheet), estado vazio e paginação.
   Marcação: .hlisting > .hlisting__bar + .hcard > .hdata > table.hdata__table
   JS: js/health/listing.js (busca, chips, contagem, menu de ações).
   ===================================================================== */
.page-health .hlisting { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--space-4); }
.page-health .hlisting__bar { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--space-3); align-items: end; }
.page-health .hlisting__bar .hfield { min-width: 0; }
.page-health .hlisting .hinput::placeholder, .page-health .hsheet .hinput::placeholder { color: var(--text-secondary); opacity: 1; }   /* AA nos dois temas (medido) */
.page-health .hlisting__filters { display: grid; gap: var(--space-3); }
.page-health .hlisting__count { color: var(--text-secondary); font-size: var(--fs-caption); }

.page-health .hdata { min-width: 0; }
.page-health .hdata__table, .page-health .hdata__table tbody { display: grid; grid-template-columns: minmax(0, 1fr); width: 100%; }
.page-health .hdata__table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.page-health .hdata__row {
  display: grid; grid-template-columns: minmax(0, 1fr) auto; column-gap: var(--space-3); row-gap: var(--space-2);
  padding: var(--space-4) 0; border-bottom: 1px solid var(--border);
}
.page-health .hdata__row:last-child { border-bottom: 0; }
.page-health .hdata__row[hidden] { display: none; }
.page-health .hdata__row > td { grid-column: 1 / -1; min-width: 0; overflow-wrap: anywhere; font-size: var(--fs-body-sm); }
.page-health .hdata__row > td[data-label]::before {
  content: attr(data-label); display: block; color: var(--text-secondary); font-size: var(--fs-caption);
}
.page-health .hdata__row > td.hdata__main { grid-column: 1; grid-row: 1; min-height: var(--touch-target); }
.page-health .hdata__row > td.hdata__actions { grid-column: 2; grid-row: 1; }
.page-health .hdata__main { display: flex; align-items: center; gap: var(--space-3); }
.page-health .hdata__main-text { min-width: 0; }
.page-health .hdata__avatar {
  display: inline-grid; place-items: center; flex: none; width: 40px; height: 40px; border-radius: var(--radius-pill);
  background: var(--surface-tint); color: var(--text-primary); font-weight: 700; text-transform: uppercase;
}
.page-health .hdata__title { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2); font-weight: 600; color: var(--text-primary); overflow-wrap: anywhere; }
.page-health .hdata__title a { color: inherit; text-decoration: none; }
.page-health .hdata__title a:hover { text-decoration: underline; }
.page-health .hdata__sub { display: block; color: var(--text-secondary); font-size: var(--fs-caption); overflow-wrap: anywhere; }
.page-health .hdata__link { color: inherit; text-decoration: none; overflow-wrap: anywhere; }
.page-health .hdata__link:hover { text-decoration: underline; }
.page-health .hdata__link:focus-visible { outline: 2px solid var(--primary); outline-offset: 2px; border-radius: var(--radius-sm); }
.page-health .hdata__lines { display: grid; gap: var(--space-1); }
.page-health .hdata__line { display: flex; gap: var(--space-2); align-items: flex-start; }
.page-health .hdata__line > i { color: var(--text-secondary); flex: none; margin-top: 2px; }
.page-health .hdata__num { font-variant-numeric: tabular-nums; }
.page-health .hdata__actions { display: flex; justify-content: flex-end; align-items: center; gap: var(--space-2); }
.page-health .hdata__more { background: var(--surface-subtle); }
.page-health .hdata__menu { display: none; }          /* fonte dos itens do action sheet */
.page-health .hdata__row-actions { display: none; }   /* variante: ações visíveis no desktop */
.page-health .hlisting__empty[hidden] { display: none; }

/* Variante compacta (celular): título + "⋮" na 1ª linha, atributos curtos em linha (rótulo: valor) abaixo */
.page-health .hdata--compact .hdata__row { display: flex; flex-wrap: wrap; align-items: center; column-gap: var(--space-4); row-gap: var(--space-2); }
.page-health .hdata--compact .hdata__row > td { flex: 0 0 auto; order: 4; }
.page-health .hdata--compact .hdata__row::after { content: ''; order: 3; flex-basis: 100%; height: 0; }
.page-health .hdata--compact .hdata__row > td.hdata__main { flex: 1 1 0; order: 1; }
.page-health .hdata--compact .hdata__row > td.hdata__actions { flex: none; margin-left: auto; order: 2; }
.page-health .hdata--compact .hdata__row > td[data-label]::before { display: inline; margin-right: var(--space-1); }
.page-health .hdata--compact .hdata__row > td.hdata__nolabel::before { display: none; }

@media (min-width: 768px) {
  .page-health .hlisting__bar--search-cta { grid-template-columns: minmax(0, 1fr) auto; }
}

@media (min-width: 1024px) {
  .page-health .hdata__table { display: table; border-collapse: collapse; }
  .page-health .hdata__table tbody { display: table-row-group; }
  .page-health .hdata__table thead {
    position: static; width: auto; height: auto; overflow: visible; clip-path: none; display: table-header-group;
    background: var(--surface-subtle); color: var(--text-secondary);
  }
  .page-health .hdata__table th { padding: var(--space-3); text-align: left; font-size: var(--fs-caption); font-weight: 500; }
  .page-health .hdata__table th:first-child { border-radius: var(--radius-pill) 0 0 var(--radius-pill); padding-left: var(--space-5); }
  .page-health .hdata__table th:last-child { border-radius: 0 var(--radius-pill) var(--radius-pill) 0; padding-right: var(--space-5); }
  .page-health .hdata__table th.hdata__num, .page-health .hdata__table td.hdata__num--end { text-align: right; }
  .page-health .hdata__row, .page-health .hdata--compact .hdata__row { display: table-row; padding: 0; }
  .page-health .hdata__row > td, .page-health .hdata--compact .hdata__row > td {
    display: table-cell; padding: var(--space-3); border-bottom: 1px solid var(--border); vertical-align: middle; min-height: 56px;
  }
  .page-health .hdata--compact .hdata__row::after { display: none; }
  .page-health .hdata__row:last-child > td { border-bottom: 0; }
  .page-health .hdata__row > td:first-child { padding-left: var(--space-5); }
  .page-health .hdata__row > td:last-child { padding-right: var(--space-5); }
  .page-health .hdata__row > td[data-label]::before, .page-health .hdata--compact .hdata__row > td[data-label]::before { display: none; }
  .page-health .hdata__row > td.hdata__main > .hdata__avatar { display: inline-grid; vertical-align: middle; margin-right: var(--space-3); }
  .page-health .hdata__row > td.hdata__main > .hdata__main-text { display: inline-block; vertical-align: middle; max-width: calc(100% - 56px); }
  .page-health .hdata__row > td.hdata__num--end { text-align: right; white-space: nowrap; }
  .page-health .hdata__actions { justify-content: flex-end; }
}

/* Reduzir movimento: sem transições extras na listagem */
@media (prefers-reduced-motion: reduce) {
  .page-health .hdata__row { transition: none; }
}

/* ==========================================================================
   Fluxo de tarefa (lote odonto-legado, 19/10/2026)
   body_class " hh-task": oculta a tab bar no celular; " hh-task--bar": reserva espaço p/ .hactionbar.
   ========================================================================== */
.page-health .hh-header--task { gap: var(--space-3); }
.page-health .hh-header--task .hh-title { opacity: 1; flex: 1; font: 600 18px/24px var(--font-ui); letter-spacing: -0.01em; }
@media (max-width: 767.98px) {
  .page-health.hh-task > .hnav { display: none; }
  .page-health.hh-task--bar .app-content { padding-bottom: calc(var(--space-20) + var(--space-8) + var(--safe-bottom)); }
}

/* Barra de ação fixa (celular) → alinhada à direita no fluxo (≥768) */
.page-health .hactionbar {
  position: fixed; inset: auto 0 0 0; z-index: 40;
  display: flex; gap: var(--space-3); align-items: center;
  padding: var(--space-3) calc(var(--gutter-mobile) + var(--safe-right)) calc(var(--space-3) + var(--safe-bottom)) calc(var(--gutter-mobile) + var(--safe-left));
  background: var(--surface-raised); box-shadow: 0 -1px 0 var(--border), var(--shadow-float);
}
.page-health .hactionbar .hbtn { flex: 1; justify-content: center; min-height: var(--touch-target); }
.page-health .hactionbar .hbtn--grow { flex: 2; }
@media (min-width: 768px) {
  .page-health .hactionbar { position: static; padding: 0; background: none; box-shadow: none; justify-content: flex-end; }
  .page-health .hactionbar .hbtn { flex: none; min-height: var(--control-height-md); }
}

/* Checkbox / switch no padrão DS (alvo ≥ 48px) */
.page-health .hcheck {
  display: flex; align-items: flex-start; gap: var(--space-3);
  min-height: var(--touch-target); padding: var(--space-3);
  background: var(--surface-raised); border: 1.5px solid var(--field-border, var(--text-secondary)); border-radius: var(--radius-md); cursor: pointer;
}
.page-health .hcheck input { width: 24px; height: 24px; flex: none; margin: 0; accent-color: var(--primary); }
.page-health .hcheck:focus-within { border-color: var(--primary); box-shadow: 0 0 0 4px var(--focus-ring); }
.page-health .hcheck__title { display: block; font: 600 15px/20px var(--font-ui); color: var(--text-primary); }
.page-health .hcheck__hint { display: block; color: var(--text-secondary); font: 500 13px/18px var(--font-ui); }

/* Rodapé obrigatório do campo */
.page-health .hfield__hint { color: var(--text-secondary); font: 500 13px/18px var(--font-ui); }
.page-health .hfield__req { color: var(--danger-text); font-weight: 600; }

/* Campos de formulário de tarefa: borda visível, placeholder AA, 44px no desktop */
/* --border-strong mede 1,4–1,8:1 (< 3:1 de 1.4.11): em formulários de tarefa a borda usa --text-secondary */
.page-health .hform { --field-border: var(--text-secondary); }
.page-health .hform .hinput { border-color: var(--field-border); }
.page-health .hform .hinput::placeholder { color: var(--text-secondary); opacity: 1; }
.page-health .hform .hinput:hover { border-color: var(--text-primary); }
.page-health .hform .hinput:focus { border-color: var(--primary); }
.page-health .hform textarea.hinput { height: auto; min-height: var(--space-24, 96px); padding-block: var(--space-3); resize: vertical; }
@media (min-width: 1024px) { .page-health .hform .hinput:not(textarea) { height: var(--control-height-md); } }
@media (max-width: 767.98px) {
  .page-health.hh-task--bar .hh-footer { padding-bottom: calc(var(--space-20) + var(--space-8) + var(--safe-bottom)); }
}
@media (max-width: 767.98px) { .page-health .hh-only-desktop { display: none !important; } } /* visibilidade por breakpoint: precisa vencer o display de .hbtn */
@media (min-width: 768px) { .page-health .hh-only-mobile { display: none !important; } }
