/* wi-court.css - /wisconsin-supreme-court-2027/ (prefix wc-). Tokens only; loaded after state-courts.css.
   Candidate colour comes through --party-color (Democratic blue = described as liberal, Republican red =
   described as conservative, meta grey = no such description). */

.wc-dot { display: inline-block; width: 9px; height: 9px; border-radius: 50%; background: var(--party-color);
    margin-right: 6px; vertical-align: 0; flex-shrink: 0; }
.wc-num { font-variant-numeric: tabular-nums; }
.wc-lean { font-family: var(--pc-sans); font-size: 12px; color: var(--pc-text-meta); }
.wc-colours { font-family: var(--pc-sans); font-size: 13px; color: var(--pc-text-secondary); margin: 14px 0 0; max-width: 680px; }
.wc-colours .wc-dot { margin-left: 2px; }
.wc-h3 { font-family: var(--pc-sans); font-size: 15px; font-weight: 700; color: var(--pc-text); margin: 20px 0 6px; }
.wc-h3-lead { font-family: var(--pc-serif, Georgia, serif); font-size: 19px; margin-top: 32px; }

/* Candidates: portrait, name, role; a colour rule on the left carries the description */
.wc-cands { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 18px 32px; }
.wc-cand { display: flex; gap: 14px; align-items: flex-start; padding-left: 12px; border-left: 4px solid var(--party-color); }
.wc-cand .us-pt { flex-shrink: 0; }
.wc-cand-txt p { margin: 0; }
.wc-cand-name { font-family: var(--pc-serif, Georgia, serif); font-size: 20px; font-weight: 700; line-height: 1.2; }
.wc-cand-name a { color: var(--pc-text); text-decoration: none; }
.wc-cand-name a:hover { text-decoration: underline; text-underline-offset: 2px; }
.wc-cand-role { font-family: var(--pc-sans); font-size: 14px; color: var(--pc-text-body); margin-top: 3px !important; }
.wc-cand-meta { font-family: var(--pc-sans); font-size: 12px; color: var(--pc-text-meta); margin-top: 3px !important; }

/* Context: short editorial paragraphs */
.wc-context p { font-family: var(--pc-serif, Georgia, serif); font-size: 17px; line-height: 1.65; color: var(--pc-text-body);
    max-width: 680px; margin: 0 0 12px; }

/* Maps */
.wc-controls { margin: 4px 0 10px; }
.wc-map-title { font-family: var(--pc-sans); font-size: 14px; font-weight: 600; color: var(--pc-text); margin: 0 0 8px;
    font-variant-numeric: tabular-nums; }
.wc-map-row { display: grid; grid-template-columns: minmax(0, 560px) minmax(0, 1fr); gap: 32px; align-items: start; }
.wc-map-wrap { position: relative; }
.wc-map { display: block; width: 100%; height: auto; }
.wc-map-lg { max-width: 560px; }
.wc-map-sm { max-width: 260px; }
.wc-map path { stroke: var(--pc-surface); stroke-width: 0.8; stroke-linejoin: round; cursor: pointer; }
.wc-map path.is-focus { stroke: var(--pc-text); stroke-width: 1.8; }
.wc-tip { min-width: 170px; }
.wc-tip[hidden] { display: none; }
.wc-tip-foot { margin-top: 4px; font-size: 11px; color: var(--pc-text-meta); font-variant-numeric: tabular-nums; }
.wc-legend { display: flex; flex-direction: column; gap: 10px; margin: 0 0 12px; }
.wc-ramp { font-family: var(--pc-sans); font-size: 12px; color: var(--pc-text-body); }
.wc-ramp-l { display: block; margin-bottom: 3px; }
.wc-ramp-cells { display: flex; gap: 2px; width: 200px; }
.wc-ramp-c { flex: 1; height: 12px; }
.wc-ramp-t { display: flex; gap: 2px; width: 200px; font-size: 11px; color: var(--pc-text-meta);
    font-variant-numeric: tabular-nums; margin-top: 2px; }
.wc-ramp-t span { flex: 1; text-align: center; }
.wc-swing { margin-top: 20px; }
.wc-swing .wc-h3 { margin-top: 0; }
.wc-swing-note { margin: 0 0 8px; }

/* Trend chart */
.wc-chart { position: relative; height: 320px; margin: 4px 0 8px; }
.wc-tbl { margin-top: 10px; max-width: 420px; }

/* Polls and results */
.wc-polls td, .wc-res td { font-variant-numeric: tabular-nums; white-space: nowrap; }
.wc-polls td.sl-left:first-child { white-space: normal; }
.wc-polls th .wc-dot { margin-right: 4px; }
.wc-result-row td { font-weight: 700; color: var(--pc-text); }

@media (max-width: 768px) {
    .wc-map-row { grid-template-columns: 1fr; gap: 16px; }
    .wc-map-sm { max-width: 220px; }
    .wc-chart { height: 260px; }
    .wc-cand-name { font-size: 18px; }
    .wc-context p { font-size: 16px; }
    .wc-res td { white-space: normal; }
}
.wc-cands + .pc-help { margin-top: 14px; }
