.header{background-color:#fff;box-shadow:0 1px 3px #0000001a;position:sticky;top:0;z-index:100}.header-content{justify-content:space-between;padding:var(--spacing-md) 0}.header-content,.logo{align-items:center;display:flex}.logo{color:var(--text-primary);font-size:1.5rem;font-weight:700;text-decoration:none}.logo-icon{font-size:1.75rem;margin-right:var(--spacing-xs)}.logo-text{-webkit-text-fill-color:#0000;background:linear-gradient(90deg,var(--primary) 0,var(--secondary) 100%);-webkit-background-clip:text;background-clip:text}.nav-list{display:flex;gap:var(--spacing-lg);list-style:none}.nav-link{color:var(--text-secondary);font-weight:500;padding:var(--spacing-xs) 0;position:relative;text-decoration:none}.nav-link.active,.nav-link:hover{color:var(--primary)}.nav-link.active:after{background-color:var(--primary);border-radius:var(--radius-full);bottom:-2px;content:"";height:2px;left:0;position:absolute;width:100%}.footer{background-color:var(--fg-light);margin-top:var(--spacing-2xl);padding:var(--spacing-xl) 0}.footer-content{flex-wrap:wrap;gap:var(--spacing-lg);justify-content:space-between}.footer-content,.footer-logo{align-items:center;display:flex}.footer-logo{font-size:1.25rem;font-weight:700}.footer-info{color:var(--text-secondary);font-size:.875rem}.copyright{font-size:.75rem;margin-top:var(--spacing-xs)}.footer-links{display:flex;gap:var(--spacing-lg)}.footer-links a{color:var(--text-secondary);font-size:.875rem;text-decoration:none}.footer-links a:hover{color:var(--primary);text-decoration:underline}@media (max-width:768px){.header-content{flex-direction:column;padding:var(--spacing-sm) 0}.logo{margin-bottom:var(--spacing-sm)}.nav-list{gap:var(--spacing-md)}.footer-content{flex-direction:column;text-align:center}.footer-logo{justify-content:center}}.footer-link-button{background:none;border:none;color:var(--text-secondary);cursor:pointer;font-size:.875rem;padding:0;text-decoration:none}.footer-link-button:hover{color:var(--primary);text-decoration:underline}.env-badge{background-color:#f59e0b;border-radius:4px;color:#fff;font-size:.6rem;margin-left:8px;padding:2px 6px;vertical-align:middle}.page-header{justify-content:space-between;margin-bottom:var(--spacing-lg)}.header-title,.page-header{align-items:center;display:flex}.header-title{gap:var(--spacing-md)}.btn-back{background:none;border:none;border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;font-size:1.25rem;padding:var(--spacing-xs) var(--spacing-sm)}.btn-back:hover{background-color:var(--fg-light);color:var(--primary)}.loading-container{align-items:center;display:flex;flex-direction:column;justify-content:center;padding:var(--spacing-2xl) 0}.loader{animation:rotation 1s linear infinite;border:5px solid var(--fg-light);border-bottom-color:var(--primary);border-radius:50%;box-sizing:border-box;display:inline-block;height:48px;margin-bottom:var(--spacing-md);width:48px}@keyframes rotation{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.error-message{background-color:#fef2f2;border:1px solid var(--error);border-radius:var(--radius-md);color:var(--error);margin-bottom:var(--spacing-lg);padding:var(--spacing-md)}.error-actions{display:flex;gap:var(--spacing-md);margin-top:var(--spacing-md)}.success-message{background-color:#ecfdf5;border:1px solid var(--success);border-radius:var(--radius-md);color:var(--success);margin-bottom:var(--spacing-lg);padding:var(--spacing-md)}.empty-state,.not-found{padding:var(--spacing-2xl) 0;text-align:center}.empty-state{background-color:var(--fg-light);border-radius:var(--radius-md);margin:var(--spacing-lg) 0}.home-page{display:flex;flex-direction:column;gap:var(--spacing-2xl)}.hero{background:linear-gradient(135deg,#f9fafb,#eef2ff);border-radius:var(--radius-lg);margin-bottom:var(--spacing-xl);padding:var(--spacing-2xl) 0;text-align:center}.hero-content{margin:0 auto;max-width:800px}.hero h1{-webkit-text-fill-color:#0000;background:linear-gradient(90deg,var(--primary) 0,var(--secondary) 100%);-webkit-background-clip:text;background-clip:text;font-size:2.5rem;margin-bottom:var(--spacing-md)}.hero-subtitle{color:var(--text-secondary);font-size:1.25rem;margin-bottom:var(--spacing-lg)}.hero-actions{display:flex;gap:var(--spacing-md);justify-content:center}.section-title{text-align:center}.feature-grid,.section-title{margin-bottom:var(--spacing-xl)}.feature-grid{grid-gap:var(--spacing-lg);display:grid;gap:var(--spacing-lg);grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}.feature-card{background-color:#fff;border-radius:var(--radius-md);box-shadow:0 1px 3px #0000001a;padding:var(--spacing-lg);text-align:center;transition:transform .3s ease,box-shadow .3s ease}.feature-card:hover{box-shadow:0 4px 6px #0000001a;transform:translateY(-5px)}.feature-icon{font-size:2.5rem;margin-bottom:var(--spacing-md)}.feature-card h3{color:var(--primary);margin-bottom:var(--spacing-sm)}.cta{background-color:var(--fg-light);border-radius:var(--radius-lg);margin-top:var(--spacing-xl);padding:var(--spacing-xl);text-align:center}.elections-page{padding:var(--spacing-md) 0}.elections-grid{grid-gap:var(--spacing-lg);display:grid;gap:var(--spacing-lg);grid-template-columns:repeat(auto-fill,minmax(350px,1fr))}.election-card{background-color:#fff;border-radius:var(--radius-md);box-shadow:0 1px 3px #0000001a;overflow:hidden;transition:box-shadow .3s ease}.election-card:hover{box-shadow:0 4px 6px #0000001a}.election-card-header{align-items:center;border-bottom:1px solid var(--fg-light);display:flex;justify-content:space-between;padding:var(--spacing-md)}.election-title{font-size:1.25rem;margin:0}.election-status{border-radius:var(--radius-full);font-size:.75rem;font-weight:600;padding:var(--spacing-xs) var(--spacing-sm)}.status-active{background-color:#ecfdf5;color:var(--success)}.status-upcoming{background-color:#eef2ff;color:var(--primary)}.status-ended{background-color:#f3f4f6;color:var(--text-secondary)}.election-details{padding:var(--spacing-md)}.election-description{-webkit-line-clamp:2;-webkit-box-orient:vertical;color:var(--text-secondary);display:-webkit-box;margin-bottom:var(--spacing-md);overflow:hidden}.election-meta{display:flex;flex-wrap:wrap;gap:var(--spacing-md)}.meta-item{display:flex;font-size:.875rem;gap:var(--spacing-xs)}.meta-label{color:var(--text-secondary);font-weight:500}.meta-value{color:var(--text-primary);font-weight:600}.election-actions{border-top:1px solid var(--fg-light);display:flex;gap:var(--spacing-md);justify-content:space-between;padding:var(--spacing-md)}.election-detail-page{padding:var(--spacing-md) 0}.election-detail-content{grid-gap:var(--spacing-lg);display:grid;gap:var(--spacing-lg);grid-template-columns:1fr}@media (min-width:768px){.election-detail-content{grid-template-columns:2fr 1fr}}.election-info{margin-bottom:var(--spacing-lg)}.info-grid{grid-gap:var(--spacing-md);display:grid;gap:var(--spacing-md);grid-template-columns:repeat(auto-fill,minmax(200px,1fr));margin-top:var(--spacing-lg)}.info-item{display:flex;flex-direction:column;gap:var(--spacing-xs)}.info-label{color:var(--text-secondary);font-size:.875rem;font-weight:500}.info-value{font-weight:600}.candidates-list{grid-gap:var(--spacing-md);display:grid;gap:var(--spacing-md);grid-template-columns:repeat(auto-fill,minmax(200px,1fr));margin-top:var(--spacing-md)}.candidate-card{background-color:var(--fg-light);border-radius:var(--radius-md);padding:var(--spacing-md)}.candidate-name{font-weight:600;margin-bottom:var(--spacing-xs)}.candidate-description{color:var(--text-secondary);font-size:.875rem}.election-actions-container{display:flex;gap:var(--spacing-md);justify-content:center;margin-top:var(--spacing-xl)}.btn-lg{font-size:1.125rem;padding:var(--spacing-md) var(--spacing-xl)}.create-election-page{padding:var(--spacing-md) 0}.steps{margin-bottom:var(--spacing-xl);margin-left:auto;margin-right:auto;max-width:600px}.step,.steps{align-items:center;display:flex}.step{flex:1 1;gap:var(--spacing-sm)}.step-number{align-items:center;background-color:var(--fg-light);border-radius:50%;color:var(--text-secondary);display:flex;font-weight:600;height:32px;justify-content:center;width:32px}.step.active .step-number{background-color:var(--primary);color:#fff}.step-text{color:var(--text-secondary);font-weight:500}.step.active .step-text{color:var(--primary);font-weight:600}.step-connector{background-color:var(--fg-light);flex:1 1;height:2px;margin:0 var(--spacing-sm)}.candidates-form,.election-form{margin:0 auto;max-width:800px}.form-row{grid-gap:var(--spacing-md);display:grid;gap:var(--spacing-md);grid-template-columns:1fr}@media (min-width:768px){.form-row{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}}.form-label.required:after{color:var(--error);content:"*";margin-left:4px}.election-help-text{background-color:var(--fg-light);border-radius:var(--radius-md);font-size:.875rem;margin:var(--spacing-lg) 0;padding:var(--spacing-md)}.election-help-text ul{margin-top:var(--spacing-xs);padding-left:var(--spacing-lg)}.form-actions{display:flex;justify-content:space-between;margin-top:var(--spacing-xl)}.candidate-form-group{background-color:var(--fg-light);border-radius:var(--radius-md);margin-bottom:var(--spacing-md);padding:var(--spacing-md)}.candidate-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:var(--spacing-sm)}.candidate-number{font-weight:600}.btn-remove{background:none;border:none;color:var(--error);cursor:pointer;font-size:.875rem}.btn-remove:hover{text-decoration:underline}.add-candidate-container{display:flex;justify-content:center;margin:var(--spacing-lg) 0}.btn-add{align-items:center;display:flex;gap:var(--spacing-xs)}.form-instruction{color:var(--text-secondary);margin-bottom:var(--spacing-lg)}.vote-page{padding:var(--spacing-md) 0}.vote-instructions{margin-bottom:var(--spacing-lg)}.security-info{background-color:#eef2ff;border-left:3px solid var(--primary);border-radius:var(--radius-sm);margin-top:var(--spacing-md);padding:var(--spacing-sm) var(--spacing-md)}.multi-choice-candidates,.ranked-choice-candidates,.single-choice-candidates{display:flex;flex-direction:column;gap:var(--spacing-md);margin-bottom:var(--spacing-lg)}.candidate-option{border:1px solid var(--text-disabled);border-radius:var(--radius-md);cursor:pointer;display:flex;padding:var(--spacing-md);transition:all .2s ease}.candidate-option:hover{background-color:#f9fafb;border-color:var(--primary)}.candidate-option.selected{background-color:#eef2ff;border-color:var(--primary)}.candidate-select{align-items:center;display:flex;margin-right:var(--spacing-md)}.checkbox,.radio-button{align-items:center;border:2px solid var(--text-disabled);border-radius:50%;display:flex;height:20px;justify-content:center;width:20px}.checkbox{border-radius:var(--radius-sm)}.selected .checkbox,.selected .radio-button{border-color:var(--primary)}.checkbox-inner,.radio-inner{background-color:initial;border-radius:50%;height:10px;width:10px}.selected .checkbox-inner,.selected .radio-inner{background-color:var(--primary)}.selected .checkbox-inner{border-radius:2px}.selection-count{color:var(--text-secondary);font-size:.875rem;margin-top:var(--spacing-sm);text-align:right}.candidate-rank-option{align-items:center;border:1px solid var(--text-disabled);border-radius:var(--radius-md);display:flex;justify-content:space-between;padding:var(--spacing-md)}.rank-selector select{min-width:120px}.vote-actions{display:flex;justify-content:space-between;margin-top:var(--spacing-lg)}.vote-success{padding:var(--spacing-2xl) 0;text-align:center}.success-icon{color:var(--success);font-size:4rem;margin-bottom:var(--spacing-md)}.results-page{padding:var(--spacing-md) 0}.results-content{grid-gap:var(--spacing-lg);display:grid;gap:var(--spacing-lg);margin-bottom:var(--spacing-xl)}.results-meta{align-items:center;display:flex;flex-wrap:wrap;gap:var(--spacing-lg);justify-content:space-between}.results-chart{margin-top:var(--spacing-lg)}.result-bar{margin-bottom:var(--spacing-md)}.result-label{display:flex;justify-content:space-between;margin-bottom:var(--spacing-xs)}.bar-container{background-color:var(--fg-light);height:30px;overflow:hidden;position:relative}.bar-container,.bar-fill{border-radius:var(--radius-full)}.bar-fill{background:linear-gradient(90deg,var(--primary) 0,var(--secondary) 100%);height:100%;transition:width 1s ease-out}.percentage-label{color:var(--text-primary);font-size:.875rem;font-weight:600;position:absolute;right:var(--spacing-sm);top:50%;transform:translateY(-50%)}.total-votes{font-weight:600;margin-top:var(--spacing-md);text-align:right}.verification-header{align-items:center;cursor:pointer;display:flex;justify-content:space-between}.btn-toggle{background:none;border:none;color:var(--primary);cursor:pointer;font-size:.875rem}.proof-details{border-top:1px solid var(--fg-light);padding-top:var(--spacing-md)}.proof-data,.proof-details{margin-top:var(--spacing-md)}.proof-data{background-color:var(--fg-light);border-radius:var(--radius-md)}.proof-code,.proof-data{padding:var(--spacing-md)}.proof-code{background-color:var(--bg-dark);border-radius:var(--radius-sm);color:#fff;font-family:monospace;font-size:.75rem;margin-top:var(--spacing-sm);max-height:200px;overflow-y:auto;white-space:pre-wrap;word-break:break-all}.proof-simulated{color:var(--text-secondary);font-size:.875rem;font-style:italic;margin-top:var(--spacing-sm)}.results-actions{gap:var(--spacing-md)}.not-found-page,.results-actions{display:flex;justify-content:center}.not-found-page{align-items:center;height:70vh;text-align:center}.not-found-content h1{-webkit-text-fill-color:#0000;background:linear-gradient(90deg,var(--primary) 0,var(--secondary) 100%);-webkit-background-clip:text;background-clip:text;font-size:6rem;margin-bottom:0}.not-found-content p{color:var(--text-secondary);margin-bottom:var(--spacing-lg)}:root{--primary:#5a67d8;--primary-dark:#4c51bf;--secondary:#34d399;--secondary-dark:#10b981;--accent:#f59e0b;--accent-dark:#d97706;--error:#ef4444;--success:#10b981;--bg-light:#f9fafb;--fg-light:#f3f4f6;--bg-dark:#1f2937;--fg-dark:#111827;--text-primary:#111827;--text-secondary:#4b5563;--text-disabled:#9ca3af;--text-on-primary:#fff;--spacing-xs:0.25rem;--spacing-sm:0.5rem;--spacing-md:1rem;--spacing-lg:1.5rem;--spacing-xl:2rem;--spacing-2xl:3rem;--radius-sm:0.25rem;--radius-md:0.5rem;--radius-lg:1rem;--radius-full:9999px}*{box-sizing:border-box;margin:0;padding:0}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f9fafb;background-color:var(--bg-light);color:#111827;color:var(--text-primary);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;font-size:16px;line-height:1.5}.container{margin:0 auto;max-width:1200px;padding:0 1rem;padding:0 var(--spacing-md)}h1,h2,h3,h4,h5,h6{font-weight:600;line-height:1.2;margin-bottom:1rem;margin-bottom:var(--spacing-md)}h1{font-size:2.25rem}h2{font-size:1.875rem}h3{font-size:1.5rem}h4{font-size:1.25rem}p{margin-bottom:1rem;margin-bottom:var(--spacing-md)}a{color:#5a67d8;color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}.btn{border:none;border-radius:.5rem;border-radius:var(--radius-md);cursor:pointer;display:inline-block;font-size:1rem;font-weight:500;padding:.5rem 1.5rem;padding:var(--spacing-sm) var(--spacing-lg);transition:all .3s ease}.btn-primary{background-color:#5a67d8;background-color:var(--primary);color:#fff;color:var(--text-on-primary)}.btn-primary:hover{background-color:#4c51bf;background-color:var(--primary-dark);text-decoration:none}.btn-secondary{background-color:#34d399;background-color:var(--secondary);color:#fff;color:var(--text-on-primary)}.btn-secondary:hover{background-color:#10b981;background-color:var(--secondary-dark);text-decoration:none}.btn-accent{background-color:#f59e0b;background-color:var(--accent);color:#fff;color:var(--text-on-primary)}.btn-accent:hover{background-color:#d97706;background-color:var(--accent-dark);text-decoration:none}.btn-outline{background-color:initial;border:1px solid #5a67d8;border:1px solid var(--primary);color:#5a67d8;color:var(--primary)}.btn-outline:hover{background-color:#5a67d8;background-color:var(--primary);color:#fff;color:var(--text-on-primary);text-decoration:none}.form-group{margin-bottom:1.5rem;margin-bottom:var(--spacing-lg)}.form-label{display:block;font-weight:500;margin-bottom:.25rem;margin-bottom:var(--spacing-xs)}.form-input,.form-select,.form-textarea{border:1px solid #9ca3af;border:1px solid var(--text-disabled);border-radius:.5rem;border-radius:var(--radius-md);font-family:inherit;font-size:1rem;padding:.5rem 1rem;padding:var(--spacing-sm) var(--spacing-md);width:100%}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:#5a67d8;border-color:var(--primary);box-shadow:0 0 0 2px #5a67d81a;outline:none}.card{background-color:#fff;border-radius:.5rem;border-radius:var(--radius-md);box-shadow:0 1px 3px #0000001a;margin-bottom:1.5rem;margin-bottom:var(--spacing-lg);padding:1.5rem;padding:var(--spacing-lg)}.card-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:1rem;margin-bottom:var(--spacing-md)}.flex{display:flex}.flex-col{flex-direction:column}.justify-between{justify-content:space-between}.items-center{align-items:center}.gap-sm{gap:.5rem;gap:var(--spacing-sm)}.gap-md{gap:1rem;gap:var(--spacing-md)}.gap-lg{gap:1.5rem;gap:var(--spacing-lg)}.mb-sm{margin-bottom:.5rem;margin-bottom:var(--spacing-sm)}.mb-md{margin-bottom:1rem;margin-bottom:var(--spacing-md)}.mb-lg{margin-bottom:1.5rem;margin-bottom:var(--spacing-lg)}.mt-sm{margin-top:.5rem;margin-top:var(--spacing-sm)}.mt-md{margin-top:1rem;margin-top:var(--spacing-md)}.mt-lg{margin-top:1.5rem;margin-top:var(--spacing-lg)}.text-center{text-align:center}.text-lg{font-size:1.125rem}.text-sm{font-size:.875rem}.text-primary{color:#5a67d8;color:var(--primary)}.text-secondary{color:#4b5563;color:var(--text-secondary)}.text-success{color:#10b981;color:var(--success)}.text-error{color:#ef4444;color:var(--error)}.font-bold{font-weight:700}.font-semibold{font-weight:600}
/*# sourceMappingURL=main.645235f2.css.map*/