.candidate-row {
  --party-main: #7F8A96;
  --party-soft: #EEF1F4;
  border-left: 4px solid var(--party-main);
  background: linear-gradient(105deg, var(--party-soft) 0, var(--party-soft) 13%, #fffdf9 58%);
  transition: border-color .18s, box-shadow .18s, background .18s;
}

.candidate-row.party-kmt { --party-main: #4A78B8; --party-soft: #EAF1FB; }
.candidate-row.party-dpp { --party-main: #4C9A68; --party-soft: #EAF6EE; }
.candidate-row.party-tpp { --party-main: #4CA8B8; --party-soft: #EAF7F9; }
.candidate-row.party-yellow { --party-main: #C9A233; --party-soft: #F9F3DF; }
.candidate-row.party-independent { --party-main: #8A7F74; --party-soft: #F2EEEA; }
.candidate-row.party-other { --party-main: #7F8A96; --party-soft: #EEF1F4; }

.candidate-row .candidate-avatar {
  border-radius: 50%;
  background: var(--party-main) !important;
  color: #fff !important;
  box-shadow: 0 0 0 5px var(--party-soft);
}

.candidate-row .candidate-party-name {
  background: var(--party-soft) !important;
  color: var(--party-main) !important;
  border: 1px solid var(--party-main);
  border-radius: 999px;
}

.candidate-row h3,
.candidate-row .candidate-card-meta > span:last-child {
  color: var(--ink) !important;
}

.candidate-row:hover {
  border-color: #dfc6b5;
  border-left-color: var(--party-main);
  background: linear-gradient(105deg, var(--party-soft) 0, var(--party-soft) 17%, #fffaf5 62%);
}
