.candidate-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.candidate { display: grid; grid-template-columns: 92px minmax(0, 1fr) 76px; align-items: center; gap: 18px; min-height: 0; padding: 16px; overflow: hidden; border-radius: 20px; box-shadow: 0 10px 24px rgba(4,61,37,.06); transition: .2s; }
.candidate:hover { transform: translateY(-3px); box-shadow: 0 18px 38px rgba(4,61,37,.12); }
.candidate-photo { width: 92px; height: 92px; overflow: hidden; border-radius: 18px; background: #e7f0dc; }
.candidate-photo img { width: 100%; height: 100%; object-fit: cover; }
.candidate-info { min-width: 0; padding: 0; }
.ballot-number { display: inline-grid; place-items: center; min-width: 42px; height: 32px; margin-bottom: 9px; padding: 0 9px; border-radius: 10px; background: var(--green); color: #fff !important; font: 700 17px Georgia,serif !important; }
.candidate-info h3 { min-height: 0; margin: 0; font: 700 18px/1.45 "Nirmala UI", "Tunga", Arial, sans-serif; }
.candidate-symbol { width: 72px; height: 64px; object-fit: contain; mix-blend-mode: multiply; }
@media (max-width: 980px) { .candidate-grid { grid-template-columns: 1fr; } }
@media (max-width: 560px) { .candidate { grid-template-columns: 72px minmax(0, 1fr) 56px; gap: 12px; padding: 12px; } .candidate-photo { width: 72px; height: 72px; border-radius: 14px; } .candidate-symbol { width: 56px; height: 52px; } .candidate-info h3 { font-size: 16px; } }
