.skip-to-content:focus{left:0!important;top:0!important;position:fixed!important}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}:root{--navy-900: #0f2744;--navy-800: #1e3a5f;--navy-700: #2c4a72;--navy-600: #3d5a80;--navy-500: #4a6fa5;--slate-900: #1a202c;--slate-800: #2d3748;--slate-700: #4a5568;--slate-600: #718096;--slate-500: #a0aec0;--slate-400: #cbd5e0;--slate-300: #e2e8f0;--slate-200: #edf2f7;--slate-100: #f7fafc;--slate-50: #fafbfc;--burgundy-700: #7b2d42;--burgundy-600: #8b2942;--burgundy-500: #a13652;--burgundy-400: #c45a75;--success: #2f855a;--warning: #c05621;--error: #c53030;--font-display: "Libre Baskerville", Georgia, serif;--font-body: "Source Sans 3", -apple-system, BlinkMacSystemFont, sans-serif;--container-max: 1200px;--container-padding: 1.5rem;--transition-fast: .15s ease;--transition-base: .25s ease;--transition-slow: .4s ease;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .05);--shadow-base: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -1px rgba(0, 0, 0, .06);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -2px rgba(0, 0, 0, .05);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .1), 0 10px 10px -5px rgba(0, 0, 0, .04)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;scroll-behavior:smooth}body{font-family:var(--font-body);font-weight:400;line-height:1.6;color:var(--slate-800);background-color:var(--slate-50);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);font-weight:700;line-height:1.2;color:var(--navy-800)}h1{font-size:2.5rem}h2{font-size:2rem}h3{font-size:1.5rem}h4{font-size:1.25rem}p{margin-bottom:1rem}a{color:var(--navy-600);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--burgundy-600)}.container{max-width:var(--container-max);margin:0 auto;padding:0 var(--container-padding)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem 1.5rem;font-family:var(--font-body);font-size:.9375rem;font-weight:600;line-height:1;border:none;border-radius:6px;cursor:pointer;transition:all var(--transition-fast)}.btn-primary{background:var(--navy-700);color:#fff}.btn-primary:hover{background:var(--navy-800);transform:translateY(-1px);box-shadow:var(--shadow-base)}.btn-secondary{background:transparent;color:var(--navy-700);border:2px solid var(--navy-700)}.btn-secondary:hover{background:var(--navy-700);color:#fff}.btn-accent{background:var(--burgundy-600);color:#fff}.btn-accent:hover{background:var(--burgundy-700);transform:translateY(-1px);box-shadow:var(--shadow-base)}.card{background:#fff;border-radius:8px;box-shadow:var(--shadow-sm);border:1px solid var(--slate-200);transition:all var(--transition-base)}.card:hover{box-shadow:var(--shadow-base);border-color:var(--slate-300)}.badge{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .625rem;font-size:.75rem;font-weight:600;border-radius:9999px;text-transform:uppercase;letter-spacing:.025em}.badge-verified{background:#2f855a1a;color:var(--success)}.badge-incumbent{background:#1e3a5f1a;color:var(--navy-700)}.badge-candidate{background:#8b29421a;color:var(--burgundy-600)}input,textarea,select{font-family:var(--font-body);font-size:1rem;padding:.75rem 1rem;border:1px solid var(--slate-300);border-radius:6px;background:#fff;color:var(--slate-800);transition:all var(--transition-fast);width:100%}input:focus,textarea:focus,select:focus{outline:none;border-color:var(--navy-500);box-shadow:0 0 0 3px #4a6fa51a}input::placeholder{color:var(--slate-500)}.header{background:#fff;border-bottom:1px solid var(--slate-200);position:sticky;top:0;z-index:100}.header-inner{display:flex;align-items:center;height:60px;gap:1rem}.logo{display:flex;align-items:center;gap:.5rem;font-family:var(--font-display);font-size:1.125rem;font-weight:700;color:var(--navy-800);white-space:nowrap;flex-shrink:0}.logo-mark{width:34px;height:34px;background:linear-gradient(135deg,var(--navy-700) 0%,var(--navy-800) 100%);border-radius:8px;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:.875rem}.nav{display:flex;align-items:center;gap:.25rem;flex:1;justify-content:center;min-width:0}.nav-link{font-size:.8125rem;font-weight:500;color:var(--slate-600);padding:.375rem .625rem;border-radius:6px;position:relative;white-space:nowrap;transition:color .15s ease,background .15s ease}.nav-link:after{content:"";position:absolute;bottom:-2px;left:50%;transform:translate(-50%);width:0;height:2px;background:var(--burgundy-500);transition:width var(--transition-fast);border-radius:1px}.nav-link:hover{color:var(--navy-800);background:var(--slate-50)}.nav-link:hover:after{width:60%}.nav-link.active{color:var(--navy-800);font-weight:600}.nav-link.active:after{width:60%}.nav-actions{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.hero{background:linear-gradient(180deg,var(--slate-100) 0%,var(--slate-50) 100%);padding:5rem 0;position:relative;overflow:hidden}.hero:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,var(--navy-700) 0%,var(--burgundy-500) 50%,var(--navy-700) 100%)}.hero-content{max-width:720px;margin:0 auto;text-align:center}.hero h1{font-size:3rem;margin-bottom:1.5rem;color:var(--navy-900)}.hero h1 span{color:var(--burgundy-600)}.hero-tagline{font-family:var(--font-display);font-style:italic;font-size:1.375rem;color:var(--slate-600);margin-bottom:1.5rem}.hero p{font-size:1.125rem;color:var(--slate-700);margin-bottom:2rem}.hero-actions{display:flex;justify-content:center;gap:1rem;flex-wrap:wrap}.search-section{padding:2rem 0;background:#fff;border-bottom:1px solid var(--slate-200)}.search-bar{display:flex;gap:1rem;max-width:700px;margin:0 auto}.search-input-wrapper{flex:1;position:relative}.search-input-wrapper svg{position:absolute;left:1rem;top:50%;transform:translateY(-50%);color:var(--slate-500)}.search-input-wrapper input{padding-left:3rem}.section{padding:3rem 0}.section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem}.section-title{font-size:1.25rem;display:flex;align-items:center;gap:.5rem}.section-title svg{color:var(--burgundy-500)}.section-link{font-size:.875rem;font-weight:600;color:var(--navy-600);display:flex;align-items:center;gap:.25rem}.location-bar{background:var(--navy-800);color:#fff;padding:.75rem 0}.location-inner{display:flex;align-items:center;justify-content:space-between}.location-info{display:flex;align-items:center;gap:.75rem;font-size:.875rem}.location-info svg{opacity:.7}.location-change{font-size:.8125rem;color:var(--slate-400);background:none;border:none;cursor:pointer;text-decoration:underline}.location-change:hover{color:#fff}.feed-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.5rem}.feed-card{padding:1.25rem}.feed-card-header{display:flex;align-items:flex-start;gap:.75rem;margin-bottom:.75rem}.feed-card-avatar{width:48px;height:48px;border-radius:50%;background:var(--slate-200);display:flex;align-items:center;justify-content:center;color:var(--slate-600);font-weight:600;flex-shrink:0}.feed-card-meta{flex:1}.feed-card-name{font-weight:600;color:var(--navy-800);margin-bottom:.125rem}.feed-card-info{font-size:.8125rem;color:var(--slate-600)}.feed-card-content{font-size:.9375rem;color:var(--slate-700);margin-bottom:.75rem}.feed-card-footer{display:flex;align-items:center;gap:1rem;font-size:.8125rem;color:var(--slate-500)}.feed-card-action{display:flex;align-items:center;gap:.25rem;cursor:pointer;transition:color var(--transition-fast)}.feed-card-action:hover{color:var(--navy-600)}.candidate-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.25rem}.candidate-card{padding:1.5rem;display:flex;flex-direction:column}.candidate-card-top{display:flex;gap:1rem;margin-bottom:1rem}.candidate-avatar{width:64px;height:64px;border-radius:50%;background:linear-gradient(135deg,var(--slate-200) 0%,var(--slate-300) 100%);display:flex;align-items:center;justify-content:center;color:var(--slate-500);flex-shrink:0}.candidate-info{flex:1}.candidate-name{font-family:var(--font-display);font-size:1.125rem;font-weight:700;color:var(--navy-800);margin-bottom:.25rem}.candidate-race{font-size:.875rem;color:var(--slate-600);margin-bottom:.5rem}.candidate-badges{display:flex;gap:.5rem;flex-wrap:wrap}.candidate-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem;padding-top:1rem;border-top:1px solid var(--slate-200);margin-top:auto}.stat{text-align:center}.stat-value{font-size:1.25rem;font-weight:700;color:var(--navy-700)}.stat-label{font-size:.6875rem;color:var(--slate-500);text-transform:uppercase;letter-spacing:.05em}.election-countdown{background:linear-gradient(135deg,var(--navy-800) 0%,var(--navy-900) 100%);color:#fff;padding:2rem;border-radius:12px;text-align:center;margin-bottom:2rem}.countdown-label{font-size:.875rem;text-transform:uppercase;letter-spacing:.1em;opacity:.8;margin-bottom:.5rem}.countdown-title{font-family:var(--font-display);font-size:1.5rem;margin-bottom:1rem;color:#fff}.countdown-numbers{display:flex;justify-content:center;gap:1.5rem}.countdown-item{display:flex;flex-direction:column;align-items:center}.countdown-value{font-size:2.5rem;font-weight:700;line-height:1;font-family:var(--font-display)}.countdown-unit{font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;opacity:.7;margin-top:.25rem}.footer{background:var(--slate-900);color:var(--slate-400);padding:3rem 0 2rem;margin-top:4rem}.footer-grid{display:grid;grid-template-columns:2fr repeat(3,1fr);gap:3rem;margin-bottom:2rem}.footer-brand{font-family:var(--font-display);font-size:1.125rem;color:#fff;margin-bottom:1rem}.footer-tagline{font-style:italic;color:var(--slate-500);margin-bottom:1rem}.footer-title{font-size:.75rem;text-transform:uppercase;letter-spacing:.1em;color:var(--slate-500);margin-bottom:1rem}.footer-links{list-style:none}.footer-links li{margin-bottom:.5rem}.footer-links a{color:var(--slate-400);font-size:.9375rem}.footer-links a:hover{color:#fff}.footer-bottom{border-top:1px solid var(--slate-800);padding-top:2rem;display:flex;justify-content:space-between;align-items:center;font-size:.875rem}@media(max-width:768px){h1{font-size:2rem}h2{font-size:1.5rem}.hero{padding:3rem 0}.hero h1{font-size:2rem}.nav{display:none}.footer-grid{grid-template-columns:1fr 1fr}.search-bar{flex-direction:column}.countdown-numbers{gap:1rem}.countdown-value{font-size:1.75rem}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.animate-fade-in-up{animation:fadeInUp .5s ease forwards}.animate-delay-1{animation-delay:.1s;opacity:0}.animate-delay-2{animation-delay:.2s;opacity:0}.animate-delay-3{animation-delay:.3s;opacity:0}.animate-delay-4{animation-delay:.4s;opacity:0}.page-header{background:linear-gradient(180deg,var(--slate-100) 0%,var(--slate-50) 100%);border-bottom:1px solid var(--slate-200);padding:2rem 0}.page-subtitle{color:var(--slate-600);font-size:1.125rem;margin-bottom:0}.mobile-menu-btn{display:none;background:none;border:none;cursor:pointer;color:var(--slate-700);padding:.5rem}.mobile-menu{display:none;background:#fff;border-top:1px solid var(--slate-200);padding:1rem var(--container-padding);box-shadow:var(--shadow-lg)}.mobile-nav{display:flex;flex-direction:column;gap:.25rem;margin-bottom:1rem}.mobile-nav-link{display:block;padding:.75rem 1rem;border-radius:6px;font-size:1rem;font-weight:500;color:var(--slate-700)}.mobile-nav-link:hover,.mobile-nav-link.active{background:var(--slate-100);color:var(--navy-800)}.mobile-menu-actions{display:flex;flex-direction:column;gap:.75rem;padding-top:1rem;border-top:1px solid var(--slate-200)}.user-dropdown{position:absolute;top:100%;right:0;margin-top:.5rem;background:#fff;border:1px solid var(--slate-200);border-radius:8px;box-shadow:var(--shadow-lg);min-width:200px;z-index:100;overflow:hidden}.user-dropdown-item{display:block;padding:.625rem 1rem;font-size:.9375rem;color:var(--slate-700);text-decoration:none;transition:background var(--transition-fast)}.user-dropdown-item:hover{background:var(--slate-50);color:var(--navy-800)}.empty-state{text-align:center;padding:3rem 1.5rem;color:var(--slate-600)}.empty-state h3{margin-bottom:.5rem;color:var(--slate-700)}.empty-state p{max-width:400px;margin:0 auto}.loading-state{text-align:center;padding:3rem;color:var(--slate-500);font-size:1rem}.error-state{text-align:center;padding:2rem;color:var(--error);background:#c530300d;border-radius:8px}.legal-content{max-width:800px;margin:0 auto}.legal-content section{margin-bottom:2.5rem}.legal-content h2{font-size:1.5rem;margin-bottom:1rem;padding-bottom:.5rem;border-bottom:1px solid var(--slate-200)}.legal-content h3{font-size:1.125rem;margin-bottom:.75rem;margin-top:1.5rem}.legal-content p{color:var(--slate-700);line-height:1.8}.legal-content ul{padding-left:1.5rem;margin-bottom:1rem}.legal-content li{margin-bottom:.5rem;color:var(--slate-700);line-height:1.7}@media(max-width:768px){.mobile-menu-btn,.mobile-menu{display:block}.desktop-nav{display:none!important}.page-header h1{font-size:1.75rem}.footer-grid{grid-template-columns:1fr;gap:2rem}.footer-bottom{flex-direction:column;gap:.5rem;text-align:center}}@media(max-width:480px){.hero h1{font-size:1.75rem}.hero-tagline{font-size:1.125rem}.hero-actions{flex-direction:column}.hero-actions .btn{width:100%}}.admin-layout{display:flex;min-height:calc(100vh - 72px)}.admin-sidebar{width:240px;background:var(--navy-900);color:#fff;flex-shrink:0;position:sticky;top:72px;height:calc(100vh - 72px);overflow-y:auto}.admin-sidebar-header{padding:1.25rem 1rem;font-weight:700;font-size:1rem;display:flex;align-items:center;gap:.5rem;border-bottom:1px solid rgba(255,255,255,.1);font-family:var(--font-display)}.admin-nav{padding:.5rem 0}.admin-nav-item{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;color:var(--slate-400);font-size:.9375rem;font-weight:500;transition:all var(--transition-fast);border-left:3px solid transparent}.admin-nav-item:hover{color:#fff;background:#ffffff0d}.admin-nav-item.active{color:#fff;background:#ffffff14;border-left-color:var(--burgundy-500)}.admin-content{flex:1;padding:1.5rem 2rem;background:var(--slate-50);min-width:0}.admin-page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;flex-wrap:wrap;gap:1rem}.admin-page-header h2{margin:0;font-size:1.5rem}.admin-stats-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:1rem}.admin-stat-card{background:#fff;border:1px solid var(--slate-200);border-radius:8px;padding:1.25rem;display:flex;flex-direction:column;align-items:center;gap:.5rem;text-align:center}.admin-stat-value{font-size:1.75rem;font-weight:700;color:var(--navy-800);font-family:var(--font-display)}.admin-stat-label{font-size:.75rem;color:var(--slate-500);text-transform:uppercase;letter-spacing:.05em}.admin-filters{display:flex;gap:.75rem;margin-bottom:1.5rem;flex-wrap:wrap}.admin-search-wrap{flex:1;min-width:200px;position:relative}.admin-search-wrap svg{position:absolute;left:.75rem;top:50%;transform:translateY(-50%);color:var(--slate-400)}.admin-search-wrap input{padding-left:2.5rem}.admin-filters select{width:auto;min-width:140px}.admin-table-wrap{overflow-x:auto;background:#fff;border:1px solid var(--slate-200);border-radius:8px}.admin-table{width:100%;border-collapse:collapse;font-size:.9375rem}.admin-table th{text-align:left;padding:.75rem 1rem;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--slate-500);background:var(--slate-50);border-bottom:1px solid var(--slate-200);white-space:nowrap}.admin-table td{padding:.625rem 1rem;border-bottom:1px solid var(--slate-100);color:var(--slate-700)}.admin-table tbody tr:hover{background:var(--slate-50)}.admin-table tbody tr:last-child td{border-bottom:none}.admin-icon-btn{background:none;border:none;cursor:pointer;padding:.375rem;border-radius:4px;color:var(--slate-500);transition:all var(--transition-fast);display:inline-flex;align-items:center;gap:.125rem}.admin-icon-btn:hover{background:var(--slate-100);color:var(--navy-700)}.admin-pagination{display:flex;justify-content:center;align-items:center;gap:1rem;margin-top:1.5rem}.admin-form-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem}.admin-label{display:block;font-size:.8125rem;font-weight:600;color:var(--slate-700);margin-bottom:.375rem}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media(max-width:768px){.admin-layout{flex-direction:column}.admin-sidebar{width:100%;height:auto;position:static}.admin-nav{display:flex;overflow-x:auto;padding:.25rem .5rem;gap:.25rem}.admin-nav-item{padding:.5rem .75rem;white-space:nowrap;border-left:none;border-bottom:2px solid transparent;font-size:.8125rem}.admin-nav-item.active{border-bottom-color:var(--burgundy-500);border-left-color:transparent}.admin-content{padding:1rem}.admin-stats-grid{grid-template-columns:repeat(2,1fr)}}.table-responsive{overflow-x:auto;position:relative}.table-responsive:after{content:"";position:absolute;top:0;right:0;bottom:0;width:40px;background:linear-gradient(90deg,#fff0,#ffffffe6);pointer-events:none;opacity:0;transition:opacity var(--transition-fast)}.table-responsive.has-scroll:after{opacity:1}.mobile-record-cards{display:none}@media(max-width:640px){.desktop-table-layout{display:none}.mobile-record-cards{display:flex;flex-direction:column;gap:.75rem}.mobile-record-card{padding:1rem}.mobile-record-card .mobile-record-row{display:flex;justify-content:space-between;align-items:flex-start;padding:.375rem 0;font-size:.875rem;gap:.5rem}.mobile-record-card .mobile-record-row:not(:last-child){border-bottom:1px solid var(--slate-100)}.mobile-record-label{color:var(--slate-500);font-size:.75rem;text-transform:uppercase;letter-spacing:.03em;font-weight:600;flex-shrink:0}.mobile-record-value{color:var(--slate-700);text-align:right;word-break:break-word}.mobile-record-value.primary{color:var(--navy-800);font-weight:600}}.sidebar-toggle-mobile{display:none}@media(max-width:768px){.candidate-main-layout{flex-direction:column!important}.candidate-sidebar{width:100%!important;order:2}.candidate-main-content{order:1}.sidebar-toggle-mobile{display:flex;width:100%;margin-bottom:1rem}.sidebar-content.sidebar-collapsed{display:none}}.explore-map-toggle,.explore-mobile-state-select{display:none}@media(max-width:768px){.explore-map-toggle{display:flex;margin-bottom:1rem}.explore-map-section.collapsed{display:none}.explore-mobile-state-select{display:block}}.loading-spinner{width:32px;height:32px;border:3px solid var(--slate-200);border-top-color:var(--navy-600);border-radius:50%;animation:spin .8s linear infinite;margin:0 auto 1rem}@media print{.header,.footer,.mobile-menu,.mobile-menu-btn,.nav-actions,.search-section,.location-bar,.hero-actions,.admin-sidebar,.theme-toggle-btn,.no-print{display:none!important}body{background:#fff!important;color:#000!important}.page-header{background:#fff!important;border-bottom:2px solid #000!important;padding:1rem 0!important}.card{box-shadow:none!important;border:1px solid #ccc!important;break-inside:avoid}.print-header{display:block!important;text-align:center;font-family:var(--font-display);font-size:1.5rem;font-weight:700;padding:1rem 0;border-bottom:2px solid #000;margin-bottom:1rem}.print-footer{display:block!important;text-align:center;font-size:.75rem;color:#666;margin-top:2rem;padding-top:1rem;border-top:1px solid #ccc}table{width:100%!important;border-collapse:collapse!important}th,td{border:1px solid #ccc!important;padding:.5rem!important;font-size:.875rem!important}th{background:#f5f5f5!important;font-weight:700!important}a{color:#000!important;text-decoration:none!important}.btn,.compare-export-btn{display:none!important}.voting-guide-print-title{display:block!important;text-align:center;font-family:var(--font-display);font-size:1.75rem;font-weight:700;padding:1rem 0 .5rem;border-bottom:3px solid #000;margin-bottom:1.5rem}.voting-guide-picks .card{border:1px solid #ccc!important;break-inside:avoid;page-break-inside:avoid;padding:.75rem 1rem!important;margin-bottom:.5rem!important}.voting-guide-picks .btn,.voting-guide-add-races,.voting-guide-election-select{display:none!important}.voting-guide-picks .card h4{font-size:1rem!important;margin-bottom:.25rem!important}}.print-header,.print-footer,.voting-guide-print-title{display:none}
