/* Shared presentation adapters. Theme and typography values belong to tokens.css. */
html {
  font-family: var(--u-font-sans);
  color: var(--u-ink);
  background: var(--u-paper);
  line-height: var(--u-leading-body);
}
body {
  color: var(--u-ink);
  background: var(--u-paper);
  font-family: var(--u-font-sans);
}
*, *::before, *::after { box-sizing: border-box; }
p, li, dd, blockquote { max-inline-size: var(--u-measure); }
h1, h2, h3 { overflow-wrap: anywhere; }
button, input, select, textarea {
  font-family: var(--u-font-sans);
  font-size: var(--u-text-sm);
  line-height: var(--u-leading-snug);
}
input, select, textarea {
  color: var(--u-ink);
  background: var(--u-surface);
  border: 1px solid var(--u-line-strong);
  border-radius: var(--u-radius-control);
  max-inline-size: 100%;
}
button.u-action {
  color: var(--u-accent);
  background: var(--u-surface) !important;
  border: 1px solid var(--u-accent) !important;
  border-radius: var(--u-radius-control);
  white-space: normal;
  overflow-wrap: anywhere;
  max-inline-size: 100%;
  block-size: auto;
  text-align: start;
}
button.u-action:hover { background: var(--u-accent-tint) !important; }
button.u-action.u-action--primary {
  color: var(--u-on-accent);
  background: var(--u-accent) !important;
}
button.u-action.u-action--primary:hover { background: var(--u-accent-hover) !important; }
button.u-action:active { transform: translateY(1px); }
button.u-action:disabled { opacity: 1; cursor: default; border-color: var(--u-line-strong); }
.u-note { border: 0; cursor: default; color: var(--u-ink-muted); }
body > header, .chapter-header nav, #map-controls {
  flex-wrap: wrap;
  block-size: auto;
  min-inline-size: 0;
}
body > header { padding-block: var(--u-space-3); gap: var(--u-space-4); }
.locale-control {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--u-space-2);
  margin-inline-start: auto;
  font-size: var(--u-text-xs);
  color: var(--u-ink-muted);
}
.locale-control select { padding: var(--u-space-2); }
.stage-card, .paper, .reading-root { border-radius: var(--u-radius-surface); }
.year-marker, .guide-period, .reading-meta, .stage-card > small,
.doi, .locator, time, code { font-family: var(--u-font-mono); }
.stage-card > small, .meta, .authors { color: var(--u-ink-faint); }
.u-grid > * { min-inline-size: 0; }
.question-lens > * { grid-column: auto; grid-row: auto; }
.concept-toggle i { display: none; }
@media (max-width: 600px) {
  body > header { margin-inline: var(--u-space-3); }
  .chapter-header { padding-inline: 0; }
  .locale-control { margin-inline-start: 0; }
  .filters, .map-heading, .reading-heading, .toolbar, .workspace-top { flex-wrap: wrap; }
}

/* Preserve vertical chapter labels; only the containing grid changes column count. */
#chapter-steps button { display: block; }
#chapter-steps button b { white-space: normal; }
.shell.u-grid { gap: 0; }
.reading-layout.u-grid { align-items: start; }
.reading-map { overflow: auto; }
#growth { min-block-size: 75dvh; }
#reading-path { flex-wrap: wrap; }
@media (max-width: 600px) {
  .sidebar nav { flex-wrap: wrap; }
}

input::placeholder, textarea::placeholder { color: var(--u-ink-faint); opacity: 1; }
