/* v4 Wahlkreis-Liste: <details> mit sortierbarer Tabelle + Suche */

.v4-wkl{
  margin:1rem 0;
  border:1px solid var(--gray-200);
  background:var(--white);
}
.v4-wkl-summary{
  list-style:none;
  cursor:pointer;
  padding:.8rem 1rem;
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:1rem;
  flex-wrap:wrap;
  font-family:var(--font-d);
  transition:background var(--tr-fast);
}
.v4-wkl-summary::-webkit-details-marker{display:none}
.v4-wkl-summary::before{
  content:"▸";
  margin-right:.4rem;
  color:var(--gray-500);
  transition:transform var(--tr-fast);
  display:inline-block;
}
.v4-wkl[open] .v4-wkl-summary::before{transform:rotate(90deg)}
.v4-wkl-summary:hover{background:var(--gray-50)}
.v4-wkl-summary-text{
  font-size:var(--fs-sm);
  font-weight:700;
  color:var(--black);
  letter-spacing:-.005em;
}
.v4-wkl-summary-meta{
  font-size:var(--fs-xxs);
  text-transform:uppercase;
  letter-spacing:.1em;
  color:var(--gray-500);
  font-weight:600;
}

.v4-wkl-body{
  padding:.75rem 1rem 1rem;
  border-top:1px solid var(--gray-200);
}

.v4-wkl-controls{
  display:flex;
  gap:1rem;
  align-items:baseline;
  flex-wrap:wrap;
  margin-bottom:.8rem;
}
.v4-wkl-search-wrap{
  display:flex;
  flex-direction:column;
  gap:.25rem;
  flex:1;
  max-width:360px;
}
.v4-wkl-search-label{
  font-family:var(--font-d);
  font-size:var(--fs-xxs);
  text-transform:uppercase;
  letter-spacing:.1em;
  color:var(--gray-600);
  font-weight:600;
}
.v4-wkl-search{
  font-family:var(--font-s);
  font-size:var(--fs-sm);
  padding:.5rem .7rem;
  border:1px solid var(--gray-300);
  background:var(--white);
  color:var(--black);
  width:100%;
}
.v4-wkl-search:focus{outline:none;border-color:var(--black);box-shadow:0 0 0 2px rgba(0,0,0,.08)}
.v4-wkl-type{
  font-family:var(--font-d);
  font-size:var(--fs-xxs);
  text-transform:uppercase;
  letter-spacing:.1em;
  color:var(--gray-500);
  font-weight:600;
}

.v4-wkl-table-wrap{
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
  max-height:520px;
  overflow-y:auto;
  border:1px solid var(--gray-100);
}
.v4-wkl-table{
  width:100%;
  border-collapse:collapse;
  font-family:var(--font-d);
  font-size:var(--fs-sm);
  font-variant-numeric:tabular-nums;
}
.v4-wkl-table thead th{
  position:sticky;
  top:0;
  background:var(--gray-50);
  text-align:left;
  font-size:var(--fs-xxs);
  text-transform:uppercase;
  letter-spacing:.08em;
  font-weight:700;
  color:var(--gray-700);
  padding:.5rem .6rem;
  border-bottom:1px solid var(--gray-300);
  white-space:nowrap;
  z-index:1;
}
.v4-wkl-th-sortable{cursor:pointer;user-select:none}
.v4-wkl-th-sortable:hover{color:var(--black)}
.v4-wkl-th-sortable::after{
  content:"";
  display:inline-block;
  width:0; height:0;
  margin-left:.3rem;
  border:3px solid transparent;
  vertical-align:middle;
  opacity:.3;
}
.v4-wkl-th-sortable.is-sort-asc::after{
  border-bottom-color:currentColor;
  border-top:none;
  opacity:1;
}
.v4-wkl-th-sortable.is-sort-desc::after{
  border-top-color:currentColor;
  border-bottom:none;
  opacity:1;
}

.v4-wkl-table tbody td{
  padding:.45rem .6rem;
  border-bottom:1px solid var(--gray-100);
}
.v4-wkl-table tbody tr:hover{background:var(--gray-50)}
.v4-wkl-table tbody tr:last-child td{border-bottom:0}

.v4-wkl-nr{
  font-weight:700;
  white-space:nowrap;
  width:4rem;
}
.v4-wkl-nr a{color:var(--gray-700);text-decoration:none}
.v4-wkl-nr a:hover{color:var(--black);text-decoration:underline}
.v4-wkl-name{min-width:200px}
.v4-wkl-name a{color:var(--black);text-decoration:none;font-weight:500}
.v4-wkl-name a:hover{text-decoration:underline;text-decoration-color:var(--gray-400);text-underline-offset:2px}
.v4-wkl-state{
  font-size:var(--fs-xxs);
  text-transform:uppercase;
  letter-spacing:.08em;
  color:var(--gray-600);
  width:3rem;
}
.v4-wkl-winner{
  font-weight:600;
  white-space:nowrap;
}
/* S-4.3 (Sprint 4 Tail, 2026-05-19): Prognose-Spalte analog zu winner */
.v4-wkl-proj{
  font-weight:600;
  white-space:nowrap;
  color:var(--gray-800);
}
.v4-wkl-flip-mark{
  display:inline-block;
  margin-left:.35rem;
  color:#c02632;
  font-weight:700;
  font-size:.85em;
  cursor:help;
}
.v4-wkl-party-dot{
  display:inline-block;
  width:9px;height:9px;
  border-radius:50%;
  background:var(--party,#737373);
  margin-right:.4rem;
  vertical-align:middle;
  transform:translateY(-1px);
}
.v4-wkl-margin{
  text-align:right;
  color:var(--gray-700);
  white-space:nowrap;
  width:5rem;
}

@media (max-width:640px){
  .v4-wkl-table thead th,
  .v4-wkl-table tbody td{
    padding:.4rem .45rem;
    font-size:var(--fs-xxs);
  }
  .v4-wkl-state{display:none}
  .v4-wkl-table thead th:nth-child(3){display:none}
}
