:root{--brand-burgundy: #6f000e;--brand-yellow: #ffb81c;--white: #ffffff;--bg-primary: #f8fafc;--bg-secondary: #f1f5f9;--bg-card: #ffffff;--bg-card-hover: #f1f5f9;--bg-input: #ffffff;--text-primary: #1e293b;--text-secondary: #64748b;--text-muted: #94a3b8;--accent: var(--brand-burgundy);--accent-light: #9a1020;--accent-glow: rgba(111, 0, 14, .15);--border: #e2e8f0;--border-light: #cbd5e1;--success: #10b981;--warning: var(--brand-yellow);--error: #ef4444;--accent-yellow: var(--brand-yellow);--radius: 12px;--radius-sm: 8px;--radius-lg: 16px;--shadow: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -2px rgba(0, 0, 0, .1);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -4px rgba(0, 0, 0, .1);--transition: all .3s cubic-bezier(.4,0,.2,1);--font: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif}*{margin:0;padding:0;box-sizing:border-box}html,body,#root{height:100%;width:100%}body{font-family:var(--font);background:var(--bg-primary);color:var(--text-primary);line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--bg-secondary)}::-webkit-scrollbar-thumb{background:var(--border-light);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.login-container{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;background:radial-gradient(ellipse at center,#ffffff 0%,var(--bg-secondary) 100%);padding:2rem;position:relative;overflow:hidden}.login-container:before{content:"";position:absolute;width:400px;height:400px;background:radial-gradient(circle,var(--accent-glow),transparent 70%);border-radius:50%;top:15%;left:50%;transform:translate(-50%);pointer-events:none;animation:pulse-glow 4s ease-in-out infinite}@keyframes pulse-glow{0%,to{opacity:.5;transform:translate(-50%) scale(1)}50%{opacity:.8;transform:translate(-50%) scale(1.1)}}.login-logo{width:180px;height:180px;border-radius:50%;object-fit:contain;margin-bottom:.5rem;position:relative;z-index:1;filter:drop-shadow(0 4px 12px rgba(0,0,0,.1))}.login-title{font-size:4.5rem;font-weight:900;letter-spacing:.1em;color:var(--brand-burgundy);text-shadow:0 2px 10px rgba(111,0,14,.1);position:relative;z-index:1;text-align:center;margin-bottom:-.5rem;line-height:1}.login-subtitle{font-size:1.1rem;font-weight:600;color:var(--text-secondary);margin-bottom:2rem;letter-spacing:.05em;text-transform:uppercase;position:relative;z-index:1}.login-input-wrapper{position:relative;z-index:1;width:100%;max-width:320px}.login-input{width:100%;padding:14px 20px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-primary);font-size:1rem;font-family:var(--font);text-align:center;letter-spacing:.2em;transition:var(--transition);outline:none}.login-input:focus{border-color:var(--accent-light);box-shadow:0 0 0 3px var(--accent-glow)}.login-input::placeholder{color:var(--text-muted);letter-spacing:.05em}.login-error{color:var(--error);font-size:.85rem;margin-top:.75rem;text-align:center;position:relative;z-index:1;animation:shake .4s ease-in-out}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-6px)}75%{transform:translate(6px)}}.login-btn{width:100%;max-width:320px;padding:14px;margin-top:1rem;background:linear-gradient(135deg,var(--accent),var(--accent-light));border:none;border-radius:var(--radius);color:#fff;font-size:1rem;font-weight:600;font-family:var(--font);cursor:pointer;transition:var(--transition);position:relative;z-index:1;letter-spacing:.05em}.login-btn:hover{transform:translateY(-2px);box-shadow:0 6px 20px var(--accent-glow)}.login-btn:active{transform:translateY(0)}.logout-btn{position:fixed;top:12px;right:12px;background:var(--bg-card);border:1px solid var(--border);color:var(--text-secondary);padding:6px 14px;border-radius:var(--radius-sm);font-size:.75rem;font-family:var(--font);cursor:pointer;z-index:1000;transition:var(--transition)}.logout-btn:hover{background:var(--accent);color:#fff;border-color:var(--accent)}.dashboard{min-height:100vh;padding:1rem;max-width:900px;margin:0 auto}.dashboard-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1.5rem;flex-wrap:wrap;gap:1rem}.dashboard-header-left h1{font-size:1.1rem;font-weight:700;color:var(--text-primary);text-transform:uppercase;letter-spacing:.05em}.dashboard-header-left h2{font-size:.9rem;font-weight:400;color:var(--text-secondary)}.dashboard-header-right{display:flex;align-items:center;gap:.5rem}.dashboard-header-right .party-name{font-size:1rem;font-weight:700;color:var(--text-primary)}.dashboard-header-right .party-logo{width:80px;height:80px;border-radius:50%;object-fit:contain}.progress-section{background:var(--bg-card);border-radius:var(--radius);padding:1rem 1.25rem;margin-bottom:1.5rem;border:1px solid var(--border)}.progress-label{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem;font-size:.85rem}.progress-label span:first-child{color:var(--text-secondary)}.progress-label .progress-pct{font-weight:700;color:var(--accent-light);font-size:1.2rem}.progress-bar-bg{width:100%;height:10px;background:var(--bg-input);border-radius:5px;overflow:hidden}.progress-bar-fill{height:100%;background:linear-gradient(90deg,var(--accent),var(--accent-light),#ff4060);border-radius:5px;transition:width 1.5s cubic-bezier(.4,0,.2,1)}.tabs{display:flex;gap:0;margin-bottom:1.5rem;background:var(--bg-card);border-radius:var(--radius);overflow:hidden;border:1px solid var(--border)}.tab-btn{flex:1;padding:12px;font-size:.95rem;font-weight:600;font-family:var(--font);background:transparent;color:var(--text-muted);border:none;cursor:pointer;transition:var(--transition);position:relative}.tab-btn.active{color:var(--text-primary);background:var(--bg-secondary)}.tab-btn.active:after{content:"";position:absolute;bottom:0;left:10%;width:80%;height:3px;background:linear-gradient(90deg,var(--accent),var(--accent-light));border-radius:3px 3px 0 0}.winner-section{display:flex;gap:1.5rem;margin-bottom:1.5rem;flex-wrap:wrap}.winner-card{flex:1;min-width:200px;display:flex;flex-direction:column;align-items:center;background:var(--bg-card);border-radius:var(--radius);padding:1.5rem;border:1px solid var(--border);transition:var(--transition)}.winner-photo{width:180px;height:180px;border-radius:50%;object-fit:cover;border:4px solid var(--accent);margin-bottom:1rem;transition:var(--transition);box-shadow:0 0 30px var(--accent-glow)}.winner-label-top{font-size:.85rem;font-weight:800;text-transform:uppercase;color:var(--text-secondary);letter-spacing:.1em;margin-bottom:.2rem}.winner-label-bottom{font-size:1.25rem;font-weight:900;text-transform:uppercase;color:var(--brand-burgundy);letter-spacing:.05em;margin-bottom:1.25rem;text-shadow:0 2px 4px rgba(0,0,0,.1)}.winner-name{font-size:1.2rem;font-weight:800;text-align:center;margin-bottom:.25rem;color:var(--text-primary)}.winner-party{font-size:.9rem;color:var(--text-secondary);font-weight:600}.section-title{width:100%;font-size:1.1rem;font-weight:700;margin-bottom:1.5rem;color:var(--text-primary);text-align:center;text-transform:uppercase;letter-spacing:.05em;padding-bottom:.75rem;border-bottom:2px solid var(--accent-glow)}.chart-container{flex:1;min-width:250px;background:var(--bg-card);border-radius:var(--radius);padding:1.25rem;border:1px solid var(--border);display:flex;align-items:center;justify-content:center}.bar-chart-section{background:var(--bg-card);border-radius:var(--radius);padding:1.25rem;border:1px solid var(--border);margin-bottom:1.5rem}.bar-item{display:flex;align-items:center;gap:.75rem;margin-bottom:.6rem;transition:var(--transition)}.bar-party-name{min-width:90px;font-size:.8rem;font-weight:600;text-align:right;color:var(--text-secondary)}.bar-track{flex:1;height:22px;background:var(--bg-input);border-radius:4px;overflow:hidden;position:relative}.bar-fill{height:100%;border-radius:4px;transition:width 1.2s cubic-bezier(.4,0,.2,1);min-width:2px}.bar-votes{min-width:55px;font-size:.8rem;font-weight:700;color:var(--text-primary);text-align:right}.seats-section{display:flex;gap:1.5rem;margin-bottom:1.5rem;flex-wrap:wrap}.seats-grid{flex:1;min-width:200px;background:var(--bg-card);border-radius:var(--radius);padding:1.25rem;border:1px solid var(--border)}.seat-item{display:flex;align-items:center;gap:.75rem;padding:.5rem 0;border-bottom:1px solid var(--border)}.seat-item:last-child{border:none}.seat-silhouette{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.2rem;color:#fff;flex-shrink:0}.seat-info{flex:1;min-width:0}.seat-name{font-size:.85rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--text-primary)}.seat-party{font-size:.75rem;color:var(--text-secondary);font-weight:700;text-transform:uppercase;letter-spacing:.02em}.recinto-section{margin-top:1.5rem;background:var(--bg-card);border-radius:var(--radius);padding:1.25rem;border:1px solid var(--border)}.recinto-select{width:100%;padding:10px 14px;background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);font-size:.9rem;font-family:var(--font);outline:none;cursor:pointer;transition:var(--transition)}.recinto-select:focus{border-color:var(--accent-light)}.recinto-divider{border:none;border-top:1px solid var(--border-light);margin:1.5rem 0}.recinto-section-title{font-size:1rem;font-weight:700;margin:1rem 0 .75rem;color:var(--text-primary)}.operator-panel{min-height:100vh;padding:1rem;max-width:600px;margin:0 auto}.op-header{text-align:center;margin-bottom:1.5rem}.op-header h1{font-size:1rem;font-weight:700;color:var(--text-primary);text-transform:uppercase}.op-header h2{font-size:.85rem;color:var(--text-secondary);font-weight:400}.op-mesa-select{width:100%;padding:12px 16px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-primary);font-size:.95rem;font-family:var(--font);outline:none;cursor:pointer;margin-bottom:1rem;transition:var(--transition)}.op-mesa-select:focus{border-color:var(--accent-light);box-shadow:0 0 0 3px var(--accent-glow)}.op-mesa-option-done{color:var(--success)}.form-section{background:var(--bg-card);border-radius:var(--radius);padding:1.25rem;border:1px solid var(--border);margin-bottom:1rem}.form-title{font-size:1rem;font-weight:700;margin-bottom:1rem;text-align:center;color:var(--text-primary)}.vote-row{display:flex;align-items:center;gap:.75rem;margin-bottom:.5rem;padding:.4rem 0}.vote-color-dot{width:12px;height:12px;border-radius:50%;flex-shrink:0}.vote-party-label{flex:1;font-size:.85rem;font-weight:500;color:var(--text-secondary)}.vote-input{width:80px;padding:8px 10px;background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);font-size:.9rem;font-family:var(--font);text-align:center;outline:none;transition:var(--transition)}.vote-input:focus{border-color:var(--accent-light);box-shadow:0 0 0 2px var(--accent-glow)}.vote-divider{border:none;border-top:1px dashed var(--border);margin:.5rem 0}.image-upload-section{background:var(--bg-card);border-radius:var(--radius);padding:1.25rem;border:1px solid var(--border);margin-bottom:1rem;text-align:center}.image-upload-preview{width:100%;max-height:200px;object-fit:contain;border-radius:var(--radius-sm);margin-bottom:.75rem}.image-upload-btns{display:flex;gap:.5rem;justify-content:center;flex-wrap:wrap}.btn{padding:10px 20px;border-radius:var(--radius-sm);border:none;font-family:var(--font);font-size:.85rem;font-weight:600;cursor:pointer;transition:var(--transition)}.btn-primary{background:linear-gradient(135deg,var(--accent),var(--accent-light));color:#fff}.btn-primary:hover{transform:translateY(-1px);box-shadow:0 4px 16px var(--accent-glow)}.btn-primary:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-secondary{background:var(--bg-input);color:var(--text-secondary);border:1px solid var(--border)}.btn-secondary:hover{background:var(--border);color:var(--text-primary)}.btn-success{background:linear-gradient(135deg,#00802b,var(--success));color:#fff}.btn-success:hover{transform:translateY(-1px);box-shadow:0 4px 16px #00c8534d}.btn-block{width:100%;padding:14px;font-size:1rem}.form-msg{text-align:center;padding:.75rem;border-radius:var(--radius-sm);margin-top:.5rem;font-size:.85rem;font-weight:500}.form-msg.success{background:#00c8531a;color:var(--success)}.form-msg.error{background:#ff3d001a;color:var(--error)}.verifier-panel{min-height:100vh;padding:1rem;max-width:1200px;margin:0 auto}.verifier-header h1{font-size:1.1rem;font-weight:700;text-align:center;margin-bottom:1rem;text-transform:uppercase}.review-queue{display:flex;gap:.5rem;overflow-x:auto;padding:.75rem 0;margin-bottom:1rem;scrollbar-width:thin}.review-card{flex-shrink:0;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);padding:.6rem .9rem;cursor:pointer;transition:var(--transition);min-width:120px;text-align:center;animation:slideIn .5s cubic-bezier(.4,0,.2,1)}@keyframes slideIn{0%{opacity:0;transform:translate(60px)}to{opacity:1;transform:translate(0)}}.review-card:hover{border-color:var(--accent-light);background:var(--bg-card-hover)}.review-card.active{border-color:var(--accent-light);box-shadow:0 0 0 2px var(--accent-glow)}.review-card-mesa{font-size:.8rem;font-weight:700;color:var(--text-primary)}.review-card-recinto{font-size:.65rem;color:var(--text-muted)}.review-card-time{font-size:.6rem;color:var(--text-muted);margin-top:2px}.verifier-search{display:flex;gap:.5rem;margin-bottom:1rem;flex-wrap:wrap}.verifier-search select,.verifier-search input{flex:1;min-width:150px;padding:10px 14px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);font-size:.9rem;font-family:var(--font);outline:none;transition:var(--transition)}.verifier-search select:focus,.verifier-search input:focus{border-color:var(--accent-light)}.review-content{display:flex;flex-direction:column;gap:1.5rem;align-items:flex-start}@media(min-width:900px){.review-content{flex-direction:row;height:calc(100vh - 220px)}}.review-image-panel{width:100%;background:var(--bg-card);border-radius:var(--radius);padding:1rem;border:1px solid var(--border);display:flex;flex-direction:column;position:sticky;top:1rem}@media(min-width:900px){.review-image-panel{flex:1.2;height:100%;margin-bottom:0}}.review-image{width:100%;height:100%;max-height:60vh;object-fit:contain;border-radius:var(--radius-sm);background:var(--bg-secondary)}@media(min-width:900px){.review-image{max-height:calc(100vh - 320px)}}.review-image-placeholder{width:100%;min-height:300px;display:flex;align-items:center;justify-content:center;color:var(--text-muted);font-size:.9rem;background:var(--bg-input);border-radius:var(--radius-sm)}.review-form-panel{width:100%;display:flex;flex-direction:column;gap:1rem}@media(min-width:900px){.review-form-panel{flex:1;height:100%;overflow-y:auto;padding-right:8px;scrollbar-width:thin}}.fade-in{animation:fadeIn .5s ease-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media(max-width:640px){.login-title{font-size:2.5rem}.winner-section,.seats-section{flex-direction:column}.dashboard{padding:.75rem}.review-content{flex-direction:column}}@media(min-width:768px){.dashboard{padding:1.5rem 2rem}.operator-panel{padding:1.5rem}}.spinner{width:36px;height:36px;border:3px solid var(--border);border-top-color:var(--accent-light);border-radius:50%;animation:spin .8s linear infinite;margin:2rem auto}@keyframes spin{to{transform:rotate(360deg)}}.no-data-msg{text-align:center;color:var(--text-muted);padding:2rem;font-size:.9rem}
