/* ============================================================
   votar.php — página pública de votación (mobile-first)
   ============================================================ */
:root{ --neon:#ff2fd0; --cyan:#00e6ff; --bg:#0a0c1c; }
*{margin:0;padding:0;box-sizing:border-box}
html,body{background:
  radial-gradient(900px 500px at 80% -10%,rgba(138,92,255,.30),transparent 60%),
  radial-gradient(700px 450px at -10% 110%,rgba(0,230,255,.22),transparent 55%),var(--bg);
  color:#eef1ff;font-family:'Rajdhani','Segoe UI',system-ui,sans-serif;min-height:100vh}
.wrap{max-width:560px;margin:0 auto;padding:1.1rem 1rem 3rem;min-height:100vh}
.muted{color:#9aa4d8}

.topv{text-align:center;padding:.6rem 0 1rem}
.topv .logo{max-height:76px;max-width:70%;object-fit:contain;filter:drop-shadow(0 0 12px rgba(0,230,255,.5));margin-bottom:.6rem}
.vname{font-family:'Orbitron',sans-serif;font-weight:900;font-size:1.6rem;text-transform:uppercase;letter-spacing:.5px;
  background:linear-gradient(135deg,var(--neon),var(--cyan));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}

.searchbar{position:sticky;top:.4rem;z-index:5;margin-bottom:.8rem}
.searchbar input{width:100%;padding:.9rem 1rem;border-radius:14px;border:1px solid rgba(255,255,255,.14);
  background:#11142e;color:#fff;font-size:1.05rem}
.searchbar input:focus{outline:none;border-color:var(--neon);box-shadow:0 0 0 3px rgba(255,47,208,.2)}

.plist{list-style:none;display:flex;flex-direction:column;gap:.55rem}
.pitem{display:flex;align-items:center;justify-content:space-between;gap:1rem;
  background:rgba(23,27,54,.85);border:1px solid rgba(255,255,255,.09);border-radius:14px;padding:.85rem 1rem}
.pitem .pn{font-size:1.15rem;font-weight:600}
.btn-vote{flex:0 0 auto;border:none;border-radius:12px;padding:.7rem 1.3rem;font-size:1.05rem;font-weight:800;cursor:pointer;
  color:#04121a;background:linear-gradient(135deg,var(--cyan),#2a7bff);box-shadow:0 6px 16px rgba(0,230,255,.25)}
.btn-vote:active{transform:scale(.96)}

.state-box{padding:2rem 0}
.state-msg{text-align:center;font-size:1.4rem;font-weight:700;line-height:1.4;padding:2rem 1rem;
  background:rgba(23,27,54,.7);border:1px solid rgba(255,255,255,.1);border-radius:18px}

.results{margin-top:1.4rem;background:rgba(23,27,54,.7);border:1px solid rgba(255,255,255,.1);border-radius:18px;padding:1rem}
.results h2{font-family:'Orbitron',sans-serif;font-size:1.1rem;margin-bottom:.7rem;text-align:center}
.results ol{list-style:none;display:flex;flex-direction:column;gap:.5rem}
.results li{display:flex;justify-content:space-between;gap:.6rem;padding:.5rem .2rem;border-bottom:1px solid rgba(255,255,255,.07)}
.results .rp{color:var(--cyan);font-weight:800}

.done{text-align:center;padding:3rem 1rem;animation:pop .5s cubic-bezier(.2,1.4,.4,1)}
.done .check{width:88px;height:88px;border-radius:50%;margin:0 auto 1rem;display:grid;place-items:center;font-size:3rem;color:#04121a;
  background:linear-gradient(135deg,#25e39a,#0fa);box-shadow:0 0 30px rgba(37,227,154,.5)}
.done h2{font-family:'Orbitron',sans-serif;font-size:1.5rem;margin-bottom:.4rem}
@keyframes pop{from{transform:scale(.6);opacity:0}to{transform:scale(1);opacity:1}}

/* Modal */
.modal{position:fixed;inset:0;background:rgba(0,0,0,.65);display:grid;place-items:center;z-index:50;padding:1rem}
.modal-card{width:100%;max-width:400px;background:#151936;border:1px solid rgba(255,255,255,.12);border-radius:20px;padding:1.6rem;text-align:center}
.modal-card p{font-size:1.15rem}
.modal-card .cand{font-family:'Orbitron',sans-serif;font-weight:800;font-size:1.4rem;margin:.6rem 0 1.4rem;color:#fff}
.modal-actions{display:flex;gap:.7rem}
.modal-actions button{flex:1;border:none;border-radius:14px;padding:1rem;font-size:1.05rem;font-weight:800;cursor:pointer}
.btn-cancel{background:rgba(255,255,255,.1);color:#fff}
.btn-confirm{background:linear-gradient(135deg,var(--neon),#8a5cff);color:#fff}
.btn-confirm:disabled{opacity:.6}

.toast{position:fixed;left:50%;bottom:1.4rem;transform:translateX(-50%);z-index:80;
  background:#25e39a;color:#04121a;font-weight:700;padding:.8rem 1.2rem;border-radius:12px;opacity:0;transition:opacity .3s;pointer-events:none;max-width:90%}
.toast.err{background:#ff5470;color:#fff}
.toast.show{opacity:1}
