@font-face {
  font-family: Onest;
  src: url("/fonts/onest-latin-variable.woff2") format("woff2");
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
}

:root {
  --ink: #27231f;
  --ink-soft: #605b52;
  --blue: #6b2853;
  --blue-dark: #4f183b;
  --blue-soft: #efe8d8;
  --blue-pale: #f3ecf0;
  --yellow: #e4ad3f;
  --yellow-soft: #f8e9b9;
  --white: #fffdf8;
  --paper: #f3ecde;
  --line: #cfc5b2;
  --line-strong: #aaa08e;
  --muted: #6d675d;
  --success: #4f6b45;
  --danger: #9b3f32;
  --max: 1280px;
  --radius: 12px;
  --shadow: 0 20px 55px rgba(79, 24, 59, .1);
  --ease: cubic-bezier(.2, .75, .2, 1);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  overflow-x: hidden;
  background: var(--white);
  color: var(--ink);
  font-family: Onest, "Helvetica Neue", Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
}
button, input, select { font: inherit; }
button, a, input, select { -webkit-tap-highlight-color: transparent; }
a { color: inherit; }
:focus-visible { outline: 3px solid var(--yellow); outline-offset: 3px; }
[hidden] { display: none !important; }
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
.skip-link {
  position: fixed;
  z-index: 2000;
  top: .75rem;
  left: .75rem;
  padding: .75rem 1rem;
  border-radius: 4px;
  background: var(--ink);
  color: var(--white);
  text-decoration: none;
  transform: translateY(-150%);
}
.skip-link:focus-visible { transform: translateY(0); }

.site-header {
  position: relative;
  z-index: 100;
  width: min(calc(100% - 48px), var(--max));
  min-height: 78px;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 2rem;
  margin: 0 auto;
  background: var(--white);
}
.proc-brand {
  width: fit-content;
  display: inline-flex;
  align-items: center;
  gap: .62rem;
  color: var(--ink);
  font-size: 1.22rem;
  font-weight: 850;
  letter-spacing: -.045em;
  text-decoration: none;
}
.brand-mark {
  width: 31px;
  height: 31px;
  overflow: visible;
  fill: none;
  stroke: var(--blue);
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.brand-mark circle { fill: var(--yellow); stroke: var(--blue); }
.site-nav {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 2rem;
}
.site-nav a {
  position: relative;
  color: var(--ink-soft);
  font-size: .78rem;
  font-weight: 650;
  text-decoration: none;
}
.site-nav a:hover,
.site-nav a.active { color: var(--blue); }
.site-nav a.active::after {
  position: absolute;
  right: 0;
  bottom: -.72rem;
  left: 0;
  height: 2px;
  background: var(--blue);
  content: "";
}
.header-action {
  justify-self: end;
  display: inline-flex;
  align-items: center;
  gap: .55rem;
  padding: .65rem .9rem;
  border: 1px solid var(--line);
  border-radius: 999px;
  color: var(--blue-dark);
  font-size: .67rem;
  font-weight: 750;
  text-decoration: none;
}
.header-action:hover { border-color: var(--blue); background: var(--blue-pale); }
.live-dot {
  width: 7px;
  height: 7px;
  flex: 0 0 auto;
  border-radius: 50%;
  background: var(--success);
  box-shadow: 0 0 0 4px rgba(23, 132, 86, .12);
}
.menu-toggle {
  display: none;
  border: 0;
  background: transparent;
  color: var(--ink);
}
.menu-toggle span {
  width: 20px;
  height: 2px;
  display: block;
  background: currentColor;
}

.search-plaza {
  position: relative;
  overflow: clip;
  isolation: isolate;
  border-top: 1px solid #c5dcf7;
  background: var(--blue-soft);
}
.plaza-artwork {
  position: absolute;
  z-index: 0;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
}
.signal-orbit {
  position: absolute;
  overflow: visible;
}
.signal-orbit path {
  fill: none;
  stroke: var(--blue);
  stroke-width: 3;
  opacity: .17;
}
.signal-orbit circle {
  fill: var(--yellow);
  stroke: var(--blue);
  stroke-width: 3;
}
.signal-orbit-west {
  top: -9.5rem;
  left: -9.5rem;
  width: 34rem;
  transform: rotate(-8deg);
}
.signal-orbit-east {
  top: 4.5rem;
  right: -7rem;
  width: 25rem;
  transform: rotate(172deg);
}
.search-plaza-inner {
  width: min(calc(100% - 48px), 980px);
  margin: 0 auto;
  padding: clamp(3.2rem, 5vw, 4.5rem) 0 .6rem;
  position: relative;
  z-index: 1;
  text-align: center;
}
.hero-copy h1 {
  max-width: 900px;
  margin: 0 auto;
  color: var(--ink);
  font-size: clamp(3.2rem, 6vw, 5.6rem);
  font-weight: 760;
  letter-spacing: -.04em;
  line-height: .98;
  text-wrap: balance;
}
.hero-lede {
  max-width: 690px;
  margin: 1rem auto 0;
  color: #43536a;
  font-size: clamp(.92rem, 1.4vw, 1.08rem);
  line-height: 1.65;
}
.search-form {
  width: min(100%, 850px);
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 0;
  margin: 1.65rem auto 0;
  padding: 5px;
  border: 1px solid #aabfd8;
  border-radius: 10px;
  background: var(--white);
  box-shadow: 0 10px 34px rgba(35, 74, 123, .11);
}
.search-main { min-width: 0; display: block; }
.input-wrap {
  min-height: 60px;
  display: flex;
  align-items: center;
  gap: .85rem;
  padding: 0 1rem;
}
.input-wrap svg,
.search-button svg,
.text-link svg,
.rail-submit svg {
  width: 19px;
  height: 19px;
  flex: 0 0 auto;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.7;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.input-wrap svg { color: #65778e; }
.search-form input {
  width: 100%;
  min-width: 0;
  height: 46px;
  border: 0;
  outline: 0;
  background: transparent;
  color: var(--ink);
  font-size: .9rem;
}
.search-form input::placeholder { color: #5b6a7d; opacity: 1; }
.search-button {
  min-width: 124px;
  min-height: 60px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .75rem;
  padding: .7rem 1.35rem;
  border: 0;
  border-radius: 7px;
  background: var(--blue);
  color: var(--white);
  font-size: .82rem;
  font-weight: 800;
  cursor: pointer;
  transition: background .18s var(--ease), transform .18s var(--ease);
}
.search-button:hover { background: var(--blue-dark); transform: translateY(-1px); }
.data-status {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: .55rem;
  margin: .85rem 0 0;
  color: #445a73;
  font-size: .66rem;
  line-height: 1.45;
}
.data-status strong { color: var(--ink); }
.data-status span:last-child::before {
  margin-right: .55rem;
  color: #8aa0b9;
  content: "·";
}
.coverage-truth {
  max-width: 690px;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  gap: .45rem;
  margin: .55rem auto 0;
  color: #586b82;
  font-size: .65rem;
  line-height: 1.55;
}
.coverage-truth svg {
  width: 16px;
  height: 16px;
  flex: 0 0 auto;
  fill: none;
  stroke: var(--blue);
  stroke-width: 1.6;
  stroke-linecap: round;
}
.coverage-truth a { color: var(--blue-dark); font-weight: 760; }

.instrument-rail {
  position: relative;
  z-index: 3;
  width: min(calc(100% - 48px), 1160px);
  display: grid;
  grid-template-columns: minmax(135px, 1.05fr) repeat(4, minmax(125px, 1fr)) auto minmax(138px, auto);
  align-items: stretch;
  margin: 1.8rem auto -3.25rem;
  border: 1px solid var(--line);
  border-radius: 9px;
  background: var(--white);
  box-shadow: var(--shadow);
  text-align: left;
}
.instrument-rail label,
.rail-query {
  min-width: 0;
  display: grid;
  align-content: center;
  gap: .28rem;
  min-height: 74px;
  padding: .72rem 1rem;
  border-right: 1px solid var(--line);
}
.instrument-rail label > span,
.rail-query > span {
  color: #536174;
  font-size: .55rem;
  font-weight: 800;
  letter-spacing: .07em;
  text-transform: uppercase;
}
.rail-query strong {
  overflow: hidden;
  color: var(--ink);
  font-size: .7rem;
  font-weight: 690;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.instrument-rail select {
  width: 100%;
  min-width: 0;
  padding: 0 1.05rem 0 0;
  border: 0;
  outline: 0;
  background: transparent;
  color: var(--ink);
  font-size: .68rem;
  font-weight: 650;
  cursor: pointer;
}
.rail-clear,
.rail-submit {
  border: 0;
  font-size: .67rem;
  font-weight: 780;
  cursor: pointer;
}
.rail-clear {
  padding: 0 .85rem;
  background: var(--white);
  color: var(--blue);
}
.rail-clear:hover { background: var(--blue-pale); }
.rail-submit {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .3rem;
  margin: 8px;
  padding: 0 .95rem;
  border-radius: 6px;
  background: var(--blue);
  color: var(--white);
}
.rail-submit:hover { background: var(--blue-dark); }
.rail-submit svg { width: 15px; height: 15px; margin-left: .12rem; }
#rail-result-count { font-variant-numeric: tabular-nums; }

.directory-section {
  width: min(calc(100% - 48px), var(--max));
  display: grid;
  grid-template-columns: 240px minmax(0, 1fr);
  gap: clamp(2.5rem, 5vw, 5.5rem);
  margin: 0 auto;
  padding: 5.25rem 0 7rem;
}
.filter-panel {
  position: static;
  align-self: start;
  overflow: visible;
}
.filter-heading {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: .8rem;
  padding-bottom: 1rem;
  border-bottom: 2px solid var(--ink);
}
.filter-heading h2 {
  margin: 0;
  font-size: 1.05rem;
  font-weight: 780;
  letter-spacing: -.02em;
}
.filter-toggle { display: none; }
.filter-heading button {
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--blue);
  font-size: .66rem;
  font-weight: 760;
  cursor: pointer;
}
.filter-panel fieldset {
  display: grid;
  gap: .68rem;
  margin: 0;
  padding: 1.35rem 0;
  border: 0;
  border-bottom: 1px solid var(--line);
}
.filter-panel legend {
  float: left;
  width: 100%;
  margin: 0 0 .78rem;
  color: var(--ink);
  font-size: .68rem;
  font-weight: 800;
}
.filter-panel fieldset label {
  display: flex;
  align-items: center;
  gap: .62rem;
  color: #4e5e72;
  font-size: .72rem;
  line-height: 1.35;
  cursor: pointer;
}
.filter-panel input[type="radio"],
.filter-panel input[type="checkbox"] {
  appearance: none;
  width: 16px;
  height: 16px;
  display: grid;
  flex: 0 0 auto;
  place-content: center;
  margin: 0;
  border: 1px solid #8fa0b2;
  background: var(--white);
}
.filter-panel input[type="radio"] { border-radius: 50%; }
.filter-panel input[type="radio"]::before {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--blue);
  content: "";
  transform: scale(0);
}
.filter-panel input[type="radio"]:checked { border-color: var(--blue); }
.filter-panel input[type="radio"]:checked::before { transform: scale(1); }
.filter-panel input[type="checkbox"] { border-radius: 3px; }
.filter-panel input[type="checkbox"]::before {
  width: 8px;
  height: 4px;
  border-bottom: 2px solid var(--white);
  border-left: 2px solid var(--white);
  content: "";
  transform: rotate(-45deg) scale(0);
}
.filter-panel input[type="checkbox"]:checked { border-color: var(--blue); background: var(--blue); }
.filter-panel input[type="checkbox"]:checked::before { transform: rotate(-45deg) scale(1); }
.source-filter-count {
  margin-left: auto;
  color: #5f6e80;
  font-size: .63rem;
}
.filter-panel select,
.sort-control select {
  border: 1px solid var(--line-strong);
  border-radius: 5px;
  background: var(--white);
  color: var(--ink);
  cursor: pointer;
}
.filter-panel select {
  width: 100%;
  min-width: 0;
  padding: .67rem .58rem;
  font-size: .7rem;
}
.filter-loading { margin: 0; color: var(--muted); font-size: .7rem; }
.filter-note {
  display: flex;
  align-items: flex-start;
  gap: .65rem;
  margin-top: 1.35rem;
  padding: .9rem;
  border: 1px solid #c6d9f1;
  border-top: 3px solid var(--blue);
  background: var(--blue-pale);
}
.filter-note svg {
  width: 17px;
  flex: 0 0 auto;
  fill: none;
  stroke: var(--blue);
  stroke-width: 1.5;
}
.filter-note p { margin: 0; color: #516278; font-size: .65rem; line-height: 1.55; }
.filter-note strong { display: block; color: var(--ink); }
.filter-note a { color: var(--blue-dark); font-weight: 750; }

.results-heading {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 2rem;
  padding-bottom: 1.2rem;
  border-bottom: 2px solid var(--ink);
}
.results-heading h2 {
  margin: 0;
  color: var(--ink);
  font-size: clamp(2rem, 3.3vw, 3.15rem);
  font-weight: 750;
  letter-spacing: -.04em;
  line-height: 1;
}
.results-heading h2 span {
  color: var(--blue);
  font-variant-numeric: tabular-nums;
}
.results-heading p {
  max-width: 620px;
  margin: .7rem 0 0;
  color: var(--muted);
  font-size: .69rem;
  line-height: 1.55;
}
.sort-control {
  display: grid;
  gap: .34rem;
  color: var(--muted);
  font-size: .62rem;
}
.sort-control select {
  min-width: 190px;
  padding: .62rem .7rem;
  font-size: .69rem;
}
.active-filters {
  display: flex;
  flex-wrap: wrap;
  gap: .45rem;
  margin: 1rem 0 -.15rem;
}
.active-filter {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  padding: .38rem .56rem;
  border: 1px solid #b9cbe2;
  border-radius: 999px;
  background: var(--blue-pale);
  color: var(--blue-dark);
  font-size: .64rem;
  font-weight: 700;
}
.active-filter button {
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--blue);
  cursor: pointer;
}
.result-list { display: grid; }
.tender-card {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 190px;
  gap: 2rem;
  padding: 1.65rem .2rem 1.65rem 0;
  border: 0;
  border-bottom: 1px solid var(--line);
  background: var(--white);
  transition: background .16s var(--ease);
}
.tender-card:hover {
  z-index: 1;
  background: var(--blue-pale);
}
.tender-card-main { min-width: 0; }
.tender-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .42rem;
  margin-bottom: .7rem;
  color: #5f6e80;
  font-size: .61rem;
  font-weight: 680;
}
.tender-tag {
  padding: .2rem .38rem;
  border-radius: 3px;
  background: #e8f1ff;
  color: var(--blue-dark);
}
.tender-tag.source { background: #eef1f5; color: #4f5e70; }
.tender-meta > span:not(.tender-tag) + span:not(.tender-tag)::before {
  margin-right: .42rem;
  content: "·";
}
.tender-card h3 {
  max-width: 790px;
  margin: 0;
  color: var(--blue-dark);
  font-size: clamp(1.06rem, 1.65vw, 1.3rem);
  font-weight: 730;
  letter-spacing: -.025em;
  line-height: 1.3;
}
.tender-card h3 a { text-decoration: none; }
.tender-card h3 a:hover { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
.tender-card h3 a::after { position: absolute; inset: 0; content: ""; }
.tender-buyer {
  display: flex;
  align-items: center;
  gap: .42rem;
  margin: .6rem 0 0;
  color: #4b5b70;
  font-size: .72rem;
  font-weight: 690;
}
.buyer-symbol {
  width: 17px;
  height: 17px;
  display: inline-grid;
  flex: 0 0 auto;
  place-items: center;
  color: var(--blue);
}
.buyer-symbol svg {
  width: 14px;
  height: 14px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.7;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.tender-description {
  display: -webkit-box;
  max-width: 760px;
  margin: .82rem 0 0;
  overflow: hidden;
  color: #637287;
  font-size: .7rem;
  line-height: 1.55;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}
.tender-side {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  justify-content: space-between;
  gap: 1rem;
  padding-left: 1.2rem;
  border-left: 1px solid var(--line);
  text-align: right;
}
.tender-deadline,
.tender-value { display: grid; gap: .22rem; }
.tender-deadline span,
.tender-value span {
  color: #59697d;
  font-size: .56rem;
  font-weight: 800;
  letter-spacing: .05em;
  text-transform: uppercase;
}
.tender-deadline strong { color: var(--ink); font-size: .87rem; font-variant-numeric: tabular-nums; }
.tender-deadline small { color: var(--danger); font-size: .64rem; font-weight: 780; }
.tender-card.urgent .tender-deadline {
  margin: -.38rem -.5rem 0 0;
  padding: .38rem .5rem;
  border-radius: 4px;
  background: var(--yellow-soft);
}
.tender-value strong { color: var(--ink); font-size: .72rem; }
.tender-arrow {
  width: 28px;
  height: 28px;
  display: grid;
  place-items: center;
  color: var(--blue);
}
.tender-arrow svg {
  width: 18px;
  height: 18px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.7;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.tender-card-empty {
  grid-template-columns: 1fr;
  padding: 3.5rem 1rem;
  text-align: center;
}
.tender-card-empty h3 { margin: auto; color: var(--ink); }
.tender-card-empty p { color: var(--muted); }
.tender-skeleton {
  grid-template-columns: 1fr;
  gap: .7rem;
  pointer-events: none;
}
.tender-skeleton div {
  height: 13px;
  border-radius: 3px;
  background: linear-gradient(90deg, #e4eaf1, #f7f9fb, #e4eaf1);
  background-size: 220% 100%;
  animation: shimmer 1.25s infinite;
}
.tender-skeleton div:nth-child(1) { width: 30%; }
.tender-skeleton div:nth-child(2) { width: 75%; height: 20px; }
.tender-skeleton div:nth-child(3) { width: 55%; }
@keyframes shimmer { to { background-position: -220% 0; } }
.pagination {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .4rem;
  margin-top: 2rem;
}
.pagination button {
  min-width: 2.25rem;
  height: 2.25rem;
  border: 1px solid var(--line);
  border-radius: 4px;
  background: var(--white);
  color: var(--ink);
  font-size: .68rem;
  cursor: pointer;
}
.pagination button[aria-current="page"] { border-color: var(--blue); background: var(--blue); color: var(--white); }
.pagination button:disabled { opacity: .35; cursor: default; }

.coverage-section {
  position: relative;
  overflow: clip;
  isolation: isolate;
  display: grid;
  grid-template-columns: minmax(300px, .75fr) minmax(0, 1.25fr);
  gap: clamp(3rem, 8vw, 8rem);
  padding: clamp(4.7rem, 8vw, 7.5rem) max(24px, calc((100vw - var(--max)) / 2));
  background: var(--blue-dark);
  color: var(--white);
}
.coverage-signal {
  position: absolute;
  z-index: 0;
  right: -8rem;
  bottom: -13rem;
  width: min(38vw, 34rem);
  pointer-events: none;
  transform: rotate(8deg);
}
.coverage-signal path {
  fill: none;
  stroke: var(--white);
  stroke-width: 3;
  opacity: .13;
}
.coverage-signal circle {
  fill: var(--yellow);
  stroke: var(--white);
  stroke-width: 2;
}
.coverage-intro,
.coverage-list {
  position: relative;
  z-index: 1;
}
.coverage-intro h2 {
  margin: 0;
  font-size: clamp(2.8rem, 5vw, 5rem);
  font-weight: 730;
  letter-spacing: -.04em;
  line-height: .95;
}
.coverage-intro > p {
  max-width: 520px;
  margin: 1.5rem 0 0;
  color: #c4d6ef;
  font-size: .78rem;
  line-height: 1.7;
}
.text-link {
  display: inline-flex;
  align-items: center;
  gap: .55rem;
  margin-top: 1.25rem;
  font-size: .72rem;
  font-weight: 780;
  text-decoration: none;
}
.light-link { color: var(--yellow); }
.coverage-list { border-top: 1px solid rgba(255, 255, 255, .25); }
.coverage-list > p { color: #c4d6ef; font-size: .72rem; }
.coverage-item {
  display: grid;
  grid-template-columns: 48px minmax(0, 1fr) auto;
  align-items: center;
  gap: 1rem;
  padding: 1.2rem 0;
  border-bottom: 1px solid rgba(255, 255, 255, .18);
  text-decoration: none;
}
.coverage-code {
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  border: 1px solid rgba(255, 255, 255, .35);
  border-radius: 4px;
  color: var(--yellow);
  font-size: .63rem;
  font-weight: 850;
}
.coverage-name { display: grid; gap: .2rem; }
.coverage-name strong { font-size: .78rem; }
.coverage-name span { color: #b8cde8; font-size: .63rem; }
.coverage-state {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  color: #c7f4dd;
  font-size: .62rem;
  font-weight: 740;
  white-space: nowrap;
}
.coverage-state::before {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #5ee29f;
  content: "";
}
.coverage-state.planned { color: var(--yellow-soft); }
.coverage-state.planned::before { background: var(--yellow); }

.about-section {
  width: min(calc(100% - 48px), var(--max));
  margin: 0 auto;
  padding: clamp(5rem, 9vw, 8.5rem) 0;
}
.about-section > h2 {
  max-width: 760px;
  margin: 0;
  font-size: clamp(2.7rem, 5vw, 5rem);
  font-weight: 730;
  letter-spacing: -.04em;
  line-height: .98;
  text-wrap: balance;
}
.about-lede {
  max-width: 660px;
  margin: 1.3rem 0 0;
  color: var(--ink-soft);
  font-size: .86rem;
  line-height: 1.7;
}
.about-flow {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  margin-top: 3.5rem;
  border-top: 2px solid var(--ink);
}
.about-flow article {
  min-height: 190px;
  padding: 1.6rem 2rem 0 0;
}
.about-flow article:not(:last-child) { border-right: 1px solid var(--line); }
.about-flow article + article { padding-left: 2rem; }
.about-flow article > span { color: var(--blue); font-size: .63rem; font-weight: 850; }
.about-flow h3 { max-width: 16ch; margin: 2.2rem 0 .65rem; font-size: 1.14rem; line-height: 1.25; }
.about-flow p { max-width: 34ch; margin: 0; color: var(--muted); font-size: .73rem; line-height: 1.62; }

.site-footer {
  min-height: 116px;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 2rem;
  padding: 2rem max(24px, calc((100vw - var(--max)) / 2));
  border-top: 1px solid #163867;
  background: #082f6d;
  color: var(--white);
}
.site-footer .proc-brand { color: var(--white); }
.site-footer .brand-mark { stroke: #bed8ff; }
.site-footer .brand-mark circle { fill: var(--yellow); stroke: #bed8ff; }
.site-footer > p { color: #b8cce7; font-size: .66rem; }
.site-footer nav {
  justify-self: end;
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: .65rem 1.25rem;
}
.site-footer nav a { color: #c7d8ee; font-size: .65rem; text-decoration: none; }
.site-footer nav a:hover { color: var(--yellow); }

/* Detail route */
.detail-shell {
  width: min(calc(100% - 48px), 1180px);
  min-height: 70vh;
  margin: 0 auto;
  padding: 2rem 0 7rem;
}
.breadcrumbs {
  display: flex;
  flex-wrap: wrap;
  gap: .55rem;
  margin: 0 0 2rem;
  color: var(--muted);
  font-size: .66rem;
}
.breadcrumbs a { color: var(--blue); font-weight: 750; text-decoration: none; }
.detail-loading {
  min-height: 45vh;
  display: grid;
  place-items: center;
  align-content: center;
  gap: 1rem;
  color: var(--muted);
  font-size: .76rem;
}
.detail-loading span {
  width: 32px;
  height: 32px;
  border: 2px solid var(--line);
  border-top-color: var(--blue);
  border-radius: 50%;
  animation: spin .8s linear infinite;
}
@keyframes spin { to { transform: rotate(360deg); } }
.detail-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: start;
  gap: 3rem;
  padding: clamp(2rem, 4vw, 3.8rem);
  border-top: 6px solid var(--blue);
  background: var(--blue-soft);
}
.detail-badges {
  display: flex;
  flex-wrap: wrap;
  gap: .45rem;
  margin-bottom: 1.05rem;
}
.status-badge,
.quiet-badge {
  display: inline-flex;
  align-items: center;
  padding: .3rem .52rem;
  border-radius: 3px;
  font-size: .61rem;
  font-weight: 800;
}
.status-badge { gap: .4rem; background: var(--blue); color: var(--white); }
.status-badge::before {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #8af0bb;
  content: "";
}
.status-badge.closed { background: #5f6874; }
.status-badge.closed::before { background: #d5d9de; }
.quiet-badge { border: 1px solid #afc8e8; background: rgba(255, 255, 255, .55); color: var(--blue-dark); }
.detail-hero h1 {
  max-width: 850px;
  margin: 0;
  color: var(--ink);
  font-size: clamp(2.5rem, 5vw, 4.8rem);
  font-weight: 740;
  letter-spacing: -.04em;
  line-height: .98;
  text-wrap: balance;
}
.buyer-link {
  display: inline-flex;
  margin-top: 1.2rem;
  color: var(--blue-dark);
  font-size: .82rem;
  font-weight: 760;
  text-decoration: none;
}
.buyer-link:hover { text-decoration: underline; }
.detail-reference { display: grid; gap: .35rem; min-width: 120px; padding-top: 2rem; text-align: right; }
.detail-reference span { color: #61748c; font-size: .58rem; font-weight: 780; text-transform: uppercase; }
.detail-reference strong { color: var(--blue-dark); font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .69rem; }
.detail-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 290px;
  align-items: start;
  gap: clamp(3rem, 6vw, 6rem);
  padding-top: 2.7rem;
}
.fact-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  border-top: 2px solid var(--ink);
  border-bottom: 1px solid var(--line);
}
.fact-grid article {
  min-width: 0;
  display: grid;
  gap: .3rem;
  padding: 1.1rem 1rem;
  border-right: 1px solid var(--line);
}
.fact-grid article:first-child { padding-left: 0; }
.fact-grid article:last-child { border-right: 0; }
.fact-grid span { color: var(--muted); font-size: .55rem; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.fact-grid strong { overflow-wrap: anywhere; font-size: .79rem; }
.fact-grid small { color: var(--danger); font-size: .6rem; }
.detail-section { padding: 3rem 0; border-bottom: 1px solid var(--line-strong); }
.detail-section h2 {
  margin: 0 0 1.25rem;
  font-size: clamp(1.65rem, 2.8vw, 2.45rem);
  font-weight: 730;
  letter-spacing: -.04em;
}
.detail-description {
  max-width: 740px;
  margin: 0;
  color: #44556a;
  font-size: .9rem;
  line-height: 1.8;
  white-space: pre-line;
}
.split-info { display: grid; grid-template-columns: .65fr 1.35fr; gap: 3rem; }
.definition-list { margin: 0; }
.definition-list > div {
  display: grid;
  grid-template-columns: 155px 1fr;
  gap: 1.2rem;
  padding: .85rem 0;
  border-bottom: 1px solid var(--line);
}
.definition-list > div:last-child { border-bottom: 0; }
.definition-list dt { color: var(--muted); font-size: .66rem; }
.definition-list dd { margin: 0; color: var(--ink); font-size: .72rem; font-weight: 700; }
.section-heading-row { display: flex; align-items: flex-end; justify-content: space-between; gap: 2rem; }
.document-count { margin-bottom: 1.25rem; color: var(--blue); font-size: .65rem; font-weight: 750; }
.document-list { border-top: 2px solid var(--ink); }
.document-item {
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr) auto;
  align-items: center;
  gap: 1rem;
  padding: 1rem 0;
  border-bottom: 1px solid var(--line);
  text-decoration: none;
}
.document-icon {
  width: 35px;
  height: 40px;
  display: grid;
  place-items: end center;
  padding-bottom: .34rem;
  border-radius: 3px;
  background: var(--blue-pale);
  color: var(--blue-dark);
  font-size: .51rem;
  font-weight: 850;
}
.document-name { display: grid; gap: .22rem; }
.document-name strong { font-size: .74rem; }
.document-name small { color: var(--muted); font-size: .59rem; }
.document-open { color: var(--blue); font-size: .65rem; font-weight: 800; }
.document-item:hover .document-name strong { color: var(--blue); text-decoration: underline; }
.documents-note { max-width: 670px; margin: 1rem 0 0; color: var(--muted); font-size: .64rem; line-height: 1.55; }
.contact-details { display: flex; flex-wrap: wrap; gap: 1rem 1.5rem; font-size: .73rem; }
.contact-details a { color: var(--blue); }
.action-card {
  position: sticky;
  top: 1.5rem;
  padding: 1.45rem;
  border-radius: var(--radius);
  background: var(--blue-dark);
  color: var(--white);
}
.action-kicker { margin: 0 0 .45rem; color: #bad2f1; font-size: .58rem; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
.action-deadline { display: block; font-size: 1.45rem; letter-spacing: -.03em; }
.action-countdown { margin: .3rem 0 1.35rem; color: var(--yellow); font-size: .68rem; font-weight: 800; }
.primary-action,
.secondary-action {
  min-height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-top: .55rem;
  padding: 0 .9rem;
  border-radius: 5px;
  font-size: .69rem;
  font-weight: 800;
  text-align: center;
  text-decoration: none;
}
.primary-action { background: var(--yellow); color: #332600; }
.primary-action:hover { background: #ffe696; }
.secondary-action { border: 1px solid rgba(255, 255, 255, .3); color: var(--white); }
.secondary-action:hover { background: rgba(255, 255, 255, .08); }
.copy-action {
  width: 100%;
  padding: .7rem 0;
  border: 0;
  background: transparent;
  color: #c4d6ed;
  font-size: .64rem;
  cursor: pointer;
}
.action-source {
  display: grid;
  gap: .22rem;
  margin-top: .7rem;
  padding-top: 1rem;
  border-top: 1px solid rgba(255, 255, 255, .2);
}
.action-source span { color: #9fbae0; font-size: .54rem; font-weight: 800; text-transform: uppercase; }
.action-source strong { font-size: .68rem; }
.action-source small { color: #aec4e2; font-size: .58rem; }
.detail-error { max-width: 680px; padding: 5rem 0; }
.detail-error h1 { margin: 0; font-size: clamp(2.5rem, 6vw, 5rem); letter-spacing: -.04em; }
.detail-error p:not(.section-label) { color: var(--muted); }
.detail-error .primary-action { width: fit-content; margin-top: 1.4rem; padding: 0 1.2rem; background: var(--blue); color: var(--white); }

/* Information routes */
.info-page { background: linear-gradient(var(--blue-soft) 0 330px, var(--white) 330px); }
.info-shell {
  width: min(calc(100% - 48px), 900px);
  min-height: 65vh;
  margin: 0 auto;
  padding: clamp(4rem, 8vw, 6.5rem) 0 7rem;
}
.info-shell > h1 {
  max-width: 13ch;
  margin: 0 0 clamp(5rem, 10vw, 8rem);
  font-size: clamp(3rem, 6vw, 5.4rem);
  font-weight: 740;
  letter-spacing: -.04em;
  line-height: .98;
  text-wrap: balance;
}
.info-body {
  max-width: 72ch;
  color: #44556a;
  font-size: .88rem;
  line-height: 1.82;
}
.info-body h2 {
  margin: 3rem 0 .8rem;
  color: var(--ink);
  font-size: 1.45rem;
  letter-spacing: -.025em;
}
.info-body a { color: var(--blue); font-weight: 680; }

@media (max-width: 1120px) {
  .instrument-rail { grid-template-columns: minmax(130px, 1.05fr) repeat(4, minmax(104px, 1fr)) auto minmax(125px, auto); }
  .instrument-rail label,
  .rail-query { padding-right: .7rem; padding-left: .7rem; }
  .directory-section { grid-template-columns: 220px minmax(0, 1fr); gap: 3rem; }
  .detail-layout { grid-template-columns: 1fr; }
  .action-card { position: static; max-width: 620px; }
}

@media (max-width: 860px) {
  .site-header {
    width: auto;
    min-height: 68px;
    grid-template-columns: 1fr auto;
    margin: 0;
    padding: 0 18px;
  }
  .site-nav {
    position: absolute;
    top: 68px;
    right: 0;
    left: 0;
    display: none;
    align-items: stretch;
    flex-direction: column;
    gap: 0;
    padding: .7rem 18px 1rem;
    border-top: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
    background: var(--white);
    box-shadow: 0 12px 25px rgba(28, 58, 98, .1);
  }
  .site-header.menu-open .site-nav { display: flex; }
  .site-nav a { padding: .75rem 0; }
  .site-nav a.active::after { display: none; }
  .header-action { display: none; }
  .menu-toggle {
    width: 40px;
    height: 40px;
    display: grid;
    place-content: center;
    gap: 6px;
    padding: 0;
  }
  .search-plaza-inner { width: min(calc(100% - 36px), 980px); padding-top: 4.3rem; }
  .signal-orbit-west { top: -3rem; left: -13.5rem; width: 23rem; }
  .signal-orbit-east { top: 15rem; right: -11.5rem; width: 18rem; }
  .coverage-signal { right: -8rem; bottom: -9rem; width: 24rem; }
  .instrument-rail {
    width: min(calc(100% - 36px), 720px);
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin-top: 2rem;
    margin-bottom: -8rem;
  }
  .rail-query { grid-column: 1 / -1; }
  .instrument-rail label,
  .rail-query { min-height: 60px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
  .instrument-rail label:nth-of-type(even) { border-right: 0; }
  .rail-clear,
  .rail-submit { min-height: 48px; }
  .rail-submit { margin: 6px; }
  .directory-section {
    width: min(calc(100% - 32px), var(--max));
    grid-template-columns: 1fr;
    padding-top: 12rem;
  }
  .filter-panel { position: static; }
  .filter-heading {
    align-items: center;
    padding: .85rem 1rem;
    border: 1px solid var(--line);
    border-radius: 6px;
    background: var(--blue-pale);
  }
  .filter-heading h2 { display: none; }
  .filter-toggle { display: block; color: var(--ink) !important; font-size: .78rem !important; }
  .filter-toggle::after { margin-left: .4rem; color: var(--blue); content: "+"; }
  .filter-panel.open .filter-toggle::after { content: "−"; }
  .filter-panel fieldset,
  .filter-note { display: none; }
  .filter-panel.open fieldset { display: grid; }
  .filter-panel.open .filter-note { display: flex; }
  .coverage-section { grid-template-columns: 1fr; }
  .about-flow { grid-template-columns: 1fr; }
  .about-flow article,
  .about-flow article + article {
    min-height: 0;
    padding: 1.4rem 0 1.6rem;
    border-right: 0;
    border-bottom: 1px solid var(--line);
  }
  .about-flow h3 { margin-top: 1rem; }
  .site-footer { grid-template-columns: 1fr; gap: .65rem; }
  .site-footer nav { justify-self: start; justify-content: flex-start; }
  .detail-shell,
  .info-shell { width: min(calc(100% - 32px), 1180px); }
  .detail-hero { grid-template-columns: 1fr; gap: 1rem; }
  .detail-reference { padding-top: 0; text-align: left; }
  .fact-grid { grid-template-columns: 1fr 1fr; }
  .fact-grid article:nth-child(2) { border-right: 0; }
  .fact-grid article:nth-child(n + 3) { border-top: 1px solid var(--line); }
  .split-info { grid-template-columns: 1fr; }
  .info-page .site-header { grid-template-columns: auto 1fr; }
  .info-page .site-nav {
    position: static;
    display: flex;
    justify-self: end;
    flex-direction: row;
    gap: 1rem;
    padding: 0;
    border: 0;
    box-shadow: none;
  }
  .info-page .site-nav a { padding: 0; }
}

@media (max-width: 600px) {
  .search-plaza-inner { width: min(calc(100% - 28px), 980px); padding-top: 3.4rem; }
  .signal-orbit-west { top: -1rem; left: -9.4rem; width: 21rem; }
  .signal-orbit-east { top: 17rem; right: -6.4rem; width: 16rem; }
  .signal-orbit circle { display: none; }
  .hero-copy h1 { font-size: clamp(2.85rem, 14vw, 4.15rem); }
  .hero-lede { font-size: .84rem; }
  .search-form { grid-template-columns: 1fr; gap: 5px; padding: 5px; }
  .search-button { min-height: 52px; }
  .input-wrap { min-height: 56px; padding: 0 .7rem; }
  .search-form input { font-size: 16px; }
  .data-status { align-items: flex-start; flex-direction: column; text-align: left; }
  .data-status span:last-child::before { display: none; }
  .coverage-truth { text-align: left; }
  .instrument-rail {
    width: min(calc(100% - 28px), 720px);
    grid-template-columns: 1fr;
    margin-bottom: -14.4rem;
  }
  .rail-query { grid-column: auto; }
  .instrument-rail label,
  .rail-query { min-height: 54px; border-right: 0; }
  .rail-clear,
  .rail-submit { min-height: 46px; }
  .directory-section { padding-top: 18.5rem; }
  .results-heading { align-items: flex-start; flex-direction: column; }
  .sort-control,
  .sort-control select { width: 100%; }
  .tender-card { grid-template-columns: 1fr; gap: 1.1rem; padding: 1.45rem 0; }
  .tender-side {
    align-items: flex-start;
    padding: 1rem 0 0;
    border-top: 1px solid var(--line);
    border-left: 0;
    text-align: left;
  }
  .tender-value { display: none; }
  .tender-arrow { position: absolute; right: .4rem; bottom: 1rem; }
  .tender-card.urgent .tender-deadline { margin-left: 0; }
  .coverage-section { padding-right: 16px; padding-left: 16px; }
  .coverage-item { grid-template-columns: 42px minmax(0, 1fr); }
  .coverage-state { grid-column: 2; white-space: normal; }
  .about-section { width: min(calc(100% - 32px), var(--max)); }
  .coverage-intro h2,
  .about-section > h2 { font-size: clamp(2.7rem, 13vw, 4rem); }
  .detail-hero { padding: 1.4rem; }
  .detail-hero h1 { font-size: 2.55rem; }
  .fact-grid { grid-template-columns: 1fr; }
  .fact-grid article,
  .fact-grid article:first-child {
    padding-left: 0;
    border-top: 1px solid var(--line);
    border-right: 0;
  }
  .fact-grid article:first-child { border-top: 0; }
  .definition-list > div { grid-template-columns: 1fr; gap: .35rem; }
  .section-heading-row { align-items: flex-start; flex-direction: column; }
  .info-page { background: linear-gradient(var(--blue-soft) 0 285px, var(--white) 285px); }
  .info-shell > h1 { margin-bottom: 6rem; }
  .info-page .site-header { grid-template-columns: 1fr; padding-top: 13px; padding-bottom: 13px; }
  .info-page .site-nav { justify-self: start; flex-wrap: wrap; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *,
  *::before,
  *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}

/* Abstract Print Index — homepage replacement world */
body { background: var(--white); }

.site-header {
  min-height: 72px;
  border-bottom: 1px solid var(--line);
  background: var(--white);
}
.proc-brand { color: var(--blue-dark); letter-spacing: -.035em; }
.brand-mark { stroke: var(--blue); }
.brand-mark circle { fill: var(--yellow); stroke: var(--blue); }
.site-nav a { color: var(--ink-soft); }
.site-nav a:hover,
.site-nav a.active { color: var(--blue); }
.site-nav a.active::after { background: var(--blue); }
.header-action {
  border-color: var(--line-strong);
  border-radius: 8px;
  color: var(--success);
}
.header-action:hover { border-color: var(--success); background: #eef1e9; }

.search-plaza {
  overflow: visible;
  border-top: 0;
  border-bottom: 1px solid var(--line);
  background: var(--paper);
}
.search-plaza::before {
  position: absolute;
  inset: 0;
  z-index: -1;
  background: rgba(107, 40, 83, .018);
  content: "";
}
.search-plaza-inner {
  width: min(calc(100% - 48px), var(--max));
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(360px, .92fr);
  align-items: center;
  gap: clamp(2rem, 6vw, 6.5rem);
  padding: clamp(3.4rem, 6vw, 6.4rem) 0 clamp(2.8rem, 5vw, 5rem);
  text-align: left;
}
.hero-copy { position: relative; z-index: 2; }
.hero-copy h1 {
  max-width: 760px;
  margin: 0;
  color: var(--blue-dark);
  font-size: clamp(3.4rem, 6.5vw, 5.8rem);
  font-weight: 780;
  letter-spacing: -.04em;
  line-height: .95;
  text-wrap: balance;
}
.hero-lede {
  max-width: 610px;
  margin: 1.3rem 0 0;
  color: #595248;
  font-size: clamp(.95rem, 1.4vw, 1.08rem);
  line-height: 1.65;
}
.search-form {
  width: min(100%, 760px);
  margin: 2rem 0 0;
  border: 1px solid var(--blue-dark);
  border-radius: 12px;
  background: var(--white);
  box-shadow: none;
}
.input-wrap { min-height: 62px; }
.input-wrap svg { color: var(--blue); }
.search-form input { color: var(--ink); font-size: .94rem; }
.search-form input::placeholder { color: #70685c; }
.search-button {
  min-width: 122px;
  min-height: 58px;
  border-radius: 9px;
  background: var(--blue);
  color: var(--white);
}
.search-button:hover { background: var(--blue-dark); }
.data-status,
.coverage-truth { justify-content: flex-start; color: #655e53; }
.data-status { margin-top: 1rem; }
.data-status strong { color: var(--ink); }
.coverage-truth { margin: .55rem 0 0; }
.coverage-truth svg { stroke: var(--blue); }
.coverage-truth a { color: var(--blue-dark); }
.live-dot { background: var(--success); box-shadow: 0 0 0 4px rgba(79, 107, 69, .13); }

.print-art {
  position: relative;
  min-height: 390px;
  overflow: hidden;
  border: 1px solid rgba(79, 24, 59, .24);
  background: #eee4d1;
  isolation: isolate;
}
.print-art::after {
  position: absolute;
  inset: 11px;
  border: 1px solid rgba(39, 35, 31, .12);
  content: "";
}
.print-art svg { width: 100%; height: 100%; display: block; }
.print-contour {
  fill: none;
  stroke: var(--blue);
  stroke-width: 2;
  opacity: .34;
}
.print-shape { mix-blend-mode: multiply; }
.print-shape-a { fill: #839277; opacity: .78; }
.print-shape-b { fill: #a988a4; opacity: .64; }
.print-sun { fill: var(--yellow); opacity: .82; mix-blend-mode: multiply; }
.print-register { fill: none; stroke: var(--ink); stroke-width: 1.2; opacity: .52; }

.filter-studio {
  width: min(calc(100% - 48px), var(--max));
  margin: 0 auto;
  border-top: 1px solid var(--ink);
  background: var(--white);
}
.filter-toggle {
  width: 100%;
  min-height: 70px;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto auto;
  align-items: center;
  gap: .9rem;
  padding: .9rem 1rem;
  border: 0;
  border-bottom: 1px solid var(--line);
  background: transparent;
  color: var(--ink);
  text-align: left;
  cursor: pointer;
}
.filter-studio .filter-toggle::after,
.filter-studio[open] .filter-toggle::after { display: none; content: none; }
.filter-toggle > svg {
  width: 21px;
  height: 21px;
  fill: none;
  stroke: var(--blue);
  stroke-width: 1.7;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.filter-toggle > span:nth-of-type(1) { display: grid; gap: .15rem; }
.filter-toggle strong { font-size: .88rem; letter-spacing: -.01em; }
.filter-toggle small { color: var(--muted); font-size: .67rem; }
#filter-count {
  padding: .35rem .55rem;
  border-radius: 999px;
  background: var(--blue-pale);
  color: var(--blue-dark);
  font-size: .65rem;
  font-weight: 760;
}
.filter-chevron { transition: transform .22s var(--ease); }
.filter-toggle[aria-expanded="true"] .filter-chevron { transform: rotate(180deg); }

.filter-fields {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  border-bottom: 1px solid var(--ink);
}
.filter-group {
  min-width: 0;
  display: grid;
  align-content: start;
  gap: .8rem;
  margin: 0;
  padding: 1.4rem;
  border: 0;
  border-right: 1px solid var(--line);
}
.filter-group legend {
  width: 100%;
  margin-bottom: 1rem;
  color: var(--blue-dark);
  font-size: .72rem;
  font-weight: 800;
}
.filter-group-facets { grid-column: span 5; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.filter-group-dates { grid-column: span 4; grid-template-columns: 1fr; }
.filter-group-value { grid-column: span 3; grid-template-columns: repeat(2, minmax(0, 1fr)); border-right: 0; }
.filter-group > label,
.range-field { min-width: 0; display: grid; gap: .35rem; }
.filter-group > label > span:first-child,
.range-field > span {
  color: #625b51;
  font-size: .61rem;
  font-weight: 760;
}
.filter-group select,
.filter-group input[type="date"],
.filter-group input[type="number"] {
  width: 100%;
  min-width: 0;
  height: 42px;
  border: 1px solid var(--line-strong);
  border-radius: 8px;
  background: var(--white);
  color: var(--ink);
  font-size: .72rem;
}
.filter-group select { padding: 0 .6rem; }
.filter-group input { padding: 0 .65rem; }
.range-field {
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  align-items: end;
}
.range-field > span { grid-column: 1 / -1; }
.range-field label { min-width: 0; }
.range-field i { align-self: center; color: var(--muted); font-style: normal; }
.number-field {
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  border: 1px solid var(--line-strong);
  border-radius: 8px;
  background: var(--white);
}
.number-field input { border: 0 !important; background: transparent !important; }
.number-field small { padding-right: .65rem; color: var(--muted); font-size: .62rem; }
.check-filter {
  grid-column: 1 / -1;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
}
.check-filter input { width: 17px; height: 17px; margin: 0; accent-color: var(--blue); }
.check-filter span { font-size: .68rem !important; font-weight: 600 !important; line-height: 1.4; }
.value-hint { grid-column: 1 / -1; margin: 0; color: var(--muted); font-size: .62rem; line-height: 1.45; }
.value-hint.warning { color: var(--danger); font-weight: 700; }
.filter-actions {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  align-items: center;
  gap: 1rem;
  padding: .8rem 1rem;
  background: #f3eddf;
}
.filter-actions p { margin: 0; color: var(--muted); font-size: .64rem; line-height: 1.45; }
.filter-actions p strong { color: var(--ink); }
.rail-clear,
.rail-submit { min-height: 42px; font-size: .69rem; font-weight: 760; }
.rail-clear {
  padding: 0 .8rem;
  border: 0;
  background: transparent;
  color: var(--blue);
}
.rail-clear:hover { background: var(--blue-pale); }
.rail-submit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .35rem;
  margin: 0;
  padding: 0 1rem;
  border: 0;
  border-radius: 8px;
  background: var(--blue);
  color: var(--white);
}
.rail-submit:hover { background: var(--blue-dark); }

.directory-section {
  width: min(calc(100% - 48px), 1180px);
  display: block;
  margin: 0 auto;
  padding: clamp(3.8rem, 7vw, 6.5rem) 0 clamp(5rem, 8vw, 8rem);
}
.results-heading { border-bottom-color: var(--ink); }
.results-heading h2 { color: var(--ink); }
.results-heading h2 span { color: var(--blue); }
.sort-control select { border-color: var(--line-strong); border-radius: 8px; background: var(--white); }
.active-filter {
  border-color: #cdb8c6;
  background: var(--blue-pale);
  color: var(--blue-dark);
}
.active-filter button { color: var(--blue); }
.tender-card {
  grid-template-columns: minmax(0, 1fr) 205px;
  gap: 2.5rem;
  padding: 1.8rem 1rem 1.8rem 0;
  border-bottom-color: var(--line);
  background: transparent;
}
.tender-card:hover { background: #f6f0f3; }
.tender-card h3 { color: var(--blue-dark); }
.tender-tag { background: #eee4ea; color: var(--blue-dark); }
.tender-tag.source { background: #e9ede5; color: #465a3e; }
.tender-buyer { color: #514c44; }
.buyer-symbol,
.tender-arrow { color: var(--blue); }
.tender-description { color: #696258; }
.tender-side { border-left-color: var(--line); }
.tender-card.urgent .tender-deadline { background: var(--yellow-soft); }
.pagination button { border-color: var(--line); border-radius: 8px; background: var(--white); }
.pagination button[aria-current="page"] { border-color: var(--blue); background: var(--blue); }

.coverage-section {
  background: #465640;
  color: var(--white);
}
.coverage-signal { display: none; }
.coverage-intro > p,
.coverage-list > p { color: #e1e7dc; }
.light-link,
.coverage-code { color: #f3c65f; }
.coverage-name span { color: #d0dacb; }
.coverage-state { color: #e4efd9; }
.coverage-state::before { background: #a8c591; }
.about-section { background: var(--white); }
.about-flow article:not(:last-child) { border-right-color: var(--line); }
.about-flow article > span { color: var(--blue); }
.site-footer {
  border-top-color: #4c203b;
  background: #3f1831;
}
.site-footer .brand-mark { stroke: #e4c7d9; }
.site-footer .brand-mark circle { fill: var(--yellow); stroke: #e4c7d9; }
.site-footer > p,
.site-footer nav a { color: #e3d5de; }
.site-footer nav a:hover { color: #f3c65f; }

@media (max-width: 1040px) {
  .search-plaza-inner { grid-template-columns: minmax(0, 1fr) minmax(300px, .78fr); gap: 2.4rem; }
  .print-art { min-height: 340px; }
  .filter-group-facets { grid-column: span 7; }
  .filter-group-dates { grid-column: span 5; border-right: 0; }
  .filter-group-value { grid-column: 1 / -1; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1px solid var(--line); }
  .check-filter { grid-column: auto; }
  .value-hint { grid-column: auto; align-self: end; }
}

@media (max-width: 860px) {
  .site-header { width: auto; min-height: 68px; }
  .site-nav { background: var(--white); box-shadow: 0 14px 28px rgba(79, 24, 59, .1); }
  .search-plaza-inner {
    width: min(calc(100% - 32px), var(--max));
    grid-template-columns: 1fr;
    gap: 2rem;
    padding: 3.6rem 0 2.6rem;
  }
  .hero-copy h1 { font-size: clamp(3.2rem, 12vw, 5rem); }
  .print-art { min-height: 230px; }
  .filter-studio { width: min(calc(100% - 32px), var(--max)); }
  .filter-toggle { display: grid; }
  .filter-group-facets,
  .filter-group-dates,
  .filter-group-value { grid-column: 1 / -1; border-right: 0; border-top: 1px solid var(--line); }
  .filter-group-facets { border-top: 0; }
  .filter-group-value { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .check-filter,
  .value-hint { grid-column: 1 / -1; }
  .directory-section { width: min(calc(100% - 32px), 1180px); padding-top: 3.8rem; }
}

@media (max-width: 600px) {
  .search-plaza-inner { width: min(calc(100% - 28px), var(--max)); padding-top: 2.8rem; }
  .hero-copy h1 { font-size: clamp(3rem, 15vw, 4.25rem); }
  .hero-lede { font-size: .88rem; }
  .search-form { grid-template-columns: 1fr; gap: 5px; }
  .search-button { min-height: 52px; }
  .data-status { align-items: flex-start; flex-direction: column; }
  .data-status span:last-child::before { display: none; }
  .print-art { height: 148px; min-height: 148px; }
  .filter-studio { width: min(calc(100% - 28px), var(--max)); }
  .filter-toggle { grid-template-columns: auto minmax(0, 1fr) auto; gap: .65rem; }
  #filter-count { display: none; }
  .filter-group { padding: 1.2rem .85rem; }
  .filter-group-facets,
  .filter-group-value { grid-template-columns: 1fr; }
  .filter-group-value .check-filter,
  .filter-group-value .value-hint { grid-column: auto; }
  .filter-actions { grid-template-columns: 1fr; align-items: stretch; padding: 1rem .85rem; }
  .rail-clear,
  .rail-submit { width: 100%; }
  .directory-section { padding-top: 3.2rem; }
  .results-heading { align-items: flex-start; flex-direction: column; }
  .sort-control,
  .sort-control select { width: 100%; }
  .tender-card { grid-template-columns: 1fr; gap: 1.1rem; padding: 1.5rem 0; }
}

/* Shared detail and trust surfaces */
.detail-hero {
  border-top: 1px solid var(--blue);
  background: var(--paper);
}
.quiet-badge { border-color: #cdb8c6; background: rgba(255, 253, 248, .66); }
.detail-reference span,
.detail-description,
.info-body { color: #5d574e; }
.action-card { background: var(--blue-dark); }
.action-kicker,
.copy-action { color: #ead6e3; }
.action-source span,
.action-source small { color: #d9bfd0; }
.primary-action:hover { background: #efc866; }
.info-page { background: var(--white); }
.info-shell > h1 {
  color: var(--blue-dark);
  padding-bottom: 1.2rem;
  border-bottom: 1px solid var(--line);
}

@media (max-width: 600px) {
  .info-page { background: var(--white); }
}

/* Source atlas — provenance as the homepage's editorial device */
@media (min-width: 861px) {
  .search-plaza-inner {
    grid-template-columns: minmax(0, .92fr) minmax(500px, 1.08fr);
    gap: clamp(3rem, 6vw, 7rem);
    padding-top: clamp(3.6rem, 5vw, 4.6rem);
    padding-bottom: clamp(3.6rem, 5vw, 4.6rem);
  }
  .hero-copy h1 { font-size: clamp(4rem, 6.5vw, 5.8rem); }
}

.source-atlas {
  min-height: 440px;
  background: #e9ddc6;
}
.source-atlas > svg {
  position: absolute;
  inset: 0;
  z-index: 0;
}
.source-atlas-panel {
  position: absolute;
  z-index: 2;
  right: 1.5rem;
  bottom: 1.5rem;
  left: 1.5rem;
  padding: clamp(1.25rem, 2vw, 1.8rem);
  border: 1px solid var(--ink);
  background: rgba(255, 253, 248, .94);
}
.source-atlas-panel h2 {
  max-width: 430px;
  margin: 0;
  color: var(--blue-dark);
  font-size: clamp(1.9rem, 2.7vw, 2.85rem);
  font-weight: 770;
  letter-spacing: -.04em;
  line-height: .96;
}
.source-route {
  display: grid;
  grid-template-columns: minmax(0, .88fr) 46px minmax(0, 1.2fr);
  align-items: center;
  gap: .75rem;
  margin-top: 1.25rem;
  padding: 1rem 0;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
.source-route > svg,
.provenance-guide svg,
.tender-provenance > svg {
  fill: none;
  stroke: var(--blue);
  stroke-width: 1.5;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.source-route-node { min-width: 0; display: grid; gap: .18rem; }
.source-route-node small {
  color: var(--muted);
  font-size: .58rem;
  font-weight: 650;
  line-height: 1.35;
}
.source-route-node strong {
  overflow: hidden;
  color: var(--ink);
  font-size: .9rem;
  font-weight: 800;
  line-height: 1.25;
  text-overflow: ellipsis;
}
.source-route-node.destination strong { color: var(--blue); }
.source-atlas-panel > p {
  max-width: 58ch;
  margin: .85rem 0 0;
  color: #5c554b;
  font-size: .68rem;
  line-height: 1.55;
}
.source-destination-list {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1px;
  margin-top: .9rem;
  background: var(--line);
  border: 1px solid var(--line);
}
.source-destination-list > span {
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: .45rem;
  padding: .5rem .58rem;
  background: var(--white);
}
.source-destination-list strong {
  overflow: hidden;
  color: var(--ink-soft);
  font-size: .56rem;
  font-weight: 700;
  line-height: 1.25;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.source-destination-list small {
  color: var(--blue);
  font-size: .56rem;
  font-variant-numeric: tabular-nums;
}
.coverage-truth strong { color: var(--ink); }

.directory-section {
  width: min(calc(100% - 48px), var(--max));
  padding-top: clamp(4rem, 6vw, 5.5rem);
}
.results-heading { align-items: flex-end; gap: 3rem; }
.results-heading > div { max-width: 780px; }
.results-heading h2 { font-size: clamp(2.5rem, 4.5vw, 4.5rem); letter-spacing: -.04em; }
.provenance-guide {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .65rem;
  margin: .9rem 0 0 !important;
  color: var(--ink-soft) !important;
  font-size: .67rem !important;
}
.provenance-guide svg { width: 38px; height: 16px; }
.provenance-guide strong { color: var(--blue-dark); }

.tender-card {
  grid-template-columns: minmax(0, 1fr) 220px;
  padding: 2.15rem 1.25rem 2.15rem 0;
}
.tender-card h3 { font-size: clamp(1.18rem, 1.7vw, 1.5rem); }
.tender-provenance {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .55rem;
  margin: .78rem 0 .6rem;
  color: var(--muted);
  font-size: .63rem;
  line-height: 1.35;
}
.tender-provenance > svg { width: 25px; height: 14px; }
.tender-provenance strong { color: var(--ink); font-weight: 780; }
.tender-provenance.external span:last-child strong { color: var(--blue); }

@media (max-width: 1040px) and (min-width: 861px) {
  .search-plaza-inner { grid-template-columns: minmax(0, .82fr) minmax(430px, 1.18fr); gap: 2.5rem; }
  .source-atlas { min-height: 430px; }
  .source-atlas-panel { right: 1rem; bottom: 1rem; left: 1rem; }
  .source-destination-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 860px) {
  .source-atlas { min-height: 430px; }
  .source-atlas-panel { right: 1.25rem; bottom: 1.25rem; left: 1.25rem; }
  .directory-section { width: min(calc(100% - 32px), var(--max)); }
}

@media (max-width: 600px) {
  .source-atlas { height: auto; min-height: 355px; }
  .source-atlas-panel { right: .75rem; bottom: .75rem; left: .75rem; padding: 1rem; }
  .source-atlas-panel h2 { font-size: 1.65rem; }
  .source-route { grid-template-columns: minmax(0, .82fr) 32px minmax(0, 1.18fr); gap: .45rem; margin-top: .85rem; padding: .75rem 0; }
  .source-route-node small { font-size: .52rem; }
  .source-route-node strong { font-size: .72rem; }
  .source-atlas-panel > p { margin-top: .65rem; font-size: .61rem; }
  .source-destination-list { display: none; }
  .directory-section { width: min(calc(100% - 28px), var(--max)); padding-top: 4rem; }
  .results-heading h2 { font-size: clamp(2.4rem, 12vw, 3.5rem); }
  .provenance-guide { align-items: flex-start; display: grid; grid-template-columns: auto 28px minmax(0, 1fr); }
  .provenance-guide svg { width: 28px; }
  .tender-provenance { display: grid; grid-template-columns: auto 25px minmax(0, 1fr); align-items: start; }
  .tender-card { grid-template-columns: 1fr; padding: 1.7rem 0; }
}

.search-help {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 2rem;
  margin-top: 2.6rem;
  padding: 1.65rem 0;
  border-top: 1px solid var(--ink);
  border-bottom: 1px solid var(--line);
}
.search-help-copy { max-width: 660px; }
.search-help h3 { margin: 0; color: var(--ink); font-size: clamp(1.06rem, 1.65vw, 1.3rem); letter-spacing: -.025em; }
.search-help p { margin: .55rem 0 0; color: var(--ink-soft); font-size: .9rem; line-height: 1.8; }
.search-help-action { min-height: 46px; display: inline-flex; align-items: center; justify-content: center; gap: .55rem; padding: 0 1rem; border-radius: 9px; background: var(--blue); color: var(--white); font-size: .7rem; font-weight: 760; text-decoration: none; }
.search-help-action:hover { background: var(--blue-dark); }
.search-help-action svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
@media (max-width: 700px) {
  .search-help { grid-template-columns: 1fr; gap: 1.1rem; }
  .search-help-action { width: 100%; }
}
