:root{--bg: #0f0f1a;--bg-card: #1a1a2e;--bg-card-2: #16213e;--accent: #e040fb;--accent-2: #7c4dff;--text: #f0f0f5;--text-muted:#9090a0;--border: #2a2a40;--success: #00e676;--error: #ff5252;--warning: #ffca28;--font: "Inter", system-ui, sans-serif;--radius: 16px;--radius-sm: 8px;--s1: 8px;--s2: 16px;--s3: 24px;--s4: 32px;--s5: 48px;--s6: 64px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-text-size-adjust:100%}body{font-family:var(--font);background:var(--bg);color:var(--text);min-height:100dvh;line-height:1.6;-webkit-font-smoothing:antialiased}.container{width:100%;max-width:480px;margin:0 auto;padding:0 var(--s2)}.container--wide{max-width:768px}h1{font-size:1.75rem;font-weight:800;line-height:1.2}h2{font-size:1.375rem;font-weight:700;line-height:1.3}h3{font-size:1.125rem;font-weight:600}.text-muted{color:var(--text-muted)}.text-accent{color:var(--accent)}.text-center{text-align:center}.text-big{font-size:2.5rem;font-weight:800}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--s1);width:100%;padding:16px var(--s3);border:none;border-radius:var(--radius);font-family:var(--font);font-size:1rem;font-weight:700;cursor:pointer;transition:opacity .15s,transform .1s;text-decoration:none}.btn:active{transform:scale(.98)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#fff;box-shadow:0 4px 20px #e040fb59}.btn-primary:hover:not(:disabled){opacity:.92}.btn-outline{background:transparent;color:var(--text);border:1.5px solid var(--border)}.btn-outline:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.btn-ghost{background:transparent;color:var(--text-muted);font-weight:500}.card{background:var(--bg-card);border:1.5px solid var(--border);border-radius:var(--radius);padding:var(--s3)}.field{display:flex;flex-direction:column;gap:6px}.field label{font-size:.875rem;font-weight:600;color:var(--text-muted)}.input{width:100%;padding:14px var(--s2);background:var(--bg-card-2);border:1.5px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font-family:var(--font);font-size:1rem;transition:border-color .15s;outline:none}.input:focus{border-color:var(--accent)}.input::placeholder{color:var(--text-muted)}.input.error{border-color:var(--error)}.form-error{font-size:.8rem;color:var(--error);margin-top:4px}.alert{border-radius:var(--radius-sm);padding:var(--s2);font-size:.9rem;line-height:1.5}.alert-warning{background:#ffca281a;border:1px solid rgba(255,202,40,.3);color:var(--warning)}.alert-error{background:#ff52521a;border:1px solid rgba(255,82,82,.3);color:var(--error)}.alert-success{background:#00e6761a;border:1px solid rgba(0,230,118,.3);color:var(--success)}.alert-info{background:#7c4dff1a;border:1px solid rgba(124,77,255,.3);color:#b39dff}.candidate-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--s2)}.candidate-card{background:var(--bg-card);border:2px solid var(--border);border-radius:var(--radius);padding:var(--s2);cursor:pointer;transition:border-color .15s,transform .1s,box-shadow .15s;display:flex;flex-direction:column;align-items:center;gap:var(--s1);text-align:center;-webkit-tap-highlight-color:transparent}.candidate-card:active{transform:scale(.97)}.candidate-card.selected{border-color:var(--accent);box-shadow:0 0 0 3px #e040fb40;background:#e040fb12}.candidate-number{background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#fff;font-weight:800;font-size:.85rem;width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0}.candidate-photo{width:80px;height:80px;border-radius:50%;object-fit:cover;background:var(--bg-card-2)}.candidate-photo-placeholder{width:80px;height:80px;border-radius:50%;background:linear-gradient(135deg,var(--bg-card-2),var(--border));display:flex;align-items:center;justify-content:center;font-size:1.75rem}.candidate-name{font-weight:700;font-size:.9rem}.candidate-rep{font-size:.78rem;color:var(--text-muted)}.sponsors-section{margin-top:var(--s4)}.sponsors-grid{display:flex;flex-wrap:wrap;gap:var(--s2);justify-content:center}.sponsor-logo{display:block;max-height:60px;max-width:140px;object-fit:contain;opacity:.85;transition:opacity .15s;border-radius:var(--radius-sm)}.sponsor-logo:hover{opacity:1}.participation-number{background:linear-gradient(135deg,var(--accent),var(--accent-2));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;font-size:2.75rem;font-weight:900;letter-spacing:2px;text-align:center;display:block}.page{min-height:100dvh;display:flex;flex-direction:column;padding:var(--s4) 0 var(--s5)}.page-header{padding:var(--s3) 0 var(--s4)}.stack{display:flex;flex-direction:column}.stack-2{gap:var(--s2)}.stack-3{gap:var(--s3)}.stack-4{gap:var(--s4)}.loader{display:flex;align-items:center;justify-content:center;padding:var(--s5)}.spinner{width:36px;height:36px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fadeIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.fade-in{animation:fadeIn .3s ease-out}.empty-state{text-align:center;padding:var(--s5) var(--s3)}.empty-state .icon{font-size:3rem;margin-bottom:var(--s2)}.results-bar-container{display:flex;flex-direction:column;gap:var(--s2)}.results-bar-row{display:grid;grid-template-columns:120px 1fr 48px;align-items:center;gap:var(--s2)}.results-bar-name{font-size:.875rem;font-weight:600;truncate:true}.results-bar-track{height:24px;background:var(--bg-card-2);border-radius:99px;overflow:hidden}.results-bar-fill{height:100%;background:linear-gradient(90deg,var(--accent-2),var(--accent));border-radius:99px;transition:width .6s ease-out;min-width:4px}.results-bar-count{font-weight:700;font-size:.875rem;text-align:right}.winner-card{background:linear-gradient(135deg,#e040fb26,#7c4dff26);border:2px solid var(--accent);border-radius:var(--radius);padding:var(--s3);text-align:center;animation:fadeIn .5s ease-out}@media (min-width: 600px){.candidate-grid{grid-template-columns:repeat(3,1fr)}.candidate-photo,.candidate-photo-placeholder{width:96px;height:96px}}
