/* Reading controls keep the current paper/ink identity; rem respects browser text preferences. */
html[data-text="large"] {
  --type-caption: .9375rem;
  --type-body: 1.0625rem;
  --type-heading: 1.3125rem;
  --control-line: #8a8a8a;
}
.text-size-toggle { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 8px 14px; margin: 0 0 8px; border: 1px solid var(--control-line, var(--line)); border-radius: 0; color: var(--ink); background: transparent; font-family: var(--sans); font-size: var(--type-body); line-height: 1.5; cursor: pointer; }
.text-size-toggle[aria-pressed="true"] { border-color: var(--ink); font-weight: 600; text-decoration: underline; text-underline-offset: 5px; }
.text-size-toggle:focus-visible { outline: 2px solid var(--ink); outline-offset: 3px; }
.reading-settings-status { margin: 0 0 8px; color: var(--muted); font-size: var(--type-caption); line-height: 1.7; }
.reading-settings-status:empty { display: none; }
.sidebar-footer > .reading-settings-status:not(:empty) { display: block; font-family: var(--sans); font-size: var(--type-caption); line-height: 1.7; }
.sidebar-footer { display: flex; flex-direction: column; align-items: flex-start; }
.sidebar .search-box { padding: 0 10px; }
.sidebar .search-box input { min-height: 44px; padding-block: 6px; font-size: max(1rem, var(--type-body)); }
.novice-picks-links a { display: inline-flex; align-items: center; min-height: 44px; padding-inline: 6px; font-size: var(--type-body); }

/* Text from later feature sheets shares the same scale as the main reading surfaces. */
.journey-heading h2, .journey-card h3, .checklist-next-copy strong,
.triage-group > h2, .triage-group .urgent-note h3, .triage-quick-nav h2,
.triage-toggle, .budget-calculator h3, .search-group-heading .search-group-title { font-size: var(--type-heading); }
.journey-body, .journey-timing-note, .journey-links a, .checklist-next-copy,
.triage-intro, .triage-group .urgent-note > p, .triage-quick-nav > p,
.triage-quick-list button, .emergency-contact-editor > summary,
.emergency-contact-form label, .emergency-contact button, .guide-page-footer a,
.checklist-tool-buttons button, .budget-calculator p, .budget-fields label,
.guide-overview > summary, .help-link, .dossier-section-body > p:not(.dossier-cite):not(.dossier-footnote) { font-size: var(--type-body); }
.journey-caption, .journey-swipe-hint, .journey-day, .journey-ranges button,
.checklist-next-label, .checklist-next-button, .guide-source a,
.guide-source-summary, .urgent-note .guide-source-summary,
.urgent-note .triage-source-explanation .guide-source-summary,
.triage-source-links a, .triage-source-fold > summary, .triage-source-title,
.source-summary, #detail-sources .source-summary, .novice-picks h2,
.search-category, .search-group-count, .emergency-contact-hint,
.emergency-contact-privacy, .emergency-contact-status,
.emergency-contact .emergency-contact-clear, .care-health-note p, .care-health-note a { font-size: var(--type-caption); line-height: 1.7; }
.triage-panel > .triage-body, .triage-immediate-action,
.emergency-contact-call, .emergency-contact-form input { font-size: max(1rem, var(--type-body)); }
.emergency-contact-hospital { font-size: var(--type-body); }
.dossier-sources .source-reference a { display: inline-flex; align-items: center; min-height: 44px; }

html[data-text="large"] :is(h1, #collection-title, .guide-header h1, #cover-view .intro h1, .sources-page h1, .sidebar .brand) { font-family: var(--sans); font-weight: 500; line-height: 1.3; letter-spacing: 0; }
html[data-text="large"] .sidebar .brand { font-size: 1.5rem; }
html[data-text="large"] .collection-count { white-space: normal; }
html[data-text="large"] :is(.detail-actions button, .dossier-actions button, .dossier-back, .sidebar .search-box, .help-link, .catalog-disclosure summary, .catalog-controls select, .catalog-controls button, .collection-pagination button, .care-topic-filters button, .sidebar-toggle, .journey-ranges button, .checklist-next-button, .checklist-tool-buttons button, .emergency-contact-form input, .emergency-contact button) { border-color: var(--control-line); }
html[data-text="large"] :is(.dossier-actions button[aria-pressed="true"], .care-topic-filters button[aria-pressed="true"]) { border-color: var(--ink); }
html[data-text="large"] .dossier-risk-head { flex-wrap: wrap; }
html[data-text="large"] .sidebar-link { white-space: normal; }
@media (max-width: 880px) {
  .sidebar[data-menu-open="true"] .sidebar-footer { display: flex; margin-top: 12px; padding-top: 12px; }
  .sidebar[data-menu-open="false"] .sidebar-footer { display: none; }
}
@media (max-width: 600px) {
  html[data-text="large"] :is(h1, #collection-title, .guide-header h1, #cover-view .intro h1, .sources-page h1) { font-size: 2.25rem; }
  html[data-text="large"] .collection-header { flex-wrap: wrap; }
  html[data-text="large"] .collection-sketch { display: none; }
  html[data-text="large"] .collection-tools { width: 100%; align-items: flex-start; }
  html[data-text="large"] .dossier-topbar { flex-wrap: wrap; }
}
@media (max-height: 520px) and (max-width: 880px) {
  .sidebar { position: static; }
  .dossier-nav { top: 0; }
}

#card-gallery #deck .cat-card .card-title { font-size: var(--type-body); }
#card-gallery #deck .cat-card[data-offset="0"] .card-title { font-size: var(--type-heading); }
#card-gallery #deck .fan-image-fallback { font-size: var(--type-caption); }
