:root {
  color-scheme: light;
  /* Published California Design System cagov theme tokens. */
  --primary-100: #e7eef9;
  --primary-300: #a3bee7;
  --primary-500: #5a8ad4;
  --primary-700: #165ac2;
  --primary-900: #003688;
  --accent1-100: #ffead6;
  --accent1-300: #ffa656;
  --accent1-500: #de6516;
  --accent1-700: #9c4510;
  --accent1-900: #642a0a;
  --accent2-100: #ffecc4;
  --accent2-300: #ecb32d;
  --accent2-500: #ac8227;
  --accent2-700: #775a20;
  --accent2-900: #4a3918;
  --cagov-highlight: #fec02f;
  --cagov-primary: #004abc;
  --cagov-primary-dark: #003484;
  --cagov-secondary: #ff8000;
  --white: #ffffff;
  --gray-50: #fafafa;
  --gray-100: #ededef;
  --gray-200: #d4d4d7;
  --gray-300: #bcbbc1;
  --gray-400: #a4a3ab;
  --gray-500: #898891;
  --gray-600: #72717c;
  --gray-700: #5e5e6a;
  --gray-800: #4a4958;
  --gray-900: #3b3a48;
  --black: #000000;
  --success-100: #e5f1e7;
  --success-300: #9ac7a4;
  --success-500: #489b62;
  --success-700: #0f6d38;
  --success-900: #154425;
  --danger-100: #fce9e8;
  --danger-300: #eeaba9;
  --danger-500: #d5676a;
  --danger-700: #b91b37;
  --danger-900: #721923;
  --warning-100: #ffef97;
  --warning-300: #dcba00;
  --warning-500: #a38900;
  --warning-700: #6f5e00;
  --warning-900: #463b00;
  --info-100: #ededf6;
  --info-300: #b9b9dc;
  --info-500: #8585c2;
  --info-700: #5555aa;
  --info-900: #2b2b95;

  --w-lg: 73.5rem;
  --w-md: 60rem;
  --w-sm: 45rem;
  --w-xs: 33.75rem;
  --w-page-content: 54.75rem;
  --s-0: 0;
  --s-sm: 0.25rem;
  --s-1: 0.5rem;
  --s-2: 1rem;
  --s-3: 1.5rem;
  --s-4: 2rem;
  --s-5: 3rem;
  --s-6: 4rem;
  --s-7: 6rem;
  --s-8: 12rem;
  --font-size-0: 0.75rem;
  --font-size-1: 0.875rem;
  --font-size-2: 1rem;
  --font-size-3: 1.125rem;
  --font-size-4: 1.25rem;
  --font-size-5: 1.4375rem;
  --font-size-6: 1.625rem;
  --font-size-7: 1.8125rem;
  --font-size-8: 2.0625rem;
  --font-size-9: 2.3175rem;
  --font-size-10: 2.625rem;
  --font-size-11: 2.9375rem;
  --font-size-12: 3.5rem;
  --font-lineheight-1: 1.1;
  --font-lineheight-2: 1.25;
  --font-lineheight-3: 1.375;
  --font-lineheight-4: 1.5;
  --font-lineheight-5: 1.625;
  --font-lineheight-6: 1.75;

  /* Product-level aliases stay inside the state token vocabulary. */
  --paper: var(--gray-50);
  --surface: var(--white);
  --ink: var(--black);
  --ink-soft: var(--gray-800);
  --blue: var(--primary-900);
  --blue-deep: var(--cagov-primary-dark);
  --blue-pale: var(--primary-100);
  --yellow: var(--cagov-highlight);
  --yellow-pale: var(--accent2-100);
  --teal: var(--success-900);
  --teal-pale: var(--success-100);
  --red: var(--danger-900);
  --red-pale: var(--danger-100);
  --line: var(--gray-300);
  --line-light: var(--gray-200);
  --site-font: "Public Sans", "Noto Sans", Arial, sans-serif;
  --display: var(--site-font);
  --body: var(--site-font);
  --utility: ui-monospace, "SFMono-Regular", Consolas, "Liberation Mono",
    monospace;
  --shell: var(--w-lg);
  --reading: var(--w-page-content);
}

* {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: var(--body);
  font-size: var(--font-size-3);
  line-height: var(--font-lineheight-6);
  text-rendering: optimizeLegibility;
}

a {
  color: var(--blue);
  text-decoration-thickness: 0.08em;
  text-underline-offset: 0.16em;
}

a:hover {
  text-decoration-thickness: 0.14em;
}

:focus-visible {
  box-shadow: 0 0 0 5px var(--primary-900) !important;
  outline: 3px solid var(--accent2-300) !important;
  outline-offset: 2px !important;
}

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

img,
svg {
  max-width: 100%;
}

h1,
h2,
h3,
h4,
h5,
p {
  overflow-wrap: break-word;
}

h1,
h2,
h3,
h4,
h5 {
  color: var(--ink);
  font-family: var(--display);
  font-weight: 700;
  line-height: var(--font-lineheight-1);
  margin-top: 0;
}

h1 {
  font-size: clamp(var(--font-size-8), 4vw, var(--font-size-11));
  letter-spacing: -0.015em;
}

h2 {
  font-size: clamp(var(--font-size-8), 3vw, var(--font-size-10));
  letter-spacing: -0.015em;
}

h3 {
  font-size: clamp(var(--font-size-4), 2vw, var(--font-size-6));
}

h4 {
  font-size: var(--font-size-4);
}

h5 {
  font-size: var(--font-size-2);
}

.skip-link {
  position: fixed;
  left: 1rem;
  top: 0.75rem;
  z-index: 100;
  transform: translateY(-180%);
  background: var(--surface);
  border: 2px solid var(--blue);
  color: var(--blue);
  font-weight: 750;
  padding: 0.65rem 0.85rem;
}

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

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

.header-inner {
  align-items: center;
  display: flex;
  gap: 1.5rem;
  justify-content: space-between;
  margin: 0 auto;
  max-width: var(--shell);
  min-height: 4.5rem;
  padding: 0.75rem 1.25rem;
}

.site-identity {
  align-items: baseline;
  display: flex;
  flex: 0 0 auto;
  gap: 0.75rem;
}

.brand {
  align-items: center;
  color: var(--ink);
  display: inline-flex;
  font-family: var(--display);
  font-size: 1.25rem;
  font-weight: 700;
  letter-spacing: -0.01em;
  min-height: 44px;
  text-decoration: none;
}

.brand:hover {
  text-decoration: none;
}

.prototype-label {
  color: var(--ink-soft);
  font-size: var(--font-size-1);
}

.site-nav {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 0.2rem 1.1rem;
  justify-content: flex-end;
}

.site-nav a,
.site-nav .nav-button {
  align-items: center;
  background: transparent;
  border: 0;
  color: var(--blue);
  display: inline-flex;
  font: inherit;
  font-size: 0.88rem;
  font-weight: 700;
  min-height: 44px;
  padding: 0.25rem 0;
  text-decoration: none;
}

.site-nav a:hover,
.site-nav .nav-button:hover {
  box-shadow: none;
  text-decoration: underline;
  text-decoration-thickness: 0.14em;
  text-underline-offset: 0.22em;
}

.site-nav [aria-current="page"] {
  border-bottom: 0.2rem solid var(--cagov-highlight);
  color: var(--ink);
}

.site-nav .nav-button {
  cursor: pointer;
}

.mobile-menu {
  display: none;
}

.page-shell {
  margin: 0 auto;
  max-width: var(--shell);
  padding: 0 1.25rem;
}

.reading-shell {
  max-width: var(--reading);
}

.eyebrow,
.section-kicker,
.utility-label {
  color: var(--blue);
  font-family: var(--body);
  font-size: var(--font-size-1);
  font-weight: 700;
  letter-spacing: 0;
}

.eyebrow {
  margin: 0 0 0.75rem;
}

.button,
.ca-button,
button {
  align-items: center;
  background: var(--blue);
  border: 2px solid var(--blue);
  border-radius: 0;
  color: white;
  cursor: pointer;
  display: inline-flex;
  font-family: var(--body);
  font-size: var(--font-size-2);
  font-weight: 700;
  justify-content: center;
  min-height: 48px;
  padding: 0.65rem 1.3rem;
  text-decoration: none;
}

.button:hover,
.ca-button:hover,
button:hover {
  background: var(--blue-deep);
  color: white;
  text-decoration: underline;
  text-decoration-thickness: 0.1em;
  text-underline-offset: 0.18em;
}

.button-secondary,
.ca-button-outline,
button.ghost {
  background: transparent;
  border-color: var(--blue);
  color: var(--blue);
}

.button-secondary:hover,
.ca-button-outline:hover,
button.ghost:hover {
  background: var(--blue-pale);
  color: var(--blue-deep);
}

button:disabled {
  cursor: wait;
  opacity: 0.58;
  text-decoration: none;
}

button.link-button {
  background: transparent;
  border: 0;
  color: var(--blue);
  display: inline;
  font: inherit;
  font-weight: 650;
  min-height: 0;
  padding: 0;
  text-decoration: underline;
  text-underline-offset: 0.16em;
}

button.link-button:hover {
  background: transparent;
  box-shadow: none;
  color: var(--blue-deep);
}

.service-context {
  color: var(--blue);
  font-family: var(--body);
  font-size: var(--font-size-1);
  font-weight: 700;
  margin: 0 0 var(--s-3);
}

.home-hero {
  border-bottom: 1px solid var(--line);
  padding-bottom: var(--s-6);
  padding-top: var(--s-7);
}

.home-hero-grid {
  align-items: start;
  display: grid;
  gap: var(--s-4) var(--s-6);
  grid-template-areas:
    "copy visual"
    "copy boundary";
  grid-template-columns: minmax(0, 1.05fr) minmax(21rem, 0.95fr);
}

.home-hero-copy {
  align-self: center;
  grid-area: copy;
}

.home-hero-visual,
.project-hero-visual {
  background: var(--gray-50);
  border: 1px solid var(--line);
  border-bottom: 0.35rem solid var(--primary-900);
  margin: 0;
  overflow: hidden;
}

.home-hero-visual {
  grid-area: visual;
}

.home-hero-visual img,
.project-hero-visual img {
  display: block;
  height: auto;
  max-width: none;
  width: 100%;
}

.home-hero h1 {
  font-size: clamp(var(--font-size-10), 6vw, var(--font-size-12));
  letter-spacing: -0.025em;
  margin-bottom: var(--s-3);
  max-width: 14ch;
}

.service-lede {
  color: var(--ink-soft);
  font-size: var(--font-size-4);
  line-height: var(--font-lineheight-5);
  margin-bottom: var(--s-4);
  max-width: 42rem;
}

.home-actions {
  align-items: stretch;
  display: flex;
  flex-wrap: wrap;
  gap: var(--s-2);
}

.service-privacy {
  color: var(--ink-soft);
  font-size: var(--font-size-1);
  margin: var(--s-2) 0 0;
  max-width: 44rem;
}

.home-boundary {
  border-bottom: 1px solid var(--line);
  border-left: 0.25rem solid var(--blue);
  border-top: 1px solid var(--line);
  grid-area: boundary;
  padding: var(--s-3);
}

.home-boundary .section-kicker {
  margin: 0 0 var(--s-1);
}

.home-boundary h2 {
  font-size: var(--font-size-6);
  margin-bottom: var(--s-2);
}

.home-boundary p:last-child {
  color: var(--ink-soft);
  font-size: var(--font-size-2);
  line-height: var(--font-lineheight-5);
  margin: 0;
}

.journey-section {
  background: var(--surface);
  border-bottom: 1px solid var(--line);
  padding-bottom: var(--s-6);
  padding-top: var(--s-6);
}

.journey-intro {
  max-width: 46rem;
}

.journey-intro .section-kicker {
  margin: 0 0 var(--s-1);
}

.journey-intro h2 {
  margin-bottom: var(--s-2);
}

.journey-intro > p:last-child {
  color: var(--ink-soft);
  margin: 0;
}

.journey-rail {
  border-top: 0.25rem solid var(--blue);
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  list-style: none;
  margin: var(--s-5) 0 0;
  padding: 0;
}

.journey-rail li {
  min-width: 0;
  padding: var(--s-4) var(--s-3) 0 0;
  position: relative;
}

.journey-rail li + li {
  border-left: 1px solid var(--line);
  padding-left: var(--s-3);
}

.journey-number {
  align-items: center;
  background: var(--surface);
  border: 2px solid var(--blue);
  color: var(--blue);
  display: inline-flex;
  font-family: var(--utility);
  font-size: var(--font-size-1);
  font-weight: 700;
  height: 2.5rem;
  justify-content: center;
  left: 0;
  position: absolute;
  top: 0;
  transform: translateY(-55%);
  width: 2.5rem;
}

.journey-rail li + li .journey-number {
  left: var(--s-3);
}

.journey-rail h3 {
  font-size: var(--font-size-5);
  margin: 0 0 var(--s-1);
}

.journey-rail p {
  color: var(--ink-soft);
  font-size: var(--font-size-2);
  line-height: var(--font-lineheight-5);
  margin: 0;
}

.before-start,
.supporting-tools,
.current-scope {
  border-top: 1px solid var(--line);
  padding-bottom: var(--s-5);
  padding-top: var(--s-5);
}

.before-start {
  border-top: 0;
}

.before-start h2,
.supporting-tools h2,
.current-scope h2 {
  font-size: var(--font-size-7);
  margin-bottom: var(--s-2);
}

.before-start ul {
  padding-left: 1.4rem;
}

.service-link-list {
  border-top: 1px solid var(--line);
  list-style: none;
  margin: var(--s-3) 0 0;
  padding: 0;
}

ca-mesh.service-link-list {
  border-bottom: 1px solid var(--line);
  grid-template-columns: repeat(2, minmax(0, 1fr));
  padding: var(--s-3) 0;
}

.service-link-list ca-card {
  border-color: var(--line);
  border-top-color: var(--blue);
}

.service-link-list ca-card h3 {
  font-family: var(--display);
  font-size: var(--font-size-4);
  margin-bottom: var(--s-1);
}

.service-link-list li {
  border-bottom: 1px solid var(--line);
  padding: var(--s-3) 0;
}

.service-link-list a {
  font-size: var(--font-size-4);
  font-weight: 700;
}

.service-link-list p {
  color: var(--ink-soft);
  margin: var(--s-1) 0 0;
}

.current-scope p {
  margin-bottom: 0;
}

.tool-hero {
  border-bottom: 1px solid var(--line);
  padding-bottom: var(--s-5);
  padding-top: var(--s-5);
}

.tool-hero-grid {
  max-width: var(--reading);
}

body[data-page="project"] .tool-hero-grid {
  align-items: center;
  display: grid;
  gap: var(--s-5);
  grid-template-columns: minmax(0, 1fr) minmax(16rem, 0.62fr);
  max-width: var(--shell);
}

.project-hero-visual img {
  aspect-ratio: 3 / 2;
  object-fit: cover;
  object-position: center;
}

.tool-hero h1 {
  font-size: clamp(var(--font-size-8), 4vw, var(--font-size-11));
  margin-bottom: 1rem;
  max-width: 22ch;
}

.tool-hero .lede {
  color: var(--ink-soft);
  font-size: var(--font-size-3);
  max-width: 44rem;
}

.boundary-note {
  border-left: 0.25rem solid var(--primary-900);
  color: var(--ink-soft);
  font-size: var(--font-size-1);
  margin: var(--s-3) 0 0;
  max-width: 44rem;
  padding: 0 0 0 var(--s-2);
}

.boundary-note strong {
  color: var(--ink);
}

.boundary-note > p {
  margin: 0;
}

.tool-main {
  padding-bottom: 5rem;
  padding-top: var(--s-5);
}

.tool-section {
  max-width: 58rem;
}

.tool-section + .tool-section {
  border-top: 1px solid var(--line);
  margin-top: 4.5rem;
  padding-top: 4rem;
}

.tool-section > h2 {
  font-size: clamp(var(--font-size-7), 4vw, var(--font-size-10));
  margin-bottom: 0.75rem;
}

.tool-section > .section-intro {
  color: var(--ink-soft);
  max-width: 48rem;
}

.tool-shell {
  background: var(--surface);
  border: 1px solid var(--line);
  margin-top: 1.8rem;
  padding: clamp(1.1rem, 3vw, 2.2rem);
}

.tool-shell > :first-child {
  margin-top: 0;
}

.tool-heading-row {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: var(--s-2) var(--s-3);
  justify-content: space-between;
  margin-bottom: var(--s-1);
}

.tool-heading-row h2 {
  margin: 0;
}

.tool-heading-row p {
  margin: 0;
}

.translation-scope {
  color: var(--ink-soft);
  font-size: 0.84rem;
  margin: 0.15rem 0 1.2rem;
}

.sample-entry {
  font-size: 0.92rem;
  margin: 0 0 1.5rem;
}

.sample-entry a {
  font-weight: 700;
}

.sample-entry span {
  color: var(--ink-soft);
  display: block;
  margin-top: 0.2rem;
}

.jurisdiction-profile {
  background: var(--surface);
  border: 1px solid var(--line);
  border-left: 0.35rem solid var(--success-900);
  margin: var(--s-4) 0 0;
  padding: 0;
}

.jurisdiction-profile > summary {
  color: var(--ink);
  cursor: pointer;
  min-height: 64px;
  padding: var(--s-2) var(--s-3);
}

.jurisdiction-profile > summary::marker {
  color: var(--primary-900);
}

.jurisdiction-profile-summary-title {
  display: block;
  font-family: var(--display);
  font-size: var(--font-size-3);
  font-weight: 800;
  line-height: var(--font-lineheight-3);
  margin-top: var(--s-sm);
}

.jurisdiction-profile-summary-meta {
  color: var(--ink-soft);
  display: block;
  font-size: var(--font-size-0);
  font-weight: 600;
  line-height: var(--font-lineheight-3);
  margin-top: var(--s-sm);
}

.jurisdiction-profile-body {
  border-top: 1px solid var(--line);
  padding: clamp(var(--s-2), 3vw, var(--s-3));
}

.jurisdiction-profile-header {
  align-items: baseline;
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem 1rem;
  justify-content: space-between;
}

.jurisdiction-profile-kicker {
  color: var(--primary-900);
  display: block;
  font-family: var(--utility);
  font-size: var(--font-size-0);
  font-weight: 800;
  letter-spacing: 0.08em;
  margin: 0;
  text-transform: uppercase;
}

.jurisdiction-profile h3 {
  font-size: var(--font-size-6);
  margin: 0;
}

.jurisdiction-profile-location {
  color: var(--ink-soft);
  font-size: var(--font-size-1);
  margin: var(--s-1) 0 0;
}

.jurisdiction-profile-intro {
  margin: var(--s-3) 0;
  max-width: 50rem;
}

.jurisdiction-profile-ledger {
  border-bottom: 1px solid var(--line);
  border-top: 1px solid var(--line);
  margin: 0;
}

.jurisdiction-profile-ledger > div {
  border-bottom: 1px solid var(--line);
  display: grid;
  gap: var(--s-1) var(--s-3);
  grid-template-columns: minmax(10rem, 0.7fr) minmax(0, 1.7fr);
  padding: var(--s-2) 0;
}

.jurisdiction-profile-ledger > div:last-child {
  border-bottom: 0;
}

.jurisdiction-profile dt {
  font-weight: 800;
}

.jurisdiction-profile dd {
  margin: 0;
}

.jurisdiction-profile dd > strong {
  display: block;
  font-size: var(--font-size-1);
  margin-bottom: 0.2rem;
}

.jurisdiction-profile .small {
  margin-bottom: 0;
}

.jurisdiction-profile details {
  margin-top: var(--s-3);
}

.jurisdiction-profile-body details summary {
  color: var(--primary-900);
  cursor: pointer;
  font-weight: 800;
  min-height: 44px;
  padding: 0.35rem 0;
}

.jurisdiction-profile summary:focus-visible {
  outline: 3px solid var(--focus);
  outline-offset: 0.2rem;
}

.jurisdiction-profile-letter-list {
  list-style: none;
  margin: var(--s-2) 0 0;
  padding: 0;
}

.jurisdiction-profile-letter-list li {
  border-left: 0.25rem solid var(--blue);
  margin-top: var(--s-2);
  padding-left: var(--s-2);
}

.jurisdiction-profile-local-records {
  list-style: none;
  margin: var(--s-2) 0 0;
  padding: 0;
}

.jurisdiction-profile-local-records li + li {
  margin-top: var(--s-2);
}

.jurisdiction-profile-local-records a {
  font-weight: 700;
}

.jurisdiction-profile-local-records span {
  color: var(--ink-soft);
  display: block;
  font-size: var(--font-size-0);
  margin-top: 0.15rem;
}

.jurisdiction-profile-local-records .badge {
  display: inline-block;
  margin-top: var(--s-1);
}

.jurisdiction-profile-local-records .badge.bad {
  color: var(--red);
}

.jurisdiction-profile-local-records .badge.warn {
  color: var(--warning-900);
}

.jurisdiction-profile-onboarding {
  border-left: 0.25rem solid var(--yellow);
  font-size: var(--font-size-1);
  margin: var(--s-3) 0 0;
  padding-left: var(--s-2);
}

.sample-notice {
  border-left-color: var(--cagov-primary);
  margin-bottom: 1.5rem;
}

.sample-notice p {
  margin: 0;
}

.sample-notice p + p {
  margin-top: 0.6rem;
}

.sample-actions {
  align-items: baseline;
  display: flex;
  flex-wrap: wrap;
  gap: var(--s-1) var(--s-3);
}

.sample-actions a:first-child {
  font-weight: 800;
}

.packet-route-link {
  border-bottom: 1px solid var(--gray-700);
  border-top: 1px solid var(--gray-700);
  margin: var(--s-3) 0;
  padding: var(--s-2) 0;
}

.packet-route-link p {
  margin: 0;
}

.packet-route-link p + p {
  margin-top: var(--s-sm);
}

.packet-route-link a {
  font-weight: 800;
}

fieldset {
  background: transparent;
  border: 0;
  border-top: 1px solid var(--line);
  border-radius: 0;
  margin: 1.6rem 0 0;
  min-width: 0;
  padding: 1rem 0 0;
}

#intake {
  --bearing-inset: clamp(var(--s-2), 3vw, var(--s-4));
  border-left: 0.25rem solid var(--primary-300);
  margin-top: var(--s-4);
  padding-left: var(--bearing-inset);
}

#intake .intake-stage {
  position: relative;
}

#intake .intake-stage legend {
  display: grid;
  gap: var(--s-sm);
  width: 100%;
}

.intake-step {
  color: var(--primary-900);
  display: block;
  font-family: var(--utility);
  font-size: var(--font-size-0);
  font-weight: 800;
  letter-spacing: 0.045em;
  line-height: var(--font-lineheight-3);
  text-transform: uppercase;
}

#intake .intake-step::before {
  background: var(--accent2-300);
  border: 2px solid var(--black);
  content: "";
  height: 0.72rem;
  left: calc(0px - var(--bearing-inset) - 0.49rem);
  position: absolute;
  top: 1.08rem;
  width: 0.72rem;
}

.intake-stage-heading {
  border-top: 1px solid var(--line);
  margin-top: 1.6rem;
  padding-top: var(--s-2);
  position: relative;
}

.intake-stage-heading > .small {
  margin: var(--s-1) 0 var(--s-2);
  max-width: 46rem;
}

legend {
  color: var(--ink);
  font-family: var(--display);
  font-size: 1.05rem;
  font-weight: 800;
  padding: 0 0.65rem 0 0;
}

#intake > fieldset:first-child {
  border-top: 0;
  margin-top: 0.8rem;
  padding-top: 0;
}

#t-submit {
  margin-top: 1.5rem;
}

label {
  align-items: flex-start;
  display: flex;
  gap: 0.65rem;
  min-height: 44px;
  padding: 0.35rem 0;
}

label > input[type="radio"],
label > input[type="checkbox"] {
  flex: none;
  height: 1.25rem;
  margin-top: 0.16rem;
  width: 1.25rem;
}

input[type="text"],
input[type="date"],
input[list],
select,
textarea {
  background: var(--surface);
  border: 2px solid var(--gray-700);
  border-radius: 0;
  color: var(--ink);
  font: inherit;
  min-height: 48px;
  padding: 0.62rem 0.72rem;
  width: 100%;
}

textarea {
  line-height: 1.55;
  min-height: 13rem;
  resize: vertical;
}

input[aria-invalid="true"],
select[aria-invalid="true"] {
  border-color: var(--red);
}

.clock-section {
  max-width: 48rem;
}

.optional-tool {
  background: var(--surface);
  border: 1px solid var(--line);
  border-left: 0.35rem solid var(--primary-900);
}

.optional-tool > summary {
  cursor: pointer;
  min-height: 64px;
  padding: var(--s-2) var(--s-3);
}

.optional-tool > summary::marker {
  color: var(--primary-900);
}

.optional-tool-label {
  color: var(--primary-900);
  display: block;
  font-family: var(--utility);
  font-size: var(--font-size-0);
  font-weight: 800;
  letter-spacing: 0.045em;
  line-height: var(--font-lineheight-3);
  text-transform: uppercase;
}

.optional-tool-title {
  display: block;
  font-family: var(--display);
  font-size: var(--font-size-5);
  font-weight: 800;
  line-height: var(--font-lineheight-2);
  margin-top: var(--s-sm);
}

.optional-tool-summary {
  color: var(--ink-soft);
  display: block;
  font-size: var(--font-size-1);
  line-height: var(--font-lineheight-4);
  margin-top: var(--s-sm);
}

.optional-tool-body {
  border-top: 1px solid var(--line);
  padding: clamp(var(--s-2), 3vw, var(--s-4));
}

.optional-tool-body > .section-intro {
  color: var(--ink-soft);
  font-size: var(--font-size-2);
  line-height: var(--font-lineheight-4);
  margin-top: 0;
  max-width: 40rem;
}

.clock-form {
  border-top: 1px solid var(--line);
  margin-top: var(--s-3);
  padding-top: var(--s-3);
}

.clock-date {
  display: block;
  min-height: 0;
  padding: 0;
  width: min(100%, 18rem);
}

.clock-date > label {
  display: block;
  min-height: 0;
  padding: 0;
}

.clock-date span {
  display: block;
  font-weight: 700;
  margin-bottom: 0.35rem;
}

.clock-conditions {
  background: transparent;
  border: 0;
  margin: var(--s-3) 0 var(--s-2);
  padding: 0;
}

.clock-conditions legend {
  font-family: var(--body);
  font-size: var(--font-size-2);
  font-weight: 700;
  margin-bottom: var(--s-1);
  padding: 0;
}

.clock-conditions label {
  max-width: 40rem;
}

.clock-limit {
  color: var(--ink-soft);
  font-size: var(--font-size-1);
  line-height: var(--font-lineheight-4);
  margin: 0 0 var(--s-2);
  max-width: 40rem;
}

.clock-limit strong {
  color: var(--ink);
}

.clock-output {
  border-top: 1px solid var(--line);
  margin-top: var(--s-4);
  padding-top: var(--s-3);
}

.clock-output h3 {
  font-size: var(--font-size-5);
  margin-bottom: var(--s-1);
}

.clock-milestones {
  border-top: 1px solid var(--line);
  margin: var(--s-2) 0;
}

.clock-milestones > div {
  border-bottom: 1px solid var(--line);
  padding: var(--s-2) 0;
}

.clock-milestones dt {
  font-weight: 700;
}

.clock-milestones dd {
  color: var(--ink-soft);
  margin: var(--s-sm) 0 0;
}

.clock-milestones dd strong,
.clock-milestones dd time {
  color: var(--ink);
  font-weight: 700;
}

.question-help {
  margin: -0.25rem 0 0.7rem;
}

.choice-grid {
  display: grid;
  gap: 0.25rem 0.9rem;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.choice-grid label {
  align-items: center;
}

.conditional-intake[hidden],
[hidden],
.hidden {
  display: none !important;
}

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

.mutedtxt {
  color: var(--ink-soft);
}

.notice {
  background: var(--paper);
  border: 1px solid var(--line);
  border-left: 0.35rem solid var(--yellow);
  color: var(--ink);
  font-size: 0.92rem;
  margin: 1rem 0;
  padding: 0.85rem 1rem;
}

.card {
  background: var(--surface);
  border: 1px solid var(--line);
  border-left: 0.38rem solid var(--teal);
  border-radius: 0;
  margin: 1rem 0;
  padding: 1.15rem 1.25rem;
}

.card.unverified {
  border-left-color: var(--warning-700);
}

.card h3 {
  font-size: 1.18rem;
  margin: 0 0 0.45rem;
}

.result-cover-sheet {
  background: var(--surface);
  border: 1px solid var(--line);
  margin: var(--s-4) 0 0;
  padding: 0;
}

.result-support > summary {
  cursor: pointer;
  min-height: 56px;
  padding: var(--s-2) var(--s-3);
}

.result-support > summary::marker {
  color: var(--primary-900);
}

.result-support-title {
  display: block;
  font-family: var(--display);
  font-size: var(--font-size-3);
  font-weight: 800;
  line-height: var(--font-lineheight-3);
}

.result-support-body {
  border-top: 1px solid var(--line);
  padding: var(--s-2) var(--s-3) 0;
}

.result-support-body > .small {
  margin-top: 0;
  max-width: 48rem;
}

.decision-boundary {
  background: var(--paper);
  border: 1px solid var(--line);
  border-left: 0.42rem solid var(--blue);
  margin: 1.15rem 0 1.4rem;
  max-width: var(--reading);
  padding: 0.9rem 1.15rem 0;
}

.decision-boundary[data-boundary-state="unknown"],
.decision-boundary[data-boundary-state="no-route"] {
  border-left-color: var(--yellow);
}

.decision-boundary[data-boundary-state="source-review-hold"] {
  border-left-color: var(--warning-700);
}

.decision-boundary h3 {
  font-family: var(--display);
  font-size: var(--font-size-3);
  line-height: var(--font-lineheight-3);
  margin: 0 0 0.55rem;
}

.decision-boundary dl {
  border-top: 1px solid var(--line);
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin: 0;
}

.decision-boundary dl > div {
  border-right: 1px solid var(--line);
  padding: 0.7rem 1rem 0.8rem;
}

.decision-boundary dl > div:first-child {
  padding-left: 0;
}

.decision-boundary dl > div:last-child {
  border-right: 0;
  padding-right: 0;
}

.decision-boundary dt {
  font-weight: 800;
}

.decision-boundary dd {
  margin: var(--s-sm) 0 0;
}

.statewide-orientation {
  background: var(--surface);
  border: 1px solid var(--line);
  border-left: 0.35rem solid var(--primary-900);
  margin: var(--s-2) 0 0;
  max-width: var(--reading);
  padding: 0;
}

.statewide-orientation-body {
  border-top: 1px solid var(--line);
  padding: clamp(var(--s-2), 3vw, var(--s-4));
}

.statewide-orientation-body > p:first-child {
  margin-top: 0;
}

.statewide-orientation-stage {
  color: var(--primary-900);
  font-family: var(--utility);
  font-size: var(--font-size-0);
  font-weight: 800;
  letter-spacing: 0.08em;
  display: block;
  margin: 0 0 var(--s-sm);
  text-transform: uppercase;
}

.statewide-orientation h4 {
  font-size: var(--font-size-4);
  margin: var(--s-4) 0 var(--s-2);
}

.statewide-orientation-coverage dl,
.statewide-orientation-facts {
  border-bottom: 1px solid var(--line);
  border-top: 1px solid var(--line);
  margin: 0;
}

.statewide-orientation-coverage dl > div,
.statewide-orientation-facts > div {
  border-bottom: 1px solid var(--line);
  display: grid;
  gap: var(--s-1) var(--s-3);
  grid-template-columns: minmax(9rem, 0.7fr) minmax(0, 1.4fr);
  padding: var(--s-2) 0;
}

.statewide-orientation-coverage dl > div:last-child,
.statewide-orientation-facts > div:last-child {
  border-bottom: 0;
}

.statewide-orientation dt {
  font-weight: 800;
}

.statewide-orientation dd {
  margin: 0;
}

.statewide-route-list {
  list-style: none;
  padding: 0;
}

.statewide-route-list li {
  border-left: 0.3rem solid var(--teal);
  padding: var(--s-2) var(--s-3);
}

.statewide-route-list li + li {
  margin-top: var(--s-2);
}

.statewide-route-list span {
  display: block;
  margin-top: var(--s-sm);
}

.statewide-orientation-boundary {
  border-left: 0.3rem solid var(--yellow);
  font-size: var(--font-size-1);
  margin-top: var(--s-4);
  padding-left: var(--s-2);
}

.statewide-print-action {
  border-top: 1px solid var(--line);
  margin-top: var(--s-4);
  padding-top: var(--s-3);
}

.statewide-print-action p {
  color: var(--ink-soft);
  margin-bottom: 0;
}

.result-cover-heading {
  align-items: baseline;
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem 1rem;
  justify-content: space-between;
}

.result-cover-heading h3 {
  font-size: var(--font-size-5);
  margin: 0;
}

.result-cover-heading a {
  font-size: var(--font-size-1);
  font-weight: 700;
}

.result-cover-sheet > .small {
  margin: 0.55rem 0 1rem;
  max-width: 48rem;
}

.result-facts {
  border-top: 1px solid var(--gray-700);
  margin: var(--s-2) calc(0px - var(--s-3)) 0;
}

.result-facts > div {
  border-bottom: 1px solid var(--line);
  display: grid;
  gap: 0.4rem 1.2rem;
  grid-template-columns: minmax(12rem, 0.9fr) minmax(0, 1.35fr);
  padding: 0.72rem 1.15rem;
}

.result-facts > div:last-child {
  border-bottom: 0;
}

.result-facts dt {
  font-weight: 700;
}

.result-facts dd {
  margin: 0;
}

.what-if {
  background: var(--surface);
  border: 1px solid var(--line);
  margin: var(--s-4) 0 0;
  padding: 0;
}

.what-if-fact {
  border-top: 1px solid var(--line);
  margin: var(--s-2) calc(0px - var(--s-3)) 0;
  padding: 0.9rem var(--s-3) 0.25rem;
}

.what-if-fact > h4 {
  font-family: var(--display);
  font-size: var(--font-size-2);
  margin: 0 0 0.5rem;
  max-width: 48rem;
}

.what-if-answers {
  list-style: none;
  margin: 0;
  padding: 0;
}

.what-if-answer {
  border-left: 0.24rem solid var(--line);
  margin: 0 0 0.9rem;
  padding-left: 0.85rem;
}

.what-if-answer[data-current="yes"] {
  border-left-color: var(--blue);
}

.what-if-answer-label {
  margin: 0 0 0.3rem;
}

.what-if-current {
  background: var(--paper);
  border: 1px solid var(--line);
  font-size: var(--font-size-0);
  margin-left: 0.5rem;
  padding: 0.1rem 0.45rem;
  white-space: nowrap;
}

.what-if-agree,
.what-if-label,
.what-if-path,
.what-if-same,
.what-if-withheld {
  margin: 0.3rem 0;
  max-width: 48rem;
}

.what-if-path,
.what-if-same {
  font-size: var(--font-size-1);
}

.what-if-rules {
  margin: 0.2rem 0 0.55rem;
}

.result-count {
  font-size: var(--font-size-3);
  font-weight: 750;
  line-height: var(--font-lineheight-4);
  margin: 1.4rem 0 0.35rem;
  max-width: 48rem;
}

.result-limit {
  margin: 0;
  max-width: 48rem;
}

.result-trust-note {
  border-left: 0.3rem solid var(--yellow);
  color: var(--ink-soft);
  margin: 1.4rem 0;
  max-width: 48rem;
  padding-left: 1rem;
}

.journey-handoff {
  background: var(--surface);
  border: 2px solid var(--black);
  border-top: 0.65rem solid var(--primary-900);
  margin: var(--s-5) 0 0;
  max-width: var(--reading);
  padding: clamp(1.2rem, 3vw, 2rem);
}

.journey-stage-label {
  color: var(--primary-900);
  font-family: var(--utility);
  font-size: var(--font-size-0);
  font-weight: 800;
  letter-spacing: 0.045em;
  margin: 0 0 var(--s-1);
  text-transform: uppercase;
}

.journey-handoff > h3 {
  font-size: clamp(var(--font-size-6), 3vw, var(--font-size-8));
  margin-bottom: var(--s-2);
  max-width: 28ch;
}

.journey-handoff > p:not(.journey-stage-label) {
  color: var(--ink-soft);
  max-width: 46rem;
}

.journey-handoff fieldset {
  border-top-color: var(--gray-700);
  margin-top: var(--s-3);
}

.program-availability {
  background: var(--blue-pale);
  border-left: 0.45rem solid var(--primary-900);
  margin: var(--s-3) 0;
  max-width: var(--reading);
  padding: var(--s-2) var(--s-3);
}

.program-availability-hold {
  background: var(--yellow-pale);
  border-left-color: var(--warning-700);
}

.program-availability > :first-child {
  margin-top: 0;
}

.program-availability > :last-child {
  margin-bottom: 0;
}

.program-availability q {
  font-weight: 750;
}

.journey-fixed-facts {
  border-bottom: 1px solid var(--line);
  border-top: 1px solid var(--line);
  margin-top: var(--s-3);
}

.journey-fixed-facts summary {
  color: var(--blue);
  cursor: pointer;
  font-weight: 750;
  min-height: 48px;
  padding: 0.65rem 0;
}

.journey-fixed-facts ul {
  color: var(--ink-soft);
  font-size: var(--font-size-1);
  margin-top: 0;
}

.journey-outcome {
  border-left: 0.45rem solid var(--primary-900);
  margin-top: var(--s-3);
  padding: var(--s-2) var(--s-3);
}

.journey-outcome-hold {
  background: var(--yellow-pale);
  border-left-color: var(--warning-700);
}

.journey-outcome h4 {
  font-size: var(--font-size-5);
  margin-bottom: var(--s-1);
}

.journey-outcome p {
  margin-bottom: 0;
  margin-top: var(--s-1);
  max-width: 44rem;
}

.journey-entry-summary {
  background: var(--surface);
  border: 1px solid var(--gray-700);
  border-left: 0.7rem solid var(--primary-900);
  margin-bottom: var(--s-4);
  padding: clamp(1.2rem, 3vw, 2rem);
}

.journey-entry-summary h2 {
  font-size: clamp(var(--font-size-6), 3vw, var(--font-size-8));
  margin-bottom: var(--s-2);
}

.journey-entry-summary > p:not(.journey-stage-label) {
  color: var(--ink-soft);
  max-width: 48rem;
}

.journey-entry-summary dl {
  border-top: 1px solid var(--gray-700);
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin: var(--s-3) 0 0;
}

.journey-entry-summary dl > div {
  min-width: 0;
  padding: var(--s-2) var(--s-2) 0 0;
}

.journey-entry-summary dl > div + div {
  border-left: 1px solid var(--line);
  padding-left: var(--s-2);
}

.journey-entry-summary dt {
  color: var(--gray-800);
  font-family: var(--utility);
  font-size: var(--font-size-0);
  font-weight: 800;
  letter-spacing: 0.045em;
  text-transform: uppercase;
}

.journey-entry-summary dd {
  margin: var(--s-sm) 0 0;
  overflow-wrap: anywhere;
}

.journey-entry-hold {
  background: var(--surface);
  border: 2px solid var(--black);
  border-top: 0.65rem solid var(--cagov-highlight);
  max-width: var(--reading);
  padding: clamp(1.2rem, 3vw, 2rem);
}

.journey-entry-hold h2 {
  font-size: clamp(var(--font-size-6), 3vw, var(--font-size-8));
  margin-bottom: var(--s-2);
  max-width: 28ch;
}

.journey-entry-hold > p:not(.journey-stage-label) {
  max-width: 46rem;
}

#results:not(:empty) {
  border-top: 0.25rem solid var(--black);
  margin-top: var(--s-5);
  padding-top: var(--s-5);
}

.result-heading {
  font-size: clamp(var(--font-size-8), 3vw, var(--font-size-10));
  margin-bottom: var(--s-2);
}

.result-index {
  border-bottom: 1px solid var(--line);
  border-top: 1px solid var(--line);
  margin: var(--s-3) 0 var(--s-4);
  padding: 0.9rem 0;
}

.result-index p {
  font-weight: 750;
  margin: 0 0 0.35rem;
}

.result-index ul {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 1.4rem;
  list-style: none;
  margin: 0;
  padding: 0;
}

.result-index a {
  font-weight: 700;
}

.result-group {
  margin-top: var(--s-4);
  scroll-margin-top: 1rem;
}

.result-group > h3 {
  border-bottom: 1px solid var(--line);
  color: var(--blue);
  font-family: var(--display);
  font-size: var(--font-size-3);
  font-weight: 750;
  letter-spacing: 0;
  line-height: var(--font-lineheight-3);
  margin: 0 0 0.7rem;
  padding-bottom: 0.5rem;
}

.result-local-boundary {
  margin: 0 0 0.8rem;
  max-width: 48rem;
}

.result-card {
  border-left-color: var(--blue);
  overflow-wrap: anywhere;
  position: relative;
  scroll-margin-top: 1rem;
}

.result-card.result-route {
  border: 2px solid var(--black);
  border-left: 0.55rem solid var(--primary-900);
  margin-top: var(--s-2);
  padding: clamp(var(--s-2), 3vw, var(--s-3));
}

.result-card.result-route.unverified {
  border-left-color: var(--warning-700);
}

.result-card.unverified {
  border-left-color: var(--warning-700);
}

.result-card.result-card-compact {
  background: transparent;
  border: 0;
  border-bottom: 1px solid var(--line);
  border-left: 0.3rem solid var(--blue);
  margin: 0;
  padding: 1.1rem 0.2rem 1.1rem 1rem;
}

.result-card.result-card-compact.unverified {
  border-left-color: var(--warning-700);
}

.result-card .result-head {
  align-items: flex-start;
  display: flex;
  flex-wrap: wrap;
  gap: 0.7rem;
  justify-content: space-between;
}

.result-card .result-title {
  flex: 1 1 19rem;
  font-size: 1.24rem;
  margin: 0;
}

.result-card h5 {
  font-family: var(--display);
  font-size: var(--font-size-2);
  font-weight: 750;
  letter-spacing: 0;
  line-height: var(--font-lineheight-3);
  margin: 1.15rem 0 0.3rem;
}

.result-card ol,
.result-card ul {
  margin-top: 0.35rem;
  padding-left: 1.4rem;
}

.result-heading:focus,
.result-group > h3:focus,
.result-card:focus {
  box-shadow: 0 0 0 5px var(--primary-900);
  outline: 3px solid var(--accent2-300);
  outline-offset: 2px;
}

.result-card .badge {
  font-family: var(--body);
  font-size: var(--font-size-1);
  letter-spacing: 0;
}

.result-consequence {
  margin: 0.75rem 0;
  max-width: 48rem;
}

.review-note {
  color: var(--ink-soft);
  font-family: var(--body);
  font-size: var(--font-size-1);
  font-weight: 700;
  margin: 0.5rem 0 0.9rem;
}

.confirmation {
  border-top: 1px solid var(--line-light);
  margin-top: 1.2rem;
  padding-top: 0.2rem;
}

.key-points {
  border-left: 0.3rem solid var(--yellow);
  margin: 0.9rem 0;
  padding: 0.05rem 0.85rem 0.15rem;
}

.source-basis {
  border-top: 1px solid var(--line-light);
  font-size: 0.88rem;
  margin-top: 1rem;
  padding-top: 0.75rem;
}

.rule-details {
  border-top: 1px solid var(--line-light);
  margin-top: 0.8rem;
  padding-top: 0.2rem;
}

.rule-details > summary {
  color: var(--blue);
  cursor: pointer;
  display: list-item;
  font-weight: 750;
  min-height: 44px;
  padding: 0.55rem 0;
}

.rule-details:not([open]) .when-open,
.rule-details[open] .when-closed {
  display: none;
}

.rule-details-body {
  padding-bottom: 0.25rem;
}

.result-tool-link {
  font-weight: 750;
  margin: 1.2rem 0;
}

.evidence-block {
  border-top: 1px solid var(--line);
  margin-top: 1.4rem;
  padding-top: 0.1rem;
}

.badge {
  border: 1px solid currentColor;
  border-radius: 0;
  display: inline-block;
  font-family: var(--utility);
  font-size: 0.72rem;
  font-weight: 750;
  line-height: 1.35;
  max-width: 100%;
  padding: 0.15rem 0.48rem;
  white-space: normal;
}

.badge.ok {
  background: var(--teal-pale);
  color: var(--teal);
}

.badge.info {
  background: var(--surface);
  color: var(--blue);
}

.badge.warn {
  background: var(--yellow-pale);
  color: var(--warning-900);
}

.badge.bad {
  background: var(--red-pale);
  color: var(--red);
}

.status-ico {
  font-weight: 800;
  margin-right: 0.28rem;
}

blockquote {
  border-left: 0.28rem solid var(--line);
  color: var(--ink-soft);
  font-size: 0.88rem;
  margin: 0.7rem 0;
  padding-left: 0.9rem;
}

.scanner-layout {
  display: grid;
  gap: 2rem;
  grid-template-columns: minmax(0, 1fr) 16rem;
}

.scanner-notes {
  border-left: 1px solid var(--line);
  padding-left: 1.25rem;
}

.scanner-notes h3 {
  font-family: var(--display);
  font-size: var(--font-size-2);
  font-weight: 750;
  letter-spacing: 0;
  line-height: var(--font-lineheight-3);
}

.scanner-notes ul {
  color: var(--ink-soft);
  font-size: 0.88rem;
  margin: 0;
  padding-left: 1.1rem;
}

.scanner-notes li + li {
  margin-top: 0.5rem;
}

.scanner-actions {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 0.8rem 1rem;
  margin-top: 1rem;
}

.evidence-summary {
  display: grid;
  border-bottom: 1px solid var(--line);
  border-top: 1px solid var(--line);
  grid-template-columns: repeat(3, 1fr);
  margin: 2rem 0 2.8rem;
}

.rule-evidence-summary {
  grid-template-columns: repeat(4, 1fr);
}

.evidence-stat {
  min-height: 8rem;
  padding: 1.15rem 1.2rem;
}

.evidence-stat + .evidence-stat {
  border-left: 1px solid var(--line);
}

.evidence-stat .hero {
  font-family: var(--display);
  font-size: clamp(var(--font-size-9), 5vw, var(--font-size-11));
  font-weight: 800;
  letter-spacing: -0.04em;
  line-height: 1;
  margin: 0;
}

.evidence-stat .small {
  margin-bottom: 0;
}

.meter {
  background: var(--line-light);
  display: flex;
  height: 1rem;
  margin: 0.7rem 0 0.4rem;
  overflow: hidden;
}

.meter > div {
  height: 100%;
}

.meter > div + div {
  border-left: 2px solid var(--surface);
}

.meter .m-good {
  background: var(--teal);
}

.meter .m-bad {
  background: var(--red);
}

.meter .m-warn {
  background: var(--yellow);
}

/* Part-to-whole breakdown segments (packet evidence, statewide coverage).
   Distinct from .m-good/.m-bad/.m-warn above: those mark a single pass/fail
   split and are tuned as text-on-pale-fill tokens; these mark 2-5 categories
   at once as filled bars, so they use ramp steps validated for large-fill
   CVD separation and contrast rather than the badge-text tokens. */
.meter .seg-present,
.chart-swatch.seg-present {
  background: var(--success-700);
}

.meter .seg-review,
.chart-swatch.seg-review {
  background: var(--warning-500);
}

.meter .seg-missing,
.chart-swatch.seg-missing {
  background: var(--danger-500);
}

.meter .seg-na,
.chart-swatch.seg-na {
  background: var(--info-700);
}

/* Fallback for the rarely populated conflicting/not_evaluated categories;
   shares one color since both are structurally zero in the committed
   fixture today. Pick a distinct validated color if that changes. */
.meter .seg-other,
.chart-swatch.seg-other {
  background: var(--gray-600);
}

.meter .seg-info,
.chart-swatch.seg-info {
  background: var(--info-700);
}

.meter .seg-accent,
.chart-swatch.seg-accent {
  background: var(--accent1-700);
}

.chart-swatch {
  display: inline-block;
  width: 0.7rem;
  height: 0.7rem;
  margin-right: 0.35rem;
  vertical-align: -0.05em;
}

.chart-legend-item {
  display: inline-block;
  margin-right: 1.2rem;
}

.chart-legend-item:last-child {
  margin-right: 0;
}

.coverage-meter-label {
  margin-top: 1.6rem;
}

.simulation-box {
  background: var(--primary-100);
  border-left: 0.25rem solid var(--primary-900);
  margin: 2rem 0;
  padding: 1.4rem;
}

.simulation-box h3,
.simulation-box p {
  color: var(--ink);
}

.simulation-box h3 {
  margin-bottom: 0.5rem;
}

.simulation-box button.ghost {
  border-color: var(--primary-900);
  color: var(--primary-900);
}

.simulation-box button.ghost:hover {
  background: var(--surface);
  color: var(--primary-900);
}

.simulation-box .notice {
  background: var(--surface);
  color: var(--ink);
}

.table-scroll {
  max-width: 100%;
  overflow-x: auto;
}

.table-scroll:focus {
  box-shadow: 0 0 0 5px var(--primary-900);
  outline: 3px solid var(--accent2-300);
  outline-offset: 2px;
}

table {
  background: var(--surface);
  border: 1px solid var(--line);
  border-collapse: collapse;
  font-size: 0.88rem;
  width: 100%;
}

.table-scroll table {
  min-width: 38rem;
}

td,
th {
  border-bottom: 1px solid var(--line-light);
  padding: 0.62rem 0.7rem;
  text-align: left;
  vertical-align: top;
}

th {
  background: var(--paper);
  color: var(--ink);
  font-family: var(--utility);
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.045em;
  text-transform: uppercase;
}

.source-digest {
  font-family: var(--utility);
  font-size: 0.75rem;
}

tr:last-child td {
  border-bottom: 0;
}

.source-section {
  margin-top: 4.5rem;
}

.source-section h2 {
  font-size: clamp(var(--font-size-7), 4vw, var(--font-size-10));
}

.method-section {
  border-top: 1px solid var(--line);
  padding-top: var(--s-5);
}

.method-list {
  border-top: 1px solid var(--gray-700);
  margin: var(--s-3) 0 0;
}

.method-list > div {
  border-bottom: 1px solid var(--line);
  display: grid;
  gap: var(--s-2);
  grid-template-columns: 8rem minmax(0, 1fr);
  padding: var(--s-2) 0;
}

.method-list dt {
  font-weight: 700;
}

.method-list dd {
  margin: 0;
}

.readiness-hero {
  border-top: 0.5rem solid var(--primary-900);
}

.readiness-hero-grid {
  display: grid;
  gap: var(--s-4);
  grid-template-columns: minmax(0, 1.65fr) minmax(17rem, 0.7fr);
}

.readiness-hero .boundary-note {
  align-self: end;
  margin: 0;
}

.readiness-main {
  padding-bottom: var(--s-6);
  padding-top: var(--s-4);
}

.packet-cover {
  background: var(--surface);
  border: 1px solid var(--gray-700);
  border-left: 0.7rem solid var(--primary-900);
  display: grid;
  gap: var(--s-4);
  grid-template-columns: minmax(15rem, 0.9fr) minmax(0, 1.6fr);
  margin-bottom: var(--s-4);
  padding: clamp(1.2rem, 3vw, 2rem);
}

.packet-cover h2 {
  font-size: clamp(var(--font-size-6), 3vw, var(--font-size-8));
  margin-bottom: 0;
  max-width: 24ch;
}

.packet-facts {
  display: grid;
  gap: 0;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin: 0;
}

.packet-facts > div {
  border-left: 1px solid var(--line);
  border-top: 1px solid var(--line);
  min-width: 0;
  padding: 0.75rem 1rem;
}

.packet-facts > div:nth-child(-n + 2) {
  border-top: 0;
}

.packet-facts dt,
.packet-evidence dt,
.decision-record dt {
  color: var(--gray-800);
  font-family: var(--utility);
  font-size: var(--font-size-0);
  font-weight: 800;
  letter-spacing: 0.045em;
  text-transform: uppercase;
}

.packet-facts dd,
.packet-evidence dd,
.decision-record dd {
  margin: 0.15rem 0 0;
}

.readiness-verdict {
  background: var(--surface);
  border: 2px solid var(--black);
  display: grid;
  gap: var(--s-4);
  grid-template-columns: minmax(0, 1.35fr) minmax(22rem, 1fr);
  margin-bottom: var(--s-5);
}

.readiness-verdict::before {
  background: var(--cagov-highlight);
  content: "";
  grid-column: 1 / -1;
  height: 0.65rem;
}

.readiness-verdict.needs-source::before {
  background: var(--danger-700);
}

.verdict-copy {
  padding: 0 var(--s-4) var(--s-4);
}

.verdict-copy h2 {
  font-size: clamp(var(--font-size-7), 4vw, var(--font-size-10));
  margin-bottom: var(--s-2);
  max-width: 24ch;
}

.verdict-copy > :last-child {
  color: var(--ink-soft);
  margin-bottom: 0;
  max-width: 44rem;
}

.packet-counts {
  align-self: stretch;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin: 0 var(--s-4) var(--s-4) 0;
}

.packet-counts > div {
  border-left: 1px solid var(--line);
  border-top: 1px solid var(--line);
  padding: 0.85rem 1rem;
}

.packet-counts dt {
  font-size: var(--font-size-1);
  font-weight: 700;
  line-height: var(--font-lineheight-3);
}

.packet-counts dd {
  font-size: var(--font-size-8);
  font-weight: 850;
  line-height: 1;
  margin: 0.4rem 0 0;
}

.source-review-hold {
  align-self: center;
  border-left: 0.45rem solid var(--danger-700);
  margin: 0 var(--s-4) var(--s-4) 0;
  padding: var(--s-2);
}

.packet-ledger,
.packet-inventory,
.packet-evidence,
.readiness-method {
  border-top: 2px solid var(--black);
  margin-top: var(--s-5);
  padding-top: var(--s-3);
}

.packet-ledger {
  display: grid;
  gap: var(--s-4);
  grid-template-columns: minmax(13rem, 0.62fr) minmax(0, 1.5fr);
}

.ledger-heading {
  align-self: start;
  position: sticky;
  top: 1rem;
}

.ledger-heading h2,
.packet-inventory > h2,
.packet-evidence h2,
.readiness-method > h2 {
  font-size: clamp(var(--font-size-7), 3.3vw, var(--font-size-9));
  margin-bottom: var(--s-2);
}

.ledger-heading > :last-child {
  color: var(--ink-soft);
  font-size: var(--font-size-2);
}

.finding-list {
  border-top: 1px solid var(--gray-700);
}

.packet-finding {
  border-bottom: 1px solid var(--line);
  display: grid;
  gap: var(--s-3);
  grid-template-columns: 6.5rem minmax(0, 1fr);
  padding: var(--s-3) 0;
}

.finding-state {
  align-self: start;
  font-family: var(--utility);
  font-size: var(--font-size-0);
  font-weight: 800;
  letter-spacing: 0.04em;
  line-height: 1;
  text-transform: uppercase;
}

.finding-state span {
  border-left: 0.45rem solid var(--danger-700);
  display: block;
  padding: 0.55rem 0.5rem;
}

.packet-finding-question .finding-state span {
  border-left-color: var(--warning-500);
}

.packet-finding-conflict .finding-state span {
  border-left-color: var(--primary-900);
}

.finding-category,
.finding-source {
  color: var(--gray-800);
  font-family: var(--utility);
  font-size: var(--font-size-0);
  letter-spacing: 0.025em;
}

.finding-category {
  margin: 0 0 var(--s-1);
  text-transform: uppercase;
}

.finding-copy h3 {
  font-size: var(--font-size-5);
  margin-bottom: var(--s-1);
}

.finding-copy > p {
  margin-top: 0;
}

.finding-action {
  border-left: 0.3rem solid var(--primary-900);
  margin: var(--s-2) 0;
  padding: 0.15rem 0 0.15rem var(--s-2);
}

.finding-action p {
  margin: 0;
}

.finding-action .utility-label {
  color: var(--primary-900);
  margin-bottom: var(--s-sm);
}

.finding-action-reconcile {
  border-left-color: var(--info-900);
}

.finding-review {
  background: var(--gray-100);
  border: 1px solid var(--gray-700);
  color: var(--black);
  display: inline-block;
  font-family: var(--body);
  font-size: var(--font-size-0);
  font-weight: 750;
  letter-spacing: 0;
  margin-left: var(--s-sm);
  padding: 0.1rem 0.3rem;
  text-transform: none;
}

.finding-source {
  margin-bottom: 0;
}

.staff-question-list {
  background: var(--yellow-pale);
  border-left: 0.45rem solid var(--warning-500);
  margin-top: var(--s-3);
  padding: var(--s-3);
}

.staff-question-list h3 {
  font-size: var(--font-size-5);
  margin-bottom: var(--s-1);
}

.staff-question-list ul {
  margin-bottom: 0;
}

.packet-inventory {
  max-width: var(--reading);
}

.packet-detail {
  border-bottom: 1px solid var(--line);
}

.packet-detail:first-of-type {
  border-top: 1px solid var(--gray-700);
}

.packet-detail summary {
  cursor: pointer;
  font-weight: 800;
  min-height: 48px;
  padding: 0.65rem 0;
}

.packet-detail summary span {
  font-family: var(--utility);
  font-size: var(--font-size-1);
  font-weight: 600;
}

.packet-detail ul {
  margin: 0 0 var(--s-3);
}

.packet-detail li + li {
  margin-top: var(--s-1);
}

.packet-detail li span {
  color: var(--ink-soft);
  display: block;
  font-size: var(--font-size-2);
}

.packet-evidence {
  background: var(--blue-pale);
  display: grid;
  gap: var(--s-4);
  grid-template-columns: minmax(0, 1fr) minmax(19rem, 0.85fr);
  padding: var(--s-3);
}

.packet-evidence > div > :last-child {
  margin-bottom: 0;
}

.packet-evidence dl,
.decision-record dl {
  margin: 0;
}

.packet-evidence dl > div,
.decision-record dl > div {
  border-top: 1px solid var(--line);
  padding: 0.65rem 0;
}

.packet-evidence dl > div:first-child,
.decision-record dl > div:first-child {
  border-top: 0;
}

.packet-evidence a {
  align-items: center;
  display: inline-flex;
  min-height: 44px;
}

.evidence-record-note {
  color: var(--gray-800);
  display: block;
  font-size: var(--font-size-1);
  margin-top: var(--s-sm);
}

.readiness-method {
  max-width: var(--reading);
}

.decision-record {
  border-bottom: 1px solid var(--gray-700);
  border-top: 1px solid var(--gray-700);
  margin-top: var(--s-3);
}

.decision-record dl > div {
  display: grid;
  gap: var(--s-3);
  grid-template-columns: 10rem minmax(0, 1fr);
  padding: var(--s-2) 0;
}

.readiness-method > .small {
  color: var(--ink-soft);
}

/* A counter-ready field brief: route provenance first, then the work to do. */
.journey-evidence-summary {
  background: var(--surface);
  border: 2px solid var(--black);
  border-top: 0.7rem solid var(--primary-900);
  margin: 0 0 var(--s-5);
  padding: clamp(1.25rem, 3vw, 2.25rem);
}

.journey-evidence-header {
  border-bottom: 1px solid var(--gray-700);
  display: block;
  padding-bottom: var(--s-3);
}

.journey-evidence-header > div {
  min-width: 0;
}

.journey-evidence-header h2 {
  font-size: clamp(var(--font-size-7), 3.5vw, var(--font-size-10));
  margin-bottom: var(--s-1);
  max-width: 24ch;
}

.journey-evidence-header p:not(.section-kicker) {
  color: var(--ink-soft);
  margin: 0;
  max-width: 50rem;
}

#printJourneySummary {
  flex: 0 0 auto;
  white-space: nowrap;
}

.journey-evidence-meta {
  display: grid;
  gap: var(--s-1) var(--s-3);
  grid-template-columns: minmax(0, 3fr) minmax(7rem, 1fr);
  margin: var(--s-2) 0 0;
  max-width: 52rem;
}

.journey-evidence-meta > div {
  border-left: 0.25rem solid var(--primary-900);
  min-width: min(100%, 12rem);
  padding-left: var(--s-1);
}

.journey-evidence-meta dt,
.journey-evidence-label {
  color: var(--gray-800);
  font-family: var(--utility);
  font-size: var(--font-size-0);
  font-weight: 800;
  letter-spacing: 0.045em;
  line-height: var(--font-lineheight-3);
  text-transform: uppercase;
}

.journey-evidence-meta dd {
  margin: 0.1rem 0 0;
  overflow-wrap: anywhere;
}

.journey-evidence-route {
  background: var(--blue-pale);
  border-bottom: 1px solid var(--primary-300);
  border-top: 1px solid var(--primary-900);
  margin-top: var(--s-3);
  padding: var(--s-3) var(--s-3) var(--s-3) calc(var(--s-3) + 0.7rem);
  position: relative;
}

.journey-evidence-route::before {
  background: var(--primary-900);
  bottom: var(--s-3);
  content: "";
  left: var(--s-3);
  position: absolute;
  top: var(--s-3);
  width: 0.25rem;
}

.journey-evidence-route h3 {
  font-size: var(--font-size-6);
  margin: var(--s-sm) 0 var(--s-1);
}

.journey-evidence-route > :last-child {
  margin-bottom: 0;
}

.journey-evidence-route ul {
  list-style: none;
  margin: var(--s-2) 0 0;
  padding: 0;
}

.journey-evidence-route-line {
  border-bottom: 1px solid var(--primary-300);
  border-top: 1px solid var(--primary-900);
  min-width: 0;
  padding: var(--s-2) 0;
}

.journey-evidence-route-line h4 {
  font-size: var(--font-size-5);
  margin-bottom: var(--s-1);
}

.journey-evidence-route-line > p {
  margin: var(--s-1) 0;
}

.journey-evidence-route-line dl {
  display: grid;
  gap: 0 var(--s-3);
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin: var(--s-2) 0 0;
}

.journey-evidence-route-line dl > div {
  border-top: 1px solid var(--primary-300);
  min-width: 0;
  padding: var(--s-1) 0;
}

.journey-evidence-route-line dt {
  color: var(--gray-800);
  font-family: var(--utility);
  font-size: var(--font-size-0);
  font-weight: 800;
  text-transform: uppercase;
}

.journey-evidence-route-line dd {
  margin: var(--s-sm) 0 0;
  overflow-wrap: anywhere;
}

.journey-evidence-source-status,
.journey-evidence-status {
  border: 1px solid var(--success-700);
  color: var(--success-900);
  display: inline-block;
  font-family: var(--utility);
  font-size: var(--font-size-0);
  font-weight: 800;
  line-height: var(--font-lineheight-3);
  padding: 0.2rem 0.4rem;
  text-transform: uppercase;
}

.journey-evidence-grid {
  display: grid;
  gap: var(--s-4);
  margin-top: var(--s-4);
}

.journey-evidence-context-grid {
  align-items: start;
  display: grid;
  gap: var(--s-4);
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.journey-evidence-context-column {
  align-content: start;
  display: grid;
  gap: var(--s-4);
  min-width: 0;
}

.journey-evidence-panel,
.journey-evidence-facts,
.journey-evidence-actions,
.journey-evidence-questions,
.journey-evidence-sources {
  border-top: 2px solid var(--black);
  min-width: 0;
  padding-top: var(--s-2);
}

.journey-evidence-panel h3,
.journey-evidence-facts h3,
.journey-evidence-actions h3,
.journey-evidence-questions h3,
.journey-evidence-sources h3 {
  font-size: var(--font-size-5);
  margin-bottom: var(--s-2);
}

.journey-evidence-facts dl {
  margin: 0;
}

.journey-evidence-facts dl > div {
  border-top: 1px solid var(--line);
  display: grid;
  gap: var(--s-2);
  grid-template-columns: minmax(7.5rem, 0.7fr) minmax(0, 1.3fr);
  padding: 0.6rem 0;
}

.journey-evidence-facts dl > div:first-child {
  border-top: 0;
  padding-top: 0;
}

.journey-evidence-facts dt {
  color: var(--gray-800);
  font-family: var(--utility);
  font-size: var(--font-size-0);
  font-weight: 800;
  letter-spacing: 0.03em;
  text-transform: uppercase;
}

.journey-evidence-facts dd {
  margin: 0;
  overflow-wrap: anywhere;
}

.journey-evidence-provenance,
.journey-evidence-action-review,
.journey-evidence-action-source {
  color: var(--ink-soft);
  display: block;
  font-size: var(--font-size-1);
  margin-top: var(--s-sm);
}

.journey-evidence-actions h4 {
  font-size: var(--font-size-4);
  margin-bottom: var(--s-1);
}

.journey-evidence-actions ol,
.journey-evidence-actions ul,
.journey-evidence-questions ol,
.journey-evidence-questions ul,
.journey-evidence-sources ol,
.journey-evidence-sources ul {
  margin-bottom: 0;
  padding-left: 1.35rem;
}

.journey-evidence-actions ol {
  display: grid;
  gap: var(--s-3);
  grid-template-columns: repeat(3, minmax(0, 1fr));
  list-style: decimal;
  padding-left: 1.55rem;
}

.journey-evidence-actions ol > li {
  min-height: 2rem;
  padding-left: var(--s-sm);
}

.journey-evidence-actions ol > li::marker {
  color: var(--primary-900);
  font-family: var(--utility);
  font-weight: 850;
}

.journey-evidence-actions li + li,
.journey-evidence-questions li + li,
.journey-evidence-sources li + li,
.journey-evidence-source-list > * + * {
  margin-top: var(--s-1);
}

.journey-evidence-actions ol > li + li {
  margin-top: 0;
}

.journey-evidence-questions {
  background: var(--yellow-pale);
  border-left: 0.45rem solid var(--warning-500);
  border-top-color: var(--warning-500);
  padding: var(--s-2);
}

.journey-evidence-sources,
.journey-evidence-source-list {
  font-size: var(--font-size-1);
}

.journey-evidence-sources a,
.journey-evidence-source-list a {
  overflow-wrap: anywhere;
  word-break: break-word;
}

.journey-evidence-summary code {
  overflow-wrap: anywhere;
  white-space: normal;
  word-break: break-all;
}

.journey-evidence-source-list {
  list-style: none;
  margin-bottom: 0;
  padding-left: 0;
}

.journey-evidence-source-list > * {
  border-top: 1px solid var(--line);
  padding-top: var(--s-1);
}

.journey-evidence-source-list > :first-child {
  border-top: 0;
  padding-top: 0;
}

.journey-evidence-boundary {
  border: 1px solid var(--gray-700);
  border-left: 0.45rem solid var(--primary-900);
  color: var(--ink-soft);
  font-size: var(--font-size-1);
  margin: var(--s-4) 0 0;
  padding: var(--s-2);
}

.journey-evidence-boundary strong {
  color: var(--ink);
}

.journey-evidence-boundary > :first-child {
  margin-top: 0;
}

.journey-evidence-boundary > :last-child {
  margin-bottom: 0;
}

.journey-evidence-controls {
  align-items: center;
  border-top: 1px solid var(--line);
  display: flex;
  flex-wrap: wrap;
  gap: var(--s-2) var(--s-3);
  margin-top: var(--s-3);
  padding-top: var(--s-3);
}

.journey-evidence-controls a {
  align-items: center;
  display: inline-flex;
  font-weight: 750;
  min-height: 44px;
}

.site-footer {
  border-top: 1px solid var(--line);
  color: var(--ink-soft);
  font-size: 0.8rem;
}

.footer-inner {
  display: grid;
  gap: 1.3rem 3rem;
  grid-template-columns: 1fr auto;
  margin: 0 auto;
  max-width: var(--shell);
  padding: 2rem 1.25rem 2.5rem;
}

.footer-inner p {
  margin: 0;
  max-width: 56rem;
}

.footer-links {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem 1rem;
}

.footer-links a {
  align-items: center;
  display: inline-flex;
  min-height: 44px;
}

.visually-hidden {
  border: 0;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute !important;
  white-space: nowrap;
  width: 1px;
}

@media (max-width: 58rem) {
  .header-inner {
    align-items: flex-start;
    flex-direction: column;
    gap: 0.35rem;
    padding-bottom: 0.65rem;
    padding-top: 0.9rem;
  }

  .site-nav {
    justify-content: flex-start;
    width: 100%;
  }

  .home-hero {
    padding-bottom: var(--s-5);
    padding-top: var(--s-6);
  }

  .home-hero-grid {
    align-items: start;
    gap: var(--s-4);
    grid-template-areas:
      "copy"
      "boundary"
      "visual";
    grid-template-columns: 1fr;
  }

  .home-hero-visual {
    max-width: var(--reading);
  }

  .home-hero-visual img {
    aspect-ratio: 16 / 9;
    height: min(17rem, 56vw);
    object-fit: cover;
    object-position: center 72%;
  }

  body[data-page="project"] .tool-hero-grid {
    display: block;
  }

  .project-hero-visual {
    display: none;
  }

  .home-boundary {
    max-width: var(--reading);
  }

  ca-mesh.service-link-list {
    grid-template-columns: 1fr;
  }

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

  .scanner-layout {
    grid-template-columns: 1fr;
  }

  .scanner-notes {
    border-left: 0;
    border-top: 1px solid var(--line);
    padding-left: 0;
    padding-top: 1.25rem;
  }

  .readiness-hero-grid,
  .packet-cover,
  .readiness-verdict,
  .packet-ledger,
  .packet-evidence {
    grid-template-columns: 1fr;
  }

  .journey-evidence-grid {
    grid-template-columns: 1fr;
  }

  .journey-evidence-context-grid,
  .journey-evidence-actions ol {
    grid-template-columns: 1fr;
  }

  .readiness-hero .boundary-note {
    margin-top: 0;
  }

  .packet-counts {
    margin-left: var(--s-4);
  }

  .ledger-heading {
    position: static;
  }
}

@media (max-width: 42rem) {
  .header-inner {
    padding-left: 1rem;
    padding-right: 1rem;
  }

  .site-nav {
    display: none;
  }

  .mobile-menu {
    border-bottom: 1px solid var(--line);
    border-top: 1px solid var(--line);
    display: block;
    width: 100%;
  }

  .mobile-menu summary {
    align-items: center;
    color: var(--blue);
    cursor: pointer;
    display: flex;
    font-size: var(--font-size-1);
    font-weight: 800;
    justify-content: space-between;
    min-height: 48px;
    padding: 0.35rem 0;
  }

  .mobile-menu summary::after {
    content: "+";
    font-family: var(--utility);
    font-size: var(--font-size-5);
    line-height: 1;
  }

  .mobile-menu[open] summary::after {
    content: "−";
  }

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

  .mobile-nav {
    border-top: 1px solid var(--line);
    display: grid;
    padding: 0.25rem 0 0.5rem;
  }

  .mobile-nav a {
    align-items: center;
    color: var(--blue);
    display: flex;
    font-size: var(--font-size-1);
    font-weight: 750;
    min-height: 44px;
    padding: 0.25rem 0.5rem;
    text-decoration: none;
  }

  .mobile-nav a + a {
    border-top: 1px solid var(--line-light);
  }

  .mobile-nav a[aria-current="page"] {
    border-left: 0.3rem solid var(--cagov-highlight);
    color: var(--ink);
    padding-left: 0.7rem;
  }

  .page-shell {
    padding-left: 1rem;
    padding-right: 1rem;
  }

  .tool-hero {
    padding-bottom: var(--s-3);
    padding-top: var(--s-3);
  }

  .tool-main {
    padding-bottom: var(--s-5);
    padding-top: var(--s-3);
  }

  .tool-section + .tool-section {
    margin-top: var(--s-5);
    padding-top: var(--s-4);
  }

  .home-hero {
    padding-bottom: var(--s-4);
    padding-top: var(--s-4);
  }

  .home-hero h1 {
    font-size: var(--font-size-10);
  }

  .home-hero-visual img {
    aspect-ratio: 16 / 9;
    height: min(17rem, 56vw);
    object-fit: cover;
    object-position: center 72%;
  }

  .home-actions {
    display: grid;
  }

  .journey-section {
    padding-bottom: var(--s-5);
    padding-top: var(--s-5);
  }

  .journey-rail {
    border-left: 0.25rem solid var(--blue);
    border-top: 0;
    display: grid;
    gap: 0;
    grid-template-columns: 1fr;
    margin-left: 1.25rem;
    padding: 0;
  }

  .journey-rail li,
  .journey-rail li + li {
    border-left: 0;
    padding: 0 0 var(--s-4) var(--s-4);
  }

  .journey-rail li:last-child {
    padding-bottom: 0;
  }

  .journey-rail li .journey-number,
  .journey-rail li + li .journey-number {
    left: -1.4rem;
    top: 0;
    transform: none;
  }

  .journey-rail h3 {
    min-height: 2.5rem;
    padding-top: 0.35rem;
  }

  .before-start,
  .supporting-tools,
  .current-scope {
    padding-bottom: var(--s-4);
    padding-top: var(--s-4);
  }

  .home-actions .button,
  #t-submit,
  #scanBtn,
  #clockBtn {
    width: 100%;
  }

  .decision-boundary dl {
    display: block;
  }

  .decision-boundary dl > div,
  .decision-boundary dl > div:first-child,
  .decision-boundary dl > div:last-child {
    border-bottom: 1px solid var(--line);
    border-right: 0;
    padding: 0.65rem 0;
  }

  .decision-boundary dl > div:last-child {
    border-bottom: 0;
  }

  .result-fields > div,
  .result-facts > div,
  .decision-boundary dl > div,
  .jurisdiction-profile-ledger > div,
  .statewide-orientation-coverage dl > div,
  .statewide-orientation-facts > div,
  .method-list > div,
  .decision-record dl > div {
    grid-template-columns: 1fr;
  }

  .result-cover-heading {
    align-items: flex-start;
    flex-direction: column;
  }

  .result-index ul {
    display: block;
  }

  .result-index li + li {
    margin-top: 0.35rem;
  }

  .tool-shell {
    margin-left: -0.2rem;
    margin-right: -0.2rem;
    margin-top: var(--s-2);
    padding-left: 1rem;
    padding-right: 1rem;
  }

  .tool-heading-row {
    align-items: flex-start;
  }

  #intake {
    --bearing-inset: var(--s-2);
  }

  .jurisdiction-profile > summary,
  .optional-tool > summary,
  .result-support > summary {
    padding-left: var(--s-2);
    padding-right: var(--s-2);
  }

  .sample-actions {
    align-items: flex-start;
    display: grid;
  }

  .choice-grid {
    grid-template-columns: 1fr;
  }

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

  .journey-entry-summary dl > div + div {
    border-left: 0;
    border-top: 1px solid var(--line);
    margin-top: var(--s-2);
    padding-left: 0;
  }

  .journey-evidence-summary {
    margin-left: -0.2rem;
    margin-right: -0.2rem;
    padding-left: 1rem;
    padding-right: 1rem;
  }

  .journey-evidence-header {
    align-items: stretch;
    display: grid;
  }

  #printJourneySummary {
    justify-self: start;
    white-space: normal;
  }

  .journey-evidence-controls {
    align-items: stretch;
    display: grid;
  }

  .journey-evidence-meta {
    display: grid;
    gap: var(--s-1);
    grid-template-columns: 1fr;
  }

  .journey-evidence-facts dl > div {
    gap: var(--s-sm);
    grid-template-columns: 1fr;
  }

  .journey-evidence-route-line dl {
    grid-template-columns: 1fr;
  }

  .evidence-summary {
    grid-template-columns: 1fr;
    margin-bottom: var(--s-4);
    margin-top: var(--s-3);
  }

  .evidence-stat + .evidence-stat {
    border-left: 0;
    border-top: 1px solid var(--line);
  }

  .packet-facts,
  .packet-counts {
    grid-template-columns: 1fr;
  }

  .packet-facts > div,
  .packet-facts > div:nth-child(-n + 2) {
    border-left: 0;
    border-top: 1px solid var(--line);
    padding-left: 0;
    padding-right: 0;
  }

  .packet-facts > div:first-child {
    border-top: 0;
  }

  .packet-counts {
    margin-left: var(--s-3);
  }

  .packet-finding {
    gap: var(--s-1);
    grid-template-columns: 1fr;
  }

  .finding-state span {
    display: inline-block;
  }

  .source-section {
    margin-top: var(--s-5);
  }

  .table-scroll {
    overflow-x: visible;
  }

  .table-scroll table {
    background: transparent;
    border: 0;
    min-width: 0;
  }

  .table-scroll thead {
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    height: 1px;
    overflow: hidden;
    position: absolute;
    white-space: nowrap;
    width: 1px;
  }

  .table-scroll tbody,
  .table-scroll tr,
  .table-scroll td {
    display: block;
    width: 100%;
  }

  .table-scroll tr {
    background: var(--surface);
    border: 1px solid var(--line);
    margin-bottom: var(--s-2);
  }

  .table-scroll td {
    border-bottom: 1px solid var(--line-light);
    display: grid;
    gap: var(--s-2);
    grid-template-columns: minmax(5.5rem, 0.32fr) minmax(0, 1fr);
    overflow-wrap: anywhere;
    padding: 0.7rem 0.8rem;
  }

  .table-scroll td::before {
    color: var(--ink-soft);
    content: attr(data-label);
    font-family: var(--utility);
    font-size: var(--font-size-0);
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
  }

  .table-scroll tr:last-child td {
    border-bottom: 1px solid var(--line-light);
  }

  .table-scroll td:last-child,
  .table-scroll tr:last-child td:last-child {
    border-bottom: 0;
  }

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

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

  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
  }
}

@media (forced-colors: active) {
  .simulation-box,
  .journey-entry-hold,
  .journey-entry-summary,
  .journey-handoff,
  .packet-cover,
  .readiness-verdict,
  .packet-evidence,
  .staff-question-list,
  .journey-evidence-summary,
  .statewide-orientation,
  .decision-boundary,
  .journey-evidence-questions,
  .journey-evidence-boundary {
    border: 2px solid CanvasText;
  }

  .journey-evidence-route,
  .journey-evidence-route-line {
    border: 1px solid CanvasText;
  }

  .journey-evidence-route::before {
    background: CanvasText;
    color: Canvas;
    forced-color-adjust: none;
  }

  .journey-evidence-actions ol > li::marker {
    color: CanvasText;
  }

  .button,
  button,
  .badge,
  input,
  select,
  textarea {
    forced-color-adjust: auto;
  }
}

@page {
  margin: 0.45in;
}

/* Optional runtime AI assistance (ADR 0004). Rendered only on request. */
.ai-assist-region {
  margin: var(--s-4) 0;
  max-width: var(--reading);
}

.ai-assist summary {
  cursor: pointer;
  font-weight: 600;
  min-height: 44px;
  padding: 0.5rem 0;
}

.ai-result input[type="text"],
.ai-assist textarea {
  border: 2px solid var(--black);
  display: block;
  font: inherit;
  max-width: 100%;
  min-height: 7rem;
  padding: 0.6rem;
  width: 100%;
}

.ai-actions {
  margin: 0.8rem 0;
}

.ai-draft,
.ai-result {
  border-left: 0.3rem solid var(--primary-900);
  margin: 1.2rem 0 0;
  padding: 0.8rem 1rem;
}

.ai-draft-fields {
  margin: 0.8rem 0;
}

.ai-draft-field {
  margin: 0 0 0.6rem;
}

.ai-draft-field dt {
  color: var(--ink-soft);
  font-size: 0.95rem;
}

.ai-draft-field dd {
  margin: 0.1rem 0 0;
}

.ai-label {
  border-left: 0.3rem solid var(--yellow);
  color: var(--ink-soft);
  padding-left: 0.8rem;
}

.ai-claims > li,
.ai-questions > li {
  margin: 0 0 1rem;
}

.ai-citations {
  list-style: none;
  margin: 0.3rem 0 0;
  padding: 0;
}

.ai-citations li {
  border-left: 0.2rem solid var(--gray-300, #c9c9c9);
  margin: 0.3rem 0;
  padding-left: 0.6rem;
}

.ai-citation-label {
  font-weight: 600;
}

.ai-withheld {
  border-left: 0.3rem solid var(--yellow);
  padding-left: 0.8rem;
}

@media print {
  body[data-page="project"] {
    background: #fff !important;
    color: #000 !important;
    font-size: 9pt;
    line-height: 1.35;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }

  body[data-page="project"] > .skip-link,
  body[data-page="project"] > .site-header,
  body[data-page="project"] > .site-footer,
  body[data-page="project"] #mainContent > .tool-hero,
  body[data-page="project"] #screen .tool-shell > :not(#results),
  body[data-page="project"] #results > :not(#statewideOrientation),
  body[data-page="project"] .tool-section:not(#screen),
  body[data-page="project"] .statewide-print-action {
    display: none !important;
  }

  body[data-page="project"] #mainContent,
  body[data-page="project"] .page-shell,
  body[data-page="project"] .tool-main,
  body[data-page="project"] #screen,
  body[data-page="project"] #screen .tool-shell,
  body[data-page="project"] #results {
    border: 0;
    margin: 0 !important;
    max-width: none !important;
    padding: 0 !important;
    width: auto !important;
  }

  body[data-page="project"] #statewideOrientation {
    background: #fff !important;
    border: 1.5pt solid #000;
    border-top-width: 5pt;
    color: #000;
    margin: 0;
    max-width: none;
    overflow: visible;
    padding: 0.22in;
  }

  body[data-page="project"] #statewideOrientation > summary {
    display: block;
    list-style: none;
    min-height: 0;
    padding: 0 0 0.12in;
  }

  body[data-page="project"] #statewideOrientation > summary::marker {
    content: "";
  }

  body[data-page="project"] #statewideOrientation .statewide-orientation-body {
    border-top: 1pt solid #000;
    display: block !important;
    padding: 0.12in 0 0;
  }

  body[data-page="project"] #statewideOrientation .result-support-title {
    font-size: 20pt;
    line-height: 1.05;
  }

  body[data-page="project"] #statewideOrientation h4 {
    font-size: 12pt;
    line-height: 1.1;
  }

  body[data-page="readiness"] {
    background: #fff !important;
    color: #000 !important;
    font-size: 9pt;
    line-height: 1.35;
    min-height: 0;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }

  body[data-page="readiness"] > .skip-link,
  body[data-page="readiness"] > .site-header,
  body[data-page="readiness"] > .site-footer,
  body[data-page="readiness"] #mainContent > .tool-hero,
  body[data-page="readiness"] .readiness-main > :not(#journeyEvidenceSummary) {
    display: none !important;
  }

  body[data-page="readiness"] #mainContent,
  body[data-page="readiness"] .page-shell.readiness-main {
    margin: 0 !important;
    max-width: none !important;
    padding: 0 !important;
    width: auto !important;
  }

  body[data-page="readiness"] #journeyEvidenceSummary {
    background: #fff !important;
    border: 1.5pt solid #000;
    border-top-width: 5pt;
    box-shadow: none !important;
    color: #000;
    margin: 0;
    max-width: none;
    overflow: visible;
    padding: 0.22in;
  }

  body[data-page="readiness"] #journeyEvidenceSummary,
  body[data-page="readiness"] #journeyEvidenceSummary * {
    max-height: none !important;
    overflow: visible !important;
  }

  body[data-page="readiness"] #journeyEvidenceSummary h2 {
    font-size: 20pt;
    line-height: 1.05;
  }

  body[data-page="readiness"] #journeyEvidenceSummary h3 {
    font-size: 12pt;
    line-height: 1.1;
  }

  body[data-page="readiness"] #journeyEvidenceSummary h4 {
    font-size: 10.5pt;
    line-height: 1.15;
  }

  body[data-page="readiness"] #journeyEvidenceSummary p,
  body[data-page="readiness"] #journeyEvidenceSummary li,
  body[data-page="readiness"] #journeyEvidenceSummary dd,
  body[data-page="readiness"] #journeyEvidenceSummary a,
  body[data-page="readiness"] #journeyEvidenceSummary code {
    overflow-wrap: anywhere;
    word-break: normal;
  }

  body[data-page="readiness"] #printJourneySummary,
  body[data-page="readiness"] .journey-evidence-print-action,
  body[data-page="readiness"] .journey-evidence-controls,
  body[data-page="readiness"] .journey-evidence-actions button,
  body[data-page="readiness"] .journey-evidence-actions .button {
    display: none !important;
  }

  body[data-page="readiness"] .journey-evidence-header {
    align-items: start;
    display: block;
    padding-bottom: 0.12in;
  }

  body[data-page="readiness"] .journey-evidence-header h2 {
    margin-bottom: 0.06in;
  }

  body[data-page="readiness"] .journey-evidence-meta {
    border-bottom: 0.5pt solid #666;
    display: grid;
    gap: 0.06in 0.18in;
    grid-template-columns: minmax(0, 3fr) minmax(0.75in, 1fr);
    margin-top: 0.1in;
    padding-bottom: 0.1in;
  }

  body[data-page="readiness"] .journey-evidence-meta > div {
    border-left: 2pt solid #000;
    min-width: 0;
    padding-left: 0.06in;
  }

  body[data-page="readiness"] .journey-evidence-meta dt,
  body[data-page="readiness"] .journey-evidence-label {
    color: #000;
    font-size: 6.5pt;
  }

  body[data-page="readiness"] .journey-evidence-route {
    background: #eef3fa !important;
    border-color: #000;
    margin-top: 0.12in;
    padding: 0.1in 0.12in 0.1in 0.21in;
  }

  body[data-page="readiness"] .journey-evidence-route::before {
    background: #000;
    bottom: 0.1in;
    left: 0.11in;
    top: 0.1in;
    width: 2pt;
  }

  body[data-page="readiness"] .journey-evidence-source-status,
  body[data-page="readiness"] .journey-evidence-status {
    border-color: #000;
    color: #000;
    font-size: 6.5pt;
    padding: 0.02in 0.04in;
  }

  body[data-page="readiness"] .journey-evidence-route-line {
    background: transparent !important;
    border-bottom: 0.75pt solid #666;
    border-top: 0.75pt solid #000;
    margin: 0;
    padding: 0.08in 0;
  }

  body[data-page="readiness"] .journey-evidence-route-line dl {
    gap: 0 0.14in;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin-top: 0.06in;
  }

  body[data-page="readiness"] .journey-evidence-route-line dl > div {
    padding: 0.025in 0;
  }

  body[data-page="readiness"] .journey-evidence-grid {
    align-items: start;
    display: grid;
    gap: 0.14in 0.24in;
    grid-template-columns: 1fr;
    margin-top: 0.16in;
  }

  body[data-page="readiness"] .journey-evidence-context-grid {
    align-items: start;
    break-before: page;
    display: grid;
    gap: 0.14in 0.24in;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    page-break-before: always;
  }

  body[data-page="readiness"] .journey-evidence-context-column {
    align-content: start;
    break-inside: avoid-page;
    display: grid;
    gap: 0.14in;
    page-break-inside: avoid;
  }

  body[data-page="readiness"] .journey-evidence-actions ol {
    display: grid;
    gap: 0.14in;
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  body[data-page="readiness"] .journey-evidence-panel,
  body[data-page="readiness"] .journey-evidence-facts,
  body[data-page="readiness"] .journey-evidence-actions,
  body[data-page="readiness"] .journey-evidence-questions,
  body[data-page="readiness"] .journey-evidence-sources {
    border-top: 1.25pt solid #000;
    break-inside: auto;
    padding-top: 0.08in;
  }

  body[data-page="readiness"] .journey-evidence-facts dl > div {
    break-inside: avoid-page;
    gap: 0.08in;
    grid-template-columns: minmax(0.75in, 0.72fr) minmax(0, 1.28fr);
    page-break-inside: avoid;
    padding: 0.04in 0;
  }

  body[data-page="readiness"] #journeyEvidenceSummary h2,
  body[data-page="readiness"] #journeyEvidenceSummary h3,
  body[data-page="readiness"] #journeyEvidenceSummary h4 {
    break-after: avoid-page;
    page-break-after: avoid;
  }

  body[data-page="readiness"] .journey-evidence-actions ol > li {
    min-height: 0.2in;
    padding-left: 0.03in;
  }

  body[data-page="readiness"] .journey-evidence-actions ol > li::marker {
    color: #000;
    font-size: 6.5pt;
  }

  body[data-page="readiness"] .journey-evidence-actions li,
  body[data-page="readiness"] .journey-evidence-questions li,
  body[data-page="readiness"] .journey-evidence-source-list > *,
  body[data-page="readiness"] .journey-evidence-sources li,
  body[data-page="readiness"] .journey-evidence-route,
  body[data-page="readiness"] .journey-evidence-route-line,
  body[data-page="readiness"] .journey-evidence-boundary {
    break-inside: avoid;
  }

  body[data-page="readiness"] .journey-evidence-questions {
    background: #fff8d9 !important;
    border-left: 3pt solid #000;
    border-top-color: #000;
    padding: 0.08in;
  }

  body[data-page="readiness"] .journey-evidence-sources,
  body[data-page="readiness"] .journey-evidence-source-list {
    font-size: 7.5pt;
  }

  body[data-page="readiness"] .journey-evidence-sources a[href^="http"]::after,
  body[data-page="readiness"] .journey-evidence-source-list a[href^="http"]::after {
    color: #333;
    content: " (" attr(href) ")";
    font-family: var(--utility);
    font-size: 6.5pt;
    font-weight: 400;
    text-decoration: none;
  }

  body[data-page="readiness"] .journey-evidence-boundary {
    border-color: #000;
    border-left-width: 3pt;
    color: #000;
    font-size: 7.5pt;
    margin-top: 0.14in;
    padding: 0.08in;
  }
}
