/* ============================================================
   SeizeControl — FND Connect Ecosystem Theme
   Clinical Information System — Design System v3.0
   ============================================================ */

/* ── Design Tokens ──────────────────────────────────────── */
:root {
  /* Core palette — SeizeControl / FND Connect brand */
  --nhs-navy:          #002b5f;
  --nhs-navy-dark:     #001a3b;
  --nhs-navy-mid:      #104778;
  --nhs-blue:          #c9005a;
  --nhs-blue-light:    #ed2b7b;
  --nhs-blue-pale:     #fff1f7;
  --nhs-blue-bg:       #fff7fb;

  /* Status colours */
  --nhs-green:         #2F8F72;
  --nhs-green-bg:      #E7F5EF;
  --nhs-amber:         #D98B3A;
  --nhs-amber-bg:      #FFF2E4;
  --nhs-red:           #D45A57;
  --nhs-red-bg:        #FBEAEA;

  /* Neutral surfaces */
  --bg:                #f7f9fc;    /* Page background */
  --surface:           #FFFFFF;    /* Card surfaces */
  --surface-alt:       #fbfcfe;    /* Alternate row / panel */
  --surface-muted:     #edf5fc;    /* Muted panels */

  /* Text */
  --ink:               #061b3d;    /* Primary text */
  --ink-soft:          #4c5b73;    /* Secondary text */
  --ink-faint:         #66758c;    /* Muted / label text */
  --ink-disabled:      #9aa7b8;

  /* Structural lines */
  --border:            #dfe6ef;    /* Default border */
  --border-strong:     #cfd9e8;    /* Stronger border */
  --border-focus:      #c9005a;    /* Focus ring colour */

  /* Rail (sidebar) */
  --rail-bg:           #001a3b;
  --rail-bg-hover:     #08254f;
  --rail-bg-active:    #002b5f;
  --rail-border:       rgba(255, 255, 255, 0.08);
  --rail-text:         rgba(245, 249, 255, 0.94);
  --rail-text-dim:     rgba(214, 226, 241, 0.68);

  /* Shadows */
  --shadow-xs:         0 1px 2px rgba(0, 0, 0, 0.06);
  --shadow-sm:         0 2px 6px rgba(0, 43, 95, 0.08), 0 1px 2px rgba(0, 43, 95, 0.04);
  --shadow-md:         0 4px 16px rgba(0, 43, 95, 0.10), 0 2px 6px rgba(0, 43, 95, 0.06);
  --shadow-lg:         0 8px 32px rgba(0, 43, 95, 0.12), 0 4px 12px rgba(0, 43, 95, 0.06);

  /* Radii — clinical / structured */
  --radius-xs:         4px;
  --radius-sm:         6px;
  --radius-md:         8px;
  --radius-lg:         12px;
  --radius-xl:         16px;

  /* Typography */
  --font-sans:         'Manrope', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --font-mono:         'IBM Plex Mono', 'Courier New', monospace;

  /* Shared component aliases */
  --care-bg:           var(--bg);
  --care-bg-strong:    var(--surface-muted);
  --care-surface:      var(--surface);
  --care-surface-alt:  var(--surface-alt);
  --care-surface-muted:var(--surface-muted);
  --care-ink:          var(--ink);
  --care-ink-soft:     var(--ink-soft);
  --care-ink-faint:    var(--ink-faint);
  --care-brand:        var(--nhs-blue);
  --care-brand-deep:   var(--nhs-navy);
  --care-brand-soft:   var(--nhs-blue-pale);
  --care-rail:         var(--rail-bg);
  --care-rail-deep:    var(--nhs-navy-dark);
  --care-border:       var(--border);
  --care-border-strong:var(--border-strong);
  --care-success-bg:   var(--nhs-green-bg);
  --care-success-text: var(--nhs-green);
  --care-warning-bg:   var(--nhs-amber-bg);
  --care-warning-text: var(--nhs-amber);
  --care-danger-bg:    var(--nhs-red-bg);
  --care-danger-text:  var(--nhs-red);
  --care-shadow-sm:    var(--shadow-sm);
  --care-shadow-md:    var(--shadow-md);
  --care-radius-sm:    var(--radius-md);
  --care-radius-md:    var(--radius-lg);
  --care-radius-lg:    var(--radius-xl);
  --care-mono:         var(--font-mono);
  --care-sans:         var(--font-sans);
}

/* ── Base Reset ─────────────────────────────────────────── */
*,
*::before,
*::after {
  box-sizing: border-box;
}

html,
body {
  overflow-x: clip;
  max-width: 100vw;
}

/* Prevent any child from causing horizontal scroll */
.care-shell,
.care-main,
.care-content {
  max-width: 100%;
  overflow-x: hidden;
}

body.app-body {
  min-height: 100vh;
  margin: 0;
  font-family: var(--font-sans);
  color: var(--ink);
  background: var(--bg) !important;
  line-height: 1.6;
}

body.app-authenticated {
  padding-bottom: env(safe-area-inset-bottom);
}

body.app-body::before {
  display: none !important;
}

/* ── Typography ─────────────────────────────────────────── */
h1, h2, h3, h4, h5, h6,
.page-title,
.section-heading {
  margin: 0;
  font-family: var(--font-sans);
  font-weight: 700;
  color: var(--ink);
  letter-spacing: 0;
}

p, span, small, label, li, td, th, input, select, textarea, button {
  font-family: var(--font-sans);
  letter-spacing: 0;
}

a {
  color: var(--nhs-blue);
  text-decoration: none;
  transition: color 0.15s;
}

a:hover {
  color: var(--nhs-navy);
}

/* ── Buttons ─────────────────────────────────────────────── */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  min-height: 44px;
  padding: 0 1.1rem;
  border-radius: var(--radius-md) !important;
  border-width: 1px;
  box-shadow: none;
  font-family: var(--font-sans);
  font-size: 0.9rem;
  font-weight: 600;
  letter-spacing: 0;
  line-height: 1.2;
  text-align: center;
  white-space: nowrap;
  transition: background-color 0.15s, border-color 0.15s, color 0.15s, box-shadow 0.15s, transform 0.12s;
  transform: none !important;
}

.btn:hover {
  transform: none !important;
}

.app-authenticated .btn {
  min-height: 44px;
  border-radius: var(--radius-md) !important;
}

.btn-primary {
  background: var(--nhs-blue);
  border-color: var(--nhs-navy);
  color: #fff;
  box-shadow: var(--shadow-xs);
}

.btn-primary:hover,
.btn-primary:focus {
  background: var(--nhs-navy);
  border-color: var(--nhs-navy-dark);
  color: #fff;
  box-shadow: var(--shadow-sm);
}

.btn-outline-primary {
  background: var(--surface);
  border-color: var(--border-strong);
  color: var(--nhs-navy);
}

.btn-outline-primary:hover,
.btn-outline-primary:focus {
  background: var(--nhs-blue-bg);
  border-color: var(--nhs-blue);
  color: var(--nhs-navy);
}

.btn-outline-secondary {
  background: var(--surface);
  border-color: var(--border);
  color: var(--ink-soft);
}

.btn-outline-secondary:hover {
  background: var(--surface-alt);
  border-color: var(--border-strong);
  color: var(--ink);
}

.btn-outline-danger {
  background: var(--surface);
  border-color: #e8b8b5;
  color: var(--nhs-red);
}

.btn-outline-danger:hover,
.btn-outline-danger:focus {
  background: var(--nhs-red-bg);
  border-color: var(--nhs-red);
  color: var(--nhs-red);
}

.btn-light {
  background: var(--surface);
  border-color: var(--border);
  color: var(--ink);
  box-shadow: var(--shadow-xs);
}

.btn-light:hover,
.btn-light:focus {
  background: var(--surface-alt);
  border-color: var(--border-strong);
  color: var(--ink);
}

.btn-success {
  background: var(--nhs-green);
  border-color: #005a29;
  color: #fff;
}

.btn-warning {
  background: var(--nhs-amber);
  border-color: #c97800;
  color: #fff;
}

/* ── Forms ──────────────────────────────────────────────── */
.form-label {
  margin-bottom: 0.45rem;
  color: var(--ink);
  font-size: 0.9rem;
  font-weight: 600;
}

.form-control,
.form-select,
.choices__inner {
  min-height: 44px !important;
  border: 1px solid var(--border) !important;
  border-radius: var(--radius-md) !important;
  background: var(--surface) !important;
  box-shadow: none !important;
  color: var(--ink) !important;
  font-size: 0.95rem !important;
  font-family: var(--font-sans);
  transition: border-color 0.15s, box-shadow 0.15s;
}

.form-control,
.form-select {
  padding: 0.72rem 0.85rem !important;
}

textarea.form-control {
  min-height: 120px !important;
}

.form-control:focus,
.form-select:focus,
.choices.is-focused .choices__inner {
  border-color: var(--nhs-blue) !important;
  box-shadow: 0 0 0 3px rgba(0, 94, 184, 0.15) !important;
}

.form-text,
.text-muted {
  color: var(--ink-faint) !important;
}

.choices {
  margin-bottom: 0;
}

.choices__inner {
  padding: 0.4rem 0.65rem !important;
}

.choices__item,
.choices__item--choice,
.choices__list--single,
.choices__input,
.choices__input--cloned {
  font-size: 0.95rem !important;
  font-family: var(--font-sans);
}

.choices__list--dropdown,
.choices__list[aria-expanded] {
  z-index: 1600 !important;
  border: 1px solid var(--border) !important;
  border-radius: var(--radius-md) !important;
  background: var(--surface) !important;
  box-shadow: var(--shadow-md) !important;
}

.choices__list--multiple .choices__item {
  margin: 3px 5px 3px 0 !important;
  padding: 0.3rem 0.55rem !important;
  border: 1px solid var(--nhs-blue-pale) !important;
  border-radius: var(--radius-sm) !important;
  background: var(--nhs-blue-bg) !important;
  color: var(--nhs-navy) !important;
  font-size: 0.84rem !important;
  font-weight: 600 !important;
}

.choices[data-type*='select-multiple'] .choices__button {
  border-left-color: rgba(0, 48, 135, 0.2) !important;
}

/* ── Alerts ─────────────────────────────────────────────── */
.alert {
  border-radius: var(--radius-md);
  border-width: 1px;
  padding: 1rem 1.1rem;
  font-size: 0.94rem;
}

.alert-warning {
  background: var(--nhs-amber-bg);
  border-color: #f5d280;
  color: #6b4300;
}

.alert-danger {
  background: var(--nhs-red-bg);
  border-color: #f0b0aa;
  color: #7a1510;
}

.alert-info {
  background: var(--nhs-blue-bg);
  border-color: var(--nhs-blue-pale);
  color: var(--nhs-navy);
}

.alert-success {
  background: var(--nhs-green-bg);
  border-color: #8fd4ae;
  color: #00451f;
}

/* ── Cards & Panels ─────────────────────────────────────── */
.care-panel,
.surface-card,
.warning-flag-card,
.auth-panel,
.auth-aside,
.feature-card,
.summary-card,
.subsection-card,
.workbench-panel,
.action-tile,
.trust-card {
  border: 1px solid var(--border) !important;
  border-radius: var(--radius-lg) !important;
  background: var(--surface) !important;
  box-shadow: var(--shadow-sm) !important;
}

.surface-card,
.summary-card,
.subsection-card,
.warning-flag-card,
.auth-panel,
.auth-aside {
  padding: 24px;
}

.surface-card.soft {
  background: var(--surface-alt) !important;
}

.surface-card.dark {
  background: var(--nhs-navy-dark) !important;
  border-color: #1a3a6a !important;
  color: #fff !important;
}

.surface-card.dark .section-heading,
.surface-card.dark .section-copy,
.surface-card.dark p,
.surface-card.dark span {
  color: inherit !important;
}

.care-panel {
  padding: 22px;
  min-width: 0;
  overflow: hidden;
}

.care-panel-head {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 20px;
}

.care-panel-head > div:first-child {
  min-width: 0;
  flex: 1 1 auto;
}

.care-panel-head.compact {
  margin-bottom: 14px;
}

/* ── Kicker / Eyebrow Labels ────────────────────────────── */
.care-panel-kicker,
.page-kicker,
.eyebrow,
.public-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  padding: 0.38rem 0.72rem;
  border-radius: var(--radius-sm);
  background: var(--nhs-blue-bg);
  border: 1px solid var(--nhs-blue-pale);
  color: var(--nhs-navy);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.care-panel-title,
.section-heading {
  margin-top: 0.5rem;
  font-size: clamp(1.25rem, 2vw, 1.75rem);
  line-height: 1.1;
}

.care-panel-copy,
.section-copy,
.page-subtitle,
.page-note,
.review-copy,
.consultation-bubble,
.auth-inline-link {
  color: var(--ink-soft) !important;
  line-height: 1.65;
}

.page-note {
  padding: 0.85rem 1rem;
  border-radius: var(--radius-md);
  background: var(--nhs-blue-bg);
  border: 1px solid var(--nhs-blue-pale);
  color: var(--nhs-navy) !important;
  font-size: 0.9rem;
}

.panel-link {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  min-height: 44px;
  padding: 0 1rem;
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  background: var(--surface);
  color: var(--nhs-navy);
  font-size: 0.88rem;
  font-weight: 600;
  white-space: nowrap;
  flex-shrink: 0;
}

.panel-link:hover {
  background: var(--nhs-blue-bg);
  border-color: var(--nhs-blue);
  color: var(--nhs-navy);
}

.page-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 20px;
}

.page-title {
  font-size: clamp(2rem, 4vw, 3.5rem);
  line-height: 1;
}

.page-subtitle {
  margin-top: 16px;
  max-width: 62ch;
  font-size: 1.02rem;
}

/* ── Status / context chips ─────────────────────────────── */
.care-muted {
  color: var(--ink-faint) !important;
}

.care-summary-card {
  display: grid;
  gap: 0.35rem;
  padding: 14px 16px;
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  background: var(--surface-alt);
}

.care-summary-label {
  color: var(--ink-faint);
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.care-chart-shell {
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  background: var(--surface);
  padding: 18px;
}

.care-chart-shell svg {
  display: block;
  width: 100%;
  height: auto;
}

.care-chart-axis {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 8px;
  margin-top: 10px;
  color: var(--ink-faint);
  font-size: 0.78rem;
  font-weight: 600;
  text-align: center;
}

/* ── KPI Strip ───────────────────────────────────────────── */
.care-inline-metrics {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  margin-top: 16px;
}

.care-inline-metrics article {
  display: grid;
  gap: 0.3rem;
  padding: 14px 16px;
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  background: var(--surface-alt);
}

.care-inline-metrics span {
  color: var(--ink-faint);
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.care-inline-metrics strong {
  font-size: 1rem;
  color: var(--ink);
}

/* ── Empty State ─────────────────────────────────────────── */
.care-empty-state {
  display: grid;
  justify-items: center;
  gap: 0.5rem;
  padding: 36px 20px;
  border: 1px dashed var(--border-strong);
  border-radius: var(--radius-lg);
  background: var(--surface-alt);
  text-align: center;
}

.care-empty-state i {
  font-size: 1.6rem;
  color: var(--nhs-blue);
  opacity: 0.7;
}

.care-empty-state h3 {
  font-size: 1.2rem;
}

.care-empty-state p {
  margin: 0;
  max-width: 44ch;
  color: var(--ink-soft);
  font-size: 0.9rem;
}

.empty-state {
  padding: 2rem 1rem;
  text-align: center;
  color: var(--ink-soft);
}

.empty-state i {
  display: inline-flex;
  width: 64px;
  height: 64px;
  align-items: center;
  justify-content: center;
  margin-bottom: 1rem;
  border-radius: var(--radius-lg);
  background: var(--nhs-blue-bg);
  color: var(--nhs-blue);
  font-size: 1.75rem;
}

.empty-state h3 {
  margin-bottom: 0.5rem;
  font-size: 1.3rem;
}

/* ── KPI Cards ───────────────────────────────────────────── */
.care-kpi-strip {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 12px;
}

.care-kpi-strip-forecast {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.care-kpi-card,
.metric-card {
  display: grid;
  gap: 0.3rem;
  min-width: 0;
  padding: 14px 16px;
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  background: var(--surface);
  box-shadow: var(--shadow-xs);
}

.care-kpi-label,
.metric-card-label {
  color: var(--ink-faint);
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.care-kpi-value,
.metric-card-value {
  font-size: clamp(1.65rem, 2vw, 2.35rem);
  line-height: 1;
  color: var(--ink);
  font-weight: 700;
  word-break: break-word;
  letter-spacing: 0;
}

.care-kpi-value-text {
  font-size: clamp(1rem, 1.6vw, 1.25rem);
  line-height: 1.25;
}

.care-kpi-note {
  color: var(--ink-soft);
  font-size: 0.85rem;
}

/* ── Layout Grids ────────────────────────────────────────── */
.care-layout-grid {
  display: grid;
  gap: 20px;
  align-items: start;
}

.care-layout-dashboard,
.care-layout-history,
.care-layout-forecast {
  grid-template-columns: minmax(0, 1.45fr) minmax(0, 352px);
}

.care-layout-dashboard-lower,
.care-layout-entry-intro {
  grid-template-columns: minmax(0, 1.15fr) minmax(0, 352px);
}

/* History lower: audit table takes full width — timeline stacks below */
.care-layout-history-lower {
  grid-template-columns: 1fr;
}

.care-main-stack {
  display: grid;
  gap: 20px;
  min-width: 0;
}

.care-side-stack {
  display: grid;
  gap: 20px;
  min-width: 0;
}

/* ── Priority / Timeline Lists ───────────────────────────── */
.care-priority-list {
  display: grid;
  gap: 10px;
}

.care-priority-item {
  display: grid;
  gap: 0.3rem;
  padding: 12px 14px;
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  background: var(--surface-alt);
}

.care-priority-item span {
  color: var(--ink-faint);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.care-priority-item strong {
  color: var(--ink);
  font-size: 0.95rem;
  line-height: 1.4;
}

.care-band-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.care-band-card {
  display: grid;
  gap: 0.2rem;
  padding: 14px 16px;
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  background: var(--surface-alt);
}

.care-band-card span {
  color: var(--ink-soft);
  font-size: 0.88rem;
  font-weight: 600;
}

.care-band-card strong {
  color: var(--ink);
  font-size: 1.5rem;
  line-height: 1;
  letter-spacing: 0;
}

.care-band-card small {
  color: var(--ink-faint);
  font-size: 0.78rem;
}

/* ── Context Chips ───────────────────────────────────────── */
.context-chip-row {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
}

.context-chip {
  display: inline-flex;
  align-items: center;
  min-height: 30px;
  padding: 0 0.65rem;
  border: 1px solid var(--nhs-blue-pale);
  border-radius: var(--radius-sm);
  background: var(--nhs-blue-bg);
  color: var(--nhs-navy);
  font-size: 0.82rem;
  font-weight: 600;
}

.context-chip-muted {
  background: var(--surface-alt);
  border-color: var(--border);
  color: var(--ink-soft);
}

.severity-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 36px;
  min-height: 36px;
  padding: 0 0.5rem;
  border-radius: var(--radius-md);
  background: var(--nhs-blue-bg);
  border: 1px solid var(--nhs-blue-pale);
  color: var(--nhs-navy);
  font-weight: 700;
  font-size: 0.88rem;
}

/* ── Data Table ──────────────────────────────────────────── */
.care-table-shell {
  overflow: auto;
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  background: var(--surface);
}

.care-table {
  margin: 0;
  font-size: 0.9rem;
}

.care-table thead th {
  padding: 12px 16px;
  border-bottom: 2px solid var(--border);
  color: var(--ink-faint);
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  white-space: nowrap;
  background: var(--surface-alt);
}

.care-table tbody td {
  padding: 13px 16px;
  border-bottom: 1px solid #edf2f6;
  color: var(--ink);
  vertical-align: middle;
}

.care-table tbody tr:last-child td {
  border-bottom: 0;
}

.care-table tbody tr:hover td {
  background: var(--surface-alt);
}

.table-responsive {
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  background: var(--surface);
}

.table {
  font-size: 0.9rem;
  color: var(--ink);
  margin-bottom: 0;
}

.table thead th {
  padding: 12px 16px;
  border-bottom: 2px solid var(--border);
  background: var(--surface-alt);
  color: var(--ink-faint);
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  white-space: nowrap;
}

.table tbody td {
  padding: 12px 16px;
  border-bottom: 1px solid #edf2f6;
  vertical-align: middle;
}

.table-hover tbody tr:hover td {
  background: var(--surface-alt);
}

.table-action-row {
  display: inline-flex;
  gap: 8px;
  justify-content: flex-end;
}

.table-action-btn {
  min-height: 38px;
  padding: 0 0.75rem;
  font-size: 0.84rem;
}

/* ── Badges ──────────────────────────────────────────────── */
.badge {
  padding: 0.38rem 0.65rem;
  border-radius: var(--radius-sm);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.02em;
}

.soft-badge,
.table-tag {
  display: inline-flex;
  align-items: center;
  padding: 0.35rem 0.65rem;
  border-radius: var(--radius-sm);
  background: var(--nhs-blue-bg);
  border: 1px solid var(--nhs-blue-pale);
  color: var(--nhs-navy);
  font-size: 0.8rem;
  font-weight: 600;
}

/* ── Timeline ────────────────────────────────────────────── */
.care-timeline {
  display: grid;
  gap: 12px;
}

.care-timeline-item {
  position: relative;
  display: grid;
  grid-template-columns: 20px minmax(0, 1fr);
  gap: 14px;
  align-items: start;
}

.care-timeline-line {
  position: relative;
  width: 20px;
  min-height: 100%;
}

.care-timeline-line::before,
.care-timeline-line::after {
  content: '';
  position: absolute;
  left: 9px;
}

.care-timeline-line::before {
  top: 0;
  bottom: -12px;
  width: 2px;
  background: var(--border);
}

.care-timeline-line::after {
  top: 7px;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: var(--nhs-blue);
  transform: translateX(-4px);
}

.care-timeline-item:last-child .care-timeline-line::before {
  bottom: 20px;
}

.care-timeline-body {
  display: grid;
  gap: 0.35rem;
  padding: 12px 14px;
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  background: var(--surface-alt);
}

.care-timeline-head {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 8px;
}

.care-timeline-head strong {
  font-size: 0.97rem;
}

.care-timeline-head span,
.care-timeline-meta span {
  color: var(--ink-soft);
  font-size: 0.86rem;
}

.care-timeline-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 16px;
}

/* ── Modal ───────────────────────────────────────────────── */
.modal-content,
.care-modal-content {
  border: 1px solid var(--border);
  border-radius: var(--radius-xl);
  box-shadow: var(--shadow-lg);
}

.modal-header,
.care-modal-header {
  padding: 20px 24px;
  border-bottom: 1px solid var(--border);
}

.modal-footer,
.care-modal-footer {
  padding: 16px 24px;
  border-top: 1px solid var(--border);
}

.modal-body,
.care-modal-body {
  padding: 20px 24px;
}

/* ── PUBLIC SHELL (unauthenticated) ─────────────────────── */
.public-shell {
  position: sticky;
  top: 0;
  z-index: 1030;
  background: var(--nhs-navy);
  border-bottom: 3px solid var(--nhs-blue-light);
}

.public-shell-inner {
  max-width: 1320px;
  margin: 0 auto;
  padding: 0 24px;
}

.public-nav {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  height: 68px;
}

.public-brand {
  display: inline-flex;
  align-items: center;
  gap: 16px;
  min-width: 0;
}

.public-brand-wordmark {
  width: 176px;
  max-width: 100%;
  height: auto;
  display: block;
}

.public-brand-tagline {
  color: rgba(230, 240, 251, 0.78);
  font-size: 0.82rem;
  font-weight: 500;
  letter-spacing: 0.01em;
  border-left: 1px solid rgba(255, 255, 255, 0.25);
  padding-left: 16px;
}

.public-nav-toggle {
  color: #fff !important;
}

.public-nav-actions {
  display: flex;
  align-items: center;
  gap: 8px;
}

.public-nav-link {
  display: inline-flex;
  align-items: center;
  min-height: 40px;
  padding: 0 0.85rem;
  border: 1px solid transparent;
  border-radius: var(--radius-md);
  color: rgba(220, 235, 248, 0.88);
  font-size: 0.9rem;
  font-weight: 500;
  transition: background 0.15s, color 0.15s;
}

.public-nav-link:hover,
.public-nav-link.is-active {
  background: rgba(255, 255, 255, 0.1);
  border-color: rgba(255, 255, 255, 0.15);
  color: #fff;
}

.public-content {
  max-width: 1320px;
  margin: 0 auto;
  display: grid;
  gap: 24px;
  padding: 32px 24px 72px;
}

.public-content-inner {
  max-width: 1320px;
  margin: 0 auto;
  padding: 0 24px;
}

/* ── Public Hero ─────────────────────────────────────────── */
.public-hero {
  padding: 8px 0 0;
}

.public-hero-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr);
  gap: 24px;
  align-items: stretch;
}

.public-hero-copy,
.public-display-board,
.public-feature-card,
.public-proof-card {
  border: 1px solid var(--border);
  border-radius: var(--radius-xl);
  background: var(--surface);
  box-shadow: var(--shadow-sm);
}

.public-hero-copy {
  padding: 36px;
}

.public-hero-copy h1 {
  margin-top: 16px;
  max-width: 12ch;
  font-size: clamp(2.4rem, 4.5vw, 3.8rem);
  line-height: 0.96;
  color: var(--nhs-navy);
}

.public-hero-copy p {
  margin-top: 18px;
  max-width: 56ch;
  color: var(--ink-soft);
  font-size: 1.02rem;
  line-height: 1.7;
}

.public-value-strip {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  margin-top: 24px;
}

.public-value-card {
  display: grid;
  gap: 0.35rem;
  padding: 14px 16px;
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  background: var(--surface-alt);
}

.public-value-card strong {
  font-size: 0.97rem;
  color: var(--ink);
}

.public-value-card span {
  color: var(--ink-soft);
  font-size: 0.86rem;
  line-height: 1.5;
}

.public-ecosystem-band {
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(320px, 0.92fr);
  gap: 20px;
  align-items: stretch;
  border: 1px solid var(--border);
  border-radius: var(--radius-xl);
  background: linear-gradient(135deg, rgba(255, 255, 255, 0.96), rgba(237, 249, 248, 0.96));
  box-shadow: var(--shadow-sm);
  padding: 28px;
}

.public-ecosystem-copy h2 {
  margin-top: 14px;
  max-width: 18ch;
  color: var(--nhs-navy);
  font-size: clamp(1.65rem, 3vw, 2.5rem);
  line-height: 1.05;
}

.public-ecosystem-copy p {
  max-width: 62ch;
  margin: 16px 0 0;
  color: var(--ink-soft);
  font-size: 0.98rem;
  line-height: 1.68;
}

.public-ecosystem-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 20px;
}

.public-ecosystem-roles {
  display: grid;
  gap: 12px;
}

.public-ecosystem-roles article {
  display: grid;
  gap: 0.4rem;
  padding: 18px;
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  background: rgba(255, 255, 255, 0.84);
}

.public-ecosystem-roles span {
  color: var(--nhs-navy);
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.public-ecosystem-roles strong {
  color: var(--ink);
  font-size: 1.05rem;
  line-height: 1.25;
}

.public-ecosystem-roles p {
  margin: 0;
  color: var(--ink-soft);
  font-size: 0.92rem;
  line-height: 1.55;
}

.public-display-board {
  padding: 28px;
}

.public-display-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding-bottom: 16px;
}

.public-display-header span {
  color: var(--ink-faint);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.public-display-header strong {
  display: block;
  margin-top: 0.3rem;
  font-size: 1.2rem;
}

.public-display-status {
  display: inline-flex;
  align-items: center;
  min-height: 36px;
  padding: 0 0.8rem;
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  background: var(--nhs-green-bg);
  border-color: #8fd4ae;
  color: var(--nhs-green);
  font-size: 0.82rem;
  font-weight: 700;
}

.public-display-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(220px, 0.8fr);
  gap: 14px;
}

.public-display-panel {
  display: grid;
  gap: 0.75rem;
  padding: 16px;
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  background: var(--surface-alt);
}

.public-display-panel-wide {
  grid-row: span 2;
}

.public-display-panel h2 {
  font-size: 1.15rem;
}

.public-display-panel svg {
  width: 100%;
  height: auto;
}

.public-signal-list,
.public-record-mini {
  display: grid;
  gap: 8px;
}

.public-signal-list {
  padding: 0;
  margin: 0;
  list-style: none;
}

.public-signal-list li,
.public-record-mini div {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 10px 12px;
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  background: var(--surface);
}

.public-signal-list span,
.public-record-mini span {
  color: var(--ink-soft);
  font-size: 0.88rem;
}

.public-signal-list strong,
.public-record-mini strong {
  color: var(--ink);
  font-size: 0.92rem;
  font-weight: 600;
}

.public-section-grid,
.public-proof-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
}

.public-feature-card,
.public-proof-card {
  padding: 24px;
}

.public-feature-card h2,
.public-proof-value {
  margin-top: 0.75rem;
  font-size: 1.35rem;
  line-height: 1.15;
  color: var(--nhs-navy);
}

.public-feature-card p,
.public-proof-card p {
  margin-top: 12px;
  color: var(--ink-soft);
  line-height: 1.65;
  font-size: 0.94rem;
}

/* ── Public Footer ───────────────────────────────────────── */
.public-footer {
  background: linear-gradient(180deg, var(--nhs-navy) 0%, var(--nhs-navy-dark) 100%);
  padding: 48px 24px 32px;
}

.public-footer-inner {
  max-width: 1320px;
  margin: 0 auto;
}

.public-footer-wordmark {
  width: 168px;
  height: auto;
  display: block;
}

.public-footer-top {
  display: grid;
  grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr);
  gap: 32px;
}

.public-footer-brand p {
  margin: 14px 0 0;
  max-width: 42ch;
  color: rgba(220, 243, 241, 0.74);
  line-height: 1.65;
  font-size: 0.92rem;
}

.public-footer-links {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
}

.public-footer-links div {
  display: grid;
  gap: 10px;
}

.public-footer-label {
  color: rgba(189, 224, 222, 0.62);
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.public-footer-links a {
  color: rgba(229, 247, 246, 0.86);
  font-size: 0.9rem;
  font-weight: 500;
  transition: color 0.15s;
}

.public-footer-links a:hover {
  color: #fff;
}

.public-footer-base {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 12px;
  margin-top: 32px;
  padding-top: 20px;
  border-top: 1px solid rgba(255, 255, 255, 0.1);
  color: rgba(230, 240, 251, 0.72);
  font-size: 0.84rem;
}

/* ── AUTHENTICATED SHELL ────────────────────────────────── */

/* ── Care Shell Layout ───────────────────────────────────── */
.care-shell {
  display: grid;
  grid-template-columns: 268px minmax(0, 1fr);
  min-height: 100vh;
}

/* ── Sidebar Rail ────────────────────────────────────────── */
.care-rail {
  position: sticky;
  top: 0;
  align-self: start;
  display: flex;
  flex-direction: column;
  gap: 0;
  min-height: 100vh;
  height: auto;
  padding: 0;
  background: var(--rail-bg);
  border-right: 1px solid rgba(255, 255, 255, 0.06);
  overflow: hidden;
}

/* Brand accent stripe at top of rail */
.care-rail::before {
  content: '';
  display: block;
  height: 4px;
  background: var(--nhs-blue-light);
  flex-shrink: 0;
}

/* ── Brand Area ──────────────────────────────────────────── */
.care-brand {
  display: flex;
  flex-direction: column;
  gap: 0;
  padding: 22px 20px 18px;
  border-bottom: 1px solid var(--rail-border);
  color: #fff;
  text-decoration: none;
}

.care-brand-wordmark {
  width: 160px;
  max-width: 100%;
  height: auto;
  filter: none;
}

.care-brand-copy {
  display: flex;
  flex-direction: column;
  gap: 1px;
  margin-top: 10px;
}

.care-brand-copy strong {
  color: #fff;
  font-size: 0.9rem;
  font-weight: 700;
  letter-spacing: 0.01em;
}

.care-brand-copy span {
  color: rgba(180, 208, 232, 0.65);
  font-size: 0.78rem;
  font-weight: 400;
  letter-spacing: 0.01em;
}

/* ── Rail Navigation ─────────────────────────────────────── */
.care-rail-section {
  display: flex;
  flex-direction: column;
  gap: 3px;
  padding: 18px 12px 10px;
}

.care-rail-label {
  padding: 0 8px;
  margin-bottom: 4px;
  color: rgba(160, 192, 220, 0.5);
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.care-nav {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.care-nav-link {
  display: grid;
  grid-template-columns: 36px minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
  min-height: 46px;
  padding: 0 10px;
  border: 1px solid transparent;
  border-radius: var(--radius-md);
  color: var(--rail-text);
  font-size: 0.88rem;
  font-weight: 500;
  transition: background 0.12s, color 0.12s, border-color 0.12s;
}

.care-nav-link:hover {
  background: var(--rail-bg-hover);
  border-color: rgba(255, 255, 255, 0.06);
  color: #fff;
}

.care-nav-link.is-active {
  background: var(--nhs-blue);
  border-color: rgba(201, 0, 90, 0.25);
  color: #fff;
  font-weight: 600;
}

.care-nav-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: var(--radius-sm);
  background: rgba(255, 255, 255, 0.06);
  font-size: 1rem;
  flex-shrink: 0;
}

.care-nav-link.is-active .care-nav-icon {
  background: rgba(255, 255, 255, 0.15);
}

.care-nav-copy {
  min-width: 0;
  line-height: 1.3;
}

.care-nav-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--nhs-blue-light);
  box-shadow: 0 0 0 3px rgba(201, 0, 90, 0.2);
  flex-shrink: 0;
}

/* ── Rail Info Card ──────────────────────────────────────── */
.care-rail-card {
  margin: 0 12px;
  display: flex;
  flex-direction: column;
  gap: 5px;
  padding: 14px;
  border: 1px solid var(--rail-border);
  border-radius: var(--radius-md);
  background: rgba(255, 255, 255, 0.04);
  color: rgba(200, 220, 236, 0.88);
}

.care-rail-card-label {
  color: rgba(160, 192, 220, 0.5);
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.care-rail-card strong {
  color: #fff;
  font-size: 0.88rem;
}

.care-rail-card p {
  margin: 0;
  color: rgba(185, 208, 228, 0.72);
  font-size: 0.82rem;
  line-height: 1.5;
}

/* ── Rail Footer ─────────────────────────────────────────── */
.care-rail-footer {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 12px 12px 20px;
  margin-top: auto;
  border-top: 1px solid var(--rail-border);
}

.care-patient-chip {
  display: grid;
  grid-template-columns: 40px minmax(0, 1fr);
  gap: 10px;
  align-items: center;
  padding: 12px;
  border: 1px solid var(--rail-border);
  border-radius: var(--radius-md);
  background: rgba(255, 255, 255, 0.04);
}

.care-patient-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: var(--radius-md);
  background: rgba(255, 255, 255, 0.08);
  color: #fff;
  font-size: 1.25rem;
  flex-shrink: 0;
}

.care-patient-chip strong {
  display: block;
  color: #fff;
  font-size: 0.88rem;
  font-weight: 600;
  line-height: 1.2;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.care-patient-chip span:last-child {
  display: block;
  margin-top: 2px;
  color: rgba(175, 205, 228, 0.65);
  font-size: 0.76rem;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.care-signout {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  min-height: 42px;
  padding: 0 1rem;
  border: 1px solid rgba(220, 100, 100, 0.2);
  border-radius: var(--radius-md);
  background: rgba(213, 40, 27, 0.08);
  color: rgba(255, 180, 175, 0.9);
  font-size: 0.88rem;
  font-weight: 600;
  transition: background 0.15s, color 0.15s;
}

.care-signout:hover {
  background: rgba(213, 40, 27, 0.14);
  color: #ffd2d0;
}

/* ── Main Content Area ───────────────────────────────────── */
.care-main {
  min-width: 0;
  padding: 0 28px 40px;
  background: var(--bg);
}

/* ── Topbar / Page Header ────────────────────────────────── */
.care-header {
  position: sticky;
  top: 0;
  z-index: 1020;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  padding: 14px 0;
  background: var(--bg);
  border-bottom: 1px solid var(--border);
  margin-bottom: 24px;
}

/* Brand accent stripe below header */
.care-header::after {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  bottom: -3px;
  height: 2px;
  background: linear-gradient(90deg, var(--nhs-blue) 0%, var(--nhs-blue-light) 100%);
  opacity: 0.5;
}

.care-header-main {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  flex: 1 1 0%;
  min-width: 0;
}

.care-header-bar {
  display: none; /* shown via d-lg-none utility on mobile */
}

.care-menu-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 42px;
  width: 42px;
  padding: 0;
  border: 1px solid var(--nhs-navy);
  border-radius: var(--radius-md);
  background: var(--nhs-navy);
  color: #fff;
  font-size: 1.1rem;
  flex-shrink: 0;
}

.care-mobile-brand {
  display: inline-flex;
  align-items: center;
  min-height: 42px;
  padding: 0 14px;
  border: 1px solid var(--nhs-navy);
  border-radius: var(--radius-md);
  background: var(--nhs-navy);
}

.care-mobile-wordmark {
  width: 130px;
  height: auto;
  filter: brightness(10);
}

.care-header-copy {
  min-width: 0;
  padding-top: 2px;
}

.care-header-label {
  color: var(--ink-faint);
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.care-header-title {
  display: block;
  margin-top: 3px;
  color: var(--ink);
  font-size: 1.45rem;
  font-weight: 700;
  letter-spacing: 0;
  line-height: 1.1;
}

.care-header-summary {
  margin: 6px 0 0;
  max-width: 64ch;
  color: var(--ink-soft);
  font-size: 0.88rem;
  line-height: 1.55;
}

.care-header-actions {
  display: grid;
  grid-template-columns: repeat(2, minmax(156px, max-content));
  align-items: stretch;
  justify-content: end;
  gap: 10px;
  flex-shrink: 0;
}

.care-header-meta,
.care-header-chip {
  display: grid;
  align-content: center;
  gap: 1px;
  min-width: 0;
  min-height: 48px;
  padding: 10px 14px;
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  background: var(--surface);
}

.care-header-meta-label {
  color: var(--ink-faint);
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.care-header-meta strong {
  color: var(--ink);
  font-size: 0.9rem;
  font-weight: 600;
}

.care-header-user {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  min-height: 48px;
  padding: 0 1rem;
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  background: var(--surface);
  color: var(--ink-soft);
  font-size: 0.88rem;
  font-weight: 500;
  white-space: nowrap;
}

.care-action-btn,
.care-action-btn-primary,
.care-action-btn-secondary {
  min-width: 156px;
}

.care-header-meta,
.care-action-btn-secondary {
  grid-column: 1;
}

.care-action-btn-primary,
.care-header-user {
  grid-column: 2;
}

/* ── Page Content ────────────────────────────────────────── */
.care-content {
  display: grid;
  gap: 24px;
}

/* ── Page Hero Strip ─────────────────────────────────────── */
.page-hero {
  padding: 22px 24px;
  border: 1px solid var(--border);
  border-radius: var(--radius-xl);
  background: var(--surface);
  box-shadow: var(--shadow-sm);
  border-left: 4px solid var(--nhs-blue);
}

.page-hero::before,
.page-hero::after {
  display: none !important;
}

.page-hero .page-kicker {
  background: var(--nhs-blue-bg);
  border-color: var(--nhs-blue-pale);
  color: var(--nhs-navy);
}

.page-hero .page-title {
  font-size: clamp(1.5rem, 2.5vw, 2.1rem);
  color: var(--ink);
}

.page-hero .page-subtitle {
  font-size: 0.94rem;
  margin-top: 6px;
}

/* ── Dashboard / Content Grids ───────────────────────────── */
.dashboard-grid,
.content-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) 352px;
  gap: 20px;
  align-items: start;
}

.section-split {
  display: grid;
  gap: 20px;
}

/* ── Action Tiles ────────────────────────────────────────── */
.action-tile {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  padding: 18px;
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  background: var(--surface);
  box-shadow: var(--shadow-sm);
  text-decoration: none;
  color: var(--ink);
  transition: border-color 0.15s, box-shadow 0.15s;
}

.action-tile:hover {
  border-color: var(--nhs-blue);
  box-shadow: var(--shadow-md);
  color: var(--ink);
  transform: none;
}

.action-tile i {
  display: inline-flex;
  width: 42px;
  height: 42px;
  align-items: center;
  justify-content: center;
  border-radius: var(--radius-md);
  background: var(--nhs-blue-bg);
  color: var(--nhs-blue);
  font-size: 1rem;
}

.action-tile .tile-title {
  font-weight: 700;
  color: var(--ink);
  font-size: 0.95rem;
}

.action-tile .tile-copy {
  color: var(--ink-soft);
  font-size: 0.86rem;
  line-height: 1.5;
}

/* ── Feature / Info Cards ────────────────────────────────── */
.feature-card,
.info-card {
  padding: 20px;
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  background: var(--surface);
  box-shadow: var(--shadow-sm);
  transition: border-color 0.15s, box-shadow 0.15s;
}

.feature-card:hover,
.info-card:hover {
  border-color: var(--nhs-blue);
  box-shadow: var(--shadow-md);
  transform: none;
}

.feature-card i,
.info-card i {
  display: inline-flex;
  width: 44px;
  height: 44px;
  align-items: center;
  justify-content: center;
  border-radius: var(--radius-md);
  background: var(--nhs-blue-bg);
  color: var(--nhs-blue);
}

/* ── Hero Landing (public pages) ─────────────────────────── */
.hero-landing,
.hero-landing .page-title,
.hero-landing h1,
.hero-landing h2 {
  color: var(--ink);
}

.hero-landing .page-kicker {
  background: var(--nhs-blue-bg);
  border-color: var(--nhs-blue-pale);
  color: var(--nhs-navy);
}

/* ── Auth Layout ─────────────────────────────────────────── */
.auth-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) 380px;
  gap: 24px;
  align-items: stretch;
}

.auth-panel {
  border-left: 4px solid var(--nhs-blue) !important;
}

.auth-panel .page-kicker {
  background: var(--nhs-blue-bg);
  border-color: var(--nhs-blue-pale);
  color: var(--nhs-navy);
}

.auth-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 56px;
  height: 56px;
  border-radius: var(--radius-lg);
  background: var(--nhs-blue-bg);
  border: 1px solid var(--nhs-blue-pale);
  color: var(--nhs-blue);
  font-size: 1.6rem;
}

.auth-highlight-list {
  margin-top: 16px;
}

.auth-highlight-list li {
  border-bottom: 1px solid var(--border);
  padding: 0.8rem 0;
}

.auth-highlight-list li:last-child {
  border-bottom: none;
}

.auth-inline-link a {
  font-weight: 600;
  color: var(--nhs-blue);
}

/* ── Information Grid ────────────────────────────────────── */
.info-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

/* ── Subsection Cards ────────────────────────────────────── */
.subsection-card {
  padding: 18px;
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  background: var(--surface);
  box-shadow: var(--shadow-sm);
}

.subsection-title {
  margin: 0 0 5px;
  font-size: 1.05rem;
  color: var(--ink);
}

.subsection-copy {
  margin: 0 0 14px;
  color: var(--ink-soft);
  font-size: 0.9rem;
}

/* ── Warning Flag Cards ──────────────────────────────────── */
.warning-flag-card {
  position: relative;
  padding-left: 20px !important;
  border-left: 4px solid var(--nhs-amber) !important;
}

.warning-flag-card::before {
  display: none;
}

/* ── Footer ──────────────────────────────────────────────── */
.care-footer {
  padding: 20px 0 0;
  margin-top: 12px;
  border-top: 1px solid var(--border);
}

.care-footer-copy {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 10px;
  color: var(--ink-faint);
  font-size: 0.82rem;
}

/* ── Mobile Off-canvas ───────────────────────────────────── */
.care-mobile-offcanvas {
  background: var(--rail-bg);
}

.care-offcanvas-label {
  color: rgba(160, 192, 220, 0.5);
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.care-offcanvas-title {
  margin-top: 6px;
  color: #fff;
  font-size: 1.35rem;
}

.care-mobile-nav-group {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-top: 8px;
}

/* ── Mobile Dock ─────────────────────────────────────────── */
.care-mobile-dock {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 1040;
  display: none;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 0;
  padding: 0 0 env(safe-area-inset-bottom);
  border-top: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 0;
  background: var(--rail-bg);
  backdrop-filter: blur(20px);
  box-shadow: 0 -4px 20px rgba(0, 0, 0, 0.15);
}

.care-mobile-dock-link {
  display: grid;
  justify-items: center;
  gap: 2px;
  padding: 10px 4px 8px;
  color: rgba(245, 249, 255, 0.78);
  font-size: 0.62rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  transition: color 0.15s;
}

.care-mobile-dock-link i {
  font-size: 1.15rem;
}

.care-mobile-dock-link.is-active {
  color: #fff;
  background: transparent;
  position: relative;
}

.care-mobile-dock-link.is-active::before {
  content: '';
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 24px;
  height: 2px;
  background: var(--nhs-blue-light);
  border-radius: 0 0 2px 2px;
}

/* ── Tag-Pill Multiselect ────────────────────────────────── */
.tag-pill-group {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  padding: 2px 0 4px;
}

.tag-pill {
  display: inline-flex;
  align-items: center;
  padding: 7px 15px;
  border-radius: 24px;
  border: 1.5px solid var(--border-strong, #c8d6e0);
  background: var(--surface);
  color: var(--ink-soft);
  font-family: var(--font-sans);
  font-size: 0.875rem;
  font-weight: 500;
  line-height: 1;
  cursor: pointer;
  transition: background 0.12s ease, border-color 0.12s ease, color 0.12s ease;
  -webkit-tap-highlight-color: transparent;
  user-select: none;
  touch-action: manipulation;
}

.tag-pill:hover {
  border-color: var(--nhs-blue, #005EB8);
  color: var(--nhs-blue, #005EB8);
  background: var(--nhs-blue-bg, #e8f0f8);
}

.tag-pill.is-selected {
  background: var(--nhs-navy, #003087);
  border-color: var(--nhs-navy, #003087);
  color: #ffffff;
  font-weight: 600;
}

.tag-pill.is-selected:hover {
  background: var(--nhs-blue, #005EB8);
  border-color: var(--nhs-blue, #005EB8);
}

/* ── Menstrual phase read-only input colours ─────────────── */
.care-phase-input { font-weight: 600; }
.care-phase-menstruation { color: #D5281B; border-color: #f0b0aa; background: #fde9e7; }
.care-phase-follicular   { color: #007F3B; border-color: #8fd4ae; background: #e8f5ee; }
.care-phase-ovulation    { color: #4F46E5; border-color: #C7D2FE; background: #EEF2FF; }
.care-phase-luteal       { color: #ED8B00; border-color: #f5d28a; background: #fef4e0; }

/* ── Intake / Form Shell ─────────────────────────────────── */
.care-intro-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.care-intro-card {
  display: grid;
  gap: 0.35rem;
  padding: 14px 16px;
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  background: var(--surface-alt);
}

.care-intro-card span {
  color: var(--ink-faint);
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.care-intro-card strong {
  font-size: 0.97rem;
  color: var(--ink);
}

.care-intro-card p {
  margin: 0;
  color: var(--ink-soft);
  font-size: 0.88rem;
  line-height: 1.55;
}

.care-entry-section {
  padding-bottom: 10px;
}

.care-intake-shell {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) 352px;
  gap: 20px;
  align-items: start;
}

.care-intake-form {
  display: grid;
  gap: 16px;
}

.care-form-section {
  padding: 22px;
  border: 1px solid var(--border);
  border-radius: var(--radius-xl);
  background: var(--surface);
  box-shadow: var(--shadow-sm);
}

.care-form-section-head {
  display: grid;
  grid-template-columns: 56px minmax(0, 1fr);
  gap: 14px;
  align-items: start;
  margin-bottom: 18px;
}

.care-form-step {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  border-radius: var(--radius-md);
  background: var(--nhs-navy);
  color: #fff;
  font-family: var(--font-mono);
  font-size: 0.85rem;
  font-weight: 600;
  letter-spacing: 0.06em;
}

.care-form-section-head h3 {
  margin: 0;
  font-size: 1.15rem;
}

.care-form-section-head p {
  margin: 5px 0 0;
  color: var(--ink-soft);
  font-size: 0.88rem;
  line-height: 1.55;
}

.care-form-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 10px;
}

.care-intake-sidebar {
  display: grid;
  gap: 18px;
}

.care-score-card {
  display: grid;
  gap: 0.45rem;
  justify-items: start;
  padding: 18px;
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  background: var(--surface);
  box-shadow: var(--shadow-sm);
}

.care-score-card strong {
  font-size: 2.8rem;
  line-height: 1;
  color: var(--ink);
  letter-spacing: 0;
}

.care-score-card span {
  color: var(--ink-soft);
  font-size: 0.88rem;
}

.care-support-fields {
  display: grid;
  gap: 12px;
}

.care-checklist {
  display: grid;
  gap: 10px;
}

.care-checklist article {
  display: grid;
  gap: 0.22rem;
  padding: 12px 14px;
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  background: var(--surface-alt);
}

.care-checklist strong {
  font-size: 0.94rem;
}

.care-checklist span {
  color: var(--ink-soft);
  font-size: 0.86rem;
  line-height: 1.5;
}

/* ── Forecast Board ──────────────────────────────────────── */
.forecast-queue-shell {
  margin-bottom: 18px;
  padding: 18px;
  border: 1px solid var(--border);
  border-radius: var(--radius-xl);
  background: var(--surface);
  box-shadow: var(--shadow-sm);
  border-top: 3px solid var(--nhs-blue);
}

.forecast-queue-head {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 14px;
}

.forecast-queue-head p {
  margin: 0;
  color: var(--ink-soft);
  font-size: 0.88rem;
}

/* ── Priority Queue (list layout) ────────────────────────── */
.forecast-priority-queue {
  display: grid;
  gap: 6px;
}

.forecast-audit-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.forecast-audit-card {
  display: grid;
  gap: 4px;
  padding: 12px 14px;
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  background: var(--surface-alt);
}

.forecast-audit-card strong {
  font-size: 1.2rem;
  line-height: 1;
}

.forecast-audit-card span:last-child,
.forecast-audit-row span,
.forecast-medication-row span {
  color: var(--ink-soft);
  font-size: 0.8rem;
}

.forecast-audit-label {
  color: var(--ink-faint);
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.forecast-audit-note {
  grid-column: 1 / -1;
  padding: 10px 12px;
  border-radius: var(--radius-md);
  background: rgba(16, 94, 126, 0.06);
  color: var(--ink-soft);
  font-size: 0.8rem;
  line-height: 1.45;
}

.forecast-audit-list,
.forecast-medication-list-inner {
  display: grid;
  gap: 8px;
}

.forecast-medication-list {
  display: grid;
  gap: 10px;
}

.forecast-audit-row,
.forecast-medication-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 11px 12px;
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  background: var(--surface);
}

.forecast-audit-row > div:first-child,
.forecast-medication-row {
  min-width: 0;
}

.forecast-audit-row strong,
.forecast-medication-row strong {
  display: block;
  color: var(--ink);
  font-size: 0.88rem;
}

.forecast-audit-row.tp {
  border-left: 4px solid var(--nhs-green);
}

.forecast-audit-row.fp,
.forecast-audit-row.fn {
  border-left: 4px solid var(--nhs-amber);
}

.forecast-audit-row.tn {
  border-left: 4px solid var(--nhs-blue);
}

.forecast-audit-score {
  color: var(--ink);
  font-size: 1.15rem;
  font-weight: 700;
  letter-spacing: 0;
}

.forecast-audit-score-wrap {
  display: grid;
  justify-items: end;
  gap: 2px;
  flex: 0 0 auto;
}

.forecast-audit-score-label {
  color: var(--ink-faint);
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.forecast-priority-row {
  display: grid;
  grid-template-columns: 72px minmax(0, 1fr) 56px;
  align-items: center;
  gap: 12px;
  width: 100%;
  padding: 12px 16px;
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  background: var(--surface);
  color: var(--ink);
  text-align: left;
  transition: border-color 0.15s, box-shadow 0.15s;
}

.forecast-priority-row:hover {
  border-color: var(--nhs-blue);
  box-shadow: var(--shadow-sm);
}

.forecast-priority-row.is-low {
  border-left: 4px solid var(--nhs-green);
}

.forecast-priority-row.is-medium {
  border-left: 4px solid var(--nhs-amber);
}

.forecast-priority-row.is-high {
  border-left: 4px solid var(--nhs-red);
}

.forecast-priority-rank {
  color: var(--ink-faint);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.forecast-priority-when {
  display: grid;
  gap: 1px;
  min-width: 0;
}

.forecast-priority-when strong {
  font-size: 0.9rem;
  line-height: 1.3;
}

.forecast-priority-when span {
  color: var(--ink-soft);
  font-size: 0.8rem;
}

.forecast-priority-score {
  color: var(--ink);
  font-size: 1.35rem;
  line-height: 1;
  font-weight: 700;
  letter-spacing: 0;
  text-align: right;
}

.forecast-board-head {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 14px;
}

.forecast-board-note {
  color: var(--ink-soft);
  font-size: 0.86rem;
}

.forecast-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}

.forecast-legend-item {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  color: var(--ink-soft);
  font-size: 0.82rem;
  font-weight: 600;
}

.forecast-legend-swatch {
  width: 12px;
  height: 12px;
  border-radius: 3px;
  border: 1px solid transparent;
}

.forecast-legend-swatch.low {
  background: var(--nhs-green-bg);
  border-color: #8fd4ae;
}

.forecast-legend-swatch.medium {
  background: var(--nhs-amber-bg);
  border-color: #f5d28a;
}

.forecast-legend-swatch.high {
  background: var(--nhs-red-bg);
  border-color: #f0b0aa;
}

/* ── Forecast Day Grid (compact table layout) ────────────── */
.forecast-session-list {
  display: grid;
  gap: 0;
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  background: var(--surface);
  overflow: hidden;
}

.forecast-day-header {
  display: grid;
  grid-template-columns: 100px repeat(4, minmax(0, 1fr));
  background: var(--surface-alt);
  border-bottom: 2px solid var(--border);
}

.forecast-day-header > div {
  padding: 10px 12px;
  color: var(--ink-faint);
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  text-align: center;
}

.forecast-day-header .forecast-day-label-cell {
  text-align: left;
}

.forecast-day-row {
  display: grid;
  grid-template-columns: 100px repeat(4, minmax(0, 1fr));
  border-bottom: 1px solid var(--border);
  transition: background 0.12s;
}

.forecast-day-row:last-child {
  border-bottom: 0;
}

.forecast-day-row:hover {
  background: var(--surface-alt);
}

.forecast-day-row.is-today {
  background: var(--nhs-blue-bg);
}

.forecast-day-row.is-today:hover {
  background: #d6ecf8;
}

.forecast-day-label-cell {
  display: grid;
  gap: 1px;
  align-content: center;
  padding: 12px 14px;
}

.forecast-day-label-cell strong {
  font-size: 0.88rem;
  color: var(--ink);
}

.forecast-day-label-cell span {
  color: var(--ink-faint);
  font-size: 0.76rem;
}

.forecast-day-cell {
  display: grid;
  align-content: center;
  justify-items: center;
  gap: 2px;
  padding: 10px 8px;
  text-align: center;
  border-left: 1px solid var(--border);
  transition: background 0.12s;
  cursor: default;
}

button.forecast-day-cell {
  cursor: pointer;
  background: transparent;
  border-top: 0;
  border-bottom: 0;
  border-right: 0;
  color: inherit;
}

button.forecast-day-cell:hover {
  background: rgba(0, 94, 184, 0.06);
}

.forecast-cell-label {
  display: none;
  color: var(--ink-faint);
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.forecast-cell-score {
  font-size: 1.15rem;
  font-weight: 700;
  line-height: 1;
  color: var(--ink);
  letter-spacing: 0;
}

.forecast-cell-level {
  color: var(--ink-faint);
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

/* Risk level cell colouring */
.forecast-day-cell.is-low {
  background: var(--nhs-green-bg);
}

.forecast-day-cell.is-low .forecast-cell-level {
  color: var(--nhs-green);
}

.forecast-day-cell.is-medium {
  background: var(--nhs-amber-bg);
}

.forecast-day-cell.is-medium .forecast-cell-level {
  color: #9a6800;
}

.forecast-day-cell.is-high {
  background: var(--nhs-red-bg);
}

.forecast-day-cell.is-high .forecast-cell-level {
  color: var(--nhs-red);
}

.forecast-day-cell.is-elapsed,
.forecast-day-cell.is-empty {
  opacity: 0.5;
}

/* ── Forecast icon badges ───────────────────────────────── */
.forecast-icon-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 26px;
  height: 26px;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  background: var(--surface);
  color: var(--nhs-blue);
  font-size: 0.82rem;
}

/* ── Forecast Driver Panel ───────────────────────────────── */
.forecast-driver-grid {
  display: grid;
  gap: 10px;
}

.forecast-driver-card {
  display: grid;
  grid-template-columns: 40px minmax(0, 1fr);
  gap: 12px;
  align-items: center;
  padding: 12px 14px;
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  background: var(--surface-alt);
}

.forecast-driver-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: var(--radius-md);
  background: var(--surface);
  border: 1px solid var(--border);
  color: var(--nhs-blue);
}

.forecast-driver-copy {
  display: grid;
  gap: 0.18rem;
}

.forecast-driver-copy strong {
  font-size: 0.92rem;
}

.forecast-driver-copy span {
  color: var(--ink-soft);
  font-size: 0.82rem;
}

/* ── Forecast Modal ──────────────────────────────────────── */
.forecast-modal-kpis {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
  margin-bottom: 18px;
}

.forecast-modal-kpi {
  display: grid;
  gap: 0.2rem;
  padding: 10px 12px;
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  background: var(--surface-alt);
  text-align: center;
}

.forecast-modal-kpi span {
  color: var(--ink-faint);
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.forecast-modal-kpi strong {
  font-size: 0.95rem;
  color: var(--ink);
}

.forecast-factor-list {
  display: grid;
  gap: 12px;
}

.forecast-factor-row {
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr) auto;
  gap: 14px;
  align-items: start;
  padding: 12px 0;
  border-top: 1px solid var(--border);
}

.forecast-factor-row:first-child {
  border-top: 0;
  padding-top: 0;
}

.forecast-factor-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border-radius: var(--radius-md);
  background: var(--surface-alt);
  border: 1px solid var(--border);
  color: var(--nhs-blue);
}

.forecast-factor-body {
  display: grid;
  gap: 0.3rem;
}

.forecast-factor-body strong {
  font-size: 0.97rem;
}

.forecast-factor-body p {
  margin: 0;
  color: var(--ink-soft);
  font-size: 0.88rem;
  line-height: 1.6;
}

.forecast-factor-impact {
  display: inline-flex;
  align-items: center;
  min-height: 36px;
  padding: 0 0.75rem;
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  background: var(--surface);
  color: var(--nhs-navy);
  font-weight: 700;
  font-size: 0.88rem;
}

/* ── Legacy forecast styles compatibility ────────────────── */
.forecast-header {
  padding: 22px 24px;
  margin-bottom: 20px;
  border-radius: var(--radius-xl);
  background: var(--nhs-navy);
  color: #fff;
  border-left: 4px solid var(--nhs-blue-light);
  box-shadow: var(--shadow-md);
}

.forecast-header h1 {
  color: #fff;
  margin-bottom: 0.35rem;
  font-size: 1.65rem;
}

.forecast-header p,
.forecast-header small {
  color: rgba(200, 225, 242, 0.82);
}

.header-row {
  margin-bottom: 0.9rem;
  padding: 12px 16px;
  border-radius: var(--radius-lg);
  background: var(--surface);
  border: 1px solid var(--border);
}

.forecast-cell {
  min-height: 112px;
  border-radius: var(--radius-lg) !important;
  border: 1px solid var(--border);
}

.forecast-cell.success {
  background: var(--nhs-green-bg);
  border-color: #8fd4ae;
}

.forecast-cell.warning {
  background: var(--nhs-amber-bg);
  border-color: #f5d28a;
}

.forecast-cell.danger {
  background: var(--nhs-red-bg);
  border-color: #f0b0aa;
}

.forecast-cell.placeholder,
.forecast-cell.empty {
  background: var(--surface-alt);
}

/* ── Professional List ───────────────────────────────────── */
.professional-list {
  list-style: none;
  display: grid;
  gap: 10px;
  padding: 0;
  margin: 0;
}

.professional-list li {
  display: grid;
  grid-template-columns: 18px minmax(0, 1fr);
  gap: 10px;
  align-items: start;
  color: var(--ink-soft);
  font-size: 0.92rem;
}

.professional-list i {
  color: var(--nhs-blue);
  margin-top: 2px;
}

.consultation-status {
  position: absolute;
  right: -6px;
  bottom: -6px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  border-radius: var(--radius-md);
  background: var(--nhs-green);
  color: #fff;
  font-size: 0.85rem;
}

.consultation-bubble-wrap {
  display: grid;
}

.speech-bubble {
  border: 1px solid var(--border);
  border-radius: var(--radius-xl);
  background: var(--surface-alt);
  min-height: 200px;
  padding: 20px;
}

.speech-arrow-below {
  display: none;
}

.typed-text {
  white-space: pre-wrap;
}

.consultation-spinner {
  width: 72px;
  height: 72px;
}

.consultation-list {
  border: 1px solid var(--border);
  border-radius: var(--radius-xl);
  overflow: hidden;
}

.review-list-item {
  display: grid;
  gap: 5px;
  padding: 14px 16px;
  border-color: var(--border);
}

.review-meta {
  color: var(--ink-faint);
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.03em;
}

.review-copy {
  color: var(--ink);
  font-size: 0.9rem;
  line-height: 1.65;
  white-space: pre-wrap;
}

.review-pack-hero {
  background:
    linear-gradient(135deg, rgba(255, 241, 247, 0.88), rgba(255, 255, 255, 0.96) 48%, rgba(248, 251, 255, 0.98)),
    var(--surface);
  border-color: rgba(207, 47, 104, 0.18);
}

.review-pack-command {
  border-color: rgba(207, 47, 104, 0.16);
}

.review-pack-stats {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.review-pack-stats article {
  min-width: 0;
  padding: 14px;
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  background: rgba(255, 255, 255, 0.76);
}

.review-pack-stats i {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  margin-bottom: 10px;
  border-radius: var(--radius-md);
  background: rgba(207, 47, 104, 0.1);
  color: #c72d65;
}

.review-pack-stats strong,
.review-pack-stats span {
  display: block;
}

.review-pack-stats strong {
  color: var(--ink);
  font-size: 1.18rem;
  line-height: 1.1;
}

.review-pack-stats span {
  margin-top: 4px;
  color: var(--ink-soft);
  font-size: 0.82rem;
  line-height: 1.35;
}

.review-pack-grid {
  grid-template-columns: minmax(0, 1.1fr) minmax(320px, 0.9fr);
}

.review-pack-form {
  display: grid;
  gap: 18px;
}

.review-pack-actions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 12px;
  padding-top: 4px;
}

.review-pack-status {
  min-height: 22px;
  color: var(--ink-soft);
  font-size: 0.9rem;
  font-weight: 700;
}

.review-pack-status.is-success {
  color: var(--nhs-green);
}

.review-pack-status.is-error {
  color: var(--nhs-red);
}

.review-pack-list {
  display: grid;
  gap: 12px;
  padding: 0;
  margin: 0;
  list-style: none;
}

.review-pack-item {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 14px;
  align-items: center;
  padding: 14px;
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  background: var(--surface-alt);
}

.review-pack-item strong,
.review-pack-item p,
.review-pack-meta {
  display: block;
}

.review-pack-item strong {
  margin-top: 4px;
  color: var(--ink);
  font-size: 0.96rem;
}

.review-pack-item p {
  margin: 4px 0 0;
  color: var(--ink-soft);
  font-size: 0.84rem;
  line-height: 1.4;
}

.review-pack-meta {
  color: var(--ink-faint);
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.03em;
}

.review-pack-item.empty-item {
  grid-template-columns: 1fr;
  color: var(--ink-soft);
  text-align: center;
}

@media (max-width: 991.98px) {
  .review-pack-grid,
  .review-pack-stats {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 575.98px) {
  .review-pack-actions,
  .review-pack-actions .btn,
  .review-pack-item,
  .review-pack-item .btn {
    width: 100%;
  }

  .review-pack-actions {
    display: grid;
  }

  .review-pack-item {
    grid-template-columns: 1fr;
    align-items: stretch;
  }

  .review-pack-item .btn {
    justify-content: center;
  }
}

/* ── Upload / Import ─────────────────────────────────────── */
.upload-dropzone {
  padding: 18px;
  border: 2px dashed var(--border-strong);
  border-radius: var(--radius-xl);
  background: var(--surface-alt);
}

.app-progress {
  height: 14px;
  border-radius: 999px;
  background: var(--surface-muted);
  overflow: hidden;
}

.app-progress-bar {
  background: var(--nhs-blue);
  border-radius: 999px;
  font-size: 0.78rem;
  font-weight: 700;
}

.upload-summary-list {
  list-style: none;
  display: grid;
  gap: 8px;
  padding: 0;
  margin: 0;
}

.upload-summary-list li {
  padding: 10px 13px;
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  background: var(--surface-alt);
  font-size: 0.88rem;
}

/* ── Misc UI Elements ────────────────────────────────────── */
.compact-list li {
  gap: 8px;
  font-size: 0.9rem;
}

.lobe-illustration {
  max-width: 170px;
  border-radius: var(--radius-lg);
  border: 1px solid var(--border);
}

.page-frame {
  padding-top: 1.2rem;
  padding-bottom: 3rem;
}

/* Selection chips */
#diagnosesSelected,
#medicationsSelected {
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  padding: 0;
  margin: 10px 0 0;
}

#diagnosesSelected li,
#medicationsSelected li,
.selection-chip {
  display: inline-flex;
  align-items: flex-start;
  gap: 8px;
  padding: 0.38rem 0.65rem;
  border: 1px solid var(--nhs-blue-pale);
  border-radius: var(--radius-md);
  background: var(--nhs-blue-bg);
}

.selection-chip-stack {
  display: grid;
  gap: 2px;
}

.selection-chip-label {
  color: var(--nhs-navy);
  font-size: 0.86rem;
  font-weight: 600;
  line-height: 1.25;
}

.selection-chip-meta {
  color: var(--ink-soft);
  font-size: 0.74rem;
  line-height: 1.3;
}

.selection-chip-actions {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
}

.selection-chip-edit,
.selection-chip-remove {
  flex: 0 0 auto;
  border: 0;
  cursor: pointer;
}

.selection-chip-edit {
  min-height: 1.45rem;
  padding: 0.08rem 0.52rem;
  border-radius: 999px;
  background: rgba(0, 94, 184, 0.1);
  color: var(--nhs-navy);
  font-size: 0.72rem;
  font-weight: 700;
  line-height: 1;
}

.selection-chip-remove {
  width: 1.35rem;
  height: 1.35rem;
  border-radius: 50%;
  background: rgba(213, 40, 27, 0.1);
  color: var(--nhs-red);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  font-size: 0.88rem;
  cursor: pointer;
}

.selection-chip-edit:hover {
  background: rgba(0, 94, 184, 0.16);
}

.selection-chip-edit.active {
  background: var(--nhs-navy);
  color: #fff;
}

.selection-chip-remove:hover {
  background: rgba(213, 40, 27, 0.18);
}

@media (max-width: 880px) {
  .forecast-audit-grid {
    grid-template-columns: 1fr;
  }
}

/* Driver card (legacy) */
.driver-card {
  border-radius: var(--radius-lg);
  background: var(--surface);
  border: 1px solid var(--border);
  box-shadow: var(--shadow-sm);
}

.driver-value {
  color: var(--nhs-blue);
  font-size: 1.4rem;
  font-weight: 700;
  letter-spacing: 0;
}

/* Score display */
.score {
  color: var(--ink);
  font-size: 1.35rem;
  font-weight: 700;
  letter-spacing: 0;
}

.risk-label {
  color: var(--ink-faint);
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.icons-row {
  color: var(--nhs-blue);
}

/* Loading panels */
.loading-panel {
  padding: 1.4rem 1rem;
  border-radius: var(--radius-lg);
  background: var(--nhs-blue-bg);
  border: 1px solid var(--nhs-blue-pale);
}

/* ── Responsive Breakpoints ──────────────────────────────── */
@media (max-width: 1279.98px) {
  .care-layout-dashboard,
  .care-layout-history,
  .care-layout-forecast,
  .care-layout-dashboard-lower,
  .care-layout-history-lower,
  .care-layout-entry-intro,
  .dashboard-grid,
  .content-grid,
  .auth-layout,
  .public-hero-grid,
  .public-ecosystem-band,
  .public-display-grid,
  .public-section-grid,
  .public-proof-grid,
  .public-footer-top {
    grid-template-columns: 1fr;
  }

  .care-intake-shell {
    grid-template-columns: 1fr;
  }

  .care-kpi-strip {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .public-value-strip {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 991.98px) {
  .care-shell {
    grid-template-columns: 1fr;
  }

  .care-main {
    padding: 0 18px 18px;
  }

  .care-header {
    top: 10px;
    flex-direction: column;
    align-items: stretch;
  }

  .care-header-actions {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    justify-content: stretch;
  }

  .care-action-btn,
  .care-header-meta,
  .care-header-user {
    min-width: 0;
    width: 100%;
  }

  .care-content {
    padding-bottom: calc(72px + env(safe-area-inset-bottom));
  }

  .care-mobile-dock {
    display: grid;
  }

  .care-main {
    padding-bottom: 0;
  }

  .public-shell,
  .public-footer {
    padding-left: 16px;
    padding-right: 16px;
  }

  .public-content {
    padding-left: 16px;
    padding-right: 16px;
  }

  .forecast-day-header {
    display: none;
  }

  .forecast-day-row {
    grid-template-columns: 1fr repeat(4, minmax(0, 1fr));
  }

  .forecast-day-label-cell {
    padding: 10px 12px;
  }

  .forecast-day-cell {
    padding: 8px 4px;
  }

  .forecast-cell-label {
    display: block;
  }

  .forecast-cell-score {
    font-size: 1rem;
  }
}

@media (max-width: 767.98px) {
  .public-nav {
    height: auto;
    padding: 14px 0;
    flex-wrap: wrap;
  }

  .public-nav-actions {
    margin-top: 10px;
    width: 100%;
  }

  .public-hero-copy,
  .public-ecosystem-band,
  .public-display-board,
  .care-panel,
  .surface-card,
  .warning-flag-card,
  .auth-panel,
  .auth-aside,
  .care-form-section {
    padding: 18px;
  }

  .page-title,
  .public-hero-copy h1 {
    font-size: clamp(1.75rem, 8vw, 2.6rem);
  }

  .care-kpi-strip {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .care-kpi-strip .care-kpi-card:last-child:nth-child(odd) {
    grid-column: 1 / -1;
  }

  .care-header {
    position: sticky;
    top: 0;
    z-index: 1020;
    margin-left: -18px;
    margin-right: -18px;
    margin-bottom: 0;
    padding-left: 0;
    padding-right: 0;
    padding-top: 0;
    padding-bottom: 0;
    gap: 0;
    border-radius: 0;
    border-bottom: none;
    /* Navy fills any gap above the nav bar (safe-area, timing quirks).
       gap:0 ensures no navy bleeds between the copy and actions rows. */
    background: var(--nhs-navy);
  }

  .care-header::after {
    display: none;
  }

  .care-header::before {
    display: none;
  }

  .care-header-main {
    display: grid;
    grid-template-columns: 1fr;
    grid-template-areas:
      "bar"
      "copy";
    align-items: center;
    width: 100%;
    gap: 0;
  }

  .care-header-bar {
    grid-area: bar;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--nhs-navy);
    /* pad top by safe-area so content sits below the notch */
    padding: calc(10px + env(safe-area-inset-top, 0px)) 14px 10px;
    width: 100%;
    position: relative;
    min-height: calc(54px + env(safe-area-inset-top, 0px));
  }

  .care-menu-toggle {
    position: absolute;
    left: 14px;
    /* Align with the visual centre of the content below the notch */
    top: calc(50% + env(safe-area-inset-top, 0px) / 2);
    transform: translateY(-50%);
    border: 0 !important;
    border-radius: var(--radius-md);
    background: transparent !important;
    -webkit-tap-highlight-color: transparent;
    min-height: 44px;
    width: 44px;
    font-size: 1.55rem;
    color: #fff;
  }

  .care-mobile-brand {
    border: 0;
    border-radius: 0;
    background: transparent;
    padding: 0;
  }

  .care-mobile-wordmark {
    width: 170px;
  }

  .care-header-copy {
    grid-area: copy;
    padding: 12px 18px 10px;
    background: var(--bg);
    margin-bottom: 0;
  }

  .care-header-title {
    font-size: 1.35rem;
  }

  .care-header-summary {
    display: none;
  }

  .care-header-actions {
    grid-template-columns: 1fr;
    padding: 0 18px 12px;
    background: var(--bg);
  }

  .care-header-meta,
  .care-header-chip,
  .care-action-btn-secondary,
  .care-header-user {
    display: none !important;
  }

  .care-action-btn-primary {
    grid-column: 1;
  }

  .care-band-grid,
  .forecast-modal-kpis,
  .info-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .care-inline-metrics,
  .care-intro-grid {
    grid-template-columns: 1fr;
  }

  .forecast-day-row {
    grid-template-columns: 70px repeat(4, minmax(0, 1fr));
    gap: 0;
  }

  .forecast-day-label-cell {
    padding: 8px 8px;
  }

  .forecast-day-label-cell strong {
    font-size: 0.78rem;
  }

  .forecast-day-label-cell span {
    font-size: 0.68rem;
  }

  .forecast-day-cell {
    padding: 8px 2px;
  }

  .forecast-cell-label {
    font-size: 0.6rem;
  }

  .forecast-cell-score {
    font-size: 0.88rem;
  }

  .forecast-cell-level {
    font-size: 0.58rem;
  }

  .forecast-priority-row {
    grid-template-columns: 56px minmax(0, 1fr) 48px;
    gap: 8px;
    padding: 10px 12px;
  }

  .forecast-priority-score {
    font-size: 1.1rem;
  }

  .forecast-factor-row {
    grid-template-columns: 38px minmax(0, 1fr);
  }

  .forecast-factor-impact {
    grid-column: 2;
    width: fit-content;
  }

  .care-table thead {
    display: none;
  }

  .care-table tbody {
    display: grid;
    gap: 8px;
    padding: 8px;
  }

  .care-table tbody tr {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0;
    padding: 12px 14px;
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    background: var(--surface);
    border-left: 3px solid var(--nhs-blue);
  }

  .care-table tbody td {
    display: flex;
    flex-direction: column;
    gap: 1px;
    padding: 4px 4px;
    border: 0;
    font-size: 0.9rem;
  }

  .care-table tbody td::before {
    content: attr(data-label);
    font-size: 0.62rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--ink-faint);
    line-height: 1;
  }

  .care-table tbody td.text-end,
  .care-table tbody td.care-table-actions {
    grid-column: 1 / -1;
    text-align: left !important;
    padding-top: 8px;
    margin-top: 4px;
    border-top: 1px solid var(--border);
  }

  .care-table tbody td.care-table-actions::before {
    display: none;
  }

  .table-action-row {
    display: flex;
    flex-direction: row;
    gap: 8px;
  }

  /* Prevent tag pills causing horizontal overflow */
  .tag-pill-group {
    max-width: 100%;
    overflow: hidden;
  }

  .table-action-btn {
    flex: 1;
    justify-content: center;
    min-height: 36px;
    font-size: 0.8rem;
  }

  .public-footer {
    padding: 36px 16px 24px;
  }

  .public-footer-links {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 575.98px) {
  .care-header-meta,
  .care-header-user {
    width: 100%;
  }

  .care-mobile-wordmark {
    width: 145px;
  }

  .care-form-section-head {
    grid-template-columns: 1fr;
  }

  .care-form-step {
    width: 64px;
  }

  .care-footer-copy,
  .public-footer-base {
    flex-direction: column;
  }

  .btn {
    width: 100%;
  }
}

/* ============================================================
   SeizeControl — refined companion redesign
   Refined companion product layer for the FND Connect ecosystem
   ============================================================ */

:root {
  --nhs-navy: #002b5f;
  --nhs-navy-dark: #001a3b;
  --nhs-navy-mid: #104778;
  --nhs-blue: #c9005a;
  --nhs-blue-light: #ed2b7b;
  --nhs-blue-pale: #fff1f7;
  --nhs-blue-bg: #fff7fb;
  --bg: #f7f9fc;
  --surface: rgba(255, 255, 255, 0.94);
  --surface-alt: #fbfcfe;
  --surface-muted: #edf5fc;
  --ink: #061b3d;
  --ink-soft: #4c5b73;
  --ink-faint: #66758c;
  --border: #dfe6ef;
  --border-strong: #cfd9e8;
  --font-sans: 'Manrope', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --radius-sm: 14px;
  --radius-md: 18px;
  --radius-lg: 24px;
  --radius-xl: 30px;
  --shadow-sm: 0 14px 32px rgba(0, 43, 95, 0.05);
  --shadow-md: 0 18px 40px rgba(0, 43, 95, 0.08);
  --shadow-lg: 0 26px 56px rgba(0, 43, 95, 0.12);
}

body.app-body {
  background:
    radial-gradient(circle at top left, rgba(237, 43, 123, 0.2), transparent 28%),
    linear-gradient(180deg, #f7f9fc 0%, #fff7fb 100%) !important;
}

.btn {
  min-height: 48px;
  padding: 0 1.15rem;
  border-radius: 18px !important;
  font-size: 0.92rem;
  font-weight: 700;
}

.btn-primary {
  background: linear-gradient(180deg, #c9005a 0%, #b00050 100%);
  border-color: #a9004d;
  box-shadow: 0 14px 28px rgba(201, 0, 90, 0.18);
}

.btn-primary:hover,
.btn-primary:focus {
  background: linear-gradient(180deg, #d91c6b 0%, #a9004d 100%);
  border-color: #a9004d;
}

.btn-outline-primary,
.panel-link {
  background: rgba(255, 255, 255, 0.9);
  border-color: var(--border);
  color: var(--ink);
  box-shadow: none;
}

.btn-outline-primary:hover,
.btn-outline-primary:focus,
.panel-link:hover {
  background: var(--nhs-blue-bg);
  border-color: #f0bfd3;
  color: var(--nhs-navy);
}

.form-control,
.form-select,
.choices__inner {
  min-height: 48px !important;
  border-radius: 18px !important;
  background: rgba(255, 255, 255, 0.92) !important;
}

.care-panel,
.surface-card,
.warning-flag-card,
.auth-panel,
.auth-aside,
.feature-card,
.summary-card,
.subsection-card,
.workbench-panel,
.action-tile,
.trust-card {
  border: 1px solid var(--border) !important;
  border-radius: 30px !important;
  background: var(--surface) !important;
  box-shadow: var(--shadow-sm) !important;
  backdrop-filter: blur(12px);
}

.care-panel {
  padding: clamp(20px, 2.3vw, 28px);
}

.care-panel-head {
  margin-bottom: 18px;
}

.care-panel-kicker,
.page-kicker,
.eyebrow,
.public-badge {
  border-radius: 999px;
  background: rgba(201, 0, 90, 0.12);
  border-color: rgba(201, 0, 90, 0.22);
  color: var(--nhs-navy);
  font-size: 0.68rem;
  letter-spacing: 0.12em;
}

.care-panel-title,
.section-heading {
  margin-top: 0.75rem;
  font-size: clamp(1.3rem, 2vw, 1.85rem);
  line-height: 1.06;
}

.care-panel-copy,
.section-copy,
.page-subtitle,
.page-note,
.review-copy,
.consultation-bubble,
.auth-inline-link {
  color: var(--ink-soft) !important;
}

.care-shell {
  display: grid;
  grid-template-columns: 248px minmax(0, 1fr);
  gap: 24px;
  min-height: 100vh;
  padding: 24px;
}

.care-rail {
  position: sticky;
  top: 24px;
  align-self: start;
  display: flex;
  flex-direction: column;
  gap: 18px;
  max-height: calc(100vh - 48px);
  min-height: calc(100vh - 48px);
  padding: 18px;
  overflow: auto;
  background: rgba(255, 255, 255, 0.9);
  border: 1px solid var(--border);
  border-radius: 32px;
  box-shadow: var(--shadow-md);
  scrollbar-width: thin;
}

.care-rail::before {
  display: none;
}

.care-brand {
  gap: 10px;
  padding: 4px 4px 12px;
  border-bottom: 1px solid #dceceb;
  color: var(--ink);
}

.care-brand-wordmark {
  width: 170px;
  filter: none;
  display: block;
}

.care-brand-copy strong {
  color: var(--ink);
  font-size: 0.96rem;
}

.care-brand-copy span {
  color: var(--ink-soft);
  font-size: 0.78rem;
}

.care-rail-section {
  padding: 0;
  gap: 8px;
}

.care-rail-label {
  padding: 0 10px;
  color: var(--ink-faint);
  font-size: 0.66rem;
  letter-spacing: 0.14em;
}

.care-nav {
  gap: 8px;
}

.care-nav-link {
  grid-template-columns: 46px minmax(0, 1fr) auto;
  gap: 12px;
  min-height: 64px;
  padding: 0 12px;
  border: 1px solid transparent;
  border-radius: 22px;
  color: var(--ink-soft);
  background: transparent;
  font-size: 0.93rem;
  font-weight: 700;
}

.care-nav-link:hover {
  background: #f7f9fc;
  border-color: #d6eae8;
  color: var(--ink);
}

.care-nav-link.is-active {
  background: linear-gradient(180deg, #f3fcfc 0%, #e7f7f6 100%);
  border-color: #c7e4e2;
  color: var(--ink);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.9);
}

.care-nav-icon {
  width: 46px;
  height: 46px;
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.9);
  border: 1px solid var(--border);
  color: var(--nhs-navy);
}

.care-nav-link.is-active .care-nav-icon {
  background: linear-gradient(180deg, #ffffff 0%, #fff7fb 100%);
  border-color: rgba(201, 0, 90, 0.18);
}

.care-nav-dot {
  width: 8px;
  height: 8px;
  box-shadow: 0 0 0 4px rgba(201, 0, 90, 0.18);
}

.care-rail-card {
  margin: 0;
  border-radius: 24px;
  background: #fbfcfe;
  border-color: #dfe6ef;
  color: var(--ink-soft);
}

.care-rail-card-label {
  color: var(--ink-faint);
}

.care-rail-card strong {
  color: var(--ink);
  font-size: 0.96rem;
}

.care-rail-card p {
  color: var(--ink-soft);
}

.care-rail-card a {
  color: var(--nhs-navy);
  font-size: 0.82rem;
  font-weight: 800;
  text-decoration: none;
}

.care-rail-card a:hover {
  color: var(--nhs-navy-dark);
  text-decoration: underline;
  text-underline-offset: 0.18em;
}

.care-rail-footer {
  margin-top: auto;
  padding: 16px 0 0;
  border-top: 1px solid #dceceb;
}

.care-patient-chip {
  border-radius: 24px;
  background: #fbfcfe;
  border-color: #dfe6ef;
}

.care-patient-icon {
  border-radius: 16px;
  background: #fff7fb;
  color: var(--nhs-navy);
}

.care-patient-chip strong {
  color: var(--ink);
}

.care-patient-chip span:last-child {
  color: var(--ink-soft);
}

.care-signout {
  min-height: 46px;
  border-radius: 18px;
  border-color: #f0d1ce;
  background: #fff7f7;
  color: #c65a54;
}

.care-signout:hover {
  background: #fff1f0;
  color: #ad4e48;
}

.care-main {
  min-width: 0;
  padding: 0 0 48px;
  background: transparent;
}

.care-header {
  position: relative;
  top: auto;
  display: grid;
  gap: 16px;
  padding: 0;
  margin-bottom: 22px;
  background: transparent;
  border-bottom: 0;
}

.care-header::after {
  display: none;
}

.care-header-main {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 0;
}

.care-header-copy {
  padding: 28px;
  border: 1px solid var(--border);
  border-radius: 32px;
  background: rgba(255, 255, 255, 0.94);
  box-shadow: var(--shadow-sm);
}

.care-header-label {
  color: var(--ink-faint);
  font-size: 0.68rem;
  letter-spacing: 0.14em;
}

.care-header-title {
  margin-top: 8px;
  font-size: clamp(2rem, 3vw, 3rem);
  color: var(--ink);
  line-height: 0.98;
}

.care-header-summary {
  margin-top: 14px;
  max-width: 48rem;
  color: var(--ink-soft);
  font-size: 1rem;
  line-height: 1.7;
}

.care-header-actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}

.care-header-chip,
.care-header-meta,
.care-header-user,
.care-action-btn {
  min-height: 72px;
  border-radius: 22px !important;
  padding: 0 20px;
  background: rgba(255, 255, 255, 0.94);
  border: 1px solid var(--border);
  box-shadow: var(--shadow-sm);
}

.care-header-meta,
.care-header-user {
  display: grid;
  align-content: center;
}

.care-header-meta-label {
  color: var(--ink-faint);
}

.care-header-user {
  display: inline-flex;
  align-items: center;
}

.care-action-btn {
  justify-content: center;
  gap: 0.6rem;
}

.care-action-btn-primary {
  background: linear-gradient(180deg, #c9005a 0%, #b00050 100%);
  border-color: #a9004d;
  color: #fff !important;
}

.care-action-btn-primary i,
.care-action-btn-primary span {
  color: inherit;
}

.care-action-btn-secondary {
  background: rgba(255, 255, 255, 0.92);
  color: var(--ink);
}

.care-mobile-offcanvas {
  background: var(--bg);
  color: var(--ink);
}

.care-mobile-offcanvas .offcanvas-header {
  border-bottom: 1px solid var(--border);
}

.care-offcanvas-label {
  color: var(--ink-faint);
}

.care-offcanvas-title {
  color: var(--ink);
}

.workspace-hero {
  display: grid;
  grid-template-columns: minmax(0, 1.12fr) minmax(320px, 0.88fr);
  gap: 18px;
  margin-bottom: 18px;
}

.workspace-hero-copy,
.workspace-hero-stats {
  padding: clamp(20px, 2.4vw, 30px);
  border: 1px solid var(--border);
  border-radius: 32px;
  background: rgba(255, 255, 255, 0.94);
  box-shadow: var(--shadow-sm);
}

.workspace-hero-title {
  margin-top: 18px;
  max-width: 15ch;
  font-size: clamp(2rem, 4.2vw, 3.8rem);
  line-height: 0.98;
  color: var(--ink);
}

.workspace-hero-text {
  max-width: 52rem;
  margin: 16px 0 0;
  color: var(--ink-soft);
  font-size: 1rem;
  line-height: 1.72;
}

.workspace-hero-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 18px;
}

.hero-tag {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  min-height: 42px;
  padding: 0 15px;
  border: 1px solid #dfe6ef;
  border-radius: 999px;
  background: #f4fbfa;
  color: var(--ink-soft);
  font-size: 0.88rem;
  font-weight: 700;
}

.hero-tag i {
  color: var(--nhs-navy);
}

.workspace-hero-stats {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.workspace-hero-forecast .workspace-hero-title {
  max-width: 18ch;
}

.workspace-hero-forecast .hero-stat strong {
  font-size: 1.08rem;
  line-height: 1.35;
  letter-spacing: 0;
}

.hero-stat {
  display: grid;
  align-content: start;
  gap: 6px;
  min-height: 128px;
  padding: 18px 18px 20px;
  border: 1px solid #d8e9e7;
  border-radius: 24px;
  background: linear-gradient(180deg, #fbfcfe 0%, #edf5fc 100%);
}

.hero-stat span,
.signal-summary-card span,
.focus-item span,
.signal-tile span {
  color: var(--ink-faint);
  font-size: 0.7rem;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.hero-stat strong {
  color: var(--ink);
  font-size: clamp(1.6rem, 2vw, 2.25rem);
  line-height: 0.95;
  letter-spacing: 0;
}

.hero-stat small {
  color: var(--ink-soft);
  font-size: 0.82rem;
  line-height: 1.5;
}

.workspace-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.12fr) minmax(320px, 0.88fr);
  gap: 18px;
  align-items: start;
}

.workspace-main,
.workspace-side {
  display: grid;
  gap: 18px;
}

.workspace-panel {
  position: relative;
}

.workspace-panel-head {
  align-items: center;
}

.app-chart-shell {
  padding: 14px;
  border: 1px solid #d8e9e7;
  border-radius: 26px;
  background: linear-gradient(180deg, #fbfdfd 0%, #f4fbfa 100%);
}

.signal-summary-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  margin-top: 16px;
}

.signal-summary-card {
  display: grid;
  gap: 7px;
  min-height: 108px;
  padding: 16px 18px;
  border: 1px solid #dce8f2;
  border-radius: 24px;
  background: #fbfcfe;
}

.signal-summary-card strong,
.focus-item strong,
.signal-tile strong {
  color: var(--ink);
  font-size: 1.25rem;
  line-height: 1.1;
}

.focus-list {
  display: grid;
  gap: 12px;
}

.focus-item {
  display: grid;
  gap: 8px;
  min-height: 108px;
  padding: 18px;
  border: 1px solid #dce8f2;
  border-radius: 24px;
  background: #fbfcfe;
}

.signal-tile-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.signal-tile {
  display: grid;
  gap: 6px;
  min-height: 110px;
  padding: 16px 18px;
  border: 1px solid #dce8f2;
  border-radius: 24px;
  background: #fbfcfe;
}

.signal-tile small {
  color: var(--ink-soft);
  font-size: 0.82rem;
}

.context-chip {
  min-height: 34px;
  padding: 0 0.8rem;
  border: 1px solid #cfe2f1;
  border-radius: 999px;
  background: #edf7fe;
  color: var(--nhs-navy);
  font-size: 0.8rem;
  font-weight: 700;
}

.context-chip-muted {
  background: #f6fafc;
  border-color: #dfe8ef;
}

.care-summary-card {
  padding: 16px 18px;
  border-radius: 22px;
  background: #fbfcfe;
  border-color: #dce8f2;
}

.severity-pill {
  min-width: 38px;
  min-height: 38px;
  border-radius: 16px;
  background: #edf7fe;
  border-color: #cce1ef;
  color: var(--nhs-navy);
}

.care-table-shell {
  border-radius: 26px;
  border-color: #dce8f2;
}

.care-table thead th {
  background: #fbfcfe;
}

.care-table tbody tr:hover td {
  background: #fbfcfe;
}

.care-timeline {
  gap: 14px;
}

.care-timeline-body {
  padding: 15px 16px;
  border-radius: 22px;
  background: #fbfcfe;
  border-color: #dce8f2;
}

.care-timeline-compact .care-timeline-meta {
  gap: 10px;
}

.forecast-priority-queue {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.forecast-priority-card {
  display: grid;
  gap: 14px;
  width: 100%;
  padding: 18px;
  border: 1px solid #d7e6f2;
  border-radius: 26px;
  background: linear-gradient(180deg, #ffffff 0%, #f6fbff 100%);
  color: var(--ink);
  text-align: left;
  box-shadow: var(--shadow-sm);
  transition: transform 0.18s ease, border-color 0.18s ease, box-shadow 0.18s ease;
}

.forecast-priority-card:hover {
  transform: translateY(-2px);
  border-color: #bed8ea;
  box-shadow: var(--shadow-md);
}

.forecast-priority-card-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.forecast-priority-rank {
  display: inline-flex;
  align-items: center;
  min-height: 32px;
  padding: 0 12px;
  border-radius: 999px;
  font-size: 0.7rem;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.forecast-priority-card.is-low .forecast-priority-rank {
  background: #e8f5ee;
  color: #0a7b43;
}

.forecast-priority-card.is-medium .forecast-priority-rank {
  background: #fef4e0;
  color: #9d6900;
}

.forecast-priority-card.is-high .forecast-priority-rank {
  background: #fde9e7;
  color: #c6463b;
}

.forecast-priority-card .forecast-priority-score {
  font-size: 1.9rem;
  font-weight: 800;
  line-height: 1;
  letter-spacing: 0;
  color: var(--ink);
}

.forecast-priority-when {
  display: grid;
  gap: 4px;
}

.forecast-priority-when strong {
  font-size: 1.05rem;
  line-height: 1.25;
}

.forecast-priority-when span {
  color: var(--ink-soft);
  font-size: 0.88rem;
}

.forecast-priority-driver-row,
.forecast-window-driver-row {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.forecast-mini-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  min-height: 34px;
  padding: 0 10px;
  border: 1px solid #d7e6f2;
  border-radius: 999px;
  background: #fbfcfe;
  color: var(--ink-soft);
  font-size: 0.8rem;
  font-weight: 700;
}

.forecast-mini-chip .forecast-icon-badge {
  width: 24px;
  height: 24px;
  border-radius: 10px;
}

.forecast-mini-chip em {
  font-style: normal;
}

.forecast-mini-note {
  color: var(--ink-soft);
  font-size: 0.82rem;
}

.forecast-session-list {
  display: grid;
  gap: 14px;
  border: 0;
  background: transparent;
  overflow: visible;
}

.forecast-day-card {
  padding: 20px;
  border: 1px solid #d7e6f2;
  border-radius: 28px;
  background: linear-gradient(180deg, #ffffff 0%, #fbfcfe 100%);
  box-shadow: var(--shadow-sm);
}

.forecast-day-card.is-today {
  border-color: #bdd9eb;
}

.forecast-day-card-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  margin-bottom: 16px;
}

.forecast-day-card-copy {
  display: grid;
  gap: 4px;
}

.forecast-day-card-copy span {
  color: var(--ink-faint);
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.forecast-day-card-copy strong {
  font-size: 1.3rem;
  line-height: 1.1;
}

.forecast-day-card-summary {
  display: inline-flex;
  align-items: center;
  min-height: 38px;
  padding: 0 14px;
  border-radius: 999px;
  border: 1px solid #dce8f2;
  background: #fbfcfe;
  color: var(--ink-soft);
  font-size: 0.82rem;
  font-weight: 800;
}

.forecast-day-card-summary.is-low {
  background: #e8f5ee;
  border-color: #b9e2cb;
  color: #0a7b43;
}

.forecast-day-card-summary.is-medium {
  background: #fef4e0;
  border-color: #f0d59a;
  color: #9d6900;
}

.forecast-day-card-summary.is-high {
  background: #fde9e7;
  border-color: #f0c1bc;
  color: #c6463b;
}

.forecast-window-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}

.forecast-window-card {
  display: grid;
  align-content: start;
  justify-items: start;
  gap: 10px;
  min-height: 170px;
  padding: 16px;
  border: 1px solid #dce8f2;
  border-radius: 24px;
  background: #fbfcfe;
  color: var(--ink);
  text-align: left;
  transition: transform 0.16s ease, border-color 0.16s ease, box-shadow 0.16s ease;
}

button.forecast-window-card {
  width: 100%;
  cursor: pointer;
}

button.forecast-window-card:hover {
  transform: translateY(-1px);
  border-color: #bdd8ea;
  box-shadow: var(--shadow-sm);
}

.forecast-window-card.is-low {
  background: #f1faf5;
  border-color: #c8e7d4;
}

.forecast-window-card.is-medium {
  background: #fff9ea;
  border-color: #f0deb0;
}

.forecast-window-card.is-high {
  background: #fff2f0;
  border-color: #f2cec8;
}

.forecast-window-card.is-elapsed,
.forecast-window-card.is-empty {
  background: #f7fafc;
  border-style: dashed;
  opacity: 0.72;
}

.forecast-window-head {
  display: grid;
  gap: 4px;
  min-height: 2.5rem;
}

.forecast-window-head span {
  color: var(--ink);
  font-size: 0.94rem;
  font-weight: 800;
}

.forecast-window-head small {
  display: block;
  color: var(--ink-soft);
  font-size: 0.78rem;
  line-height: 1;
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
  letter-spacing: 0;
}

.forecast-window-range-compact {
  display: none;
}

@media (max-width: 767.98px) {
  .forecast-window-range-full {
    display: none;
  }

  .forecast-window-range-compact {
    display: inline;
  }
}

.forecast-window-score {
  font-size: 2rem;
  line-height: 1;
  letter-spacing: 0;
  color: var(--ink);
}

.forecast-window-level {
  display: inline-flex;
  align-items: center;
  min-height: 30px;
  padding: 0 11px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.7);
  color: var(--ink-soft);
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.forecast-window-driver-row-muted span {
  color: var(--ink-soft);
  font-size: 0.8rem;
}

.forecast-driver-dot {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  border: 1px solid #dce8f2;
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.72);
  color: var(--nhs-navy);
  font-size: 0.85rem;
}

.forecast-driver-card,
.forecast-audit-card,
.forecast-audit-row,
.forecast-medication-row {
  border-radius: 22px;
}

.forecast-driver-card {
  padding: 14px 16px;
  border-color: #dce8f2;
  background: #fbfcfe;
}

.forecast-audit-card {
  padding: 14px 16px;
  border-color: #dce8f2;
  background: #fbfcfe;
}

.forecast-audit-row,
.forecast-medication-row {
  border-color: #dce8f2;
  background: #fbfcfe;
}

.forecast-modal-kpi,
.forecast-factor-icon,
.forecast-factor-impact {
  border-radius: 18px;
}

.care-mobile-dock {
  left: 12px;
  right: 12px;
  bottom: 12px;
  width: auto;
  padding: 8px 8px calc(8px + env(safe-area-inset-bottom));
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 30px;
  background: linear-gradient(180deg, #002b5f 0%, #001a3b 100%);
  box-shadow: 0 16px 32px rgba(21, 78, 84, 0.28);
}

.care-mobile-dock-link {
  gap: 4px;
  padding: 10px 4px 8px;
  color: rgba(231, 247, 246, 0.74);
  font-size: 0.68rem;
  font-weight: 700;
}

.care-mobile-dock-link.is-active {
  color: #fff;
  background: rgba(255, 255, 255, 0.1);
  border-radius: 20px;
}

.care-mobile-dock-link.is-active::before {
  display: none;
}

@media (max-width: 1279.98px) {
  .workspace-hero,
  .workspace-grid,
  .forecast-priority-queue {
    grid-template-columns: 1fr;
  }

  .workspace-hero-title {
    max-width: none;
  }
}

@media (max-width: 991.98px) {
  .care-shell {
    grid-template-columns: 1fr;
    gap: 0;
    padding: 0;
  }

  .care-main {
    padding: 0 16px 110px;
  }

  .care-header {
    margin: 0 -16px 18px;
    gap: 12px;
  }

  .care-header-main {
    padding: calc(5px + env(safe-area-inset-top, 0px)) 0px 0;
  }

  .care-header-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 12px;
  }

  .care-menu-toggle {
    position: static;
    width: 46px;
    min-height: 46px;
    border: 1px solid var(--border);
    border-radius: 18px;
    background: rgba(255, 255, 255, 0.94);
    color: var(--ink);
    box-shadow: var(--shadow-sm);
    transform: none;
  }

  .care-mobile-brand {
    min-height: 46px;
    padding: 0 14px;
    border: 1px solid var(--border);
    border-radius: 18px;
    background: rgba(255, 255, 255, 0.94);
    box-shadow: var(--shadow-sm);
  }

  .care-mobile-wordmark {
    width: 148px;
    filter: none;
  }

  .care-header-copy {
    padding: 24px 18px;
    border-radius: 28px;
  }

  .care-header-title {
    font-size: clamp(1.7rem, 8vw, 2.6rem);
  }

  .care-header-summary {
    font-size: 0.95rem;
  }

  .care-header-actions {
    grid-template-columns: 1fr 1fr;
    padding: 0 16px;
  }

  .care-header-meta {
    grid-column: 1 / -1;
  }

  .care-header-user {
    display: none !important;
  }

  .workspace-hero-stats,
  .signal-summary-grid,
  .signal-tile-grid,
  .forecast-window-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .forecast-day-card-head {
    flex-direction: column;
    align-items: flex-start;
  }
}

@media (max-width: 767.98px) {
  .workspace-hero-copy,
  .workspace-hero-stats,
  .care-panel {
    border-radius: 22px !important;
  }

  .workspace-hero-title {
    font-size: clamp(1.6rem, 8vw, 2.25rem);
  }

  .workspace-hero-stats,
  .signal-summary-grid,
  .forecast-audit-grid {
    grid-template-columns: 1fr;
  }

  .hero-stat,
  .signal-summary-card,
  .focus-item,
  .signal-tile,
  .forecast-window-card {
    min-height: auto;
  }

  .forecast-window-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

@media (max-width: 575.98px) {
  .care-main {
    padding-bottom: 120px;
  }

  .care-header-actions {
    grid-template-columns: 1fr;
  }

  .care-header-meta,
  .care-action-btn-secondary {
    display: none !important;
  }

  .forecast-window-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .hero-tag,
  .forecast-mini-chip {
    width: 100%;
    justify-content: flex-start;
  }
}

/* ============================================================
   SeizeControl — post-redesign stabilization pass
   Restores disciplined mobile behaviour and denser operational layouts
   ============================================================ */

:root {
  --radius-sm: 12px;
  --radius-md: 16px;
  --radius-lg: 20px;
  --radius-xl: 24px;
  --shadow-sm: 0 10px 24px rgba(22, 50, 75, 0.06);
  --shadow-md: 0 14px 34px rgba(22, 50, 75, 0.09);
  --shadow-lg: 0 18px 42px rgba(22, 50, 75, 0.12);
}

.btn {
  min-height: 46px;
  border-radius: 16px !important;
}

.btn-primary,
.btn-outline-primary,
.panel-link,
.form-control,
.form-select,
.choices__inner,
.care-mobile-brand,
.care-menu-toggle,
.care-mobile-dock-link,
.care-nav-link,
.care-nav-icon,
.forecast-window-card,
.forecast-day-card,
.forecast-priority-row,
.workspace-hero-copy,
.workspace-hero-stats,
.care-panel,
.surface-card,
.warning-flag-card,
.auth-panel,
.auth-aside,
.feature-card,
.summary-card,
.subsection-card,
.workbench-panel,
.action-tile,
.trust-card,
.hero-stat,
.signal-summary-card,
.focus-item,
.signal-tile,
.care-table-shell,
.care-summary-card {
  border-radius: 20px !important;
}

.page-title {
  font-size: clamp(1.9rem, 3.4vw, 2.8rem);
  line-height: 1.02;
}

.workspace-hero-title {
  max-width: 16ch;
  font-size: clamp(1.95rem, 3.35vw, 3rem);
  line-height: 1.02;
}

.workspace-hero-text,
.care-panel-copy,
.section-copy,
.page-subtitle,
.page-note,
.review-copy {
  font-size: 0.98rem;
  line-height: 1.62;
}

.surface-card.dark {
  background: linear-gradient(180deg, #173d61 0%, #143652 100%) !important;
  border-color: rgba(255, 255, 255, 0.08) !important;
}

.surface-card.dark .page-kicker {
  background: rgba(255, 255, 255, 0.14) !important;
  border-color: rgba(255, 255, 255, 0.16) !important;
  color: rgba(255, 255, 255, 0.88) !important;
}

.surface-card.dark .h3,
.surface-card.dark .section-heading,
.surface-card.dark .section-copy,
.surface-card.dark p,
.surface-card.dark span,
.surface-card.dark li,
.surface-card.dark strong,
.surface-card.dark .professional-list i {
  color: rgba(255, 255, 255, 0.9) !important;
}

.surface-card.dark .professional-list span {
  color: rgba(226, 238, 247, 0.88) !important;
}

.page-note.note-inverse {
  background: rgba(255, 255, 255, 0.08) !important;
  border: 1px solid rgba(255, 255, 255, 0.1) !important;
  color: rgba(232, 241, 249, 0.88) !important;
}

.page-note.note-inverse strong {
  color: #fff !important;
}

.forecast-priority-queue {
  display: grid;
  gap: 12px;
}

.forecast-priority-row {
  display: grid;
  grid-template-columns: 78px minmax(0, 1fr) 68px;
  align-items: center;
  gap: 12px;
  width: 100%;
  padding: 14px 16px;
  border: 1px solid #d7e6f2;
  background: linear-gradient(180deg, #ffffff 0%, #fbfcfe 100%);
  color: var(--ink);
  text-align: left;
  box-shadow: var(--shadow-sm);
  transition: transform 0.18s ease, border-color 0.18s ease, box-shadow 0.18s ease;
}

.forecast-priority-row:hover {
  transform: translateY(-1px);
  border-color: #bfd8e9;
  box-shadow: var(--shadow-md);
}

.forecast-priority-level {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 34px;
  padding: 0 10px;
  border-radius: 999px;
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.forecast-priority-row.is-low .forecast-priority-level {
  background: #e8f5ee;
  color: #0a7b43;
}

.forecast-priority-row.is-medium .forecast-priority-level {
  background: #fef4e0;
  color: #9d6900;
}

.forecast-priority-row.is-high .forecast-priority-level {
  background: #fde9e7;
  color: #c6463b;
}

.forecast-priority-main {
  display: grid;
  gap: 2px;
  min-width: 0;
}

.forecast-priority-main strong {
  font-size: 0.98rem;
  line-height: 1.25;
}

.forecast-priority-main span,
.forecast-priority-main em {
  color: var(--ink-soft);
  font-size: 0.82rem;
  line-height: 1.35;
}

.forecast-priority-main em {
  font-style: normal;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.forecast-priority-row .forecast-priority-score {
  justify-self: end;
  font-size: 1.5rem;
  font-weight: 800;
  line-height: 1;
  letter-spacing: 0;
}

.history-edit-dialog .modal-content {
  max-height: calc(100dvh - 1rem);
  border-radius: 22px;
}

.history-edit-dialog .modal-body {
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}

.history-edit-dialog .modal-footer {
  position: sticky;
  bottom: 0;
  background: var(--surface);
}

@media (max-width: 991.98px) {
  .page-title {
    font-size: clamp(1.8rem, 4.8vw, 2.45rem);
  }

  .workspace-hero-title {
    font-size: clamp(1.8rem, 5vw, 2.6rem);
  }
}

@media (max-width: 767.98px) {
  .care-main {
    padding: calc(8px + env(safe-area-inset-top, 0px)) 16px calc(112px + env(safe-area-inset-bottom, 0px));
  }

  .care-header {
    grid-template-columns: 1fr;
    margin: 0 0 14px;
    padding-top: 0;
    gap: 12px;
    background: transparent;
  }

  .care-header-main {
    display: grid;
    gap: 12px;
    width: 100%;
    justify-items: stretch;
  }

  .care-header-bar {
    min-height: auto;
    padding: calc(10px + env(safe-area-inset-top, 0px)) 0px 0px;
    border: 1px solid var(--border);
    border-radius: 22px;
    background: rgba(255, 255, 255, 0.96);
    box-shadow: var(--shadow-sm);
  }

  .care-menu-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    min-height: 44px;
    background: var(--nhs-navy) !important;
    border-color: rgba(18, 61, 97, 0.18) !important;
    color: #fff !important;
    box-shadow: none;
  }

  .care-mobile-brand {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    padding: 0 16px;
    background: var(--nhs-navy) !important;
    border-color: rgba(18, 61, 97, 0.18) !important;
  }

  .care-mobile-wordmark {
    width: 144px;
    filter: none;
  }

  .care-header-copy {
    padding: 18px 18px 16px;
    background: rgba(255, 255, 255, 0.96);
  }

  .care-header-title {
    font-size: clamp(1.55rem, 8vw, 2.15rem);
    line-height: 1.03;
  }

  .care-header-summary {
    display: none;
  }

  .care-header-actions {
    grid-template-columns: 1fr;
    gap: 10px;
    padding: 0;
    background: transparent;
  }

  .care-header-meta,
  .care-header-user,
  .care-action-btn-secondary {
    display: none !important;
  }

  .care-action-btn {
    min-height: 48px;
    padding: 0 16px;
  }

  .page-title {
    font-size: clamp(1.7rem, 7.8vw, 2.15rem);
  }

  .workspace-hero-title {
    max-width: 12ch;
    font-size: clamp(1.65rem, 7.8vw, 2.15rem);
  }

  .workspace-hero-text,
  .page-subtitle,
  .section-copy,
  .care-panel-copy {
    font-size: 0.95rem;
  }

  .care-mobile-dock {
    padding: 6px 8px max(8px, env(safe-area-inset-bottom));
    border-radius: 22px 22px 0 0;
    background: linear-gradient(180deg, #173d61 0%, #123654 100%);
    box-shadow: 0 -8px 28px rgba(22, 50, 75, 0.18);
  }

  .care-mobile-dock-link {
    min-height: 58px;
    padding: 8px 0 6px;
    color: rgba(232, 242, 250, 0.8);
  }

  .care-mobile-dock-link i {
    font-size: 1.05rem;
  }

  .care-mobile-dock-link span {
    font-size: 0.72rem;
  }

  .care-mobile-dock-link.is-active {
    background: rgba(255, 255, 255, 0.12);
    color: #fff;
  }

  .care-mobile-dock-link.is-active::before {
    display: none;
  }

  .forecast-day-card {
    padding: 16px;
  }

  .forecast-day-card-head {
    margin-bottom: 12px;
    flex-direction: row;
    align-items: flex-start;
  }

  .forecast-day-card-summary {
    min-height: 32px;
    padding: 0 10px;
    font-size: 0.72rem;
  }

  .forecast-window-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 8px;
  }

  .forecast-window-card {
    gap: 7px;
    min-height: 132px;
    padding: 12px 8px;
  }

  .forecast-window-head span {
    font-size: 0.76rem;
  }

  .forecast-window-head small {
    font-size: 0.58rem;
  }

  .forecast-window-score {
    font-size: 1rem;
  }

  .forecast-window-level {
    font-size: 0.62rem;
  }

  .forecast-window-driver-row {
    gap: 4px;
  }

  .forecast-driver-dot {
    width: 24px;
    height: 24px;
  }

  .forecast-priority-row {
    grid-template-columns: 68px minmax(0, 1fr) 56px;
    gap: 10px;
    padding: 12px 14px;
  }

  .forecast-priority-main strong {
    font-size: 0.92rem;
  }

  .forecast-priority-main span,
  .forecast-priority-main em {
    font-size: 0.76rem;
  }

  .forecast-priority-row .forecast-priority-score {
    font-size: 1.25rem;
  }

  .form-control,
  .form-select,
  input[type="date"],
  input[type="time"],
  input[type="number"],
  input[type="text"],
  input[type="email"],
  input[type="password"],
  textarea,
  .awesomplete > input {
    font-size: 16px !important;
  }
}

@media (max-width: 575.98px) {
  .history-edit-dialog {
    margin: 0;
  }

  .history-edit-dialog .modal-content {
    max-height: 100dvh;
    border-radius: 0;
  }
}

/* ============================================================
   SeizeControl — shell unification pass
   Standardises the authenticated mobile rhythm across pages
   ============================================================ */

.care-content {
  gap: 20px;
}

.page-hero,
.workspace-hero,
.section-split,
.care-entry-section {
  margin: 0;
}

.page-hero,
.workspace-hero-copy,
.workspace-hero-stats {
  border-radius: 22px !important;
}

.dashboard-grid,
.content-grid,
.workspace-grid,
.care-intake-shell {
  align-items: start;
}

.page-title,
.workspace-hero-title,
.care-header-title {
  letter-spacing: 0;
}

.page-title {
  font-size: clamp(1.75rem, 3vw, 2.5rem);
  line-height: 1.04;
}

.workspace-hero-title {
  font-size: clamp(1.8rem, 3.15vw, 2.7rem);
  line-height: 1.04;
}

.hero-stat strong {
  font-size: clamp(1.4rem, 1.7vw, 1.9rem);
}

.signal-summary-card strong,
.focus-item strong,
.signal-tile strong {
  font-size: 1.1rem;
}

.care-action-btn {
  justify-content: center;
}

.care-action-btn-primary {
  width: 100%;
}

.page-actions .btn,
.page-actions button {
  justify-content: center;
}

@media (max-width: 991.98px) {
  .dashboard-grid,
  .content-grid,
  .workspace-grid,
  .care-intake-shell {
    grid-template-columns: 1fr;
    gap: 14px;
  }

  .page-hero,
  .workspace-hero-copy,
  .workspace-hero-stats,
  .care-panel,
  .surface-card,
  .care-form-section {
    padding: 18px;
  }

  .page-actions {
    display: grid;
    grid-template-columns: 1fr;
  }

  .page-actions .btn,
  .page-actions button {
    width: 100%;
  }
}

@media (max-width: 767.98px) {
  .care-main {
    padding: 8px 16px calc(112px + env(safe-area-inset-bottom, 0px));
  }

  .care-header {
    display: grid;
    grid-template-columns: 1fr;
    align-items: stretch;
    justify-content: normal;
    width: 100%;
    margin-bottom: 14px;
    padding-top: 0;
    gap: 12px;
    background: transparent;
  }

  .care-header-main {
    display: grid;
    gap: 12px;
    width: 100%;
    justify-items: stretch;
  }

  .care-header-bar {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: auto;
    width: 100%;
    padding: 10px 14px;
    border: 1px solid var(--border);
    border-radius: 22px;
    background: rgba(255, 255, 255, 0.96);
    box-shadow: var(--shadow-sm);
    position: relative;
  }

  .care-menu-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    position: absolute;
    left: 14px;
    top: 50%;
    transform: translateY(-50%);
    width: 44px;
    min-height: 44px;
    border-radius: 18px !important;
    background: var(--nhs-navy) !important;
    border-color: rgba(18, 61, 97, 0.18) !important;
    color: #fff !important;
    box-shadow: none;
  }

  .care-mobile-brand {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: auto;
    max-width: none;
    min-height: 44px;
    padding: 0 16px;
    border-radius: 18px !important;
    justify-self: auto;
    background: var(--nhs-navy) !important;
    border-color: rgba(18, 61, 97, 0.18) !important;
  }

  .care-mobile-wordmark {
    width: 144px;
    filter: none;
  }

  .care-header-copy {
    display: none;
  }

  .care-header-actions {
    grid-template-columns: 1fr;
    gap: 10px;
    width: 100%;
    padding: 0;
    background: transparent;
    justify-items: stretch;
  }

  .care-header-meta,
  .care-header-user,
  .care-action-btn-secondary {
    display: none !important;
  }

  .care-action-btn {
    min-height: 48px;
    width: 100%;
    padding: 0 16px;
  }

  .page-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    margin-top: 14px;
  }

  .page-actions > :only-child {
    grid-column: 1 / -1;
  }

  .page-actions .btn,
  .page-actions button {
    min-height: 46px;
    padding: 0 10px;
    font-size: 0.84rem;
    line-height: 1.15;
    white-space: nowrap;
  }

  .page-actions .btn i,
  .page-actions button i {
    display: none;
  }

  .page-hero,
  .workspace-hero-copy,
  .workspace-hero-stats,
  .care-panel,
  .surface-card,
  .care-form-section {
    padding: 14px;
    border-radius: 18px !important;
  }

  .page-title,
  .workspace-hero-title {
    max-width: none;
    width: 100%;
    font-size: clamp(1.4rem, 6.4vw, 1.9rem);
    line-height: 1.02;
  }

  .page-subtitle,
  .workspace-hero-text,
  .section-copy,
  .care-panel-copy {
    font-size: 0.88rem;
    line-height: 1.48;
  }

  .hero-stat {
    min-height: 0;
    padding: 14px 14px 16px;
  }

  .hero-stat strong {
    font-size: 1.25rem;
  }

  .workspace-hero-tags {
    gap: 8px;
  }

  .hero-tag {
    min-height: 38px;
    padding: 0 12px;
    font-size: 0.78rem;
  }

  .care-mobile-dock {
    left: 16px;
    right: 16px;
    bottom: max(12px, env(safe-area-inset-bottom));
    width: auto;
    padding: 6px;
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 20px;
    background: linear-gradient(180deg, #c9005a 0%, #b00050 100%);
    box-shadow: 0 16px 34px rgba(36, 124, 129, 0.24);
  }

  .care-mobile-dock-link {
    min-height: 56px;
    padding: 6px 2px;
    gap: 4px;
    border-radius: 14px;
    line-height: 1.05;
  }

  .care-mobile-dock-link i {
    font-size: 0.95rem;
    line-height: 1;
  }

  .care-mobile-dock-link span {
    font-size: 0.66rem;
    line-height: 1.1;
  }

  .care-mobile-dock-link.is-active {
    background: rgba(255, 255, 255, 0.12);
    border: 1px solid rgba(255, 255, 255, 0.08);
  }
}

/* ── Brand Asset Corrections ─────────────────────────────── */
.care-mobile-brand {
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  padding: 0 !important;
  min-height: auto !important;
  width: auto !important;
  max-width: none !important;
}

.care-mobile-wordmark {
  width: 164px !important;
  max-width: none;
  display: block;
  filter: none !important;
}

.care-menu-toggle {
  background: var(--nhs-blue) !important;
  border-color: rgba(31, 106, 112, 0.18) !important;
}

.care-mobile-dock {
  background: linear-gradient(180deg, #c9005a 0%, #b00050 100%) !important;
  border-color: rgba(255, 255, 255, 0.14) !important;
  box-shadow: 0 16px 34px rgba(36, 124, 129, 0.24) !important;
}

.care-mobile-dock-link {
  color: rgba(245, 249, 255, 0.78) !important;
}

.care-mobile-dock-link.is-active {
  background: rgba(255, 255, 255, 0.16) !important;
}

@media (max-width: 575.98px) {
  .care-mobile-wordmark {
    width: 154px !important;
  }
}

/* ============================================================
   FNDConnect brand alignment pass
   Restores the shared navy / magenta ecosystem identity.
   ============================================================ */

:root {
  --fnd-navy: #002b5f;
  --fnd-deep-navy: #001a3b;
  --fnd-blue: #104778;
  --fnd-magenta: #c9005a;
  --fnd-rose: #ed2b7b;
  --fnd-pale: #fff1f7;
  --fnd-panel: #f7f9fc;
  --nhs-navy: var(--fnd-navy);
  --nhs-navy-dark: var(--fnd-deep-navy);
  --nhs-navy-mid: var(--fnd-blue);
  --nhs-blue: var(--fnd-magenta);
  --nhs-blue-light: var(--fnd-rose);
  --nhs-blue-pale: var(--fnd-pale);
  --nhs-blue-bg: #fff7fb;
  --bg: var(--fnd-panel);
  --surface: rgba(255, 255, 255, 0.96);
  --surface-alt: #fbfcfe;
  --surface-muted: #edf5fc;
  --ink: #061b3d;
  --ink-soft: #4c5b73;
  --ink-faint: #66758c;
  --border: #dfe6ef;
  --border-strong: #cfd9e8;
  --border-focus: #ffdd00;
  --rail-bg: var(--fnd-deep-navy);
  --rail-bg-hover: #08254f;
  --rail-bg-active: var(--fnd-navy);
}

body.app-body {
  background:
    radial-gradient(circle at top right, rgba(237, 43, 123, 0.1), transparent 30%),
    linear-gradient(112deg, #f8fbff 0%, #ffffff 54%, #fff1f7 100%) !important;
}

.btn-primary,
.care-action-btn-primary {
  background: linear-gradient(180deg, var(--fnd-rose) 0%, var(--fnd-magenta) 100%) !important;
  border-color: var(--fnd-magenta) !important;
  box-shadow: 0 14px 28px rgba(201, 0, 90, 0.16) !important;
}

.btn-primary:hover,
.btn-primary:focus,
.care-action-btn-primary:hover,
.care-action-btn-primary:focus {
  background: linear-gradient(180deg, #d91c6b 0%, #a9004d 100%) !important;
  border-color: #a9004d !important;
}

.btn-outline-primary,
.panel-link {
  border-color: rgba(201, 0, 90, 0.32) !important;
  color: var(--fnd-magenta) !important;
}

.btn-outline-primary:hover,
.btn-outline-primary:focus,
.panel-link:hover {
  background: var(--fnd-pale) !important;
  border-color: var(--fnd-magenta) !important;
  color: var(--fnd-navy) !important;
}

.public-shell {
  background: rgba(255, 255, 255, 0.98) !important;
  border-bottom: 1px solid var(--border) !important;
  box-shadow: 0 8px 28px rgba(0, 43, 95, 0.05);
  backdrop-filter: blur(12px);
}

.public-topbar {
  background: linear-gradient(90deg, var(--fnd-deep-navy), var(--fnd-navy));
  color: #ffffff;
  font-size: 0.88rem;
  line-height: 1.35;
  box-shadow: inset 0 -3px 0 rgba(201, 0, 90, 0.34);
}

.public-topbar-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding-top: 0.45rem;
  padding-bottom: 0.45rem;
}

.public-topbar a {
  color: #ffffff;
  font-weight: 800;
}

.public-nav {
  min-height: 86px;
  height: auto;
}

.public-shell .navbar-collapse {
  display: flex !important;
  flex-basis: auto;
  flex-grow: 0;
  align-items: center;
  justify-content: flex-end;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
}

.public-brand {
  color: var(--ink);
}

.public-brand-wordmark {
  width: 250px;
  max-height: 86px;
  object-fit: contain;
}

.public-brand-tagline {
  color: var(--ink-soft);
  border-left-color: var(--border);
  font-weight: 700;
}

.public-nav-toggle {
  display: none;
  min-width: 48px;
  min-height: 48px;
  border: 2px solid var(--fnd-navy) !important;
  border-radius: 8px;
  color: var(--fnd-navy) !important;
  background: #ffffff;
}

.public-nav-toggle i {
  font-size: 1.5rem;
  line-height: 1;
}

.public-nav-link {
  min-height: 44px;
  border-radius: 8px;
  color: var(--ink);
  font-weight: 800;
}

.public-nav-link:hover,
.public-nav-link.is-active {
  background: var(--fnd-pale);
  border-color: rgba(201, 0, 90, 0.22);
  color: var(--fnd-navy);
}

.public-hero-copy,
.public-display-board,
.public-feature-card,
.public-proof-card,
.public-ecosystem-band,
.care-panel,
.surface-card,
.warning-flag-card,
.auth-panel,
.auth-aside,
.feature-card,
.summary-card,
.subsection-card,
.workbench-panel,
.action-tile,
.trust-card {
  border-color: var(--border) !important;
  background: rgba(255, 255, 255, 0.96) !important;
  box-shadow: 0 14px 34px rgba(0, 43, 95, 0.08), 0 4px 14px rgba(201, 0, 90, 0.04) !important;
}

.public-hero-copy h1,
.public-feature-card h2,
.public-proof-value,
.public-ecosystem-copy h2,
.care-header-title,
.workspace-hero-title,
.page-title,
.section-heading {
  color: var(--ink) !important;
}

.public-badge,
.care-panel-kicker,
.page-kicker,
.eyebrow {
  background: var(--fnd-pale) !important;
  border-color: rgba(201, 0, 90, 0.24) !important;
  color: var(--fnd-navy) !important;
}

.public-display-status {
  background: var(--fnd-pale);
  border-color: rgba(201, 0, 90, 0.24);
  color: var(--fnd-magenta);
}

.public-display-panel .care-panel-kicker {
  align-self: start;
  justify-self: start;
  width: auto;
  max-width: max-content;
  min-height: 0;
}

.public-display-panel,
.public-value-card,
.public-signal-list li,
.public-record-mini div,
.public-ecosystem-roles article {
  border-color: var(--border);
  background: #ffffff;
}

.public-ecosystem-band {
  background: linear-gradient(135deg, rgba(255, 255, 255, 0.98), rgba(255, 241, 247, 0.82)) !important;
}

.public-ecosystem-roles span,
.public-footer-label,
.care-rail-card-label,
.hero-tag i,
.context-chip,
.care-nav-icon,
.care-rail-card a {
  color: var(--fnd-magenta) !important;
}

.public-footer {
  background: linear-gradient(135deg, var(--fnd-deep-navy), var(--fnd-navy)) !important;
}

.public-footer-wordmark {
  width: 260px;
  max-width: 100%;
  padding: 0.35rem;
  border-radius: 8px;
  background: #ffffff;
}

.public-footer-brand p,
.public-footer-base {
  color: rgba(230, 240, 251, 0.78);
}

.public-footer-links a {
  color: rgba(255, 255, 255, 0.86);
}

.public-footer-links a:hover {
  color: #ffffff;
}

.care-rail {
  border-color: var(--border);
  background: rgba(255, 255, 255, 0.95);
}

.care-brand {
  display: grid;
  gap: 0;
}

.care-brand-wordmark {
  width: 186px;
  max-height: 96px;
  object-fit: contain;
}

.care-brand-copy {
  display: none;
}

.care-nav-link.is-active {
  background: linear-gradient(180deg, #ffffff 0%, var(--fnd-pale) 100%);
  border-color: rgba(201, 0, 90, 0.22);
}

.care-nav-link.is-active .care-nav-icon,
.care-patient-icon {
  background: var(--fnd-pale);
  border-color: rgba(201, 0, 90, 0.18);
  color: var(--fnd-magenta);
}

.care-mobile-dock {
  background: linear-gradient(180deg, var(--fnd-navy) 0%, var(--fnd-deep-navy) 100%) !important;
  box-shadow: 0 16px 34px rgba(0, 43, 95, 0.24) !important;
}

.care-menu-toggle {
  background: var(--fnd-navy) !important;
  border-color: rgba(0, 43, 95, 0.18) !important;
}

.care-mobile-brand {
  background: transparent !important;
}

.care-mobile-wordmark {
  width: 186px !important;
  max-height: 76px;
  object-fit: contain;
}

.public-pathway-band {
  display: grid;
  grid-template-columns: minmax(0, 0.95fr) minmax(340px, 1fr);
  gap: 20px;
  align-items: stretch;
  margin-top: 24px;
  padding: 28px;
  border: 1px solid var(--border) !important;
  border-radius: var(--radius-xl);
  background: linear-gradient(135deg, rgba(255, 255, 255, 0.98), rgba(255, 241, 247, 0.82)) !important;
  box-shadow: 0 14px 34px rgba(0, 43, 95, 0.08), 0 4px 14px rgba(201, 0, 90, 0.04) !important;
}

.public-clinical-band {
  display: grid;
  gap: 20px;
  margin-top: 24px;
  padding: 28px;
  border: 1px solid var(--border) !important;
  border-radius: var(--radius-xl);
  background: rgba(255, 255, 255, 0.96) !important;
  box-shadow: 0 14px 34px rgba(0, 43, 95, 0.08), 0 4px 14px rgba(201, 0, 90, 0.04) !important;
}

.public-clinical-copy {
  max-width: 760px;
}

.public-pathway-copy h2 {
  max-width: 17ch;
  margin-top: 14px;
  color: var(--ink) !important;
  font-size: clamp(1.65rem, 3vw, 2.45rem);
  line-height: 1.05;
}

.public-clinical-copy h2 {
  max-width: 17ch;
  margin-top: 14px;
  color: var(--ink) !important;
  font-size: clamp(1.65rem, 3vw, 2.45rem);
  line-height: 1.05;
}

.public-pathway-copy p {
  max-width: 62ch;
  margin: 16px 0 0;
  color: var(--ink-soft);
  font-size: 0.98rem;
  line-height: 1.68;
}

.public-clinical-copy p {
  max-width: 64ch;
  margin: 16px 0 0;
  color: var(--ink-soft);
  font-size: 0.98rem;
  line-height: 1.68;
}

.public-pathway-steps {
  display: grid;
  gap: 12px;
}

.public-clinical-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.public-pathway-steps article {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 0.35rem 0.85rem;
  align-items: start;
  padding: 18px;
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  background: #ffffff;
}

.public-clinical-grid article {
  display: grid;
  gap: 0.45rem;
  align-content: start;
  padding: 18px;
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  background: #ffffff;
}

.public-clinical-grid span {
  color: var(--fnd-magenta);
  font-size: 0.72rem;
  font-weight: 900;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.public-pathway-steps span {
  display: grid;
  place-items: center;
  width: 2.25rem;
  height: 2.25rem;
  border-radius: 999px;
  color: #ffffff;
  background: var(--fnd-magenta);
  font-weight: 900;
}

.public-pathway-steps strong {
  color: var(--ink);
  font-size: 1.05rem;
  line-height: 1.25;
}

.public-clinical-grid strong {
  color: var(--ink);
  font-size: 1.05rem;
  line-height: 1.25;
}

.public-pathway-steps p {
  grid-column: 2;
  margin: 0;
  color: var(--ink-soft);
  font-size: 0.92rem;
  line-height: 1.55;
}

.public-clinical-grid p {
  margin: 0;
  color: var(--ink-soft);
  font-size: 0.92rem;
  line-height: 1.55;
}

.public-clinical-boundary {
  margin: 0;
  padding: 16px;
  border: 1px solid rgba(201, 0, 90, 0.22);
  border-radius: var(--radius-lg);
  background: var(--fnd-pale);
  color: var(--ink-soft);
  line-height: 1.58;
}

.public-clinical-boundary strong {
  color: var(--fnd-navy);
}

@media (max-width: 991.98px) {
  .public-brand-wordmark {
    width: 220px;
  }

  .public-pathway-band,
  .public-clinical-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 767.98px) {
  .public-nav {
    min-height: auto;
    padding: 10px 0;
  }

  .public-shell .navbar-collapse {
    display: none !important;
    flex-basis: 100%;
    width: 100%;
    margin-top: 0.75rem;
    padding: 0.85rem;
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    background: #ffffff;
  }

  .public-shell .navbar-collapse.show {
    display: block !important;
  }

  .public-nav-actions {
    display: grid;
    gap: 0.45rem;
    width: 100%;
  }

  .public-nav-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
  }

  .public-topbar-inner {
    align-items: flex-start;
    flex-direction: column;
    gap: 0.25rem;
  }

  .public-brand-wordmark {
    width: 188px;
  }

  .public-brand-tagline {
    display: none !important;
  }

  .public-pathway-band,
  .public-clinical-band {
    padding: 22px;
  }
}

@media (max-width: 575.98px) {
  .care-mobile-wordmark {
    width: 176px !important;
  }
}

/* ============================================================
   SeizeControl final brand polish and contrast hardening
   ============================================================ */

:root {
  --fnd-navy: #002b5f;
  --fnd-deep-navy: #001a3b;
  --fnd-blue: #104778;
  --fnd-magenta: #c9005a;
  --fnd-rose: #ed2b7b;
  --fnd-pale: #fff1f7;
  --fnd-panel: #f7f9fc;
  --fnd-border: #dfe6ef;
  --fnd-border-strong: #cfd9e8;
  --status-success: #2f8f72;
  --status-success-bg: #e7f5ef;
  --status-warning: #b76418;
  --status-warning-bg: #fff2e4;
  --status-danger: #b73b38;
  --status-danger-bg: #fbeaea;
  --phase-ovulation: #4f46e5;
  --phase-ovulation-border: #c7d2fe;
  --phase-ovulation-bg: #eef2ff;

  --nhs-navy: var(--fnd-navy);
  --nhs-navy-dark: var(--fnd-deep-navy);
  --nhs-navy-mid: var(--fnd-blue);
  --nhs-blue: var(--fnd-magenta);
  --nhs-blue-light: var(--fnd-rose);
  --nhs-blue-pale: var(--fnd-pale);
  --nhs-blue-bg: #fff7fb;
  --nhs-green: var(--status-success);
  --nhs-green-bg: var(--status-success-bg);
  --nhs-amber: var(--status-warning);
  --nhs-amber-bg: var(--status-warning-bg);
  --nhs-red: var(--status-danger);
  --nhs-red-bg: var(--status-danger-bg);
  --bg: var(--fnd-panel);
  --surface: rgba(255, 255, 255, 0.97);
  --surface-alt: #fbfcfe;
  --surface-muted: #edf5fc;
  --ink: #061b3d;
  --ink-soft: #4c5b73;
  --ink-faint: #66758c;
  --ink-disabled: #8b98aa;
  --border: var(--fnd-border);
  --border-strong: var(--fnd-border-strong);
  --border-focus: var(--fnd-magenta);
  --rail-bg: #ffffff;
  --rail-bg-hover: #fff7fb;
  --rail-bg-active: var(--fnd-pale);
  --rail-text: var(--ink-soft);
  --rail-text-dim: #66758c;
  --font-sans: 'Manrope', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --font-mono: 'IBM Plex Mono', 'Courier New', monospace;
}

body.app-body,
body.app-authenticated,
button,
input,
select,
textarea {
  font-family: var(--font-sans);
}

h1,
h2,
h3,
h4,
h5,
h6,
.page-title,
.section-heading,
.subsection-title,
.care-header-title,
.workspace-hero-title,
.public-hero-copy h1 {
  font-family: var(--font-sans) !important;
  color: var(--ink);
  letter-spacing: 0;
}

code,
kbd,
pre,
.care-mono,
.clinical-label,
.forecast-cell-score,
.metric-code {
  font-family: var(--font-mono);
}

.public-hero-copy,
.workspace-hero-copy,
.workspace-hero-stats,
.page-hero,
.care-header,
.auth-panel,
.auth-aside,
.surface-card,
.warning-flag-card,
.review-pack-hero,
.review-pack-command,
.forecast-driver-card,
.forecast-audit-card,
.forecast-priority-row,
.care-panel,
.care-kpi-card,
.metric-card {
  border-color: var(--border) !important;
  background: rgba(255, 255, 255, 0.97) !important;
  color: var(--ink);
}

.public-hero-copy,
.workspace-hero-copy,
.page-hero,
.review-pack-hero {
  position: relative;
  overflow: hidden;
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.99), rgba(255, 247, 251, 0.94) 56%, rgba(248, 251, 255, 0.98)) !important;
  box-shadow: 0 18px 44px rgba(0, 43, 95, 0.09), 0 8px 22px rgba(201, 0, 90, 0.05) !important;
}

.public-hero-copy::before,
.workspace-hero-copy::before,
.page-hero::before,
.review-pack-hero::before {
  content: '';
  position: absolute;
  inset: 0 0 auto;
  height: 5px;
  background: linear-gradient(90deg, var(--fnd-navy), var(--fnd-magenta), var(--fnd-rose));
  opacity: 0.9;
}

.public-hero-copy > *,
.workspace-hero-copy > *,
.page-hero > *,
.review-pack-hero > * {
  position: relative;
  z-index: 1;
}

.public-display-board,
.public-display-panel,
.public-feature-card,
.public-proof-card,
.public-value-card,
.public-ecosystem-band,
.public-pathway-band,
.public-clinical-band,
.public-clinical-boundary,
.public-signal-list li,
.public-record-mini div,
.public-ecosystem-roles article,
.review-pack-item,
.care-summary-card,
.care-inline-metrics article,
.care-chart-shell,
.care-empty-state,
.empty-state {
  color: var(--ink);
}

.public-hero-copy p,
.public-feature-card p,
.public-proof-card p,
.public-pathway-copy p,
.public-clinical-copy p,
.public-ecosystem-copy p,
.public-clinical-boundary,
.page-subtitle,
.page-note,
.section-copy,
.care-panel-copy,
.care-kpi-note,
.metric-card-label,
.review-copy,
.review-pack-meta,
.review-pack-item p,
.forecast-driver-copy span,
.forecast-priority-when span,
.forecast-audit-card span:last-child,
.forecast-medication-row span,
.empty-state p {
  color: var(--ink-soft) !important;
}

.care-muted,
.text-muted,
.small.text-muted,
.care-summary-label,
.care-kpi-label,
.forecast-audit-label,
.forecast-cell-label,
.form-text {
  color: var(--ink-faint) !important;
}

.public-badge,
.care-panel-kicker,
.page-kicker,
.eyebrow,
.public-display-status,
.context-chip,
.badge.text-bg-light {
  background: var(--fnd-pale) !important;
  border: 1px solid rgba(201, 0, 90, 0.24) !important;
  color: var(--fnd-navy) !important;
}

.badge.text-bg-secondary,
.badge.bg-secondary,
.badge.bg-light {
  background: #edf5fc !important;
  color: var(--fnd-navy) !important;
}

.badge.text-bg-success,
.badge.bg-success,
.alert-success,
.review-pack-status.is-success {
  background-color: var(--status-success-bg) !important;
  color: #1f7058 !important;
  border-color: rgba(47, 143, 114, 0.25) !important;
}

.badge.text-bg-warning,
.badge.bg-warning,
.alert-warning {
  background-color: var(--status-warning-bg) !important;
  color: #8d4b12 !important;
  border-color: rgba(183, 100, 24, 0.28) !important;
}

.badge.text-bg-danger,
.badge.bg-danger,
.alert-danger,
.review-pack-status.is-error {
  background-color: var(--status-danger-bg) !important;
  color: #96312f !important;
  border-color: rgba(183, 59, 56, 0.28) !important;
}

.public-topbar,
.public-footer,
.surface-card.dark,
.care-mobile-dock,
.care-mobile-offcanvas,
.today-page .today-panel-accent,
.today-page .today-context-card {
  color: #ffffff !important;
}

.public-topbar p,
.public-topbar span,
.public-footer p,
.public-footer li,
.public-footer-base,
.surface-card.dark p,
.surface-card.dark span,
.care-mobile-offcanvas p,
.care-mobile-offcanvas span,
.today-page .today-panel-accent p,
.today-page .today-panel-accent span,
.today-page .today-context-card p,
.today-page .today-context-card span {
  color: rgba(245, 249, 255, 0.82) !important;
}

.public-topbar strong,
.public-footer strong,
.public-footer a,
.surface-card.dark h1,
.surface-card.dark h2,
.surface-card.dark h3,
.surface-card.dark strong,
.care-mobile-offcanvas h1,
.care-mobile-offcanvas h2,
.care-mobile-offcanvas h3,
.care-mobile-offcanvas strong,
.today-page .today-panel-accent h2,
.today-page .today-panel-accent h3,
.today-page .today-panel-accent strong,
.today-page .today-context-card h2,
.today-page .today-context-card h3,
.today-page .today-context-card strong {
  color: #ffffff !important;
}

.care-rail {
  background: rgba(255, 255, 255, 0.97) !important;
  border-right-color: var(--border) !important;
  box-shadow: 12px 0 30px rgba(0, 43, 95, 0.05);
}

.care-rail::before {
  background: linear-gradient(180deg, var(--fnd-magenta), var(--fnd-rose));
}

.care-rail-label,
.care-rail-card-label {
  color: var(--ink-faint) !important;
}

.care-nav-link {
  color: var(--ink-soft) !important;
  font-weight: 800;
}

.care-nav-link:hover {
  background: var(--fnd-pale) !important;
  border-color: rgba(201, 0, 90, 0.18) !important;
  color: var(--fnd-navy) !important;
}

.care-nav-link.is-active {
  background: linear-gradient(180deg, #ffffff 0%, var(--fnd-pale) 100%) !important;
  border-color: rgba(201, 0, 90, 0.26) !important;
  color: var(--fnd-navy) !important;
  box-shadow: 0 10px 24px rgba(201, 0, 90, 0.08);
}

.care-nav-copy {
  color: inherit;
}

.care-nav-icon,
.care-nav-link.is-active .care-nav-icon,
.care-patient-icon {
  background: var(--fnd-pale) !important;
  border-color: rgba(201, 0, 90, 0.18) !important;
  color: var(--fnd-magenta) !important;
}

.care-rail-card,
.care-patient-chip {
  background: #ffffff !important;
  border-color: var(--border) !important;
  color: var(--ink-soft) !important;
}

.care-rail-card strong,
.care-patient-chip strong {
  color: var(--ink) !important;
}

.care-rail-card p,
.care-patient-chip span:last-child {
  color: var(--ink-soft) !important;
}

.care-signout {
  background: #fff5f5 !important;
  border-color: rgba(183, 59, 56, 0.24) !important;
  color: #96312f !important;
}

.care-signout:hover {
  background: #fbeaea !important;
  color: #7c2624 !important;
}

.care-header {
  background: rgba(247, 249, 252, 0.94) !important;
  backdrop-filter: blur(16px);
}

.care-header-label,
.care-header-summary,
.care-header-meta-label,
.care-header-meta small,
.care-header-user span,
.workspace-hero-text,
.hero-stat small {
  color: var(--ink-soft) !important;
}

.care-header-meta,
.care-header-chip,
.care-header-user {
  background: #ffffff !important;
  border-color: var(--border) !important;
  color: var(--ink) !important;
}

.care-mobile-brand {
  background: #ffffff !important;
  border-color: var(--border) !important;
}

.care-mobile-dock-link {
  color: rgba(245, 249, 255, 0.78) !important;
}

.care-mobile-dock-link:hover,
.care-mobile-dock-link.is-active {
  color: #ffffff !important;
}

.care-mobile-dock-link.is-active {
  background: rgba(255, 255, 255, 0.13) !important;
}

.btn-primary,
.care-action-btn-primary,
.public-nav-link.btn-primary {
  color: #ffffff !important;
}

.btn-light {
  background: #ffffff !important;
  border-color: var(--border) !important;
  color: var(--fnd-navy) !important;
}

.btn-outline-primary,
.panel-link {
  background: #ffffff !important;
  border-color: rgba(201, 0, 90, 0.34) !important;
  color: var(--fnd-magenta) !important;
}

.btn-outline-primary:hover,
.btn-outline-primary:focus,
.panel-link:hover,
.panel-link:focus {
  background: var(--fnd-pale) !important;
  border-color: var(--fnd-magenta) !important;
  color: var(--fnd-navy) !important;
}

.btn:disabled,
.btn.disabled,
fieldset:disabled .btn {
  background: #edf1f6 !important;
  border-color: #d7e0eb !important;
  color: #69778a !important;
  opacity: 1;
}

.form-control,
.form-select,
.form-check-input,
.form-range,
textarea.form-control {
  background-color: #ffffff;
  border-color: var(--border);
  color: var(--ink);
}

.form-control:focus,
.form-select:focus,
.form-check-input:focus {
  border-color: var(--fnd-magenta);
  box-shadow: 0 0 0 0.2rem rgba(201, 0, 90, 0.16);
}

.form-control::placeholder,
textarea.form-control::placeholder {
  color: #728196;
  opacity: 1;
}

.table {
  color: var(--ink);
}

.table thead th,
.table th {
  color: var(--fnd-navy);
}

.care-phase-ovulation {
  background: var(--phase-ovulation-bg) !important;
  border-color: var(--phase-ovulation-border) !important;
  color: var(--phase-ovulation) !important;
}

.btn-primary,
.care-action-btn-primary,
.public-nav-link.btn-primary,
.pwa-assistant-action.btn-primary {
  background-color: var(--fnd-magenta) !important;
  background-image: linear-gradient(180deg, var(--fnd-rose) 0%, var(--fnd-magenta) 100%) !important;
}

.care-action-btn-primary,
.care-action-btn-primary span,
.btn-primary span,
.pwa-assistant-action.btn-primary span {
  color: #ffffff !important;
}

.btn:disabled,
.btn.disabled,
fieldset:disabled .btn {
  color: var(--ink-soft) !important;
}

.table thead th,
.table th {
  color: var(--fnd-navy) !important;
}

.public-topbar,
.public-footer,
.care-mobile-dock,
.care-mobile-offcanvas,
.surface-card.dark,
.today-page .today-panel-accent,
.today-page .today-context-card {
  background-color: var(--fnd-deep-navy) !important;
}

.surface-card.dark {
  background-image: linear-gradient(150deg, var(--fnd-navy), var(--fnd-deep-navy)) !important;
}

.surface-card.dark .page-kicker,
.surface-card.dark .eyebrow,
.today-page .today-panel-accent .care-panel-kicker,
.today-page .today-context-card .care-panel-kicker {
  background: rgba(255, 255, 255, 0.13) !important;
  border-color: rgba(255, 255, 255, 0.22) !important;
  color: #ffffff !important;
}

.public-footer-label {
  color: #ffc4dd !important;
}

/* ── Clinician aggregate insights preview ────────────────── */
.clinician-hero,
.public-clinician-preview {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(360px, 0.95fr);
  gap: 22px;
  align-items: stretch;
}

.clinician-hero-copy,
.clinician-data-panel,
.clinician-method-band,
.clinician-table-section,
.clinician-panel,
.clinician-portal-band,
.public-clinician-preview,
.public-clinician-preview-table article {
  border: 1px solid var(--border);
  border-radius: var(--radius-xl);
  background: rgba(255, 255, 255, 0.97);
  box-shadow: 0 14px 34px rgba(0, 43, 95, 0.08), 0 4px 14px rgba(201, 0, 90, 0.04);
}

.clinician-hero-copy {
  position: relative;
  overflow: hidden;
  padding: clamp(28px, 4vw, 48px);
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.99), rgba(255, 247, 251, 0.95) 58%, rgba(248, 251, 255, 0.98));
}

.clinician-hero-copy::before,
.clinician-table-section::before {
  content: '';
  position: absolute;
  inset: 0 0 auto;
  height: 5px;
  background: linear-gradient(90deg, var(--fnd-navy), var(--fnd-magenta), var(--fnd-rose));
}

.clinician-hero-copy h1 {
  max-width: 15ch;
  margin: 18px 0 0;
  color: var(--ink);
  font-size: clamp(2.5rem, 5vw, 5rem);
  line-height: 0.96;
}

.clinician-hero-copy p {
  max-width: 70ch;
  margin: 20px 0 0;
  color: var(--ink-soft);
  font-size: 1.02rem;
  line-height: 1.72;
}

.clinician-data-panel {
  display: grid;
  gap: 18px;
  align-content: center;
  padding: clamp(24px, 3vw, 34px);
  background-color: var(--fnd-deep-navy) !important;
  background-image: linear-gradient(150deg, var(--fnd-navy), var(--fnd-deep-navy)) !important;
  color: #ffffff;
}

.clinician-data-panel p,
.clinician-data-panel small,
.clinician-data-panel span {
  color: rgba(245, 249, 255, 0.82) !important;
}

.clinician-data-panel strong,
.clinician-data-panel b {
  color: #ffffff !important;
}

.clinician-data-panel .care-panel-kicker {
  width: max-content;
  background-color: rgba(255, 255, 255, 0.13) !important;
  border-color: rgba(255, 255, 255, 0.22) !important;
  color: #ffffff !important;
}

.clinician-kpi-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.clinician-kpi-grid article,
.public-clinician-preview-stats article {
  display: grid;
  gap: 8px;
  min-width: 0;
  padding: 16px;
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: var(--radius-lg);
  background: rgba(255, 255, 255, 0.08);
}

.clinician-data-panel .clinician-kpi-grid article {
  background-color: #102f55;
}

.clinician-kpi-grid span,
.public-clinician-preview-stats span {
  color: rgba(245, 249, 255, 0.76);
  font-size: 0.72rem;
  font-weight: 900;
  letter-spacing: 0.09em;
  text-transform: uppercase;
}

.clinician-kpi-grid strong,
.public-clinician-preview-stats strong {
  color: #ffffff;
  font-size: clamp(1.45rem, 2vw, 2rem);
  line-height: 1.05;
}

.clinician-kpi-grid small,
.clinician-method-note {
  color: rgba(245, 249, 255, 0.78);
  line-height: 1.5;
}

.clinician-method-band,
.clinician-portal-band {
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(360px, 1.1fr);
  gap: 24px;
  align-items: start;
  margin-top: 24px;
  padding: clamp(24px, 3vw, 34px);
}

.clinician-method-band h2,
.clinician-portal-band h2,
.clinician-section-head h2,
.public-clinician-preview-copy h2,
.clinician-panel h2 {
  margin-top: 14px;
  color: var(--ink);
  line-height: 1.04;
}

.clinician-method-band p,
.clinician-portal-band p,
.clinician-section-head p,
.public-clinician-preview-copy p,
.clinician-panel p {
  color: var(--ink-soft);
  line-height: 1.65;
}

.clinician-method-list,
.clinician-portal-list,
.clinician-theme-list {
  display: grid;
  gap: 12px;
}

.clinician-method-list article,
.clinician-portal-list article,
.clinician-theme-list div {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 12px;
  align-items: start;
  padding: 14px;
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  background: #ffffff;
}

.clinician-method-list i {
  color: var(--fnd-magenta);
}

.clinician-method-list span,
.clinician-portal-list p,
.clinician-theme-list span {
  margin: 0;
  color: var(--ink-soft);
  line-height: 1.55;
}

.clinician-portal-list article span {
  width: 10px;
  height: 10px;
  margin-top: 7px;
  border-radius: 999px;
  background: var(--fnd-magenta);
}

.clinician-table-section {
  position: relative;
  overflow: hidden;
  margin-top: 24px;
  padding: clamp(24px, 3vw, 34px);
}

.clinician-section-head {
  max-width: 820px;
}

.clinician-signal-table-wrap {
  width: 100%;
  margin-top: 22px;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.clinician-signal-table {
  width: 100%;
  min-width: 960px;
  border-collapse: separate;
  border-spacing: 0;
  color: var(--ink);
}

.clinician-signal-table th,
.clinician-signal-table td {
  padding: 16px;
  border-bottom: 1px solid var(--border);
  vertical-align: top;
  text-align: left;
}

.clinician-signal-table th {
  background: #edf5fc;
  color: var(--fnd-navy);
  font-size: 0.72rem;
  font-weight: 900;
  letter-spacing: 0.09em;
  text-transform: uppercase;
}

.clinician-signal-table td {
  color: var(--ink-soft);
  line-height: 1.55;
}

.clinician-signal-table td strong {
  color: var(--ink);
}

.clinician-status-pill,
.clinician-coming-soon {
  display: inline-flex;
  align-items: center;
  min-height: 34px;
  padding: 0 0.8rem;
  border: 1px solid rgba(201, 0, 90, 0.24);
  border-radius: 999px;
  background: var(--fnd-pale);
  color: var(--fnd-navy);
  font-size: 0.76rem;
  font-weight: 900;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  white-space: nowrap;
}

.clinician-grid-section {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px;
  margin-top: 24px;
}

.clinician-panel {
  padding: 24px;
}

.clinician-bar-list {
  display: grid;
  gap: 14px;
  margin-top: 18px;
}

.clinician-bar-row {
  display: grid;
  grid-template-columns: minmax(130px, 0.5fr) minmax(160px, 1fr) auto;
  gap: 14px;
  align-items: center;
}

.clinician-bar-row strong,
.clinician-theme-list strong {
  display: block;
  color: var(--ink);
}

.clinician-bar-row span {
  color: var(--ink-faint);
  font-size: 0.84rem;
}

.clinician-bar-track {
  height: 10px;
  overflow: hidden;
  border-radius: 999px;
  background: #edf5fc;
}

.clinician-bar-track span {
  display: block;
  height: 100%;
  min-width: 8px;
  border-radius: inherit;
  background: linear-gradient(90deg, var(--fnd-magenta), var(--fnd-rose));
}

.clinician-bar-row b {
  color: var(--fnd-navy);
}

.clinician-theme-list div {
  grid-template-columns: 1fr;
}

.clinician-phase-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin-top: 18px;
}

.clinician-phase-grid div {
  display: grid;
  gap: 8px;
  padding: 16px;
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  background: #fbfcfe;
}

.clinician-phase-grid span {
  color: var(--ink-faint);
  font-size: 0.72rem;
  font-weight: 900;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.clinician-phase-grid strong {
  color: var(--ink);
  font-size: 1.2rem;
}

.clinician-portal-actions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 12px;
  grid-column: 1 / -1;
}

.public-clinician-preview {
  margin-top: 24px;
  padding: clamp(24px, 3vw, 34px);
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.99), rgba(255, 247, 251, 0.9));
}

.public-clinician-preview-copy {
  display: grid;
  gap: 16px;
  align-content: start;
}

.public-clinician-preview-copy h2 {
  max-width: 18ch;
  font-size: clamp(1.8rem, 3vw, 2.65rem);
}

.public-clinician-preview-stats {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.public-clinician-preview-stats article {
  border-color: var(--border);
  background: var(--fnd-navy);
}

.public-clinician-preview-table {
  display: grid;
  gap: 12px;
}

.public-clinician-preview-table article {
  padding: 16px;
}

.public-clinician-preview-table span {
  color: var(--fnd-magenta);
  font-size: 0.72rem;
  font-weight: 900;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.public-clinician-preview-table strong {
  display: block;
  margin-top: 6px;
  color: var(--ink);
}

.public-clinician-preview-table p {
  margin: 8px 0 0;
  color: var(--ink-soft);
  line-height: 1.55;
}

@media (max-width: 991.98px) {
  .clinician-hero,
  .clinician-method-band,
  .clinician-portal-band,
  .public-clinician-preview {
    grid-template-columns: 1fr;
  }

  .clinician-grid-section {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 767.98px) {
  .clinician-kpi-grid,
  .public-clinician-preview-stats,
  .clinician-phase-grid {
    grid-template-columns: 1fr;
  }

  .clinician-bar-row {
    grid-template-columns: 1fr;
    gap: 8px;
  }
}

/* ============================================================
   Authenticated app reset — remove page drift and align with FND Connect
   ============================================================ */

body.app-authenticated {
  background:
    linear-gradient(112deg, #f8fbff 0%, #ffffff 52%, #fff5fa 100%) !important;
}

.app-authenticated .care-shell {
  grid-template-columns: 286px minmax(0, 1fr) !important;
  gap: 0 !important;
  background: transparent !important;
}

.app-authenticated .care-main {
  width: 100% !important;
  max-width: none !important;
  padding: 28px 32px 48px !important;
  background: transparent !important;
}

.app-authenticated .care-content {
  width: 100% !important;
  max-width: none !important;
  gap: 22px !important;
  overflow: visible !important;
}

.app-authenticated .care-rail {
  top: 28px !important;
  margin: 28px 0 28px 28px !important;
  max-height: calc(100vh - 56px) !important;
  min-height: calc(100vh - 56px) !important;
  border: 1px solid var(--border) !important;
  border-radius: 24px !important;
  background: rgba(255, 255, 255, 0.98) !important;
  box-shadow: 0 18px 42px rgba(0, 43, 95, 0.07) !important;
}

.app-authenticated .care-brand {
  padding: 18px 18px 16px !important;
  border-bottom-color: var(--border) !important;
}

.app-authenticated .care-brand-wordmark {
  width: 188px !important;
}

.app-authenticated .care-nav-link {
  min-height: 56px !important;
  border-radius: 18px !important;
}

.app-authenticated .care-nav-link.is-active {
  background: #fff5fa !important;
  border-color: rgba(201, 0, 90, 0.25) !important;
  color: var(--fnd-navy) !important;
  box-shadow: none !important;
}

.app-authenticated .care-nav-icon,
.app-authenticated .care-nav-link.is-active .care-nav-icon,
.app-authenticated .care-patient-icon {
  background: #fff1f7 !important;
  border-color: rgba(201, 0, 90, 0.2) !important;
  color: var(--fnd-magenta) !important;
}

.app-authenticated .care-header {
  position: relative !important;
  top: auto !important;
  z-index: auto !important;
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) minmax(420px, 0.72fr) !important;
  align-items: stretch !important;
  gap: 16px !important;
  margin: 0 0 22px !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  backdrop-filter: none !important;
}

.app-authenticated .care-header::before,
.app-authenticated .care-header::after,
.app-authenticated .page-hero::before,
.app-authenticated .workspace-hero-copy::before,
.app-authenticated .review-pack-hero::before,
.app-authenticated .clinician-hero-copy::before,
.app-authenticated .clinician-table-section::before {
  display: none !important;
}

.app-authenticated .care-header-main,
.app-authenticated .care-header-copy {
  min-width: 0 !important;
  width: 100% !important;
  height: 100% !important;
}

.app-authenticated .care-header-copy,
.app-authenticated .page-hero,
.app-authenticated .workspace-hero-copy,
.app-authenticated .workspace-hero-stats,
.app-authenticated .care-panel,
.app-authenticated .surface-card,
.app-authenticated .care-form-section,
.app-authenticated .today-context-card {
  border: 1px solid var(--border) !important;
  border-radius: 22px !important;
  background: rgba(255, 255, 255, 0.98) !important;
  box-shadow: 0 14px 34px rgba(0, 43, 95, 0.07) !important;
  color: var(--ink) !important;
}

.app-authenticated .care-header-copy {
  display: grid !important;
  align-content: center !important;
  padding: 28px 30px !important;
}

.app-authenticated .care-header-title {
  font-size: clamp(2rem, 2.9vw, 3rem) !important;
  line-height: 1.02 !important;
}

.app-authenticated .care-header-summary {
  max-width: 70ch !important;
  margin-top: 12px !important;
  color: var(--ink-soft) !important;
}

.app-authenticated .care-header-actions {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 12px !important;
  align-content: stretch !important;
  justify-content: stretch !important;
}

.app-authenticated .care-header-chip,
.app-authenticated .care-header-meta,
.app-authenticated .care-header-user,
.app-authenticated .care-action-btn {
  min-width: 0 !important;
  width: 100% !important;
  min-height: 82px !important;
  border-radius: 18px !important;
  border: 1px solid var(--border) !important;
  background: #ffffff !important;
  box-shadow: 0 14px 30px rgba(0, 43, 95, 0.06) !important;
}

.app-authenticated .care-header-user span {
  min-width: 0 !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

.app-authenticated .care-action-btn-primary,
.app-authenticated .btn-primary {
  background: linear-gradient(180deg, var(--fnd-rose) 0%, var(--fnd-magenta) 100%) !important;
  border-color: var(--fnd-magenta) !important;
  color: #ffffff !important;
}

.app-authenticated .care-action-btn-secondary,
.app-authenticated .btn-outline-primary,
.app-authenticated .panel-link {
  background: #ffffff !important;
  border-color: rgba(201, 0, 90, 0.32) !important;
  color: var(--fnd-magenta) !important;
}

.app-authenticated .workspace-hero,
.app-authenticated .workspace-grid,
.today-page .today-shell {
  display: grid !important;
  grid-template-columns: minmax(0, 1.08fr) minmax(360px, 0.92fr) !important;
  gap: 20px !important;
  align-items: start !important;
  width: 100% !important;
}

.app-authenticated .workspace-hero-copy,
.app-authenticated .workspace-hero-stats {
  padding: clamp(22px, 2.4vw, 32px) !important;
}

.app-authenticated .workspace-hero-title,
.today-page .today-hero-date {
  max-width: none !important;
  font-size: clamp(2.2rem, 3.6vw, 4.2rem) !important;
  line-height: 1.02 !important;
  color: var(--ink) !important;
}

.app-authenticated .workspace-hero-text,
.today-page .today-hero-subtitle,
.app-authenticated .care-panel-copy {
  color: var(--ink-soft) !important;
}

.app-authenticated .hero-stat,
.today-page .today-mini-metric,
.today-page .today-action-card,
.today-page .today-driver-card,
.today-page .today-medication-card,
.today-page .today-signal-card,
.today-page .today-recent-card,
.today-page .today-empty {
  border: 1px solid var(--border) !important;
  border-radius: 18px !important;
  background: #ffffff !important;
  box-shadow: none !important;
  color: var(--ink) !important;
}

.app-authenticated .hero-stat {
  min-height: 118px !important;
  padding: 18px !important;
  margin: 0px 0px 20px 0px;
}

.app-authenticated .hero-stat strong,
.today-page .today-signal-value,
.today-page .today-driver-impact strong,
.today-page .today-mini-metric strong,
.today-page .today-action-title,
.today-page .today-driver-title,
.today-page .today-medication-title {
  color: var(--ink) !important;
}

.today-page {
  display: grid !important;
  gap: 22px !important;
}

.today-page .today-main,
.today-page .today-side,
.today-page .today-actions-grid,
.today-page .today-driver-grid,
.today-page .today-medication-list,
.today-page .today-signal-grid,
.today-page .today-recent-list {
  display: grid !important;
  gap: 16px !important;
}

.today-page .today-panel-accent,
.today-page .today-context-card {
  background: #ffffff !important;
  background-image: none !important;
  border-color: var(--border) !important;
  color: var(--ink) !important;
}

.today-page .today-panel-accent .care-panel-title,
.today-page .today-panel-accent .care-panel-copy,
.today-page .today-panel-accent .care-panel-kicker,
.today-page .today-context-card .care-panel-kicker,
.today-page .today-context-card .today-context-copy,
.today-page .today-context-card .today-generated-note,
.today-page .today-context-card h2,
.today-page .today-context-card h3,
.today-page .today-context-card strong,
.today-page .today-context-card span,
.today-page .today-context-card p {
  color: inherit !important;
}

.today-page .today-panel-accent {
  border-top: 1px solid var(--border) !important;
}

.today-page .today-context-card {
  border-top: 1px solid var(--border) !important;
  padding: 22px !important;
}

.today-page .today-panel-accent .care-panel-kicker,
.today-page .today-context-card .care-panel-kicker,
.app-authenticated .care-panel-kicker,
.app-authenticated .hero-tag {
  background: #fff1f7 !important;
  border-color: rgba(201, 0, 90, 0.24) !important;
  color: var(--fnd-navy) !important;
}

.today-page .today-action-card,
.today-page .today-driver-card,
.today-page .today-medication-card,
.today-page .today-signal-card,
.today-page .today-recent-card,
.today-page .today-empty {
  padding: 16px !important;
}

.today-page .today-action-card.is-urgent,
.today-page .today-chip.is-urgent,
.today-page .today-action-priority.is-urgent {
  background: #fbeaea !important;
  border-color: rgba(183, 59, 56, 0.24) !important;
  color: #96312f !important;
}

.today-page .today-action-card.is-watch,
.today-page .today-driver-card.is-raising,
.today-page .today-signal-card.is-watch,
.today-page .today-chip.is-watch,
.today-page .today-action-priority.is-watch {
  background: #fff8ed !important;
  border-color: rgba(183, 100, 24, 0.22) !important;
  color: #8d4b12 !important;
}

.today-page .today-action-card.is-support,
.today-page .today-signal-card.is-steady,
.today-page .today-driver-card.is-reducing,
.today-page .today-chip.is-support,
.today-page .today-chip.is-steady,
.today-page .today-action-priority.is-support,
.today-page .today-action-priority.is-steady {
  background: #f8fbff !important;
  border-color: var(--border) !important;
  color: var(--fnd-navy) !important;
}

.today-page .today-action-detail,
.today-page .today-driver-detail,
.today-page .today-recent-detail,
.today-page .today-context-copy,
.today-page .today-medication-meta,
.today-page .today-signal-detail,
.today-page .today-generated-note,
.today-page .today-recent-meta {
  color: var(--ink-soft) !important;
}

.today-page .today-panel-accent .today-action-card,
.today-page .today-panel-accent .today-action-card .today-action-title,
.today-page .today-panel-accent .today-action-card .today-action-link,
.today-page .today-panel-accent .today-action-card .today-action-link span {
  color: var(--ink) !important;
}

.today-page .today-panel-accent .today-action-card .today-action-detail {
  color: var(--ink-soft) !important;
}

.today-page .today-signal-grid,
.today-page .today-medication-metrics {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 12px !important;
}

.today-page .today-medication-metrics {
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
}

.today-page .today-action-icon,
.today-page .today-driver-icon,
.today-page .today-signal-icon {
  background: #fff1f7 !important;
  color: var(--fnd-magenta) !important;
}

.today-page .today-driver-card {
  display: grid !important;
  grid-template-columns: auto minmax(0, 1fr) auto !important;
  align-items: start !important;
  gap: 14px !important;
}

.today-page .today-driver-impact {
  min-width: 4.4rem !important;
  text-align: right !important;
}

.care-context-stack {
  display: grid;
  gap: 12px;
}

.care-context-core,
.care-context-panel {
  border: 1px solid var(--border);
  border-radius: 18px;
  background: #ffffff;
}

.care-context-core {
  padding: 18px;
}

.care-context-panel {
  overflow: hidden;
  box-shadow: none;
}

.care-context-panel[open] {
  border-color: rgba(201, 0, 90, 0.28);
}

.care-context-panel summary {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
  padding: 16px 18px;
  cursor: pointer;
  list-style: none;
}

.care-context-panel summary::-webkit-details-marker {
  display: none;
}

.care-context-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  border-radius: 14px;
  background: #fff1f7;
  color: var(--fnd-magenta);
}

.care-context-panel summary strong {
  display: block;
  color: var(--ink);
  font-size: 0.98rem;
  line-height: 1.25;
}

.care-context-panel summary small {
  display: block;
  margin-top: 2px;
  color: var(--ink-soft);
  font-size: 0.84rem;
  line-height: 1.4;
}

.care-context-chevron {
  color: var(--ink-faint);
  transition: transform 0.14s ease;
}

.care-context-panel[open] .care-context-chevron {
  transform: rotate(180deg);
}

.care-context-body {
  padding: 0 18px 18px;
}

.care-context-grid {
  display: grid;
  gap: 18px;
}

.care-context-body .tag-pill-group {
  gap: 8px;
}

.tag-pill {
  appearance: none !important;
  -webkit-appearance: none !important;
  min-height: 38px;
  border-radius: 999px !important;
  background: #ffffff !important;
  background-color: #ffffff !important;
  background-image: none !important;
  border-color: var(--border) !important;
  color: var(--ink-soft) !important;
}

.tag-pill:hover {
  background: #fff7fb !important;
  border-color: rgba(201, 0, 90, 0.28) !important;
  color: var(--fnd-navy) !important;
}

.tag-pill.is-selected {
  background: var(--fnd-navy) !important;
  background-color: var(--fnd-navy) !important;
  background-image: none !important;
  border-color: var(--fnd-navy) !important;
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
  box-shadow: inset 0 0 0 999px var(--fnd-navy) !important;
}

.tag-pill.is-selected:hover,
.tag-pill.is-selected:focus,
.tag-pill.is-selected:focus-visible,
.tag-pill.is-selected:active {
  background: var(--fnd-navy) !important;
  background-color: var(--fnd-navy) !important;
  background-image: none !important;
  border-color: var(--fnd-navy) !important;
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
  box-shadow: inset 0 0 0 999px var(--fnd-navy) !important;
  outline-color: rgba(201, 0, 90, 0.32);
}

@media (max-width: 1199.98px) {
  .app-authenticated .care-header,
  .app-authenticated .workspace-hero,
  .app-authenticated .workspace-grid,
  .today-page .today-shell {
    grid-template-columns: 1fr !important;
  }

  .app-authenticated .care-header-actions {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 991.98px) {
  .app-authenticated .care-shell {
    grid-template-columns: 1fr !important;
  }

  .app-authenticated .care-main {
    padding: 16px 16px calc(112px + env(safe-area-inset-bottom, 0px)) !important;
  }
}

@media (max-width: 767.98px) {
  .app-authenticated .care-header-actions,
  .today-page .today-signal-grid,
  .today-page .today-medication-metrics {
    grid-template-columns: 1fr !important;
  }

  .app-authenticated .care-header-chip,
  .app-authenticated .care-header-meta,
  .app-authenticated .care-header-user,
  .app-authenticated .care-action-btn {
    min-height: 52px !important;
  }

  .today-page .today-driver-card {
    grid-template-columns: auto minmax(0, 1fr) !important;
  }

  .today-page .today-driver-impact {
    grid-column: 2 !important;
    text-align: left !important;
  }

  .care-context-panel summary {
    grid-template-columns: minmax(0, 1fr) auto;
  }

  .care-context-icon {
    display: none;
  }
}
