:root {
  color-scheme: light;
  --ink: #1b2925;
  --muted: #65736d;
  --paper: #f4f7f5;
  --surface: #ffffff;
  --surface-quiet: #edf2ef;
  --line: #d1ddd7;
  --line-strong: #b9cbc3;
  --accent: #146b5a;
  --accent-strong: #0d5548;
  --accent-soft: #dcece6;
  --copper: #a76532;
  --warning: #ae751a;
  --warning-surface: #fff4df;
  --danger: #a54436;
  --danger-surface: #fce9e5;
  --focus: #a76532;
  --space-1: .25rem;
  --space-2: .5rem;
  --space-3: .75rem;
  --space-4: 1rem;
  --space-6: 1.5rem;
  --space-8: 2rem;
  --space-10: 2.5rem;
  font-family: "Segoe UI Variable", "Segoe UI", ui-sans-serif, sans-serif;
}

* { box-sizing: border-box; }
html { background: var(--paper); }
body { display: flex; flex-direction: column; min-height: 100vh; margin: 0; color: var(--ink); background: var(--paper); font-size: 1rem; line-height: 1.5; }
::selection { color: var(--ink); background: #c8e2d8; }

.skip-link { position: fixed; z-index: 2; top: var(--space-2); left: var(--space-2); padding: var(--space-2) var(--space-3); color: var(--ink); background: var(--surface); clip-path: inset(50%); text-decoration: none; }
.skip-link:focus { clip-path: none; outline: 3px solid var(--focus); outline: 3px solid color-mix(in srgb, var(--focus) 38%, transparent); outline-offset: 2px; }
.site-header { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-3) var(--space-6); padding: var(--space-3) clamp(1rem, 3vw, 2.5rem); border-bottom: 1px solid var(--line); background: var(--surface); }
.shell-primary { display: flex; flex: 1 1 58rem; align-items: center; gap: clamp(.9rem, 2vw, 1.75rem); min-width: 0; }
.brand-row { display: flex; flex: 0 0 auto; align-items: center; gap: .65rem; }
.brand { color: var(--ink); font-size: 1.05rem; font-weight: 750; letter-spacing: -.025em; text-decoration: none; }
.local-badge { padding: .18rem .5rem; border: 1px solid var(--line-strong); border-radius: 999px; color: var(--accent-strong); background: var(--accent-soft); font-size: .72rem; font-weight: 700; letter-spacing: .02em; white-space: nowrap; }
a { color: var(--accent-strong); text-underline-offset: .14em; }
.primary-nav, .nav-group { display: flex; flex-wrap: wrap; align-items: center; }
.primary-nav { flex: 1 1 38rem; gap: var(--space-1) var(--space-2); min-width: 0; }
.nav-group { gap: var(--space-1); }
.nav-group + .nav-group { margin-left: var(--space-1); padding-left: var(--space-2); border-left: 1px solid var(--line); }
nav a, .operator-chip { color: #3c5048; font-size: .84rem; text-decoration: none; }
nav a { padding: .4rem .45rem; border-radius: .35rem; }
nav a[aria-current="page"] { color: var(--accent-strong); background: var(--accent-soft); font-weight: 720; }
nav a:hover, nav a:focus-visible { color: var(--accent-strong); background: var(--surface-quiet); text-decoration: none; }
.operator-chip { flex: 0 0 auto; padding: .44rem .7rem; border: 1px solid var(--line); border-radius: .45rem; background: var(--surface-quiet); font-size: .84rem; white-space: nowrap; }
.operator-chip:hover, .operator-chip:focus-visible { color: var(--accent-strong); border-color: var(--line-strong); }

main { flex: 1; width: min(88rem, calc(100% - 2rem)); margin: 0 auto; padding: clamp(1.5rem, 3vw, 2.75rem) 0 3.5rem; }
main:focus-visible { outline: 3px solid var(--focus); outline-offset: .5rem; }
.hero { max-width: 70rem; }
.welcome-grid { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(18rem, .8fr); align-items: center; gap: clamp(2rem, 7vw, 7rem); min-height: min(34rem, calc(100vh - 15rem)); }
.welcome-copy { max-width: 48rem; }
.welcome-aside { display: grid; gap: var(--space-4); align-self: center; justify-self: end; width: min(100%, 25rem); }
.eyebrow { margin: 0 0 .55rem; color: var(--accent-strong); font-size: .72rem; font-weight: 750; letter-spacing: .1em; line-height: 1.2; text-transform: uppercase; }
h1, h2, h3 { color: var(--ink); }
h1 { margin: 0 0 .8rem; font-size: clamp(2.15rem, 4.5vw, 4.4rem); font-weight: 720; letter-spacing: -.055em; line-height: .98; }
h2 { margin: 0 0 .7rem; font-size: 1.08rem; font-weight: 720; letter-spacing: -.02em; line-height: 1.2; }
h3 { margin: 0 0 .45rem; font-size: .95rem; font-weight: 700; }
p { max-width: 75ch; }
.page-header { display: flex; align-items: end; justify-content: space-between; gap: 1rem; margin-bottom: 1.5rem; }
.page-header h1 { margin-bottom: .25rem; font-size: clamp(1.85rem, 3vw, 2.7rem); }
.lede { max-width: 55ch; margin: 0; color: var(--muted); font-size: 1.05rem; line-height: 1.55; }
.status-card { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; margin: 0; overflow: hidden; border: 1px solid var(--line); border-radius: .7rem; background: var(--line); }
.status-card div { padding: 1.1rem 1.15rem; background: var(--surface); }
.status-card dt { color: var(--muted); font-size: .7rem; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; }
.status-card dd { margin: .28rem 0 0; font-weight: 720; }
.welcome-aside .actions { margin: 0; }

.section-block { margin-top: var(--space-10); }
.section-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; margin-bottom: .8rem; }
.section-heading h2 { margin: 0; }
.section-heading p { margin: 0; }
.metric-grid, .review-metric-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; overflow: hidden; border-top: 1px solid var(--line-strong); border-bottom: 1px solid var(--line-strong); background: var(--surface); }
.metric { min-height: 6.2rem; padding: 1rem .9rem .85rem; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: var(--surface); }
.metric:nth-child(3n) { border-right: 0; }
.metric:nth-last-child(-n + 3) { border-bottom: 0; }
.metric strong { display: block; margin-bottom: .2rem; color: var(--ink); font-size: 1.65rem; font-variant-numeric: tabular-nums; font-weight: 720; letter-spacing: -.04em; line-height: 1; }
.metric span, .muted { color: var(--muted); }
.metric span { display: block; font-size: .86rem; line-height: 1.35; }
.review-ledger { margin-top: var(--space-6); }
.review-metric { min-height: 7.4rem; padding: 1.15rem 1.1rem 1rem; border-right: 1px solid var(--line); background: var(--surface); }
.review-metric:last-child { border-right: 0; }
.review-metric strong { display: block; margin-bottom: var(--space-2); color: var(--accent-strong); font-size: clamp(2.25rem, 3vw, 3.1rem); font-variant-numeric: tabular-nums; font-weight: 720; letter-spacing: -.04em; line-height: .94; }
.review-metric span { display: block; max-width: 24ch; color: var(--ink); font-size: .88rem; font-weight: 720; line-height: 1.25; overflow-wrap: anywhere; }

.grid-2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.grid-3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.stack { display: grid; gap: 1rem; }
.panel { padding: 1.1rem 1.15rem; border: 1px solid var(--line); border-radius: .65rem; background: var(--surface); }
.dashboard-breakdowns { margin-top: var(--space-4); }
.actions { display: flex; flex-wrap: wrap; gap: .55rem; margin: 1rem 0; }
.button, button { display: inline-block; border: 1px solid var(--accent); border-radius: .42rem; padding: .56rem .8rem; color: #fff; background: var(--accent); font: inherit; font-size: .86rem; font-weight: 720; line-height: 1.2; text-decoration: none; cursor: pointer; }
.button:hover, button:hover { border-color: var(--accent-strong); background: var(--accent-strong); }
.button.secondary, button.secondary { color: var(--accent-strong); background: transparent; }
.button.secondary:hover, button.secondary:hover { color: var(--accent-strong); background: var(--accent-soft); }
.button.danger, button.danger { border-color: var(--danger); background: var(--danger); }
button:disabled, .button[aria-disabled="true"] { opacity: .55; cursor: not-allowed; }

form.filters, form.form-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr)); align-items: end; gap: .75rem; margin: 1rem 0; }
form.filters { padding: .85rem; border: 1px solid var(--line); border-radius: .65rem; background: var(--surface-quiet); }
.export-filters { margin-bottom: .75rem; }
.export-submit { display: flex; align-items: end; min-height: 100%; }
.export-submit button { width: 100%; }
.export-notes { margin-top: 1rem; }
.export-notes > div { padding: 1rem 1.1rem; border-top: 1px solid var(--line-strong); border-bottom: 1px solid var(--line); background: var(--surface); }
.export-notes h2 { margin-bottom: .35rem; }
.export-notes p { margin: 0; color: var(--muted); }
.material-picker { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .7rem; padding: .75rem; border: 1px solid var(--line); border-radius: .5rem; background: var(--surface-quiet); }
label { display: grid; gap: .32rem; color: #3d5149; font-size: .85rem; font-weight: 700; }
.check-control { display: flex; align-items: center; gap: .5rem; min-height: 2.5rem; }
.check-control input { width: auto; min-width: 1rem; min-height: 1rem; margin: 0; }
input, select, textarea { width: 100%; border: 1px solid #aebdb6; border-radius: .4rem; padding: .58rem .65rem; color: var(--ink); background: var(--surface); font: inherit; font-size: .9rem; }
.scroll-select { min-height: 13.25rem; overflow-y: auto; padding: .2rem; }
.scroll-select option { padding: .38rem .45rem; }
input::placeholder, textarea::placeholder { color: #7a8882; }
input:hover, select:hover, textarea:hover { border-color: var(--line-strong); }
textarea { min-height: 6rem; resize: vertical; }
.span-2 { grid-column: span 2; }
input:focus-visible, select:focus-visible, textarea:focus-visible, button:focus-visible, a:focus-visible, summary:focus-visible { outline: 3px solid color-mix(in srgb, var(--focus) 38%, transparent); outline-offset: 2px; }

.table-wrap { overflow-x: auto; border: 1px solid var(--line); border-radius: .6rem; background: var(--surface); }
.table-wrap--bounded { max-height: 32rem; overflow: auto; }
.table-wrap--bounded th { position: sticky; top: 0; z-index: 1; background: var(--surface-quiet); }
.table-filter { display: flex; flex-wrap: wrap; align-items: end; gap: .65rem; margin: .75rem 0; }
.table-filter label { flex: 1 1 min(100%, 24rem); }
.table-filter input[type="search"] { width: 100%; }
.hierarchy-tools { align-items: end; }
.hierarchy-tools > label { flex: 1 1 min(100%, 28rem); }
.hierarchy-actions { display: flex; flex-wrap: wrap; gap: .55rem; }
.table-pagination { margin-bottom: .25rem; }
table { width: 100%; border-collapse: collapse; font-size: .9rem; font-variant-numeric: tabular-nums; }
th, td { padding: .7rem .75rem; border-bottom: 1px solid #e1e9e5; text-align: left; vertical-align: top; }
th { color: #52645c; background: var(--surface-quiet); font-size: .7rem; font-weight: 750; letter-spacing: .06em; text-transform: uppercase; }
tbody tr:hover td { background: #f7faf8; }
tr:last-child td { border-bottom: 0; }
td a { color: var(--accent-strong); font-weight: 700; text-underline-offset: .14em; }
td a:hover { color: var(--copper); }
.badge { display: inline-block; padding: .2rem .46rem; border: 1px solid var(--line); border-radius: 999px; color: #43534c; background: var(--surface-quiet); font-size: .72rem; font-weight: 700; white-space: nowrap; }
.badge.warn { color: #76500c; border-color: #e7c982; background: var(--warning-surface); }
.badge.danger { color: #7b2c25; border-color: #edbcb5; background: var(--danger-surface); }
.warning { margin: 1rem 0; padding: .8rem 1rem; border: 1px solid #e6c983; border-top: 2px solid var(--warning); border-radius: .55rem; color: #61470d; background: var(--warning-surface); }
.danger-note { border-color: #edbcb5; border-top-color: var(--danger); color: #772d27; background: var(--danger-surface); }
.flash { margin-bottom: 1rem; padding: .72rem 1rem; border: 1px solid #b9dacc; border-top: 2px solid var(--accent); border-radius: .55rem; color: var(--accent-strong); background: var(--accent-soft); }
.flash.error { color: #76251f; border-color: #edbcb5; border-top-color: var(--danger); background: var(--danger-surface); }
.breadcrumbs { margin: 0 0 .65rem; color: var(--muted); font-size: .8rem; }
.breadcrumbs a { color: var(--accent-strong); text-underline-offset: .14em; }
.kv { display: grid; grid-template-columns: minmax(8rem, .6fr) 1fr; gap: .42rem 1.1rem; }
.kv dt { color: var(--muted); }
.kv dd { margin: 0; overflow-wrap: anywhere; font-variant-numeric: tabular-nums; }
.pagination { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .75rem; margin-top: .8rem; }
.tree, .tree ul { list-style: none; margin: .25rem 0; padding-left: 1rem; }
.tree > li { padding-left: 0; }
.tree summary { cursor: pointer; padding: .25rem; }
.chart { width: 100%; height: auto; border: 1px solid var(--line); border-radius: .5rem; background: var(--surface); }
.chart polyline { fill: none; stroke: var(--accent); stroke-width: 3; }
.chart circle { fill: var(--copper); }
.chart-grid line { stroke: #d7e1dc; stroke-width: 1; }
.chart-grid text, .chart-date, .chart-label { fill: var(--muted); font-size: 12px; }
.chart-axis, .chart-tick { stroke: #52645c; stroke-width: 1.25; }
.bar-list { display: grid; gap: .72rem; margin: 0; padding: 0; list-style: none; }
.bar-list > div { display: grid; grid-template-columns: minmax(8rem, 1fr) minmax(10rem, 2fr) auto; align-items: center; gap: .75rem; }
progress { width: 100%; height: .55rem; overflow: hidden; border: 0; border-radius: 999px; background: #e2e9e6; accent-color: var(--accent); }
progress::-webkit-progress-bar { border-radius: 999px; background: #e2e9e6; }
progress::-webkit-progress-value { border-radius: 999px; background: var(--accent); }
progress::-moz-progress-bar { border-radius: 999px; background: var(--accent); }
.record-note, .note-block p { white-space: pre-wrap; overflow-wrap: anywhere; }
.path { display: flex; min-width: 0; gap: .5rem; align-items: center; overflow-wrap: anywhere; color: #4c5e56; font-family: ui-monospace, SFMono-Regular, Consolas, monospace; font-size: .78rem; }
.path > * { min-width: 0; overflow-wrap: anywhere; }
.small { font-size: .78rem; }
.import-error-panel { margin-bottom: 1rem; border-color: var(--danger); background: var(--danger-surface); }
.import-error-panel .section-heading { align-items: flex-start; margin-bottom: 1rem; }
.error-summary { display: flex; flex-wrap: wrap; gap: .5rem; margin: 0 0 1rem; padding: 0; list-style: none; }
.error-summary li { display: inline-flex; align-items: baseline; gap: .45rem; padding: .32rem .5rem; border: 1px solid var(--danger); border-radius: 999px; color: var(--danger); background: var(--surface); font-size: .72rem; }
.error-summary strong { font-variant-numeric: tabular-nums; }
.import-error-preview { margin: 0; }
.import-error-preview table { min-width: 48rem; }
.import-error-preview caption { padding: 0 0 .55rem; color: var(--danger); text-align: left; font-size: .72rem; font-weight: 700; }
.import-error-preview td:last-child { min-width: 22rem; overflow-wrap: anywhere; }
.safety-notice { display: flex; flex-wrap: wrap; gap: .4rem 1.5rem; padding: .72rem clamp(1rem, 4vw, 3.5rem); border-top: 1px solid #d9c28d; background: var(--warning-surface); color: #61470d; font-size: .84rem; }
.safety-notice p { margin: 0; }

@media (max-width: 70rem) {
  .site-header { align-items: flex-start; }
  .shell-primary { order: 3; flex-basis: 100%; align-items: flex-start; }
  .primary-nav { flex-basis: 100%; }
  .grid-3 { grid-template-columns: 1fr; }
}
@media (max-width: 48rem) {
  .shell-primary { flex-direction: column; gap: var(--space-2); }
  .primary-nav { width: 100%; }
  .nav-group + .nav-group { margin-left: 0; padding-left: 0; border-left: 0; }
  .welcome-grid { grid-template-columns: 1fr; align-items: start; min-height: auto; gap: 2rem; }
  .welcome-aside { justify-self: start; max-width: 32rem; }
  .metric-grid, .review-metric-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .metric:nth-child(3n) { border-right: 1px solid var(--line); }
  .metric:nth-child(2n) { border-right: 0; }
  .metric:nth-last-child(-n + 3) { border-bottom: 1px solid var(--line); }
  .metric:nth-last-child(-n + 2) { border-bottom: 0; }
  .review-metric { border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
  .review-metric:nth-child(2n) { border-right: 0; }
  .review-metric:last-child { border-bottom: 0; }
  .grid-2, .material-picker { grid-template-columns: 1fr; }
  .span-2 { grid-column: auto; }
  .page-header { align-items: flex-start; flex-direction: column; }
  .page-header .button { align-self: flex-start; }
  .section-heading { align-items: flex-start; flex-direction: column; gap: .25rem; }
  input, select, textarea { font-size: 1rem; }
}
@media (max-width: 34rem) {
  main { width: min(100% - 1.25rem, 88rem); }
  .site-header { padding-inline: .7rem; }
  .status-card { grid-template-columns: 1fr; }
  .metric-grid, .review-metric-grid { grid-template-columns: 1fr; }
  .metric, .metric:nth-child(3n), .metric:nth-child(2n), .metric:nth-last-child(-n + 3), .metric:nth-last-child(-n + 2) { border-right: 0; border-bottom: 1px solid var(--line); }
  .metric:last-child { border-bottom: 0; }
  .review-metric, .review-metric:nth-child(2n) { border-right: 0; border-bottom: 1px solid var(--line); }
  .review-metric:last-child { border-bottom: 0; }
  .bar-list > div { grid-template-columns: 1fr auto; }
  .bar-list progress { grid-column: 1 / -1; grid-row: 2; }
}

.bar-list > div { min-width: 0; }
.bar-list > div > * { min-width: 0; }
.bar-list > div > span { overflow-wrap: anywhere; }
.table-wrap table { min-width: 34rem; }

@media (pointer: coarse) {
  nav a, .operator-chip, .button, button, summary { min-height: 44px; }
  nav a, .operator-chip, .button, button { display: inline-flex; align-items: center; }
}

/* Public information surface: readable without authentication; records stay gated. */
.public-site { background: var(--paper); color: var(--ink); }
.public-header { display: flex; align-items: center; justify-content: space-between; gap: 1.25rem; min-height: 4.75rem; padding: .8rem max(1rem, calc((100vw - 78rem) / 2)); border-bottom: 1px solid var(--line); background: color-mix(in srgb, var(--paper) 92%, transparent); }
.public-brand { display: inline-flex; align-items: center; gap: .7rem; color: var(--ink); font-size: 1.04rem; font-weight: 780; letter-spacing: -.025em; text-decoration: none; }
.public-mark { position: relative; display: grid; width: 1.75rem; height: 1.75rem; place-items: center; border: 1px solid var(--accent-strong); border-radius: 50%; }
.public-mark::before, .public-mark::after, .public-mark span { position: absolute; content: ""; background: var(--accent-strong); }
.public-mark::before { width: 1px; height: 2.2rem; transform: rotate(38deg); }
.public-mark::after { width: 2.2rem; height: 1px; transform: rotate(-17deg); }
.public-mark span { width: .38rem; height: .38rem; border-radius: 50%; background: var(--copper); }
.public-nav { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: .25rem; }
.public-nav a { padding: .55rem .7rem; border-radius: .42rem; color: #334941; font-size: .86rem; text-decoration: none; }
.public-nav a:hover, .public-nav a:focus-visible, .public-nav a[aria-current="page"] { color: var(--accent-strong); background: var(--accent-soft); }
.public-nav .public-sign-in { margin-left: .4rem; border: 1px solid var(--accent); color: #fff; background: var(--accent); font-weight: 720; }
.public-nav .public-sign-in:hover, .public-nav .public-sign-in:focus-visible { color: #fff; background: var(--accent-strong); }
.public-main { width: 100%; margin: 0; padding: 0 0 4rem; }
.public-main:focus-visible { outline-offset: -.25rem; }
.public-hero, .public-purpose, .capability-section, .trust-section, .public-close, .public-reading { width: min(78rem, calc(100% - 2rem)); margin-inline: auto; }
.public-hero { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(25rem, .95fr); align-items: center; gap: clamp(2.5rem, 7vw, 6.5rem); min-height: min(47rem, calc(100vh - 4.75rem)); padding-block: clamp(3.25rem, 7vw, 6rem); }
.public-hero-copy { max-width: 43rem; }
.public-hero h1 { max-width: 14ch; margin: 0 0 1.35rem; font-size: clamp(2.75rem, 5.6vw, 5.25rem); font-weight: 750; letter-spacing: -.04em; line-height: .98; text-wrap: balance; }
.public-lede { max-width: 61ch; margin: 0; color: #3f514a; font-size: clamp(1.05rem, 1.5vw, 1.23rem); line-height: 1.58; }
.public-classification { margin: 1.5rem 0 0; padding-top: 1rem; border-top: 1px solid var(--line-strong); color: var(--muted); font-size: .86rem; }
.public-classification strong { color: var(--ink); }
.public-actions { display: flex; flex-wrap: wrap; align-items: center; gap: .8rem 1.1rem; margin-top: 1.75rem; }
.public-actions .button, .public-close .button { padding: .72rem 1rem; font-size: .92rem; }
.public-text-link { font-size: .9rem; font-weight: 700; text-decoration-thickness: 1px; text-underline-offset: .25em; }
.public-access-note { max-width: 58ch; margin: 1rem 0 0; color: var(--muted); font-size: .82rem; }
.record-map { position: relative; align-self: stretch; display: flex; flex-direction: column; justify-content: center; padding: clamp(1.3rem, 3vw, 2rem); border: 1px solid var(--line-strong); border-radius: .7rem; background: var(--surface); }
.record-map-heading { display: grid; gap: .25rem; padding-bottom: 1.15rem; border-bottom: 1px solid var(--line); }
.record-map-heading span { color: var(--accent-strong); font-size: .72rem; font-weight: 750; letter-spacing: .08em; text-transform: uppercase; }
.record-map-heading strong { max-width: 24ch; font-size: 1.05rem; line-height: 1.25; }
.record-path { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 0; margin: 1.75rem 0; padding: 0; list-style: none; }
.record-path li { position: relative; padding-top: 1.1rem; color: #465b53; font-size: .68rem; line-height: 1.2; text-align: center; }
.record-path li::before { position: absolute; top: .22rem; left: 0; width: 100%; height: 1px; content: ""; background: var(--line-strong); }
.record-path li::after { position: absolute; top: 0; left: calc(50% - .25rem); width: .5rem; height: .5rem; border: 2px solid var(--surface); border-radius: 50%; content: ""; background: var(--accent); box-shadow: 0 0 0 1px var(--accent); }
.record-path li:first-child::before { left: 50%; width: 50%; }
.record-path li:last-child::before { width: 50%; }
.record-ledger { margin: 0; border-top: 1px solid var(--line-strong); }
.record-ledger div { display: grid; grid-template-columns: minmax(8rem, .8fr) minmax(0, 1.5fr); gap: 1rem; padding: .8rem 0; border-bottom: 1px solid var(--line); }
.record-ledger dt { color: var(--ink); font-size: .78rem; font-weight: 750; }
.record-ledger dd { margin: 0; color: var(--muted); font-size: .78rem; line-height: 1.45; }
.public-purpose { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(16rem, .6fr); gap: clamp(2rem, 7vw, 6rem); margin-top: 1rem; padding-block: clamp(2.75rem, 6vw, 4.5rem); border-top: 1px solid var(--line-strong); border-bottom: 1px solid var(--line-strong); }
.public-purpose h2, .public-section-heading h2, .trust-section h2, .public-close h2, .public-reading h2 { font-size: clamp(1.55rem, 2.5vw, 2.15rem); letter-spacing: -.03em; }
.public-purpose p { margin: 0; color: #42554e; font-size: 1.02rem; }
.public-purpose h2 { margin-bottom: .8rem; }
.purpose-statement { align-self: end; padding: 1rem 0 0 1.25rem; border-top: 1px solid var(--line); color: var(--accent-strong) !important; font-weight: 720; }
.capability-section { padding-block: clamp(4rem, 8vw, 6.5rem); }
.public-section-heading { display: flex; align-items: end; justify-content: space-between; gap: 2rem; margin-bottom: 1.5rem; }
.public-section-heading h2, .public-section-heading p { margin: 0; }
.public-section-heading p { color: var(--muted); font-size: .86rem; }
.capability-ledger { margin: 0; border-top: 1px solid var(--line-strong); }
.capability-ledger div { display: grid; grid-template-columns: minmax(12rem, .8fr) minmax(0, 1.7fr); gap: clamp(1rem, 4vw, 4rem); padding: 1.15rem 0; border-bottom: 1px solid var(--line); }
.capability-ledger dt { color: var(--ink); font-weight: 750; }
.capability-ledger dd { margin: 0; color: var(--muted); }
.trust-section { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(18rem, .85fr); gap: clamp(2rem, 7vw, 6rem); padding: clamp(2rem, 5vw, 3.75rem); border-radius: .7rem; color: #f1f7f4; background: var(--accent-strong); }
.trust-section h2 { margin-bottom: .8rem; color: #fff; }
.trust-section p { margin: 0; color: #d6e6df; }
.trust-list { display: grid; align-content: start; gap: 0; margin: 0; padding: 0; list-style: none; }
.trust-list li { padding: .78rem 0; border-bottom: 1px solid #3c7569; color: #fff; font-size: .88rem; font-weight: 680; }
.trust-list li:first-child { border-top: 1px solid #3c7569; }
.public-close { display: flex; align-items: center; justify-content: space-between; gap: 2rem; padding-block: clamp(4rem, 8vw, 6rem); }
.public-close h2, .public-close p { margin: 0; }
.public-close p { margin-top: .45rem; color: var(--muted); }
.public-footer { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; padding: 1.25rem max(1rem, calc((100vw - 78rem) / 2)); border-top: 1px solid var(--line); color: var(--muted); background: var(--surface); font-size: .78rem; }
.public-footer p { margin: 0; }
.public-footer strong { color: var(--ink); }
.public-footer nav { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 1rem; }
.public-footer a { color: #3d5149; text-underline-offset: .2em; }
.public-reading { max-width: 56rem; padding-block: clamp(3.5rem, 8vw, 6.5rem); }
.public-reading-header { margin-bottom: clamp(3rem, 7vw, 5rem); padding-bottom: 2rem; border-bottom: 1px solid var(--line-strong); }
.public-reading-header h1 { max-width: 12ch; margin-bottom: 1rem; font-size: clamp(2.7rem, 6vw, 5rem); letter-spacing: -.04em; }
.public-reading-header > p:not(.public-review-date) { margin: 0; color: #42554e; font-size: 1.15rem; line-height: 1.6; }
.public-reading section { display: grid; grid-template-columns: minmax(12rem, .65fr) minmax(0, 1.35fr); gap: clamp(1rem, 4vw, 3.5rem); padding: 1.75rem 0; border-bottom: 1px solid var(--line); }
.public-reading section h2 { margin: 0; font-size: 1.12rem; }
.public-reading section p { margin: 0; color: #485a53; }
.public-reading section p + p { margin-top: 1rem; }
.public-review-date { margin: 1.15rem 0 0; color: var(--muted); font-size: .78rem; }
.demo-access-page { display: grid; min-height: 100vh; place-items: center; padding: 1rem; background: var(--paper); }
.demo-access-card { width: min(100%, 30rem); margin: 0; padding: clamp(1.5rem, 5vw, 2.5rem); border: 1px solid var(--line-strong); border-radius: .7rem; background: var(--surface); }
.demo-access-card h1 { margin-top: 1.1rem; font-size: clamp(2.2rem, 8vw, 3.4rem); letter-spacing: -.04em; }
.demo-access-card form { display: grid; gap: .8rem; margin-top: 1.5rem; }
.demo-access-card .button { justify-self: start; }
.demo-back-link { color: var(--accent-strong); font-size: .82rem; font-weight: 700; text-underline-offset: .22em; }
.demo-access-help { margin: 1.25rem 0 0; padding-top: 1rem; border-top: 1px solid var(--line); color: var(--muted); font-size: .78rem; }

@media (max-width: 58rem) {
  .public-hero { grid-template-columns: 1fr; min-height: auto; }
  .public-hero-copy { max-width: 50rem; }
  .record-map { min-height: 30rem; }
  .public-purpose, .trust-section { grid-template-columns: 1fr; }
  .purpose-statement { max-width: 34rem; padding-left: 0; }
}

@media (max-width: 42rem) {
  .public-header { align-items: flex-start; flex-direction: column; }
  .public-nav { justify-content: flex-start; width: 100%; }
  .public-nav .public-sign-in { margin-left: auto; }
  .public-hero, .public-purpose, .capability-section, .trust-section, .public-close, .public-reading { width: min(100% - 1.25rem, 78rem); }
  .public-hero { padding-top: 2.75rem; }
  .public-hero h1 { font-size: clamp(2.55rem, 13vw, 4rem); }
  .record-path { grid-template-columns: 1fr; margin-block: 1.25rem; }
  .record-path li { min-height: 2.1rem; padding: 0 0 .55rem 1.4rem; text-align: left; }
  .record-path li::before { top: 0; left: .23rem; width: 1px; height: 100%; }
  .record-path li:first-child::before { top: .25rem; left: .23rem; width: 1px; height: calc(100% - .25rem); }
  .record-path li:last-child::before { width: 1px; height: .25rem; }
  .record-path li::after { top: .1rem; left: 0; }
  .record-ledger div, .capability-ledger div, .public-reading section { grid-template-columns: 1fr; gap: .4rem; }
  .public-section-heading, .public-close, .public-footer { align-items: flex-start; flex-direction: column; }
  .trust-section { padding: 1.5rem; }
  .public-footer nav { justify-content: flex-start; }
}

@media (prefers-reduced-motion: no-preference) {
  .public-mark::before { animation: public-mark-settle .65s cubic-bezier(.16, 1, .3, 1) both; transform-origin: center; }
}

@keyframes public-mark-settle {
  from { opacity: .35; transform: rotate(38deg) scaleY(.35); }
  to { opacity: 1; transform: rotate(38deg) scaleY(1); }
}
