.election-card{border-radius:var(--radius-lg);background-color:var(--bg-surface);border:1px solid var(--border-default);min-height:11.375rem;padding:1.25rem;transition:all .15s}.election-card.open{border:1.5px solid var(--gold)}.election-card.voted,.election-card.upcoming,.election-card.closed{border:1px solid var(--border-default)}.election-card:hover{box-shadow:var(--shadow-tab)}.election-card-dates{color:var(--text-muted);font-family:var(--font-sans);font-size:.8125rem;line-height:1.1875rem}.election-card-dates-icon{width:.875rem;height:.875rem}.election-card-title{font-family:var(--font-serif);color:var(--text-primary);font-size:1.375rem;line-height:1.75rem}.election-card-meta{font-family:var(--font-sans);color:var(--text-secondary);font-size:.8125rem;line-height:1.1875rem}.election-card-action{font-family:var(--font-sans);color:var(--gold-ink);margin-top:.25rem;font-size:.9375rem;line-height:1.375rem}
.ballot-page-wrapper{padding-inline:1.5rem;max-width:1100px;padding-top:1.5rem;padding-bottom:5rem}.ballot-not-found-title{font-family:var(--font-serif);color:var(--text-primary);font-size:1.75rem;line-height:2.25rem}.ballot-not-found-desc{font-family:var(--font-sans);color:var(--text-secondary);margin-top:.5rem;font-size:.9375rem;line-height:1.375rem}@media (min-width:40rem){.ballot-page-wrapper{padding-top:2.5rem}}
.ballot-title{font-family:var(--font-serif);color:var(--text-primary);font-size:2rem;line-height:2.375rem}.ballot-subtitle{font-family:var(--font-sans);color:var(--text-secondary);font-size:.9375rem;line-height:1.5rem}.ballot-choose-grid{margin-top:2rem}.ballot-position-section{border-radius:var(--radius-md);transition:box-shadow .3s}.ballot-position-section.targeted{box-shadow:0 0 0 2px var(--gold);margin:-.75rem;padding:.75rem}.ballot-position-header{padding-bottom:.25rem}.ballot-position-title{font-family:var(--font-serif);color:var(--text-primary);font-size:1.5rem;line-height:1.875rem}.ballot-position-meta{font-family:var(--font-sans);color:var(--text-muted);font-size:.8125rem;line-height:1.1875rem}.ballot-sidebar-card{background-color:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius-xl);width:20rem;padding:1.5rem;top:1.5rem}.ballot-picks-title{font-family:var(--font-serif);color:var(--text-primary);font-size:1.375rem;line-height:1.75rem}.ballot-pick-row{border-top:1px solid var(--border-default);padding:.75rem 0}.ballot-pick-office{font-family:var(--font-sans);color:var(--text-muted);font-size:.8125rem;line-height:1.1875rem}.ballot-pick-name{font-family:var(--font-sans);color:var(--text-primary);font-size:.9375rem;line-height:1.375rem}.ballot-pick-name.empty{color:var(--text-muted)}.ballot-pick-mark{border-radius:var(--radius-sm);width:2rem;height:2rem}.ballot-pick-mark.chosen{background-color:var(--gold-tint);color:var(--gold)}.ballot-pick-mark.empty{border:1px dashed var(--border-default)}.ballot-sidebar-hint{font-family:var(--font-sans);color:var(--text-secondary);font-size:.8125rem;line-height:1.1875rem}.ballot-sidebar-info{color:var(--text-muted);font-family:var(--font-sans);font-size:.8125rem;line-height:1.1875rem}.ballot-sidebar-icon{width:1rem;height:1rem}.ballot-mobile-bar{background-color:var(--bg-surface);border-top:1px solid var(--border-default);height:4.5rem;padding-inline:1.25rem}.ballot-mobile-summary{font-family:var(--font-sans);color:var(--text-primary);font-size:.9375rem}.ballot-mobile-status{font-family:var(--font-sans);color:var(--text-muted);font-size:.75rem}.ballot-mobile-btn{padding-inline:1.5rem}.ballot-sidebar-history-btn{width:2rem;height:2rem;color:var(--text-secondary);border:1px solid var(--border-default);background-color:var(--bg-surface)}.ballot-sidebar-history-btn:hover:not(:disabled){background-color:var(--bg-sunken);color:var(--text-primary)}
.election-preview-page{max-width:75rem;padding:2.5rem 2rem}@media (max-width:768px){.election-preview-page{padding:1.5rem 1rem}}.election-preview-header{background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius-lg);padding:2rem}.election-preview-title{font-family:var(--font-serif);color:var(--text-primary);font-size:2.25rem;line-height:2.625rem}.election-preview-meta{color:var(--text-muted);font-family:var(--font-sans);font-size:.875rem;line-height:1.25rem}.election-preview-desc{font-family:var(--font-sans);color:var(--text-secondary);font-size:.9375rem;line-height:1.5rem}.election-preview-notice{background:var(--bg-sunken);border:1px solid var(--border-default);border-radius:var(--radius-md);font-family:var(--font-sans);color:var(--text-secondary);padding:.875rem 1rem;font-size:.875rem;line-height:1.25rem}.election-preview-section-title{font-family:var(--font-serif);color:var(--text-primary);font-size:1.5rem;line-height:1.875rem}.manifesto-modal-body{max-height:70dvh;overflow-y:auto}.manifesto-text{font-family:var(--font-sans);color:var(--text-primary);white-space:pre-wrap;font-size:.9375rem;line-height:1.625rem}
.election-results-page{max-width:75rem;padding:2.5rem 2rem}@media (max-width:768px){.election-results-page{padding:1.5rem 1rem}}.election-results-title{font-family:var(--font-serif);color:var(--text-primary);font-size:2.25rem;line-height:2.625rem}.election-results-subtitle{font-family:var(--font-sans);color:var(--text-secondary);font-size:.9375rem;line-height:1.375rem}.election-results-stat-card{background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius-md);padding:1.25rem 1.5rem}.election-stat-label{font-family:var(--font-sans);color:var(--text-muted);font-size:.8125rem;line-height:1.125rem}.election-stat-value{font-family:var(--font-serif);color:var(--text-primary);font-size:1.75rem;line-height:2.125rem}.election-position-card{background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius-lg);padding:1.5rem}.election-candidate-row{border-bottom:1px solid var(--border-default);padding:.75rem 0}.election-candidate-row:last-child{border-bottom:none}.election-vote-bar-track{background:var(--bg-sunken);border-radius:var(--radius-full);height:.5rem}.election-vote-bar-fill{background:var(--gold);border-radius:var(--radius-full);transition:width .3s}
.ballot-confirmation-wrap{padding-block:1.5rem 5rem;padding-inline:1.5rem}.ballot-success-container{max-width:35rem}.ballot-success-stamp{border-radius:var(--radius-full);border:2px dashed var(--gold);background-color:var(--gold-tint);width:7rem;height:7rem;color:var(--gold)}.ballot-success-thumb{width:3.75rem;height:3.75rem}.ballot-success-title{font-family:var(--font-serif);color:var(--text-primary);font-size:2.25rem;line-height:1.15}.ballot-success-desc{color:var(--text-secondary);font-size:1rem;line-height:1.5}.ballot-receipt-box{background-color:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius-md);padding-inline:1.5rem;padding-top:.625rem;padding-bottom:1rem}.ballot-receipt-row{padding-block:.875rem;font-size:.9375rem}.ballot-receipt-tip{color:var(--text-muted);padding-top:.375rem;font-size:.8125rem;line-height:1.25rem}
