.container { padding: 12px; }
.grid { display: grid; grid-template-columns: 2fr 1fr; gap: 16px; }
.col-main { min-height: 80vh; }
.col-side { border-left: 1px solid #e5e5e5; padding-left: 16px; }
.kpi-bar { display:flex; gap:12px; flex-wrap:wrap; margin: 8px 0 16px; }
.kpi { padding:12px 14px; border-radius:12px; box-shadow:0 1px 3px rgba(0,0,0,.06); background:#fff; }
@media (max-width: 1100px) { .grid { grid-template-columns: 1fr; } .col-side{ border:0; padding:0 } }

.results-wrap { max-width: 520px; }
.legend-title { margin: 0 0 8px 0; }

.results-table {
  width: 100%;
  border-collapse: collapse;
  font-variant-numeric: tabular-nums;
  font-size: 16px;
}
.results-table th {
  text-align: left;
  font-weight: 600;
  color: #5a6a7a;
  padding: 6px 8px;
  border-bottom: 1px solid #e9ecef;
}
.results-table td {
  padding: 8px 8px;
  border-bottom: 1px solid #f1f3f5;
  vertical-align: middle;
}

.results-table td.cand { font-weight: 600; }
.results-table td.pct { font-weight: 700; }
.results-table tr:last-child td { border-bottom: none; }

/* Pavé couleur à gauche du nom */
.pip {
  display: inline-block;
  width: 4px;
  height: 20px;
  margin-right: 8px;
  border-radius: 2px;
  vertical-align: middle;
}
.cand-name { vertical-align: middle; }

/* Colonnes un peu étroites pour Party et Pct */
.results-table td.party { width: 72px; color: #6b7280; }
.results-table td.votes { width: 90px; text-align: right; }
.results-table td.pct   { width: 56px; text-align: right; }

.btn {
  background: #f3f4f6;
  border: 1px solid #e5e7eb;
  padding: 6px 10px;
  border-radius: 8px;
  cursor: pointer;
}
.btn:hover { background: #e5e7eb; }