/* T14 Search — templates/search.html and blocks/search-*.
 *
 * Declarations are the artboard's inline styles ("Template 14 - Search",
 * export 2026-09-28), token for token; nothing here names a colour. Enqueued by
 * inc/assets.php on every page because the file exists; every selector is under
 * .wi-search, so it touches nothing else.
 *
 * Party is a 1px mark and a letter, never a surface: the badge takes its line and
 * text tokens from [data-party] in components.css (.wi-badge).
 */

.wi-search { padding-bottom: var(--s9); }

/* breadcrumb */
.wi-search__crumbs { padding: var(--s4) 0 0; }
.wi-search__crumbs ol { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: var(--s2); font: var(--fs-xs)/1.6 var(--mono); color: var(--ink-3); }

/* heading and form */
.wi-search__head { padding-top: var(--s5); }
.wi-search__h1 { font: 600 clamp(26px, 4.6vw, var(--fs-2xl))/1.14 var(--serif); letter-spacing: -.015em; margin: 0; }
.wi-search__form { margin-top: var(--s4); border: 1px solid var(--rule-2); background: var(--surface); padding: clamp(16px, 3vw, var(--s5)); }
.wi-search__label { display: block; font: 650 var(--fs-md)/1.4 var(--sans); }
.wi-search__help { font-size: var(--fs-sm); color: var(--ink-2); margin: var(--s2) 0 0; max-width: 56ch; }
.wi-search__field { display: flex; flex-wrap: wrap; gap: var(--s2); margin-top: var(--s4); }
.wi-search__input {
  flex: 1 1 20rem;
  min-width: 0;
  max-width: 40rem;
  min-height: 52px;
  font: var(--fs-md)/1.3 var(--sans);
  color: var(--ink);
  background: var(--bg);
  border: 1px solid var(--rule-2);
  border-radius: var(--radius);
  padding: 14px 16px;
}
.wi-search__submit {
  min-height: 52px;
  font: 650 var(--fs-base)/1 var(--sans);
  padding: 0 var(--s5);
  border: 1px solid var(--ink);
  background: var(--ink);
  color: var(--bg);
  border-radius: var(--radius);
  cursor: pointer;
}
.wi-search__line { font: var(--fs-xs)/1.6 var(--mono); color: var(--ink-3); margin: var(--s4) 0 0; border-top: 1px solid var(--rule); padding-top: var(--s3); }

/* results */
.wi-search__results { padding-top: var(--s5); }
.wi-search__results p { margin: 0; }
.wi-search__quiet { color: var(--ink-2); }

.wi-search__exact { border: 2px solid var(--ink); background: var(--surface); padding: var(--s4) var(--s5); display: grid; gap: var(--s2); }
.wi-search__exact-label { font: 650 var(--fs-xs)/1 var(--mono); letter-spacing: .06em; text-transform: uppercase; color: var(--ink-3); }
.wi-search__exact-title { font: 600 var(--fs-lg)/1.3 var(--serif); }
.wi-search__exact-sub { font: var(--fs-xs)/1.6 var(--mono); color: var(--ink-3); }
.wi-search__exact-note { font-size: var(--fs-sm); color: var(--ink-2); }
/* A reused bill number: every bill that carried it, newest first. */
.wi-search__exact-list { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--s3); }
.wi-search__exact-list li { display: grid; gap: var(--s1); }

.wi-search__address { border-left: var(--accent-w) solid var(--accent); background: var(--accent-soft); padding: var(--s4) var(--s5); max-width: var(--measure); font-size: var(--fs-sm); }

.wi-search__facets { display: flex; flex-wrap: wrap; gap: var(--s2); margin-top: var(--s5); }
.wi-search__facet {
  display: inline-flex;
  align-items: center;
  font: var(--fs-sm)/1 var(--sans);
  min-height: 44px;
  padding: 12px 14px;
  border: 1px solid var(--rule-2);
  background: var(--bg);
  color: var(--ink-2);
  border-radius: var(--radius);
  text-decoration: none;
}
.wi-search__facet:hover { color: var(--ink); border-color: var(--ink-3); }
/* The artboard's pressed state, keyed on the link that is the current filter. */
.wi-search__facet[aria-current="true"] { background: var(--ink); color: var(--bg); border-color: var(--ink); }

.wi-search__group { margin-top: var(--s6); }
.wi-search__group-head { display: flex; flex-wrap: wrap; gap: var(--s3); align-items: baseline; justify-content: space-between; border-bottom: 2px solid var(--ink); padding-bottom: var(--s2); }
.wi-search__group-head h2 { font: 600 var(--fs-lg)/1.2 var(--serif); margin: 0; }
.wi-search__count { font: var(--fs-xs)/1 var(--mono); color: var(--ink-3); }
.wi-search__list { list-style: none; margin: 0; padding: 0; }
.wi-search__list li { border-bottom: 1px solid var(--rule); padding: var(--s4) 0; display: grid; gap: var(--s1); }
.wi-search__row-head { display: flex; flex-wrap: wrap; gap: var(--s2); align-items: center; }
.wi-search__title { font: 650 var(--fs-md)/1.3 var(--sans); }
.wi-search__party { align-self: center; }
.wi-search__sub { font-size: var(--fs-sm); color: var(--ink-2); }
.wi-search__why { font: var(--fs-xs)/1.6 var(--mono); color: var(--ink-3); }
/* An ISO date never breaks at its hyphens. */
.wi-search__nowrap { white-space: nowrap; }
.wi-search__more { margin-top: var(--s3) !important; font-size: var(--fs-sm); }

.wi-search__shared,
.wi-search__empty { margin-top: var(--s5); border: 1px dashed var(--rule-2); background: var(--flag-soft); max-width: var(--measure); font-size: var(--fs-sm); }
.wi-search__shared { padding: var(--s4) var(--s5); }
.wi-search__empty { padding: var(--s5); display: grid; gap: var(--s3); }
.wi-search__empty-head { font: 650 var(--fs-md)/1.4 var(--sans); }
.wi-search__browse { list-style: none; margin: var(--s1) 0 0; padding: 0; display: grid; gap: var(--s2); }

/* why this order */
.wi-search .wi-section { padding-top: var(--s8); }
.wi-search .wi-section > h2 { margin-top: 0; }
.wi-search__rules { list-style: none; margin: var(--s4) 0 0; padding: 0; display: grid; gap: var(--s3); max-width: var(--measure); }
.wi-search__rules li { display: grid; grid-template-columns: auto 1fr; gap: var(--s3); font-size: var(--fs-sm); }
.wi-search__rule-n { font: var(--fs-xs)/1.7 var(--mono); color: var(--ink-3); }
.wi-search__rule-head { font-weight: 650; }
.wi-search__index { margin-top: var(--s7); }
