:root {
  color-scheme: light;
  --ink: #172033;
  --muted: #56647a;
  --line: #ccd6e4;
  --brand: #245da8;
  --surface: #f5f8fc;
}

* { box-sizing: border-box; }
html { font-family: system-ui, -apple-system, "Segoe UI", sans-serif; color: var(--ink); background: var(--surface); }
body { margin: 0; line-height: 1.7; }
a { color: var(--brand); }
.container { width: min(1120px, calc(100% - 2rem)); margin-inline: auto; }
.skip-link { position: absolute; left: -9999px; }
.skip-link:focus { left: 1rem; top: 1rem; background: #fff; padding: .75rem; z-index: 10; }
.site-header { background: #213f65; color: #fff; }
.site-nav { min-height: 4rem; display: flex; align-items: center; gap: 1.5rem; }
.site-name { color: #fff; font-weight: 800; text-decoration: none; font-size: 1.25rem; }
.site-nav-link { margin-left: auto; color: #fff; font-weight: 700; }
main { padding-block: 2.5rem 4rem; }
.hero { background: #fff; border: 1px solid var(--line); border-radius: 1rem; padding: clamp(1.25rem, 4vw, 3rem); }
.eyebrow { color: var(--brand); font-weight: 700; }
h1 { font-size: clamp(2rem, 5vw, 3.5rem); line-height: 1.2; }
.lead { font-size: 1.15rem; color: var(--muted); }
.card-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 1rem; }
.card { background: #fff; border: 1px solid var(--line); border-radius: .75rem; padding: 1.25rem; }
.home-hero { background: #fff; border-left: .4rem solid var(--brand); padding: clamp(1.25rem, 4vw, 3rem); margin-bottom: 2rem; }
.home-hero h1 { font-size: clamp(2rem, 3vw, 2.65rem); letter-spacing: -.02em; }
.button { display: inline-block; padding: .7rem 1rem; border-radius: .4rem; color: #fff; background: var(--brand); text-decoration: none; font-weight: 700; }
.button-secondary { color: var(--brand); background: #fff; border: 2px solid var(--brand); }
.status-pill { display: inline-block; padding: .2rem .7rem; border-radius: 99rem; font-weight: 700; }
.status-pill.published { color: #075d32; background: #e2f4e8; }
.status-pill.preparing { color: #49566b; background: #edf0f4; }
.breadcrumbs { margin-bottom: 1rem; color: var(--muted); }
.muted { color: var(--muted); }
.table-wrap { width: 100%; overflow-x: clip; border: 1px solid var(--line); background: #fff; }
.member-table { width: 100%; table-layout: fixed; border-collapse: collapse; }
.member-table th:nth-child(1) { width: 4%; }
.member-table th:nth-child(2) { width: 23%; }
.member-table th:nth-child(3) { width: 18%; }
.member-table th:nth-child(4) { width: 16%; }
.member-table th:nth-child(5) { width: 14%; }
.member-table th:nth-child(6) { width: 25%; }
.member-table th, .member-table td { border: 1px solid var(--line); padding: .8rem; text-align: left; vertical-align: top; }
.member-table th, .member-table td, .social-links a { overflow-wrap: anywhere; }
.member-table th:nth-child(-n+4), .member-table td:nth-child(-n+4) { white-space: nowrap; overflow-wrap: normal; word-break: keep-all; }
.member-table thead th { background: #e8f0fa; }
.member-name { display: block; font-weight: 800; font-size: 1.05rem; }
.member-meta { display: block; margin-top: .25rem; color: var(--muted); font-weight: 400; }
.social-links, .source-links { margin: 0; padding-left: 1.2rem; }
.social-links li + li { margin-top: .3rem; }
.social-links-compact { display: flex; flex-direction: column; align-items: flex-start; gap: .35rem; padding: 0; list-style: none; }
.social-links-compact li + li { margin-top: 0; }
.social-platform-row { display: flex; flex-wrap: nowrap; align-items: center; gap: .35rem; min-height: 2rem; }
.social-icon-link, .social-icon { display: inline-grid; place-items: center; width: 2rem; height: 2rem; }
.social-icon-link { border-radius: .35rem; text-decoration: none; }
.social-icon { border: 1px solid #637286; border-radius: .35rem; background: #fff; color: var(--ink); font-size: .82rem; font-weight: 800; line-height: 1; }
.social-icon-facebook { background: #1769aa; color: #fff; font: 800 1.35rem/1 Arial,sans-serif; }
.social-icon-instagram { background: #833ab4; color: #fff; font-size: 1.2rem; }
.social-icon-x { background: #111; color: #fff; font: 800 1rem/1 Arial,sans-serif; }
.social-icon-blog { width: 3.4rem; font-size: .72rem; }
.social-icon-website { width: 3.4rem; background: #385f8b; color: #fff; font-size: .72rem; }
.social-icon-link:hover .social-icon, .social-icon-link:focus-visible .social-icon { box-shadow: 0 0 0 2px var(--brand); }
.social-blog-link { display: inline-flex; align-items: center; gap: .35rem; }
.detail-social-links { display: grid; gap: .55rem; margin: 0; padding: 0; list-style: none; }
.detail-social-links a { display: inline-flex; align-items: center; gap: .55rem; }
.keyword-tags { display: flex; flex-wrap: wrap; gap: .35rem; margin: 0; padding: 0; list-style: none; }
.keyword-tags li { padding: .2rem .6rem; border: 1px solid #9bb9df; border-radius: 99rem; background: #f2f7fd; white-space: nowrap; }
.notice { margin-top: 1.5rem; padding: 1.25rem; background: #e8f0fa; border-left: .35rem solid var(--brand); }
.page-index { margin-block: 1.5rem; padding: 1rem 1.25rem; border: 1px solid var(--line); background: #fff; }
.page-index ul { display: flex; flex-wrap: wrap; gap: .35rem 1.5rem; margin-bottom: 0; }
.content-table { width: 100%; border-collapse: collapse; }
.content-table th, .content-table td { border: 1px solid var(--line); padding: .75rem; text-align: left; }
.content-table thead th { background: #e8f0fa; }
.button-row { display: flex; flex-wrap: wrap; gap: .75rem; }
.information-form { margin-top: 1.5rem; }
.form-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1rem; }
.field { display: grid; gap: .35rem; font-weight: 700; }
.field input, .field select, .field textarea { width: 100%; padding: .7rem; border: 1px solid #8290a4; border-radius: .3rem; background: #fff; color: var(--ink); font: inherit; }
.field textarea { min-height: 11rem; resize: vertical; }
.information-content, .consent-field, .form-actions { margin-top: 1rem; }
.consent-field { display: flex; align-items: flex-start; gap: .55rem; }
.submission-honeypot { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.error-note { border-left-color: #a52a2a; background: #fff0f0; }
.metadata dl { display: grid; grid-template-columns: max-content 1fr; gap: .5rem 1rem; }
.metadata dd { margin: 0; }
.information-history { margin-top: 2rem; }
.contribution { padding: 1rem; background: #fff; border: 1px solid var(--line); }
.contribution + .contribution { margin-top: .75rem; }
.affiliate-card { margin-top: 2rem; padding: 1rem; border: 1px solid #d8c89b; border-radius: .65rem; background: #fffaf0; }
.affiliate-heading { margin-bottom: .5rem; }
.affiliate-label { display: inline-block; padding: .1rem .45rem; border: 1px solid #816513; border-radius: .25rem; color: #654d08; font-size: .78rem; font-weight: 800; }
.affiliate-body { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.affiliate-title { margin: 0; font-weight: 800; overflow-wrap: anywhere; }
.affiliate-note { margin: .2rem 0 0; color: var(--muted); font-size: .9rem; }
.affiliate-button { flex: 0 0 auto; }
.profile-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(220px,1fr)); gap: 1rem; }
.profile-grid > div { background: #fff; border: 1px solid var(--line); padding: 1rem; }
.profile-grid dl { display: grid; grid-template-columns: max-content 1fr; gap: .35rem .7rem; }
.profile-grid dd { margin: 0; }
.detail-tree { margin-top: 1rem; border: 1px solid var(--line); background: #fff; }
.detail-tree summary { cursor: pointer; padding: 1rem; font-weight: 800; }
.detail-tree > div { padding: 0 1rem 1rem; }
.record-list { padding-left: 1.25rem; }
.question-detail { border-top: 1px solid var(--line); padding-block: .75rem; }
.pre-wrap { white-space: pre-wrap; overflow-wrap: anywhere; }
.site-footer { border-top: 1px solid var(--line); background: #eaf0f7; padding-block: 2rem; }
.admin-menu-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr)); gap: 1rem; margin: 1.5rem 0; }
.admin-menu-card { border: 1px solid var(--line); border-radius: .75rem; padding: 1.25rem; background: #fff; }
.municipality-switch { display: flex; flex-wrap: wrap; gap: .75rem; margin: 1rem 0 1.5rem; }
.municipality-switch a { padding: .45rem .75rem; border: 1px solid var(--line); border-radius: 999px; }
.municipality-switch a[aria-current="page"] { background: #e8f1fb; font-weight: 700; }
.admin-table { min-width: 70rem; }
.admin-table th, .admin-table td { vertical-align: top; }
.information-contribution-text { white-space: pre-wrap; min-width: 18rem; }
.inline-action-form { margin-top: .65rem; }
.button-small { padding: .45rem .7rem; font-size: .9rem; }
.admin-menu-wide { margin-top: 1rem; }
.admin-card-actions { display: flex; flex-wrap: wrap; gap: .65rem; }
.admin-summary-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .75rem; margin: 1.5rem 0; }
.admin-summary-grid > div { display: grid; gap: .25rem; padding: 1rem; border: 1px solid var(--line); background: #fff; }
.admin-summary-grid strong { font-size: 1.7rem; }
.admin-data-table { min-width: 68rem; }
.admin-summary-text { max-width: 42rem; padding: .75rem 0; }
.admin-record-summary { display: grid; grid-template-columns: max-content 1fr; gap: .5rem 1rem; padding: 1rem; border: 1px solid var(--line); background: #fff; }
.admin-record-summary dd { margin: 0; }
.audit-list { display: grid; gap: .5rem; }
.affiliate-admin-form, .affiliate-admin-placement { min-width: 0; }
.affiliate-admin-placement { display: grid; gap: 1rem; margin: 0 0 1.25rem; padding: 1.25rem; border: 1px solid var(--line); border-radius: .6rem; background: #fff; }
.affiliate-admin-placement legend { padding: 0 .4rem; font-size: 1.15rem; font-weight: 800; }
.affiliate-enabled { display: flex; gap: .5rem; align-items: center; font-weight: 700; }
.field-help { margin: -.35rem 0 0; color: var(--muted); font-size: .9rem; }
@media (max-width: 700px) {
  .container { width: min(100% - 1rem, 1120px); }
  main { padding-top: 1rem; }
  h1 { font-size: 2rem; }
  .table-wrap { overflow: visible; border: 0; background: transparent; }
  .member-table { min-width: 0; border: 0; }
  .member-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .member-table, .member-table tbody, .member-table tr, .member-table th, .member-table td { display: block; width: 100%; }
  .member-table tr { margin-bottom: 1rem; border: 1px solid var(--line); background: #fff; }
  .member-table th, .member-table td { border: 0; border-bottom: 1px solid var(--line); padding-left: 8.3rem; position: relative; min-height: 3rem; }
  .member-table th::before, .member-table td::before { content: attr(data-label); position: absolute; left: .7rem; width: 7rem; font-weight: 700; color: var(--muted); }
  .metadata dl { grid-template-columns: 1fr; }
  .form-grid { grid-template-columns: 1fr; }
  .metadata dd { margin-bottom: .5rem; }
  .affiliate-body { align-items: stretch; flex-direction: column; }
  .affiliate-button { text-align: center; }
  .affiliate-admin-placement { padding: .85rem; }
  .admin-table-wrap, .admin-audit-wrap { overflow-x: auto; border: 1px solid var(--line); background: #fff; }
  .admin-data-wrap { overflow-x: auto; border: 1px solid var(--line); background: #fff; }
  .admin-summary-grid { grid-template-columns: 1fr; }
}
