*{box-sizing:border-box;margin:0;padding:0}body{font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;background:linear-gradient(135deg,#667eea,#764ba2);min-height:100vh;padding:10px}.carnaval-logo-header{display:flex;justify-content:center;align-items:center;padding:15px 0;background:#fffffff2;border-radius:15px 15px 0 0;margin-bottom:0}.logo-carnaval{max-width:350px;height:auto;display:block}@media (max-width: 768px){.logo-carnaval{max-width:250px}}.voting-form-container{max-width:1200px;margin:0 auto;background:#fff;border-radius:15px;box-shadow:0 10px 40px #0000004d;overflow:hidden}.voting-header{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;text-align:center;padding:20px 15px;margin:0;border-radius:0}.voting-header h1{font-size:2em;margin-bottom:5px;text-shadow:2px 2px 4px rgba(0,0,0,.3)}.voting-header p{font-size:1.1em;opacity:.95}.progress-bar{display:flex;justify-content:space-between;background:#fff;padding:20px 15px;border-bottom:3px solid #667eea;gap:12px;min-height:90px}.progress-step{flex:1;text-align:center;padding:18px 10px;font-size:.95em;font-weight:600;color:#333;background:#f0f0f0;border-radius:10px;border:2px solid #ddd;transition:all .3s ease;display:flex;align-items:center;justify-content:center;line-height:1.4}.progress-step.active{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;font-weight:700;transform:scale(1.05);border:2px solid #667eea;box-shadow:0 4px 15px #667eea80}@media (max-width: 768px){.progress-bar{flex-wrap:wrap;padding:15px 10px;min-height:auto}.progress-step{flex-basis:calc(50% - 6px);margin-bottom:10px;font-size:.85em;padding:15px 8px}}.message{padding:12px 15px;margin:15px 20px;border-radius:8px;font-weight:700;text-align:center}.message.error{background:#fee;color:#c33;border:2px solid #fcc}.message.success{background:#efe;color:#3c3;border:2px solid #cfc}.step-content{padding:25px 30px}.step-content h2{color:#333;margin-bottom:15px;font-size:1.8em}.step-content p{color:#666;margin-bottom:15px;line-height:1.5}.consent-box{background:#f8f9fa;border:2px solid #667eea;border-radius:10px;padding:20px;margin-bottom:15px}.consent-box h3{color:#667eea;margin-bottom:12px;font-size:1.2em}.consent-box p{line-height:1.6;color:#555;font-size:.95em}.consent-checkbox{margin-top:15px;padding:12px;background:#fff;border-radius:8px}.consent-checkbox label{display:flex;align-items:start;cursor:pointer}.consent-checkbox input[type=checkbox]{margin-right:12px;width:18px;height:18px;cursor:pointer;flex-shrink:0;margin-top:2px}.consent-checkbox span{line-height:1.5;color:#333;font-size:.95em}.form-group{margin-bottom:15px}.form-group label{display:block;margin-bottom:6px;color:#333;font-weight:700;font-size:.95em}.form-group input{width:100%;padding:10px 12px;border:2px solid #ddd;border-radius:8px;font-size:1em;transition:border-color .3s ease}.form-group input:focus{outline:none;border-color:#667eea}.candidates-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:20px;margin-top:20px}.candidate-card{background:#fff;border:3px solid #e0e0e0;border-radius:12px;overflow:hidden;cursor:pointer;transition:all .3s ease;box-shadow:0 3px 6px #0000001a}.candidate-card:hover{transform:translateY(-8px);border-color:#667eea;box-shadow:0 8px 20px #667eea66}.candidate-card img{width:100%;height:280px;object-fit:cover;display:block}.candidate-card h3{padding:12px;margin:0;font-size:1.1em;color:#333;background:#f8f9fa}.candidate-card p{padding:0 12px 12px;margin:0;color:#667eea;font-weight:700;font-size:.9em}.confirmation-box{background:#f8f9fa;border-radius:12px;padding:25px;text-align:center}.confirmation-box h3{color:#667eea;margin-bottom:15px;font-size:1.3em}.selected-candidate{background:#fff;border:3px solid #667eea;border-radius:12px;padding:20px;margin:15px 0}.selected-candidate img{max-width:250px;height:auto;border-radius:10px;margin-bottom:15px}.selected-candidate h2{color:#333;margin-bottom:8px;font-size:1.5em}.selected-candidate p{color:#667eea;font-weight:700;font-size:1.1em}.warning-box{background:#fff3cd;border:2px solid #ff6b6b;border-radius:10px;padding:15px;margin:15px 0}.warning-box p{margin:5px 0;color:#333;font-size:.95em}.btn-primary,.btn-secondary{padding:12px 25px;font-size:1em;border:none;border-radius:8px;cursor:pointer;transition:all .3s ease;font-weight:700}.btn-primary{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.btn-primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 5px 15px #667eea66}.btn-primary:disabled{background:#ccc;cursor:not-allowed}.btn-secondary{background:#6c757d;color:#fff}.btn-secondary:hover{background:#5a6268;transform:translateY(-2px)}.button-group{display:flex;gap:12px;justify-content:center;margin-top:15px}@media (max-width: 480px){.button-group{flex-direction:column}}.final-screen{text-align:center}.success-icon{width:80px;height:80px;background:#28a745;color:#fff;font-size:3em;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 15px}.success-info{background:#f8f9fa;border-radius:12px;padding:20px;margin:15px 0}.vote-details,.voting-rules-info{background:#fff;border-radius:10px;padding:15px;margin:15px 0;text-align:left}.vote-details h3{color:#667eea;margin-bottom:10px;font-size:1.1em}.vote-details p,.voting-rules-info p{margin:8px 0;line-height:1.5;font-size:.95em}.footer-note{color:#666;font-style:italic;margin-top:20px;font-size:.9em}.voting-footer{background:#2c3e50;padding:20px 15px;text-align:center;border-radius:0 0 15px 15px}.organizadores-logos{margin-bottom:10px}.logos-organizadores{max-width:85%;height:auto;display:block;margin:0 auto}.footer-text{color:#fff;font-size:.85em;margin:8px 0 0;opacity:.9}@media (max-width: 768px){.voting-header h1{font-size:1.6em}.step-content{padding:20px}.candidates-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:15px}.candidate-card img{height:240px}}@media (max-width: 480px){body{padding:5px}.voting-header h1{font-size:1.4em}.voting-header p{font-size:.95em}.step-content{padding:15px}.candidates-grid{grid-template-columns:1fr}.selected-candidate img,.logos-organizadores{max-width:100%}}.loading-state{display:flex;justify-content:center;align-items:center;min-height:400px;text-align:center}.loading-state h2{color:#6a737d;font-size:24px;font-weight:400}.voting-closed-container{max-width:700px;margin:40px auto;padding:40px;text-align:center;background:#fff;border-radius:12px;box-shadow:0 4px 6px #0000001a}.voting-closed-icon{font-size:80px;margin-bottom:20px;animation:pulse 2s infinite}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}.voting-closed-container h2{color:#e74c3c;margin-bottom:20px;font-size:28px;font-weight:600}.voting-closed-message{background:#fff3cd;border:2px solid #ffc107;border-radius:8px;padding:30px;margin:30px 0}.voting-closed-message p{color:#856404;font-size:18px;line-height:1.8;margin:0 0 15px}.voting-closed-message p:last-child{margin-bottom:0}.reopening-time{margin-top:20px;padding-top:20px;border-top:1px solid #ffc107}.voting-closed-info{margin:30px 0;padding:20px;background:#f8f9fa;border-radius:8px}.voting-closed-info p{color:#495057;font-size:16px;margin:10px 0}.results-link{margin-top:40px;padding-top:30px;border-top:2px solid #e1e4e8}.results-link p{color:#6a737d;font-size:16px;margin-bottom:15px}.results-link .btn-secondary{display:inline-block;padding:12px 30px;background:#6c757d;color:#fff;text-decoration:none;border-radius:8px;font-size:16px;font-weight:600;transition:all .3s ease}.results-link .btn-secondary:hover{background:#5a6268;transform:translateY(-2px);box-shadow:0 4px 8px #00000026}@media (max-width: 768px){.voting-closed-container{margin:20px;padding:20px}.voting-closed-icon{font-size:60px}.voting-closed-container h2{font-size:22px}.voting-closed-message{padding:20px}.voting-closed-message p{font-size:16px}.voting-closed-info p{font-size:14px}}.voting-closed-container{animation:fadeIn .5s ease-in}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.captcha-container{display:flex;justify-content:center;align-items:center;margin:25px 0;padding:15px;background:#f9fafb;border-radius:8px;border:1px solid #e5e7eb;min-height:80px}#captcha-widget{display:flex;justify-content:center;align-items:center}.captcha-container:empty:after{content:"Cargando verificación...";color:#6b7280;font-size:14px}@media (max-width: 600px){.captcha-container{margin:20px 0;padding:12px}}.turnstile-container{display:flex;justify-content:center;align-items:center;padding:15px 0;margin:20px 0}.cf-turnstile{margin:0 auto;transform-origin:center center}@media (max-width: 768px){.turnstile-container{padding:12px 0}.cf-turnstile{transform:scale(.9)}}@media (max-width: 480px){.turnstile-container{padding:10px 0}.cf-turnstile{transform:scale(.85)}}@media (max-width: 360px){.cf-turnstile{transform:scale(.75)}}.cf-turnstile iframe{border-radius:8px;box-shadow:0 2px 8px #0000001a}form:has(button:disabled) .turnstile-container{opacity:.6;pointer-events:none}.turnstile-help{text-align:center;font-size:.875rem;color:#666;margin-top:8px;font-style:italic}.turnstile-success{text-align:center;color:#059669;font-size:.875rem;margin-top:8px;display:flex;align-items:center;justify-content:center;gap:5px}.turnstile-success:before{content:"✓";font-weight:700;font-size:1rem}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.turnstile-container{animation:fadeIn .3s ease-out}.cf-turnstile:focus-within{outline:2px solid #3b82f6;outline-offset:4px;border-radius:8px}@media (prefers-color-scheme: dark){.cf-turnstile iframe{box-shadow:0 2px 8px #ffffff1a}}.dashboard-container{min-height:100vh;background:linear-gradient(135deg,#1e3c72,#2a5298);padding:30px 20px;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;color:#fff}.dashboard-container>h1,.dashboard-container>h2,.dashboard-container>h3,.dashboard-container>p{color:#fff!important}.dashboard-header{background:#fff!important;border-radius:15px;padding:30px;margin-bottom:30px;box-shadow:0 10px 30px #0003;text-align:center}.dashboard-header h1{color:#1e3c72!important;margin:0 0 10px;font-size:2rem}.dashboard-header p{color:#666!important;margin:5px 0;font-size:1.1rem}.last-update{color:#999!important;font-size:.9rem!important;margin-top:15px!important}.error-banner{background:#f44!important;color:#fff!important;padding:15px;border-radius:10px;margin-bottom:20px;text-align:center;font-weight:600}.summary-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:20px;margin-bottom:30px}.summary-card{background:#fff!important;border-radius:15px;padding:25px;box-shadow:0 5px 20px #00000026;text-align:center}.summary-card.warning{border-left:5px solid #ff9800;background:#fff!important}.summary-card h3{color:#1e3c72!important;font-size:1rem;margin:0 0 15px;font-weight:600}.big-number{color:#1e3c72!important;font-size:3rem;font-weight:700;margin:0}.results-section{background:#fff!important;border-radius:15px;padding:30px;margin-bottom:30px;box-shadow:0 5px 20px #00000026}.results-section h2{color:#1e3c72!important;margin:0 0 25px;font-size:1.5rem;text-align:center}.results-table{overflow-x:auto}.results-table table{width:100%;border-collapse:collapse;background:#fff!important}.results-table thead{background:#f5f5f5!important}.results-table th{padding:15px 10px;text-align:left;color:#1e3c72!important;font-weight:600;border-bottom:2px solid #ddd}.results-table td{padding:15px 10px;border-bottom:1px solid #eee;color:#333!important}.results-table tr.first-place{background:#fff9e6!important;font-weight:600}.position{font-size:1.5rem;text-align:center;width:60px;color:#333!important}.candidate-name{color:#1e3c72!important;font-weight:600}.murga-name{color:#2a5298!important;font-size:.9rem}.votes{color:#1e3c72!important;font-weight:700;text-align:center}.percentage{color:#2a5298!important;font-weight:700;text-align:center}.bar-cell{width:200px}.progress-bar{width:100%;height:25px;background:#e0e0e0;border-radius:12px;overflow:hidden}.progress-fill{height:100%;background:linear-gradient(90deg,#1e3c72,#2a5298);border-radius:12px;transition:width .5s ease}.candidate-analysis-section{background:#fff!important;border-radius:15px;padding:30px;margin-bottom:30px;box-shadow:0 5px 20px #00000026}.candidate-analysis-section h2{color:#1e3c72!important;margin:0 0 10px;font-size:1.5rem;text-align:center}.section-subtitle{color:#666!important;text-align:center;margin-bottom:25px;font-size:.95rem}.candidate-analysis-table{overflow-x:auto}.candidate-analysis-table table{width:100%;border-collapse:collapse;background:#fff!important}.candidate-analysis-table th{padding:12px 8px;text-align:left;color:#1e3c72!important;font-weight:600;border-bottom:2px solid #ddd;background:#f5f5f5!important;font-size:.9rem}.candidate-analysis-table td{padding:12px 8px;border-bottom:1px solid #eee;font-size:.9rem;color:#333!important}.candidate-row-fraud{background:#ffebee!important}.candidate-row-suspicious{background:#fff3e0!important}.candidate-row-review{background:#fffde7!important}.candidate-row-normal{background:#fff!important}.candidate-name-cell{color:#333!important}.candidate-name-cell strong{color:#1e3c72!important;font-size:1rem}.murga-small{color:#666!important;font-size:.85rem}.total-votes-cell{font-weight:700;color:#1e3c72!important;text-align:center}.three-votes-cell{font-weight:700;color:#d32f2f!important;text-align:center}.percent-cell{text-align:center;color:#d32f2f!important}.chart-cell{width:150px}.mini-chart{width:100%;height:20px;background:#e0e0e0;border-radius:10px;overflow:hidden}.mini-bar{height:100%;border-radius:10px;transition:width .3s ease}.mini-bar-normal{background:#4caf50}.mini-bar-review{background:#ff9800}.mini-bar-suspicious{background:#ff5722}.mini-bar-fraud{background:#d32f2f}.status-cell-candidate{text-align:center}.badge-candidate{display:inline-block;padding:5px 12px;border-radius:15px;font-size:.85rem;font-weight:600}.badge-normal{background:#e8f5e9!important;color:#2e7d32!important}.badge-review{background:#fff3e0!important;color:#e65100!important}.badge-suspicious{background:#ffebee!important;color:#c62828!important}.badge-fraud{background:#ffcdd2!important;color:#b71c1c!important}.candidate-interpretation{margin-top:30px;padding:20px;background:#f9f9f9!important;border-radius:10px;border-left:4px solid #1e3c72}.candidate-interpretation h3{color:#1e3c72!important;margin:0 0 15px}.candidate-interpretation ul{margin:10px 0;padding-left:20px}.candidate-interpretation li{margin:8px 0;color:#333!important;line-height:1.6}.warning-text{color:#d32f2f!important;font-weight:600;margin-top:15px;padding:15px;background:#ffebee!important;border-radius:8px}.yellow-alert-indicator{background:#fff!important;border-radius:15px;padding:30px;margin-bottom:30px;box-shadow:0 5px 20px #00000026}.yellow-alert-indicator h2{color:#1e3c72!important;margin:0 0 25px;text-align:center;font-size:1.5rem}.alert-stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:20px;margin-bottom:30px}.alert-stat-box{background:#f5f5f5!important;border-radius:10px;padding:20px;text-align:center;border-left:4px solid #999}.alert-stat-box.success{border-left-color:#4caf50;background:#f1f8f4!important}.alert-stat-box.warning{border-left-color:#ff9800;background:#fff8f0!important}.alert-stat-box.danger{border-left-color:#f44336;background:#ffebee!important}.alert-stat-box h3{color:#1e3c72!important;font-size:.9rem;margin:0 0 15px;font-weight:600}.stat-big{font-size:2.5rem;font-weight:700;color:#1e3c72!important;margin:10px 0}.stat-small{color:#666!important;font-size:.85rem}.percentage-bar-container{margin-top:30px}.bar-label{color:#1e3c72!important;font-weight:600;margin-bottom:10px;text-align:center}.percentage-bar-outer{width:100%;height:40px;background:#e0e0e0;border-radius:20px;overflow:hidden;position:relative}.percentage-bar-fill{height:100%;background:linear-gradient(90deg,#ff9800,#ff5722);border-radius:20px;transition:width .5s ease;display:flex;align-items:center;justify-content:center}.bar-text{color:#fff!important;font-weight:700;font-size:1.2rem}.three-votes-section{background:#fff!important;border-radius:15px;padding:30px;margin-bottom:30px;box-shadow:0 5px 20px #00000026}.three-votes-section h2{color:#1e3c72!important;margin:0 0 10px;font-size:1.5rem;text-align:center}.warning-inline{color:#ff9800!important;font-weight:600}.three-votes-table{overflow-x:auto;margin-top:20px}.three-votes-table table{width:100%;border-collapse:collapse;background:#fff!important}.three-votes-table th{padding:12px 8px;text-align:left;color:#1e3c72!important;font-weight:600;border-bottom:2px solid #ddd;background:#f5f5f5!important;font-size:.9rem}.three-votes-table td{padding:12px 8px;border-bottom:1px solid #eee;font-size:.9rem;color:#333!important}.row-normal{background:#fff!important}.row-review{background:#fffde7!important}.row-suspicious{background:#ffebee!important}.fingerprint-cell code{background:#f5f5f5;padding:4px 8px;border-radius:5px;font-size:.85rem;color:#333!important}.candidates-cell{color:#333!important}.vote-item{margin:3px 0;font-size:.85rem;color:#333!important}.timing-cell{text-align:center;color:#1e3c72!important;font-weight:600}.time-span{color:#666!important;font-size:.8rem}.status-cell{text-align:center}.badge{display:inline-block;padding:5px 12px;border-radius:15px;font-size:.85rem;font-weight:600}.details-cell{font-size:.85rem}.reason-list{margin:0;padding-left:20px;color:#666!important}.reason-list li{margin:4px 0;color:#666!important}.info-message{text-align:center;color:#2196f3!important;font-size:.9rem;margin-top:20px;padding:15px;background:#e3f2fd!important;border-radius:8px}.interpretation-section{background:#fff!important;border-radius:15px;padding:30px;margin-bottom:30px;box-shadow:0 5px 20px #00000026}.interpretation-section h2{color:#1e3c72!important;margin:0 0 20px;font-size:1.5rem;text-align:center}.interpretation-box{padding:20px;background:#f9f9f9!important;border-radius:10px;border-left:4px solid #1e3c72}.interpretation-box h3{color:#1e3c72!important;margin:0 0 15px;font-size:1.1rem}.interpretation-box p{color:#333!important;line-height:1.6;margin:10px 0}.interpretation-box ul{margin:10px 0;padding-left:20px}.interpretation-box li{margin:8px 0;color:#333!important;line-height:1.6}.interpretation-box ul ul{margin-top:5px}.interpretation-box ul ul li{color:#333!important}.loading{text-align:center;padding:50px;color:#fff!important;font-size:1.2rem}@media (max-width: 768px){.dashboard-container{padding:15px 10px}.dashboard-header h1{font-size:1.5rem}.summary-cards{grid-template-columns:1fr}.big-number{font-size:2.5rem}.results-table,.candidate-analysis-table,.three-votes-table{font-size:.85rem}.alert-stats-grid{grid-template-columns:1fr}.stat-big{font-size:2rem}}
