:root {
  color-scheme: only light;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;
  font-synthesis: none;
  text-rendering: optimizeLegibility;
  --ink: #082955;
  --ink-soft: #36506c;
  --teal: #087f88;
  --teal-dark: #05666e;
  --mist: #eef7fb;
  --mist-deep: #e1f0f6;
  --paper: #ffffff;
  --paper-soft: #fbfdfe;
  --ochre: #a96700;
  --ochre-pale: #fff7e8;
  --line: #c8dce5;
  --line-dark: #9ab5c2;
  --focus: #005fcc;
  /* DESIGN.md specifies a 1180px page container and an 820px reading measure.
     These are held in rem so both grow with the reader's browser font size
     rather than pinning to CSS pixels; at the 16px default they resolve to
     exactly the specified widths. */
  --page: 73.75rem;
  --reading: 51.25rem;
}

* {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  min-width: 20rem;
  min-height: 100vh;
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-size: 1.0625rem;
  line-height: 1.65;
}

a {
  color: var(--teal-dark);
  text-underline-offset: 0.18em;
}

a:hover {
  color: var(--ink);
}

a,
summary {
  outline-offset: 0.25rem;
}

:focus-visible {
  outline: 0.1875rem solid var(--focus);
}

.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

::selection {
  background: #cbe7e3;
  color: var(--ink);
}

h1,
h2,
h3 {
  margin: 0 0 0.7em;
  color: var(--ink);
  font-family: "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;
  font-weight: 500;
  line-height: 1.08;
  text-wrap: balance;
}

h1 {
  max-width: 15ch;
  font-size: clamp(2.75rem, 6vw, 5.4rem);
  letter-spacing: -0.045em;
}

h2 {
  font-size: clamp(2rem, 4vw, 3.35rem);
  letter-spacing: -0.03em;
}

h3 {
  font-size: clamp(1.35rem, 2.5vw, 1.85rem);
  letter-spacing: -0.02em;
}

p,
ul,
dl {
  margin: 0 0 1.15rem;
}

.page-width,
.site-header__inner,
.site-footer__inner,
.page-hero__inner,
.content-stream {
  width: min(calc(100% - 3rem), var(--page));
  margin-inline: auto;
}

.skip-link {
  position: fixed;
  z-index: 1000;
  top: 1rem;
  left: 1rem;
  transform: translateY(-180%);
  padding: 0.7rem 1rem;
  background: var(--ink);
  color: white;
  font-weight: 700;
}

.skip-link:focus {
  transform: translateY(0);
}

.site-header {
  border-bottom: 1px solid var(--line);
  background: var(--paper);
}

.site-header__inner {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  min-height: 5.15rem;
  gap: 2.25rem;
}

.wordmark {
  color: var(--ink);
  font-family: "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;
  font-size: 1.65rem;
  font-weight: 600;
  letter-spacing: -0.035em;
  line-height: 1;
  text-decoration: none;
  white-space: nowrap;
}

.wordmark span {
  color: var(--teal);
  font-weight: 400;
}

.mobile-menu {
  display: none;
}

.desktop-navigation {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 0.25rem;
}

.desktop-navigation a,
.mobile-menu a {
  display: inline-flex;
  min-height: 2.75rem;
  align-items: center;
  padding: 0.55rem 0.7rem;
  border-bottom: 2px solid transparent;
  color: var(--ink-soft);
  font-size: 0.88rem;
  font-weight: 650;
  line-height: 1.25;
  text-decoration: none;
}

.desktop-navigation a:hover,
.desktop-navigation a[aria-current="page"],
.mobile-menu a:hover,
.mobile-menu a[aria-current="page"] {
  border-bottom-color: var(--teal);
  color: var(--ink);
}

.proof-status {
  padding: 0.55rem 1rem;
  border-bottom: 1px solid #e2c58f;
  background: var(--ochre-pale);
  color: #6e4513;
  font-size: 0.88rem;
  text-align: center;
}

.breadcrumbs,
.rights-local-navigation {
  width: min(calc(100% - 3rem), var(--page));
  margin: 1rem auto 0;
  color: var(--ink-soft);
  font-size: 0.92rem;
}

.rights-local-navigation {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem 1rem;
  padding-block: 0.75rem;
  border-block: 1px solid var(--line);
}

.rights-local-navigation a[aria-current="page"] {
  color: var(--ink);
  font-weight: 750;
}

.page-hero {
  border-bottom: 1px solid var(--line);
  background:
    radial-gradient(circle at 78% 12%, rgba(8, 127, 136, 0.08), transparent 26rem),
    linear-gradient(115deg, var(--paper) 5%, var(--mist) 100%);
}

.page-hero__inner {
  padding-block: clamp(3rem, 8vw, 6.5rem);
}

.page-hero--home .page-hero__inner {
  padding-block: clamp(2.75rem, 5vw, 4.5rem);
}

.page-hero--home h1 {
  max-width: 20ch;
}

/* Lead. DESIGN.md sets the serif for hierarchy, leads and the wordmark under
   the Editorial Head, Service Body rule; the production port had rendered this
   in the body sans at a smaller size. */
.page-hero p {
  max-width: 44rem;
  color: var(--ink-soft);
  font-family: "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;
  font-size: clamp(1.3rem, 2.3vw, 1.7rem);
  line-height: 1.45;
}

.content-stream {
  display: grid;
  gap: 1.5rem;
  padding-block: clamp(3rem, 7vw, 6rem);
}

.page-governance {
  display: grid;
  max-width: var(--reading);
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.35rem 1.5rem;
  padding: 1rem 1.25rem;
  border: 1px solid var(--line);
  background: var(--mist);
  font-size: 0.92rem;
}

.page-governance p {
  margin: 0;
}

.page-governance code {
  overflow-wrap: anywhere;
  word-break: break-word;
}

.content-block {
  max-width: var(--reading);
  padding-bottom: 2rem;
  border-bottom: 1px solid var(--line);
}

.content-block:last-child {
  border-bottom: 0;
}

.home-route-list {
  display: grid;
  margin: 1.5rem 0 1.25rem;
  padding: 0;
  gap: 0.75rem;
  list-style: none;
}

.home-route-list li {
  margin: 0;
}

.home-route-list a {
  display: flex;
  min-height: 4rem;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.9rem 1.1rem;
  border: 1px solid var(--line-dark);
  background: var(--paper-soft);
  color: var(--ink);
  font-weight: 750;
  line-height: 1.35;
  text-decoration: none;
}

.home-route-list a:hover {
  border-color: var(--teal);
  background: var(--mist);
  color: var(--ink);
}

.home-route-list a span[aria-hidden="true"] {
  flex: 0 0 auto;
  color: var(--teal-dark);
  font-size: 1.35rem;
}

.navigation-choice-list {
  display: grid;
  margin: 1.5rem 0;
  padding: 0;
  gap: 0.75rem;
  list-style: none;
}

.treatment-orientation {
  padding: clamp(1.15rem, 3vw, 2rem);
  border: 1px solid var(--line-dark);
  border-left: 0.3rem solid var(--teal);
  background: var(--paper-soft);
}

.treatment-orientation h2 {
  margin-top: 0;
}

.orientation-eyebrow {
  margin: 0 0 0.45rem;
  color: var(--teal-dark);
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.navigation-choice-list--treatment {
  counter-reset: treatment-choice;
}

.navigation-choice {
  min-width: 0;
  margin: 0;
  border: 1px solid var(--line);
  background: var(--paper-soft);
}

.navigation-choice--static,
.navigation-choice > a {
  display: grid;
  min-height: 4.5rem;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 0.8rem;
  padding: 0.95rem 1rem;
}

.navigation-choice--static {
  color: var(--ink-soft);
}

.navigation-choice > a {
  color: var(--ink);
  font-weight: 750;
  line-height: 1.4;
  text-decoration: none;
}

.navigation-choice--linked {
  border-color: var(--teal);
  background: var(--mist);
}

.navigation-choice--assessment-boundary {
  border-color: #d9ad6c;
  background: var(--ochre-pale);
}

.navigation-choice > a:hover {
  background: var(--mist-deep);
}

.navigation-choice--assessment-boundary > a:hover {
  background: #ffefcf;
}

.navigation-choice__number {
  min-width: 2rem;
  color: var(--teal-dark);
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.08em;
}

.navigation-choice--assessment-boundary .navigation-choice__number {
  color: #81520b;
}

.navigation-choice__arrow {
  color: var(--teal-dark);
  font-size: 1.25rem;
}

.navigation-choice--assessment-boundary .navigation-choice__arrow {
  color: #81520b;
}

@media (min-width: 48rem) {
  .navigation-choice-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.preparation-tool {
  margin: 1.5rem 0;
  padding: clamp(1rem, 3vw, 1.5rem);
  border: 1px solid var(--line-dark);
  background: var(--mist);
}

.preparation-tool fieldset {
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 0;
}

.preparation-tool legend {
  margin-bottom: 1rem;
  color: var(--ink);
  font-family: "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;
  font-size: clamp(1.2rem, 2.5vw, 1.45rem);
  font-weight: 600;
  line-height: 1.25;
}

.preparation-local-note {
  margin-bottom: 1.25rem;
  padding: 0.8rem 1rem;
  border-left: 0.25rem solid var(--teal);
  background: var(--paper);
  color: var(--ink-soft);
  font-size: 0.95rem;
}

.preparation-list {
  display: grid;
  margin: 0;
  padding: 0;
  gap: 0.8rem;
  list-style: none;
}

.preparation-item {
  min-width: 0;
  padding: 0.9rem;
  border: 1px solid var(--line);
  background: var(--paper);
}

.preparation-choice {
  display: grid;
  grid-template-columns: auto auto minmax(0, 1fr);
  align-items: start;
  gap: 0.7rem;
  color: var(--ink);
  cursor: pointer;
  font-weight: 700;
  line-height: 1.4;
}

.preparation-choice input {
  width: 1.35rem;
  height: 1.35rem;
  margin: 0.12rem 0 0;
  accent-color: var(--teal-dark);
}

.preparation-choice__number {
  min-width: 2rem;
  color: var(--teal-dark);
  font-size: 0.82rem;
  font-weight: 800;
  letter-spacing: 0.08em;
}

.preparation-notes {
  display: grid;
  margin: 0.8rem 0 0 4.05rem;
  gap: 0.35rem;
  color: var(--ink-soft);
  font-size: 0.9rem;
  font-weight: 700;
}

.preparation-notes textarea {
  width: 100%;
  min-height: 5.2rem;
  resize: vertical;
  padding: 0.65rem 0.75rem;
  border: 1px solid var(--line-dark);
  border-radius: 0;
  background: var(--paper-soft);
  color: var(--ink);
  font: inherit;
  font-weight: 400;
  line-height: 1.5;
}

.preparation-print-note {
  margin: 1rem 0 0;
  color: var(--ink-soft);
  font-size: 0.9rem;
}

.action-plan-worksheet {
  display: grid;
  margin: 1.5rem 0;
  padding: clamp(1rem, 3vw, 1.5rem);
  gap: 1.25rem;
  border: 1px solid #d9ad6c;
  background: var(--paper);
}

.while-waiting-worksheet {
  border-color: var(--line-dark);
  background: var(--mist);
}

.while-waiting-worksheet .action-plan-worksheet__boundary {
  border-left-color: var(--teal);
  background: var(--paper);
  color: var(--ink-soft);
}

.while-waiting-worksheet fieldset {
  background: var(--paper);
}

.action-plan-worksheet > * {
  margin-block: 0;
}

.action-plan-worksheet__boundary {
  padding: 0.85rem 1rem;
  border-left: 0.25rem solid var(--ochre);
  background: var(--ochre-pale);
  color: #61401a;
}

.action-plan-worksheet fieldset {
  min-width: 0;
  margin: 0;
  padding: 1rem;
  border: 1px solid var(--line-dark);
}

.action-plan-worksheet legend {
  padding-inline: 0.45rem;
  color: var(--ink);
  font-family: "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;
  font-size: clamp(1.2rem, 2.5vw, 1.5rem);
  font-weight: 600;
  line-height: 1.25;
}

.action-plan-fields {
  display: grid;
  gap: 1rem;
}

.action-plan-field {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: baseline;
  gap: 0.35rem 0.65rem;
  color: var(--ink);
  font-weight: 700;
  line-height: 1.4;
}

.action-plan-field__number {
  color: var(--teal-dark);
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.08em;
}

.action-plan-field textarea {
  grid-column: 1 / -1;
  width: 100%;
  min-height: 6.2rem;
  resize: vertical;
  padding: 0.7rem 0.8rem;
  border: 1px solid var(--line-dark);
  border-radius: 0;
  background: var(--paper-soft);
  color: var(--ink);
  font: inherit;
  font-weight: 400;
  line-height: 1.5;
}

.handoff-list {
  display: grid;
  gap: 1rem;
  margin: 1.5rem 0;
}

.handoff-card,
.handoff-withheld {
  padding: clamp(1rem, 3vw, 1.35rem);
  border: 1px solid var(--line-dark);
  background: var(--paper);
}

.handoff-card__type {
  margin-bottom: 0.35rem;
  color: var(--teal-dark);
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.handoff-card h3 {
  margin-bottom: 0.55rem;
}

.handoff-card dl {
  display: grid;
  grid-template-columns: minmax(7rem, 9rem) 1fr;
  gap: 0.3rem 1rem;
  margin-bottom: 1rem;
}

.handoff-card dt {
  font-weight: 750;
}

.handoff-card dd {
  margin: 0;
}

.handoff-card__limit,
.handoff-withheld,
.handoff-partial {
  color: var(--ink-soft);
  font-size: 0.93rem;
}

.internal-handoff {
  margin: 1.5rem 0 0;
}

.internal-handoff a {
  align-items: center;
  background: var(--teal-dark);
  border: 2px solid var(--teal-dark);
  color: white;
  display: inline-flex;
  font-weight: 700;
  gap: 1rem;
  justify-content: space-between;
  max-width: 22rem;
  padding: 0.8rem 1rem;
  text-decoration: none;
  width: 100%;
}

.internal-handoff a:hover {
  background: var(--ink);
  border-color: var(--ink);
}

.internal-handoff a:focus-visible {
  outline: 3px solid var(--focus);
  outline-offset: 3px;
}

.movement-handoff,
.sensory-handoff,
.speech-handoff,
.cognitive-handoff,
.associated-handoff,
.overlap-handoff {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
  margin: 1.5rem 0;
}

.movement-handoff a,
.sensory-handoff a,
.speech-handoff a,
.cognitive-handoff a,
.associated-handoff a,
.overlap-handoff a {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 0.25rem 1rem;
  align-items: center;
  padding: 1rem;
  border: 1px solid var(--line-dark);
  background: var(--paper);
  color: var(--ink);
  text-decoration: none;
}

.movement-handoff a > span:first-child,
.sensory-handoff a > span:first-child,
.speech-handoff a > span:first-child,
.cognitive-handoff a > span:first-child,
.associated-handoff a > span:first-child,
.overlap-handoff a > span:first-child {
  color: var(--teal-dark);
  font-size: 0.78rem;
  font-weight: 750;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.movement-handoff a > strong,
.sensory-handoff a > strong,
.speech-handoff a > strong,
.cognitive-handoff a > strong,
.associated-handoff a > strong,
.overlap-handoff a > strong {
  grid-column: 1;
}

.movement-handoff a > span:last-child,
.sensory-handoff a > span:last-child,
.speech-handoff a > span:last-child,
.cognitive-handoff a > span:last-child,
.associated-handoff a > span:last-child,
.overlap-handoff a > span:last-child {
  grid-column: 2;
  grid-row: 1 / span 2;
}

.movement-handoff a:hover,
.sensory-handoff a:hover,
.speech-handoff a:hover,
.cognitive-handoff a:hover,
.associated-handoff a:hover,
.overlap-handoff a:hover {
  border-color: var(--teal);
}

.handoff-card__limit,
.handoff-withheld p:last-child,
.handoff-partial {
  margin-bottom: 0;
}

.handoff-withheld {
  margin: 1.5rem 0;
  border-style: dashed;
  background: var(--paper-soft);
}

@media (min-width: 48rem) {
  .home-route-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.content-block--important,
.content-block--safety-critical {
  padding: clamp(1.25rem, 3vw, 2rem);
  border: 1px solid var(--line-dark);
  background: var(--paper-soft);
}

.content-block--safety-critical {
  border-color: #d9ad6c;
  background: var(--ochre-pale);
}

.next-action,
.boundary {
  padding-left: 1rem;
  border-left: 0.25rem solid var(--teal);
}

.boundary {
  border-color: var(--ochre);
  color: #61401a;
}

.evidence-panel {
  margin-top: 1.25rem;
  color: var(--ink-soft);
}

.evidence-panel summary {
  width: fit-content;
  cursor: pointer;
  color: var(--teal-dark);
  font-weight: 700;
}

.evidence-panel ul {
  padding-left: 1.25rem;
}

/* Source citations sit one per line rather than inline in a sentence, so the
   WCAG 2.2 inline exception does not clearly cover them. Padding lifts each
   link past the 24px minimum target without changing the reading rhythm. */
.evidence-panel li {
  margin-block: 0.15rem;
}

.evidence-panel li a {
  display: inline-block;
  padding-block: 0.15rem;
}

.authority-list {
  display: grid;
  gap: 1rem;
  margin-block: 1.25rem;
}

.authority-card {
  padding: 1.2rem;
  border: 1px solid var(--line);
  background: var(--paper-soft);
}

.authority-card h3 {
  font-size: 1.35rem;
}

.directory-list {
  display: grid;
  gap: 1rem;
  margin-top: 1.5rem;
}

.directory-entry {
  padding: 1.35rem;
  border: 1px solid var(--line);
  background: var(--paper-soft);
}

.directory-entry dl {
  display: grid;
  grid-template-columns: minmax(7rem, 10rem) 1fr;
  gap: 0.35rem 1rem;
}

.directory-entry dt {
  font-weight: 750;
}

.directory-entry dd {
  margin: 0;
}

.site-footer {
  padding-block: 2.6rem;
  background: var(--ink);
  color: white;
}

.site-footer__inner {
  display: grid;
  grid-template-columns: 1fr 2fr;
  gap: 2rem;
}

.site-footer .wordmark,
.site-footer a {
  color: white;
}

.site-footer nav {
  display: flex;
  flex-wrap: wrap;
  align-content: start;
  gap: 0.65rem 1.25rem;
}

.site-footer p {
  grid-column: 1 / -1;
  margin: 0;
  padding-top: 1.25rem;
  border-top: 1px solid rgba(255, 255, 255, 0.25);
  font-size: 0.9rem;
}

@media (max-width: 58rem) {
  .site-header__inner {
    grid-template-columns: 1fr auto;
    min-height: 4.5rem;
    gap: 1rem;
  }

  .desktop-navigation {
    display: none;
  }

  .mobile-menu {
    display: block;
    position: relative;
  }

  /* A bordered menu button, per DESIGN.md. The native disclosure marker is
     removed so the control does not read as a raw details widget; the
     expanded state is still announced through the summary element itself. */
  .mobile-menu > summary {
    display: flex;
    align-items: center;
    min-height: 3rem;
    padding: 0.5rem 0.8rem;
    border: 1px solid var(--line-dark);
    border-radius: 6px;
    background: var(--paper);
    color: var(--ink);
    cursor: pointer;
    font-weight: 700;
    list-style: none;
  }

  .mobile-menu > summary::-webkit-details-marker {
    display: none;
  }

  .mobile-menu nav {
    position: absolute;
    z-index: 20;
    top: calc(100% + 0.5rem);
    right: 0;
    display: flex;
    width: min(19rem, calc(100vw - 2rem));
    align-items: stretch;
    flex-direction: column;
    padding: 0.5rem;
    border: 1px solid var(--line-dark);
    background: var(--paper);
    box-shadow: 0 1rem 2rem rgba(8, 41, 85, 0.16);
  }

  .mobile-menu a {
    border-bottom: 0;
  }
}

@media (max-width: 42rem) {
  .page-width,
  .site-header__inner,
  .site-footer__inner,
  .page-hero__inner,
  .content-stream,
  .breadcrumbs,
  .rights-local-navigation {
    width: min(calc(100% - 2rem), var(--page));
  }

  h1 {
    font-size: clamp(2.45rem, 13vw, 3.8rem);
  }

  .page-hero__inner {
    padding-block: 2.75rem 3.4rem;
  }

  .site-footer__inner {
    grid-template-columns: 1fr;
  }

  .page-governance {
    grid-template-columns: 1fr;
  }

  .directory-entry dl {
    grid-template-columns: 1fr;
  }

  .directory-entry dd + dt {
    margin-top: 0.6rem;
  }

  .preparation-tool {
    margin-inline: -0.25rem;
    padding: 0.85rem;
  }

  .preparation-item {
    padding: 0.8rem;
  }

  .preparation-choice {
    grid-template-columns: auto minmax(0, 1fr);
  }

  .preparation-choice__number {
    display: none;
  }

  .preparation-notes {
    margin-left: 2.05rem;
  }

  .action-plan-worksheet {
    margin-inline: -0.25rem;
    padding: 0.85rem;
  }

  .action-plan-worksheet fieldset {
    padding: 0.8rem;
  }

  .action-plan-field__number {
    display: none;
  }

  .handoff-card dl {
    grid-template-columns: 1fr;
  }

  .handoff-card dd + dt {
    margin-top: 0.55rem;
  }

  .navigation-choice--static,
  .navigation-choice > a {
    grid-template-columns: minmax(0, 1fr) auto;
  }

  .navigation-choice__number {
    display: none;
  }

  .movement-handoff,
  .sensory-handoff,
  .speech-handoff,
  .cognitive-handoff,
  .associated-handoff,
  .overlap-handoff {
    grid-template-columns: 1fr;
  }
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
}

/* Windows High Contrast and other forced-colour modes replace the author
   palette entirely. Anything that carried meaning through tonal fill alone
   loses that meaning, and decorative colour becomes noise. DESIGN.md requires
   removing decorative route lines, shadows and tonal dependencies here. */
@media (forced-colors: active) {
  /* The system highlight is the only focus colour guaranteed to be visible
     once the author palette is discarded. */
  :focus-visible {
    outline-color: Highlight;
  }

  /* Decorative tonal fields carry no information. */
  .page-hero {
    background: none;
  }

  /* Elevation reads as artefact rather than depth when colour is flattened. */
  .mobile-menu nav {
    box-shadow: none;
  }

  /* Severity is otherwise signalled only by border colour and tonal fill, both
     of which are replaced. Border width survives forced colours, so it carries
     the distinction instead. */
  .content-block--safety-critical {
    border-width: 3px;
  }

  .boundary {
    border-left-width: 0.375rem;
  }

  /* Surfaces that separate themselves from the page by fill alone need an
     explicit edge to stay distinguishable. */
  .proof-status,
  .evidence-panel[open],
  .directory-filter {
    border: 1px solid;
  }
}

@media print {
  .site-header,
  .site-footer,
  .proof-status,
  .skip-link,
  .breadcrumbs,
  .rights-local-navigation {
    display: none;
  }

  body {
    color: #000;
    font-size: 11pt;
  }

  .page-hero,
  .treatment-orientation,
  .content-block,
  .content-block--important,
  .content-block--safety-critical {
    border-color: #777;
    background: white;
  }

  .page-governance,
  .preparation-local-note,
  .preparation-print-note,
  .evidence-panel {
    display: none;
  }

  .content-stream {
    width: 100%;
    padding-block: 1rem;
    gap: 1rem;
  }

  .page-hero__inner {
    width: 100%;
    padding-block: 0 1rem;
  }

  .preparation-tool {
    padding: 0;
    border: 0;
    background: white;
  }

  .action-plan-worksheet {
    padding: 0;
    border: 0;
    background: white;
  }

  .action-plan-worksheet__boundary {
    border: 1px solid #777;
    background: white;
  }

  .action-plan-worksheet fieldset {
    break-inside: avoid;
    border-color: #777;
  }

  .preparation-item {
    break-inside: avoid;
    border-color: #777;
  }

  .preparation-choice input {
    appearance: auto;
    print-color-adjust: exact;
  }

  .preparation-notes textarea {
    min-height: 4.5rem;
    border-color: #777;
    background: white;
  }

  .action-plan-field textarea {
    min-height: 5rem;
    border-color: #777;
    background: white;
  }

  .handoff-card,
  .handoff-withheld {
    break-inside: avoid;
    border-color: #777;
    background: white;
  }
}

/* Progressive directory enhancement. Core reading remains in delivered HTML. */
.progressive-directory-page .page-hero__inner {
  padding-block: clamp(2rem, 4vw, 3.5rem);
}

.progressive-directory-page .page-hero h1 {
  font-size: clamp(2.6rem, 5vw, 4.15rem);
}

.progressive-directory-page .content-stream {
  gap: 1.25rem;
  padding-block: clamp(2rem, 4vw, 3.5rem);
}

.directory-filter {
  max-width: var(--page);
  padding: clamp(1.25rem, 3vw, 2rem);
  border: 1px solid var(--line);
  background: var(--mist);
}

.directory-filter h2 {
  font-size: clamp(1.65rem, 3vw, 2.25rem);
}

.directory-filter__grid {
  display: grid;
  grid-template-columns: minmax(12rem, 1.4fr) repeat(3, minmax(10rem, 1fr));
  gap: 1rem;
  align-items: end;
}

.directory-filter__grid > * {
  min-width: 0;
}

.directory-filter label {
  display: grid;
  gap: 0.35rem;
  color: var(--ink);
  font-size: 0.9rem;
  font-weight: 700;
}

.directory-filter input,
.directory-filter select,
.directory-filter button {
  min-height: 2.9rem;
  border: 1px solid var(--line-dark);
  border-radius: 0;
  background: var(--paper);
  color: var(--ink);
  font: inherit;
  font-size: 1rem;
}

.directory-filter input,
.directory-filter select {
  box-sizing: border-box;
  max-width: 100%;
  width: 100%;
  padding: 0.55rem 0.7rem;
}

.directory-filter button {
  margin-top: 1rem;
  padding: 0.55rem 1rem;
  border-color: var(--teal-dark);
  color: var(--teal-dark);
  cursor: pointer;
  font-weight: 700;
}

.directory-filter__note,
.directory-results__status {
  color: var(--ink-soft);
  font-size: 0.92rem;
}

.directory-results {
  max-width: var(--page);
}

.directory-list {
  display: grid;
  gap: 1rem;
}

.directory-entry {
  padding: clamp(1.25rem, 3vw, 2rem);
  border: 1px solid var(--line);
  background: var(--paper);
  overflow-wrap: anywhere;
}

.directory-entry[hidden],
.directory-empty[hidden] {
  display: none;
}

.directory-entry dl {
  display: grid;
  grid-template-columns: minmax(8rem, 0.35fr) minmax(0, 1fr);
  gap: 0.35rem 1.25rem;
}

.directory-entry dt {
  font-weight: 750;
}

.directory-entry dd {
  margin: 0;
}

.directory-entry__meta {
  color: var(--teal-dark);
  font-size: 0.9rem;
  font-weight: 700;
}

.directory-empty {
  padding: 1.25rem;
  border-left: 0.25rem solid var(--ochre);
  background: var(--ochre-pale);
}

.rights-preferences {
  width: min(1180px, calc(100% - 2rem));
  margin: 1.5rem auto 0;
  padding: 1.25rem;
  border: 1px solid #b9d7dc;
  border-radius: 0.65rem;
  background: #f4fafb;
}

.rights-preferences h2,
.rights-preferences p {
  max-width: 72ch;
}

.rights-preferences fieldset {
  margin: 1rem 0;
  padding: 0;
  border: 0;
}

.rights-preferences legend {
  margin-bottom: 0.5rem;
  font-weight: 700;
}

.rights-preferences__options,
.rights-preferences__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem;
}

.rights-preferences__options label {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  min-height: 2.75rem;
  padding: 0.5rem 0.75rem;
  border: 1px solid #6b9ba4;
  border-radius: 0.35rem;
  background: #fff;
}

.rights-preferences__actions button {
  min-height: 2.75rem;
}

.rights-preferences__status {
  margin-bottom: 0;
  padding-top: 0.75rem;
  border-top: 1px solid #d4e6e9;
}

@media (max-width: 58rem) {
  .directory-filter__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 42rem) {
  .directory-filter__grid,
  .directory-entry dl {
    grid-template-columns: minmax(0, 1fr);
  }

  .directory-entry dd {
    margin-bottom: 0.65rem;
  }
}
