/* Public Health screens: no app shell or authenticated context. */
.page-health .auth-layout { display: grid; grid-template-columns: minmax(0, 1fr); min-height: 100dvh; }
.page-health .auth-main { min-width: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: var(--space-8); padding: calc(var(--space-8) + var(--safe-top)) max(var(--space-6), var(--safe-right)) calc(var(--space-6) + var(--safe-bottom)) max(var(--space-6), var(--safe-left)); background: var(--surface); }
.page-health .auth-brand { align-self: flex-start; margin-right: var(--space-16); border-radius: var(--radius-sm); }
.page-health .auth-logo { width: auto; height: var(--space-20); object-fit: contain; }
.page-health .auth-logo--dark { display: none; }
html[data-theme="dark"] .auth-logo--light { display: none; }
html[data-theme="dark"] .auth-logo--dark { display: block; }
.page-health .auth-card { width: 100%; max-width: 30rem; padding: 0; border-radius: 0; }
.page-health .auth-heading { display: grid; gap: var(--space-3); margin-bottom: var(--space-8); }
.page-health .auth-eyebrow { color: var(--text-secondary); font-size: .75rem; font-weight: 700; letter-spacing: .12em; }
.page-health .auth-heading h1 { font-size: 1.75rem; line-height: 1.25; font-weight: 700; letter-spacing: -.025em; }
.page-health .auth-heading > p:last-child, .page-health .auth-register, .page-health .auth-copyright { color: var(--text-secondary); font-size: .9375rem; line-height: 1.6; }
.page-health .auth-form { display: grid; gap: var(--space-5); }
.page-health .auth-form .hfield__label { font-size: .875rem; line-height: 1.5; }
.page-health .auth-form .hinput { font-size: 1rem; line-height: 1.5; height: auto; min-height: var(--control-height-lg); padding-block: var(--space-3); }
.page-health .auth-form .hinput::placeholder { color: var(--text-secondary); opacity: 1; }
.page-health .auth-password { position: relative; }
.page-health .auth-password .hinput { padding-right: var(--space-16); }
.page-health .auth-password__toggle { position: absolute; inset: 0 var(--space-1) 0 auto; width: var(--touch-target); min-height: var(--touch-target); display: grid; place-items: center; background: transparent; border: 0; border-radius: var(--radius-xs); cursor: pointer; }
.page-health .auth-password__toggle[hidden] { display: none; }
.page-health .auth-remember { display: flex; align-items: center; gap: var(--space-3); min-height: var(--touch-target); width: fit-content; cursor: pointer; font-size: .9375rem; }
.page-health .auth-remember input { appearance: none; flex-shrink: 0; display: grid; place-items: center; margin: 0; width: var(--space-5); height: var(--space-5); border: 2px solid var(--text-secondary); border-radius: calc(var(--radius-xs) / 2); background: var(--surface-raised); }
.page-health .auth-remember input:checked { background: var(--control-active); border-color: var(--control-active); color: var(--text-inverse); }
.page-health .auth-remember input:checked::after { content: ''; width: .3rem; height: .6rem; border: solid currentColor; border-width: 0 2px 2px 0; transform: translateY(-1px) rotate(45deg); }
.page-health .auth-submit { min-height: var(--control-height-lg); height: auto; padding-block: var(--space-3); font-size: 1rem; }
.page-health .auth-register { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; column-gap: var(--space-1); margin-top: var(--space-8); padding-top: var(--space-6); border-top: 1px solid var(--border); }
.page-health .auth-register a { min-height: var(--touch-target); font-size: .9375rem; color: var(--text-primary); text-decoration: underline; text-underline-offset: var(--space-1); }
.page-health .auth-copyright { text-align: center; font-size: .75rem; }
.page-health .auth-error { margin-bottom: var(--space-4); font-size: .9375rem; align-items: flex-start; overflow-wrap: anywhere; }
.page-health .auth-error[hidden] { display: none; }
.page-health .auth-error > span { flex: 1; }
.page-health .auth-error > i { margin-top: var(--space-1); }
.page-health .auth-dismiss { flex-shrink: 0; border: 0; background: transparent; min-width: var(--touch-target); min-height: var(--touch-target); cursor: pointer; border-radius: var(--radius-xs); }
.page-health .auth-field-error { display: flex; align-items: baseline; gap: var(--space-2); font-size: .875rem; line-height: 1.5; }
.page-health .auth-theme { position: absolute; top: calc(var(--space-6) + var(--safe-top)); right: max(var(--space-6), var(--safe-right)); z-index: 5; }
.page-health .auth-theme__toggle { display: grid; place-items: center; list-style: none; width: var(--touch-target); height: var(--touch-target); border-radius: var(--radius-pill); background: var(--surface-raised); color: var(--text-primary); cursor: pointer; font-size: 1.25rem; }
.page-health .auth-theme__toggle::-webkit-details-marker { display: none; }
.page-health .auth-theme__options { position: absolute; right: 0; top: calc(100% + var(--space-2)); display: grid; gap: var(--space-1); padding: var(--space-2); border-radius: var(--radius-md); background: var(--surface-raised); box-shadow: var(--shadow-float); }
.page-health .auth-theme__options button { min-height: var(--touch-target); font-size: .875rem; }
.page-health .auth-theme__options [aria-pressed="true"] { background: var(--control-active); color: var(--text-inverse); }
.page-health .auth-visual { display: none; }
@media (min-width: 768px) {
  .page-health .auth-heading h1 { font-size: 2rem; }
  .page-health .auth-main { padding: var(--space-12); gap: var(--space-10); }
  .page-health .auth-brand { align-self: center; margin-right: 0; }
}
@media (min-width: 1024px) {
  .page-health .auth-layout { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .page-health .auth-main { padding: var(--space-12) var(--space-10); }
  .page-health .auth-brand { align-self: flex-start; }
  .page-health .auth-visual { display: flex; align-items: flex-end; min-width: 0; margin: var(--space-4); padding: var(--space-12); border-radius: var(--radius-xl); background: linear-gradient(180deg, var(--overlay), var(--on-accent)), url('../../assets/images/bg-auth.jpg') center / cover; color: var(--on-primary); }
  .page-health .auth-visual__copy { max-width: 30rem; display: grid; gap: var(--space-6); }
  .page-health .auth-visual__mark { display: grid; place-items: center; width: var(--space-16); height: var(--space-16); border-radius: var(--radius-md); background: var(--accent); color: var(--on-accent); font-size: 2rem; }
  .page-health .auth-visual h2 { color: var(--on-primary); font-size: clamp(2rem, 4vw, 4rem); line-height: 1.1; letter-spacing: -.035em; }
  .page-health .auth-visual p { font-size: 1.125rem; line-height: 1.6; max-width: 25rem; padding: var(--space-4); border-radius: var(--radius-md); background: var(--on-accent); color: var(--on-primary); }
}
@media (prefers-reduced-motion: reduce) {
  .page-health .auth-layout *, .page-health .auth-theme * { transition: none; animation: none; }
}
@media (forced-colors: active) {
  .page-health .auth-remember input { appearance: auto; }
  .page-health .auth-remember input::after { content: none; }
}
