@import"https://fonts.googleapis.com/css2?family=Roboto+Condensed:wght@700;900&display=swap";@import"https://fonts.googleapis.com/css2?family=Roboto+Condensed:wght@400;700;900&family=Oswald:wght@700&display=swap";@import"https://fonts.googleapis.com/css2?family=Roboto+Condensed:wght@400;700;900&display=swap";.nav-link,.nav-link:visited,.nav-link:focus,.nav-link:active{text-decoration:none;color:inherit}.logo-and-title{display:flex;align-items:center;gap:.5rem}.logo{height:50px;display:block}.site-title{margin:0;font-weight:700;font-size:4rem}.nav-links{display:flex;align-items:center;flex-grow:1;gap:2rem;margin-left:1rem;text-decoration:none}.nav-left{display:flex;gap:1rem;text-decoration:none}.nav-right{position:absolute;right:0;top:0;display:flex;gap:1rem;text-decoration:none}.nav-link{display:flex;align-items:center;height:100%;padding:0 1.85rem;font-size:3.6rem;font-weight:700;text-decoration:none}.nav-link:hover{background-color:#c9d655;color:#000;text-decoration:none}.candidate-manager{padding:2rem;max-width:1200px;margin:0 auto}.candidate-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.5rem}.empty-state{grid-column:1 / -1;text-align:center;padding:4rem 2rem;color:var(--text-secondary);font-size:1.1rem}.candidate-card{background:var(--bg-primary);border-radius:12px;border:3px solid var(--border-color);padding:1.5rem;transition:all .3s ease;box-shadow:var(--shadow-md)}.candidate-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}.candidate-card.editing{border-style:dashed}.candidate-image{width:100%;aspect-ratio:1;border-radius:8px;overflow:hidden;margin-bottom:1rem;background:var(--bg-secondary)}.candidate-img{width:100%;height:100%;object-fit:cover}.candidate-info{margin-bottom:1rem}.candidate-name{font-size:1.5rem;font-weight:700;margin:0 0 .5rem;color:var(--text-primary)}.candidate-party{font-size:1rem;color:var(--text-secondary);margin:0 0 .75rem}.candidate-color-palette{display:flex;gap:.25rem;flex-wrap:wrap;margin-top:.5rem}.color-swatch{width:28px;height:28px;border-radius:4px;border:2px solid rgba(0,0,0,.1);cursor:help;transition:transform .2s;position:relative}.color-swatch:hover{transform:scale(1.2);z-index:10}.color-swatch.main-color{border:2px solid #333;box-shadow:0 0 0 2px #fff,0 0 0 4px #333}.candidate-color{display:inline-block;padding:.25rem .75rem;border-radius:4px;color:#fff;font-size:.875rem;font-weight:600;text-shadow:0 1px 2px rgba(0,0,0,.3)}.candidate-actions{display:flex;gap:.5rem}.candidate-image-edit{position:relative;width:100%;aspect-ratio:1;border-radius:8px;overflow:hidden;margin-bottom:1rem}.candidate-image-edit .candidate-img{width:100%;height:100%;object-fit:cover}.upload-btn{position:absolute;bottom:0;left:0;right:0;background:#000000b3;color:#fff;padding:.75rem;text-align:center;cursor:pointer;transition:background .2s;font-size:.875rem;font-weight:600}.upload-btn:hover{background:#000000d9}.candidate-form{display:flex;flex-direction:column;gap:1.25rem}.form-input,.form-select{padding:.75rem;border:2px solid var(--border-color);border-radius:8px;font-size:1rem;transition:all .2s;background:var(--bg-primary);color:var(--text-primary)}[data-theme=dark] .form-input,[data-theme=dark] .form-select{background:#2a2a2a;border-color:#444;color:#e0e0e0}[data-theme=dark] .form-input::placeholder{color:#888}.form-input:focus,.form-select:focus{outline:none;border-color:#305fdd;box-shadow:0 0 0 3px #305fdd1a}[data-theme=dark] .form-input:focus,[data-theme=dark] .form-select:focus{border-color:#4a7aff;background:#333;box-shadow:0 0 0 3px #4a7aff26}.form-color-picker{width:100%;height:120px;border:2px solid var(--border-color);border-radius:8px;cursor:pointer;padding:8px;background:var(--bg-primary)}[data-theme=dark] .form-color-picker{background:#2a2a2a;border-color:#444}.color-picker-with-button{display:flex;gap:.75rem;align-items:center}.color-picker-with-button .form-color-picker{flex:1}.color-palette-editor{display:flex;flex-direction:column;gap:.75rem}.color-palette-preview{display:grid;grid-template-columns:repeat(8,1fr);gap:.5rem}.palette-color-input{width:100%;height:70px;border:2px solid var(--border-color);border-radius:6px;cursor:pointer;transition:transform .2s,border-color .2s;padding:6px}.palette-color-input:hover{transform:scale(1.05);border-color:#305fdd}.palette-color-input:nth-child(5){border:3px solid #333;box-shadow:0 0 0 2px #fff,0 0 0 5px #333}.form-help{margin:0;font-size:.75rem;color:var(--text-secondary);font-style:italic;line-height:1.4}.color-picker-group{display:grid;grid-template-columns:100px 1fr;gap:.75rem;align-items:center}[data-theme=dark] .color-picker-group .form-input{background:#2a2a2a;border-color:#444;color:#e0e0e0}.form-actions{display:flex;gap:.75rem;margin-top:.5rem;padding-top:1rem;border-top:1px solid var(--border-color)}[data-theme=dark] .form-actions{border-top-color:#333}.btn-icon{padding:.5rem;width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:var(--bg-secondary);border-radius:50%;font-size:1.2rem;color:var(--text-primary);transition:all .2s}[data-theme=dark] .btn-icon{background:#333;color:#e0e0e0}[data-theme=dark] .btn-icon:hover{background:#4a7aff;color:#fff}.modal-overlay{position:fixed;inset:0;background:#000000b3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:2000;padding:2rem}.modal-content{background:var(--bg-primary);border-radius:16px;border:2px solid var(--border-color);max-width:500px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px #0006}[data-theme=dark] .modal-content{background:#1a1a1a;border-color:#333;box-shadow:0 20px 60px #000c}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;border-bottom:2px solid var(--border-color);background:var(--bg-secondary)}[data-theme=dark] .modal-header{background:#222;border-bottom-color:#333}.modal-header h2{margin:0;font-size:1.5rem;color:var(--text-primary);font-weight:700}.modal-content .candidate-form{padding:1.5rem}.image-upload{display:flex;flex-direction:column;align-items:center;gap:1rem}.image-preview{width:200px;height:200px;border-radius:12px;object-fit:cover;border:3px solid var(--border-color);box-shadow:0 4px 12px #0000001a;transition:all .2s}[data-theme=dark] .image-preview{border-color:#444;box-shadow:0 4px 12px #0006}.image-preview:hover{transform:scale(1.02);box-shadow:0 6px 16px #00000026}[data-theme=dark] .image-preview:hover{box-shadow:0 6px 16px #0009}.image-upload .upload-btn{position:static;background:#305fdd;color:#fff;padding:.75rem 1.5rem;border-radius:8px;cursor:pointer;font-weight:600;transition:all .2s;box-shadow:0 2px 8px #305fdd4d}.image-upload .upload-btn:hover{background:#2347b8;transform:translateY(-1px);box-shadow:0 4px 12px #305fdd66}[data-theme=dark] .image-upload .upload-btn{background:#4a7aff;box-shadow:0 2px 8px #4a7aff4d}[data-theme=dark] .image-upload .upload-btn:hover{background:#3b68ff;box-shadow:0 4px 12px #4a7aff80}@media(max-width:768px){.candidate-manager{padding:1rem}.candidate-grid{grid-template-columns:1fr}.section-header{flex-direction:column;gap:1rem;align-items:stretch}.modal-overlay{padding:1rem}}.party-manager{padding:2rem;max-width:1200px;margin:0 auto}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem;padding-bottom:1rem;border-bottom:3px solid #8b1538}.section-header h2{font-size:2rem;font-weight:700;color:var(--text-primary);margin:0;text-transform:uppercase;letter-spacing:.5px}.party-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.5rem}.party-card{background:var(--bg-primary);border-radius:12px;border:2px solid var(--border-color);padding:1.5rem;transition:all .3s ease;box-shadow:var(--shadow-md)}.party-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}.party-card.editing{border-style:dashed;border-color:#305fdd}.party-image{width:100%;height:120px;display:flex;align-items:center;justify-content:center;margin-bottom:1rem;background:var(--bg-secondary);border-radius:8px}.party-img{max-width:100%;max-height:100%;object-fit:contain}.party-info{margin-bottom:1rem}.party-name{font-size:1.5rem;font-weight:700;margin:0 0 .25rem;color:var(--text-primary)}.party-short-name{font-size:.875rem;color:var(--text-secondary);margin:0 0 .75rem;font-style:italic}.party-color-palette{display:flex;gap:.25rem;flex-wrap:wrap;margin-top:.5rem}.color-swatch{width:30px;height:30px;border-radius:4px;border:2px solid rgba(0,0,0,.1);cursor:help;transition:transform .2s,box-shadow .2s;position:relative}.color-swatch:hover{transform:scale(1.15);box-shadow:0 2px 8px #0000004d;z-index:10}.color-swatch.large{width:40px;height:40px}.party-actions{display:flex;gap:.5rem}.party-image-edit{position:relative;width:100%;height:120px;display:flex;align-items:center;justify-content:center;margin-bottom:1rem;background:var(--bg-secondary);border-radius:8px;overflow:hidden}.party-image-edit .party-img{max-width:100%;max-height:100%;object-fit:contain}.party-image-edit .upload-btn{position:absolute;bottom:0;left:0;right:0;background:#000000b3;color:#fff;padding:.5rem;text-align:center;cursor:pointer;transition:background .2s;font-size:.75rem;font-weight:600}.party-image-edit .upload-btn:hover{background:#000000d9}.party-form{display:flex;flex-direction:column;gap:1.25rem}.form-group{display:flex;flex-direction:column;gap:.5rem}.form-group label{font-weight:600;color:var(--text-primary);font-size:.875rem;text-transform:uppercase;letter-spacing:.5px}.form-input,.form-select{padding:.75rem;border:2px solid var(--border-color);border-radius:6px;font-size:1rem;transition:border-color .2s;background:var(--bg-primary);color:var(--text-primary)}.form-input:focus,.form-select:focus{outline:none;border-color:#8b1538}.form-color-picker{width:100%;height:50px;border:2px solid var(--border-color);border-radius:6px;cursor:pointer}.form-actions{display:flex;gap:.75rem;margin-top:.5rem}.btn{padding:.75rem 1.5rem;border:none;border-radius:6px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s;display:inline-flex;align-items:center;gap:.5rem}.btn-primary{background:#8b1538;color:#fff;box-shadow:0 2px 4px #8b15384d}.btn-primary:hover{background:#a01848;transform:translateY(-1px);box-shadow:0 4px 8px #8b153866}.btn-secondary{background:var(--bg-secondary);color:var(--text-primary)}.btn-secondary:hover{background:var(--bg-tertiary)}.btn-icon{padding:.5rem;width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:var(--bg-secondary);border-radius:50%;font-size:1.2rem;color:var(--text-primary)}.btn-icon:hover{background:#3498db;color:#fff}.btn-danger{background:#f44;color:#fff}.btn-danger:hover{background:#c00}.form-help{margin:.5rem 0 0;font-size:.875rem;color:var(--text-secondary);font-style:italic}.modal-content .party-form{padding:1.5rem}@media(max-width:768px){.party-manager{padding:1rem}.party-grid{grid-template-columns:1fr}}.vote-distribution{padding:2rem;max-width:900px;margin:0 auto}.vote-distribution.empty{text-align:center;padding:4rem 2rem;color:#666}.section-subtitle{font-size:.95rem;color:#666;margin:.5rem 0 0}.quick-actions{display:flex;gap:.75rem}.btn-sm{padding:.5rem 1rem;font-size:.875rem}.total-indicator{margin:2rem 0;padding:1.5rem;background:#f9fafb;border-radius:8px;border:2px solid #e5e7eb}.total-bar-container{height:40px;background:#e5e7eb;border-radius:6px;overflow:hidden;margin-bottom:1rem;position:relative}.total-bar{height:100%;transition:all .3s ease;display:flex;align-items:center;justify-content:center;font-weight:700;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.3)}.total-bar.valid{background:linear-gradient(90deg,#10b981,#059669)}.total-bar.under{background:linear-gradient(90deg,#f59e0b,#d97706)}.total-bar.over{background:linear-gradient(90deg,#ef4444,#dc2626)}.total-text{display:flex;justify-content:space-between;align-items:center;font-size:1.25rem;font-weight:700}.total-text .valid{color:#059669}.total-text .invalid{color:#dc2626}.total-text .warning{font-size:.875rem;color:#d97706;font-weight:600}.sliders-container{display:flex;flex-direction:column;gap:1.5rem;margin:2rem 0}.vote-slider{background:#fff;padding:1.5rem;border-radius:8px;border:2px solid #e5e7eb;transition:border-color .2s}.vote-slider:hover{border-color:#d1d5db}.slider-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.candidate-mini{display:flex;align-items:center;gap:.75rem}.candidate-mini-img{width:40px;height:40px;border-radius:50%;object-fit:cover;border:2px solid #e5e7eb}.candidate-mini-name{font-size:1.1rem;font-weight:600;color:#1a1a1a}.vote-input{width:80px;padding:.5rem;border:2px solid #e5e7eb;border-radius:6px;font-size:1.1rem;font-weight:700;text-align:right}.vote-input:focus{outline:none;border-color:#305fdd}.slider-wrapper{position:relative;height:40px;display:flex;align-items:center}.vote-range{width:100%;height:12px;-webkit-appearance:none;appearance:none;background:transparent;outline:none;position:relative;z-index:2;cursor:pointer}.vote-range::-webkit-slider-track{height:12px;background:#e5e7eb;border-radius:6px}.vote-range::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:24px;height:24px;background:var(--color, #305fdd);border:3px solid white;border-radius:50%;cursor:pointer;box-shadow:0 2px 4px #0003;transition:transform .2s}.vote-range::-webkit-slider-thumb:hover{transform:scale(1.2)}.vote-range::-moz-range-track{height:12px;background:#e5e7eb;border-radius:6px}.vote-range::-moz-range-thumb{width:24px;height:24px;background:var(--color, #305fdd);border:3px solid white;border-radius:50%;cursor:pointer;box-shadow:0 2px 4px #0003}.slider-track-fill{position:absolute;left:0;top:50%;transform:translateY(-50%);height:12px;border-radius:6px;pointer-events:none;transition:width .1s ease;z-index:1}.distribution-actions{margin:2rem 0;text-align:center}.distribution-actions .btn{min-width:250px}.distribution-actions .btn:disabled{background:#d1d5db;cursor:not-allowed;transform:none}.distribution-preview{margin-top:2rem;padding:1.5rem;background:#f9fafb;border-radius:8px;border:2px solid #e5e7eb}.distribution-preview h3{margin:0 0 1rem;font-size:1.25rem;color:#1a1a1a}.preview-bars{display:flex;flex-direction:column;gap:.5rem}.preview-bar-container{height:40px;background:#e5e7eb;border-radius:6px;overflow:hidden}.preview-bar{height:100%;display:flex;align-items:center;padding:0 1rem;transition:width .3s ease;min-width:fit-content}.preview-label{color:#fff;font-weight:600;font-size:.875rem;text-shadow:0 1px 2px rgba(0,0,0,.3);white-space:nowrap}@media(max-width:768px){.vote-distribution{padding:1rem}.section-header{flex-direction:column;gap:1rem}.quick-actions{width:100%;flex-direction:column}.btn-sm{width:100%}.slider-header{flex-direction:column;align-items:flex-start;gap:.75rem}.vote-input{align-self:flex-end}.distribution-actions .btn{min-width:auto;width:100%}}.state-editor{background:#fff;border-radius:8px;margin-bottom:1rem;border:2px solid #8b1538;box-shadow:0 2px 8px #8b153826}.state-editor-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.25rem;background:linear-gradient(135deg,#8b1538,#a01848);border-radius:6px 6px 0 0;color:#fff}.state-editor-header h3{margin:0;font-size:1.15rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px}.state-editor-header .close-btn{background:#fff3;border:none;color:#fff;font-size:1.5rem;font-weight:700;width:32px;height:32px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;padding:0;line-height:1}.state-editor-header .close-btn:hover{background:#ffffff4d;transform:scale(1.1)}.state-editor-content{padding:1.25rem}.electoral-votes-input-group{display:flex;gap:.5rem;align-items:center}.electoral-votes-input{flex:1;padding:.75rem;font-size:1rem;font-weight:600;border:2px solid #d0d0d0;border-radius:6px;background:#fff;transition:all .2s;text-align:center}.electoral-votes-input:hover{border-color:#8b1538;box-shadow:0 0 0 3px #8b15381a}.electoral-votes-input:focus{outline:none;border-color:#8b1538;box-shadow:0 0 0 3px #8b153833}.btn-sm{padding:.5rem 1rem;font-size:.875rem;white-space:nowrap}.btn-primary{background:linear-gradient(135deg,#8b1538,#a01848);color:#fff;border:none;border-radius:6px;font-weight:600;text-transform:uppercase;letter-spacing:.3px;box-shadow:0 2px 4px #8b153833;cursor:pointer;transition:all .3s ease}.btn-primary:hover{background:linear-gradient(135deg,#a01848,#b82050);transform:translateY(-1px);box-shadow:0 4px 8px #8b15384d}.help-text{display:block;margin-top:.5rem;color:#666;font-size:.85rem;font-style:italic}input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:6px;border-radius:3px;background:silver;outline:none;transition:all .2s}.randomization-slider{height:16px!important;-webkit-appearance:none;appearance:none;background:#e5e7eb!important;border-radius:20px!important;outline:none;cursor:pointer}.randomization-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:24px;height:24px;background:#fff;border-radius:50%;cursor:pointer;box-shadow:0 2px 6px #00000040;transition:transform .1s ease;margin-top:3px}.randomization-slider::-webkit-slider-thumb:hover{transform:scale(1.1)}.randomization-slider::-moz-range-thumb{width:24px;height:24px;background:#fff;border-radius:50%;cursor:pointer;border:none;box-shadow:0 2px 6px #00000040;transition:transform .1s ease;margin-top:3px}.randomization-slider::-moz-range-thumb:hover{transform:scale(1.1)}.randomization-slider::-webkit-slider-track{background:transparent;border:none}.randomization-slider::-moz-range-track{background:transparent;border:none}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:20px;height:20px;border-radius:50%;background:linear-gradient(135deg,#8b1538,#a01848);cursor:pointer;border:2px solid white;box-shadow:0 2px 4px #8b15384d;transition:all .2s}input[type=range]::-webkit-slider-thumb:hover{background:linear-gradient(135deg,#a01848,#b82050);transform:scale(1.15);box-shadow:0 3px 6px #8b153866}input[type=range]::-webkit-slider-thumb:active{transform:scale(1.05)}input[type=range]::-moz-range-thumb{width:20px;height:20px;border-radius:50%;background:linear-gradient(135deg,#8b1538,#a01848);cursor:pointer;border:2px solid white;box-shadow:0 2px 4px #8b15384d;transition:all .2s}input[type=range]::-moz-range-thumb:hover{background:linear-gradient(135deg,#a01848,#b82050);transform:scale(1.15);box-shadow:0 3px 6px #8b153866}input[type=range]::-moz-range-thumb:active{transform:scale(1.05)}input[type=range]::-moz-range-track{background:silver;border-radius:3px;height:6px}input[type=range]::-ms-thumb{width:20px;height:20px;border-radius:50%;background:linear-gradient(135deg,#8b1538,#a01848);cursor:pointer;border:2px solid white;box-shadow:0 2px 4px #8b15384d}input[type=range]::-ms-track{background:silver;border-radius:3px;height:6px;border:none;color:transparent}input[type=range]::-ms-fill-lower{background:#8b1538;border-radius:3px}input[type=range]::-ms-fill-upper{background:silver;border-radius:3px}[data-theme=dark] input[type=range]{background:var(--bg-secondary)}[data-theme=dark] input[type=range]:hover{background:#4a5568}.county-vote-editor{background:var(--bg-primary);border-radius:8px;box-shadow:0 4px 12px #00000026;overflow-y:auto;display:flex;flex-direction:column;max-height:85vh;color:var(--text-primary)}.county-vote-editor-header{background:linear-gradient(135deg,#7f1d1d,#991b1b,#7f1d1d);color:#fff;padding:1rem;display:flex;justify-content:space-between;align-items:center}.county-vote-editor-header h3{margin:0;font-size:16px;font-weight:700}.controls-bar{padding:.75rem 1rem;background:var(--bg-secondary);border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;align-items:center;gap:1rem}.selected-count{font-size:14px;font-weight:600;color:var(--text-primary)}.control-buttons{display:flex;gap:.5rem}.multi-select-toggle{background:linear-gradient(135deg,#f8fafc,#e2e8f0);color:#475569;border:2px solid #cbd5e1;border-radius:8px;padding:.4rem .8rem;font-size:12px;font-weight:700;cursor:pointer;transition:all .3s ease;text-transform:uppercase;letter-spacing:.5px}.multi-select-toggle.active{background:linear-gradient(135deg,#fbbf24,#f59e0b);color:#fff;border-color:#f59e0b;box-shadow:0 2px 8px #fbbf244d}.multi-select-toggle:hover{transform:translateY(-1px);box-shadow:0 2px 6px #00000026}.select-all-button{background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff;border:none;border-radius:8px;padding:.4rem .8rem;font-size:12px;font-weight:700;cursor:pointer;transition:all .3s ease;text-transform:uppercase;letter-spacing:.5px;box-shadow:0 2px 4px #3b82f64d}.select-all-button:hover{background:linear-gradient(135deg,#2563eb,#1d4ed8);transform:translateY(-1px);box-shadow:0 4px 8px #3b82f666}.clear-all-button{background:#ef4444;color:#fff;border:none;border-radius:6px;padding:.4rem .8rem;font-size:12px;font-weight:700;cursor:pointer;transition:all .2s ease}.clear-all-button:hover{background:#dc2626;transform:translateY(-1px)}.county-list{flex:1;padding:1rem;display:flex;flex-direction:column;gap:1rem;overflow-y:visible;min-height:0}.county-card{border:2px solid var(--border-color);border-radius:8px;padding:0;background:var(--bg-primary);transition:all .2s ease;overflow:visible;box-shadow:0 2px 4px #0000000d}.county-card.has-override{border-color:#fbbf24;background:var(--warning-bg);box-shadow:0 0 0 3px #fbbf2433}.county-card-header{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;margin-bottom:0;border-bottom:1px solid var(--border-color);background:var(--bg-secondary)}.county-name{font-size:16px;font-weight:700;color:var(--text-primary)}.county-fips{font-size:11px;color:var(--text-secondary);font-family:Courier New,monospace}.candidate-section{border:3px solid;border-radius:10px;padding:1rem 1.25rem;margin:.75rem 1rem;position:relative;box-shadow:0 1px 3px #0000001a}.candidate-section:first-of-type{margin-top:1rem}.candidate-section:last-of-type{margin-bottom:1rem}.vote-input-group label{font-size:14px;font-weight:600;color:#666;min-width:55px}.vote-input-group input[type=number]{flex:1;min-width:80px;padding:.625rem .875rem;border:1px solid #d1d5db;border-radius:8px;font-size:16px;font-family:inherit;background:#fff;color:#000!important;transition:border-color .15s ease}.others-section{border-color:#22c55e!important;background-color:#f0fdf4!important}.others-section .candidate-name{color:#16a34a!important}.total-votes-section{padding:.75rem;background:#eff6ff;border:1px solid #3b82f6;border-radius:4px;margin-bottom:.75rem}.total-votes-section .vote-input-group{margin:0}.total-votes-section .vote-input-group label{font-weight:600;color:#1e40af;min-width:90px}.total-votes-section .vote-input-group input[type=number]{font-weight:600;color:#1e40af;border-color:#3b82f6}.county-actions{display:flex;gap:.5rem;justify-content:center;margin-top:.5rem}.reset-button{padding:.5rem 1.5rem;border:none;border-radius:6px;font-size:13px;font-weight:600;cursor:pointer;transition:all .2s ease;background:linear-gradient(135deg,#f8fafc,#e2e8f0);color:#475569;border:1px solid #cbd5e1}.reset-button:hover{background:#e2e8f0;transform:translateY(-1px)}.turnout-section{background:var(--bg-primary);border-bottom:1px solid var(--border-color);padding:1rem}.turnout-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.turnout-label{font-weight:700;color:var(--text-primary);font-size:14px}.turnout-value{font-weight:700;color:var(--text-primary);font-size:16px}.turnout-section .slider-group{display:flex;flex-direction:column;gap:.5rem}.turnout-section .slider-group input[type=range]{width:100%;height:12px;border-radius:6px;background:linear-gradient(to right,#000,#10b981 50% 100%);outline:none;cursor:pointer;-webkit-appearance:none;appearance:none}.turnout-section .slider-group input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:20px;height:20px;border-radius:50%;background:#10b981;border:none;cursor:pointer;box-shadow:0 2px 6px #0000004d;transition:transform .1s ease}.turnout-section .slider-group input[type=range]::-webkit-slider-thumb:hover{transform:scale(1.1)}.turnout-section .slider-group input[type=range]::-moz-range-thumb{width:20px;height:20px;border-radius:50%;background:#10b981;border:none;cursor:pointer;box-shadow:0 2px 6px #0000004d;transition:transform .1s ease}.turnout-section .slider-group input[type=range]::-moz-range-thumb:hover{transform:scale(1.1)}.turnout-labels{display:flex;justify-content:space-between;width:100%;padding:0 4px;font-size:12px;color:var(--text-secondary);margin-top:.25rem}.reset-all-section{padding:1rem;background:var(--bg-secondary);border-top:1px solid var(--border-color);display:flex;justify-content:center;align-items:center}.reset-all-button{padding:.75rem 2rem;border:none;border-radius:6px;font-size:14px;font-weight:700;cursor:pointer;transition:all .2s ease;background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff;box-shadow:0 2px 6px #ef44444d}.reset-all-button:hover{background:linear-gradient(135deg,#dc2626,#b91c1c);transform:translateY(-1px);box-shadow:0 4px 8px #ef444466}.slider-visual{position:absolute;width:100%;height:16px;background:linear-gradient(to bottom,#e5e7eb,#d1d5db);border-radius:20px;overflow:hidden;pointer-events:none;box-shadow:inset 0 1px 3px #0000001f;top:50%;transform:translateY(-50%)}.slider-fill{position:absolute;top:0;left:0;height:100%;border-radius:20px;transition:width .08s cubic-bezier(.4,0,.2,1);pointer-events:none;box-shadow:0 1px 2px #0000001a}.slider-thumb{position:absolute;top:50%;transform:translate(-50%,-50%);width:24px;height:24px;background:linear-gradient(to bottom,#fff,#f9fafb);border:2px solid #ffffff;border-radius:50%;box-shadow:0 0 0 1px #0000000a,0 2px 4px #0000001a,0 4px 8px #00000014;pointer-events:none;z-index:2;transition:all .15s cubic-bezier(.4,0,.2,1)}input[type=range].modern-slider{position:absolute;width:100%;height:40px;top:50%;transform:translateY(-50%);margin:0;padding:0;opacity:0;z-index:10;cursor:grab!important;-webkit-tap-highlight-color:transparent}input[type=range].modern-slider:active{cursor:grabbing!important}input[type=range].modern-slider:hover+.slider-visual .slider-thumb,input[type=range].modern-slider:hover~.slider-visual .slider-thumb{transform:translate(-50%,-50%) scale(1.08);box-shadow:0 0 0 1px #0000000a,0 3px 8px #0000001f,0 6px 12px #00000017}input[type=range].modern-slider:active+.slider-visual .slider-thumb,input[type=range].modern-slider:active~.slider-visual .slider-thumb{transform:translate(-50%,-50%) scale(1.15);box-shadow:0 0 0 1px #0000000a,0 4px 12px #00000026,0 8px 16px #0000001a}input[type=range].modern-slider:disabled{cursor:not-allowed!important}input[type=range].modern-slider:disabled+.slider-visual,input[type=range].modern-slider:disabled~.slider-visual{opacity:.5}input[type=range].modern-slider:disabled+.slider-visual .slider-thumb,input[type=range].modern-slider:disabled~.slider-visual .slider-thumb{background:#e5e7eb;box-shadow:0 1px 3px #0000001a}input[type=range].modern-slider:focus+.slider-visual .slider-thumb,input[type=range].modern-slider:focus~.slider-visual .slider-thumb{box-shadow:0 0 0 3px #3b82f64d,0 0 0 1px #0000000a,0 4px 12px #00000026}input[type=range].modern-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:0;height:0;background:transparent;border:none}input[type=range].modern-slider::-moz-range-thumb{width:0;height:0;background:transparent;border:none}input[type=range].modern-slider::-webkit-slider-runnable-track{background:transparent;border:none}input[type=range].modern-slider::-moz-range-track{background:transparent;border:none}.candidate-support-slider,.turnout-slider,.demographic-slider,.elasticity-slider{cursor:grab!important}.candidate-support-slider:active,.turnout-slider:active,.demographic-slider:active,.elasticity-slider:active{cursor:grabbing!important}.county-demographic-editor{background:var(--bg-primary);border-radius:8px;box-shadow:0 4px 12px #00000026;overflow:hidden;display:flex;flex-direction:column;max-height:85vh;color:var(--text-primary)}.demographic-editor-header{background:linear-gradient(135deg,#7f1d1d,#991b1b,#7f1d1d);color:#fff;padding:1rem;display:flex;justify-content:space-between;align-items:center}.demographic-editor-header h3{margin:0;font-size:16px;font-weight:700}.county-demographic-editor .close-button{background:transparent;border:none;font-size:1.5rem;color:var(--text-secondary);cursor:pointer;padding:0;width:30px;height:30px;display:flex;align-items:center;justify-content:center}.county-demographic-editor .close-button:hover{color:var(--text-primary)}input[type=number]{color:var(--text-primary)!important}.demographic-editor-controls{margin-bottom:1rem}.control-group{margin-bottom:.75rem}.control-group label{display:block;margin-bottom:.25rem;color:var(--text-primary);font-weight:600;font-size:.9rem}.control-group select{width:100%;padding:.5rem;background:var(--bg-secondary);color:var(--text-primary);border:1px solid var(--border-color);border-radius:3px;font-size:.9rem}.control-actions{display:flex;gap:.5rem}.county-demographic-editor .reset-all-button{padding:.5rem 1rem;background:#dc3545;color:#fff;border:none;border-radius:3px;cursor:pointer;font-size:.85rem;font-weight:500}.county-demographic-editor .reset-all-button:hover{background:#c82333}.counties-list{flex:1;overflow-y:auto;padding:1rem 1rem 8rem;display:flex;flex-direction:column;gap:1rem}.county-demographic-section{border:2px solid var(--border-color);border-radius:8px;padding:0;background:var(--bg-primary);transition:all .2s ease;overflow:hidden;box-shadow:0 2px 4px #0000000d}.county-header{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;margin-bottom:0;border-bottom:1px solid var(--border-color);background:var(--bg-secondary)}.county-header h4{margin:0;color:var(--text-primary);font-size:16px;font-weight:700}.county-demographic-editor .reset-button{padding:.25rem .75rem;background:#6c757d;color:#fff;border:none;border-radius:3px;cursor:pointer;font-size:.8rem}.county-demographic-editor .reset-button:hover{background:#5a6268}.demographic-total{color:var(--text-secondary);font-size:.85rem;margin-bottom:.75rem;font-weight:600}.subcategories-list{display:flex;flex-direction:column;gap:.75rem;padding:1rem}.subcategory-row{display:flex;flex-direction:column;gap:.75rem;padding:1rem 1.25rem;background:var(--bg-secondary);border:3px solid var(--border-color);border-radius:10px;box-shadow:0 1px 3px #0000001a}.subcategory-row label{color:var(--text-primary);font-size:16px;font-weight:700}.value-controls{display:flex;flex-direction:column;gap:.5rem}.slider-container{display:flex;align-items:center;gap:.75rem}.demographic-slider{flex:1;height:16px;-webkit-appearance:none;appearance:none;background:#e5e7eb;border-radius:20px;outline:none;cursor:pointer}.demographic-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:24px;height:24px;background:#fff;border-radius:50%;cursor:pointer;box-shadow:0 2px 6px #00000040;transition:transform .1s ease}.demographic-slider::-webkit-slider-thumb:hover{transform:scale(1.1)}.demographic-slider::-moz-range-thumb{width:24px;height:24px;background:#fff;border-radius:50%;cursor:pointer;border:none;box-shadow:0 2px 6px #00000040;transition:transform .1s ease}.demographic-slider::-moz-range-thumb:hover{transform:scale(1.1)}.demographic-slider:disabled{opacity:.5;cursor:not-allowed}.demographic-slider:disabled::-webkit-slider-thumb{background:#6c757d;cursor:not-allowed}.demographic-slider:disabled::-moz-range-thumb{background:#6c757d;cursor:not-allowed}.value-inputs{display:flex;align-items:center;gap:.75rem}.value-inputs .value-input{flex:1;min-width:80px;padding:.625rem .875rem;background:#fff;color:#000;border:1px solid #d1d5db;border-radius:8px;font-size:16px;transition:border-color .15s ease}.value-inputs .value-input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.value-inputs input:disabled{opacity:.6;cursor:not-allowed;background:#f3f4f6}.value-inputs .percentage{min-width:65px;max-width:65px;text-align:right;color:#374151;font-size:16px;font-weight:700;flex-shrink:0}.state-vote-modifier{background:#fff;border-radius:8px;box-shadow:0 4px 12px #00000026;overflow:hidden;display:flex;flex-direction:column;max-height:600px}.state-vote-modifier-header{background:linear-gradient(135deg,#1e3a8a,#1e40af,#1e3a8a);color:#fff;padding:1rem;display:flex;justify-content:space-between;align-items:center}.state-vote-modifier-header h3{margin:0;font-size:16px;font-weight:700}.state-list{flex:1;overflow-y:auto;padding:1rem;display:flex;flex-direction:column;gap:1rem}.state-card{border:2px solid #e5e7eb;border-radius:8px;padding:1rem;background:#fff;transition:all .2s ease}.state-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem;padding-bottom:.5rem;border-bottom:2px solid #e5e7eb}.state-vote-modifier .state-name{font-size:15px;font-weight:700;color:#1f2937}.state-vote-modifier .state-fips{font-size:11px;color:#6b7280;font-family:Courier New,monospace}.state-list::-webkit-scrollbar{width:8px}.state-list::-webkit-scrollbar-track{background:#f1f5f9;border-radius:4px}.state-list::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:4px}.state-list::-webkit-scrollbar-thumb:hover{background:#94a3b8}.elasticity-editor{background:var(--bg-primary);border-radius:8px;box-shadow:0 4px 12px #00000026;overflow:hidden;display:flex;flex-direction:column;max-height:85vh;color:var(--text-primary)}.elasticity-editor-header{background:var(--bg-secondary);color:var(--text-primary);padding:1rem;display:flex;justify-content:space-between;align-items:center;border-bottom:2px solid var(--border-color)}.elasticity-editor-header h3{margin:0;font-size:16px;font-weight:700}.elasticity-controls{padding:1rem;border-bottom:1px solid var(--border-color);background:var(--bg-primary)}.elasticity-controls .control-group{margin-bottom:.75rem}.elasticity-controls .control-group label{display:block;margin-bottom:.5rem;color:var(--text-primary);font-weight:700;font-size:14px}.elasticity-controls .control-group select{width:100%;padding:.625rem;background:#fff;color:#000;border:1px solid #d1d5db;border-radius:8px;font-size:16px;cursor:pointer}.elasticity-controls .reset-all-button{width:100%;padding:.5rem 1rem;background:#dc3545;color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:.9rem;font-weight:600;margin-top:.5rem}.elasticity-controls .reset-all-button:hover{background:#c82333}.elasticity-list{flex:1;overflow-y:auto;padding:1rem 1rem 8rem;display:flex;flex-direction:column;gap:1rem}.elasticity-row{display:flex;flex-direction:column;gap:.5rem;padding:.75rem 1rem;background:var(--bg-secondary);border:2px solid var(--border-color);border-radius:8px;box-shadow:0 1px 3px #0000001a}.elasticity-label{font-size:14px;font-weight:600;color:var(--text-primary)}.elasticity-slider-container{display:flex;align-items:center;gap:.5rem;position:relative}.slider-wrapper{position:relative;flex:1;display:flex;align-items:center}.slider-visual{position:relative;flex:1;height:12px;background:#e5e7eb;border-radius:20px;overflow:visible}.slider-fill{position:absolute;top:0;left:0;height:100%;border-radius:20px;transition:width .05s ease;pointer-events:none}.slider-thumb{position:absolute;top:50%;transform:translate(-50%,-50%);width:22px;height:22px;background:#fff;border-radius:50%;box-shadow:0 2px 8px #00000059;pointer-events:none;z-index:2}.elasticity-slider{position:absolute;top:0;left:0;width:100%;height:100%;opacity:0;cursor:pointer;margin:0;z-index:3;-webkit-appearance:none;appearance:none}.value-display{display:flex;align-items:center}.percentage-display{min-width:45px;max-width:45px;text-align:right;color:#374151;font-size:14px;font-weight:700;flex-shrink:0}.benchmark-support-editor{display:flex;flex-direction:column;max-height:85vh;background:var(--bg-primary);color:var(--text-primary);overflow:hidden}.benchmark-support-header{display:flex;justify-content:space-between;align-items:center;padding:1rem;background:var(--bg-secondary);border-bottom:1px solid var(--border-color)}.benchmark-support-header h3{margin:0;font-size:1.1rem;font-weight:600}.benchmark-support-controls{padding:1rem;border-bottom:1px solid var(--border-color)}.benchmark-support-controls .control-group{margin-bottom:1rem}.benchmark-support-controls label{display:block;font-size:.85rem;font-weight:600;margin-bottom:.4rem;color:var(--text-secondary)}.benchmark-support-controls select{width:100%;padding:.5rem;background:var(--bg-input);color:var(--text-primary);border:1px solid var(--border-color);border-radius:4px;font-size:.9rem}.benchmark-support-list{flex:1;overflow-y:auto;padding:1.25rem 1.25rem 2rem}.benchmark-support-list::-webkit-scrollbar{width:6px}.benchmark-support-list::-webkit-scrollbar-track{background:var(--bg-primary);border-radius:3px}.benchmark-support-list::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:3px}.benchmark-support-list::-webkit-scrollbar-thumb:hover{background:var(--text-secondary)}.support-group{margin-bottom:1.5rem;padding:1.25rem;background:var(--bg-secondary);border-radius:8px;border:1px solid var(--border-color);box-shadow:0 1px 3px #0000001a}.support-group-label{font-weight:700;font-size:1rem;margin-bottom:1rem;color:var(--text-primary);padding-bottom:.75rem;border-bottom:2px solid var(--border-color)}.benchmark-support-editor .county-card{border:2px solid var(--border-color);border-radius:8px;margin-bottom:1rem;padding:0;background:var(--bg-primary);transition:all .2s ease;overflow:hidden;box-shadow:0 2px 4px #0000000d}.benchmark-support-editor .county-card-header{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;margin-bottom:0;border-bottom:1px solid var(--border-color);background:var(--bg-secondary)}.benchmark-support-editor .county-name{font-size:16px;font-weight:700;color:var(--text-primary)}.benchmark-support-editor .candidate-section{border:3px solid;border-radius:10px;padding:1rem 1.25rem;margin:.75rem 1rem;position:relative;box-shadow:0 1px 3px #0000001a}.benchmark-support-editor .candidate-section:first-of-type{margin-top:1rem}.benchmark-support-editor .candidate-section:last-of-type{margin-bottom:1rem}.benchmark-support-editor .candidate-name{font-size:20px;font-weight:700;margin-bottom:1rem;padding-right:2.5rem}.benchmark-support-editor .vote-input-group{display:flex;align-items:center;gap:.75rem;margin-bottom:1rem}.benchmark-support-editor .vote-input-group label{font-size:14px;font-weight:600;color:var(--text-secondary);min-width:55px}.benchmark-support-editor .vote-input-group input[type=number]{flex:1;min-width:80px;padding:.625rem .875rem;border:1px solid var(--border-color);border-radius:8px;font-size:16px;font-family:inherit;background:var(--bg-input);color:var(--text-primary);transition:border-color .15s ease}.benchmark-support-editor .vote-input-group input[type=number]:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.benchmark-support-editor .vote-percent{font-size:16px;font-weight:700;color:var(--text-primary);min-width:65px;max-width:65px;text-align:right;flex-shrink:0}.benchmark-support-editor .total-votes-section{padding:.75rem;background:#eff6ff;border:1px solid #3b82f6;border-radius:4px;margin:0 1rem .75rem}.benchmark-support-editor .total-votes-section .vote-input-group{margin:0}.benchmark-support-editor .total-votes-section .vote-input-group label{font-weight:600;color:#1e40af;min-width:90px}.benchmark-support-editor .total-votes-section .vote-input-group input[type=text]{font-weight:600;border-color:#3b82f6;flex:1;padding:.625rem .875rem;border:1px solid #d1d5db;border-radius:8px;font-size:16px;cursor:not-allowed}.reset-all-button{width:100%;padding:.6rem;background:var(--bg-input);color:var(--text-primary);border:1px solid var(--border-color);border-radius:4px;font-size:.85rem;font-weight:600;cursor:pointer;transition:all .2s}.reset-all-button:hover{background:var(--bg-hover);border-color:var(--accent-color)}.close-button{background:none;border:none;font-size:1.5rem;cursor:pointer;color:var(--text-secondary);padding:0;width:30px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s}.close-button:hover{background:var(--bg-hover);color:var(--text-primary)}.county-standings-editor{background:var(--bg-primary);border-radius:8px;box-shadow:0 4px 12px #00000026;overflow:hidden;display:flex;flex-direction:column;max-height:85vh;color:var(--text-primary)}.county-standings-editor-header{background:linear-gradient(135deg,#7f1d1d,#991b1b,#7f1d1d);color:#fff;padding:1rem;display:flex;justify-content:space-between;align-items:center}.county-standings-editor-header h3{margin:0;font-size:16px;font-weight:700}.close-button{background:#fff3;border:none;color:#fff;font-size:24px;width:32px;height:32px;border-radius:4px;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;line-height:1}.close-button:hover{background:#ffffff4d;transform:scale(1.1)}.topline-results-section{background:var(--bg-secondary);border-bottom:2px solid var(--border-color);padding:1rem}.topline-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.topline-header h4{margin:0;font-size:14px;font-weight:700;color:var(--text-primary)}.county-count{font-size:12px;color:var(--text-secondary);font-weight:600}.topline-county{background:#f9fafb;border-radius:8px;padding:.75rem;margin-bottom:.75rem;border:1px solid #e5e7eb}.topline-county:last-of-type{margin-bottom:1rem}.topline-county-name{font-size:12px;font-weight:700;color:#6b7280;margin-bottom:.5rem;text-transform:uppercase;letter-spacing:.5px}.topline-candidates{display:flex;flex-direction:column;gap:.5rem}.topline-candidate{flex:1;min-width:140px;padding:.5rem .75rem;border:2px solid;border-radius:6px;display:flex;justify-content:space-between;align-items:center;background:#fff;gap:.5rem}.topline-candidate-name{font-size:13px;font-weight:700}.topline-percentage{font-size:16px;font-weight:700;color:#1f2937;flex-shrink:0}.apply-to-votes-button{width:100%;padding:.75rem 1.5rem;background:linear-gradient(135deg,#10b981,#059669);color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:700;cursor:pointer;transition:all .3s ease;text-transform:uppercase;letter-spacing:.5px;box-shadow:0 2px 8px #10b9814d}.apply-to-votes-button:hover{background:linear-gradient(135deg,#059669,#047857);transform:translateY(-2px);box-shadow:0 4px 12px #10b98166}.apply-to-votes-button:active{transform:translateY(0)}.county-list{flex:1;overflow-y:auto;padding:1rem 1rem 8rem;display:flex;flex-direction:column;gap:1rem}.category-card{border:2px solid var(--border-color);border-radius:8px;padding:0;background:var(--bg-primary);transition:all .2s ease;overflow:visible;box-shadow:0 2px 4px #0000000d;flex-shrink:0}.category-card-header{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;min-height:48px;margin-bottom:0;border-bottom:1px solid var(--border-color);background:var(--bg-secondary);transition:background .2s;flex-shrink:0}.category-card-header:hover{background:#e5e7eb}.category-name{font-size:16px;font-weight:700;color:var(--text-primary);white-space:nowrap}.category-weight{font-size:11px;color:var(--text-secondary);font-family:Courier New,monospace;white-space:nowrap}.demographic-sections{padding:.5rem 0}.category-topline{margin:.75rem 1rem;padding:.75rem;background:#f9fafb;border:1px solid #e5e7eb;border-radius:6px}.category-topline-header{font-size:12px;font-weight:700;color:#6b7280;margin-bottom:.5rem;text-transform:uppercase;letter-spacing:.5px}.category-topline-candidates{display:flex;flex-direction:column;gap:.5rem}.category-topline-candidate{display:flex;justify-content:space-between;align-items:center;padding:.5rem .75rem;background:#fff;border-radius:4px}.demographic-section{padding:.5rem 1rem 1rem;border-bottom:1px solid var(--border-color)}.demographic-section:last-child{border-bottom:none}.demographic-name{font-size:14px;font-weight:600;color:#374151;margin:.75rem 0;padding-left:.25rem}.candidate-section{border:3px solid;border-radius:10px;padding:1rem 1.25rem;margin:.75rem 0;position:relative;box-shadow:0 1px 3px #0000001a}.candidate-section:first-of-type{margin-top:.5rem}.candidate-section:last-of-type{margin-bottom:.5rem}.candidate-name{font-size:20px;font-weight:700;margin-bottom:1rem;padding-right:2.5rem}.vote-input-group{display:flex;align-items:center;gap:.75rem;margin-bottom:1rem}.vote-input-group label{font-size:14px;font-weight:600;color:#666;min-width:65px}.vote-input-group input[type=number]{flex:1;min-width:80px;padding:.625rem .875rem;border:1px solid #d1d5db;border-radius:8px;font-size:16px;font-family:inherit;background:#fff;color:#000;transition:border-color .15s ease}.vote-input-group input[type=number]:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.vote-percent{font-size:16px;font-weight:700;color:#374151;min-width:65px;max-width:65px;text-align:right;flex-shrink:0}.total-indicator{text-align:center;padding:.5rem;margin-top:.5rem;font-weight:700;font-size:14px;color:#1e40af;background:#eff6ff;border:1px solid #3b82f6;border-radius:4px}.county-list::-webkit-scrollbar{width:8px}.county-list::-webkit-scrollbar-track{background:#f1f5f9;border-radius:4px}.county-list::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:4px}.county-list::-webkit-scrollbar-thumb:hover{background:#94a3b8}.simulation-page{display:flex;flex-direction:column;height:100vh;overflow:hidden;background:var(--bg-app)}.electoral-header{background:linear-gradient(to bottom,#e0e0e0,silver);border-bottom:2px solid #888;padding:0;z-index:1000;min-height:75px;display:flex;flex-direction:column;justify-content:center;flex-shrink:0;position:relative;width:100%}.electoral-counts{display:flex;align-items:center;gap:1.5rem;margin:0;padding:.75rem 1.5rem .5rem;width:100%;box-sizing:border-box}.candidate-count{display:flex;flex-direction:column;align-items:center;min-width:120px;flex-shrink:0}.candidate-count .name{font-size:1.5rem;font-weight:700;margin-bottom:.25rem;white-space:nowrap}.candidate-count .votes{font-size:2rem;font-weight:700}.electoral-bar-container{flex:1;display:flex;flex-direction:column;gap:.25rem;width:100%;max-width:none;margin:0;padding:0}.electoral-bar{display:flex;height:30px;border:3px solid #ffd700;border-radius:30px;overflow:hidden;box-shadow:0 2px 8px #0000004d;width:100%}.bar-segment{height:100%;transition:width .5s ease}.bar-label{text-align:center;font-size:1.25rem;font-weight:700;color:#fff;text-shadow:1px 1px 2px rgba(0,0,0,.5)}.popular-vote{display:flex;justify-content:space-between;align-items:center;margin:0;padding:.5rem 1.5rem .75rem;font-size:1rem;width:100%;box-sizing:border-box}.popular-count{font-weight:700}.turnout-label{font-weight:700;color:#333}.simulation-content{display:flex;flex:1;overflow:hidden;position:relative;min-height:calc(100vh - 200px)}.control-panel{flex-shrink:0;flex-grow:0;width:528px;min-width:396px;max-width:60%;background:var(--bg-secondary);border-right:2px solid var(--border-color);display:flex;flex-direction:column;overflow-y:auto;overflow-x:hidden;z-index:500;position:relative;height:100%;max-height:calc(100vh - 200px);min-height:calc(100vh - 200px);resize:horizontal}.control-panel:after{content:"";position:absolute;right:0;top:0;bottom:0;width:4px;background:transparent;cursor:ew-resize;transition:background .2s;z-index:10}.control-panel:hover:after{background:#667eea4d}.map-container{flex:1;min-width:0;position:relative;overflow:hidden}.home-btn{width:60px;height:60px;margin:1rem auto;background:var(--bg-primary);border:2px solid var(--border-color);border-radius:8px;font-size:2rem;cursor:pointer;transition:all .2s;box-shadow:var(--shadow-sm)}.home-btn:hover{background:var(--bg-secondary);transform:scale(1.05)}.panel-sections{display:flex;flex-direction:column;gap:1rem;padding:0 1rem 1rem;flex:1;min-height:min-content}.panel-section{background:transparent;border-radius:4px;overflow:hidden;box-shadow:none}.section-header{width:100%;padding:1.25rem 1.5rem;background:linear-gradient(135deg,#a30022,#8a001d);border:none;border-radius:8px;margin-bottom:2px;display:flex;justify-content:space-between;align-items:center;cursor:pointer;font-size:1.15rem;font-weight:700;color:#fff;transition:all .3s ease;text-align:left;box-shadow:0 2px 4px #a3002233;text-transform:uppercase;letter-spacing:.5px}.section-header:hover{background:linear-gradient(135deg,#c10029,#a30022);box-shadow:0 4px 8px #a300224d;transform:translateY(-1px)}.section-header.national-settings{background:linear-gradient(135deg,#7a0019,#a30022);cursor:default;border-radius:8px 8px 0 0;margin-bottom:0}.section-header.national-settings:hover{background:linear-gradient(135deg,#7a0019,#a30022);transform:none}.section-header.modifiers{background:linear-gradient(135deg,#a30022,#8a001d)}.section-header.modifiers:hover{background:linear-gradient(135deg,#c10029,#a30022)}.toggle-text{font-size:.85rem;font-weight:600;opacity:.95;background:#fff3;padding:.25rem .75rem;border-radius:12px;transition:all .2s}.section-header:hover .toggle-text{background:#ffffff4d}.section-content{padding:1.25rem 1.5rem;background:var(--bg-primary);border-radius:0 0 8px 8px;max-height:500px;overflow-y:auto;border:2px solid var(--border-color);border-top:none;margin-bottom:1rem}.settings-group{margin-bottom:1.75rem;background:var(--bg-primary);padding:1.25rem;border-radius:8px;border:1px solid var(--border-color);box-shadow:var(--shadow-sm)}.settings-group:last-child{margin-bottom:0}.settings-label{display:block;font-weight:700;margin-bottom:.75rem;color:var(--text-primary);font-size:.9rem;text-transform:uppercase;letter-spacing:.5px;border-bottom:2px solid var(--brand-primary);padding-bottom:.5rem}.year-selector{width:100%;padding:.875rem 1rem;font-size:1rem;border:2px solid var(--border-color);border-radius:8px;background:var(--bg-primary);color:var(--text-primary);cursor:pointer;transition:all .2s;font-weight:500}.year-selector:hover{border-color:var(--brand-primary);box-shadow:0 0 0 3px #a300221a}.year-selector:focus{outline:none;border-color:var(--brand-primary);box-shadow:0 0 0 3px #a3002233}.btn{padding:.75rem 1.5rem;font-size:1rem;font-weight:500;border:none;border-radius:6px;cursor:pointer;transition:all .2s}.btn-secondary{background:linear-gradient(135deg,#6c757d,#5a6268);color:#fff;width:100%;border-radius:8px;font-weight:600;text-transform:uppercase;letter-spacing:.3px;box-shadow:0 2px 4px #0000001a;border:none;transition:all .3s ease}.btn-secondary:hover{background:linear-gradient(135deg,#5a6268,#495057);transform:translateY(-2px);box-shadow:0 4px 12px #0003}.map-container{flex:1;position:relative;background:var(--bg-app);overflow:hidden;z-index:1;height:100%}.leaflet-container{background:var(--bg-app)!important;font-family:inherit;z-index:1}.leaflet-pane{z-index:auto}.leaflet-tile-pane{opacity:0!important}.leaflet-layer,.leaflet-control-zoom-in,.leaflet-control-zoom-out,.leaflet-control{background-color:transparent}.leaflet-tooltip{background-color:var(--bg-primary)!important;color:var(--text-primary)!important;border:2px solid var(--border-color);border-radius:4px;padding:6px 10px;font-size:.9rem;font-weight:500;box-shadow:var(--shadow-md);opacity:1!important;transition:none!important;animation:none!important;max-width:375px!important}@media(max-width:768px){.leaflet-tooltip{font-size:14px!important;padding:10px 12px!important;max-width:313px!important;line-height:1.4!important}}.leaflet-tooltip-left:before,.leaflet-tooltip-right:before,.leaflet-tooltip-top:before,.leaflet-tooltip-bottom:before{display:none!important}.leaflet-control-custom{transition:all .2s;border:2px solid var(--border-color);background-clip:padding-box;background-color:var(--bg-primary)!important}.leaflet-control-custom:hover{background-color:var(--bg-secondary)!important;transform:scale(1.1)}.leaflet-control-custom:active{background-color:var(--bg-tertiary)!important}.bottom-tabs{display:flex;background:var(--bg-primary);border-top:2px solid var(--border-color);padding:.5rem;gap:.5rem;z-index:1000}.bottom-tabs .tab{flex:1;padding:.75rem 1rem;background:var(--bg-secondary);border:2px solid var(--border-color);border-radius:4px;cursor:pointer;font-size:1rem;font-weight:500;transition:all .2s;color:var(--text-primary)}.bottom-tabs .tab:hover{background:var(--bg-tertiary);transform:translateY(-2px)}.bottom-tabs .tab.active{background:var(--bg-primary);border-color:#305fdd;color:#305fdd;font-weight:700;box-shadow:0 -2px 8px #305fdd33}@media(max-width:1024px){.control-panel{width:350px}.candidate-count .name{font-size:1.25rem}.candidate-count .votes{font-size:1.75rem}}@media(max-width:768px){.control-panel{position:fixed;left:-100%;top:0;height:100vh;width:85vw;max-width:350px;transition:left .3s ease;box-shadow:2px 0 12px #0000004d;z-index:2000;overflow-y:auto}.control-panel.open{left:0}.mobile-menu-toggle{position:fixed;top:80px;left:16px;z-index:1999;background:var(--brand-primary);color:#fff;border:none;width:48px;height:48px;border-radius:50%;font-size:24px;cursor:pointer;box-shadow:0 4px 12px #a3002266;display:flex;align-items:center;justify-content:center;transition:all .3s ease}.mobile-menu-toggle:active{transform:scale(.95)}.sidebar-overlay{position:fixed;inset:0;background:#00000080;z-index:1998;opacity:0;visibility:hidden;transition:opacity .3s ease,visibility .3s ease}.sidebar-overlay.visible{opacity:1;visibility:visible}.electoral-header{padding:.5rem .75rem;font-size:.9rem}.electoral-counts{flex-direction:column;gap:.5rem}.electoral-bar{height:24px}.bottom-tabs{flex-wrap:wrap}.bottom-tabs .tab{flex:1 1 45%;font-size:.85rem;padding:8px 12px}.map-container{width:100%!important;height:calc(100vh - 120px)!important}.section-header{padding:12px;font-size:.95rem}button,.btn{min-height:44px;min-width:44px;padding:10px 16px}}.control-panel::-webkit-scrollbar,.section-content::-webkit-scrollbar{width:8px}.control-panel::-webkit-scrollbar-track,.section-content::-webkit-scrollbar-track{background:var(--bg-secondary)}.control-panel::-webkit-scrollbar-thumb,.section-content::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:4px}.control-panel::-webkit-scrollbar-thumb:hover,.section-content::-webkit-scrollbar-thumb:hover{background:var(--text-tertiary)}.custom-tooltip{background:transparent!important;border:none!important;box-shadow:none!important;padding:0!important;margin:0!important;transition:none!important;animation:none!important}.leaflet-tooltip.custom-tooltip{background:transparent!important;border:none!important;box-shadow:none!important;transition:none!important;animation:none!important}.selected-county{filter:drop-shadow(0 0 8px #00ff00) drop-shadow(0 0 4px #00ff00);stroke:#0f0!important;stroke-width:3!important}path.leaflet-interactive.selected-county{stroke:#0f0!important;stroke-width:3!important;filter:drop-shadow(0 0 8px rgba(0,255,0,.8)) drop-shadow(0 0 4px rgba(0,255,0,.6))}.selected-state{filter:drop-shadow(0 0 8px #00ff00) drop-shadow(0 0 4px #00ff00);stroke:#0f0!important;stroke-width:3!important}@media(max-width:768px){.leaflet-control-zoom a{width:44px!important;height:44px!important;line-height:44px!important;font-size:24px!important}.leaflet-top.leaflet-left{top:10px;left:10px}.leaflet-popup-content-wrapper{padding:12px!important;font-size:14px!important;max-width:280px!important}.leaflet-popup-close-button{width:32px!important;height:32px!important;font-size:24px!important;padding:4px!important}.leaflet-container{-webkit-tap-highlight-color:transparent;touch-action:pan-x pan-y;background:var(--bg-app)!important}.leaflet-control-custom{width:44px!important;height:44px!important;padding:8px!important}.leaflet-control-custom svg,.leaflet-control-custom img{width:28px!important;height:28px!important}}path.leaflet-interactive.selected-state{stroke:#0f0!important;stroke-width:3!important;filter:drop-shadow(0 0 8px rgba(0,255,0,.8)) drop-shadow(0 0 4px rgba(0,255,0,.6))}.modal-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#0009;display:flex;justify-content:center;align-items:center;z-index:10000;animation:fadeIn .2s ease}.modal-box{background:#fff;border-radius:12px;box-shadow:0 8px 32px #0000004d;width:90%;max-width:450px;animation:slideUp .3s ease}@keyframes slideUp{0%{transform:translateY(50px);opacity:0}to{transform:translateY(0);opacity:1}}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;border-bottom:1px solid #e0e0e0}.modal-header h2{margin:0;font-size:1.25rem;font-weight:600;color:#333}.close-button{background:none;border:none;font-size:2rem;color:#999;cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s ease}.close-button:hover{background-color:#f5f5f5;color:#333}.modal-body{padding:1.5rem}.speed-slider{width:100%;cursor:pointer}.speed-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:20px;height:20px;background:#007bff;cursor:pointer;border-radius:50%}.speed-slider::-moz-range-thumb{width:20px;height:20px;background:#007bff;cursor:pointer;border-radius:50%;border:none}.modal-footer{display:flex;justify-content:center;gap:.75rem;padding:1rem 1.5rem;border-top:1px solid #e0e0e0;background-color:#f9f9f9;border-radius:0 0 12px 12px}.confirm-button{padding:.625rem 1.5rem;font-size:.95rem;font-weight:500;border:none;border-radius:6px;cursor:pointer;transition:all .2s ease;background-color:#28a745;color:#fff}.confirm-button:hover{background-color:#218838;box-shadow:0 2px 8px #28a7454d}.view-stats-display{position:fixed;bottom:20px;left:20px;background:#fff;background:var(--bg-primary);border:2px solid #e0e0e0;border:2px solid var(--border-color);border-radius:12px;padding:12px 16px;display:flex;gap:20px;align-items:center;box-shadow:0 2px 8px #0000001a;z-index:1000;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;transition:all .3s ease}.view-stats-display.live-mode{background:linear-gradient(135deg,#667eea,#764ba2);border-color:#5568d3;color:#fff}.stat-item{display:flex;align-items:center;gap:6px}.stat-icon{font-size:18px;line-height:1}.stat-label{font-size:13px;font-weight:500;opacity:.9}.stat-value{font-size:16px;font-weight:700}.live-viewers{animation:pulse-glow 2s infinite}@keyframes pulse-glow{0%,to{opacity:1}50%{opacity:.85}}.creator-status{padding-left:16px;border-left:2px solid rgba(255,255,255,.3)}.creator-status.active{animation:pulse-glow 2s infinite}.creator-status.inactive{opacity:.7}.creator-status .stat-icon{animation:blink 1.5s infinite}.creator-status.inactive .stat-icon{animation:none;opacity:.5}.dark-mode .view-stats-display{background:#2a2a2a;border-color:#444;box-shadow:0 2px 8px #0006}.dark-mode .view-stats-display.live-mode{background:linear-gradient(135deg,#4a5bd9,#5d3e82);border-color:#3d4db3}@media(max-width:768px){.view-stats-display{top:10px;right:10px;left:10px;padding:10px 14px;gap:12px;font-size:12px}.stat-icon{font-size:16px}.stat-label{font-size:11px}.stat-value{font-size:14px}.creator-status{padding-left:12px}}@media(max-width:480px){.view-stats-display{flex-direction:column;gap:8px;align-items:flex-start}.creator-status{padding-left:0;padding-top:8px;border-left:none;border-top:2px solid rgba(255,255,255,.3);width:100%}}.forecast-screen-overlay{position:fixed;inset:0;background:#000000f2;display:flex;align-items:center;justify-content:center;z-index:10000;overflow-y:auto;padding:2rem}.forecast-container{background:linear-gradient(135deg,#1a1a2e,#16213e);border:2px solid rgba(102,126,234,.3);border-radius:20px;width:95%;max-width:900px;padding:40px;color:var(--text-primary);box-shadow:0 20px 60px #00000080}.forecast-header{text-align:center;margin-bottom:32px}.header-badge{display:inline-block;padding:6px 16px;background:#667eea33;color:#a0aec0;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:1.5px;border-radius:20px;margin-bottom:12px;border:1px solid rgba(102,126,234,.3)}.forecast-header h1{font-size:48px;font-weight:800;margin:0 0 12px;background:linear-gradient(135deg,#4facfe,#00f2fe);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;letter-spacing:-1px}.forecast-subtitle{font-size:15px;color:#a0aec0;margin:0}.game-content{display:flex;flex-direction:column;gap:24px;margin-bottom:32px}.game-content h2{font-size:20px;font-weight:700;margin:0 0 16px;color:#e2e8f0;text-align:left}.objective-section{text-align:left}.objective-text{font-size:14px;line-height:1.7;color:#cbd5e0;margin:0}.scoring-section{text-align:left}.scoring-formulas{display:grid;grid-template-columns:1fr 1fr;gap:16px}.formula-box{padding:20px;border-radius:12px;border:2px solid;transition:transform .2s}.formula-box:hover{transform:translateY(-2px)}.formula-box.correct{background:linear-gradient(135deg,#48bb7826,#38a1691a);border-color:#48bb78}.formula-box.incorrect{background:linear-gradient(135deg,#fc818126,#f565651a);border-color:#fc8181}.formula-header{display:flex;align-items:center;gap:10px;margin-bottom:12px}.formula-icon{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:700;flex-shrink:0}.formula-box.correct .formula-icon{background:#48bb78;color:#fff}.formula-box.incorrect .formula-icon{background:#fc8181;color:#fff}.formula-label{font-size:14px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:#e2e8f0}.formula-equation{font-size:16px;font-weight:600;font-family:Courier New,monospace;color:#e2e8f0;margin-bottom:10px;line-height:1.5}.formula-note{font-size:12px;color:#a0aec0;line-height:1.5}.tools-section{text-align:left}.tools-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.tool-card{background:linear-gradient(135deg,#667eea26,#764ba21a);border:2px solid rgba(102,126,234,.3);border-radius:10px;padding:16px;display:flex;align-items:flex-start;gap:12px;transition:all .2s;cursor:default}.tool-card:hover{background:linear-gradient(135deg,#667eea40,#764ba226);border-color:#667eea80;transform:translateY(-2px)}.tool-icon{font-size:24px;flex-shrink:0;filter:grayscale(.3)}.tool-info{flex:1}.tool-name{font-size:14px;font-weight:700;color:#e2e8f0;margin-bottom:4px}.tool-desc{font-size:12px;color:#a0aec0;line-height:1.4}.forecast-footer{display:flex;align-items:center;justify-content:space-between;padding-top:28px;border-top:2px solid rgba(102,126,234,.2);gap:20px}.start-game-btn{padding:16px 48px;font-size:16px;font-weight:700;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:10px;cursor:pointer;transition:all .2s;box-shadow:0 4px 16px #667eea66;text-transform:none;letter-spacing:.3px}.start-game-btn:hover{transform:translateY(-2px);box-shadow:0 6px 24px #667eea99;background:linear-gradient(135deg,#7c8cf5,#8b5cb7)}.start-game-btn:active{transform:translateY(0)}.dont-show-checkbox{display:flex;align-items:center;gap:8px;font-size:13px;color:#a0aec0;cursor:pointer;-webkit-user-select:none;user-select:none}.dont-show-checkbox input[type=checkbox]{width:18px;height:18px;cursor:pointer;accent-color:#667eea}.dont-show-checkbox:hover span{color:#cbd5e0}@media(max-width:768px){.forecast-container{padding:28px 24px}.forecast-header h1{font-size:36px}.scoring-formulas,.tools-grid{grid-template-columns:1fr}.forecast-footer{flex-direction:column-reverse;gap:16px}.start-game-btn{width:100%;padding:16px 32px}}.toggle-panel-btn{background:#7c3aed;border:none;color:#fff;padding:4px 10px;border-radius:4px;cursor:pointer;font-size:12px;font-weight:500;transition:all .2s}.toggle-panel-btn:hover{background:#6d28d9;transform:translateY(-1px)}.end-game-btn{transition:all .2s}.end-game-btn:hover{background-color:#b91c1c!important;transform:translateY(-1px)}.decision-desk-panel{position:fixed;bottom:2rem;left:2rem;width:320px;max-height:calc(60vh - 60px);background:#141423fa;border:2px solid #7c3aed;border-radius:12px;overflow:hidden;z-index:9998;box-shadow:0 8px 32px #0006;display:flex;flex-direction:column;transition:all .3s ease}.panel-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:linear-gradient(135deg,#7c3aed,#6d28d9);border-bottom:2px solid rgba(255,255,255,.1);flex-wrap:wrap;gap:.5rem;flex-shrink:0}.panel-header h3{color:#fff;font-size:16px;font-weight:600;margin:0}.uncalled-count{background:#fff3;color:#fff;font-size:12px;font-weight:600;padding:4px 8px;border-radius:12px}.states-scroll{overflow-y:auto;padding:8px;display:grid;grid-template-columns:repeat(2,1fr);gap:8px;max-height:100%;animation:slideDown .3s ease}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.state-call-card{background:#1e1e32e6;border:2px solid rgba(124,58,237,.3);border-left-width:4px;border-radius:8px;padding:8px;cursor:pointer;transition:all .2s}.state-call-card:not(.called):hover{border-color:#7c3aed;transform:translateY(-2px);box-shadow:0 4px 12px #7c3aed66}.state-call-card.called{opacity:.6;cursor:default;border-color:#6464644d}.state-call-card.cd-card{border-left-width:3px;background:#7c3aed14}.state-call-card.cd-card .state-abbr{font-size:.7rem;font-weight:500;letter-spacing:0px}.card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.state-abbr{color:#fff;font-weight:700;font-size:14px;letter-spacing:.5px}.called-badge{background:#10b981;color:#fff;font-size:12px;width:18px;height:18px;border-radius:50%;display:flex;align-items:center;justify-content:center}.card-body{display:flex;flex-direction:column;gap:4px}.reporting-line{color:#9ca3af;font-size:11px;font-weight:500}.leader-line{color:#fff;font-size:13px;font-weight:600}.confidence-badge{font-size:10px;font-weight:600;padding:3px 6px;border-radius:4px;text-align:center;margin-top:4px;text-transform:uppercase;letter-spacing:.5px}.confidence-badge.safe{background:#10b98133;color:#10b981;border:1px solid #10b981}.confidence-badge.likely{background:#86efac33;color:#86efac;border:1px solid #86efac}.confidence-badge.lean{background:#fb923c33;color:#fb923c;border:1px solid #fb923c}.confidence-badge.too-close{background:#ef444433;color:#ef4444;border:1px solid #ef4444}.modal-overlay{position:fixed;inset:0;background:#000c;display:flex;align-items:center;justify-content:center;z-index:9999;animation:fadeIn .2s ease}.call-modal{background:#1a1a2e;border:2px solid #7c3aed;border-radius:16px;width:90%;max-width:450px;box-shadow:0 12px 48px #0009;animation:slideUp .3s ease}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px;border-bottom:2px solid rgba(124,58,237,.3)}.modal-header h3{color:#fff;font-size:20px;font-weight:600;margin:0}.close-btn{background:none;border:none;color:#9ca3af;font-size:28px;cursor:pointer;line-height:1;transition:color .2s}.close-btn:hover{color:#fff}.modal-body{padding:20px}.call-type-selector{margin-bottom:20px;padding:16px;background:#667eea0d;border:1px solid rgba(102,126,234,.2);border-radius:8px}.call-type-label{display:block;color:#a78bfa;font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;margin-bottom:10px}.call-type-buttons{display:flex;gap:8px;margin-bottom:12px}.call-type-btn{flex:1;padding:10px 16px;background:#7c3aed1a;border:2px solid rgba(124,58,237,.3);border-radius:6px;color:#a78bfa;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s}.call-type-btn:hover{background:#7c3aed33;border-color:#7c3aed80}.call-type-btn.active{background:linear-gradient(135deg,#667eea,#764ba2);border-color:#667eea;color:#fff;box-shadow:0 2px 8px #667eea66}.district-selector{margin-top:12px;padding-top:12px;border-top:1px solid rgba(124,58,237,.2)}.district-selector label{display:block;color:#a78bfa;font-size:13px;font-weight:600;margin-bottom:8px}.district-dropdown{width:100%;padding:10px 12px;background:#14142399;border:2px solid rgba(124,58,237,.4);border-radius:6px;color:#fff;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.district-dropdown:hover{border-color:#7c3aed99;background:#141423cc}.district-dropdown:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea33}.call-preview{display:flex;flex-direction:column;gap:16px}.leader-display{display:flex;justify-content:space-between;align-items:center;padding:16px;background:#7c3aed1a;border:2px solid #7c3aed;border-radius:8px}.leader-name{color:#fff;font-size:18px;font-weight:700}.margin{color:#a78bfa;font-size:16px;font-weight:600}.call-stats{display:flex;flex-direction:column;gap:8px}.stat-row{display:flex;justify-content:space-between;align-items:center;color:#9ca3af;font-size:14px}.stat-row span:last-child{color:#fff;font-weight:600}.points-preview{color:#10b981;font-size:16px}.warning-box{padding:12px;border-radius:8px;font-size:13px;line-height:1.5;border-left-width:4px;border-left-style:solid}.warning-box.safe{background:#10b9811a;border-left-color:#10b981;color:#86efac}.warning-box.likely{background:#86efac1a;border-left-color:#86efac;color:#d1fae5}.warning-box.lean{background:#fb923c1a;border-left-color:#fb923c;color:#fed7aa}.warning-box.too-close{background:#ef44441a;border-left-color:#ef4444;color:#fecaca}.modal-footer{display:flex;gap:12px;padding:20px;border-top:2px solid rgba(124,58,237,.3)}.btn-cancel,.btn-call{flex:1;padding:12px;border:none;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s}.btn-cancel{background:#6464784d;color:#fff}.btn-cancel:hover{background:#64647880}.btn-call{background:linear-gradient(135deg,#7c3aed,#6d28d9);color:#fff}.btn-call:hover{transform:translateY(-2px);box-shadow:0 4px 12px #7c3aed80}.btn-call.too-close{background:linear-gradient(135deg,#ef4444,#dc2626)}.btn-call.lean{background:linear-gradient(135deg,#fb923c,#f97316)}.btn-call.safe{background:linear-gradient(135deg,#10b981,#059669)}.end-game-modal{background:linear-gradient(135deg,#1a1a2e,#16213e);border:2px solid rgba(124,58,237,.5);border-radius:20px;width:90%;max-width:500px;box-shadow:0 20px 60px #000c,0 0 40px #7c3aed4d;animation:slideUp .3s ease;overflow:hidden}.end-game-header{padding:28px 32px 24px;background:linear-gradient(135deg,#7c3aed26,#6d28d91a);border-bottom:2px solid rgba(124,58,237,.3)}.end-game-header h2{color:#fff;font-size:26px;font-weight:700;margin:0;text-align:center;letter-spacing:.5px}.end-game-body{padding:32px;display:flex;flex-direction:column;gap:20px}.end-game-question{color:#e5e7eb;font-size:17px;line-height:1.6;margin:0;text-align:center;font-weight:500}.end-game-warning{display:flex;align-items:flex-start;gap:12px;padding:16px;background:#fbbf241a;border:1px solid rgba(251,191,36,.3);border-left:4px solid #fbbf24;border-radius:10px}.end-game-warning svg{color:#fbbf24;flex-shrink:0;margin-top:2px}.end-game-warning span{color:#fcd34d;font-size:14px;line-height:1.5;font-weight:500}.end-game-footer{display:flex;gap:12px;padding:24px 32px 28px;background:#0003;border-top:1px solid rgba(124,58,237,.2)}.btn-keep-playing,.btn-end-game{flex:1;padding:14px 20px;border:none;border-radius:10px;font-size:15px;font-weight:600;cursor:pointer;transition:all .2s ease;box-shadow:0 2px 8px #0003}.btn-keep-playing{background:linear-gradient(135deg,#64647866,#50506480);color:#e5e7eb;border:2px solid rgba(156,163,175,.3)}.btn-keep-playing:hover{background:linear-gradient(135deg,#64647899,#505064b3);border-color:#9ca3af80;transform:translateY(-2px);box-shadow:0 4px 12px #0000004d}.btn-end-game{background:linear-gradient(135deg,#7c3aed,#6d28d9);color:#fff;border:2px solid transparent}.btn-end-game:hover{background:linear-gradient(135deg,#8b5cf6,#7c3aed);transform:translateY(-2px);box-shadow:0 6px 20px #7c3aed80}.btn-end-game:active{transform:translateY(0);box-shadow:0 2px 8px #7c3aed4d}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes pulsate{0%{box-shadow:0 2px 4px #0003;transform:scale(1)}50%{box-shadow:0 0 20px #dc2626cc,0 0 30px #dc262680;transform:scale(1.05)}to{box-shadow:0 2px 4px #0003;transform:scale(1)}}.end-game-btn.pulsate{animation:pulsate 2s ease-in-out infinite}.game-results-page{min-height:100vh;background:var(--bg-app);padding:2rem 0 0;display:flex;flex-direction:column}.results-container{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:12px;width:90%;max-width:1200px;margin:2rem auto;box-shadow:0 4px 24px #0000001a;padding:30px;color:var(--text-primary);font-family:Inter,-apple-system,sans-serif;flex:1 0 auto}.results-header{text-align:center;margin-bottom:30px;padding-bottom:20px;border-bottom:2px solid var(--border-color)}.results-header h1{font-size:32px;font-weight:700;margin:0 0 20px;color:var(--text-primary)}.final-score{display:flex;align-items:center;justify-content:center;gap:16px}.score-label{color:var(--text-secondary);font-size:16px;font-weight:500}.score-value{font-size:48px;font-weight:700;color:var(--accent-primary)}.grade-badge{font-size:32px;font-weight:700;padding:8px 20px;border-radius:8px;border:2px solid}.grade-s{background:linear-gradient(135deg,#fbbf24,#f59e0b);border-color:#fbbf24;color:#1a1a2e;box-shadow:0 0 20px #fbbf2480}.grade-a\+{background:linear-gradient(135deg,#10b981,#059669);border-color:#10b981;color:#fff}.grade-a{background:linear-gradient(135deg,#34d399,#10b981);border-color:#34d399;color:#fff}.grade-a-{background:linear-gradient(135deg,#6ee7b7,#34d399);border-color:#6ee7b7;color:#fff}.grade-b\+{background:linear-gradient(135deg,#3b82f6,#2563eb);border-color:#3b82f6;color:#fff}.grade-b{background:linear-gradient(135deg,#60a5fa,#3b82f6);border-color:#60a5fa;color:#fff}.grade-b-{background:linear-gradient(135deg,#93c5fd,#60a5fa);border-color:#93c5fd;color:#fff}.grade-c\+{background:linear-gradient(135deg,#f59e0b,#d97706);border-color:#f59e0b;color:#fff}.grade-c{background:linear-gradient(135deg,#fbbf24,#f59e0b);border-color:#fbbf24;color:#1a1a2e}.grade-c-{background:linear-gradient(135deg,#fcd34d,#fbbf24);border-color:#fcd34d;color:#1a1a2e}.grade-d\+{background:linear-gradient(135deg,#f97316,#ea580c);border-color:#f97316;color:#fff}.grade-d{background:linear-gradient(135deg,#ef4444,#dc2626);border-color:#ef4444;color:#fff}.grade-d-{background:linear-gradient(135deg,#f87171,#ef4444);border-color:#f87171;color:#fff}.grade-f{background:linear-gradient(135deg,#991b1b,#7f1d1d);border-color:#991b1b;color:#fff}.results-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:16px;margin-bottom:30px}.summary-card{background:#7c3aed1a;border:2px solid #7c3aed;border-radius:12px;padding:20px;text-align:center}.summary-card.wrong{border-color:#ef4444;background:#ef44441a}.summary-card.bold{border-color:#fbbf24;background:#fbbf241a}.summary-card.accuracy{border-color:#10b981;background:#10b9811a}.summary-value{font-size:36px;font-weight:700;color:#fff;margin-bottom:8px}.summary-label{font-size:13px;color:#a78bfa;font-weight:500;text-transform:uppercase;letter-spacing:.5px}.points-timeline-section{margin-bottom:30px;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:8px;padding:20px}.points-timeline-section h3{font-size:18px;font-weight:600;margin:0 0 16px;color:var(--text-primary)}.timeline-graph{width:100%;height:200px}.timeline-svg{width:100%;height:100%}.timeline-svg text{font-size:12px;fill:var(--text-secondary)}.timeline-svg circle:hover{r:7;cursor:pointer}.calls-breakdown{margin-bottom:30px}.calls-breakdown h3{font-size:20px;font-weight:600;margin-bottom:16px;color:#fff}.calls-table-container{max-height:400px;overflow-y:auto;border-radius:8px;border:1px solid var(--border-color)}.calls-table{width:100%;border-collapse:collapse}.calls-table thead{position:sticky;top:0;background:var(--bg-tertiary);z-index:10}.calls-table th{padding:12px;text-align:left;font-size:12px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;border-bottom:2px solid var(--border-color)}.calls-table td{padding:12px;font-size:14px;border-bottom:1px solid var(--border-color)}.calls-table tr.correct{background:#10b9810d}.calls-table tr.correct:hover{background:#10b9811a}.calls-table tr.wrong{background:#ef44440d}.calls-table tr.wrong:hover{background:#ef44441a}.ev-badge{display:inline-block;margin-left:8px;padding:2px 6px;background:var(--accent-secondary);border-radius:4px;font-size:11px;color:var(--text-primary);font-weight:500}.bold-badge{display:inline-block;margin-left:8px;padding:3px 8px;background:linear-gradient(135deg,#fbbf24,#f59e0b);border-radius:4px;font-size:10px;color:#000;font-weight:700;text-transform:uppercase;letter-spacing:.5px;animation:pulse 2s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.7}}.winner-cell{font-weight:600;color:var(--text-primary)}.margin-cell{color:var(--text-secondary);font-size:13px;font-weight:500}.time-cell{color:var(--text-secondary);font-size:13px}.projection-time{font-size:11px;color:var(--text-muted);margin-top:2px}.close-race-bonus{font-size:10px;color:#fbbf24;font-weight:600;margin-top:2px;text-transform:uppercase}.result-correct{color:#10b981;font-weight:600}.result-wrong{color:#ef4444;font-weight:600}.points-cell{font-weight:700;font-size:15px}.points-cell.positive{color:#10b981}.points-cell.negative{color:#ef4444}.scoring-guide{background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:8px;padding:20px}.scoring-guide h4{font-size:16px;font-weight:600;margin:0 0 16px;color:var(--text-primary)}.scoring-formulas-guide{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:24px}.formula-guide-box{padding:16px;border-radius:6px;border:2px solid}.formula-guide-box.correct{background:#10b9810d;border-color:#10b9814d}.formula-guide-box.incorrect{background:#ef44440d;border-color:#ef44444d}.formula-guide-label{font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px;color:var(--text-primary)}.formula-guide-equation{font-size:16px;font-weight:600;font-family:Courier New,monospace;color:var(--text-primary);margin-bottom:6px}.formula-guide-note{font-size:12px;color:var(--text-secondary);line-height:1.4}.guide-examples h5{font-size:14px;font-weight:600;margin:0 0 12px;color:var(--text-primary)}.examples-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.example-item{display:flex;flex-direction:column;gap:4px;padding:10px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:4px}.example-margin{font-size:12px;color:var(--text-secondary);font-weight:500}.example-result{font-size:13px;font-weight:600}.example-result.correct{color:#10b981}.example-result.wrong{color:#ef4444}.dark-mode .game-results-page{background:var(--bg-primary)}.dark-mode .results-container{background:var(--bg-secondary);border-color:var(--border-color)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@media(max-width:768px){.results-container{padding:20px}.results-header h1{font-size:24px}.score-value{font-size:36px}.grade-badge{font-size:24px;padding:6px 16px}.results-summary{grid-template-columns:repeat(2,1fr)}.calls-table{font-size:12px}.calls-table th,.calls-table td{padding:8px 6px}.guide-grid{grid-template-columns:1fr}}.leaflet-control-attribution{display:none!important}.curved-table{width:100%;border-collapse:collapse;background-color:#fff;overflow:hidden}.curved-table thead tr:first-child th{border-radius:10px 10px 0 0}.curved-table thead th{padding:10px;background-color:#f8f9fa;border-bottom:2px solid #dee2e6;font-weight:700}.curved-table tbody tr{border-bottom:1px solid #dee2e6}.curved-table tbody tr:last-child td{border-bottom:none}.curved-table tbody td{padding:8px 10px}.election-night-speed-buttons{border-radius:12px 12px 0 0;position:absolute;bottom:-5px;right:15px;z-index:1000;font-size:14px;background-color:#fffffff2;box-shadow:0 -2px 12px #00000026;padding:12px 16px;border:1px solid #ddd;border-bottom:none}.time-display{display:inline-block;font-size:16px;font-weight:600;color:#333;margin-bottom:8px;padding:4px 12px;background-color:#f8f8f8;border-radius:6px;border:1px solid #e0e0e0}.speed-btn{margin:4px;padding:8px 12px;font-size:14px;font-weight:500;border:2px solid #ddd;border-radius:6px;background-color:#fff;color:#666;cursor:pointer;transition:all .2s ease;min-width:42px;display:inline-flex;align-items:center;justify-content:center;gap:2px}.speed-btn:hover{background-color:#f5f5f5;border-color:#999;color:#333;transform:translateY(-1px);box-shadow:0 2px 6px #0000001a}.speed-btn.active{background-color:#007bff;border-color:#007bff;color:#fff;font-weight:600;box-shadow:0 2px 8px #007bff4d}.speed-btn.active:hover{background-color:#0056b3;border-color:#0056b3}#pause-Button.active{background-color:#ffc107;border-color:#ffc107;color:#333}#pause-Button.active:hover{background-color:#e0a800;border-color:#e0a800}#Cutomize-Button{font-weight:700;font-size:16px}#Cutomize-Button.active{background-color:#6c757d;border-color:#6c757d}#Cutomize-Button.active:hover{background-color:#5a6268;border-color:#5a6268}.glyphicon{display:inline-block;font-style:normal;line-height:1}@media(max-width:768px){.election-night-speed-buttons{right:5px;font-size:12px;padding:8px 12px}.speed-btn{padding:6px 10px;font-size:12px;min-width:36px}.time-display{font-size:14px}}.leaflet-tooltip.map-tooltip{background:transparent!important;border:none!important;box-shadow:none!important;padding:0!important;margin:0!important;transition:none!important;animation:none!important}.map-tooltip:before{display:none!important}.map-control-label{color:#333}[data-theme=dark] .map-control-label{color:#e0e0e0!important}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}@keyframes blink{0%,to{opacity:1}50%{opacity:.3}}@media(max-width:768px){*{max-width:100vw}body{overflow-x:hidden}.leaflet-control-zoom a{width:44px!important;height:44px!important;line-height:44px!important;font-size:24px!important}.leaflet-top.leaflet-left{top:10px;left:10px}.leaflet-tooltip{font-size:14px!important;padding:10px 12px!important;max-width:313px!important;line-height:1.4!important}.leaflet-popup-content-wrapper{padding:12px!important;font-size:14px!important;max-width:280px!important}.leaflet-popup-close-button{width:32px!important;height:32px!important;font-size:24px!important;padding:4px!important}.leaflet-container{-webkit-tap-highlight-color:transparent;touch-action:pan-x pan-y;background:var(--bg-app)!important}.leaflet-control-custom{width:44px!important;height:44px!important;padding:8px!important}.leaflet-control-custom svg,.leaflet-control-custom img{width:28px!important;height:28px!important}.Election-Night-Button{inset:auto auto 100px 16px;padding:10px;font-size:.9rem}.Election-Night-Button button{font-size:14px;padding:10px 14px;min-height:44px}.Election-Night-Speed-Buttons{right:16px;bottom:100px}.simulation-controls{flex-direction:column;gap:12px;padding:12px}.electoral-vote-display{flex-direction:column;padding:12px}button{min-height:44px;min-width:44px}.map-container{height:45vh!important;max-height:400px!important}.results-panel{max-height:45vh;overflow-y:auto}[style*="display: flex"][style*="gap: 0.5rem"]{overflow-x:auto;flex-wrap:nowrap!important;-webkit-overflow-scrolling:touch;scrollbar-width:thin}[style*="display: flex"][style*="gap: 0.5rem"]::-webkit-scrollbar{height:4px}[style*="display: flex"][style*="gap: 0.5rem"]::-webkit-scrollbar-thumb{background:#0000004d;border-radius:2px}[style*=flexDirection][style*=column]>div{width:100%!important}}@media(min-width:769px)and (max-width:1024px){.Election-Night-Button{right:60vw}}@media(hover:none)and (pointer:coarse){button:active{opacity:.8;transform:scale(.98)}}.recent-updates-container{background:var(--bg-secondary);border-radius:8px;padding:16px;margin:16px 0;border:1px solid var(--border-color)}.recent-updates-title{margin:0 0 12px;font-size:18px;font-weight:600;color:var(--text-primary)}.no-updates{padding:20px;text-align:center;color:var(--text-secondary);font-style:italic}.updates-table-wrapper{overflow-x:auto}.updates-table{width:100%;border-collapse:collapse;font-size:13px}.updates-table thead{background:var(--bg-tertiary)}.updates-table th{padding:10px 12px;text-align:left;font-weight:600;color:var(--text-primary);border-bottom:2px solid var(--border-color)}.updates-table tbody tr{border-bottom:1px solid var(--border-color);transition:background-color .15s ease}.updates-table tbody tr:hover{background:var(--bg-tertiary)}.updates-table td{padding:10px 12px;color:var(--text-primary)}.time-cell{white-space:nowrap;font-weight:500;color:var(--text-secondary);min-width:80px}.county-cell{min-width:150px}.county-name{font-weight:600;color:var(--text-primary)}.recent-updates-container .state-name{font-size:11px;color:var(--text-secondary);margin-top:2px}.vote-change-cell{min-width:180px}.vote-changes{display:flex;flex-direction:column;gap:4px}.vote-change-item{font-weight:500;font-size:12px}.vote-margin-cell{text-align:center;font-size:13px;min-width:90px}.state-pct-shift-cell{min-width:120px}.state-pct-shifts{display:flex;flex-direction:column;gap:4px}.state-pct-shift-item{font-weight:500;font-size:12px}.margin-shift-cell{text-align:center;font-size:14px;min-width:100px}[data-theme=dark] .updates-table thead{background:#ffffff0d}[data-theme=dark] .updates-table tbody tr:hover{background:#ffffff14}@media(max-width:768px){.updates-table{font-size:12px}.updates-table th,.updates-table td{padding:8px 6px}.county-name{font-size:12px}.recent-updates-container .state-name{font-size:10px}.vote-change-item{font-size:11px}}.top-counties-votes-remaining{background:var(--bg-secondary);border-radius:8px;padding:16px;border:1px solid var(--border-color)}.no-data{padding:20px;text-align:center;color:var(--text-secondary);font-style:italic}.counties-table{width:100%;border-collapse:collapse;font-size:13px}.counties-table thead{background:var(--bg-tertiary)}.counties-table th{padding:10px 12px;text-align:left;font-weight:600;color:var(--text-primary);border-bottom:2px solid var(--border-color)}.counties-table tbody tr{border-bottom:1px solid var(--border-color);transition:background-color .15s ease}.counties-table tbody tr:hover{background:var(--bg-tertiary)}.counties-table td{padding:10px 12px}.rank-cell{font-weight:600;color:var(--text-secondary);text-align:center;width:40px}.county-name-cell{font-weight:600;min-width:150px;color:var(--text-primary)}.votes-cell,.percent-cell{text-align:right;font-family:Courier New,monospace;font-size:12px;color:var(--text-primary)}.remaining-cell{text-align:right;font-family:Courier New,monospace;font-size:12px;font-weight:600;color:#2e7d32!important}[data-theme=dark] .counties-table thead{background:#ffffff0d}[data-theme=dark] .counties-table tbody tr:hover{background:#ffffff14}@media(max-width:768px){.counties-table{font-size:12px}.counties-table th,.counties-table td{padding:8px 6px}}.votes-remaining-bar-container{width:100%;padding:16px 0}.votes-remaining-bar{width:100%;height:40px;display:flex;border:1px solid var(--border-color);border-radius:4px;overflow:hidden;background-color:var(--bg-primary)}.vote-segment{height:100%;transition:width .3s ease}.vote-segment.remaining{background-color:#e0e0e0;background-image:repeating-linear-gradient(-45deg,transparent,transparent 4px,rgba(255,255,255,.5) 4px,rgba(255,255,255,.5) 8px);border-left:2px dashed var(--border-color)}.votes-remaining-legend{display:flex;justify-content:space-between;align-items:center;margin-top:12px;font-size:13px;color:var(--text-secondary)}.legend-left,.legend-right{display:flex;align-items:center;gap:8px}.votes-counted-label{font-weight:600;color:var(--text-primary)}.votes-remaining-label{font-weight:600;color:#2e7d32}[data-theme=dark] .vote-segment.remaining{background-color:#424242;background-image:repeating-linear-gradient(-45deg,transparent,transparent 4px,rgba(255,255,255,.1) 4px,rgba(255,255,255,.1) 8px)}@media(max-width:768px){.votes-remaining-bar{height:32px}.votes-remaining-legend{font-size:12px;flex-direction:column;align-items:flex-start;gap:4px}}.path-to-victory{background:var(--bg-secondary);border-radius:8px;padding:16px;border:1px solid var(--border-color)}.path-table{width:100%;border-collapse:collapse;font-size:13px}.path-table thead{background:var(--bg-tertiary)}.path-table th{padding:12px 10px;text-align:left;font-weight:600;color:var(--text-primary);border-bottom:2px solid var(--border-color);font-size:12px}.path-table tbody tr{border-bottom:1px solid var(--border-color);transition:background-color .15s ease}.path-table tbody tr:hover{background:var(--bg-tertiary)}.path-table tbody tr.leader-row{background:#4caf500d}[data-theme=dark] .path-table tbody tr.leader-row{background:#4caf501a}.path-table td{padding:12px 10px;color:var(--text-primary)}.candidate-name{font-weight:600;padding-left:8px!important}.votes-cell{font-family:Courier New,monospace;font-size:13px}.vote-pct{color:var(--text-secondary);font-size:11px;margin-left:4px}.status-cell{font-size:12px}.status-leading{color:#4caf50;font-weight:600}.status-trailing{color:var(--text-secondary)}.need-cell{text-align:center;font-family:Courier New,monospace;font-weight:600;font-size:14px}.leader-marker{color:var(--text-secondary);font-size:18px}.pct-easy{color:#4caf50}.pct-moderate{color:#ff9800}.pct-difficult{color:#f44336}.impossible{color:#f44336;font-style:normal;font-weight:600;font-size:13px}.path-footer{margin-top:12px;padding-top:12px;border-top:1px solid var(--border-color)}.remaining-votes-note{margin:0;font-size:12px;color:var(--text-secondary);text-align:center}[data-theme=dark] .path-table thead{background:#ffffff0d}[data-theme=dark] .path-table tbody tr:hover{background:#ffffff14}@media(max-width:768px){.path-table{font-size:11px}.path-table th,.path-table td{padding:8px 6px}.path-table th{font-size:10px}.votes-cell{font-size:11px}.need-cell{font-size:12px}}:root{--color-base: #202122;--color-base-fixed: #202122;--color-base--hover: #404244;--color-emphasized: #101418;--color-subtle: #54595d;--color-placeholder: #72777d;--color-disabled: #a2a9b1;--color-disabled-emphasized: #a2a9b1;--color-inverted: #fff;--color-inverted-fixed: #fff;--color-progressive: #36c;--color-progressive--hover: #3056a9;--color-progressive--active: #233566;--color-progressive--focus: #36c;--color-destructive: #bf3c2c;--color-destructive--hover: #9f3526;--color-destructive--active: #612419;--color-destructive--focus: #36c;--color-visited: #6a60b0;--color-visited--hover: #534fa3;--color-visited--active: #353262;--color-destructive--visited: #9f5555;--color-destructive--visited--hover: #854848;--color-destructive--visited--active: #512e2e;--color-error: #bf3c2c;--color-error--hover: #9f3526;--color-error--active: #612419;--color-warning: #886425;--color-success: #177860;--color-notice: #404244;--color-icon-error: #f54739;--color-icon-warning: #ab7f2a;--color-icon-success: #099979;--color-icon-notice: #72777d;--color-content-added: #006400;--color-content-removed: #8b0000;--filter-invert-icon: 0;--filter-invert-primary-button-icon: 1;--box-shadow-color-base: #a2a9b1;--box-shadow-color-progressive--active: #233566;--box-shadow-color-progressive--focus: #36c;--box-shadow-color-progressive-selected: #36c;--box-shadow-color-progressive-selected--hover: #3056a9;--box-shadow-color-progressive-selected--active: #233566;--box-shadow-color-destructive--focus: #36c;--box-shadow-color-inverted: #fff;--box-shadow-color-alpha-base: rgba(0,0,0,.06);--box-shadow-color-transparent: transparent;--mix-blend-mode-base: normal;--mix-blend-mode-blend: multiply;--background-color-base: #fff;--background-color-base-fixed: #fff;--background-color-neutral: #eaecf0;--background-color-neutral-subtle: #f8f9fa;--background-color-interactive: #eaecf0;--background-color-interactive--hover: #dadde3;--background-color-interactive--active: #c8ccd1;--background-color-interactive-subtle: #f8f9fa;--background-color-interactive-subtle--hover: #eaecf0;--background-color-interactive-subtle--active: #dadde3;--background-color-disabled: #dadde3;--background-color-disabled-subtle: #eaecf0;--background-color-inverted: #101418;--background-color-progressive: #36c;--background-color-progressive--hover: #3056a9;--background-color-progressive--active: #233566;--background-color-progressive--focus: #36c;--background-color-progressive-subtle: #e8eeff;--background-color-progressive-subtle--hover: #d9e2ff;--background-color-progressive-subtle--active: #b6d4fb;--background-color-destructive: #bf3c2c;--background-color-destructive--hover: #9f3526;--background-color-destructive--active: #612419;--background-color-destructive--focus: #36c;--background-color-destructive-subtle: #ffe9e5;--background-color-destructive-subtle--hover: #ffdad3;--background-color-destructive-subtle--active: #ffc8bd;--background-color-error: #f54739;--background-color-error--hover: #d74032;--background-color-error--active: #bf3c2c;--background-color-error-subtle: #ffe9e5;--background-color-error-subtle--hover: #ffdad3;--background-color-error-subtle--active: #ffc8bd;--background-color-warning-subtle: #fdf2d5;--background-color-success-subtle: #dff2eb;--background-color-notice-subtle: #eaecf0;--background-color-content-added: #a3d3ff;--background-color-content-removed: #ffe49c;--background-color-transparent: transparent;--background-color-backdrop-light: rgba(255,255,255,.65);--background-color-backdrop-dark: rgba(0,0,0,.65);--background-color-button-quiet--hover: rgba(0,24,73,.027);--background-color-button-quiet--active: rgba(0,24,73,.082);--background-color-input-binary--checked: #36c;--background-color-tab-list-item-framed--hover: rgba(255,255,255,.3);--background-color-tab-list-item-framed--active: rgba(255,255,255,.65);--opacity-icon-base: .87;--opacity-icon-base--hover: .74;--opacity-icon-base--selected: 1;--opacity-icon-base--disabled: .51;--opacity-icon-placeholder: .51;--opacity-icon-subtle: .67;--border-color-base: #a2a9b1;--border-color-emphasized: #202122;--border-color-subtle: #c8ccd1;--border-color-muted: #dadde3;--border-color-interactive: #72777d;--border-color-interactive--hover: #27292d;--border-color-interactive--active: #202122;--border-color-disabled: #c8ccd1;--border-color-inverted: #fff;--border-color-inverted-fixed: #fff;--border-color-progressive: #6485d1;--border-color-progressive--hover: #3056a9;--border-color-progressive--active: #233566;--border-color-progressive--focus: #36c;--border-color-destructive: #f54739;--border-color-destructive--hover: #9f3526;--border-color-destructive--active: #612419;--border-color-destructive--focus: #36c;--border-color-error: #f54739;--border-color-error--hover: #9f3526;--border-color-error--active: #612419;--border-color-warning: #ab7f2a;--border-color-warning--hover: #735421;--border-color-warning--active: #453217;--border-color-success: #099979;--border-color-notice: #72777d;--border-color-content-added: #a3d3ff;--border-color-content-removed: #ffe49c;--border-color-transparent: transparent;--border-color-divider: #a2a9b1;--outline-color-progressive--focus: #36c;--color-link: var(--color-progressive);--color-link--hover: var(--color-progressive--hover);--color-link--active: var(--color-progressive--active);--color-link--focus: var(--color-progressive--focus);--color-link--visited: var(--color-visited);--color-link--visited--hover: var(--color-visited--hover);--color-link--visited--active: var(--color-visited--active);--color-link-red: var(--color-destructive);--color-link-red--hover: var(--color-destructive--hover);--color-link-red--active: var(--color-destructive--active);--color-link-red--focus: var(--color-destructive--focus);--color-link-red--visited: var(--color-destructive--visited);--color-link-red--visited--hover: var(--color-destructive--visited--hover);--color-link-red--visited--active: var(--color-destructive--visited--active);--accent-color-base: #36c;--border-color-input--hover: var(--border-color-interactive);--border-color-input-binary: var(--border-color-interactive);--border-color-input-binary--hover: var(--border-color-progressive--hover);--border-color-input-binary--active: var(--border-color-progressive--active);--border-color-input-binary--focus: var(--border-color-progressive--focus);--border-color-input-binary--checked: var(--border-color-progressive);--color-base--subtle: #54595d;--font-size-medium: 1rem;--line-height-medium: 1.6;--line-height-content: 1.625}.wiki-infobox,.infobox{font-family:sans-serif;direction:ltr;border:1px solid #a2a9b1;color:#000;padding:.2em;font-size:88%;border-spacing:3px;margin:.5em 0;background-color:var(--background-color-neutral-subtle, #f8f9fa);line-height:1.5em;display:table!important;width:300px;border-collapse:separate}.infobox.ib-election{width:300px}.infobox caption,.infobox-title{background-color:transparent;font-size:125%;font-weight:700;text-align:center;padding:.2em;color:#000}.infobox-title.summary{padding:.5em}.infobox-subheader{text-align:center;font-size:100%;padding:.3em;background-color:var(--background-color-neutral-subtle, #f8f9fa)}.infobox-subheader hr{border:0;border-top:1px solid var(--border-color-base, #a2a9b1);margin:.3em 0}.infobox-header{background-color:transparent;font-weight:700;text-align:center!important;padding:.3em;font-size:88%}.infobox-header hr{border:0;border-top:1px solid var(--border-color-base, #a2a9b1);margin:.2em 0}.infobox-header a{color:var(--color-progressive, #36c);text-decoration:none}.infobox-header a:hover{text-decoration:underline}.infobox-label{font-weight:700;padding:.2em .4em;vertical-align:top;text-align:left;background-color:var(--background-color-neutral-subtle, #f8f9fa);width:30%}.infobox-data{padding:.2em .4em;vertical-align:top;background-color:var(--background-color-neutral-subtle, #f8f9fa)}.infobox-full-data{text-align:center;padding:.3em;background-color:var(--background-color-neutral-subtle, #f8f9fa)}.infobox th{font-weight:700;text-align:left;padding:.2em .4em;vertical-align:top}.infobox td{padding:.2em .4em;vertical-align:top}.infobox .notheme img{display:block;margin:0 auto;max-width:none}.flagicon{display:inline-block;margin-right:.3em}.flagicon img{vertical-align:middle;border:1px solid var(--border-color-base, #a2a9b1)}.infobox a,.infobox-data a{color:var(--color-progressive, #36c);text-decoration:none}.infobox a:hover,.infobox-data a:hover{text-decoration:underline}.infobox td[style*="text-align: center"]{color:var(--color-progressive, #36c)}.infobox th[style*="text-align: left"]+td[style*="text-align: center"] b{color:#000}.infobox .notheme{background-color:var(--background-color-base, #fff);padding:0;vertical-align:bottom}.infobox .notheme img{display:block;width:100%;height:auto;margin:0}.wiki-infobox-title{background-color:transparent;font-size:125%;font-weight:700;text-align:center;padding:.2em;color:#000}.wiki-infobox-subtitle{text-align:center;font-size:110%;padding:.3em;background-color:#e9e9e9;border-top:1px solid #a2a9b1}.wiki-infobox-image{text-align:center;padding:.5em;background-color:#fff;border-top:1px solid #a2a9b1}.wiki-infobox-image img{max-width:130%;height:auto}.wiki-infobox-caption{text-align:center;font-size:90%;padding:.3em}.wiki-infobox-row{display:flex;border-top:1px solid #a2a9b1}.wiki-infobox-label{font-weight:700;padding:.3em .5em;width:35%;background-color:#f2f2f2;vertical-align:top}.wiki-infobox-data{padding:.3em .5em;width:65%;background-color:#fff}.wiki-infobox-header{background-color:#ccc;font-weight:700;text-align:center;padding:.3em;border-top:1px solid #a2a9b1}.wiki-infobox-section{background-color:#e6e6e6;font-weight:700;padding:.2em .5em;border-top:1px solid #a2a9b1}.candidate-box{display:flex;padding:.5em;border-top:1px solid #a2a9b1;background-color:#fff;align-items:center;gap:10px}.candidate-image{width:80px;height:100px;object-fit:cover;border:1px solid #a2a9b1}.candidate-info{flex:1}.candidate-name{font-weight:700;font-size:110%;margin-bottom:3px}.candidate-party{color:#666;font-size:95%;margin-bottom:3px}.candidate-running-mate{font-size:90%;margin-top:5px}.electoral-votes{font-weight:700;font-size:150%;text-align:center;min-width:60px}.party-dem{border-left:4px solid #3333FF}.party-rep{border-left:4px solid #E81B23}.party-ind{border-left:4px solid #9933CC}.party-lib{border-left:4px solid #FED105}.party-grn{border-left:4px solid #17aa5c}.election-map{width:100%;height:250px;background-color:#eaecf0;display:flex;align-items:center;justify-content:center;color:#666;border:1px solid #a2a9b1;margin:10px 0}.results-table{width:100%;border-collapse:collapse;margin-top:10px}.results-table th{background-color:#eaecf0;padding:.3em .5em;border:1px solid #a2a9b1;font-weight:700}.results-table td{padding:.3em .5em;border:1px solid #a2a9b1}.results-table tr:hover{background-color:#f8f9fa}.template-container{max-width:1200px}.template-container h2{color:#202122;margin-bottom:15px;font-size:28px;border-bottom:1px solid #a2a9b1;padding-bottom:10px}.template-description{margin-bottom:20px;color:#54595d;line-height:1.6}.electoral-scenarios-page{min-height:100vh;background:var(--bg-primary);color:var(--text-primary);padding:2rem}.scenarios-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;gap:1rem}.spinner{width:40px;height:40px;border:4px solid var(--border-color);border-top-color:var(--primary-color);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.scenarios-header{max-width:1400px;margin:0 auto 2rem;text-align:center}.back-button{background:var(--bg-secondary);color:var(--text-primary);border:1px solid var(--border-color);padding:.5rem 1rem;border-radius:6px;cursor:pointer;margin-bottom:1rem;font-size:.9rem;transition:all .2s;display:inline-block}.back-button:hover{background:var(--bg-tertiary);transform:translate(-2px)}.scenarios-header h1{font-size:2.5rem;margin-bottom:.5rem}.scenarios-subtitle{color:var(--text-secondary);font-size:1.2rem;margin-bottom:1rem}.reset-button-header{background:#f59e0b;color:#fff;border:none;padding:.75rem 1.5rem;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s}.reset-button-header:hover{background:#d97706;transform:translateY(-2px);box-shadow:0 4px 12px #f59e0b4d}.refresh-button-header{background:#3b82f6;color:#fff;border:none;padding:.75rem 1.5rem;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s}.refresh-button-header:hover{background:#2563eb;transform:translateY(-2px);box-shadow:0 4px 12px #3b82f64d}.scenarios-instructions{max-width:1400px;margin:0 auto 1.5rem;padding:1rem 1.5rem;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px}.scenarios-instructions p{margin:.5rem 0;line-height:1.6;color:var(--text-secondary)}.scenarios-instructions strong{color:var(--text-primary);font-weight:600}.odds-note{color:var(--text-secondary);font-size:.95em;margin-top:.75rem!important}.victory-line-main{max-width:1400px;margin:0 auto 1.5rem;padding:1rem 0;text-align:center;position:relative}.line-270{height:3px;background:linear-gradient(to right,#ef4444,#f59e0b,#10b981);margin:0 auto;width:80%;border-radius:2px;box-shadow:0 2px 8px #0003}.line-label{display:inline-block;margin-top:.5rem;font-size:1.1rem;font-weight:600;color:var(--text-primary);background:var(--bg-secondary);padding:.25rem 1rem;border-radius:20px;border:1px solid var(--border-color)}.scenarios-builder{max-width:1400px;margin:0 auto 2rem;display:grid;grid-template-columns:1fr 1fr 1fr;gap:1.5rem;min-height:600px}.candidate-column{background:var(--bg-secondary);border:2px solid var(--border-color);border-radius:12px;overflow:hidden;display:flex;flex-direction:column;transition:all .3s}.candidate-column.battleground-column{border-color:#6b7280;background:linear-gradient(to bottom,rgba(107,116,128,.05),var(--bg-secondary))}.column-header{padding:1.5rem;color:#fff;text-align:center;background:linear-gradient(135deg,#0003,#0000001a)}.battleground-header{background:linear-gradient(135deg,#6b7280,#4b5563)}.column-header h2{margin:0 0 .5rem;font-size:1.5rem;font-weight:700;text-shadow:0 2px 4px rgba(0,0,0,.3)}.ev-count-large{font-size:3.5rem;font-weight:900;margin:.5rem 0;text-shadow:0 2px 8px rgba(0,0,0,.4);line-height:1}.win-probability{font-size:1.1rem;font-weight:600;opacity:.95;margin-top:.25rem}.battleground-count{font-size:1.3rem;font-weight:600;opacity:.9;margin-top:.5rem}.column-states{flex:1;padding:1rem;display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem;overflow-y:auto;min-height:200px;align-content:start}.state-card{background:var(--bg-tertiary);border:2px solid var(--border-color);border-radius:8px;padding:.5rem .75rem;cursor:grab;transition:all .2s;-webkit-user-select:none;user-select:none;position:relative;min-height:50px}.state-card:active{cursor:grabbing}.state-card:hover{transform:translateY(-3px);box-shadow:0 6px 16px #0003}.state-card.battleground-state{border-color:gold;background:linear-gradient(135deg,rgba(255,215,0,.1),var(--bg-tertiary))}.state-card.battleground-state:hover{border-color:orange;box-shadow:0 6px 16px #ffd7004d}.safe-badge{position:absolute;top:.5rem;right:.5rem;background:#10b981;color:#fff;padding:.2rem .5rem;border-radius:4px;font-size:.7rem;font-weight:600}.projected-badge{position:absolute;top:.5rem;right:.5rem;background:#10b981;color:#fff;padding:.2rem .5rem;border-radius:4px;font-size:.7rem;font-weight:600;box-shadow:0 2px 4px #10b9814d}.projected-state-locked{opacity:.9}.projected-state-locked:hover{transform:none!important;cursor:not-allowed!important}.state-name{font-size:1.1rem;font-weight:700;margin-bottom:.25rem;color:var(--text-primary)}.state-ev{font-size:.9rem;color:var(--text-secondary);font-weight:600}.state-status{font-size:.85rem;margin-top:.5rem;padding-top:.5rem;border-top:1px solid var(--border-color);font-weight:600}.empty-state{grid-column:1 / -1;text-align:center;padding:3rem 1rem;color:var(--text-secondary);font-style:italic;font-size:.95rem}.projected-states-section{max-width:1400px;margin:2rem auto;background:var(--bg-secondary);border:2px solid #10b981;border-radius:12px;overflow:hidden}.projected-states-toggle{width:100%;background:linear-gradient(135deg,rgba(16,185,129,.1),var(--bg-secondary));color:var(--text-primary);border:none;padding:1rem 1.5rem;font-size:1.1rem;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:.75rem;transition:all .2s}.projected-states-toggle:hover{background:linear-gradient(135deg,rgba(16,185,129,.15),var(--bg-primary))}.projected-states-hint{margin-left:auto;font-size:.85rem;color:var(--text-secondary);font-weight:400}.projected-states-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:.75rem;padding:1.5rem;background:var(--bg-primary);max-height:500px;overflow-y:auto}.projected-state-card{background:var(--bg-secondary);border:2px solid #10b981;border-radius:8px;padding:.75rem 1rem;display:flex;flex-direction:column;gap:.5rem;transition:all .2s}.projected-state-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #10b9814d}.projected-states-section .projected-state-card .projected-state-name{font-weight:400!important;font-size:.85rem!important;display:flex;align-items:center;justify-content:space-between;color:var(--text-primary)!important}.projected-state-ev{color:var(--text-secondary);font-weight:400;font-size:.85rem;margin-left:.5rem}.projected-state-winner{font-size:.9rem;font-weight:600;display:flex;align-items:center;gap:.25rem}.projection-time{font-size:.75rem;color:var(--text-secondary);font-style:italic}.safe-states-section{max-width:1400px;margin:2rem auto;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:12px;overflow:hidden}.safe-states-toggle{width:100%;background:var(--bg-secondary);color:var(--text-primary);border:none;padding:1rem 1.5rem;font-size:1.1rem;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:.75rem;transition:all .2s}.safe-states-toggle:hover{background:var(--bg-primary)}.toggle-icon{color:var(--primary-color);font-size:.9rem}.safe-states-hint{margin-left:auto;font-size:.85rem;color:var(--text-secondary);font-weight:400}.safe-states-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:.75rem;padding:1.5rem;background:var(--bg-primary);max-height:500px;overflow-y:auto}.safe-state-card{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;padding:.75rem 1rem;display:flex;flex-direction:column;gap:.5rem;transition:all .2s}.safe-state-card:hover{transform:translateY(-2px);box-shadow:0 2px 8px #0000001a}.safe-state-name{font-weight:600;font-size:.95rem;display:flex;align-items:center;justify-content:space-between}.safe-state-ev{color:var(--text-secondary);font-weight:400;font-size:.85rem;margin-left:.5rem}.safe-state-winner{font-size:.9rem;font-weight:600;display:flex;align-items:center;gap:.25rem}.no-scenarios{max-width:800px;margin:3rem auto;padding:3rem;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:12px;text-align:center}.no-scenarios p{font-size:1.1rem;color:var(--text-secondary)}.candidate-column:has(.column-states:hover){border-color:gold;box-shadow:0 0 20px #ffd7004d}@media(max-width:1200px){.scenarios-builder{grid-template-columns:1fr;gap:1rem}.candidate-column{min-height:300px}.ev-count-large{font-size:2.5rem}.column-states{grid-template-columns:repeat(2,1fr)}}@media(max-width:768px){.electoral-scenarios-page{padding:1rem}.scenarios-header h1{font-size:1.6rem;margin-bottom:.75rem}.scenarios-subtitle{font-size:.95rem;padding:0 1rem}.back-button{padding:.6rem 1rem;font-size:.9rem;min-height:44px}.view-mode-toggle{flex-direction:column;gap:.5rem;width:100%}.view-mode-toggle button{width:100%;min-height:44px;font-size:.95rem}.column-header h2{font-size:1.1rem}.ev-count-large{font-size:1.8rem}.win-probability{font-size:.9rem}.state-card{padding:.75rem;min-height:54px}.state-name{font-size:.95rem}.state-ev{font-size:1.1rem}.column-states{grid-template-columns:1fr;gap:.75rem}.candidate-column{min-height:250px;padding:1rem}.state-card{cursor:grab;touch-action:none}.state-card:active{cursor:grabbing;transform:scale(1.02)}.electoral-map-container{padding:.5rem}.electoral-map-container svg{width:100%!important;height:auto!important}.projected-dropdown{max-height:60vh;font-size:.9rem}.projected-dropdown button{padding:.75rem;min-height:48px}.leaflet-control-zoom a{width:44px!important;height:44px!important;line-height:44px!important;font-size:24px!important}.leaflet-top.leaflet-left{top:10px;left:10px}.leaflet-tooltip{font-size:14px!important;padding:10px 12px!important;max-width:250px!important;line-height:1.4!important}.leaflet-popup-content-wrapper{padding:12px!important;font-size:14px!important;max-width:280px!important}.leaflet-popup-close-button{width:32px!important;height:32px!important;font-size:24px!important;padding:4px!important}.leaflet-container{-webkit-tap-highlight-color:transparent;touch-action:pan-x pan-y;background:var(--bg-app)!important}.leaflet-control-custom{width:44px!important;height:44px!important;padding:8px!important}.leaflet-control-custom svg,.leaflet-control-custom img{width:28px!important;height:28px!important}}.current-standings,.scenarios-list,.scenario-card,.scenario-grid,.scenario-option{display:none}.race-chyron-wrapper{display:flex;align-items:center;gap:1rem;margin:0 auto}.race-chyron-bar{display:flex;width:1100px;max-width:1100px;height:100px;font-family:Roboto Condensed,Arial Narrow,sans-serif;box-shadow:0 4px 12px #0000004d;border-bottom:2px solid black;overflow:hidden;background:linear-gradient(to bottom,#fff,#f0f0f0)}.chyron-location-section{width:30%;min-width:180px;color:#000;padding:.29rem 1rem;display:flex;flex-direction:column;justify-content:center;position:relative;z-index:10;border-right:4px solid black}.chyron-projected-checkmark{position:absolute;top:.5rem;right:.5rem;width:58px;height:58px;background:#fbbf24;border:3px solid white;box-shadow:0 2px 6px #0000004d}.chyron-projected-check-line-1,.chyron-projected-check-line-2{position:absolute;height:5px;background:#000;transform-origin:left center;transform:scaleX(0)}.chyron-projected-check-line-1{width:18px;top:19.5px;left:5px;rotate:45deg;animation:chyron-drawDown .5s ease-out forwards}.chyron-projected-check-line-2{width:27px;top:32.5px;left:16.25px;rotate:315deg;animation:chyron-drawUp .5s ease-out forwards;animation-delay:.5s}.chyron-state-title{font-size:4.375rem;font-weight:900;line-height:1;letter-spacing:-.025em;text-transform:uppercase;margin:0;text-align:left}.chyron-metadata{display:flex;align-items:baseline;gap:.5rem;margin-top:.125rem;text-align:left}.chyron-race-label{font-size:2.25rem;font-weight:700;text-transform:uppercase;letter-spacing:-.025em;color:#000}.chyron-reporting-badge{font-size:1.875rem;font-weight:700;color:#000;line-height:1;margin-bottom:2px}.chyron-percent-symbol-small{font-size:1.25rem}.chyron-reporting-bar{height:.395rem;background:#fbbf24;position:absolute;bottom:0;left:0;transition:width 1s ease-out}.chyron-candidates-wrapper{flex:1;display:flex;align-items:center;background:linear-gradient(to bottom,#fff,#e8e8e8);padding-left:.5rem;padding-right:.5rem}.chyron-candidate-item{display:flex;align-items:center;height:100%;flex:1}.chyron-candidate-divider{margin-left:1.5rem;padding-left:2rem}.chyron-percent-box{display:flex;align-items:center;justify-content:flex-end;padding-right:.5rem;height:68px;width:80px;font-size:4.875rem;font-weight:900;letter-spacing:-.05em;box-shadow:0 1px 3px #0000001a;margin-right:.75rem;background-color:#fff;border:none}.chyron-percent-symbol{font-size:3.25rem;vertical-align:top;margin-top:.25rem}.chyron-candidate-details{display:flex;flex-direction:column;justify-content:center;line-height:1;text-align:left}.chyron-name-row{display:flex;align-items:flex-start;gap:.5rem}.chyron-candidate-name{font-size:4.425rem;font-weight:900;letter-spacing:-.025em;text-align:left}.chyron-winner-badge{background:#ffe900;color:#000;padding:2px;border-radius:2px;box-shadow:0 1px 3px #0003;display:flex;align-items:center;margin-top:11px;justify-content:center;width:29px;height:29px;position:relative}.chyron-winner-badge .checkmark-down,.chyron-winner-badge .checkmark-up{position:absolute;height:4.5px;background-color:#000;transform-origin:left center;transform:scaleX(0)}.chyron-winner-badge .checkmark-down{width:11px;top:11.5px;left:6px;rotate:45deg;animation:drawDown .5s ease-out forwards}.chyron-winner-badge .checkmark-up{width:18px;top:19px;left:11px;rotate:315deg;animation:drawUp .5s ease-out forwards;animation-delay:.5s}.chyron-vote-count{color:#000;font-weight:700;font-size:2.425rem;letter-spacing:-.025em;margin-top:.125rem}.chyron-ev-tracker{background:linear-gradient(to bottom,#fff,#f0f0f0);padding:.5rem 1rem;display:flex;flex-direction:column;justify-content:center;min-width:200px;height:auto;box-shadow:0 4px 12px #0000004d;border-bottom:2px solid black}.chyron-winner-indicator{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem 1rem;margin-bottom:.5rem;position:relative}.chyron-winner-text{font-size:1.5rem;font-weight:900;color:#fff;letter-spacing:.05em;text-shadow:2px 2px 4px rgba(0,0,0,.3)}.chyron-winner-checkmark{width:40px;height:40px;background:#fbbf24;display:flex;align-items:center;justify-content:center;border:3px solid white;position:relative;box-shadow:0 2px 6px #0000004d}.chyron-check-line-1,.chyron-check-line-2{position:absolute;height:6px;background:#000;transform-origin:left center;transform:scaleX(0)}.chyron-check-line-1{width:15px;top:14px;left:5px;rotate:45deg;animation:chyron-drawDown .5s ease-out forwards}.chyron-check-line-2{width:25px;top:25px;left:13px;rotate:315deg;animation:chyron-drawUp .5s ease-out forwards;animation-delay:.5s}@keyframes chyron-drawDown{to{transform:scaleX(1)}}@keyframes chyron-drawUp{to{transform:scaleX(1)}}.chyron-ev-header{font-size:2.25rem;font-weight:900;color:#000;text-align:center;letter-spacing:.1em;margin-bottom:.5rem;border-bottom:2px solid #333;padding-bottom:.25rem}.chyron-ev-bars{display:flex;flex-direction:column;gap:.5rem}.chyron-ev-row{display:flex;align-items:center;gap:.5rem}.chyron-ev-count{font-size:1.25rem;font-weight:900;min-width:35px;text-align:right}.chyron-ev-bar-container{flex:1;height:18px;background:#0000001a;border-radius:2px;overflow:hidden}.chyron-ev-bar{height:100%;border-radius:2px;transition:width .8s ease}.chyron-ev-name{font-size:.875rem;font-weight:900;min-width:60px;letter-spacing:-.025em}.projected-chyron-image{display:flex;width:1100px;max-width:1100px;height:100px}.projected-state-section{width:30%;min-width:180px;padding:.5rem 1rem;display:flex;flex-direction:column;justify-content:center;border-right:4px solid black}.projected-state-section .projected-state-name,.projected-state-section .projected-race-type,.projected-state-section .projected-reporting{color:#fff!important}.projected-state-name{font-size:3.5rem;font-weight:900;line-height:1;letter-spacing:-.025em;text-transform:uppercase;margin:0;color:#fff;text-align:left}.projected-race-info{display:flex;align-items:baseline;gap:.5rem;margin-top:.25rem}.projected-race-type{font-size:2rem;font-weight:700;text-transform:uppercase;letter-spacing:-.025em;color:#fff}.projected-reporting{font-size:1.5rem;font-weight:700;color:#fff}.projected-winner-section{flex:1;display:flex;align-items:center;padding:.5rem 1rem;position:relative;background:linear-gradient(to bottom,#fff,#f0f0f0);gap:1rem}.projected-content{flex:1;display:flex;flex-direction:column;gap:.5rem}.projected-winner-bar{display:flex;align-items:center;margin-top:20px;gap:.75rem;background:linear-gradient(90deg,#fbbf24,#f59e0b);padding:.5rem 1rem;height:30px;width:45%}.projected-winner-text{font-size:2rem;font-weight:900;color:#000;text-transform:uppercase;letter-spacing:.05em;margin-top:3px}.projected-candidate-name{font-size:5.5rem;font-weight:900;letter-spacing:-.025em;text-transform:uppercase;padding-left:.5rem;text-align:left;margin-top:-15px}.projected-checkmark-badge{width:20px;height:20px;position:relative;flex-shrink:0}.projected-checkmark-badge .checkmark-down,.projected-checkmark-badge .checkmark-up{position:absolute;height:6px;background-color:#000;transform-origin:left center;transform:scaleX(0)}.projected-checkmark-badge .checkmark-down{width:14px;top:13px;left:10.5px;rotate:45deg;animation:drawDown .5s ease-out forwards}.projected-checkmark-badge .checkmark-up{width:24px;top:23.5px;left:16.3px;rotate:315deg;animation:drawUp .5s ease-out forwards;animation-delay:.5s}@keyframes drawDown{to{transform:scaleX(1)}}@keyframes drawUp{to{transform:scaleX(1)}}.projected-image-container{width:100px;height:110px;background:linear-gradient(135deg,#4b5563,#374151);display:flex;margin-left:-1rem;align-items:flex-start;justify-content:left;margin-right:1.5rem;flex-shrink:0;box-shadow:0 2px 6px #0000004d}.projected-candidate-image{width:100%;height:100%;border-radius:0;border:none;object-fit:cover;object-position:center top}.projected-checkmark-badge{width:38px;height:38px;position:relative;flex-shrink:0;margin-right:1rem}.projected-label{font-size:1.5rem;font-weight:900;color:#000;letter-spacing:.1em;margin-right:1rem}.projected-winner-name{font-size:3rem;font-weight:900;color:#000;letter-spacing:-.025em}@media(max-width:1024px){.race-chyron-bar{height:70px}.chyron-location-section{min-width:150px;padding:.5rem .75rem}.chyron-state-title{font-size:1.5rem}.chyron-race-label{font-size:1rem}.chyron-percent-box{height:40px;width:56px;font-size:1.5rem}.chyron-candidate-name{font-size:1.5rem}.chyron-vote-count{font-size:1rem}.chyron-ev-tracker{min-width:180px;padding:.2rem .45rem;font-size:2.125rem}.chyron-ev-count{font-size:2.125rem;min-width:30px}.chyron-ev-bar-container{height:16px}}@media(max-width:768px){.race-chyron-bar{flex-direction:column;height:auto}.chyron-location-section,.chyron-candidates-wrapper{width:100%;min-width:unset}.chyron-candidates-wrapper{padding:.5rem}.chyron-candidate-divider{margin-left:1rem;padding-left:.75rem}.chyron-ev-tracker{width:100%;min-width:unset;border-left:none;border-top:3px solid #444;font-size:2.125rem}}.projection-slide-container{display:flex;justify-content:center;align-items:center;padding:2rem 0;font-family:Roboto Condensed,Arial Narrow,sans-serif}.projection-slide{width:100%;max-width:1280px;aspect-ratio:1.78 / 1;background:#1a1a1a;box-shadow:0 10px 40px #00000080;overflow:hidden;display:flex;flex-direction:row}.projection-slide-left{width:35%;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#5e5e5e,#1a1a1a);position:relative;overflow:hidden}.projection-slide-candidate-image{width:100%;height:100%;object-fit:cover;object-position:center top}.projection-slide-right{width:65%;display:flex;flex-direction:column}.projection-slide-header{padding:2rem 3rem;display:flex;align-items:center;flex-shrink:0;height:180px}.projection-slide-state-info{display:flex;flex-direction:column;align-items:flex-start;gap:.5rem;width:100%}.projection-slide-state-name{font-size:5rem;font-weight:900;color:#fff;text-transform:uppercase;margin:0;line-height:1;font-family:Oswald,sans-serif;letter-spacing:0em}.projection-slide-ev-display{display:flex;align-items:baseline;gap:1rem}.projection-slide-ev-number{font-size:5rem;font-weight:900;color:#fff;line-height:1}.projection-slide-ev-text{font-size:2rem;font-weight:900;color:#fff;text-transform:uppercase;line-height:1;text-align:left;position:relative;top:-19px}.projection-slide-video-section{flex:1;position:relative;display:flex;flex-direction:column;justify-content:center;align-items:center;overflow:hidden}.projection-slide-stars-video{position:absolute;top:-10%;left:0;width:100%;height:120%;object-fit:cover;z-index:0;filter:blur(8px) brightness(1.2);opacity:.8}.projection-slide-winner-bar{background:linear-gradient(90deg,#fbbf24,#f59e0b);padding:1rem 2rem;position:absolute;top:-210px;left:-100px;display:flex;align-items:center;gap:1rem;position:relative;z-index:1;box-shadow:0 4px 20px #fbbf2480;width:70%;max-width:700px}.projection-slide .checkmark-container{position:absolute;width:50px;height:50px;top:-21.5px;left:5px;flex-shrink:0}.projection-slide .checkmark-down,.projection-slide .checkmark-up{position:absolute;height:16px;background-color:#000;transform-origin:left center;transform:scaleX(0)}.projection-slide .checkmark-down{width:36px;top:64px;left:16px;rotate:40deg;animation:projection-slide-drawDown .5s ease-out forwards}.projection-slide .checkmark-up{width:65px;top:88px;left:33px;rotate:-49deg;animation:projection-slide-drawUp .5s ease-out forwards;animation-delay:.5s}@keyframes projection-slide-drawDown{to{transform:scaleX(1)}}@keyframes projection-slide-drawUp{to{transform:scaleX(1)}}.projection-slide-winner-text{font-size:5.25rem;font-weight:900;color:#000;padding-left:73px;text-transform:uppercase;letter-spacing:.04em;font-family:Oswald,sans-serif}.projection-slide-winner-name-container{position:absolute;z-index:1;left:-8px;top:115px;padding:0 3rem;display:flex;flex-direction:column;align-items:flex-start}.projection-slide-winner-first-name{font-size:7rem;font-weight:900;text-transform:uppercase;margin:0;line-height:1;font-family:Oswald,sans-serif;letter-spacing:-.03em;text-shadow:0 4px 12px rgba(0,0,0,.3)}.projection-slide-winner-last-name{font-size:10.5rem;font-weight:900;text-transform:uppercase;margin:0;line-height:1;font-family:Oswald,sans-serif;letter-spacing:-.03em;text-shadow:0 4px 12px rgba(0,0,0,.3)}@media(max-width:1024px){.projection-slide-state-name,.projection-slide-winner-first-name{font-size:3.5rem}.projection-slide-winner-last-name{font-size:4.375rem}.projection-slide-winner-text{font-size:2rem}}@media(max-width:768px){.projection-slide{flex-direction:column}.projection-slide-left,.projection-slide-right{width:100%}.projection-slide-left{height:40%}.projection-slide-state-name{font-size:4.5rem}.projection-slide-winner-first-name{font-size:2.5rem}.projection-slide-winner-last-name{font-size:3.125rem}}.projection-card-container{display:flex;justify-content:center;align-items:center;padding:2rem 0;font-family:Roboto Condensed,Arial Narrow,sans-serif}.projection-card{width:100%;max-width:1280px;aspect-ratio:1.78 / 1;background:#e5e5e5;box-shadow:0 10px 40px #0000004d;overflow:hidden;display:flex;flex-direction:column;position:relative}.projection-card .projection-background-video{position:absolute;top:0;left:-20px;width:110%;height:110%;object-fit:cover;z-index:0;filter:blur(6px) brightness(1.3);opacity:.7;display:block}.projection-card .projection-header{background:linear-gradient(90deg,#1e3a8a,#475569,#991b1b);padding:1.5rem 3rem;height:90px;display:flex;justify-content:space-between;align-items:center;flex-shrink:0;position:relative;z-index:10}.projection-card .state-name-projection{font-size:7rem;font-weight:900;color:#fff;text-transform:uppercase;margin:0;line-height:1}.projection-card .header-right-info{display:flex;flex-direction:column;align-items:flex-end;gap:.5rem}.projection-card .ev-display-new{display:flex;align-items:center;gap:1rem}.projection-card .ev-number-new{font-size:5.75rem;font-weight:900;color:#fff;text-transform:uppercase;letter-spacing:-.05em;line-height:1;white-space:nowrap}.projection-card .ev-text-new{font-size:2.875rem;font-weight:900;text-align:left;color:#fff;text-transform:uppercase;letter-spacing:0em;line-height:1}.projection-card .projection-title-text{font-size:2.2rem;font-weight:700;color:#fff;text-transform:uppercase;letter-spacing:.05em;white-space:nowrap}.projection-card .reporting-display-new{display:flex;align-items:baseline;gap:.5rem}.projection-card .reporting-number-new{font-size:3.8rem;font-weight:900;color:#fff;line-height:1}.projection-card .percent-sign-new{font-size:2.5rem}.projection-card .reporting-label-new{font-size:2.125rem;color:#fff;margin-left:.25rem}.projection-card .reporting-bar{height:.395rem;background:#fbbf24;position:absolute;bottom:18px;left:1170px;transition:width 1s ease-out}@keyframes projection-card-growBarLeftToRight{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.projection-card .projection-grid{display:flex;background:transparent;position:relative;flex:1;min-height:0;padding:0;gap:0;align-items:flex-start;justify-content:center;z-index:1;border-radius:0!important}.projection-card .projection-grid-two-col{gap:35px;justify-content:center;margin-top:5px}.projection-card .candidate-column{width:450px;height:500px;position:relative;display:flex;flex-direction:column;justify-content:flex-end;box-shadow:none;border:none;border-radius:0!important;background:transparent;overflow:visible!important;z-index:100;isolation:isolate}.projection-card .candidate-image-wrapper{position:absolute;background:#4a4a4a;top:0;left:0;width:100%;height:calc(100% - 95px);display:flex;align-items:center;justify-content:center;z-index:0;border-radius:none!important;overflow:hidden}.projection-card .candidate-image-wrapper.image-fallback{background:linear-gradient(135deg,#4b5563,#374151)}.projection-card .candidate-image-wrapper.image-fallback:after{content:"";position:absolute;width:8rem;height:8rem;background:url('data:image/svg+xml,<svg fill="%234b5563" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z"/></svg>') center/contain no-repeat;opacity:.3}.projection-card .candidate-image{position:absolute;top:-45px;background:linear-gradient(135deg,#3f3e3e,#4a4a4a);left:50%;transform:translate(-50%);width:135%;height:140%;object-fit:contain;object-position:center top;z-index:1}.projection-card .projected-state .candidate-image{position:absolute;top:-49px;height:135%;object-position:center top;width:135%}.projection-card .percentage-badge{position:absolute;top:280px;width:100px;height:62px;font-weight:900;font-size:4.9rem;padding:.75rem 1.25rem;box-shadow:0 4px 8px #00000080;z-index:9999!important;line-height:1;border-radius:0}.projection-card .badge-left{left:-8px!important;background:#fff!important;color:#0015bc}.projection-card .badge-right{right:-8px;background:#fff!important;color:#e81b23}.projection-card .candidate-name-bar{position:relative;width:100%;height:125px;padding:.5rem 1.5rem;text-align:left;z-index:10;margin-top:auto;background:#000000d9;display:flex;flex-direction:column;justify-content:center}.candidate-name-bar-dem{background:#0015bc}.candidate-name-bar-rep{background:#e81b23}.projection-card .candidate-name{font-size:65px!important;color:#fff;letter-spacing:0;font-family:Oswald,sans-serif!important;text-transform:uppercase;line-height:1;margin:0 0 0 -12px}.projection-card .candidate-votes{font-size:35px!important;font-weight:900;color:#fff;font-family:Roboto Condensed,sans-serif!important;letter-spacing:.02em}.projection-card .projected-winner-badge{display:inline-flex;align-items:center;justify-content:flex-start;gap:.5rem;margin-top:0;margin-left:1rem;font-size:1.5rem;font-weight:900;color:#fbbf24;background:linear-gradient(90deg,#fbbf24,#f59e0b);padding:.25rem 1rem;border-radius:0;position:relative;width:fit-content}.projection-card .checkmark-container-card{position:relative;width:30px;height:30px;flex-shrink:0;margin-bottom:5px}.projection-card .checkmark-down-card,.projection-card .checkmark-up-card{position:absolute;height:6px;background-color:#000;transform-origin:left center;transform:scaleX(0)}.projection-card .checkmark-down-card{width:13.5px;top:16px;left:6px;rotate:45deg;animation:projection-card-drawDown .5s ease-out forwards;animation-delay:.3s}.projection-card .checkmark-up-card{width:23px;top:24.5px;left:13px;rotate:-49deg;animation:projection-card-drawUp .5s ease-out forwards;animation-delay:.8s}@keyframes projection-card-drawDown{to{transform:scaleX(1)}}@keyframes projection-card-drawUp{to{transform:scaleX(1)}}.projection-card .winner-checkmark-text{font-size:2.5rem;font-weight:900;color:#000;text-transform:uppercase;letter-spacing:.02em}.projection-card .difference-display{position:relative;z-index:10;padding:0rem 2rem;text-align:center;display:flex;justify-content:center;align-items:center;gap:1rem;flex-shrink:0}.projection-card .difference-display .difference-label{font-size:3rem;font-weight:900;color:#000;text-transform:uppercase;letter-spacing:.05em}.projection-card .difference-display .difference-value{font-size:3.2rem;font-weight:900;color:#000;font-family:Roboto Condensed,sans-serif!important;letter-spacing:.02em}@keyframes projection-card-growStatusBar{0%{width:0;min-width:0;padding-left:0;padding-right:0;border-left-width:0;border-right-width:0;opacity:0}to{width:290px;min-width:290px;padding-left:2.5rem;padding-right:2.5rem;border-left-width:3px;border-right-width:3px;opacity:1}}@keyframes projection-card-slideFromCenter{0%{transform:translate(140px)}to{transform:translate(0)}}@keyframes projection-card-slideFromCenterRight{0%{transform:translate(-140px)}to{transform:translate(0)}}.projection-card .status-column{display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:0;position:relative;overflow:hidden;width:0;min-width:0;height:500px;box-shadow:0 4px 12px #0000004d;border-radius:0;border-left:0 solid white;border-right:0 solid white;opacity:0;animation:projection-card-growStatusBar 1s ease-out 2.2s forwards}.projection-card .status-too-close{background:#fbbf24}.projection-card .status-called{background:linear-gradient(135deg,#10b981,#059669)}.projection-card .status-content{width:370px;position:relative;z-index:1}.projection-card .status-title{font-size:6rem;font-weight:900;line-height:.85;letter-spacing:-.05em;color:#000;text-transform:uppercase;margin:0 0 1.5rem}.projection-card .difference-box{background:#fbbf2480;padding:.5rem 1rem;border-radius:0;display:inline-block;margin-top:1rem}.projection-card .difference-label{font-size:4rem;font-weight:900;color:#000;text-transform:uppercase;letter-spacing:0;margin-bottom:.05rem}.projection-card .difference-value{font-size:7rem;font-weight:900;color:#000;font-family:Roboto Condensed,sans-serif!important;letter-spacing:.02em}.projection-card .status-winner{color:#fff}.projection-card .winner-check{font-size:4rem;font-weight:900;color:#fff;line-height:1;margin-bottom:.5rem}.projection-card .winner-title{font-size:1.5rem;font-weight:900;line-height:1.1;letter-spacing:-.02em;color:#fff;text-transform:uppercase;margin:.5rem 0}.projection-card .winner-name{font-size:1.75rem;font-weight:900;color:#fff;margin-top:.75rem;text-transform:uppercase}.projection-card .projection-footer{background:transparent;padding:1rem 2rem;display:flex;justify-content:flex-end;align-items:center;flex-shrink:0;position:relative;z-index:10}.projection-card .network-branding{display:flex;align-items:center;gap:.5rem}.projection-card .footer-logo{height:60px;width:auto;filter:drop-shadow(2px 2px 4px rgba(0,0,0,.5))}@media(max-width:1024px){.projection-card .state-name-projection{font-size:2rem}.projection-card .candidate-name{font-size:1.25rem}.projection-card .percentage-badge{font-size:1.25rem;top:1rem;padding:.375rem .625rem}.projection-card .status-title{font-size:1.5rem}.projection-card .badge-left{left:1rem}.projection-card .badge-right{right:1rem}}@media(max-width:768px){.projection-card .projection-header{flex-direction:column;align-items:flex-start;gap:1rem}.projection-card .state-name-projection{font-size:1.5rem}.projection-card .candidate-name{font-size:1rem}.projection-card .candidate-votes{font-size:.875rem}.projection-card .status-title{font-size:1.25rem}.projection-card .percentage-badge{font-size:1rem;top:.75rem}.projection-card .status-column{padding:2rem 1.5rem}}.state-projection-card-container{display:flex;justify-content:center;align-items:center;padding:2rem 0;font-family:Roboto Condensed,Arial Narrow,sans-serif}.state-projection-card{width:100%;max-width:1280px;aspect-ratio:1.78 / 1;background:#e5e5e5;box-shadow:0 10px 40px #0000004d;overflow:hidden;display:flex;flex-direction:column;position:relative}.state-projection-background-video{position:absolute;top:0;left:0;width:110%;height:110%;object-fit:cover;z-index:0;filter:blur(6px) brightness(1.3);opacity:.7}.state-projection-card .state-projection-header{background:linear-gradient(90deg,#1e3a8a,#475569,#991b1b);padding:1.5rem 3rem;height:90px;display:flex;justify-content:space-between;align-items:center;flex-shrink:0;position:relative;z-index:10}.state-projection-card .state-projection-name{font-size:5rem;font-weight:900;color:#fff;text-transform:uppercase;margin:0;line-height:1}.state-projection-card .state-projection-ev-display{display:flex;align-items:center;gap:1rem}.state-projection-card .state-projection-ev-number{font-size:4.5rem;font-weight:900;color:#fff;text-transform:uppercase;letter-spacing:-.05em;line-height:1;white-space:nowrap}.state-projection-card .state-projection-ev-text{font-size:2.2rem;font-weight:900;text-align:left;color:#fff;text-transform:uppercase;letter-spacing:-.05em;line-height:1}.state-projection-card .state-projection-title-text{font-size:2.2rem;font-weight:700;color:#fff;text-transform:uppercase;letter-spacing:.05em;white-space:nowrap}.state-projection-card .state-projection-header-right{display:flex;flex-direction:row;align-items:center;gap:1.5rem;position:relative}.state-projection-card .state-projection-reporting-bar{height:.395rem;background:#fbbf24;position:absolute;bottom:0;left:120px;transition:width 1s ease-out,left .4s ease}.state-projection-card .state-projection-status-block{background:#fbbf24;padding:.5rem 1.5rem;border-radius:0}.state-projection-card .state-projection-status-text{font-size:1.8rem;font-weight:900;color:#000;text-transform:uppercase;letter-spacing:-.02em;display:block;width:min-content;line-height:1;text-align:center;margin:0 auto}.state-projection-card .state-projection-reporting-display{display:flex;align-items:baseline;gap:.5rem}.state-projection-card .state-projection-reporting-number{font-size:3.8rem;font-weight:900;color:#fff;line-height:1}.state-projection-card .state-projection-percent-sign{font-size:2.5rem}.state-projection-card .state-projection-reporting-label{font-size:2.125rem;color:#fff;margin-left:.25rem}.state-projection-card .state-projection-main-content{display:flex;flex:1;position:relative;z-index:1;overflow:hidden}.state-projection-card .state-projection-candidates{width:40%;display:flex;flex-direction:column;justify-content:flex-start;padding-top:2rem;gap:1rem}.state-projection-card .state-projection-candidate-row{display:flex;align-items:center;justify-content:flex-start;padding:1rem 2rem;min-height:100px;background:transparent;gap:1.5rem}.state-projection-card .state-projection-candidate-row-small{min-height:60px;padding:.5rem 2rem;background:#666!important}.state-projection-card .state-projection-candidate-info{display:flex;flex-direction:column;gap:.25rem}.state-projection-card .state-projection-candidate-name{font-size:5rem;text-transform:uppercase;line-height:1;font-weight:100;font-family:Oswald,sans-serif!important}.state-projection-card .state-projection-candidate-votes{font-size:2.5rem;font-weight:900;color:#333;text-align:left;font-family:Roboto Condensed,sans-serif!important}.state-projection-card .state-projection-candidate-name-small{font-size:5rem!important;color:#fff;text-transform:uppercase;line-height:1}.state-projection-card .state-projection-candidate-votes-small{font-size:2.5rem!important;color:#fff}.state-projection-card .state-projection-candidate-percentage{background:#fff;padding:1rem 1.5rem;font-size:5rem;font-weight:900;line-height:1}.state-projection-card .state-projection-candidate-percentage-small{background:#fff;color:#333;padding:.5rem 1rem;font-size:5rem;font-weight:900;line-height:1}.state-projection-card .county-map-container{width:60%;display:flex;align-items:center;justify-content:center;padding:2rem;background:none}.state-projection-card .county-svg-wrapper{width:100%;height:100%;display:flex;align-items:center;justify-content:center}.state-projection-card .county-svg-wrapper svg{width:100%;height:auto;max-height:100%}.state-projection-card .county-svg-wrapper.national-map svg{position:absolute;top:-11%;left:27%;max-width:100%;max-height:120%;transform:scale(.73);display:block}.state-projection-card .county-svg-wrapper.electoral-map svg{position:absolute;top:-5%;left:31.5%;max-width:100%;max-height:110%;transform:scale(.8);display:block}.state-projection-card .county-svg-wrapper:not(.national-map):not(.electoral-map) svg[viewBox*="800 330"]{transform:scale(.85);transform-origin:center center}.state-projection-card .county-map-error,.state-projection-card .county-map-loading{display:flex;align-items:center;justify-content:center;width:100%;height:100%;font-size:1.5rem;color:#666}.state-projection-card .state-projection-footer{background:transparent;padding:1rem 2rem;display:flex;justify-content:flex-end;align-items:center;flex-shrink:0;position:relative;z-index:10}.state-projection-card .state-projection-network-branding{display:flex;align-items:center;gap:.5rem}.state-projection-card .state-projection-footer-logo{height:60px;width:auto;filter:drop-shadow(2px 2px 4px rgba(0,0,0,.5))}.winner-check-mark-container{position:absolute;right:2rem;display:flex;align-items:center;justify-content:center}.winner-check-mark-gold-square{width:60px;height:60px;background:#fbbf24;display:flex;align-items:center;justify-content:center;border:3px solid white;position:relative}.check-mark-line-1,.check-mark-line-2{position:absolute;height:9px;background:#000;transform-origin:left center;transform:scaleX(0)}.check-mark-line-1{width:23.5px;top:25px;left:8px;rotate:45deg;animation:state-card-drawDown .5s ease-out forwards}.check-mark-line-2{width:38px;top:40.8px;left:19.2px;rotate:315deg;animation:state-card-drawUp .5s ease-out forwards;animation-delay:.5s}@keyframes state-card-drawDown{to{transform:scaleX(1)}}@keyframes state-card-drawUp{to{transform:scaleX(1)}}@media(max-width:1024px){.state-projection-card .state-projection-name{font-size:3rem}.state-projection-card .state-projection-candidate-name{font-size:2rem}.state-projection-card .state-projection-candidate-votes{font-size:1.5rem}}@media(max-width:768px){.state-projection-card .state-projection-main-content{flex-direction:column}.state-projection-card .state-projection-candidates,.state-projection-card .county-map-container{width:100%}.state-projection-card .state-projection-name{font-size:2rem}}.election-coverage{min-height:100vh;background:linear-gradient(135deg,#1a1a1a,#2d2d2d);color:#fff}.coverage-container{max-width:1600px;margin:0 auto;padding:2rem}.results-display{background:linear-gradient(135deg,#2a2a2a,#1f1f1f);border-radius:12px;overflow:hidden;box-shadow:0 10px 40px #00000080;margin-bottom:2rem}.state-header{background:linear-gradient(135deg,#d4d4d4,#e8e8e8);padding:1.5rem 2rem;display:flex;align-items:center;justify-content:space-between;border-bottom:4px solid #333}.state-branding{display:flex;align-items:center;gap:1rem}.election-year{background:linear-gradient(135deg,#c1272d,#e81b23);color:#fff;padding:.5rem 1.5rem;font-size:2.5rem;font-weight:900;border-radius:4px;box-shadow:0 4px 12px #c1272d66;font-family:Impact,Arial Black,sans-serif;letter-spacing:2px;display:flex;align-items:center;position:relative}.election-year:before{content:"";position:absolute;left:0;top:0;bottom:0;width:10px;background:linear-gradient(to bottom,#0015bc 0% 50%,#e81b23 50% 100%)}.election-coverage .state-name{font-size:3rem;font-weight:900;color:#333;text-shadow:2px 2px 4px rgba(0,0,0,.1);font-family:Impact,Arial Black,sans-serif;letter-spacing:3px}.electoral-votes{display:flex;align-items:center;gap:.75rem;background:#fff;padding:.75rem 1.5rem;border-radius:6px;box-shadow:0 2px 8px #0000001a}.ev-number{font-size:3rem;font-weight:900;color:#c1272d;font-family:Impact,Arial Black,sans-serif}.ev-label{font-size:.75rem;font-weight:700;color:#666;text-align:center;line-height:1.2;letter-spacing:.5px}.reporting-percentage{background:linear-gradient(135deg,#f1c40f,#f39c12);padding:1rem 2rem;border-radius:8px;box-shadow:0 4px 12px #f1c40f66;text-align:center;min-width:140px}.percentage-number{display:block;font-size:3.5rem;font-weight:900;color:#fff;text-shadow:2px 2px 4px rgba(0,0,0,.3);font-family:Impact,Arial Black,sans-serif;line-height:1}.percentage-label{display:block;font-size:1.25rem;font-weight:700;color:#fff;margin-top:.25rem;letter-spacing:2px}.results-grid{display:grid;grid-template-columns:1fr 1fr;gap:2rem;padding:2rem}.section-title{font-size:1.25rem;font-weight:700;color:#ccc;margin:0 0 1.5rem;padding-bottom:.5rem;border-bottom:2px solid #444;letter-spacing:1px}.candidate-result{margin-bottom:1.5rem;animation:slideIn .5s ease-out}@keyframes slideIn{0%{opacity:0;transform:translate(-30px)}to{opacity:1;transform:translate(0)}}.candidate-result.animate-in{animation:pulse .6s ease-in-out}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.02)}}.candidate-info{display:grid;grid-template-columns:auto 1fr auto;gap:1rem;align-items:center}.candidate-photo{width:80px;height:80px;border-radius:50%;object-fit:cover;border:4px solid #fff;box-shadow:0 4px 12px #0000004d}.candidate-bar{padding:1rem 1.5rem;border-radius:6px;box-shadow:0 4px 12px #0003}.candidate-name{font-size:1.5rem;font-weight:900;color:#fff;margin-bottom:.25rem;letter-spacing:1px;font-family:Arial Black,sans-serif}.candidate-votes{font-size:2rem;font-weight:700;color:#fff;font-family:Courier New,monospace}.candidate-percentage{font-size:3rem;font-weight:900;font-family:Impact,Arial Black,sans-serif;text-align:right;min-width:120px}.vote-difference{text-align:center;font-size:1.25rem;font-weight:700;color:#999;margin:.75rem 0;padding:.5rem;background:#ffffff0d;border-radius:4px;letter-spacing:1px}.county-map{position:relative}.map-container{background:#fff;border-radius:8px;padding:1rem;box-shadow:0 4px 12px #0003;position:relative;min-height:400px}.county-svg-container{width:100%;height:auto;position:relative}.county-svg-container svg{width:100%;height:auto;max-height:500px}.map-loading,.map-error{display:flex;align-items:center;justify-content:center;min-height:400px;color:#666;font-size:1.1rem;font-weight:500}.map-error{color:#e74c3c}.city-labels{position:absolute;inset:0;pointer-events:none}.city-labels-list{margin-top:1rem;padding:.75rem;background:#f0f0f0f2;border-radius:6px;font-size:.9rem;color:#333;text-align:center}.city-labels-list strong{color:#666;font-weight:700}.city-label{z-index:10}.state-counties-map{width:100%;height:auto}.network-logo{position:absolute;bottom:1rem;right:1rem;background:#fffffff2;padding:.5rem 1rem;border-radius:6px;box-shadow:0 2px 8px #0003}.state-selector{background:var(--bg-primary);padding:1.5rem;border-radius:8px;margin-bottom:2rem;box-shadow:0 2px 8px #0000001a}.state-selector h3{margin:0 0 1rem;color:var(--text-primary);font-size:1.25rem;font-weight:600}.state-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.5rem;max-height:300px;overflow-y:auto;padding:.5rem}.state-button{padding:.75rem;background:var(--bg-secondary);border:2px solid var(--border-color);border-radius:6px;color:var(--text-primary);font-size:.9rem;font-weight:500;cursor:pointer;transition:all .2s}.state-button:hover{background:var(--bg-hover);border-color:#007bff;transform:translateY(-2px);box-shadow:0 4px 8px #0000001a}.state-button.active{background:#007bff;color:#fff;border-color:#0056b3;font-weight:700}.control-panel{background:var(--bg-primary);padding:1.5rem;border-radius:8px;box-shadow:0 2px 8px #0000001a}.control-panel h3{margin:0 0 1rem;color:var(--text-primary);font-size:1.25rem;font-weight:600}.controls{display:flex;flex-direction:column;gap:1rem}.control-group{display:flex;align-items:center;gap:1rem}.control-group label{color:var(--text-primary);font-weight:500;min-width:180px}.slider{flex:1;height:8px;border-radius:4px;background:var(--bg-tertiary);outline:none;-webkit-appearance:none}.slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:20px;height:20px;border-radius:50%;background:#007bff;cursor:pointer;box-shadow:0 2px 4px #0003}.slider::-moz-range-thumb{width:20px;height:20px;border-radius:50%;background:#007bff;cursor:pointer;border:none;box-shadow:0 2px 4px #0003}.control-group span{color:var(--text-primary);font-weight:600;min-width:50px;text-align:right}.back-button{padding:.75rem 1.5rem;background:var(--bg-secondary);border:2px solid var(--border-color);border-radius:6px;color:var(--text-primary);font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s;align-self:flex-start}.back-button:hover{background:var(--bg-hover);border-color:#007bff;transform:translate(-4px)}@media(max-width:1200px){.results-grid{grid-template-columns:1fr}}@media(max-width:768px){.state-header{flex-direction:column;gap:1rem;text-align:center}.state-name{font-size:2rem}.election-year{font-size:1.75rem}.candidate-info{grid-template-columns:1fr;text-align:center}.coverage-container{flex-direction:column;height:auto!important}.coverage-slide{width:100%!important;height:auto!important;min-height:60vh}.coverage-controls{position:fixed;bottom:0;left:0;right:0;background:var(--bg-primary);border-top:2px solid var(--border-color);padding:12px;display:flex;flex-wrap:wrap;gap:8px;justify-content:space-around;z-index:1000}.coverage-controls button{flex:1 1 calc(50% - 8px);min-width:120px;min-height:44px;font-size:.9rem}.slide-title{font-size:1.5rem!important}.electoral-map-slide{padding:16px}.chyron{font-size:.85rem;padding:8px 12px}.results-card{padding:12px}.leaflet-control-zoom a{width:44px!important;height:44px!important;line-height:44px!important;font-size:24px!important}.leaflet-top.leaflet-left{top:10px;left:10px}.leaflet-tooltip{font-size:14px!important;padding:10px 12px!important;max-width:250px!important;line-height:1.4!important}.leaflet-popup-content-wrapper{padding:12px!important;font-size:14px!important;max-width:280px!important}.leaflet-popup-close-button{width:32px!important;height:32px!important;font-size:24px!important;padding:4px!important}.leaflet-container{-webkit-tap-highlight-color:transparent;touch-action:pan-x pan-y;background:var(--bg-app)!important}.leaflet-control-custom{width:44px!important;height:44px!important;padding:8px!important}.leaflet-control-custom svg,.leaflet-control-custom img{width:28px!important;height:28px!important}}} .candidate-photo{margin:0 auto}.candidate-percentage{text-align:center}.state-grid{grid-template-columns:repeat(auto-fill,minmax(100px,1fr))}} .graphics-lab{width:100vw;height:100vh;display:flex;flex-direction:column;background:#1e1e1e;color:#d4d4d4;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;overflow:hidden}.graphics-lab-header{height:60px;background:#2d2d2d;border-bottom:1px solid #3e3e3e;display:flex;align-items:center;justify-content:space-between;padding:0 1.5rem;flex-shrink:0}.header-left{display:flex;align-items:center;gap:.75rem}.app-icon{font-size:1.5rem}.graphics-lab-header h1{font-size:1rem;font-weight:600;margin:0;color:#ccc}.package-name{font-size:.9rem;color:#888;font-weight:400}.header-right{display:flex;gap:.75rem}.btn-save{background:#3a3a3a;color:#d4d4d4;border:1px solid #4a4a4a;padding:.5rem 1.5rem;border-radius:4px;cursor:pointer;font-size:.9rem;transition:all .2s}.btn-save:hover{background:#4a4a4a}.btn-publish{background:#5865f2;color:#fff;border:none;padding:.5rem 1.5rem;border-radius:4px;cursor:pointer;font-size:.9rem;font-weight:500;transition:all .2s}.btn-publish:hover{background:#4752c4}.graphics-lab-content{display:grid;grid-template-columns:280px 1fr 320px;flex:1;overflow:hidden}.left-sidebar{background:#252526;border-right:1px solid #3e3e3e;display:flex;flex-direction:column;gap:1.5rem;padding:1.5rem;overflow-y:auto}.upload-zone{border:2px dashed #3e3e3e;border-radius:8px;padding:2rem 1rem;text-align:center;background:#1e1e1e;transition:all .3s;cursor:pointer}.upload-zone.dragging{border-color:#5865f2;background:#5865f21a}.upload-zone.has-file{border-color:#4caf50;background:#4caf500d}.upload-icon{font-size:3rem;margin-bottom:.5rem;opacity:.5}.upload-text{font-size:.9rem;color:#888;margin-bottom:.5rem}.upload-browse{color:#5865f2;font-size:.85rem;cursor:pointer;text-decoration:underline}.upload-browse:hover{color:#4752c4}.upload-success{display:flex;flex-direction:column;gap:.5rem}.success-icon{font-size:2rem;color:#4caf50}.success-text{font-size:.9rem;color:#4caf50;font-weight:500}.reupload-link{color:#5865f2;font-size:.8rem;cursor:pointer;text-decoration:underline}.magic-id-validator{background:#1e1e1e;border-radius:8px;padding:1rem;border:1px solid #3e3e3e}.validator-header{display:flex;align-items:center;gap:.5rem;margin-bottom:1rem;padding-bottom:.75rem;border-bottom:1px solid #3e3e3e}.validator-icon{font-size:1.2rem}.validator-header h3{margin:0;font-size:.95rem;font-weight:600}.validator-section h4{margin:0 0 .75rem;font-size:.85rem;color:#888;text-transform:uppercase;letter-spacing:.5px}.tag-list{display:flex;flex-direction:column;gap:.5rem}.tag-item{display:flex;align-items:center;justify-content:space-between;padding:.5rem;background:#252526;border-radius:4px;font-size:.85rem}.tag-item.found{border-left:3px solid #4caf50}.tag-item.missing{border-left:3px solid #f44336}.tag-name{font-family:Courier New,monospace;font-weight:500}.tag-status{color:#888;font-size:.8rem;margin-left:auto;margin-right:.5rem}.tag-check{font-size:1.1rem;font-weight:700}.tag-item.found .tag-check{color:#4caf50}.tag-item.missing .tag-check{color:#f44336}.validator-warning{margin-top:1rem;padding:.75rem;background:#f443361a;border:1px solid rgba(244,67,54,.3);border-radius:4px;display:flex;align-items:center;gap:.5rem;font-size:.85rem;color:#f44336}.warning-icon{font-size:1.1rem}.settings-panel{display:flex;flex-direction:column;gap:1rem}.setting-group{display:flex;flex-direction:column;gap:.5rem}.setting-group label{font-size:.85rem;color:#888;text-transform:uppercase;letter-spacing:.5px}.setting-select{background:#1e1e1e;border:1px solid #3e3e3e;color:#d4d4d4;padding:.5rem;border-radius:4px;font-size:.9rem;cursor:pointer}.setting-select:focus{outline:none;border-color:#5865f2}.center-preview{background:#2d2d2d;display:flex;flex-direction:column;overflow:hidden}.preview-header{height:40px;background:#1e1e1e;border-bottom:1px solid #3e3e3e;display:flex;align-items:center;padding:0 1rem;flex-shrink:0}.preview-label{font-size:.8rem;color:#888;text-transform:uppercase;letter-spacing:1px}.preview-stage{flex:1;display:flex;align-items:center;justify-content:center;padding:2rem;overflow:auto;background:linear-gradient(45deg,#2a2a2a 25%,transparent 25%),linear-gradient(-45deg,#2a2a2a 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#2a2a2a 75%),linear-gradient(-45deg,transparent 75%,#2a2a2a 75%);background-size:20px 20px;background-position:0 0,0 10px,10px -10px,-10px 0px}.svg-renderer{max-width:100%;max-height:100%;background:#fff;border-radius:4px;box-shadow:0 8px 32px #0006}.svg-renderer.animating{animation:slideIn .6s ease-out}@keyframes slideIn{0%{transform:translate(-100%);opacity:0}to{transform:translate(0);opacity:1}}.svg-renderer svg{display:block;max-width:100%;height:auto}.preview-empty{text-align:center;color:#666}.empty-icon{font-size:4rem;margin-bottom:1rem;opacity:.3}.empty-text{font-size:1rem;opacity:.5}.right-sidebar{background:#252526;border-left:1px solid #3e3e3e;padding:1.5rem;overflow-y:auto;display:flex;flex-direction:column;gap:1.5rem}.controls-header{display:flex;align-items:center;gap:.5rem;padding-bottom:.75rem;border-bottom:1px solid #3e3e3e}.controls-icon{font-size:1.2rem}.controls-header h3{margin:0;font-size:.95rem;font-weight:600}.control-group{display:flex;flex-direction:column;gap:.75rem}.control-group label{font-size:.85rem;color:#888;text-transform:uppercase;letter-spacing:.5px;font-weight:500}.button-group{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}.btn-toggle{background:#1e1e1e;border:1px solid #3e3e3e;color:#d4d4d4;padding:.5rem;border-radius:4px;cursor:pointer;font-size:.85rem;transition:all .2s}.btn-toggle:hover{background:#2a2a2a}.btn-toggle.active{background:#5865f2;border-color:#5865f2;color:#fff;font-weight:500}.slider-container{display:flex;flex-direction:column;gap:.5rem}.slider{width:100%;height:4px;border-radius:2px;background:#3e3e3e;outline:none;-webkit-appearance:none}.slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:16px;height:16px;border-radius:50%;background:#5865f2;cursor:pointer}.slider::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:#5865f2;cursor:pointer;border:none}.slider-value{font-size:.9rem;color:#d4d4d4;font-weight:500;text-align:right}.text-input{background:#1e1e1e;border:1px solid #3e3e3e;color:#d4d4d4;padding:.5rem;border-radius:4px;font-size:.9rem}.text-input:focus{outline:none;border-color:#5865f2}.text-input.small{width:80px}.percent-votes-group{display:grid;grid-template-columns:80px 1fr;gap:.5rem}.btn-replay{background:linear-gradient(135deg,#5865f2,#4752c4);color:#fff;border:none;padding:1rem;border-radius:8px;cursor:pointer;font-size:.95rem;font-weight:500;display:flex;align-items:center;justify-content:center;gap:.5rem;margin-top:1rem;transition:all .2s}.btn-replay:hover{background:linear-gradient(135deg,#4752c4,#3c47a3);box-shadow:0 4px 12px #5865f266}.replay-icon{font-size:1.1rem}.left-sidebar::-webkit-scrollbar,.right-sidebar::-webkit-scrollbar,.preview-stage::-webkit-scrollbar{width:8px}.left-sidebar::-webkit-scrollbar-track,.right-sidebar::-webkit-scrollbar-track,.preview-stage::-webkit-scrollbar-track{background:#1e1e1e}.left-sidebar::-webkit-scrollbar-thumb,.right-sidebar::-webkit-scrollbar-thumb,.preview-stage::-webkit-scrollbar-thumb{background:#3e3e3e;border-radius:4px}.left-sidebar::-webkit-scrollbar-thumb:hover,.right-sidebar::-webkit-scrollbar-thumb:hover,.preview-stage::-webkit-scrollbar-thumb:hover{background:#4e4e4e}@media(max-width:1400px){.graphics-lab-content{grid-template-columns:260px 1fr 300px}}@media(max-width:1200px){.graphics-lab-content{grid-template-columns:240px 1fr 280px}.left-sidebar,.right-sidebar{padding:1rem}}@media(max-width:1024px){.graphics-lab-content{grid-template-columns:1fr;grid-template-rows:auto 1fr auto}.left-sidebar,.right-sidebar{max-height:300px}}:root{--bg-primary: #ffffff;--bg-secondary: #f8f9fa;--bg-tertiary: #f3f4f6;--bg-app: #a4a6ab;--text-primary: #1f2937;--text-secondary: #6b7280;--text-tertiary: #9ca3af;--border-color: #e5e7eb;--border-color-hover: #d1d5db;--link-color: #6b7280;--link-hover: #1f2937;--shadow-sm: rgba(0, 0, 0, .1);--shadow-md: rgba(0, 0, 0, .2);--shadow-lg: rgba(0, 0, 0, .3);--overlay-bg: rgba(0, 0, 0, .5);--footer-gradient-start: #1a1a1a;--footer-gradient-end: #2d2d2d;--footer-gradient-hover-start: #2d2d2d;--footer-gradient-hover-end: #3a3a3a;--button-bg: #f0f0f0;--button-hover-bg: #e0e0e0;--button-active-bg: #d0d0d0;--button-border: #ccc;--button-border-hover: #bbb;--brand-primary: #a30022;--brand-primary-dark: #8a001d;--brand-logo-bg: #a30022;--success-bg: #d4edda;--success-border: #c3e6cb;--success-text: #155724;--info-bg: #f0f7ff;--info-border: #cce5ff;--info-text: #007bff;--warning-bg: #fff3cd;--warning-border: #ffc107;--warning-text: #856404;--card-bg: #f8f9fa;--card-shadow: rgba(0, 0, 0, .1);--icon-invert-filter: grayscale(100%) brightness(0)}body{zoom:.8;-moz-transform:scale(.8);-moz-transform-origin:0 0}[data-theme=dark]{--bg-primary: #1a1a1a;--bg-secondary: #2d2d2d;--bg-tertiary: #3a3a3a;--bg-app: #1a1a1a;--text-primary: #e5e7eb;--text-secondary: #9ca3af;--text-tertiary: #6b7280;--border-color: #374151;--border-color-hover: #4b5563;--link-color: #9ca3af;--link-hover: #e5e7eb;--shadow-sm: rgba(0, 0, 0, .3);--shadow-md: rgba(0, 0, 0, .5);--shadow-lg: rgba(0, 0, 0, .7);--overlay-bg: rgba(0, 0, 0, .7);--footer-gradient-start: #0f0f0f;--footer-gradient-end: #1a1a1a;--footer-gradient-hover-start: #1a1a1a;--footer-gradient-hover-end: #252525;--button-bg: #374151;--button-hover-bg: #4b5563;--button-active-bg: #1f2937;--button-border: #4b5563;--button-border-hover: #6b7280;--brand-primary: #c91a3a;--brand-primary-dark: #a30022;--brand-logo-bg: #a30022;--success-bg: #1a4d2e;--success-border: #265c3a;--success-text: #90ee90;--info-bg: #1a3a5c;--info-border: #2b4f7a;--info-text: #6db3f2;--warning-bg: #4d3d1a;--warning-border: #7a5f1a;--warning-text: #ffd966;--card-bg: #2d2d2d;--card-shadow: rgba(0, 0, 0, .5);--icon-invert-filter: grayscale(100%) brightness(200%)}.App{text-align:center}.App-logo{height:40vmin;pointer-events:none}@media(prefers-reduced-motion:no-preference){.App-logo{animation:App-logo-spin infinite 20s linear}}.App-header{background-color:#282c34;min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:calc(10px + 2vmin);color:#fff}.App-link{color:#61dafb}@keyframes App-logo-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}body{margin:0;padding:0;background-color:var(--bg-app)}.leaflet-container{background:var(--bg-app)!important}hr{border:0px!important;margin-bottom:0!important}.slidecontainer{width:100%;margin-top:5px}.slider{-webkit-appearance:none;width:50%;height:7px;border-radius:5px;background:#d3d3d3;outline:none;opacity:.7;-webkit-transition:.2s;transition:opacity .2s}.slider:hover{opacity:1}.slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:15px;height:15px;border-radius:50%;background:#3b13ee;cursor:pointer}.slider::-moz-range-thumb{width:15px;height:15px;border-radius:50%;background:#3b13ee;cursor:pointer}.slider-Poll-Closing{-webkit-appearance:none;width:50%;height:7px;border-radius:5px;background:#d3d3d3;outline:none;opacity:.7;-webkit-transition:.2s;transition:opacity .2s}.slider-Poll-Closing:hover{opacity:1}.slider-Poll-Closing::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:5px;height:15px;background:#ee1313;cursor:pointer}.slider-Poll-Closing::-moz-range-thumb{width:5px;height:15px;background:#ee1313;cursor:pointer}#map{position:absolute;top:18vh;left:15vw;right:15vw;bottom:10vh;margin:auto;transition:all .3s ease}.mobile-Block{visibility:hidden;width:100%;height:100%}@media screen and (max-width:900px){#copyright-Footer{display:none}.mail{left:35%}.instagram{left:65%}.mobile-Block{visibility:visible;z-index:1;border-radius:25px;background:#999;width:100%;height:100%;border:5px solid #a30022;position:absolute;top:0%;left:0%;text-align:center;font-size:large;min-width:300px}#mobile-Block-Text{position:absolute;top:20%;left:0%;width:95%}#mobile-Block-Logo{position:absolute;top:55%;width:70%;left:17%}}.shift-Block{width:100%;height:50px}.shift-Block-MOE{width:100%;height:20px}.shift-Name{margin-top:2px;float:left}.pct-Sign{float:left;margin-top:2px}.moe-Input{width:50px;float:right}.shift-Input{width:55px;background-color:#bac2ef;height:15px;float:left}.shift-Input-Turnout{width:55px;background-color:#fff;height:18px;float:left;margin-top:3px}.poll-closing-selector{float:right;width:96px;padding:5px;font-size:14px;border:1px solid #ccc;border-radius:4px;background-color:#f9f9f9;cursor:pointer;box-shadow:0 2px 4px #0000001a}path.leaflet-interactive{stroke-width:2;stroke:#000;outline:none;z-index:1}path.leaflet-interactive.key-race-state{stroke:gold!important;stroke-width:4!important;z-index:1000!important}path.leaflet-interactive.selected-state{stroke:#0f0!important;stroke-width:3!important;z-index:999!important}.leaflet-interactive{stroke-width:0;fill-opacity:1}path.leaflet-interactive:hover{opacity:1;fill:#333;z-index:998!important}path.leaflet-interactive-Special{stroke-width:1;stroke:#000}#sidePanel{height:90vh;width:0vw;position:fixed;z-index:-1;top:0;right:0;background-color:#fff;overflow-x:hidden;transition:width .5s ease;padding-top:6vh;color:#000}#sidePanel a{padding:8px 8px 8px 28px;text-decoration:none;font-size:17px;color:#000;display:block;transition:.3s}#sidePanel h2{font-size:25px}#sidePanel hr{border:none;height:2px;background-color:#333}#sidePanel a:hover{color:#f1f1f1}#sidePanel .closeBtn{position:absolute;top:0;right:20px;font-size:36px;margin-left:50px}#mainContent{transition:margin-right .5s;padding:12px}#title{position:absolute;left:15.3%;width:1060px;top:13%;margin:auto}#candidateNames{position:absolute;top:-23px;margin-right:20px;font-size:20px}.vl{position:absolute;border-right:.2vw solid rgb(251,255,0);border-left:.2vw solid rgb(251,255,0);left:84.4vw;top:-2vh;height:6vh;z-index:401;transform:translate(-50vw);transition:all .3s ease}#electionSubject{font-size:20px}.bar{position:absolute;top:-.05vh;width:69vw;height:4vh;border-radius:1.5vh;background-color:#fff;left:50vw;transform:translate(-50vw);color:#fff;text-align:center;border:#000000;border-width:.5vh;transition:all .3s ease}h1{display:inline-block;margin:0 10px}.fifty{width:56.877%;height:100%;background-color:#1a0dd4;float:left;border:gold;border-width:33px;border-top-left-radius:10px;border-bottom-left-radius:10px;display:flex;align-items:center}.twentyfive{width:0%;height:100%;background-color:#636363;float:left}.ten{width:43.123%;height:100%;background-color:red;border-top-right-radius:10px;border-bottom-right-radius:10px;float:right}a :hover{fill:#c9d655;color:#000;text-decoration:none}body{background-color:var(--bg-app);margin:0;width:100%;height:auto;overflow:visible}#about-Text{font-size:8;width:100%}#about-Text-Disclaimer{font-size:1;width:100%}#help-Title-Text{position:absolute;top:10%;font-size:200%;width:100%;text-align:center}#Error-Title-Text{position:absolute;top:10%;font-size:270%;color:#fff;width:100%;text-align:center}#logo-About-Page{position:absolute;top:40%;width:40%;left:29%;z-index:-1}#logo-Help-Page{position:absolute;top:145%;width:40%;left:29%}.header-Links:hover{background-color:#c9d655;color:#000;height:100%}.website-Name-Header{position:absolute;top:-10px;left:100px;font-size:45px;color:#fff}@media screen and (max-width:1000px){#logo-About-Page{top:60%}}@media screen and (max-width:800px){.website-Name-Header{display:none}.logo{position:absolute;left:32%}#logo-About-Page{top:70%}}@media screen and (max-width:600px){#copyright-Footer{display:none}#logo-About-Page{top:80%}}.logo{position:flex;width:88px;float:left;left:2%}#USA-Map{position:absolute;top:9%}.logo :hover{background-color:#d65555}body:not(.wikipedia-export) svg:hover:not(.lh-american-flag){fill:#c9d655}.lh-american-flag{pointer-events:none!important}#privacy-Link{position:absolute;top:10px;left:5px;text-decoration:none}.footer-SVGS{fill:#fff;justify-content:center;align-items:center;display:flex;width:auto}.mail,.twitter,.instagram{fill:#fff;margin:5px 20px}#copyright-Footer{position:absolute;top:30%;right:1%;float:right}.info{font:12px/12px Arial,Helvetica,sans-serif;background:#fff;box-shadow:0 0 15px #0003;width:255px;height:145px;border-width:2px;border-color:red;border-radius:5px}.info h4{margin-top:5px;margin-bottom:0;color:#000}.info hr{margin-top:8px;margin-bottom:8px;background-color:#000;border:none;height:1px;background-color:#333}.info div{margin-top:-0px;color:#000}.info p{margin:auto;color:#000}#info-Candidate1-Name{position:absolute;left:23px;top:39px;font-size:14px;z-index:504}#map{z-index:0}#info-Candidate2-Name{position:absolute;left:23px;top:70.6px;font-size:14px;z-index:504}#info-Candidate3-Name{position:absolute;left:23px;top:102.2px;font-size:14px;z-index:504}#info-Candidate1-Votes{position:absolute;right:52.5px;top:39px;font-size:14px;z-index:504}#info-Candidate2-Votes{position:absolute;right:52.5px;top:70.6px;font-size:14px;z-index:504}#info-Candidate3-Votes{position:absolute;right:52.5px;top:102.2px;font-size:14px;z-index:504}.map-Mode-Buttons{display:flex;gap:8px;background-color:#fff;padding:10px;border-radius:8px;box-shadow:0 2px 5px #0000001a}.map-Mode-Buttons button{padding:6px 12px;font-size:14px;color:#333;background-color:#f0f0f0;border:1px solid #ccc;border-radius:4px;cursor:pointer;transition:all .2s ease-in-out}.map-Mode-Buttons button:hover{background-color:#e0e0e0;border-color:#bbb}.map-Mode-Buttons button:active{background-color:#d0d0d0;border-color:#aaa;transform:scale(.98)}.map-Mode-Buttons button#Reset{background-color:#fcc;color:#900;border-color:#f99}.map-Mode-Buttons button#Reset:hover{background-color:#ffb3b3;border-color:#ff8080}.candidate1Pct{position:absolute;right:5px;top:39px;font-size:14px;z-index:504}.candidate2Pct{position:absolute;right:5px;top:70.6px;font-size:14px;z-index:504}.candidate3Pct{position:absolute;right:5px;top:102.2px;font-size:14px;z-index:504}#info-State-Name{position:absolute;left:5px;top:5px}#info-Electoral-Votes{position:absolute;right:5px;top:5px}#info-Total-Votes{position:absolute;left:5px;bottom:5px}#info-Turnout{position:absolute;right:5px;bottom:5px}#hr-First{position:absolute;top:20px;width:100%;background-color:#000;border:none;height:1px;background-color:#333;z-index:405}#hr-Second{position:absolute;top:51.66px;width:100%;border:none;height:1px;background-color:#a2a2a2}#hr-Third{position:absolute;top:83.2px;width:100%;border:none;height:1px;background-color:#a2a2a2}#hr-Last{position:absolute;top:115px;width:100%;background-color:#000;border:none;height:1px;background-color:#333;z-index:405}.checkmark,.checkmark2{position:absolute;left:3px}@keyframes flash{0%{color:#fff}50%{color:#ff0}to{color:#fff}}.flashing{animation:flash 1s infinite}.leaflet-pane{z-index:1000}.leaflet-pane .leaflet-tooltip.my-tooltip{z-index:10000!important;pointer-events:auto!important}.map-Mode-Buttons{position:absolute;top:86.7vh;left:25vw;padding:1vh 1.5vw;background-color:#fff;font-size:1.5vh;z-index:40;border:.25vh solid #000000;transition:all .3s ease}.home-Button{position:absolute;top:27vh;left:15.65vw;font-size:4vh;z-index:401;transition:all .3s ease}.active{background-color:#dedb10!important;color:#000}.Election-Night-Button{position:absolute;top:87vh;right:75vw;padding:.5vh .5vw;background-color:#fff;border-radius:8px!important;z-index:401;box-shadow:0 2px 5px #0003;transition:all .3s ease}.Election-Night-Button button{padding:4px 10px;font-size:14px;font-weight:500;color:#333;background-color:#f9f9f9;border:1px solid #ccc;border-radius:4px;cursor:pointer;transition:all .2s ease-in-out}.Election-Night-Button button:hover{background-color:#f0f0f0;border-color:#bbb}.Election-Night-Button button:active{background-color:#e0e0e0;border-color:#aaa;transform:scale(.98)}.Election-Night-Button button:focus{outline:none;box-shadow:0 0 0 2px #0003}.Election-Night-Speed-Buttons{padding:.75vh .75vw;background-color:#fff;z-index:401;transition:all .3s ease;width:230px}.speed-button{position:absolute;top:87vh;right:75vw;padding:.5vh .5vw;background-color:#fff;border-radius:8px;z-index:401;box-shadow:0 2px 5px #0003;transition:all .3s ease;color:#000;border-color:#000}.speed-button:hover{background-color:#f0f0f0;border-color:#bbb}#sidePanelOpenButton{background-color:#fff;position:absolute;top:5%;left:98.5%;height:40px;border:none;border-radius:4px;transition:.5s}#hr1{position:absolute;top:25px;left:0;width:100%;z-index:402;border:none;height:1px;background-color:#333}#hr2{position:absolute;top:52px;left:0;width:100%;z-index:402;border:none;height:1px;background-color:#a2a2a2}#hr3{position:absolute;top:76px;left:0;width:100%;z-index:402;border:none;height:.5px;background-color:#a2a2a2}#hr4{position:absolute;top:98px;left:0;width:100%;z-index:402;border:none;height:1px;background-color:#333}#info-vl{position:absolute;border-right:.5px solid #a2a2a2;border-left:.5px solid #a2a2a2;top:28px;right:50px;height:96px;z-index:401}.modal{display:none;position:fixed;z-index:1;padding-top:100px;left:0;top:0;width:100%;height:100%;overflow:auto;background-color:#000;background-color:#0006}.modal-header h2{font-size:25px}.modal-content{background-color:#fefefe;margin:auto;padding:20px;border:1px solid #888;width:400px;font-size:12px}.close-Modal{color:red;position:absolute;top:0;right:10px;font-size:38px;font-weight:700}.close-Modal:hover,.close-Modal:focus{color:#000;text-decoration:none;cursor:pointer}.slider-Election-Speed{-webkit-appearance:none;width:100%;height:25px;background:#d3d3d3;outline:none;opacity:.7;-webkit-transition:.2s;transition:opacity .2s}.slider-Election-Speed:hover{opacity:1}.slider-Election-Speed::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:5px;height:25px;background:#04aa6d;cursor:pointer}.slider-Election-Speed::-moz-range-thumb{width:25px;height:25px;background:#04aa6d;cursor:pointer}h3{text-align:center;font-size:18px;margin:20px 0}hr{border:1px solid #ccc;margin:10px 0}.label{font-size:14px;font-weight:700;margin-right:10px}.input-container{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}.input-container input{width:40%;padding:5px;font-size:14px;border:1px solid #ccc;border-radius:5px}.input-container input[type=number]{width:20%}.center-text{text-align:center;font-weight:700;margin-top:20px}.button-container{display:flex;justify-content:space-between;align-items:center;margin-top:20px}button{padding:3px 8px;font-size:14px;border:1px solid #007bff;background-color:#007bff;color:#fff;border-radius:5px;cursor:pointer;transition:background-color .3s}button:hover{background-color:#0056b3}.slider-container{margin-top:10px}.slider-container input[type=range]{width:100%;margin:5px 0}.shift-Block{display:flex;align-items:center;margin-bottom:15px}.shift-Block input{margin-left:10px;width:50px}.shift-Block .slidecontainer{width:100%;margin-top:5px}.shift-Block .shift-Name{margin-right:10px;font-size:14px}.pct-Sign{margin-left:5px}.center-text-footer{font-size:12px;color:#666;margin-top:20px}input[type=checkbox]{appearance:none;-webkit-appearance:none;width:20px;height:20px;background-color:#f0f0f0;border:2px solid #ccc;border-radius:4px;cursor:pointer;position:relative}input[type=checkbox]:checked:after{content:"X";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:16px;color:#333;font-weight:700}input[type=checkbox]:hover{border-color:#666}input[type=checkbox]:focus{outline:none;box-shadow:0 0 4px 2px #007bff80}.blinking-text{animation:text-blink 1s infinite}@keyframes text-blink{0%{color:#fff}50%{color:transparent}to{color:#fff}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}*{margin:0;padding:0;box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden}#root{padding-top:72px}@media(max-width:768px){#root{padding-top:56px}}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}@media(max-width:768px){button,a,input,select,textarea{min-height:44px;min-width:44px}body,input,textarea,select{font-size:16px}img{max-width:100%;height:auto}body,html{overflow-x:hidden}}@media(hover:none)and (pointer:coarse){button:active,a:active{opacity:.7}}[data-ezoic-role=privacy-policy]{position:fixed!important;bottom:0!important;left:0!important;right:0!important;z-index:9999!important;background:var(--bg-primary)!important;border-top:2px solid var(--border-color)!important;box-shadow:0 -4px 12px #00000026!important;padding:16px 20px!important;width:100%!important;clear:both!important}[data-ezoic-role=privacy-policy] h2{color:var(--text-primary)!important;font-size:16px!important;margin:0 0 8px!important}[data-ezoic-role=privacy-policy] p{color:var(--text-secondary)!important;margin:8px 0 12px!important;font-size:13px!important}[data-ezoic-role=privacy-policy] button{margin:0 8px!important;padding:8px 16px!important;border-radius:4px!important;font-size:14px!important;cursor:pointer!important;border:1px solid transparent!important}#ez-ccpa-accept-all{background-color:#22c55e!important;color:#fff!important}#ez-ccpa-reject-all{background-color:var(--bg-secondary)!important;color:var(--text-primary)!important;border:1px solid var(--border-color)!important}
