/* 통합 검색 페이지 */
.search-controls {
  display: flex; flex-direction: column; gap: 10px;
  padding: 16px 0 12px;
}
#q {
  width: 100%; padding: 12px 14px; font-size: 16px;
  border: 1.5px solid var(--rule-strong); border-radius: 3px;
  background: var(--bg); color: var(--ink);
  font-family: inherit;
}
#q:focus { outline: none; border-color: var(--ink); }
.search-filters { display: flex; gap: 6px; flex-wrap: wrap; }
.search-filters .seg-btn {
  padding: 5px 10px; font-size: 12px; font-weight: 700;
  border: 1px solid var(--rule-strong); background: var(--bg); color: var(--ink);
  border-radius: 3px; cursor: pointer;
}
.search-filters .seg-btn.is-active { background: var(--ink); color: var(--bg); border-color: var(--ink); }

.search-meta {
  font-size: 12px; color: var(--ink-soft);
  padding: 6px 0 10px; border-bottom: 1px solid var(--rule);
}
.search-list { list-style: none; padding: 0; margin: 0; }
.s-item { border-bottom: 1px solid var(--rule); }
.s-link {
  display: grid;
  grid-template-columns: minmax(90px, 1.2fr) auto 1fr auto;
  gap: 12px; align-items: center;
  padding: 10px 6px;
  text-decoration: none; color: inherit;
}
.s-link:hover { background: var(--bg2); }
.s-name { font-size: 15px; font-weight: 700; color: var(--ink); }
.s-party {
  font-size: 12px; font-weight: 700; padding: 2px 7px;
  border: 1px solid; border-radius: 2px; white-space: nowrap;
}
.s-meta { font-size: 12px; color: var(--ink-soft); }
.s-pct { font-size: 13px; font-weight: 700; color: var(--ink); font-variant-numeric: tabular-nums; text-align: right; }

@media (max-width: 600px) {
  .s-link {
    grid-template-columns: 1fr auto;
    grid-template-rows: auto auto auto;
    column-gap: 8px; row-gap: 2px;
  }
  .s-name { grid-column: 1; grid-row: 1; }
  .s-pct  { grid-column: 2; grid-row: 1; text-align: right; }
  .s-party{ grid-column: 1 / -1; grid-row: 2; justify-self: start; }
  .s-meta { grid-column: 1 / -1; grid-row: 3; }
}

/* 인물 그룹 카드 — 항상 펴진 상태. 카드 헤더 자체가 인물 페이지 링크. */
.s-group .s-group-hdr {
  display: grid;
  grid-template-columns: minmax(90px, 1.5fr) auto 1fr auto auto;
  gap: 12px; align-items: center;
  padding: 10px 6px;
  text-decoration: none; color: inherit;
}
.s-group .s-group-hdr:hover { background: var(--bg2); }
.s-group-count {
  font-size: 12px; font-weight: 700; color: var(--ink-soft);
  background: var(--bg2); padding: 2px 8px; border-radius: 2px;
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}
.s-group-parties { display: flex; gap: 4px; flex-wrap: wrap; }
.s-group-arrow {
  font-size: 12px; font-weight: 600; color: var(--accent, #c8553d);
  padding: 3px 8px;
  border: 1px solid var(--accent, #c8553d); border-radius: 2px;
}

.s-sub-list { background: var(--bg2); padding: 4px 0; }
.s-sub {
  display: grid;
  grid-template-columns: 56px minmax(90px,1fr) auto minmax(90px,1.3fr) 52px 38px;
  gap: 10px; align-items: center;
  padding: 5px 14px 5px 24px;
  font-size: 12px;
  text-decoration: none; color: inherit;
  border-bottom: 1px solid var(--rule);
}
.s-sub:last-child { border-bottom: none; }
.s-sub:hover { background: var(--bg3, var(--bg2)); }
.s-sub-lost { opacity: 0.6; }                 /* 낙선 행 흐리게 */
.s-sub-yr { color: var(--ink-soft); font-variant-numeric: tabular-nums; }
.s-sub-rd { font-weight: 600; }
.s-sub-place { color: var(--ink-soft); }
.s-sub-pct { font-weight: 700; font-variant-numeric: tabular-nums; text-align: right; color: var(--ink); }
.s-sub-tag { font-size: 10px; font-weight: 700; text-align: center; }
.s-sub-tag.s-won { color: var(--accent, #2563eb); }
.s-sub-tag.s-lost { color: var(--ink-soft); }

@media (max-width: 600px) {
  .s-group .s-group-hdr {
    grid-template-columns: 1fr auto;
    grid-template-rows: auto auto auto;
    gap: 4px 8px;
  }
  .s-name { grid-column: 1; grid-row: 1; }
  .s-group-count { grid-column: 2; grid-row: 1; }
  .s-group-parties { grid-column: 1 / -1; grid-row: 2; }
  .s-group-hdr .s-meta { grid-column: 1 / -1; grid-row: 3; font-size: 11px; }
  .s-group-arrow { display: none; }
  .s-sub { grid-template-columns: 50px 1fr 44px 34px; row-gap: 2px; }
  .s-sub-place { grid-column: 1/-1; font-size: 11px; }
  .s-sub .pp-party, .s-sub .s-party { display: none; }
}

/* 단발 결과 — archive 직행 + 인물 페이지 보조 링크 */
.s-single { display: grid; grid-template-columns: 1fr auto; align-items: center; }
.s-single .s-link { padding-right: 0; }
.s-aside-link {
  font-size: 11px; font-weight: 600; color: var(--ink-soft);
  text-decoration: none; padding: 4px 9px;
  border: 1px solid var(--rule-strong); border-radius: 2px;
  margin: 0 6px; white-space: nowrap;
}
.s-aside-link:hover { color: var(--ink); border-color: var(--ink); }
@media (max-width: 600px) {
  .s-single { grid-template-columns: 1fr auto; }
}

/* 정당 매칭 카드 — 정당명 검색 시 결과 최상단 (build_party_pages /party/{name}/). */
.s-party-card { margin-bottom: 0.5rem; }
.s-party-card .s-link {
  display: flex; align-items: center; gap: 0.6rem; position: relative;
  padding: 0.7rem 0.9rem 0.7rem 1.1rem;
  border: 1.5px solid var(--rule-strong); border-radius: 10px;
  background: color-mix(in srgb, var(--accent) 5%, transparent);
}
.s-party-card .s-link:hover { background: color-mix(in srgb, var(--accent) 11%, transparent); }
.s-party-card .s-pty-bar {
  position: absolute; left: 0; top: 0.5rem; bottom: 0.5rem; width: 5px; border-radius: 3px;
}
.s-party-card .s-name { font-weight: 800; font-size: 1.05rem; }
.s-pty-abbr {
  color: #fff; font-size: 0.75rem; font-weight: 700;
  padding: 0.08rem 0.45rem; border-radius: 999px;
}
.s-pty-life { font-size: 0.82rem; color: var(--ink-soft); font-variant-numeric: tabular-nums; }
.s-party-card .s-meta { color: var(--ink-mute); font-size: 0.85rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.s-party-card .s-group-arrow { margin-left: auto; font-size: 0.8rem; color: var(--accent); font-weight: 700; white-space: nowrap; }
