:root{font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-synthesis:none;color:#1b2926;background:#f8f6f2;--blue:#395d8a;--border:#cbd4cd;--muted:#61716b}
*{box-sizing:border-box}body{margin:0;min-width:320px}button,input{font:inherit}button,a,input{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:default}a{color:var(--blue)}:focus-visible{outline:3px solid var(--blue);outline-offset:4px}[hidden]{display:none!important}
.shell{max-width:1000px;min-height:100vh;margin:auto;padding:24px 36px;display:flex;flex-direction:column;gap:42px}.brand{display:flex;align-items:center;justify-content:space-between;gap:20px;color:var(--blue);font-size:14px;font-weight:700}.brand img{object-fit:contain;flex:none}main{width:min(100%,650px);margin:0 auto 30px}h1{font-size:clamp(28px,4vw,40px);line-height:1.15;letter-spacing:-.025em;margin:14px 0 22px}h2{font-size:21px;line-height:1.35;margin:0 0 12px}h1:focus,h2:focus{outline:none}p{line-height:1.6}.muted,.description{color:var(--muted)}.description{margin-bottom:26px}.eyebrow,.step-label{font-size:13px;font-weight:750;color:var(--blue);letter-spacing:.04em}.progress{display:flex;gap:8px;margin:0 0 32px;padding:0;list-style:none}.progress li{flex:1;font-size:12px;color:var(--muted);border-top:4px solid var(--border);padding-top:8px}.progress li.active,.progress li.complete{border-color:var(--blue);color:var(--blue)}
.field-label{display:block;font-size:16px;font-weight:700;margin:24px 0 10px}.email{width:100%;padding:16px;border:1px solid var(--border);border-radius:10px;background:white;min-height:58px;font-size:18px}.consent{display:flex;gap:12px;font-size:14px;line-height:1.6;margin-top:20px}.consent input{flex:none;margin:5px 0 0;width:20px;height:20px;accent-color:var(--blue)}.hint{font-size:14px;color:var(--muted)}.primary,.secondary{border-radius:10px;padding:15px 24px;font-weight:700;min-height:50px}.primary{border:1px solid var(--blue);background:var(--blue);color:white;width:100%;margin-top:26px}.primary:hover:not(:disabled){background:#2c4a70}.primary:disabled{opacity:.65}.secondary{border:1px solid var(--border);color:var(--blue);background:white}.back,.change{border:0;background:none;padding:10px 0;color:var(--blue);text-decoration:underline;font-size:14px;text-align:left}.back{margin-bottom:12px}
.candidates{border:0;margin:0;padding:0;display:grid;gap:14px}.candidate{display:flex;align-items:center;gap:16px;background:white;border:1px solid var(--border);padding:18px;border-radius:14px;min-height:94px;cursor:pointer}.candidate:has(input:checked){border:2px solid var(--blue);padding:17px;background:#f0f4fa}.candidate:has(input:disabled):not(:has(input:checked)){opacity:.45;cursor:default}.candidate input{flex:none;width:22px;height:22px;accent-color:var(--blue)}.portrait{width:72px;height:72px;border-radius:50%;object-fit:cover;flex:none}.initials{display:grid;place-items:center;background:#eef1f4;color:var(--blue);font-size:21px;font-weight:700}.candidate-name{font-size:18px;font-weight:650;overflow-wrap:anywhere}.chosen{display:block;margin-top:6px;font-size:13px;font-weight:500;color:var(--blue)}.review-card,.category-result{background:white;border:1px solid var(--border);border-radius:14px;padding:22px;margin:16px 0}.review-card h2{font-size:14px;color:var(--blue)}.review-card p{margin:8px 0;font-size:19px;font-weight:700}.receipt{overflow-wrap:anywhere;font-size:14px;color:var(--muted)}.success-icon{color:var(--blue);font-size:42px}.error{background:#fff1ee;color:#923629;padding:14px;border:1px solid #e7b0a8;border-radius:10px}.closed{background:white;border:1px solid var(--border);padding:24px;border-radius:14px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
footer{margin-top:auto;border-top:1px solid var(--border);padding:22px 0;display:flex;justify-content:space-between;gap:18px;font-size:13px;color:var(--muted)}footer strong{color:var(--blue)}.admin-shell{max-width:1200px}.admin-shell main{width:100%}.totals{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:24px 0}.total-card{border:1px solid var(--border);border-radius:12px;padding:20px;background:white}.total-card span{color:var(--muted);font-size:14px;display:block}.total-card strong{font-size:38px;display:block;margin-top:8px}.results{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.category-result{margin:0}.result-row{margin-top:22px}.result-name{font-size:16px;font-weight:650;margin:0}.result-count{font-size:14px;color:var(--muted);margin:8px 0}.result-row progress{appearance:none;width:100%;height:9px;display:block;accent-color:var(--blue);border:0;border-radius:5px;background:#e6e9ed}.result-row progress::-webkit-progress-bar{background:#e6e9ed;border-radius:5px}.result-row progress::-webkit-progress-value{background:var(--blue);border-radius:5px}.result-row progress::-moz-progress-bar{background:var(--blue)}.update{display:flex;align-items:center;gap:20px;margin-top:28px}.update p{font-size:13px}
@media(max-width:950px){.results{grid-template-columns:1fr}.category-result{padding:24px}.brand span{max-width:210px;text-align:right}}@media(max-width:600px){.shell{padding:16px 20px;gap:28px}.brand{gap:12px}.brand span{font-size:12px;max-width:145px}.brand img{width:110px;height:54px}main{margin-bottom:10px}.candidate{gap:12px;padding:14px}.candidate:has(input:checked){padding:13px}.candidate-name{font-size:16px}.portrait{width:56px;height:56px}.initials{font-size:18px}.review-card,.category-result{padding:18px}.update{align-items:flex-start;flex-direction:column;gap:4px}.update button{width:100%}footer{font-size:12px;flex-direction:column;gap:12px}.total-card{padding:16px}.total-card strong{font-size:32px}.progress{gap:5px}.progress li{font-size:11px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}

/* Recursos y estilo originales del formulario de postulaciones de Orgullo Colinas. */
@font-face{font-family:Lato;src:url('./theme/lato-latin-400-normal.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:Lato;src:url('./theme/lato-latin-700-normal.woff2') format('woff2');font-weight:700;font-display:swap}
@font-face{font-family:Montserrat;src:url('./theme/montserrat-latin-600-normal.woff2') format('woff2');font-weight:600;font-display:swap}
@font-face{font-family:Montserrat;src:url('./theme/montserrat-latin-700-normal.woff2') format('woff2');font-weight:700;font-display:swap}
body.voting-page{--backdrop:url('./theme/fondo-orgullo-1200.webp');background-color:#f1f6fc;background-image:linear-gradient(rgb(5 9 26 / 55%),rgb(5 9 26 / 55%)),var(--backdrop);background-position:center top;background-size:cover;background-repeat:no-repeat;color:#fff;font:17px/1.6 Lato,Arial,sans-serif;min-height:100svh}
.voting-page .shell{width:min(100%,1200px);max-width:1200px;min-height:100svh;padding:36px 48px 40px;gap:0}
.voting-page .brand{min-height:62px;gap:24px;color:#fff;font-weight:400}.voting-page .brand img{filter:brightness(0) invert(1)}.voting-page .brand span{font:400 14px/20px Lato,Arial,sans-serif;letter-spacing:.02em}
.voting-page main{width:min(100%,720px);margin:auto;padding:72px 0}
.voting-page h1{color:#fff;font:700 clamp(30px,3.5vw,48px)/1.2 Montserrat,Arial,sans-serif;margin:0 0 24px;letter-spacing:normal}
.voting-page .eyebrow,.voting-page .step-label{color:#e8c78a;font-size:14px;font-weight:700;letter-spacing:.035em;margin:0 0 24px}
.voting-page .description{color:#dce5f2;font-size:20px;line-height:1.5;margin:0 0 24px}.voting-page .hint{color:#dce5f2;font-size:16px}
.voting-page .email{min-height:78px;padding:20px 24px;border:1px solid rgb(255 255 255 / 45%);border-radius:12px;background:rgb(255 255 255 / 6%);color:white;font-size:25px;line-height:1.35}
.voting-page button{font-family:Lato,Arial,sans-serif;min-height:56px;border-radius:16px;padding:12px 28px;font-size:17px;border:1px solid #fff;background:#fff;color:#102743;font-weight:400}
.voting-page .primary{width:auto;margin-top:24px}.voting-page button:hover:not(:disabled){background:#e8c78a;border-color:#e8c78a;color:#102743}
.voting-page .secondary{background:rgb(255 255 255 / 7%);color:#fff;border-color:rgb(255 255 255 / 35%);margin-left:16px}.voting-page .secondary:hover:not(:disabled){background:rgb(255 255 255 / 18%);color:#fff}
.voting-page .back,.voting-page .change{background:transparent;color:#fff;border:0;padding:0;min-height:44px;font-size:15px;margin-bottom:16px}.voting-page .back:hover:not(:disabled),.voting-page .change:hover:not(:disabled){background:transparent;color:#e8c78a}
.voting-page .candidates{gap:16px}.voting-page .candidate{gap:16px;min-height:96px;padding:16px 20px;border:1px solid rgb(255 255 255 / 35%);border-radius:12px;background:rgb(255 255 255 / 4%);color:white}
.voting-page .candidate:has(input:checked){padding:16px 20px;border:1px solid #e8c78a;background:rgb(232 199 138 / 13%)}.voting-page .candidate input{width:26px;height:26px;margin:0;accent-color:#e8c78a}.voting-page .candidate-name{font-size:20px;font-weight:700}.voting-page .chosen{color:#e8c78a}.voting-page .portrait{width:72px;height:72px}.voting-page .initials{background:rgb(255 255 255 / 8%);color:#e8c78a}
.voting-page .consent{font-size:20px;line-height:1.5;align-items:flex-start;margin:0 0 24px;gap:16px}.voting-page .consent input{width:26px;height:26px;accent-color:#e8c78a;flex:none}.voting-page a{color:#fff}
.voting-page .review-card{background:rgb(255 255 255 / 6%);border:1px solid rgb(255 255 255 / 25%);border-radius:16px;padding:20px;margin-bottom:16px;color:#fff}.voting-page .review-card h2{font-family:Montserrat,Arial,sans-serif;font-size:18px;color:#e8c78a}.voting-page .receipt{color:#dce5f2}.voting-page .error{background:rgb(125 25 29 / 85%);border-color:#ffb9bc;color:#fff}.voting-page .closed{background:rgb(255 255 255 / 6%);border-color:rgb(255 255 255 / 25%)}
.voting-page footer{background:transparent;color:#dce5f2;border:0;margin-top:24px;padding:0}.voting-page footer strong{color:#dce5f2}.voting-page :focus-visible{outline:3px solid #e8c78a;outline-offset:3px}.voting-page h1:focus{outline:none}
.wizard-progress{margin-top:auto;color:#dce5f2;font-size:15px}.wizard-progress p{margin:16px 0 0}.wizard-bars{display:flex;gap:8px;width:240px}.wizard-bars span{width:25%;height:4px;background:rgb(255 255 255 / 22%);border-radius:2px}.wizard-bars .done{background:#e8c78a}
@media(max-width:1000px){body.voting-page{--backdrop:url('./theme/fondo-orgullo-900.webp')}}
@media(max-width:600px){body.voting-page{--backdrop:url('./theme/fondo-orgullo-375.webp')}.voting-page .shell{padding:24px 16px 32px}.voting-page .brand span{font-size:12px}.voting-page .brand img{width:128px;height:62px}.voting-page main{padding:72px 0}.voting-page h1{font-size:30px}.voting-page .description,.voting-page .consent{font-size:18px}.voting-page .email{font-size:22px}.voting-page .candidate-name{font-size:17px}.voting-page .candidate{min-height:88px;gap:12px;padding:16px}.voting-page .candidate:has(input:checked){padding:16px}.voting-page .portrait{width:64px;height:64px}.voting-page .primary,.voting-page .secondary{width:100%;margin-left:0}.voting-page .secondary{margin-top:16px}.voting-page footer{gap:12px}}
.voting-page .wizard-actions{display:flex;gap:16px;flex-wrap:wrap;margin-top:24px}.voting-page .wizard-actions .primary,.voting-page .wizard-actions .secondary{margin:0}
@media(max-width:600px){.voting-page .wizard-actions{flex-direction:column}.voting-page .wizard-actions button{width:100%}}
.voting-page .voter-summary{display:grid;gap:4px;margin-bottom:20px}.voting-page .voter-summary .change{margin-bottom:0;overflow-wrap:anywhere}

.voters-list{display:grid;gap:16px}.voters-list article{overflow-wrap:anywhere}

/* Administración: vistas y datos privados, sin modificar el formulario público. */
.admin-page{background:#f3f6fa;color:#26374b;font-family:Lato,Arial,sans-serif}
.admin-page .admin-shell{gap:32px}.admin-page h1,.admin-page h2,.admin-page h3{font-family:Montserrat,Arial,sans-serif;color:#102743}.admin-page h3{font-size:19px;line-height:1.4;margin:0 0 14px}
.admin-page .brand{padding-bottom:20px;border-bottom:1px solid #d9e3f0}.admin-page .description{margin-bottom:16px}
.admin-page .panel-status{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.admin-page .panel-status p{margin:0}
.status-pill{display:inline-block;border-radius:24px;padding:6px 11px;font-size:13px;font-weight:700;line-height:1.5;background:#e9eef5;color:#344c6a}
.reception-open,.mail-accepted{background:#e6f4ec;color:#215b3b}.reception-closed,.mail-pending{background:#fff0cc;color:#775600}.mail-failed{background:#ffe5df;color:#8d3028}
.admin-page .panel-nav{display:flex;gap:12px;border-bottom:1px solid #d9e3f0;margin:28px 0;padding-bottom:14px;flex-wrap:wrap}.panel-tab{padding:13px 18px;border:1px solid #cbd6e4;background:white;color:#102743;border-radius:10px;min-height:48px;font-weight:700}.panel-tab[aria-pressed=true]{background:#102743;color:white;border-color:#102743}
.admin-page .total-card small{display:block;margin-top:8px;color:#61716b;font-size:13px}.admin-page .results{margin-top:20px}.admin-page .category-result{border-color:#d9e3f0}.admin-page .result-name{font-weight:700}.admin-page .result-count{font-size:15px}.admin-page .panel-empty{padding:18px;background:#fff;border:1px dashed #aabbd0;border-radius:12px}
.admin-page .mail-overview{margin-top:32px}.admin-page .mail-totals{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.admin-page .mail-total{display:flex;flex-direction:column;gap:6px;padding:18px;border-radius:12px}.admin-page .mail-total strong{font-size:28px}.admin-page .mail-total span{font-size:14px}
.admin-page .panel-search{display:flex;gap:16px;align-items:flex-end;flex-wrap:wrap;margin-bottom:20px}.admin-page .panel-search>div{flex:1;min-width:min(100%,260px)}.admin-page .field-label{margin:10px 0;font-size:15px}.admin-page .email{font-size:17px}.admin-page .panel-search .change{min-height:48px;margin:0}
.admin-page .voters-table-wrap{overflow-x:auto;border:1px solid #d9e3f0;border-radius:12px;background:white}.admin-page .voters-table{border-collapse:collapse;width:100%;min-width:850px;font-size:14px;line-height:1.6}.voters-table th{background:#eaf0f7;color:#102743;text-align:left;font-weight:700}.voters-table th,.voters-table td{padding:16px;border-bottom:1px solid #e4eaf2;vertical-align:top}.voters-table td{max-width:270px;overflow-wrap:anywhere}.voters-table tbody tr:last-child td{border-bottom:0}.cell-line{display:block}.admin-page .panel-pagination{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:20px}.admin-page :focus-visible{outline:3px solid #395d8a;outline-offset:3px}
@media(max-width:600px){.admin-page .mail-totals{grid-template-columns:1fr}.admin-page .panel-nav{display:grid;grid-template-columns:1fr;width:100%}.admin-page .panel-search>div{width:100%}.admin-page .panel-search .secondary{width:100%}.admin-page .panel-pagination{flex-wrap:wrap}.admin-page .panel-pagination p{order:-1;width:100%;text-align:center}.admin-page .panel-pagination button{flex:1}.admin-page .totals{grid-template-columns:1fr}.admin-page .total-card strong{font-size:36px}}

/* Resultados exportables y consulta sencilla de votantes. */
.admin-page .panel-export { display:flex; align-items:center; flex-wrap:wrap; gap:12px 20px; margin:22px 0; }
.admin-page .panel-export p { margin:0; }
.admin-page .panel-export .primary { width:auto; margin:0; }
.admin-page .voters-table { min-width:900px; }
.admin-page .voter-choice + .voter-choice { margin-top:12px; }
@media(max-width:600px) { .admin-page .panel-export .primary { width:100%; } }
