/* LSJA Candidates page — brand type and palette, scoped to this page. */

.cand-doc{
  --cand-piping:#C4161C;
  --cand-magenta:#AC3F86;
  --cand-display:"LSJA Display","Board Display","Arial Narrow",Impact,sans-serif;
  --cand-text:"LSJA Text","Board Body","Segoe UI",system-ui,Helvetica,Arial,sans-serif;
  font-family:var(--cand-text);
}

.cand-doc .hero h1,
.cand-doc .sec-head h2,
.cand-doc .cand-metric-value,
.cand-doc .cand-table th,
.cand-doc .cand-table .name,
.cand-doc .cand-filters button,
.cand-doc .cand-count,
.cand-doc .cand-pipe h3{
  font-family:var(--cand-display);
}

.cand-doc .kicker{color:var(--cand-piping);}
.cand-doc .sec-head .num{color:var(--cand-piping);}

.cand-metrics{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:12px;
  margin:0 0 22px;
}
.cand-metric{
  background:var(--card);
  border:1px solid rgba(255,255,255,.08);
  border-radius:var(--radius);
  padding:16px 18px 14px;
}
.cand-metric-value{
  font-weight:800;
  font-size:clamp(32px,4vw,48px);
  letter-spacing:.02em;
  line-height:.9;
  margin:0 0 6px;
}
.cand-metric-label{
  font-family:var(--cand-display);
  font-weight:600;
  letter-spacing:.1em;
  text-transform:uppercase;
  font-size:12px;
  color:var(--muted);
  margin:0 0 4px;
}
.cand-metric-detail{margin:0;color:var(--dim);font-size:13px;line-height:1.4;}

.cand-note{
  background:var(--card);
  border:1px solid rgba(255,255,255,.08);
  border-radius:var(--radius);
  padding:18px 20px 16px;
  margin:0 0 16px;
}
.cand-note.privacy{
  border-color:rgba(196,22,28,.45);
}
.cand-note h3{
  font-family:var(--cand-display);
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
  font-size:14px;
  color:var(--cand-magenta);
  margin:0 0 8px;
}
.cand-note p{color:var(--muted);font-size:15px;line-height:1.55;margin:0 0 10px;}
.cand-note p:last-child{margin-bottom:0;}
.cand-note strong{color:var(--cream);font-weight:500;}

.cand-toolbar{
  display:flex;
  flex-wrap:wrap;
  gap:12px 16px;
  align-items:center;
  margin:0 0 12px;
}
.cand-filters{display:flex;flex-wrap:wrap;gap:6px;}
.cand-filters button{
  appearance:none;
  background:transparent;
  color:var(--muted);
  border:1px solid var(--line);
  border-radius:999px;
  padding:7px 12px;
  font-weight:600;
  letter-spacing:.06em;
  text-transform:uppercase;
  font-size:12px;
  cursor:pointer;
}
.cand-filters button:hover{color:var(--cream);border-color:#4a4a50;}
.cand-filters button[aria-pressed="true"]{
  background:var(--cream);
  color:var(--bg);
  border-color:var(--cream);
}
.cand-search{
  flex:1 1 240px;
  min-width:200px;
}
.cand-search input{
  width:100%;
  background:#1a1a1d;
  color:var(--cream);
  border:1px solid var(--line);
  border-radius:8px;
  padding:9px 12px;
  font:inherit;
  font-size:15px;
}
.cand-search input::placeholder{color:var(--dim);}
.cand-count{
  margin:0 0 10px;
  font-weight:600;
  letter-spacing:.1em;
  text-transform:uppercase;
  font-size:13px;
  color:var(--muted);
}
.cand-count b{color:var(--cream);font-weight:800;}

.cand-table-wrap{
  overflow-x:auto;
  border:1px solid var(--line);
  border-radius:var(--radius);
  background:var(--card);
  margin:0 0 8px;
}
.cand-table{
  width:100%;
  border-collapse:collapse;
  min-width:1080px;
  font-size:13px;
  line-height:1.4;
}
.cand-table th,
.cand-table td{
  text-align:left;
  vertical-align:top;
  padding:10px 12px;
  border-bottom:1px solid var(--line);
}
.cand-table th{
  position:sticky;
  top:0;
  z-index:1;
  background:#1a1a1d;
  font-weight:700;
  letter-spacing:.06em;
  text-transform:uppercase;
  font-size:11px;
  color:var(--cream);
  white-space:nowrap;
  border-bottom:2px solid var(--cand-piping);
}
.cand-table th button{
  appearance:none;
  background:transparent;
  border:0;
  color:inherit;
  font:inherit;
  letter-spacing:inherit;
  text-transform:inherit;
  padding:0;
  cursor:pointer;
  display:inline-flex;
  align-items:center;
  gap:4px;
}
.cand-table th button:hover{color:#fff;}
.cand-table .sort-ind{color:var(--cand-magenta);font-size:10px;}
.cand-table tbody tr{cursor:pointer;}
.cand-table tbody tr:hover{background:#161618;}
.cand-table tbody tr.is-open{background:#1c1518;}
.cand-table tbody tr.is-open td{border-bottom-color:transparent;}
.cand-table .name{font-weight:700;font-size:15px;letter-spacing:.02em;color:var(--cream);min-width:160px;}
.cand-table .minor{
  display:block;
  margin-top:3px;
  font-family:var(--cand-text);
  font-weight:500;
  font-size:11px;
  letter-spacing:.02em;
  text-transform:none;
  color:var(--cand-magenta);
}
.cand-table .muted{color:var(--muted);}
.cand-table a{color:#E8A0C8;font-weight:500;text-decoration:none;border-bottom:1px solid rgba(172,63,134,.5);}
.cand-table a:hover{color:#fff;border-bottom-color:#fff;}
.cand-badge{
  display:inline-block;
  border-radius:999px;
  padding:3px 8px;
  font-family:var(--cand-display);
  font-weight:700;
  letter-spacing:.06em;
  text-transform:uppercase;
  font-size:11px;
  white-space:nowrap;
}
.cand-badge.high{background:#143d2c;color:#C8F0D4;}
.cand-badge.medium{background:#3d3414;color:#F0E3C8;}
.cand-badge.low{background:#3d1418;color:#F0C8CC;}
.cand-detail{
  background:#1c1518;
}
.cand-detail td{border-bottom:1px solid var(--line);padding:0 12px 14px;}
.cand-detail-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px 20px;
}
.cand-detail h4{
  font-family:var(--cand-display);
  font-weight:700;
  letter-spacing:.12em;
  text-transform:uppercase;
  font-size:11px;
  color:var(--cand-magenta);
  margin:0 0 6px;
}
.cand-detail p{margin:0;color:var(--muted);font-size:14px;line-height:1.5;}
.cand-hint{margin:0 0 22px;color:var(--dim);font-size:13px;}

.cand-list{color:var(--muted);font-size:15px;line-height:1.55;margin:0 0 14px;padding-left:1.2em;max-width:54em;}
.cand-list a{color:#E8A0C8;}
.cand-list strong{color:var(--cream);font-weight:500;}
.cand-copy{color:var(--muted);font-size:15px;line-height:1.55;max-width:54em;margin:0 0 14px;}

.cand-pipes{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:12px;
  margin:12px 0 16px;
}
.cand-pipe{
  background:var(--card);
  border:1px solid rgba(255,255,255,.08);
  border-radius:var(--radius);
  padding:16px 16px 14px;
  display:flex;
  flex-direction:column;
  gap:6px;
}
.cand-pipe h3{font-weight:700;font-size:18px;letter-spacing:.02em;margin:0;line-height:1.15;}
.cand-pipe .where{
  font-family:var(--cand-display);
  font-weight:600;
  letter-spacing:.08em;
  text-transform:uppercase;
  font-size:11px;
  color:var(--cand-magenta);
}
.cand-pipe p{margin:0;color:var(--muted);font-size:14px;line-height:1.45;flex:1;}
.cand-pipe a{
  font-family:var(--cand-display);
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
  font-size:13px;
  color:var(--cream);
  text-decoration:none;
  border-bottom:2px solid var(--cand-piping);
  padding-bottom:2px;
  align-self:flex-start;
  margin-top:6px;
}
.cand-pipe a:hover{color:#fff;}

@media (max-width:1080px){
  .cand-metrics{grid-template-columns:repeat(2,1fr);}
  .cand-pipes{grid-template-columns:1fr 1fr;}
  .cand-detail-grid{grid-template-columns:1fr;}
}
@media (max-width:720px){
  .cand-metrics,.cand-pipes{grid-template-columns:1fr;}
}
@media (prefers-reduced-motion:reduce){
  .cand-filters button,.cand-table tbody tr{transition:none;}
}

.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}
