body {
    background: #f8fafc;
    font-family: 'Montserrat', Arial, sans-serif;
    color: #23272f;
    margin: 0;
}
.contenedor {
    max-width: 600px;
    margin: 40px auto;
    padding: 2rem 2rem 1.5rem 2rem;
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 6px 28px #bbb2;
    text-align: center;
}
img.logo { width: 100px; margin-bottom: 20px;}
h1 { font-size: 2.2rem; font-weight: 700; }
.sub { font-size: 1.2rem; margin-bottom: 25px;}
input, select {
    width: 90%; padding: 1rem; font-size: 1.1rem;
    margin: 8px 0; border-radius: 10px; border: 1px solid #ccc;
    box-sizing: border-box;
}
button, .btn {
    width: 100%; background: #276EF1; color: #fff; border: none;
    border-radius: 10px; font-size: 1.2rem; padding: 0.9rem;
    margin-top: 12px; cursor: pointer; font-weight: bold;
    transition: background .2s;
}
button:hover, .btn:hover { background: #1445ad;}
.card-candidato {
    box-shadow: 0 2px 18px #8cb7fc33;
    border-radius: 16px;
    padding: 18px 12px;
    margin: 20px 0;
    background: #fcfdff;
    display: flex;
    flex-direction: column;
    align-items: center;
    border: 2px solid #e8f0fe;
}
.card-candidato img {
    width: 110px; height: 110px; object-fit: cover;
    border-radius: 50%; margin-bottom: 14px; border: 3px solid #276EF1;
    background: #f2f6fb;
}
.card-candidato .nombre { font-size: 1.3rem; font-weight: bold; margin-bottom: 6px;}
.card-candidato .cargo { color: #555; font-size: 1.05rem;}
.card-candidato .votar-btn { margin-top: 14px; }

.voto-blanco { color: #888; font-style: italic; font-size: 1.1rem; margin: 16px 0; }

@media (max-width:700px) {
    .contenedor { max-width: 98vw; padding: 1rem;}
    input, select { font-size: 1rem; }
    h1 { font-size: 1.5rem; }
}
