@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap";.dev-toggle{position:fixed;bottom:100px;left:16px;width:44px;height:44px;background:#1e293b;color:#fff;border:none;border-radius:50%;font-size:20px;cursor:pointer;z-index:9999;box-shadow:0 2px 10px #0000004d}.dev-panel{position:fixed;bottom:100px;left:16px;width:320px;max-height:70vh;background:#1e293b;color:#fff;border-radius:16px;z-index:9999;box-shadow:0 4px 20px #0006;overflow:hidden;display:flex;flex-direction:column}.dev-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:#0f172a}.dev-header h3{margin:0;font-size:14px}.close-btn{background:none;border:none;color:#94a3b8;font-size:18px;cursor:pointer}.dev-tabs{display:flex;background:#0f172a;padding:0 8px 8px;gap:4px}.dev-tabs button{flex:1;padding:8px 4px;background:transparent;border:none;color:#94a3b8;font-size:11px;border-radius:6px;cursor:pointer}.dev-tabs button.active{background:#334155;color:#fff}.dev-section{padding:16px;overflow-y:auto;flex:1}.current-info{display:flex;justify-content:space-between;background:#334155;padding:10px 12px;border-radius:8px;margin-bottom:12px;font-size:13px}.zip-input-row{display:flex;gap:8px;margin-bottom:12px}.zip-input-row input{flex:1;padding:10px 12px;border:none;border-radius:8px;background:#334155;color:#fff;font-size:14px}.zip-input-row button{padding:10px 16px;border:none;border-radius:8px;background:#475569;color:#fff;font-size:13px;cursor:pointer}.zip-input-row .apply-btn{background:#2563eb}.quick-zips{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-bottom:16px}.quick-zips span{font-size:11px;color:#94a3b8}.quick-zips button{padding:4px 10px;background:#475569;border:none;border-radius:4px;color:#fff;font-size:11px;cursor:pointer}.quick-zips button:hover{background:#2563eb}.test-results{background:#0f172a;border-radius:8px;padding:12px}.test-results h4{margin:0 0 10px;font-size:12px;color:#94a3b8}.result-row{display:flex;justify-content:space-between;padding:8px;border-radius:6px;margin-bottom:6px;font-size:12px}.result-row.success{background:#10b98133}.result-row.warning{background:#f59e0b33}.flag-note{font-size:11px;color:#94a3b8;margin:0 0 12px}.flag-row{display:flex;justify-content:space-between;align-items:center;padding:10px 0;border-bottom:1px solid #334155}.flag-name{font-size:14px;text-transform:capitalize}.flag-toggle{padding:6px 16px;border:none;border-radius:20px;font-size:12px;font-weight:600;cursor:pointer}.flag-toggle.on{background:#10b981;color:#fff}.flag-toggle.off{background:#475569;color:#94a3b8}.api-status{background:#0f172a;border-radius:8px;padding:12px;margin-bottom:16px}.api-row{display:flex;justify-content:space-between;padding:8px 0;font-size:13px;border-bottom:1px solid #1e293b}.api-row:last-child{border-bottom:none}.status-ok{color:#10b981}.status-warn{color:#f59e0b}.status-error{color:#ef4444}.coverage-info{font-size:12px;color:#94a3b8;line-height:1.8}.coverage-info .todo{color:#f59e0b;margin-top:8px}.dev-section h4{font-size:13px;color:#94a3b8;margin:0 0 12px}.admin-info{padding:8px 16px;background:#334155;font-size:12px;color:#94a3b8;border-bottom:1px solid #475569}.premium-controls{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}.premium-reset-btn,.premium-unlock-btn{width:100%;padding:10px;border:none;border-radius:8px;font-size:13px;cursor:pointer}.premium-reset-btn{background:#ef4444;color:#fff}.premium-unlock-btn{background:#10b981;color:#fff}.feedback-fab{position:fixed;bottom:80px;right:16px;width:56px;height:56px;border-radius:50%;background:linear-gradient(135deg,#3b82f6,#1d4ed8);border:none;box-shadow:0 4px 12px #3b82f666;cursor:pointer;font-size:24px;display:flex;align-items:center;justify-content:center;transition:all .2s ease;z-index:1000}.feedback-fab:hover{transform:scale(1.1);box-shadow:0 6px 20px #3b82f680}.feedback-fab:active{transform:scale(.95)}.feedback-fab:after{content:"";position:absolute;width:100%;height:100%;border-radius:50%;background:#3b82f6;z-index:-1;animation:pulse 2s infinite}@keyframes pulse{0%{transform:scale(1);opacity:.5}70%{transform:scale(1.3);opacity:0}to{transform:scale(1);opacity:0}}.feedback-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:2000;padding:20px;animation:fadeIn .2s ease}.feedback-modal{background:#fff;border-radius:16px;width:100%;max-width:400px;max-height:90vh;overflow-y:auto;position:relative;animation:slideUp .3s ease}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.feedback-close{position:absolute;top:12px;right:12px;width:32px;height:32px;border-radius:50%;border:none;background:#f3f4f6;color:#6b7280;font-size:20px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.feedback-close:hover{background:#e5e7eb;color:#374151}.feedback-header{text-align:center;padding:24px 24px 16px;border-bottom:1px solid #e5e7eb}.feedback-icon{font-size:40px;display:block;margin-bottom:8px}.feedback-header h2{margin:0;font-size:22px;color:#111827}.feedback-header p{margin:4px 0 0;color:#6b7280;font-size:14px}.feedback-modal form{padding:20px 24px 24px}.feedback-types{display:flex;gap:8px;margin-bottom:16px}.type-btn{flex:1;padding:10px 8px;border:2px solid #e5e7eb;border-radius:10px;background:#fff;cursor:pointer;font-size:13px;font-weight:500;color:#6b7280;transition:all .2s}.type-btn:hover{border-color:#d1d5db;background:#f9fafb}.type-btn.active{border-color:#3b82f6;background:#eff6ff;color:#1d4ed8}.feedback-field{margin-bottom:16px}.feedback-field label{display:block;font-size:14px;font-weight:500;color:#374151;margin-bottom:6px}.feedback-field textarea,.feedback-field input{width:100%;padding:12px;border:2px solid #e5e7eb;border-radius:10px;font-size:15px;font-family:inherit;transition:border-color .2s;resize:vertical;box-sizing:border-box}.feedback-field textarea:focus,.feedback-field input:focus{outline:none;border-color:#3b82f6}.feedback-field textarea::placeholder,.feedback-field input::placeholder{color:#9ca3af}.feedback-submit{width:100%;padding:14px;background:linear-gradient(135deg,#3b82f6,#1d4ed8);color:#fff;border:none;border-radius:10px;font-size:16px;font-weight:600;cursor:pointer;transition:all .2s}.feedback-submit:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #3b82f666}.feedback-submit:disabled{opacity:.6;cursor:not-allowed}.feedback-note{margin:12px 0 0;font-size:12px;color:#9ca3af;text-align:center}.feedback-success{padding:40px 24px;text-align:center}.success-icon{font-size:48px;display:block;margin-bottom:12px}.feedback-success h3{margin:0;font-size:20px;color:#059669}.feedback-success p{margin:8px 0 0;color:#6b7280}@media (max-width: 480px){.feedback-fab{bottom:90px;right:12px;width:50px;height:50px;font-size:22px}.feedback-modal{max-height:85vh;margin:auto 10px}.type-btn{padding:8px 4px;font-size:12px}}.landing{min-height:100vh;background:#fafafa}.landing-nav{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;max-width:1200px;margin:0 auto}.logo{display:flex;align-items:center;gap:10px}.logo-mark{width:40px;height:40px;background:linear-gradient(135deg,#1e40af,#3b82f6);color:#fff;font-size:22px;font-weight:800;border-radius:10px;display:flex;align-items:center;justify-content:center}.logo-text{font-size:24px;font-weight:700;color:#1e293b}.nav-links{display:flex;align-items:center;gap:20px}.nav-link{color:#64748b;text-decoration:none;font-weight:500}.nav-btn{background:#1e40af;color:#fff;padding:10px 20px;border-radius:8px;text-decoration:none;font-weight:600}.hero{padding:40px 24px 80px;max-width:1200px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center}.hero-badge{display:inline-block;background:#eff6ff;color:#1e40af;padding:8px 16px;border-radius:20px;font-size:14px;font-weight:500;margin-bottom:20px}.hero h1{font-size:48px;line-height:1.15;color:#0f172a;margin:0 0 24px;font-weight:800}.hero h1 .highlight{color:#1e40af}.hero-subtitle{font-size:18px;color:#475569;line-height:1.7;margin:0 0 32px}.hero-ctas{display:flex;gap:16px;flex-wrap:wrap}.cta-primary{background:linear-gradient(135deg,#1e40af,#3b82f6);color:#fff;padding:16px 32px;border-radius:12px;text-decoration:none;font-weight:600;font-size:16px;box-shadow:0 4px 14px #1e40af4d;transition:transform .2s,box-shadow .2s}.cta-primary:hover{transform:translateY(-2px);box-shadow:0 6px 20px #1e40af66}.cta-primary.large{padding:18px 40px;font-size:18px}.cta-secondary{color:#1e40af;padding:16px 32px;text-decoration:none;font-weight:600;font-size:16px}.hero-image{display:flex;justify-content:center}.hero-phone{width:280px;background:#1e293b;border-radius:36px;padding:12px;box-shadow:0 25px 50px #0003}.phone-screen{background:#f8fafc;border-radius:28px;padding:20px;min-height:300px}.phone-header{font-size:18px;font-weight:700;color:#1e293b;margin-bottom:20px}.phone-rep{display:flex;align-items:center;gap:12px;background:#fff;padding:14px;border-radius:12px;margin-bottom:10px;box-shadow:0 2px 8px #0000000f}.rep-avatar{width:44px;height:44px;background:linear-gradient(135deg,#2563eb,#1d4ed8);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px}.rep-avatar.red{background:linear-gradient(135deg,#dc2626,#b91c1c)}.rep-info{flex:1}.rep-info strong{display:block;font-size:14px;color:#1e293b}.rep-info span{font-size:12px;color:#64748b}.rep-call{font-size:20px}.problem-section{display:grid;grid-template-columns:1fr 1fr;gap:24px;max-width:900px;margin:0 auto}.problem-box,.solution-box{padding:32px;border-radius:20px}.problem-box{background:#fef2f2}.problem-box h2{color:#991b1b;font-size:18px;margin:0 0 12px}.problem-box p{color:#7f1d1d;margin:0;line-height:1.6}.solution-box{background:#ecfdf5}.solution-box h2{color:#166534;font-size:18px;margin:0 0 12px}.solution-box p{color:#14532d;margin:0;line-height:1.6}.section{padding:80px 24px;max-width:1200px;margin:0 auto}.section h2{font-size:36px;color:#0f172a;text-align:center;margin:0 0 48px}.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:32px}.step{text-align:center}.step-icon{font-size:48px;margin-bottom:16px}.step h3{font-size:18px;color:#1e293b;margin:0 0 8px}.step p{color:#64748b;font-size:14px;line-height:1.6;margin:0}.features-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.feature{background:#fff;padding:32px;border-radius:16px;box-shadow:0 4px 20px #0000000f}.feature-icon{font-size:36px;display:block;margin-bottom:16px}.feature h3{font-size:18px;color:#1e293b;margin:0 0 8px}.feature p{color:#64748b;font-size:14px;line-height:1.6;margin:0}.social-proof{background:#1e293b;border-radius:24px;padding:60px 40px!important}.proof-stats{display:flex;justify-content:center;gap:80px}.proof-stat{text-align:center}.proof-num{display:block;font-size:48px;font-weight:800;color:#fff}.proof-label{color:#94a3b8;font-size:16px}.final-cta{text-align:center;background:linear-gradient(135deg,#eff6ff,#dbeafe);border-radius:24px;padding:80px 40px!important}.final-cta h2{margin-bottom:16px}.final-cta>p{color:#475569;font-size:18px;margin:0 0 32px}.trust-note{color:#64748b;font-size:14px;margin-top:20px!important}.landing-footer{background:#0f172a;padding:60px 24px 30px}.footer-content{max-width:1200px;margin:0 auto;display:flex;justify-content:space-between;gap:60px}.footer-brand p{color:#64748b;margin-top:12px}.footer-brand .logo-mark{background:#1e40af}.footer-brand .logo-text{color:#fff}.footer-links{display:flex;gap:60px}.footer-col h4{color:#fff;font-size:14px;margin:0 0 16px}.footer-col a{display:block;color:#64748b;text-decoration:none;font-size:14px;margin-bottom:10px}.footer-col a:hover{color:#fff}.footer-bottom{max-width:1200px;margin:40px auto 0;padding-top:20px;border-top:1px solid #1e293b}.footer-bottom p{color:#64748b;font-size:14px;margin:0}@media (max-width: 900px){.hero{grid-template-columns:1fr;text-align:center;gap:40px}.hero h1{font-size:36px}.hero-ctas{justify-content:center}.hero-image{order:-1}.hero-phone{width:240px}.problem-section{grid-template-columns:1fr}.steps{grid-template-columns:repeat(2,1fr)}.features-grid{grid-template-columns:1fr}.proof-stats{flex-direction:column;gap:30px}.footer-content{flex-direction:column;gap:40px}.footer-links{flex-wrap:wrap;gap:30px}}@media (max-width: 500px){.steps{grid-template-columns:1fr}.hero h1,.section h2{font-size:28px}}.feature.highlight{background:linear-gradient(135deg,#eef2ff,#e0e7ff);border:2px solid #6366f1}.feature.highlight h3{color:#4f46e5}.town-hall-spotlight{background:linear-gradient(135deg,#22c55e,#16a34a);padding:32px!important;border-radius:20px;margin:40px auto;max-width:900px}.spotlight-content{display:flex;align-items:center;gap:24px;color:#fff}.spotlight-icon{font-size:48px}.spotlight-content h2{font-size:24px;margin:0 0 8px;color:#fff}.spotlight-content p{font-size:15px;margin:0;opacity:.95;line-height:1.5}.spotlight-btn{padding:14px 28px;background:#fff;color:#16a34a;text-decoration:none;border-radius:12px;font-weight:700;font-size:16px;white-space:nowrap;transition:all .2s}.spotlight-btn:hover{transform:translateY(-2px);box-shadow:0 4px 16px #0003}@media (max-width: 768px){.spotlight-content{flex-direction:column;text-align:center}}.hero-stats{display:flex;gap:24px;margin-top:28px;flex-wrap:wrap}.hero-stat{display:flex;flex-direction:column}.hero-stat-num{font-size:20px;font-weight:800;color:#1e40af}.hero-stat-label{font-size:11px;color:#94a3b8;text-transform:uppercase;letter-spacing:.4px}.phone-subheader{font-size:12px;color:#94a3b8;margin-bottom:12px;font-weight:500}.phone-cta{margin-top:12px;text-align:center;font-size:11px;color:#94a3b8;background:#f1f5f9;border-radius:8px;padding:6px 10px}.hero-phone-loading{width:280px;height:360px;background:#1e293b;border-radius:36px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;color:#64748b;font-size:13px}.phone-loading-spinner{width:28px;height:28px;border:3px solid #334155;border-top-color:#3b82f6;border-radius:50%;animation:spin .7s linear infinite}.org-section{background:#0f1923;border-radius:24px;padding:60px 48px!important;color:#fff}.org-box h2{color:#fff;text-align:left;margin-bottom:16px;font-size:28px}.org-box>p{color:#94a3b8;font-size:16px;margin:0 0 24px;max-width:560px}.org-features{display:flex;gap:20px;flex-wrap:wrap}.org-features span{font-size:14px;color:#e2e8f0;font-weight:500}@media (max-width: 768px){.org-section{padding:40px 24px!important}.org-box h2{font-size:22px}.hero-stats{gap:16px}}.fl-page{min-height:100vh;background:#fafafa;color:#0f172a;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif}.fl-nav{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;max-width:1200px;margin:0 auto}.fl-logo{display:flex;align-items:center;gap:10px;text-decoration:none}.fl-logo-mark{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;background:linear-gradient(135deg,#1e40af,#3b82f6);color:#fff;border-radius:10px;font-weight:800;font-size:22px}.fl-logo-text{font-size:24px;font-weight:700;color:#1e293b}.fl-nav-actions{display:flex;align-items:center;gap:16px}.fl-nav-link{color:#64748b;text-decoration:none;font-weight:500;padding:8px 12px}.fl-nav-link:hover{color:#1e40af}.fl-nav-cta{background:linear-gradient(135deg,#1e40af,#3b82f6);color:#fff;text-decoration:none;padding:10px 20px;border-radius:8px;font-weight:600;font-size:14px;box-shadow:0 2px 6px #1e40af40}.fl-nav-cta:hover{box-shadow:0 4px 12px #1e40af59}.fl-main{max-width:1100px;margin:0 auto;padding:24px 24px 64px}.fl-hero{text-align:center;padding:24px 0}.fl-hero-badge{display:inline-block;background:#eff6ff;color:#1e40af;padding:8px 16px;border-radius:20px;font-size:14px;font-weight:500;margin-bottom:20px}.fl-hero h1{font-size:clamp(28px,5vw,48px);line-height:1.15;margin:0 0 16px;font-weight:800;color:#0f172a}.fl-hero-accent{color:#1e40af}.fl-hero-sub{font-size:17px;color:#475569;max-width:640px;margin:0 auto 24px;line-height:1.6}.fl-zip-form{display:inline-flex;align-items:center;gap:10px;background:#fff;padding:8px 12px;border-radius:12px;border:1px solid #e2e8f0;box-shadow:0 1px 3px #0000000a}.fl-zip-form label{color:#64748b;font-size:14px;font-weight:500}.fl-zip-form input{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;color:#0f172a;padding:10px 14px;font-size:16px;width:110px;text-align:center;font-family:inherit}.fl-zip-form input:focus{outline:none;border-color:#3b82f6;background:#fff}.fl-zip-form button{background:linear-gradient(135deg,#1e40af,#3b82f6);color:#fff;border:none;padding:10px 18px;border-radius:8px;font-weight:600;cursor:pointer;font-family:inherit}.fl-zip-form button:hover{filter:brightness(1.05)}.fl-zip-error{color:#dc2626;font-size:13px;margin-top:8px}.fl-reps{margin:32px 0}.fl-loading{text-align:center;color:#64748b;padding:32px}.fl-reps-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;max-width:760px;margin:0 auto}.fl-rep-card{display:flex;align-items:center;gap:16px;background:#fff;padding:18px;border-radius:14px;border:1px solid #e2e8f0;box-shadow:0 2px 8px #0f172a0a}.fl-rep-avatar{width:64px;height:64px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;overflow:hidden;position:relative}.fl-rep-avatar img{width:100%;height:100%;object-fit:cover;border-radius:50%;position:absolute;top:0;left:0;z-index:2}.fl-rep-initials{color:#fff;font-weight:700;font-size:22px;position:relative;z-index:1}.fl-rep-info{flex:1;min-width:0}.fl-rep-name{font-weight:700;font-size:17px;color:#0f172a;margin-bottom:2px}.fl-rep-title{font-size:13px;color:#64748b;margin-bottom:4px}.fl-rep-party{font-size:13px;font-weight:600}.fl-cta-block{background:linear-gradient(135deg,#1e40af,#3b82f6);border-radius:18px;padding:36px 28px;text-align:center;margin:48px 0;color:#fff;box-shadow:0 6px 24px #1e40af2e}.fl-cta-block h2{font-size:26px;margin:0 0 12px;font-weight:700}.fl-cta-block p{font-size:16px;color:#dbeafe;max-width:640px;margin:0 auto 22px;line-height:1.55}.fl-cta-block strong{color:#fff}.fl-cta-actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}.fl-cta-primary{background:#fff;color:#1e40af;text-decoration:none;padding:14px 28px;border-radius:10px;font-weight:700;font-size:16px;box-shadow:0 2px 6px #0000001a}.fl-cta-primary:hover{background:#f8fafc;transform:translateY(-1px)}.fl-cta-secondary{background:transparent;color:#fff;text-decoration:none;padding:14px 18px;font-size:15px;border:1px solid rgba(255,255,255,.5);border-radius:10px}.fl-cta-secondary:hover{background:#ffffff1f}.fl-features{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px;margin:32px 0}.fl-feature{background:#fff;border:1px solid #e2e8f0;border-radius:14px;padding:24px;box-shadow:0 2px 8px #0f172a0a}.fl-feature-icon{font-size:32px;display:block;margin-bottom:10px}.fl-feature h3{font-size:18px;margin:0 0 8px;font-weight:700;color:#0f172a}.fl-feature p{margin:0;color:#475569;font-size:14px;line-height:1.55}.fl-footer{text-align:center;padding:32px 0 0;color:#94a3b8;font-size:14px}.fl-footer a{color:#64748b;text-decoration:none;margin:0 8px}.fl-footer a:hover{color:#1e40af}@media (max-width: 600px){.fl-hero{padding:12px 0}.fl-cta-block{padding:28px 18px}.fl-zip-form{flex-direction:column;align-items:stretch}.fl-zip-form input{width:100%}}.login-page{min-height:100vh;background:linear-gradient(135deg,#1e3a5f,#0f172a);display:flex;align-items:center;justify-content:center;padding:20px}.login-container{width:100%;max-width:440px}.back-link{display:inline-block;color:#ffffffb3;text-decoration:none;margin-bottom:24px;font-size:14px}.login-card{background:#fff;border-radius:16px;padding:40px;box-shadow:0 20px 60px #0000004d}.login-header{text-align:center;margin-bottom:24px}.login-logo{font-size:48px;display:block;margin-bottom:12px}.login-header h1{font-size:28px;color:#1e3a5f;margin:0 0 4px}.login-header p{color:#64748b;margin:0}.error-msg{background:#fee2e2;color:#991b1b;padding:12px 16px;border-radius:8px;margin-bottom:20px;font-size:14px}.success-msg{background:#d1fae5;color:#065f46;padding:12px 16px;border-radius:8px;margin-bottom:20px;font-size:14px}.oauth-section{margin-bottom:24px}.oauth-btn{width:100%;display:flex;align-items:center;justify-content:center;gap:12px;padding:14px;border:2px solid #e2e8f0;border-radius:10px;background:#fff;font-size:15px;font-weight:500;color:#1e293b;cursor:pointer;margin-bottom:10px;transition:all .2s}.oauth-btn:hover:not(:disabled){border-color:#cbd5e1;background:#f8fafc}.oauth-btn:disabled{opacity:.6;cursor:not-allowed}.oauth-btn.google:hover:not(:disabled){border-color:#4285f4}.oauth-btn.facebook:hover:not(:disabled){border-color:#1877f2}.oauth-btn.twitter:hover:not(:disabled){border-color:#000}.oauth-divider{text-align:center;margin:20px 0;position:relative}.oauth-divider:before{content:"";position:absolute;left:0;top:50%;width:100%;height:1px;background:#e2e8f0}.oauth-divider span{position:relative;background:#fff;padding:0 16px;color:#94a3b8;font-size:13px}.name-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.form-group{margin-bottom:20px}.form-group label{display:block;font-size:14px;font-weight:500;margin-bottom:6px;color:#334155}.form-group input{width:100%;padding:14px 16px;border:2px solid #e2e8f0;border-radius:10px;font-size:16px;box-sizing:border-box;transition:border-color .2s}.form-group input:focus{outline:none;border-color:#2563eb}.submit-btn{width:100%;padding:16px;background:#2563eb;color:#fff;border:none;border-radius:10px;font-size:16px;font-weight:600;cursor:pointer;transition:background .2s}.submit-btn:hover:not(:disabled){background:#1d4ed8}.submit-btn:disabled{background:#94a3b8;cursor:not-allowed}.login-footer{margin-top:24px;text-align:center}.link-btn{background:none;border:none;color:#2563eb;font-size:14px;cursor:pointer;padding:0;margin-left:4px}.switch-text{color:#64748b;font-size:14px;margin:16px 0 0}.demo-notice{margin-top:24px;padding:12px;background:#fef3c7;border-radius:8px;text-align:center;font-size:13px;color:#92400e}.onboarding-page{min-height:100vh;background:linear-gradient(135deg,#1e3a5f,#0f172a);display:flex;flex-direction:column;padding:20px}.progress-container{padding:20px 0}.progress-bar{height:6px;background:#fff3;border-radius:3px;overflow:hidden}.progress-fill{height:100%;background:linear-gradient(90deg,#3b82f6,#8b5cf6);border-radius:3px;transition:width .4s ease}.progress-text{display:block;text-align:center;color:#fff9;font-size:12px;margin-top:8px}.onboarding-content{flex:1;display:flex;flex-direction:column;max-width:480px;margin:0 auto;width:100%}.step-container{flex:1;display:flex;flex-direction:column;align-items:center;padding:20px 0}.step-icon{font-size:64px;margin-bottom:20px;animation:bounce 2s infinite}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.step-container h1{font-size:28px;font-weight:700;color:#fff;text-align:center;margin:0 0 10px}.step-subtitle{font-size:16px;color:#ffffffb3;text-align:center;margin:0 0 30px;line-height:1.5}.input-group{width:100%;margin-bottom:20px}.input-group label{display:block;font-size:14px;font-weight:500;color:#fffc;margin-bottom:8px}.input-group input{width:100%;padding:16px 20px;font-size:18px;background:#ffffff1a;border:2px solid rgba(255,255,255,.2);border-radius:14px;color:#fff;outline:none;transition:all .2s}.input-group input::placeholder{color:#fff6}.input-group input:focus{border-color:#3b82f6;background:#ffffff26}.privacy-note{font-size:13px;color:#ffffff80;text-align:center;margin-top:16px}.select-all-btn{width:100%;padding:12px;margin-bottom:16px;background:#ffffff1a;border:2px solid rgba(255,255,255,.2);border-radius:10px;color:#fff;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.select-all-btn:hover{background:#ffffff26;border-color:#ffffff4d}.issues-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;width:100%;margin-bottom:16px}.issue-card{position:relative;display:flex;flex-direction:column;align-items:center;padding:16px 12px;background:#ffffff14;border:2px solid rgba(255,255,255,.15);border-radius:16px;cursor:pointer;transition:all .2s}.issue-card:hover{background:#ffffff1f;border-color:#ffffff40}.issue-card.selected{background:#3b82f633;border-color:#3b82f6}.issue-emoji{font-size:28px;margin-bottom:6px}.issue-name{font-size:13px;font-weight:600;color:#fff;text-align:center;margin-bottom:2px}.issue-desc{font-size:10px;color:#ffffff80;text-align:center;line-height:1.3}.check-mark{position:absolute;top:8px;right:8px;width:20px;height:20px;background:#3b82f6;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;color:#fff}.selected-count{font-size:14px;color:#fff9;text-align:center}.household-options{width:100%}.option-group{margin-bottom:24px}.option-group label{display:block;font-size:14px;font-weight:500;color:#fffc;margin-bottom:12px}.option-buttons{display:flex;gap:10px}.option-buttons button{flex:1;padding:14px;background:#ffffff14;border:2px solid rgba(255,255,255,.15);border-radius:12px;color:#fff;font-size:16px;font-weight:600;cursor:pointer;transition:all .2s}.option-buttons button:hover{background:#ffffff1f}.option-buttons button.selected{background:#3b82f633;border-color:#3b82f6}.income-options{display:flex;flex-direction:column;gap:8px}.income-options button{padding:14px 20px;background:#ffffff14;border:2px solid rgba(255,255,255,.15);border-radius:12px;color:#fff;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s;text-align:left}.income-options button:hover{background:#ffffff1f}.income-options button.selected{background:#3b82f633;border-color:#3b82f6}.error-message{background:#ef444433;border:1px solid rgba(239,68,68,.5);color:#fca5a5;padding:12px 16px;border-radius:10px;font-size:14px;text-align:center;margin-bottom:16px}.nav-buttons{display:flex;gap:12px;margin-top:auto;padding-top:20px}.back-btn{padding:16px 24px;background:#ffffff1a;border:2px solid rgba(255,255,255,.2);border-radius:14px;color:#fff;font-size:16px;font-weight:500;cursor:pointer;transition:all .2s}.back-btn:hover{background:#ffffff26}.next-btn{flex:1;padding:16px 24px;background:linear-gradient(135deg,#3b82f6,#8b5cf6);border:none;border-radius:14px;color:#fff;font-size:16px;font-weight:600;cursor:pointer;transition:all .2s}.next-btn:hover{transform:translateY(-2px);box-shadow:0 8px 24px #3b82f666}.skip-btn{display:block;width:100%;padding:12px;background:transparent;border:none;color:#ffffff80;font-size:14px;cursor:pointer;margin-top:12px}.skip-btn:hover{color:#fffc}.detect-location-btn{width:100%;padding:12px 16px;margin-top:12px;background:#3b82f61a;color:#93c5fd;border:1px dashed #3b82f6;border-radius:12px;font-size:14px;cursor:pointer;transition:all .2s}.detect-location-btn:hover{background:#3b82f633;border-style:solid}.detect-location-btn:active{transform:scale(.98)}.logo{display:flex;align-items:center;gap:10px;cursor:pointer;-webkit-tap-highlight-color:transparent}.logo-mark{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;background:linear-gradient(135deg,#3b9cc2,#5cb85c);border-radius:8px;font-size:13px;font-weight:800;color:#fff;letter-spacing:-.5px;flex-shrink:0}.logo-text{font-size:20px;font-weight:700;color:#fff;letter-spacing:-.3px}.logo-accent{color:#7ec8e3}.tap-hint{font-size:10px;color:#ffffff4d;margin-left:4px}.top-nav-bar{display:none;position:sticky;top:0;z-index:100;background:linear-gradient(135deg,#0f2439,#1a3a5c,#0f2439);border-bottom:1px solid rgba(126,200,227,.15)}.top-nav-inner{display:flex;align-items:center;justify-content:space-between;padding:0 clamp(20px,3vw,40px);height:60px;max-width:100%;margin:0 auto}.top-nav-links{display:flex;align-items:center;gap:4px}.top-nav-link{display:flex;align-items:center;gap:8px;padding:8px 16px;border-radius:10px;text-decoration:none;color:#fff9;font-size:14px;font-weight:500;transition:all .15s ease;-webkit-tap-highlight-color:transparent;position:relative}.top-nav-link:hover{color:#ffffffd9;background:#ffffff0f}.top-nav-link.active{color:#fff;background:#ffffff1a}.top-nav-link.active:after{content:"";position:absolute;bottom:-1px;left:50%;transform:translate(-50%);width:24px;height:2px;background:linear-gradient(90deg,#3b9cc2,#7ec8e3);border-radius:2px}.top-nav-icon{display:flex;align-items:center;color:inherit}.top-nav-icon svg{width:18px;height:18px}.top-nav-label{letter-spacing:.2px}.top-nav-link.active .top-nav-icon svg{stroke-width:2.2}.mobile-top-bar{display:flex;align-items:center;padding:12px 16px;position:sticky;top:0;z-index:100;background:linear-gradient(135deg,#0f2439,#1a3a5c,#0f2439);border-bottom:1px solid rgba(126,200,227,.15)}.mobile-bottom-nav{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:100;justify-content:space-around;align-items:flex-start;padding:8px 8px calc(env(safe-area-inset-bottom,8px) + 8px);background:#ffffffeb;-webkit-backdrop-filter:blur(20px) saturate(180%);backdrop-filter:blur(20px) saturate(180%);border-top:1px solid rgba(0,0,0,.06);box-shadow:0 -1px 20px #0000000a}.mobile-bottom-nav .nav-item{display:flex;flex-direction:column;align-items:center;gap:3px;min-width:56px;padding:6px 12px 4px;border-radius:12px;text-decoration:none;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:all .2s ease;position:relative;background:none;border:none}.mobile-bottom-nav .nav-icon{display:flex;align-items:center;justify-content:center;width:28px;height:28px;color:#8e99a8;transition:all .2s ease}.mobile-bottom-nav .nav-label{font-size:10px;font-weight:500;color:#8e99a8;letter-spacing:.2px;transition:all .2s ease;line-height:1}.mobile-bottom-nav .nav-item.active{background:#1e5a820f}.mobile-bottom-nav .nav-item.active .nav-icon{color:#1e5a82}.mobile-bottom-nav .nav-item.active .nav-icon svg{stroke-width:2.2}.mobile-bottom-nav .nav-item.active .nav-label{color:#1e5a82;font-weight:600}.mobile-bottom-nav .nav-item.active:before{content:"";position:absolute;top:0;left:50%;transform:translate(-50%);width:20px;height:2.5px;background:linear-gradient(90deg,#1e5a82,#3b9cc2);border-radius:0 0 4px 4px}.mobile-bottom-nav .nav-item:not(.active):hover{background:#00000008}.mobile-bottom-nav .nav-item:active{transform:scale(.95)}@media (min-width: 768px){.top-nav-bar{display:block}.mobile-top-bar,.mobile-bottom-nav{display:none!important}}@media (min-width: 1024px){.top-nav-link{padding:8px 20px;gap:10px}}@supports (padding-bottom: env(safe-area-inset-bottom)){.mobile-bottom-nav{padding-bottom:calc(env(safe-area-inset-bottom) + 8px)}}@media (max-width: 375px){.mobile-bottom-nav .nav-item{min-width:48px;padding:6px 8px 4px}.mobile-bottom-nav .nav-label{font-size:9px}}.community-calendar{background:#fff;border-radius:16px;padding:20px;box-shadow:0 2px 8px #0000000f}.calendar-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.calendar-header h3{margin:0;font-size:18px;color:#1e293b}.calendar-filters{display:flex;gap:6px}.calendar-filters button{padding:6px 12px;border:none;background:#f1f5f9;border-radius:16px;font-size:13px;cursor:pointer;transition:all .2s}.calendar-filters button.active{background:#3b82f6;color:#fff}.events-list{display:flex;flex-direction:column;gap:12px}.event-card{display:flex;align-items:flex-start;gap:12px;padding:14px;background:#f8fafc;border-radius:12px;border-left:4px solid #3b82f6}.event-card.townhall{border-left-color:#8b5cf6}.event-card.community{border-left-color:#10b981}.event-card.education{border-left-color:#f59e0b}.event-card.election{border-left-color:#ef4444}.event-date-badge{display:flex;flex-direction:column;align-items:center;min-width:70px;padding:8px;background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a}.event-day{font-size:12px;font-weight:600;color:#1e293b}.event-time{font-size:11px;color:#64748b}.event-details{flex:1;min-width:0}.event-type-badge{display:inline-block;padding:3px 8px;border-radius:10px;font-size:10px;font-weight:600;color:#fff;margin-bottom:6px}.event-details h4{margin:0 0 4px;font-size:14px;color:#1e293b;line-height:1.3}.event-location{margin:0;font-size:12px;color:#64748b;display:flex;align-items:center;gap:6px;flex-wrap:wrap}.virtual-badge{background:#dbeafe;color:#1d4ed8;padding:2px 6px;border-radius:8px;font-size:10px;font-weight:500}.event-actions{display:flex;flex-direction:column;gap:6px}.event-btn{padding:6px 12px;border:none;background:#3b82f6;color:#fff;border-radius:8px;font-size:12px;font-weight:500;cursor:pointer;text-decoration:none;text-align:center;white-space:nowrap}.event-btn.secondary{background:#e2e8f0;color:#475569}.event-btn:hover{opacity:.9}.no-events{text-align:center;padding:30px 20px;color:#64748b}.no-events a{color:#3b82f6;text-decoration:none;font-size:13px}.calendar-footer{margin-top:16px;padding-top:12px;border-top:1px solid #e2e8f0;text-align:center}.calendar-footer a{color:#3b82f6;text-decoration:none;font-size:13px;font-weight:500}@media (max-width: 480px){.event-card{flex-wrap:wrap}.event-date-badge{width:100%;flex-direction:row;justify-content:center;gap:8px;margin-bottom:8px}.event-actions{width:100%;flex-direction:row;margin-top:8px}}.community-calendar.compact{background:#fff;border-radius:12px;padding:14px;margin-bottom:16px;border:1px solid #e5e7eb}.community-calendar.compact .calendar-header h3{font-size:.95rem;margin:0 0 10px;color:#374151}.compact-events-list{display:flex;flex-direction:column;gap:8px}.compact-event{display:flex;align-items:center;gap:10px;padding:8px;background:#f9fafb;border-radius:8px}.compact-icon{font-size:1.2rem;flex-shrink:0}.compact-details{display:flex;flex-direction:column;gap:2px;min-width:0}.compact-title{font-size:.85rem;font-weight:500;color:#1f2937;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.compact-meta{font-size:.75rem;color:#6b7280}.see-all-events{display:block;text-align:center;margin-top:10px;font-size:.85rem;color:#2563eb;text-decoration:none}.see-all-events:hover{text-decoration:underline}.no-events-compact{font-size:.85rem;color:#6b7280;text-align:center;padding:8px}@media (prefers-color-scheme: dark){.community-calendar.compact{background:#1f2937;border-color:#374151}.community-calendar.compact .calendar-header h3{color:#e5e7eb}.compact-event{background:#374151}.compact-title{color:#f3f4f6}.compact-meta{color:#9ca3af}.see-all-events{color:#60a5fa}}.adsense-container{display:flex;justify-content:center;align-items:center;margin:16px 0;overflow:hidden}.adsense-placeholder{display:flex;justify-content:center;align-items:center;background:linear-gradient(135deg,#f1f5f9,#e2e8f0);border:2px dashed #cbd5e1;border-radius:8px;margin:16px auto;box-sizing:border-box}.ad-placeholder-content{display:flex;flex-direction:column;align-items:center;gap:4px;color:#94a3b8;text-align:center;padding:12px}.ad-icon{font-size:24px;opacity:.6}.ad-label{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:1px}.ad-size{font-size:10px;opacity:.7}.adsense-placeholder.rectangle{width:300px;height:250px}.adsense-placeholder.horizontal{width:100%;max-width:728px;height:90px}.adsense-placeholder.vertical{width:160px;height:600px}.adsense-placeholder.leaderboard{width:100%;max-width:970px;height:90px}.adsense-placeholder.large-rectangle{width:336px;height:280px}.adsense-placeholder.in-feed,.adsense-placeholder.in-article,.adsense-placeholder.auto{width:100%;min-height:100px;height:auto;padding:20px}.banner-ad{background:#f8fafc;padding:8px 0}.in-feed-ad{margin:8px 0}.in-feed-ad .adsense-placeholder{border-radius:12px;background:linear-gradient(135deg,#fefce8,#fef9c3);border-color:#fde047}.in-feed-ad .ad-placeholder-content{color:#a16207}.in-article-ad{margin:24px 0}.in-article-ad .adsense-placeholder{border-radius:8px;background:linear-gradient(135deg,#f0fdf4,#dcfce7);border-color:#86efac}.in-article-ad .ad-placeholder-content{color:#166534}.responsive-ad .adsense-placeholder{min-height:120px}@media (max-width: 320px){.adsense-placeholder.horizontal,.adsense-placeholder.leaderboard{display:none}}@media (max-width: 350px){.adsense-placeholder.rectangle,.adsense-placeholder.large-rectangle{width:100%;max-width:300px}}.ad-disclosure{font-size:10px;color:#94a3b8;text-align:center;margin-bottom:4px;text-transform:uppercase;letter-spacing:.5px}.no-ads-badge{display:flex;align-items:center;justify-content:center;gap:6px;padding:8px 16px;background:linear-gradient(135deg,#dbeafe,#bfdbfe);border-radius:20px;font-size:12px;color:#1d4ed8;margin:16px auto;width:fit-content}.no-ads-badge:before{content:"⭐"}.rewarded-ad-btn{display:inline-flex;align-items:center;gap:8px;padding:14px 28px;background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#fff;border:none;border-radius:12px;font-size:16px;font-weight:600;cursor:pointer;transition:transform .2s,box-shadow .2s}.rewarded-ad-btn:hover{transform:translateY(-2px);box-shadow:0 4px 12px #6366f166}.rewarded-ad-btn:active{transform:translateY(0)}.rewarded-ad-container{position:relative}.rewarded-ad-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000e6;display:flex;align-items:center;justify-content:center;z-index:9999}.rewarded-ad-content{text-align:center;color:#fff;padding:40px}.ad-playing-icon{font-size:64px;margin-bottom:20px;animation:pulse 1s ease-in-out infinite}.reward-icon{font-size:64px;margin-bottom:20px}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}.rewarded-ad-content p{font-size:18px;margin-bottom:16px}.ad-progress-bar{width:200px;height:8px;background:#fff3;border-radius:4px;margin:0 auto 16px;overflow:hidden}.ad-progress-fill{height:100%;background:linear-gradient(90deg,#6366f1,#8b5cf6);border-radius:4px;transition:width .1s linear}.ad-timer{font-size:14px;color:#ffffffb3}.native-feed-ad{background:#fff;border-radius:16px;padding:16px;border:1px solid #e2e8f0;position:relative;overflow:hidden}.native-feed-ad:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,#94a3b8,#cbd5e1)}.native-ad-label{margin-bottom:10px}.sponsored-tag{font-size:10px;font-weight:600;color:#64748b;background:#f1f5f9;padding:3px 8px;border-radius:6px;text-transform:uppercase;letter-spacing:.5px}.native-ad-content{min-height:100px}.native-feed-ad.news:before{background:linear-gradient(90deg,#3b82f6,#60a5fa)}.native-feed-ad.bill:before{background:linear-gradient(90deg,#8b5cf6,#a78bfa)}.promoted-card{display:block;background:linear-gradient(135deg,#fefce8,#fef9c3);border-radius:16px;padding:16px;border:1px solid #fde047;text-decoration:none;transition:all .2s}.promoted-card:hover{transform:translateY(-2px);box-shadow:0 4px 16px #fde0474d}.promoted-label{margin-bottom:10px}.promoted-tag{font-size:10px;font-weight:600;color:#a16207;background:#fef08a;padding:3px 8px;border-radius:6px;text-transform:uppercase;letter-spacing:.5px}.promoted-content{display:flex;align-items:center;gap:12px;margin-bottom:12px}.promoted-icon{font-size:32px}.promoted-text h4{font-size:15px;font-weight:600;color:#1e293b;margin:0 0 4px}.promoted-text p{font-size:13px;color:#64748b;margin:0}.promoted-cta{font-size:13px;font-weight:600;color:#a16207;display:block;text-align:right}.poll-card{background:linear-gradient(135deg,#f0fdf4,#dcfce7);border-radius:16px;padding:18px;border:1px solid #86efac}.poll-label{margin-bottom:10px}.poll-tag{font-size:12px;font-weight:600;color:#166534}.poll-question{font-size:16px;font-weight:600;color:#1e293b;margin:0 0 14px;line-height:1.4}.poll-options{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:12px}.poll-option{padding:12px 16px;background:#fff;border:2px solid #86efac;border-radius:10px;font-size:14px;font-weight:500;color:#166534;cursor:pointer;transition:all .2s}.poll-option:hover{background:#166534;color:#fff;border-color:#166534}.poll-note{font-size:12px;color:#166534;text-align:center;margin:0}.engagement-link{text-decoration:none;display:block}.engagement-card{background:#fff;border-radius:16px;padding:18px;border:2px solid #6366f1;transition:all .2s}.engagement-card:hover{transform:translateY(-2px);box-shadow:0 4px 16px #6366f133}.engagement-header{margin-bottom:12px}.engagement-icon{width:44px;height:44px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:22px}.engagement-card h4{font-size:16px;font-weight:700;color:#1e293b;margin:0 0 6px}.engagement-card p{font-size:13px;color:#64748b;margin:0 0 12px;line-height:1.4}.engagement-cta{font-size:14px;font-weight:600;display:block;text-align:right}.ad-placeholder{background:#f8fafc;border-radius:16px;padding:20px;border:1px dashed #cbd5e1;text-align:center;min-height:100px;display:flex;align-items:center;justify-content:center}.ad-placeholder span{font-size:13px;color:#94a3b8}@media (max-width: 480px){.poll-options{grid-template-columns:1fr}.promoted-content{flex-direction:column;text-align:center}.promoted-cta{text-align:center}}.home-page{min-height:100vh;background:#f8fafc;padding-bottom:100px}.home-content{max-width:600px;margin:0 auto;padding:70px 16px 16px}.home-header{margin-bottom:20px}.welcome-text h1{font-size:26px;font-weight:700;color:#1e293b;margin:0 0 6px}.location-line{font-size:14px;color:#64748b;margin:0}.primary-cta{display:flex;align-items:center;justify-content:space-between;padding:18px 20px;background:linear-gradient(135deg,#6366f1,#8b5cf6);border-radius:18px;margin-bottom:20px;text-decoration:none;color:#fff;box-shadow:0 4px 20px #6366f159;transition:all .2s}.primary-cta:hover{transform:translateY(-2px);box-shadow:0 6px 24px #6366f173}.primary-cta.completed{background:linear-gradient(135deg,#22c55e,#16a34a);box-shadow:0 4px 20px #22c55e59;padding:14px 20px}.cta-content{display:flex;align-items:center;gap:14px}.cta-icon{font-size:36px}.primary-cta h3{font-size:18px;font-weight:700;margin:0 0 4px}.primary-cta p{font-size:13px;margin:0;opacity:.9}.cta-arrow{font-size:14px;font-weight:600;background:#fff3;padding:10px 16px;border-radius:12px;white-space:nowrap}.quick-actions-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin-bottom:24px}.action-tile{display:flex;flex-direction:column;align-items:center;gap:8px;padding:16px 10px;background:#fff;border:1px solid #e2e8f0;border-radius:14px;text-decoration:none;transition:all .2s}.action-tile:hover{border-color:#6366f1;box-shadow:0 4px 12px #6366f126;transform:translateY(-2px)}.tile-icon{font-size:28px}.tile-label{font-size:12px;font-weight:600;color:#475569;text-align:center}.section-header{margin-bottom:12px}.section-header h2{font-size:18px;font-weight:700;color:#1e293b;margin:0 0 4px}.section-header p{font-size:13px;color:#64748b;margin:0}.town-halls-section{margin-bottom:24px}.town-hall-card{display:flex;align-items:center;justify-content:space-between;padding:18px 20px;background:#fff;border:2px solid #22c55e;border-radius:16px;text-decoration:none;color:#1e293b;transition:all .2s}.town-hall-card:hover{background:#f0fdf4;box-shadow:0 4px 16px #22c55e33}.th-content{flex:1}.th-badge{display:inline-block;padding:4px 10px;background:#dcfce7;color:#166534;border-radius:12px;font-size:11px;font-weight:700;margin-bottom:8px}.th-content h3{font-size:16px;font-weight:700;margin:0 0 6px;color:#1e293b}.th-content p{font-size:13px;color:#64748b;margin:0 0 8px;line-height:1.4}.th-reps{font-size:12px;color:#22c55e;font-weight:600}.th-arrow{font-size:14px;font-weight:600;color:#22c55e;white-space:nowrap}.town-hall-note{font-size:13px;color:#64748b;text-align:center;margin:12px 0 0}.civic-wins-section{margin-bottom:24px}.wins-list{display:flex;flex-direction:column;gap:12px}.win-card-compact{background:#fff;border-radius:14px;padding:16px;border-left:4px solid #f59e0b;box-shadow:0 2px 8px #0000000d}.win-header{display:flex;gap:10px;align-items:center;margin-bottom:10px}.win-badge{padding:4px 10px;background:linear-gradient(135deg,#fef3c7,#fde68a);color:#92400e;border-radius:12px;font-size:11px;font-weight:700}.win-region{font-size:12px;color:#6366f1;font-weight:600}.win-card-compact h3{font-size:15px;font-weight:700;color:#1e293b;margin:0 0 8px;line-height:1.4}.win-card-compact p{font-size:13px;color:#64748b;line-height:1.5;margin:0}.win-inspiration{margin-top:10px;padding:10px 12px;background:#f0fdf4;border-radius:10px;font-size:12px;color:#166534}.news-section{margin-bottom:24px}.news-list{display:flex;flex-direction:column;gap:10px}.news-card-compact{display:block;padding:14px 16px;background:#fff;border-radius:12px;text-decoration:none;border:1px solid #e2e8f0;transition:all .2s}.news-card-compact:hover{border-color:#6366f1;box-shadow:0 2px 8px #00000014}.news-card-compact h4{font-size:14px;font-weight:600;color:#1e293b;margin:0 0 6px;line-height:1.4}.news-source{font-size:12px;color:#94a3b8}.loading-placeholder,.no-news{padding:30px;text-align:center;color:#94a3b8;background:#fff;border-radius:12px}.bottom-cta{text-align:center;padding:28px 20px;background:linear-gradient(135deg,#eef2ff,#e0e7ff);border-radius:18px;margin-bottom:20px}.bottom-cta h3{font-size:18px;font-weight:700;color:#1e293b;margin:0 0 8px}.bottom-cta p{font-size:14px;color:#64748b;margin:0 0 16px}.contact-btn{display:inline-block;padding:12px 24px;background:#6366f1;color:#fff;text-decoration:none;border-radius:12px;font-weight:600;font-size:15px;transition:all .2s}.contact-btn:hover{background:#4f46e5}.feedback-section{text-align:center;padding:20px}.feedback-section p{font-size:13px;color:#94a3b8;margin:0 0 10px}.feedback-link{font-size:14px;color:#6366f1;text-decoration:none;font-weight:500}@media (max-width: 480px){.quick-actions-grid{grid-template-columns:repeat(2,1fr)}.primary-cta{flex-direction:column;gap:12px;text-align:center}.cta-content{flex-direction:column}.town-hall-card{flex-direction:column;gap:12px;text-align:center}}.profile-prompt{display:flex;align-items:center;gap:12px;padding:14px 16px;background:linear-gradient(135deg,#fef3c7,#fde68a);border:2px solid #f59e0b;border-radius:14px;margin-bottom:16px;position:relative}.prompt-content{display:flex;align-items:center;gap:12px;flex:1}.prompt-icon{font-size:24px}.prompt-content strong{display:block;font-size:14px;color:#92400e;margin-bottom:2px}.prompt-content p{font-size:12px;color:#a16207;margin:0}.prompt-btn{padding:8px 14px;background:#f59e0b;color:#fff;text-decoration:none;border-radius:8px;font-size:13px;font-weight:600;white-space:nowrap}.prompt-close{position:absolute;top:8px;right:8px;background:none;border:none;color:#a16207;cursor:pointer;font-size:16px;padding:4px}.location-note{font-size:12px;color:#94a3b8;font-style:italic}.news-section .section-header{display:flex;justify-content:space-between;align-items:center}.news-location{font-size:12px;color:#64748b;background:#f1f5f9;padding:4px 10px;border-radius:12px}.news-meta{display:flex;gap:12px;align-items:center}.news-time{font-size:11px;color:#94a3b8}.fallback-link{display:inline-block;margin-top:12px;color:#6366f1;text-decoration:none;font-weight:500;font-size:14px}.fallback-link:hover{text-decoration:underline}.town-hall-banner{display:flex;align-items:center;gap:14px;padding:16px 18px;background:linear-gradient(135deg,#fef3c7,#fde68a);border:2px solid #f59e0b;border-radius:14px;text-decoration:none;margin-bottom:24px;transition:all .2s}.town-hall-banner:hover{transform:translateY(-2px);box-shadow:0 4px 16px #f59e0b40}.town-hall-banner .th-icon{font-size:28px}.town-hall-banner .th-text{flex:1}.town-hall-banner .th-text strong{display:block;font-size:15px;font-weight:700;color:#92400e;margin-bottom:2px}.town-hall-banner .th-text span{font-size:12px;color:#a16207}.town-hall-banner .th-arrow{font-size:18px;color:#92400e;font-weight:600}.feed-section{margin-bottom:24px}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.feed-info{font-size:12px;color:#64748b;background:#f1f5f9;padding:4px 10px;border-radius:12px}.feed-loading{text-align:center;padding:40px 20px}.feed-loading .spinner{width:36px;height:36px;border:3px solid #e2e8f0;border-top-color:#6366f1;border-radius:50%;animation:spin 1s linear infinite;margin:0 auto 12px}.feed-loading p{font-size:14px;color:#64748b;margin:0}.feed-list{display:flex;flex-direction:column;gap:12px}.feed-item-link{text-decoration:none}.feed-card{background:#fff;border-radius:16px;padding:16px;border:1px solid #e2e8f0;transition:all .2s}.feed-card:hover{border-color:#cbd5e1;box-shadow:0 4px 16px #0000000f;transform:translateY(-1px)}.feed-card-header{display:flex;align-items:center;gap:10px;margin-bottom:10px}.feed-icon{width:32px;height:32px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:16px}.feed-type-label{font-size:12px;font-weight:600;color:#64748b;text-transform:uppercase;letter-spacing:.5px}.feed-time{font-size:12px;color:#94a3b8;margin-left:auto}.local-badge{margin-left:8px;font-size:11px;color:#16a34a;background:#dcfce7;padding:3px 8px;border-radius:10px}.feed-title{font-size:16px;font-weight:600;color:#1e293b;margin:0 0 6px;line-height:1.3}.feed-subtitle{font-size:13px;color:#64748b;margin:0 0 6px}.feed-description{font-size:14px;color:#475569;margin:0 0 10px;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.vote-result{display:flex;gap:16px;margin-bottom:10px;font-size:14px;font-weight:600}.vote-result .yes{color:#16a34a}.vote-result .no{color:#dc2626}.feed-footer{display:flex;justify-content:flex-end}.feed-action{font-size:13px;font-weight:600;color:#6366f1}.feed-card.state_bill{border-left:4px solid #8b5cf6}.feed-card.federal_bill{border-left:4px solid #3b82f6}.feed-card.rep_vote{border-left:4px solid #22c55e}.feed-card.bill_passed{border-left:4px solid #16a34a}.feed-card.bill_failed{border-left:4px solid #ef4444}.feed-card.political_news{border-left:4px solid #64748b}.feed-card.town_hall{border-left:4px solid #f59e0b}.no-feed{text-align:center;padding:30px 20px;background:#fff;border-radius:16px}.no-feed p{font-size:14px;color:#64748b;margin:0 0 16px}.fallback-links{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}.fallback-btn{padding:10px 16px;background:#f1f5f9;color:#475569;text-decoration:none;border-radius:10px;font-size:13px;font-weight:500;transition:all .2s}.fallback-btn:hover{background:#e2e8f0}.contact-rep-cta{display:flex;align-items:center;justify-content:center;gap:12px;padding:18px 24px;margin-bottom:20px;background:#2563eb;color:#fff;text-decoration:none;border-radius:12px;font-weight:600;font-size:1.05rem;box-shadow:0 4px 12px #2563eb4d;transition:all .2s;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}.contact-rep-cta:hover{background:#1d4ed8;transform:translateY(-2px);box-shadow:0 6px 16px #2563eb66}.contact-rep-cta:active{transform:translateY(0)}.contact-rep-cta .cta-icon{font-size:1.3rem}.contact-rep-cta .cta-text{flex:1;text-align:center;text-shadow:none}.contact-rep-cta .cta-arrow{font-size:1.1rem;font-weight:700}@media (max-width: 480px){.contact-rep-cta{padding:16px 20px;font-size:1rem;border-radius:10px}.contact-rep-cta .cta-icon{font-size:1.1rem}}.events-section{margin-bottom:20px}.events-section .section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.events-section .section-header h2{font-size:18px;font-weight:700;color:#1e293b;margin:0}.events-section .see-all{font-size:13px;color:#2563eb;text-decoration:none;font-weight:500}.events-preview-list{display:flex;flex-direction:column;gap:10px}.event-preview-card{display:flex;align-items:center;gap:12px;padding:12px 14px;background:#fff;border:1px solid #e2e8f0;border-radius:12px}.event-preview-badge{width:36px;height:36px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0}.event-preview-content{flex:1;min-width:0}.event-preview-content h4{font-size:14px;font-weight:600;color:#1e293b;margin:0 0 2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.event-preview-date{font-size:12px;color:#64748b}.event-preview-link{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:#f1f5f9;border-radius:8px;color:#64748b;text-decoration:none;font-size:16px;flex-shrink:0}@media (prefers-color-scheme: dark){.events-section .section-header h2{color:#f1f5f9}.events-section .see-all{color:#60a5fa}.event-preview-card{background:#1e293b;border-color:#334155}.event-preview-content h4{color:#f1f5f9}.event-preview-date{color:#94a3b8}.event-preview-link{background:#334155;color:#94a3b8}}.streak-level-card{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;background:linear-gradient(135deg,#fef3c7,#fde68a);border:1px solid #fcd34d;border-radius:14px;margin-bottom:12px}.streak-section{display:flex;align-items:center;gap:10px}.streak-fire{font-size:28px}.streak-info{display:flex;flex-direction:column}.streak-count{font-size:18px;font-weight:700;color:#92400e}.streak-label{font-size:11px;color:#b45309;text-transform:uppercase;letter-spacing:.5px}.level-section{display:flex;align-items:center;gap:8px}.level-emoji{font-size:24px}.level-info{display:flex;flex-direction:column;min-width:80px}.level-name{font-size:13px;font-weight:600;color:#92400e}.level-progress-bar{height:6px;background:#0000001a;border-radius:3px;overflow:hidden;margin-top:4px}.level-progress-fill{height:100%;border-radius:3px;transition:width .5s ease}.points-badge{font-size:11px;font-weight:700;color:#fff;background:#92400e;padding:4px 8px;border-radius:10px}.fun-fact-card{padding:14px 16px;background:linear-gradient(135deg,#dbeafe,#e0e7ff);border:1px solid #93c5fd;border-radius:14px;margin-bottom:12px}.fun-fact-label{font-size:11px;font-weight:600;color:#1e40af;text-transform:uppercase;letter-spacing:.5px}.fun-fact-text{font-size:14px;color:#1e3a8a;margin:6px 0 0;line-height:1.4}@media (prefers-color-scheme: dark){.streak-level-card{background:linear-gradient(135deg,#422006,#78350f);border-color:#92400e}.streak-count{color:#fde68a}.streak-label{color:#fcd34d}.level-name{color:#fde68a}.points-badge{background:#fbbf24;color:#422006}.fun-fact-card{background:linear-gradient(135deg,#1e3a5f,#312e81);border-color:#3b82f6}.fun-fact-label{color:#93c5fd}.fun-fact-text{color:#bfdbfe}}.why-lobbyus-card{background:linear-gradient(135deg,#f0f9ff,#e0f2fe);border-radius:12px;padding:16px;margin-bottom:16px;border:1px solid #bae6fd}.why-lobbyus-card h3{margin:0 0 12px;font-size:1rem;color:#0369a1}.value-props{display:flex;flex-direction:column;gap:8px}.value-prop{display:flex;align-items:center;gap:10px;font-size:.9rem;color:#334155}.value-prop .vp-icon{font-size:1.1rem;flex-shrink:0}.value-prop .vp-text{flex:1}.value-prop strong{color:#0369a1}@media (prefers-color-scheme: dark){.why-lobbyus-card{background:linear-gradient(135deg,#0c4a6e,#075985);border-color:#0369a1}.why-lobbyus-card h3{color:#7dd3fc}.value-prop{color:#e0f2fe}.value-prop strong{color:#7dd3fc}}.main-street-cta{display:flex;align-items:center;justify-content:space-between;padding:16px 18px;margin-bottom:16px;background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff;text-decoration:none;border-radius:12px;box-shadow:0 4px 12px #f59e0b4d;transition:all .2s}.main-street-cta:hover{transform:translateY(-2px);box-shadow:0 6px 16px #f59e0b66}.ms-content{display:flex;align-items:center;gap:12px}.ms-icon{font-size:1.5rem}.ms-text h3{margin:0;font-size:1rem;font-weight:600}.ms-text p{margin:2px 0 0;font-size:.85rem;opacity:.9}.ms-arrow{font-size:1.2rem;opacity:.8}@media (prefers-color-scheme: dark){.main-street-cta{background:linear-gradient(135deg,#d97706,#b45309)}}:root{--cd-bg: #0f1923;--cd-surface: #1a2736;--cd-border: #2a3f55;--cd-accent: #00e676;--cd-accent2: #00b4d8;--cd-text: #e8f0f7;--cd-muted: #7a9ab8;--cd-radius: 12px;--cd-shadow: 0 -8px 40px rgba(0,0,0,.5)}.cd-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000;-webkit-backdrop-filter:blur(0px);backdrop-filter:blur(0px);z-index:999;pointer-events:none;transition:background .3s ease,backdrop-filter .3s ease}.cd-backdrop--visible{background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);pointer-events:all}.cd-drawer{position:fixed;bottom:0;left:0;right:0;max-width:640px;margin:0 auto;background:var(--cd-bg);border-top:1px solid var(--cd-border);border-radius:20px 20px 0 0;box-shadow:var(--cd-shadow);z-index:1000;max-height:92vh;overflow-y:auto;transform:translateY(100%);transition:transform .35s cubic-bezier(.32,.72,0,1);overscroll-behavior:contain}.cd-drawer--open{transform:translateY(0)}.cd-handle{width:40px;height:4px;background:var(--cd-border);border-radius:2px;margin:12px auto 0;cursor:pointer;transition:background .2s}.cd-handle:hover{background:var(--cd-muted)}.cd-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px 12px;border-bottom:1px solid var(--cd-border)}.cd-header-left{display:flex;align-items:center;gap:12px}.cd-megaphone{font-size:28px;line-height:1}.cd-title{font-size:18px;font-weight:700;color:var(--cd-text);letter-spacing:-.3px}.cd-subtitle{font-size:13px;color:var(--cd-accent);font-weight:500;margin-top:2px}.cd-close{background:var(--cd-surface);border:1px solid var(--cd-border);color:var(--cd-muted);width:32px;height:32px;border-radius:50%;cursor:pointer;font-size:14px;display:flex;align-items:center;justify-content:center;transition:all .2s;flex-shrink:0}.cd-close:hover{background:var(--cd-border);color:var(--cd-text)}.cd-body{padding:20px}.cd-step{animation:cd-fadein .2s ease}@keyframes cd-fadein{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.cd-instruction{font-size:14px;color:var(--cd-muted);margin:0 0 16px;line-height:1.5}.cd-issue-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:20px}.cd-issue-btn{display:flex;align-items:center;gap:10px;background:var(--cd-surface);border:1px solid var(--cd-border);border-radius:var(--cd-radius);padding:14px 16px;cursor:pointer;color:var(--cd-text);font-size:14px;font-weight:500;text-align:left;transition:all .18s}.cd-issue-btn:hover{border-color:var(--cd-accent);background:#00e6760f;transform:translateY(-1px)}.cd-issue-emoji{font-size:20px;flex-shrink:0}.cd-issue-label{line-height:1.3}.cd-quick-strip{display:flex;gap:10px;flex-wrap:wrap}.cd-quick-btn{display:flex;align-items:center;gap:8px;padding:10px 16px;border-radius:var(--cd-radius);font-size:14px;font-weight:600;text-decoration:none;transition:all .18s;border:1px solid transparent}.cd-quick-phone{background:#00e6761f;color:var(--cd-accent);border-color:#00e6764d}.cd-quick-phone:hover{background:#00e67633}.cd-quick-web{background:#00b4d81f;color:var(--cd-accent2);border-color:#00b4d84d}.cd-quick-web:hover{background:#00b4d833}.cd-back{background:none;border:none;color:var(--cd-muted);font-size:14px;cursor:pointer;padding:0;margin-bottom:16px;transition:color .2s}.cd-back:hover{color:var(--cd-text)}.cd-compose-header{margin-bottom:16px}.cd-issue-badge{display:inline-flex;align-items:center;gap:6px;background:#00e6761a;border:1px solid rgba(0,230,118,.3);color:var(--cd-accent);font-size:13px;font-weight:600;padding:4px 12px;border-radius:20px}.cd-field{margin-bottom:14px}.cd-label{display:flex;justify-content:space-between;font-size:12px;font-weight:600;color:var(--cd-muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px}.cd-char-count{font-weight:400}.cd-input{width:100%;background:var(--cd-surface);border:1px solid var(--cd-border);border-radius:8px;color:var(--cd-text);font-size:14px;padding:10px 14px;outline:none;transition:border-color .2s;box-sizing:border-box}.cd-input:focus{border-color:var(--cd-accent)}.cd-textarea{width:100%;background:var(--cd-surface);border:1px solid var(--cd-border);border-radius:8px;color:var(--cd-text);font-size:14px;line-height:1.6;padding:12px 14px;outline:none;resize:vertical;transition:border-color .2s;font-family:inherit;box-sizing:border-box;min-height:200px}.cd-textarea:focus{border-color:var(--cd-accent)}.cd-tip{font-size:12px;color:var(--cd-muted);background:#00b4d814;border:1px solid rgba(0,180,216,.2);border-radius:8px;padding:10px 14px;margin-bottom:20px;line-height:1.5}.cd-send-title{font-size:12px;font-weight:700;color:var(--cd-muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:10px}.cd-send-grid{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}.cd-send-btn{display:inline-flex;align-items:center;gap:6px;padding:10px 18px;border-radius:8px;font-size:14px;font-weight:600;text-decoration:none;cursor:pointer;border:none;transition:all .18s}.cd-send-email{background:var(--cd-accent);color:#000}.cd-send-email:hover{background:#00ff8a;transform:translateY(-1px)}.cd-send-phone{background:var(--cd-surface);color:var(--cd-accent);border:1px solid rgba(0,230,118,.4)}.cd-send-phone:hover{background:#00e6761a}.cd-send-twitter{background:#000;color:#fff;border:1px solid #333}.cd-send-twitter:hover{background:#111}.cd-send-web{background:var(--cd-surface);color:var(--cd-accent2);border:1px solid rgba(0,180,216,.4)}.cd-send-web:hover{background:#00b4d81a}.cd-note{font-size:12px;color:var(--cd-muted);text-align:center;margin:0;padding-bottom:8px}@media (max-width: 480px){.cd-issue-grid{grid-template-columns:1fr 1fr}.cd-send-grid{flex-direction:column}.cd-send-btn{justify-content:center}}.cv-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000}.cv-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1001;overflow-y:auto;display:flex;align-items:flex-start;justify-content:center;padding:20px 16px 40px}.cv-wrap--modal{background:#fff;border-radius:20px;width:100%;max-width:860px;box-shadow:0 24px 80px #0000004d;overflow:hidden}.cv-wrap--page{max-width:900px;margin:0 auto;padding:16px 16px 80px}.cv-header{display:flex;align-items:center;gap:12px;padding:18px 22px;background:#0f1923;position:relative}.cv-header-icon{font-size:26px}.cv-header-title{font-size:18px;font-weight:800;color:#fff;margin:0}.cv-header-sub{font-size:12px;color:#7a9ab8;margin:2px 0 0}.cv-close{position:absolute;right:16px;top:50%;transform:translateY(-50%);background:#ffffff1a;border:1px solid rgba(255,255,255,.2);color:#fff;width:32px;height:32px;border-radius:50%;cursor:pointer;font-size:14px;display:flex;align-items:center;justify-content:center}.cv-grid{display:grid;grid-template-columns:1fr 40px 1fr;gap:0;padding:20px;background:#f8fafc;align-items:start}.cv-vs{display:flex;align-items:center;justify-content:center;padding-top:60px;font-size:12px;font-weight:900;color:#94a3b8}.cv-card{background:#fff;border-radius:14px;padding:18px;border-top:3px solid #3b82f6;box-shadow:0 2px 10px #0000000f;display:flex;flex-direction:column;gap:16px;position:relative}.cv-card-clear{background:none;border:none;color:#94a3b8;font-size:12px;font-weight:600;cursor:pointer;padding:0;text-align:left}.cv-card-clear:hover{color:#6366f1}.cv-card-header{display:flex;gap:12px;align-items:flex-start}.cv-card-avatar{width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:700;flex-shrink:0}.cv-card-name{font-size:16px;font-weight:800;color:#0f172a;margin:0 0 2px}.cv-card-title{font-size:12px;color:#64748b;margin:0 0 6px}.cv-card-party{font-size:11px;font-weight:700;padding:3px 8px;border-radius:10px}.cv-section{border-top:1px solid #f1f5f9;padding-top:12px}.cv-section-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:#94a3b8;margin-bottom:8px}.cv-ai-text{font-size:13px;color:#374151;line-height:1.6;margin:0}.cv-ai-dots{display:flex;gap:4px;padding:4px 0}.cv-ai-dots span{width:6px;height:6px;border-radius:50%;background:#94a3b8;animation:cvbounce 1.2s ease infinite}.cv-ai-dots span:nth-child(2){animation-delay:.2s}.cv-ai-dots span:nth-child(3){animation-delay:.4s}@keyframes cvbounce{0%,60%,to{transform:translateY(0)}30%{transform:translateY(-4px)}}.cv-facts{display:flex;flex-direction:column;gap:6px}.cv-fact{display:flex;justify-content:space-between;font-size:13px}.cv-fact span:first-child{color:#64748b}.cv-fact span:last-child{font-weight:600;color:#0f172a}.cv-contacts{display:flex;flex-direction:column;gap:5px}.cv-contact-link{display:block;padding:7px 10px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:7px;font-size:13px;color:#374151;text-decoration:none;transition:all .15s}.cv-contact-link:hover{border-color:#6366f1;color:#6366f1}.cv-picker{background:#fff;border-radius:14px;padding:18px;border-top:3px solid #f59e0b;box-shadow:0 2px 10px #0000000f}.cv-picker-title{font-size:15px;font-weight:800;color:#0f172a;margin-bottom:12px}.cv-picker-input{width:100%;border:1.5px solid #e2e8f0;border-radius:9px;padding:9px 13px;font-size:14px;outline:none;box-sizing:border-box;margin-bottom:10px;transition:border-color .2s}.cv-picker-input:focus{border-color:#f59e0b}.cv-picker-list{display:flex;flex-direction:column;gap:4px;max-height:300px;overflow-y:auto}.cv-picker-row{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border:1px solid #f1f5f9;border-radius:8px;background:#fff;cursor:pointer;text-align:left;width:100%;transition:all .15s}.cv-picker-row:hover{border-color:#f59e0b;background:#fffbf0}.cv-picker-name{font-size:14px;font-weight:600;color:#0f172a}.cv-picker-sub{font-size:12px;color:#64748b;margin-top:2px}.cv-picker-plus{font-size:20px;color:#f59e0b;font-weight:700}.cv-picker-msg{font-size:13px;color:#94a3b8;text-align:center;padding:20px 0;margin:0}.cv-footer{padding:14px 22px;background:#f8fafc;border-top:1px solid #e2e8f0;font-size:11px;color:#94a3b8;text-align:center}@media (max-width: 600px){.cv-grid{grid-template-columns:1fr;gap:12px;padding:14px}.cv-vs{padding:0}.cv-modal{padding:0;align-items:flex-end}.cv-wrap--modal{border-radius:20px 20px 0 0;max-height:92vh;overflow-y:auto}}.cv-stat-bar{margin-bottom:10px}.cv-stat-bar-header{display:flex;justify-content:space-between;font-size:12px;color:#64748b;margin-bottom:4px}.cv-stat-value{font-weight:700;color:#0f172a}.cv-stat-track{height:8px;background:#f1f5f9;border-radius:4px;overflow:hidden}.cv-stat-fill{height:100%;border-radius:4px;transition:width .6s ease}.cv-stat-row{display:flex;justify-content:space-between;font-size:13px;padding:4px 0;border-top:1px solid #f8fafc}.cv-stat-num{font-weight:700;color:#0f172a}.cv-missed{color:#dc2626!important}.cv-grade-badge{font-size:28px;font-weight:900;width:52px;height:52px;border-radius:12px;display:flex;align-items:center;justify-content:center;border:2px solid;flex-shrink:0;letter-spacing:-1px}.cv-recent-votes{display:flex;flex-direction:column;gap:6px}.cv-vote-row{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;font-size:12px;padding:6px 0;border-bottom:1px solid #f8fafc}.cv-vote-bill{color:#374151;flex:1;line-height:1.4}.cv-vote-row-right{display:flex;flex-direction:column;align-items:flex-end;gap:2px;flex-shrink:0}.cv-vote-date{color:#94a3b8;font-size:11px}.cv-vote-tag{font-size:10px;font-weight:700;padding:2px 6px;border-radius:6px}.cv-vote-yea{background:#dcfce7;color:#16a34a}.cv-vote-nay{background:#fee2e2;color:#dc2626}.cv-vote-absent{background:#f1f5f9;color:#94a3b8}.cv-no-data{text-align:center;padding:20px;color:#94a3b8}.cv-no-data span{font-size:28px;display:block;margin-bottom:8px}.cv-no-data p{font-size:13px;margin:0 0 4px}.cv-no-data-sub{font-size:11px!important}.cv-loading-row{display:flex;align-items:center;gap:8px;font-size:13px;color:#94a3b8;padding:12px 0}.cv-spinner-sm{width:16px;height:16px;border:2px solid #e2e8f0;border-top-color:#6366f1;border-radius:50%;animation:spin .7s linear infinite;flex-shrink:0}.reps-page{min-height:100vh;background:var(--color-gray-50, #f8fafb)}.reps-content{max-width:100%;margin:0 auto;padding:var(--space-md, 16px);padding-top:72px}@media (min-width: 768px){.reps-content{padding:var(--space-lg, 24px) var(--space-xl, 40px);padding-top:var(--space-lg, 24px)}}.zip-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0f2439bf;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;padding:20px;z-index:1000}.zip-modal{background:#fff;border-radius:var(--radius-xl, 20px);padding:32px 28px;max-width:420px;width:100%;text-align:center;box-shadow:0 20px 60px #0f243933}.zip-modal h2{font-size:var(--text-xl, 1.4rem);color:var(--color-navy, #0f2439);margin:0 0 8px;font-weight:700}.zip-modal>p{color:var(--color-gray-500, #8e99a8);margin:0 0 24px;font-size:var(--text-sm, .9rem);line-height:1.5}.zip-modal form{display:flex;flex-direction:column;gap:12px}.zip-modal-input{width:100%;padding:14px;font-size:1.4rem;text-align:center;letter-spacing:8px;border:2px solid var(--color-gray-200, #e2e7ed);border-radius:var(--radius-md, 12px);outline:none;font-weight:700;color:var(--color-navy, #0f2439);transition:border-color .2s,box-shadow .2s}.zip-modal-input:focus{border-color:var(--color-sky-dark, #3b9cc2);box-shadow:0 0 0 3px #3b9cc21f}.zip-error{color:var(--color-red, #ef4444);font-size:.85rem;margin:0}.zip-modal-btn{padding:14px;background:linear-gradient(135deg,var(--color-navy-light, #2d5a7b),var(--color-sky-dark, #3b9cc2));color:#fff;border:none;border-radius:var(--radius-md, 12px);font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s;box-shadow:0 2px 8px #1e5a824d}.zip-modal-btn:hover{transform:translateY(-1px);box-shadow:0 4px 14px #1e5a8259}.zip-modal-note{font-size:.8rem;color:var(--color-gray-500, #8e99a8);margin:16px 0 0}.reps-header{text-align:center;margin-bottom:var(--space-lg, 20px)}.reps-header h1{font-size:var(--text-xl, 1.5rem);font-weight:700;color:var(--color-navy, #0f2439);margin:0 0 6px;letter-spacing:-.3px}.reps-header p{color:var(--color-gray-500, #8e99a8);margin:0;font-size:var(--text-sm, .9rem)}@media (min-width: 768px){.reps-header{text-align:left}}.zip-form{margin-bottom:var(--space-lg, 20px)}.zip-input-group{display:flex;align-items:center;max-width:420px;margin:0 auto;background:#fff;border-radius:var(--radius-md, 12px);padding:5px;border:2px solid var(--color-gray-200, #e2e7ed);box-shadow:var(--shadow-sm);transition:border-color .2s,box-shadow .2s}@media (min-width: 768px){.zip-input-group{margin:0}}.zip-input-group:focus-within{border-color:var(--color-sky-dark, #3b9cc2);box-shadow:0 0 0 3px #3b9cc21a}.zip-icon{padding:0 10px;font-size:1.1rem;color:var(--color-gray-500, #8e99a8)}.zip-input{flex:1;border:none;background:transparent;padding:10px 8px;font-size:1rem;outline:none;font-weight:600;letter-spacing:2px;color:var(--color-navy, #0f2439)}.zip-btn{background:linear-gradient(135deg,var(--color-navy-light, #2d5a7b),var(--color-sky-dark, #3b9cc2));color:#fff;border:none;padding:10px 18px;border-radius:var(--radius-sm, 8px);font-weight:600;font-size:var(--text-sm, .9rem);cursor:pointer;transition:all .2s;white-space:nowrap}.zip-btn:hover{transform:translateY(-1px);box-shadow:0 2px 8px #1e5a824d}.current-location{text-align:center;margin-top:var(--space-sm, 10px);font-size:.85rem;color:var(--color-gray-500, #8e99a8)}@media (min-width: 768px){.current-location{text-align:left}}.current-location strong{color:var(--color-navy, #0f2439)}.detected-badge{display:inline-block;margin-left:6px;padding:2px 8px;background:#fef9c3;color:#854d0e;font-size:.7rem;border-radius:var(--radius-full, 100px);font-weight:600}.level-tabs{display:flex;gap:6px;margin-bottom:var(--space-lg, 20px);padding:5px;background:#fff;border-radius:var(--radius-lg, 16px);box-shadow:var(--shadow-sm);border:1px solid var(--color-gray-200, #e2e7ed)}@media (min-width: 768px){.level-tabs{max-width:480px}}.level-tab{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;padding:10px 8px;background:transparent;border:none;border-radius:var(--radius-md, 12px);cursor:pointer;transition:all .2s ease;color:var(--color-gray-500, #8e99a8);-webkit-tap-highlight-color:transparent}.level-tab:hover{background:var(--color-gray-100, #f1f4f7)}.level-tab.active{background:var(--color-navy, #0f2439);color:#fff;box-shadow:0 2px 8px #0f243940}.tab-icon{font-size:1.1rem;line-height:1}.tab-label{font-weight:600;font-size:.85rem}.tab-count{background:#00000014;padding:1px 7px;border-radius:var(--radius-full, 100px);font-size:.75rem;font-weight:600}.level-tab.active .tab-count{background:#fff3}.reps-section{margin-bottom:var(--space-lg, 20px)}.section-intro{margin-bottom:var(--space-md, 16px)}.section-intro h2{font-size:1.1rem;color:var(--color-navy, #0f2439);margin:0 0 4px;font-weight:700}.section-intro p{color:var(--color-gray-500, #8e99a8);margin:0;font-size:.85rem}.reps-grid{display:grid;grid-template-columns:1fr;gap:var(--space-md, 12px)}@media (min-width: 640px){.reps-grid{grid-template-columns:repeat(2,1fr)}}.no-reps,.no-reps-box{text-align:center;padding:32px 20px;color:var(--color-gray-500, #8e99a8);background:#fff;border-radius:var(--radius-lg, 16px);border:1px solid var(--color-gray-200, #e2e7ed)}.no-reps-box p{margin:0 0 6px}.no-reps-box .note{font-size:.8rem;color:var(--color-gray-500, #8e99a8)}.rep-card{display:flex;flex-direction:column;align-items:center;text-align:center;background:#fff;border-radius:16px;overflow:hidden;text-decoration:none;color:inherit;transition:transform .18s ease,box-shadow .18s ease;box-shadow:0 2px 8px #00000012;border:1px solid #e2e7ed;position:relative;padding:24px 20px 18px;gap:6px}.rep-card:hover{transform:translateY(-3px);box-shadow:0 8px 24px #0000001f}.rep-card:active{transform:translateY(0)}.rc-grade{position:absolute;top:12px;right:12px;color:#fff;font-size:.75rem;font-weight:800;padding:4px 10px;border-radius:8px;letter-spacing:.5px;box-shadow:0 2px 6px #00000026;z-index:2}.your-rep-badge{position:absolute;top:12px;left:12px;background:#22c55e;color:#fff;font-size:.62rem;font-weight:700;padding:3px 8px;border-radius:100px;z-index:10;text-transform:uppercase;letter-spacing:.5px}.rc-avatar{width:88px;height:88px;border-radius:50%;border:3.5px solid #6b7280;padding:3px;background:#fff;flex-shrink:0;overflow:hidden;display:flex;align-items:center;justify-content:center}.rc-avatar img{width:100%;height:100%;border-radius:50%;object-fit:cover;object-position:top center;background:linear-gradient(135deg,#f1f4f7,#e2e7ed)}.rc-name{font-size:1.05rem;font-weight:700;color:#0f2439;margin:6px 0 0;line-height:1.25}.rc-title{font-size:.78rem;color:#8e99a8;margin:2px 0 0;line-height:1.3}.rc-party{font-size:.68rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;margin-top:2px}.rc-icons{display:flex;gap:10px;margin-top:10px}.rc-icon-btn{display:flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:50%;background:#f1f4f7;text-decoration:none;font-size:1rem;transition:background .15s,transform .15s}.rc-icon-btn:hover{background:#e2e7ed;transform:scale(1.1)}.rc-actions{width:100%;margin-top:12px;display:flex;flex-direction:column;gap:6px}.party-bar,.rep-photo{display:none}.rep-info{flex:1;min-width:0}.rep-name{font-size:.95rem;font-weight:700;color:#0f2439;margin:0}.rep-office{font-size:.75rem;color:#8e99a8;margin:2px 0 0}.view-profile{display:none}.rep-card.disabled{opacity:.6;cursor:not-allowed}.rep-card.disabled:hover{transform:none;box-shadow:0 2px 8px #00000012}.reps-error{display:flex;align-items:center;justify-content:center;gap:10px;padding:16px 20px;background:var(--color-red-bg, #fef2f2);border-radius:var(--radius-md, 12px);color:var(--color-red, #ef4444);margin-bottom:16px;font-size:var(--text-sm, .9rem);border:1px solid #fecaca}.reps-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px;color:var(--color-gray-500, #8e99a8)}.reps-loading .spinner{width:32px;height:32px;border:3px solid var(--color-gray-200, #e2e7ed);border-top-color:var(--color-navy-light, #2d5a7b);border-radius:50%;animation:spin .8s linear infinite;margin-bottom:12px}.coming-soon-card{background:linear-gradient(135deg,#f0f9ff,#e0f2fe);border:1px solid #bae6fd;border-radius:var(--radius-lg, 16px);padding:var(--space-lg, 20px);text-align:center;margin-top:var(--space-md, 16px)}.coming-soon-card h3{color:var(--color-navy-light, #2d5a7b);margin:0 0 8px;font-size:1rem}.coming-soon-card p{color:var(--color-sky-dark, #3b9cc2);margin:0 0 6px;font-size:var(--text-sm, .9rem)}.coming-soon-card .data-note{font-size:.8rem;color:var(--color-gray-500, #8e99a8);margin:0}.no-data-card{background:var(--color-gray-50, #f8fafb);border:1px dashed var(--color-gray-300, #cdd4dc);border-radius:var(--radius-lg, 16px);padding:var(--space-lg, 20px);text-align:center}.no-data-card p{color:var(--color-gray-500, #8e99a8);margin:0}.district-note{text-align:center;padding:12px 16px;background:#fef9c3;border:1px solid #fde68a;border-radius:var(--radius-md, 12px);color:#854d0e;font-size:.85rem;margin-top:12px}.local-officials{padding:4px 0}.local-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px;margin-bottom:14px}.local-header h3{margin:0;color:var(--color-navy, #0f2439);font-size:1rem;font-weight:700}.data-source{font-size:.7rem;padding:3px 8px;border-radius:var(--radius-full, 100px);font-weight:500;background:#ecfdf5;color:#059669}.officials-group{margin-bottom:16px}.officials-group h4{margin:0 0 10px;font-size:.8rem;color:var(--color-gray-500, #8e99a8);text-transform:uppercase;letter-spacing:.06em;font-weight:600}.officials-grid{display:grid;grid-template-columns:1fr;gap:10px}@media (min-width: 640px){.officials-grid{grid-template-columns:repeat(2,1fr)}}.local-official-card{background:#fff;border-radius:var(--radius-md, 12px);padding:14px;box-shadow:var(--shadow-sm);border:1px solid var(--color-gray-200, #e2e7ed);transition:transform .15s ease,box-shadow .15s ease}.local-official-card:hover{transform:translateY(-1px);box-shadow:var(--shadow-md)}.official-header{display:flex;gap:10px;margin-bottom:10px}.role-icon{font-size:1.5rem;line-height:1}.official-info h5{margin:0;font-size:.95rem;color:var(--color-navy, #0f2439);font-weight:600}.official-office{margin:2px 0;font-size:.8rem;color:var(--color-gray-500, #8e99a8)}.local-official-card .role-badge{display:inline-block;font-size:.65rem;font-weight:600;padding:2px 7px;border-radius:var(--radius-sm, 8px);text-transform:uppercase;letter-spacing:.04em}.local-official-card .role-badge.mayor{background:#fef9c3;color:#854d0e}.local-official-card .role-badge.president{background:var(--color-blue-bg, #eff6ff);color:#2563eb}.local-official-card .role-badge.council{background:var(--color-gray-100, #f1f4f7);color:var(--color-gray-700, #4a5568)}.official-contact{display:flex;flex-wrap:wrap;gap:6px}.official-contact .contact-btn{padding:5px 10px;background:var(--color-gray-100, #f1f4f7);border:1px solid var(--color-gray-200, #e2e7ed);border-radius:var(--radius-full, 100px);font-size:.75rem;color:var(--color-gray-700, #4a5568);text-decoration:none;font-weight:500;transition:background .15s}.official-contact .contact-btn:hover{background:var(--color-gray-200, #e2e7ed)}.no-local-data,.no-officials-found{text-align:center;padding:24px;background:var(--color-gray-50, #f8fafb);border-radius:var(--radius-md, 12px);border:1px solid var(--color-gray-200, #e2e7ed)}.no-local-data p,.no-officials-found p{margin:0 0 8px;color:var(--color-gray-500, #8e99a8);font-size:var(--text-sm, .9rem)}.no-local-data .help-text{font-size:.85rem}.local-resources{display:flex;flex-direction:column;gap:6px;margin:12px 0}.local-resources a{display:inline-block;padding:10px 14px;background:var(--color-navy-light, #2d5a7b);color:#fff;text-decoration:none;border-radius:var(--radius-sm, 8px);font-weight:500;font-size:.85rem;transition:background .15s,transform .15s}.local-resources a:hover{background:var(--color-navy, #0f2439);transform:translateY(-1px)}.refresh-btn{padding:8px 16px;background:var(--color-navy-light, #2d5a7b);color:#fff;border:none;border-radius:var(--radius-sm, 8px);cursor:pointer;font-size:.85rem;font-weight:500;transition:background .15s}.refresh-btn:hover{background:var(--color-navy, #0f2439)}.coverage-note{margin-top:12px;padding:10px 14px;background:#ecfdf5;border:1px solid #d1fae5;border-radius:var(--radius-sm, 8px);font-size:.8rem;color:#059669}.legislators-section{margin-top:var(--space-lg, 20px);padding-top:var(--space-lg, 20px);border-top:1px solid var(--color-gray-200, #e2e7ed)}.legislators-section h3{font-size:1rem;color:var(--color-navy, #0f2439);margin-bottom:6px;font-weight:700}.legislators-section .section-note{font-size:.8rem;color:var(--color-gray-500, #8e99a8);margin-bottom:12px;font-style:italic}.legislators-grid{display:grid;grid-template-columns:1fr;gap:8px}@media (min-width: 640px){.legislators-grid{grid-template-columns:repeat(2,1fr)}}.legislator-card{background:#fff;border:1px solid var(--color-gray-200, #e2e7ed);border-radius:var(--radius-md, 12px);padding:12px;transition:all .15s ease}.legislator-card:hover{box-shadow:var(--shadow-sm);border-color:var(--color-gray-300, #cdd4dc)}.leg-header{display:flex;gap:10px;align-items:center}.leg-photo{width:42px;height:42px;border-radius:50%;object-fit:cover;background:var(--color-gray-100, #f1f4f7);flex-shrink:0}.leg-info{display:flex;flex-direction:column;gap:1px}.leg-name{font-weight:600;color:var(--color-navy, #0f2439);font-size:var(--text-sm, .9rem)}.leg-party{font-size:.75rem;font-weight:600}.leg-party.party-D{color:#2563eb}.leg-party.party-R{color:#dc2626}.leg-party.party-I{color:var(--color-gray-500, #8e99a8)}.leg-district{font-size:.75rem;color:var(--color-gray-500, #8e99a8)}.leg-contact{display:inline-block;margin-top:6px;font-size:.8rem;color:var(--color-sky-dark, #3b9cc2);text-decoration:none;font-weight:500}.leg-contact:hover{text-decoration:underline}.show-more{text-align:center;color:var(--color-gray-500, #8e99a8);font-size:.85rem;margin-top:10px;padding:8px;background:var(--color-gray-50, #f8fafb);border-radius:var(--radius-sm, 8px);border:1px solid var(--color-gray-200, #e2e7ed)}.loading-card{text-align:center;padding:20px;color:var(--color-gray-500, #8e99a8)}.local-officials-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:32px;gap:10px}.loading-spinner{width:32px;height:32px;border:3px solid var(--color-gray-200, #e2e7ed);border-top-color:var(--color-navy-light, #2d5a7b);border-radius:50%;animation:spin .8s linear infinite}.local-officials-loading p{color:var(--color-gray-500, #8e99a8);font-size:.85rem}.legistar-note{background:var(--color-blue-bg, #eff6ff);border-radius:var(--radius-md, 12px);padding:14px;margin:12px 0;border:1px solid #bfdbfe}.legistar-note p{margin:0 0 6px;color:#1e40af;font-size:.85rem}.legistar-note .hint{color:var(--color-sky-dark, #3b9cc2);font-size:.8rem;margin-top:8px}.city-chips{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0}.city-chip{background:#dbeafe;color:#1d4ed8;padding:4px 10px;border-radius:var(--radius-full, 100px);font-size:.8rem;font-weight:500}.party-badge{display:inline-block;padding:2px 8px;border-radius:var(--radius-full, 100px);font-size:.65rem;font-weight:600;letter-spacing:.3px;text-transform:uppercase}@media (max-width: 375px){.reps-content{padding:68px 12px 12px}.level-tab{padding:8px 4px;gap:4px}.tab-label{font-size:.78rem}.rc-avatar{width:72px;height:72px}}.rc-name{word-break:break-word;padding:0 28px}.contact-campaign-btn{width:100%;background:linear-gradient(135deg,#00e676,#00b4d8);color:#000;border:none;border-radius:8px;padding:10px 16px;font-size:14px;font-weight:700;cursor:pointer;margin-top:10px;transition:opacity .2s,transform .15s;letter-spacing:.2px;display:block}.contact-campaign-btn:hover{opacity:.9;transform:translateY(-1px)}.compare-btn{width:100%;background:#fff;color:#6366f1;border:1.5px solid #6366f1;border-radius:8px;padding:8px 16px;font-size:13px;font-weight:700;cursor:pointer;margin-top:6px;transition:all .15s;display:block}.compare-btn:hover{background:#6366f1;color:#fff}.sc-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:1100}.sc-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1101;overflow-y:auto;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding:20px 16px 40px}.sc-modal-header{display:flex;align-items:center;justify-content:space-between;width:100%;max-width:480px;margin-bottom:16px}.sc-modal-header h2{font-size:20px;font-weight:800;color:#fff;margin:0}.sc-close{background:#ffffff26;border:none;color:#fff;width:32px;height:32px;border-radius:50%;cursor:pointer;font-size:14px}.sc-preview-wrap{width:100%;max-width:480px;margin-bottom:20px}.sc-card{width:480px;background:#0f1923;border-radius:20px;padding:24px;position:relative;overflow:hidden;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.sc-card--preview{width:100%;max-width:480px}.sc-bg-pattern{position:absolute;top:-40px;right:-40px;width:200px;height:200px;border-radius:50%;background:radial-gradient(circle,rgba(99,102,241,.15) 0%,transparent 70%);pointer-events:none}.sc-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.sc-logo{font-size:18px;font-weight:900;color:#fff;letter-spacing:-.5px}.sc-tag{font-size:11px;color:#7a9ab8;background:#ffffff14;padding:4px 10px;border-radius:12px;font-weight:600}.sc-rep{display:flex;align-items:center;gap:14px;margin-bottom:20px}.sc-rep-photo{width:56px;height:56px;border-radius:50%;border:3px solid;overflow:hidden;background:#1e3a5f;display:flex;align-items:center;justify-content:center;font-size:22px;font-weight:800;color:#fff;flex-shrink:0}.sc-rep-photo img{width:100%;height:100%;object-fit:cover}.sc-rep-info{flex:1;min-width:0}.sc-rep-name{font-size:18px;font-weight:800;color:#fff;margin:0 0 2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sc-rep-title{font-size:12px;color:#7a9ab8;margin:0 0 4px}.sc-rep-meta{font-size:12px;color:#94a3b8}.sc-grade-big{font-size:36px;font-weight:900;width:64px;height:64px;border-radius:16px;display:flex;align-items:center;justify-content:center;border:2px solid;flex-shrink:0;letter-spacing:-1px}.sc-stats{display:flex;align-items:center;background:#ffffff0f;border-radius:12px;padding:14px 16px;margin-bottom:14px;gap:0}.sc-stat{flex:1;text-align:center}.sc-stat-num{font-size:20px;font-weight:900;line-height:1;margin-bottom:4px}.sc-stat-label{font-size:10px;color:#7a9ab8;text-transform:uppercase;letter-spacing:.4px}.sc-stat-divider{width:1px;height:32px;background:#ffffff1a;flex-shrink:0}.sc-recent-vote{display:flex;align-items:center;gap:8px;background:#ffffff0a;border-radius:10px;padding:10px 12px;margin-bottom:16px;flex-wrap:wrap}.sc-recent-label{font-size:10px;color:#7a9ab8;text-transform:uppercase;letter-spacing:.4px;flex-shrink:0}.sc-recent-bill{font-size:12px;color:#e2e8f0;flex:1;min-width:0}.sc-recent-pos{font-size:11px;font-weight:700;padding:2px 8px;border-radius:6px;flex-shrink:0}.sc-yea{background:#dcfce7;color:#16a34a}.sc-nay{background:#fee2e2;color:#dc2626}.sc-footer{display:flex;justify-content:space-between;font-size:10px;color:#4a5568}.sc-actions{display:flex;gap:10px;width:100%;max-width:480px;margin-bottom:12px}.sc-btn-primary{flex:1;background:#6366f1;color:#fff;border:none;border-radius:10px;padding:12px;font-size:15px;font-weight:700;cursor:pointer;transition:all .15s}.sc-btn-primary:hover{background:#4f46e5}.sc-btn-primary:disabled{opacity:.6;cursor:wait}.sc-btn-secondary{flex:1;background:#ffffff1a;color:#fff;border:1px solid rgba(255,255,255,.15);border-radius:10px;padding:12px;font-size:14px;font-weight:600;cursor:pointer;transition:all .15s}.sc-btn-secondary:hover{background:#ffffff26}.sc-platforms{display:flex;gap:8px;width:100%;max-width:480px;margin-bottom:12px}.sc-platform-btn{flex:1;padding:10px;border:none;border-radius:10px;font-size:13px;font-weight:700;cursor:pointer;transition:all .15s}.sc-twitter{background:#000;color:#fff}.sc-twitter:hover{background:#1a1a1a}.sc-facebook{background:#1877f2;color:#fff}.sc-facebook:hover{background:#1565d8}.sc-linkedin{background:#0a66c2;color:#fff}.sc-linkedin:hover{background:#0858a8}.sc-note{font-size:12px;color:#fff6;text-align:center;margin:0;max-width:480px}@media (max-width: 520px){.sc-card{width:100%}.sc-platforms{flex-wrap:wrap}.sc-platform-btn{min-width:calc(50% - 4px)}}.ch-teaser{margin:0 16px 16px}.ch-teaser-btn{width:100%;background:#fff;border:1.5px solid #e2e8f0;border-radius:10px;padding:12px 16px;font-size:14px;font-weight:600;color:#374151;cursor:pointer;text-align:left;transition:all .15s}.ch-teaser-btn:hover{border-color:#6366f1;color:#6366f1;background:#f8f7ff}.ch-card{margin:0 16px 16px;background:#fff;border-radius:16px;padding:20px;box-shadow:0 2px 12px #0000000f;border:1.5px solid #e2e8f0}.ch-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.ch-title{font-size:16px;font-weight:800;color:#0f172a;margin:0}.ch-count{font-size:12px;color:#6b7280;background:#f3f4f6;padding:3px 10px;border-radius:12px;font-weight:600}.ch-legend{display:flex;gap:16px;margin-bottom:12px;font-size:11px;color:#6b7280}.ch-legend-small:before{content:"";display:inline-block;width:10px;height:10px;background:#22c55e;border-radius:2px;margin-right:4px}.ch-legend-pac:before{content:"";display:inline-block;width:10px;height:10px;background:#f97316;border-radius:2px;margin-right:4px}.ch-candidates{display:flex;flex-direction:column;gap:12px}.ch-candidate{border:1.5px solid #f1f5f9;border-radius:12px;padding:14px;transition:border-color .15s}.ch-candidate:hover{border-color:#6366f1}.ch-candidate--incumbent{border-color:#dbeafe;background:#f8fbff}.ch-candidate-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:10px;gap:8px}.ch-candidate-info{display:flex;align-items:center;gap:8px;flex-wrap:wrap;flex:1}.ch-candidate-name{font-size:14px;font-weight:700;color:#0f172a}.ch-incumbent-tag{font-size:10px;font-weight:700;background:#dbeafe;color:#1d4ed8;padding:2px 8px;border-radius:10px;text-transform:uppercase}.ch-party-badge{font-size:11px;font-weight:600;padding:2px 8px;border-radius:10px}.ch-candidate-raised{text-align:right;flex-shrink:0}.ch-raised-num{display:block;font-size:16px;font-weight:800;color:#0f172a}.ch-raised-label{display:block;font-size:11px;color:#6b7280}.ch-money-bar{height:8px;background:#f1f5f9;border-radius:4px;overflow:hidden;display:flex;margin-bottom:6px}.ch-money-segment{height:100%;transition:width .3s}.ch-small{background:#22c55e}.ch-pac{background:#f97316}.ch-money-labels{display:flex;justify-content:space-between;font-size:11px;color:#6b7280;margin-bottom:10px}.ch-badge-grassroots{background:#dcfce7;color:#15803d;font-size:10px;font-weight:700;padding:1px 6px;border-radius:8px;margin-left:4px}.ch-badge-pac{background:#ffedd5;color:#c2410c;font-size:10px;font-weight:700;padding:1px 6px;border-radius:8px;margin-left:4px}.ch-fec-link{font-size:12px;color:#6366f1;text-decoration:none;font-weight:600}.ch-fec-link:hover{text-decoration:underline}.ch-source{font-size:11px;color:#94a3b8;margin:12px 0 8px;text-align:center}.ch-source a{color:#94a3b8}.ch-collapse{width:100%;background:none;border:none;font-size:12px;color:#94a3b8;cursor:pointer;padding:4px}.ch-loading,.ch-empty{text-align:center;color:#94a3b8;padding:20px;font-size:14px}.campaign-finance-section{background:linear-gradient(135deg,#1e3a5f,#0f172a);border-radius:16px;padding:24px;margin-bottom:24px;color:#fff}.campaign-finance-section.loading{min-height:200px}.campaign-finance-section .section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.campaign-finance-section .section-header h2{font-size:1.5rem;margin:0;color:#fbbf24}.campaign-finance-section .data-source{font-size:.75rem;color:#fff9;background:#ffffff1a;padding:4px 8px;border-radius:4px}.loading-indicator{display:flex;align-items:center;justify-content:center;gap:12px;padding:40px;color:#ffffffb3}.spinner-small{width:24px;height:24px;border:3px solid rgba(255,255,255,.2);border-top-color:#fbbf24;border-radius:50%;animation:spin 1s linear infinite}.finance-note{background:#f59e0b33;border:1px solid rgba(245,158,11,.4);border-radius:8px;padding:12px;margin-bottom:16px;font-size:.85rem;color:#fcd34d}.finance-tabs{display:flex;gap:8px;margin-bottom:20px;border-bottom:1px solid rgba(255,255,255,.1);padding-bottom:12px}.finance-tab{background:#ffffff1a;border:none;color:#ffffffb3;padding:10px 16px;border-radius:8px;cursor:pointer;font-size:.9rem;transition:all .2s}.finance-tab:hover{background:#ffffff26;color:#fff}.finance-tab.active{background:#fbbf24;color:#0f172a;font-weight:600}.finance-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:24px}.finance-stat{background:#ffffff14;border-radius:12px;padding:16px;display:flex;align-items:center;gap:12px}.finance-stat .stat-icon{font-size:1.5rem}.finance-stat .stat-content{display:flex;flex-direction:column}.finance-stat .stat-value{font-size:1.25rem;font-weight:700;color:#fff}.finance-stat .stat-label{font-size:.75rem;color:#fff9;text-transform:uppercase;letter-spacing:.5px}.finance-stat.raised .stat-value{color:#4ade80}.finance-stat.spent .stat-value{color:#f97316}.finance-stat.cash .stat-value{color:#60a5fa}.funding-breakdown{margin-bottom:24px}.funding-breakdown h3{font-size:1rem;color:#ffffffe6;margin-bottom:12px}.funding-bar{height:32px;background:#ffffff1a;border-radius:16px;overflow:hidden;display:flex;margin-bottom:16px}.funding-segment{height:100%;transition:width .5s ease;position:relative}.funding-segment.individuals{background:linear-gradient(90deg,#22c55e,#4ade80)}.funding-segment.pacs{background:linear-gradient(90deg,#ef4444,#f87171)}.funding-segment.party{background:linear-gradient(90deg,#3b82f6,#60a5fa)}.funding-segment.self{background:linear-gradient(90deg,#f59e0b,#fbbf24)}.funding-legend{display:flex;flex-wrap:wrap;gap:16px}.legend-item{display:flex;align-items:center;gap:8px;font-size:.85rem}.legend-color{width:12px;height:12px;border-radius:4px}.legend-color.individuals{background:#22c55e}.legend-color.pacs{background:#ef4444}.legend-color.party{background:#3b82f6}.legend-color.self{background:#f59e0b}.legend-label{color:#fffc}.legend-value{color:#fff9;font-size:.75rem}.pac-alert{background:#ef444433;border:1px solid rgba(239,68,68,.4);border-radius:8px;padding:12px 16px;display:flex;align-items:center;gap:12px;margin-bottom:24px}.pac-alert .alert-icon{font-size:1.25rem}.pac-alert .alert-text{font-size:.85rem;color:#fca5a5;line-height:1.4}.superpac-section{background:#ffffff0d;border-radius:12px;padding:16px;margin-bottom:20px}.superpac-section h3{font-size:1rem;margin:0 0 8px;color:#ffffffe6}.superpac-explainer{font-size:.8rem;color:#fff9;margin-bottom:12px}.superpac-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.superpac-stat{display:flex;align-items:center;gap:10px;background:#ffffff0d;padding:12px;border-radius:8px}.superpac-stat .stat-icon{font-size:1.25rem}.superpac-stat .stat-content{display:flex;flex-direction:column}.superpac-stat .stat-label{font-size:.7rem;color:#ffffff80;text-transform:uppercase}.superpac-stat .stat-value{font-size:1.1rem;font-weight:600}.superpac-stat .stat-value.green{color:#4ade80}.superpac-stat .stat-value.red{color:#f87171}.superpac-net{font-size:.85rem;margin-top:12px;text-align:center;color:#fffc}.contributors-section{margin-bottom:20px}.contributors-section h3{font-size:1rem;margin-bottom:8px;color:#ffffffe6}.contributors-note{font-size:.8rem;color:#fff9;margin-bottom:16px;line-height:1.4}.contributors-list{display:flex;flex-direction:column;gap:8px}.contributor-item{display:flex;align-items:center;gap:12px;background:#ffffff14;padding:12px 16px;border-radius:10px;transition:background .2s}.contributor-item:hover{background:#ffffff1f}.contributor-rank{font-size:.85rem;font-weight:700;color:#fbbf24;min-width:28px}.contributor-info{flex:1;display:flex;flex-direction:column}.contributor-name{font-size:.95rem;font-weight:500;color:#fff}.contributor-count{font-size:.75rem;color:#ffffff80}.contributor-amount{font-size:1rem;font-weight:600;color:#4ade80}.contributors-disclaimer{margin-top:16px;padding:12px;background:#3b82f61a;border-radius:8px}.contributors-disclaimer p{font-size:.8rem;color:#ffffffb3;margin:0;line-height:1.4}.no-data{text-align:center;padding:24px;color:#ffffff80;font-style:italic}.filings-section h3{font-size:1rem;margin-bottom:16px;color:#ffffffe6}.filings-list{display:flex;flex-direction:column;gap:8px}.filing-item{display:flex;align-items:center;gap:12px;background:#ffffff14;padding:12px 16px;border-radius:10px;text-decoration:none;color:#fff;transition:background .2s}.filing-item:hover{background:#ffffff26}.filing-info{flex:1;display:flex;flex-direction:column}.filing-type{font-size:.9rem;font-weight:600;color:#fff}.filing-date{font-size:.75rem;color:#ffffff80}.filing-amounts{display:flex;gap:12px}.filing-receipts{font-size:.85rem;color:#4ade80}.filing-disbursements{font-size:.85rem;color:#f97316}.filing-arrow{color:#ffffff4d;font-size:1.25rem}.fec-link{text-align:center;margin:20px 0}.fec-link a{display:inline-flex;align-items:center;gap:6px;color:#60a5fa;text-decoration:none;font-size:.9rem;padding:10px 16px;background:#60a5fa1a;border-radius:8px;transition:all .2s}.fec-link a:hover{background:#60a5fa33;color:#93c5fd}.finance-explainer{border-top:1px solid rgba(255,255,255,.1);padding-top:16px}.explainer-toggle{background:none;border:none;color:#fff9;cursor:pointer;font-size:.85rem;padding:8px 0;display:flex;align-items:center;gap:8px}.explainer-toggle:hover{color:#ffffffe6}.explainer-content{margin-top:12px;padding:16px;background:#ffffff0d;border-radius:8px}.explainer-content p{font-size:.85rem;color:#fffc;margin:0 0 12px;line-height:1.5}.explainer-content p:last-child{margin-bottom:0}.explainer-content strong{color:#fff}.finance-compact{display:flex;align-items:center;gap:8px;cursor:pointer;padding:8px 12px;background:#ffffff0d;border-radius:8px}.finance-compact:hover{background:#ffffff1a}.finance-compact .finance-raised{font-weight:600;color:#4ade80}.finance-compact .finance-label{font-size:.75rem;color:#ffffff80}.finance-compact .finance-pac-indicator{width:40px;height:6px;background:#ffffff1a;border-radius:3px;overflow:hidden}.finance-compact .pac-bar{height:100%;background:#ef4444}@media (max-width: 768px){.campaign-finance-section{padding:16px;margin:0 -16px 24px;border-radius:0}.finance-tabs{overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:8px}.finance-tab{white-space:nowrap;padding:8px 12px;font-size:.85rem}.finance-summary{grid-template-columns:1fr;gap:12px}.finance-stat{padding:12px}.funding-legend{flex-direction:column;gap:8px}.superpac-stats{grid-template-columns:1fr}.contributor-item{padding:10px 12px}.contributor-amount{font-size:.9rem}}.interest-ratings-section{background:linear-gradient(135deg,#312e81,#1e1b4b);border-radius:16px;padding:24px;margin-bottom:24px;color:#fff}.interest-ratings-section .section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.interest-ratings-section .section-header h2{font-size:1.5rem;margin:0;color:#fde047}.ratings-year{font-size:.8rem;background:#ffffff1a;padding:4px 10px;border-radius:12px;color:#ffffffb3}.ratings-explainer{font-size:.9rem;color:#ffffffb3;margin-bottom:20px}.interest-ratings-section.loading,.interest-ratings-section.empty{min-height:200px}.interest-ratings-section .loading-indicator{display:flex;align-items:center;justify-content:center;gap:12px;padding:40px;color:#ffffffb3}.interest-ratings-section .spinner-small{width:24px;height:24px;border:3px solid rgba(255,255,255,.2);border-top-color:#fde047;border-radius:50%;animation:spin 1s linear infinite}.interest-ratings-section .no-data{text-align:center;padding:40px;color:#ffffff80;font-style:italic}.category-filters{display:flex;gap:8px;margin-bottom:20px;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:8px}.category-btn{background:#ffffff1a;border:none;color:#ffffffb3;padding:8px 14px;border-radius:20px;cursor:pointer;font-size:.85rem;white-space:nowrap;transition:all .2s}.category-btn:hover{background:#ffffff26;color:#fff}.category-btn.active{background:#fde047;color:#1e1b4b;font-weight:600}.ratings-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;margin-bottom:20px}.rating-card{background:#ffffff14;border-radius:12px;padding:16px;transition:background .2s}.rating-card:hover{background:#ffffff1f}.rating-header{display:flex;align-items:center;gap:12px;margin-bottom:10px}.group-icon{font-size:1.5rem}.group-info{flex:1;display:flex;flex-direction:column}.group-name{font-weight:600;font-size:1rem;color:#fff}.group-category{font-size:.75rem;color:#ffffff80}.rating-badge{font-size:1.25rem;font-weight:700;color:#fff;padding:6px 14px;border-radius:8px;min-width:50px;text-align:center}.rating-interpretation{font-size:.85rem;color:#ffffffb3;margin:0 0 10px;line-height:1.4}.rating-source{font-size:.75rem;color:#93c5fd;text-decoration:none;display:inline-flex;align-items:center;gap:4px}.rating-source:hover{color:#bfdbfe;text-decoration:underline}.show-more-btn{display:block;width:100%;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);color:#fff;padding:12px;border-radius:8px;cursor:pointer;font-size:.9rem;margin-bottom:20px;transition:all .2s}.show-more-btn:hover{background:#ffffff26;border-color:#ffffff4d}.ratings-legend{background:#ffffff0d;border-radius:10px;padding:16px}.ratings-legend h4{font-size:.9rem;margin:0 0 12px;color:#ffffffe6}.legend-items{display:flex;flex-wrap:wrap;gap:16px;margin-bottom:12px}.legend-item{display:flex;align-items:center;gap:8px;font-size:.8rem;color:#ffffffb3}.legend-color{width:14px;height:14px;border-radius:4px}.legend-note{font-size:.75rem;color:#ffffff80;margin:0;line-height:1.5}.ratings-compact{display:flex;gap:12px;flex-wrap:wrap}.rating-compact-item{display:flex;align-items:center;gap:6px;background:#ffffff14;padding:6px 10px;border-radius:6px}.compact-icon{font-size:1rem}.compact-rating{font-weight:700;font-size:.9rem}.rating-summary{display:flex;gap:20px}.summary-item{display:flex;flex-direction:column;align-items:center;padding:12px 20px;background:#ffffff14;border-radius:10px}.summary-label{font-size:.75rem;color:#fff9;margin-bottom:4px}.summary-value{font-size:1.5rem;font-weight:700}@media (max-width: 768px){.interest-ratings-section{padding:16px;margin:0 -16px 24px;border-radius:0}.ratings-grid{grid-template-columns:1fr}.category-filters{margin:0 -16px 16px;padding:0 16px 8px}.rating-card{padding:14px}.rating-badge{font-size:1.1rem;padding:5px 12px}.legend-items{flex-direction:column;gap:8px}.rating-summary{flex-direction:column;gap:12px}}.accountability-card{background:#fff;border-radius:16px;overflow:hidden;box-shadow:0 2px 16px #00000014;margin:16px 0}.accountability-card.quiz-mode{border:2px solid #e0e0e0}.quiz-header{padding:20px 16px 12px;text-align:center}.quiz-icon{font-size:32px}.quiz-header h3{margin:8px 0 4px;font-size:20px;font-weight:800;color:#1a1a2e}.quiz-header p{margin:0;font-size:13px;color:#666}.quiz-note{margin-top:4px!important;font-weight:600;color:#333!important}.quiz-issues{padding:0 16px}.quiz-issue{padding:14px 0;border-bottom:1px solid #f0f0f0}.quiz-issue.answered{background:#f8fdf8;margin:0 -16px;padding:14px 16px}.issue-header{display:flex;align-items:center;gap:10px;margin-bottom:10px}.issue-icon{font-size:22px}.issue-header strong{font-size:15px;display:block;color:#1a1a2e}.issue-desc{font-size:11px;color:#888;display:block}.stance-slider{display:flex;align-items:center;gap:8px}.stance-label{font-size:10px;color:#999;width:70px;flex-shrink:0}.stance-label.left{text-align:right}.stance-label.right{text-align:left}.slider-track{display:flex;align-items:center;justify-content:space-between;flex:1;height:36px;background:linear-gradient(90deg,#dc2626,#dc2626,#888,#2563eb,#2563eb);border-radius:18px;padding:0 8px}.stance-dot{width:28px;height:28px;border-radius:50%;border:3px solid rgba(255,255,255,.6);background:#ffffff4d;cursor:pointer;transition:all .2s}.stance-dot:hover{transform:scale(1.2);background:#fff9}.stance-dot.active{background:#fff;transform:scale(1.3);border-color:#fff;box-shadow:0 2px 8px #0000004d}.importance-selector{display:flex;align-items:center;gap:6px;margin-top:8px;padding-left:32px}.importance-selector span{font-size:11px;color:#888;margin-right:4px}.importance-btn{padding:4px 10px;border:1px solid #ddd;border-radius:12px;font-size:11px;background:#fff;cursor:pointer;color:#666}.importance-btn.active{background:#1a1a2e;color:#fff;border-color:#1a1a2e}.quiz-footer{padding:16px;border-top:1px solid #eee;text-align:center}.quiz-progress{font-size:12px;color:#888;margin:0 0 10px}.quiz-submit{width:100%;padding:14px;background:linear-gradient(135deg,#1a1a2e,#2d2d44);color:#fff;border:none;border-radius:12px;font-size:16px;font-weight:800;cursor:pointer}.quiz-submit:disabled{opacity:.4;cursor:not-allowed}.loading-mode{padding:48px 16px;text-align:center}.loading-spinner-large{width:48px;height:48px;border:4px solid #e0e0e0;border-top-color:#1a1a2e;border-radius:50%;margin:0 auto 16px;animation:spin .8s linear infinite}.loading-mode h3{margin:0 0 4px;font-size:18px;color:#1a1a2e}.loading-mode p{margin:0;font-size:13px;color:#888}.results-mode.bad{border:2px solid #dc2626}.results-mode.good{border:2px solid #16a34a}.results-mode.mixed{border:2px solid #d97706}.score-hero{padding:20px 16px;text-align:center}.rep-identity{display:flex;align-items:center;justify-content:center;gap:12px;margin-bottom:16px}.rep-photo{width:48px;height:48px;border-radius:50%;object-fit:cover}.rep-identity h3{margin:0;font-size:18px;font-weight:800}.party-label{font-size:13px}.party-label.d,.party-label.democrat,.party-label.democratic{color:#2563eb}.party-label.r,.party-label.republican{color:#dc2626}.party-label.i,.party-label.independent{color:#7c3aed}.alignment-score-container{position:relative;display:inline-block;margin:8px 0 16px}.score-ring{width:140px;height:140px}.ring-bg{fill:none;stroke:#e0e0e0;stroke-width:10}.ring-fill{fill:none;stroke-width:10;stroke-linecap:round;transition:stroke-dasharray 1s ease}.alignment-ring.bad .ring-fill{stroke:#dc2626}.alignment-ring.good .ring-fill{stroke:#16a34a}.alignment-ring.mixed .ring-fill{stroke:#d97706}.score-center{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center}.score-number{display:block;font-size:36px;font-weight:900;line-height:1}.bad .score-number{color:#dc2626}.good .score-number{color:#16a34a}.mixed .score-number{color:#d97706}.score-label{font-size:11px;color:#888;text-transform:uppercase;letter-spacing:1px}.grade-badge{position:absolute;top:-4px;right:-4px;width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:900;color:#fff}.grade-badge.bad{background:#dc2626}.grade-badge.good{background:#16a34a}.grade-badge.mixed{background:#d97706}.verdict{font-size:15px;font-weight:600;line-height:1.4;margin:0;padding:0 8px}.verdict.bad{color:#dc2626}.verdict.good{color:#16a34a}.verdict.mixed{color:#92400e}.trend-indicator{margin-top:10px;padding:8px 12px;border-radius:8px;font-size:13px;font-weight:600;display:inline-block}.trend-indicator.improving{background:#dcfce7;color:#16a34a}.trend-indicator.declining{background:#fef2f2;color:#dc2626}.trend-indicator.stable{background:#f5f5f5;color:#666}.issue-breakdown{padding:16px;border-top:1px solid #eee}.issue-breakdown h4{margin:0 0 12px;font-size:15px;font-weight:700;color:#1a1a2e}.issue-row{padding:10px;border-radius:10px;margin-bottom:6px;cursor:pointer;transition:background .2s}.issue-row:hover{background:#f8f8f8}.issue-row.bad{border-left:4px solid #dc2626}.issue-row.good{border-left:4px solid #16a34a}.issue-row.mixed{border-left:4px solid #d97706}.issue-row-header{display:flex;align-items:center;gap:8px}.issue-icon-small{font-size:16px}.issue-name{font-size:13px;font-weight:700;color:#1a1a2e;min-width:80px}.issue-bar-container{flex:1;height:8px;background:#e0e0e0;border-radius:4px;overflow:hidden}.issue-bar{height:100%;border-radius:4px;transition:width .8s ease}.issue-bar.bad{background:#dc2626}.issue-bar.good{background:#16a34a}.issue-bar.mixed{background:#d97706}.issue-pct{font-size:14px;font-weight:800;width:40px;text-align:right}.issue-pct.bad{color:#dc2626}.issue-pct.good{color:#16a34a}.issue-pct.mixed{color:#d97706}.issue-vote-count{display:flex;gap:12px;padding:4px 0 0 28px;font-size:11px}.with-you{color:#16a34a}.against-you{color:#dc2626}.not-voting{color:#999}.issue-votes-detail{margin-top:10px;padding-top:10px;border-top:1px dashed #ddd}.vote-receipts-section{padding:16px;border-top:1px solid #eee}.vote-receipts-section h4{margin:0 0 10px;font-size:15px;font-weight:700}.receipts-summary{display:flex;gap:16px;margin-bottom:12px}.receipt-stat{font-size:16px;font-weight:800}.receipt-stat.with{color:#16a34a}.receipt-stat.against{color:#dc2626}.vote-receipt{display:flex;align-items:flex-start;gap:8px;padding:8px;border-radius:8px;margin-bottom:4px}.vote-receipt.aligned{background:#f0fdf4}.vote-receipt.opposed{background:#fef2f2}.vote-receipt.neutral{background:#f5f5f5}.vote-indicator{font-size:16px;flex-shrink:0;margin-top:2px}.vote-info{flex:1}.vote-title{display:block;font-size:13px;font-weight:600;color:#1a1a2e;line-height:1.3}.vote-meta{display:block;font-size:11px;color:#888;margin-top:2px}.show-votes-btn{width:100%;padding:10px;background:#f0f0f0;border:none;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;color:#444}.all-votes-list{max-height:400px;overflow-y:auto}.accountability-actions{padding:16px;border-top:1px solid #eee}.action-callout{padding:14px;border-radius:12px;margin-bottom:12px;text-align:center}.action-callout.bad{background:linear-gradient(135deg,#fef2f2,#fee2e2);border:1px solid #fca5a5}.action-callout h4{margin:0 0 4px;font-size:16px;color:#dc2626}.action-callout p{margin:0;font-size:13px;color:#991b1b}.action-buttons-grid{display:flex;flex-direction:column;gap:8px}.action-btn{width:100%;padding:14px;border:none;border-radius:12px;font-size:15px;font-weight:700;cursor:pointer;transition:all .2s}.action-btn.pressure{background:linear-gradient(135deg,#e74c3c,#c0392b);color:#fff}.action-btn.share-result{background:linear-gradient(135deg,#8e44ad,#6c3483);color:#fff}.action-btn.retake{background:#f0f0f0;color:#444}.action-btn:hover{transform:translateY(-1px);box-shadow:0 4px 12px #00000026}.accountability-card .share-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:flex-end;justify-content:center;z-index:1000}.accountability-card .share-menu{background:#fff;border-radius:20px 20px 0 0;padding:24px;width:100%;max-width:500px;animation:slideUp .3s ease}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.accountability-card .share-menu h4{margin:0;font-size:18px;font-weight:800;text-align:center}.accountability-card .share-menu>p{text-align:center;color:#888;font-size:13px;margin:4px 0 16px}.accountability-card .share-options{display:grid;grid-template-columns:1fr 1fr;gap:10px}.accountability-card .share-option{padding:14px;border:none;border-radius:12px;font-size:15px;font-weight:600;cursor:pointer;color:#fff}.accountability-card .share-option.twitter{background:#000}.accountability-card .share-option.facebook{background:#1877f2}.accountability-card .share-option.sms{background:#34c759}.accountability-card .share-option.copy{background:#666}.accountability-card .share-close{width:100%;padding:14px;margin-top:12px;background:#f0f0f0;border:none;border-radius:12px;font-size:15px;color:#666;cursor:pointer}@media (max-width: 480px){.score-ring{width:120px;height:120px}.score-number{font-size:30px}.issue-row-header{flex-wrap:wrap}.issue-bar-container{width:100%;order:3}.receipts-summary{flex-direction:column;gap:4px}}.contact-rep-btn{display:inline-flex;align-items:center;gap:8px;padding:12px 20px;background:linear-gradient(135deg,#10b981,#059669);color:#fff;border:none;border-radius:10px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s}.contact-rep-btn:hover{transform:translateY(-2px);box-shadow:0 4px 12px #10b98166}.contact-rep-btn.small{padding:8px 14px;font-size:13px}.contact-rep-btn.large{padding:14px 28px;font-size:16px}.contact-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px;animation:fadeIn .2s ease}.contact-modal{background:#fff;border-radius:20px;max-width:500px;width:100%;max-height:90vh;overflow-y:auto;position:relative;animation:slideUp .3s ease}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.contact-modal .modal-close{position:absolute;top:16px;right:16px;width:36px;height:36px;border:none;background:#ffffffe6;border-radius:50%;font-size:22px;cursor:pointer;z-index:10}.contact-header{padding:24px;background:linear-gradient(135deg,#10b981,#059669);color:#fff;border-radius:20px 20px 0 0}.rep-info-mini{display:flex;align-items:center;gap:14px}.rep-photo-mini{width:56px;height:56px;border-radius:50%;object-fit:cover;border:3px solid rgba(255,255,255,.3)}.rep-photo-placeholder{width:56px;height:56px;border-radius:50%;background:#fff3;display:flex;align-items:center;justify-content:center;font-size:28px}.rep-info-mini h3{margin:0 0 4px;font-size:20px}.rep-info-mini p{margin:0;opacity:.9;font-size:14px}.contact-tabs{display:flex;border-bottom:1px solid #e2e8f0}.contact-tabs .tab{flex:1;padding:14px;background:none;border:none;font-size:14px;font-weight:500;color:#64748b;cursor:pointer;transition:all .2s;border-bottom:2px solid transparent}.contact-tabs .tab.active{color:#10b981;border-bottom-color:#10b981}.contact-tabs .tab:hover:not(.active){background:#f8fafc}.tab-content{padding:24px}.phone-section{margin-bottom:24px;text-align:center}.call-btn{display:inline-flex;align-items:center;gap:10px;padding:16px 32px;background:linear-gradient(135deg,#10b981,#059669);color:#fff;text-decoration:none;border-radius:12px;font-size:18px;font-weight:600;transition:all .2s}.call-btn:hover{transform:scale(1.02);box-shadow:0 4px 12px #10b98166}.call-tip{margin:10px 0 0;font-size:13px;color:#64748b}.script-section{margin-bottom:24px}.script-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.script-header h4{margin:0;font-size:15px;color:#1e293b}.copy-btn{padding:6px 14px;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:6px;font-size:13px;cursor:pointer;transition:all .2s}.copy-btn:hover{background:#e2e8f0}.copy-btn.copied{background:#dcfce7;border-color:#bbf7d0;color:#166534}.script-box{padding:16px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;font-size:14px;line-height:1.6;color:#334155;white-space:pre-wrap}.script-box p{margin:0}.tips-section{margin-bottom:24px}.tips-section h4{margin:0 0 12px;font-size:15px;color:#1e293b}.tips-section ul{margin:0;padding-left:20px}.tips-section li{font-size:13px;color:#64748b;margin-bottom:6px}.completed-btn{width:100%;padding:14px;background:#3b82f6;color:#fff;border:none;border-radius:10px;font-size:16px;font-weight:600;cursor:pointer;transition:background .2s}.completed-btn:hover{background:#2563eb}.call-success{text-align:center;padding:20px 0}.success-icon{font-size:64px;display:block;margin-bottom:16px}.call-success h4{margin:0 0 8px;font-size:22px;color:#166534}.call-success p{margin:0 0 20px;font-size:14px;color:#64748b}.success-stats{padding:16px;background:#f0fdf4;border-radius:10px;margin-bottom:20px}.success-stats p{margin:0;font-size:14px;color:#166534}.done-btn{padding:12px 32px;background:#10b981;color:#fff;border:none;border-radius:8px;font-size:15px;font-weight:600;cursor:pointer}.email-actions{display:flex;gap:12px;margin-bottom:24px}.email-btn{flex:1;padding:14px;text-align:center;border-radius:10px;text-decoration:none;font-weight:600;transition:all .2s}.email-btn.primary{background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff}.email-btn.primary:hover{transform:translateY(-2px);box-shadow:0 4px 12px #3b82f666}.email-btn.secondary{background:#f1f5f9;color:#334155}.email-btn.secondary:hover{background:#e2e8f0}.email-preview{margin-bottom:16px}.email-field{display:flex;align-items:center;gap:10px;padding:12px;background:#f8fafc;border-radius:8px;margin-bottom:12px}.field-label{font-size:12px;font-weight:600;color:#64748b;text-transform:uppercase}.field-value{flex:1;font-size:14px;color:#1e293b}.copy-btn-mini{padding:4px 8px;background:none;border:1px solid #e2e8f0;border-radius:4px;cursor:pointer;font-size:12px}.copy-btn-mini.copied{background:#dcfce7;border-color:#bbf7d0}.email-body{background:#f8fafc;border-radius:10px;overflow:hidden}.body-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid #e2e8f0}.email-script{border-radius:0;border:none}.email-tip{font-size:13px;color:#64748b;margin:0}.social-links{display:flex;flex-direction:column;gap:10px;margin-bottom:24px}.social-btn{display:flex;align-items:center;gap:12px;padding:14px 18px;border-radius:10px;text-decoration:none;font-weight:500;transition:all .2s}.social-btn.twitter{background:#000;color:#fff}.social-btn.instagram{background:linear-gradient(135deg,#833ab4,#fd1d1d,#fcb045);color:#fff}.social-btn:hover{transform:translate(4px)}.social-icon{font-size:20px}.tweet-preview{margin-bottom:16px}.tweet-preview h4{margin:0 0 12px;font-size:14px;color:#1e293b}.tweet-box{background:#f8fafc;border:1px solid #1da1f2}.social-tip{font-size:13px;color:#64748b;margin:0}.quick-contact-bar{display:flex;gap:8px}.quick-action{display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px 16px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;text-decoration:none;cursor:pointer;transition:all .2s}.quick-action span:first-child{font-size:18px}.quick-action span:last-child{font-size:11px;color:#64748b}.quick-action.call{background:#f0fdf4;border-color:#bbf7d0;color:#166534}.quick-action.call:hover{background:#dcfce7}.quick-action.email{background:#eff6ff;border-color:#bfdbfe;color:#1d4ed8}.quick-action.email:hover{background:#dbeafe}.quick-action.twitter{background:#f8fafc;color:#000}.quick-action.twitter:hover{background:#e2e8f0}.quick-action.copy.copied{background:#dcfce7;border-color:#bbf7d0;color:#166534}@media (max-width: 480px){.contact-tabs .tab{padding:12px 8px;font-size:13px}.email-actions{flex-direction:column}.quick-contact-bar{flex-wrap:wrap}.quick-action{flex:1;min-width:70px}}.rep-detail-page{min-height:100vh;background:#f8fafc;padding-bottom:100px}.rep-detail-content{max-width:600px;margin:0 auto;padding:70px 16px 16px}.rep-header{margin-bottom:24px}.back-link{display:inline-block;margin-bottom:16px;color:#6366f1;text-decoration:none;font-weight:500}.rep-info{display:flex;align-items:center;gap:16px}.rep-photo-large{width:80px;height:80px;border-radius:50%;object-fit:cover;border:3px solid white;box-shadow:0 4px 12px #0000001a}.rep-avatar-large{width:80px;height:80px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:28px;font-weight:700;color:#fff;border:3px solid white;box-shadow:0 4px 12px #0000001a}.rep-avatar-large.D{background:linear-gradient(135deg,#3b82f6,#1d4ed8)}.rep-avatar-large.R{background:linear-gradient(135deg,#ef4444,#dc2626)}.rep-avatar-large.I{background:linear-gradient(135deg,#8b5cf6,#7c3aed)}.rep-details h1{font-size:24px;font-weight:700;color:#1e293b;margin:0 0 4px}.rep-title{font-size:14px;color:#64748b;margin:0 0 4px}.rep-location{font-size:13px;color:#94a3b8;margin:0}.grade-section{margin-bottom:24px}.grade-card{display:flex;align-items:center;gap:20px;padding:24px;background:#fff;border-radius:20px;box-shadow:0 4px 16px #00000014;margin-bottom:12px}.grade-circle{width:90px;height:90px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0}.grade-letter{font-size:42px;font-weight:800;color:#fff;text-shadow:0 2px 4px rgba(0,0,0,.2)}.grade-info h2{font-size:18px;font-weight:700;color:#1e293b;margin:0 0 4px}.grade-label{font-size:16px;font-weight:600;color:#475569;margin:0 0 4px}.grade-score{font-size:14px;color:#94a3b8;margin:0}.grade-summary{font-size:14px;color:#64748b;line-height:1.5;padding:0 8px}.quick-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:24px}.stat-card{display:flex;flex-direction:column;align-items:center;padding:14px 10px;background:#fff;border-radius:12px;border:1px solid #e2e8f0}.stat-value{font-size:24px;font-weight:700;color:#1e293b}.stat-label{font-size:11px;color:#64748b;text-align:center}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.section-header h2{font-size:18px;font-weight:700;color:#1e293b;margin:0}.section-note{font-size:12px;color:#94a3b8}.unlocked-badge{padding:4px 10px;background:#dcfce7;color:#166534;border-radius:12px;font-size:12px;font-weight:600}.votes-section,.full-votes-section{margin-bottom:24px}.votes-list{display:flex;flex-direction:column;gap:10px}.vote-item{display:flex;align-items:center;gap:12px;padding:14px 16px;background:#fff;border-radius:14px;text-decoration:none;border:1px solid #e2e8f0;transition:all .2s}.vote-item:hover{border-color:#6366f1;box-shadow:0 4px 12px #6366f126;transform:translateY(-1px)}.vote-position{font-size:24px;flex-shrink:0}.vote-content{flex:1;min-width:0}.vote-content h4{font-size:14px;font-weight:600;color:#1e293b;margin:0 0 4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.vote-content p{font-size:12px;color:#64748b;margin:0 0 4px}.vote-date{font-size:11px;color:#94a3b8}.vote-meta{display:flex;gap:12px;align-items:center}.party-align{font-size:11px;padding:2px 8px;border-radius:8px}.party-align.aligned{background:#dcfce7;color:#166534}.party-align.diverged{background:#fee2e2;color:#991b1b}.vote-arrow{color:#94a3b8;font-size:16px}.more-votes-note{text-align:center;font-size:13px;color:#64748b;margin-top:12px}.no-votes{padding:30px;text-align:center;background:#fff;border-radius:14px;color:#94a3b8}.unlock-section{margin-bottom:24px}.unlock-card{padding:28px 24px;background:linear-gradient(135deg,#f8fafc,#f1f5f9);border-radius:20px;border:2px dashed #cbd5e1;text-align:center}.unlock-icon{font-size:48px;margin-bottom:12px}.unlock-card h3{font-size:20px;font-weight:700;color:#1e293b;margin:0 0 8px}.unlock-card p{font-size:14px;color:#64748b;margin:0 0 16px}.unlock-card ul{list-style:none;padding:0;text-align:left;max-width:280px;margin:0 auto 20px}.unlock-card li{padding:8px 0;font-size:14px;color:#475569}.unlock-progress{margin-bottom:16px}.progress-bar{height:8px;background:#e2e8f0;border-radius:4px;overflow:hidden;margin-bottom:8px}.progress-fill{height:100%;background:linear-gradient(90deg,#6366f1,#8b5cf6);border-radius:4px;transition:width .3s}.unlock-progress span{font-size:12px;color:#64748b}.unlock-btn{width:100%;padding:16px 24px;background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#fff;border:none;border-radius:14px;font-size:16px;font-weight:600;cursor:pointer;transition:all .2s}.unlock-btn:hover{transform:translateY(-2px);box-shadow:0 4px 16px #6366f166}.breakdown-section{margin-bottom:24px}.breakdown-cards{display:flex;flex-direction:column;gap:12px}.breakdown-card{padding:16px;background:#fff;border-radius:14px;border:1px solid #e2e8f0}.breakdown-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.breakdown-header h4{font-size:15px;font-weight:600;color:#1e293b;margin:0}.breakdown-score{font-size:18px;font-weight:700}.breakdown-desc{font-size:12px;color:#64748b;margin:0 0 10px}.breakdown-bar{height:6px;background:#e2e8f0;border-radius:3px;overflow:hidden;margin-bottom:6px}.breakdown-fill{height:100%;border-radius:3px;transition:width .5s}.breakdown-weight{font-size:11px;color:#94a3b8}.alignment-section{margin-bottom:24px}.party-info{padding:16px;background:#fff;border-radius:14px;margin-bottom:12px}.party-info h4{font-size:16px;font-weight:600;color:#1e293b;margin:0 0 8px}.party-info p{font-size:13px;color:#64748b;margin:0 0 12px}.values-list{display:flex;flex-wrap:wrap;gap:8px}.value-tag{padding:6px 12px;background:#f1f5f9;color:#475569;border-radius:16px;font-size:12px}.alignment-score{display:flex;justify-content:space-between;align-items:center;padding:16px;background:#fff;border-radius:14px}.alignment-label{font-size:14px;font-weight:600;color:#475569}.alignment-value{font-size:28px;font-weight:700}.suggestions-section{margin-bottom:24px}.suggestion-card{padding:16px;background:#fff;border-radius:14px;border-left:4px solid #f59e0b;margin-bottom:10px}.suggestion-card h4{font-size:14px;font-weight:600;color:#92400e;margin:0 0 6px}.suggestion-card p{font-size:13px;color:#64748b;margin:0 0 8px}.suggestion-action{font-size:12px;color:#6366f1;font-weight:500}.no-suggestions{padding:20px;background:#f0fdf4;border-radius:14px;color:#166534;text-align:center}.contact-section{text-align:center;padding:24px;background:#fff;border-radius:20px}.contact-section h3{font-size:16px;font-weight:600;color:#1e293b;margin:0 0 16px}.contact-buttons{display:flex;flex-wrap:wrap;gap:10px;justify-content:center}.contact-btn{padding:12px 20px;border-radius:12px;text-decoration:none;font-size:14px;font-weight:500;transition:all .2s}.contact-btn.phone{background:#dcfce7;color:#166534}.contact-btn.web{background:#dbeafe;color:#1d4ed8}.contact-btn.townhall{background:#fef3c7;color:#92400e}.contact-btn:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}.loading,.error-state{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;text-align:center;padding:20px}.spinner{width:40px;height:40px;border:4px solid #e2e8f0;border-top-color:#6366f1;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:16px}@media (max-width: 480px){.quick-stats{grid-template-columns:repeat(2,1fr)}.contact-buttons{flex-direction:column}.contact-btn{width:100%;text-align:center}}.share-report-btn{width:100%;background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#fff;border:none;border-radius:12px;padding:13px;font-size:15px;font-weight:700;cursor:pointer;transition:all .2s;letter-spacing:.2px}.share-report-btn:hover{transform:translateY(-1px);box-shadow:0 4px 16px #6366f166}.promises-section{background:#fff;border-radius:16px;padding:20px;margin:16px;box-shadow:0 2px 12px #0000000f}.promises-list{display:flex;flex-direction:column;gap:10px;margin-top:12px}.promise-item{padding:12px;background:#f8fafc;border-radius:10px;border-left:3px solid #e2e8f0}.promise-status{font-size:12px;font-weight:700;display:block;margin-bottom:4px}.promise-text{font-size:13px;color:#374151;margin:0 0 4px;font-style:italic;font-weight:600}.promise-detail{font-size:12px;color:#6b7280;margin:0;line-height:1.5}.president-page{min-height:100vh;background:#f8fafc;padding-bottom:100px}.president-content{max-width:800px;margin:0 auto;padding:80px 16px 16px}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:100px 20px}.loading-container .spinner{width:48px;height:48px;border:4px solid #e2e8f0;border-top-color:#3b82f6;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:16px}.president-header-card{display:flex;gap:24px;background:#fff;border-radius:20px;padding:24px;box-shadow:0 4px 20px #00000014;margin-bottom:24px}.president-photo{position:relative;flex-shrink:0}.president-photo img{width:160px;height:200px;object-fit:cover;border-radius:12px;box-shadow:0 4px 12px #00000026}.president-photo .grade-badge{position:absolute;bottom:-10px;right:-10px;width:56px;height:56px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.5rem;font-weight:800;color:#fff;box-shadow:0 4px 12px #0003;border:4px solid white}.president-info h1{font-size:1.75rem;color:#1e293b;margin:0 0 4px}.president-info .title{font-size:.9rem;color:#64748b;margin:0 0 8px}.president-info .party{display:inline-block;padding:4px 12px;border-radius:20px;font-size:.8rem;font-weight:600;margin-bottom:8px}.president-info .party.republican{background:#fee2e2;color:#dc2626}.president-info .party.democrat{background:#dbeafe;color:#2563eb}.president-info .term,.president-info .inauguration{font-size:.85rem;color:#64748b;margin:4px 0}.quick-stats{display:flex;gap:20px;margin-top:16px}.stat{text-align:center}.stat-value{display:block;font-size:1.5rem;font-weight:700;color:#1e293b}.stat-label{font-size:.75rem;color:#64748b;text-transform:uppercase;letter-spacing:.5px}.president-tabs{display:flex;gap:8px;margin-bottom:24px;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:4px}.president-tabs .tab{flex:1;min-width:100px;padding:12px 16px;background:#fff;border:2px solid #e2e8f0;border-radius:12px;font-size:.9rem;font-weight:600;color:#64748b;cursor:pointer;transition:all .2s;white-space:nowrap}.president-tabs .tab:hover{border-color:#cbd5e1}.president-tabs .tab.active{background:#3b82f6;border-color:#3b82f6;color:#fff}.tab-content{background:#fff;border-radius:16px;padding:24px;box-shadow:0 2px 12px #0000000f;margin-bottom:24px}.tab-content h2{font-size:1.25rem;color:#1e293b;margin:0 0 16px}.info-section{margin-bottom:32px}.info-section p{color:#64748b;margin-bottom:16px}.president-powers{list-style:none;padding:0;margin:0}.president-powers li{display:flex;gap:16px;padding:16px;background:#f8fafc;border-radius:12px;margin-bottom:8px}.power-icon{font-size:1.5rem;flex-shrink:0}.president-powers li strong{display:block;color:#1e293b;margin-bottom:4px}.president-powers li p{margin:0;font-size:.9rem}.eo-summary-section{margin-bottom:32px}.eo-category-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.eo-category{background:#f8fafc;padding:20px;border-radius:12px;text-align:center}.category-count{display:block;font-size:2rem;font-weight:700;color:#1e293b}.category-label{font-size:.85rem;color:#64748b}.average-impact-preview{background:#f0f9ff;padding:24px;border-radius:12px;border:2px solid #bae6fd}.impact-meter{margin:20px 0}.meter-labels{display:flex;justify-content:space-between;font-size:.75rem;color:#64748b;margin-bottom:8px}.meter-bar{height:12px;background:linear-gradient(to right,#ef4444,#facc15,#22c55e);border-radius:6px;position:relative}.meter-fill{position:absolute;top:-4px;width:20px;height:20px;border-radius:50%;border:3px solid white;box-shadow:0 2px 8px #0003;transform:translate(-50%)}.impact-summary{color:#0369a1;font-size:.95rem;margin:16px 0}.see-your-impact-btn{width:100%;padding:14px;background:#0ea5e9;color:#fff;border:none;border-radius:10px;font-weight:600;cursor:pointer;transition:background .2s}.see-your-impact-btn:hover{background:#0284c7}.setup-profile-prompt{text-align:center;padding:40px 20px}.prompt-icon{font-size:4rem;margin-bottom:16px}.setup-profile-prompt h3{color:#1e293b;margin-bottom:12px}.setup-profile-prompt>p{color:#64748b;margin-bottom:24px}.setup-btn{display:inline-block;padding:14px 32px;background:#3b82f6;color:#fff;text-decoration:none;border-radius:10px;font-weight:600;transition:background .2s}.setup-btn:hover{background:#2563eb}.profile-questions{margin-top:32px;text-align:left;background:#f8fafc;padding:20px;border-radius:12px}.profile-questions p{font-weight:600;color:#1e293b;margin-bottom:12px}.profile-questions ul{margin:0;padding-left:20px;color:#64748b}.profile-questions li{margin-bottom:6px}.personal-impact-analysis{padding:20px 0}.your-impact-score{text-align:center;margin-bottom:32px}.impact-dial{width:200px;height:100px;margin:0 auto 16px;background:linear-gradient(to right,#ef4444,#facc15,#22c55e);border-radius:100px 100px 0 0;position:relative;overflow:hidden}.dial-indicator{position:absolute;bottom:0;left:50%;width:8px;height:80px;transform-origin:bottom center;border-radius:4px}.impact-label{text-align:center}.impact-value{display:block;font-size:2rem;font-weight:700;color:#1e293b}.impact-text{color:#64748b;font-size:.9rem}.impact-categories{display:flex;flex-direction:column;gap:12px;margin-bottom:24px}.impact-category{padding:16px;border-radius:12px;border:2px solid #e2e8f0}.impact-category.positive{background:#f0fdf4;border-color:#86efac}.impact-category.negative{background:#fef2f2;border-color:#fecaca}.impact-category.neutral{background:#fefce8;border-color:#fde047}.category-header{display:flex;align-items:center;gap:12px;margin-bottom:8px}.category-icon{font-size:1.5rem}.category-name{font-weight:600;color:#1e293b;flex:1}.category-impact{font-size:.8rem;font-weight:600;padding:4px 10px;border-radius:20px}.category-impact.positive{background:#22c55e;color:#fff}.category-impact.negative{background:#ef4444;color:#fff}.category-impact.neutral{background:#facc15;color:#1e293b}.category-explanation{color:#64748b;font-size:.9rem;margin:0 0 12px}.related-orders{font-size:.8rem;color:#94a3b8}.order-tag{display:inline-block;background:#f1f5f9;padding:2px 8px;border-radius:4px;margin-left:4px;font-size:.75rem}.profile-factors{background:#f8fafc;padding:20px;border-radius:12px}.profile-factors h4{margin:0 0 12px;color:#1e293b}.factors-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-bottom:12px}.factor{display:flex;flex-direction:column}.factor-label{font-size:.75rem;color:#64748b;text-transform:uppercase;letter-spacing:.5px}.factor-value{font-weight:600;color:#1e293b}.update-profile-link{color:#3b82f6;font-size:.85rem;text-decoration:none}.update-profile-link:hover{text-decoration:underline}.average-comparison{margin-top:32px;padding-top:24px;border-top:2px solid #e2e8f0}.average-comparison h3{margin:0 0 16px;color:#1e293b}.average-american-impact{background:#f8fafc;padding:20px;border-radius:12px}.average-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.avg-stat{display:flex;flex-direction:column;align-items:center;text-align:center;padding:16px;background:#fff;border-radius:12px}.avg-icon{font-size:1.5rem;margin-bottom:8px}.avg-label{font-size:.8rem;color:#64748b;margin-bottom:4px}.avg-value{font-size:1.25rem;font-weight:700}.avg-value.positive{color:#22c55e}.avg-value.negative{color:#ef4444}.avg-disclaimer{font-size:.75rem;color:#94a3b8;text-align:center;margin:16px 0 0}.orders-intro{color:#64748b;margin-bottom:20px}.orders-list{display:flex;flex-direction:column;gap:12px}.eo-card{border:2px solid #e2e8f0;border-radius:12px;overflow:hidden}.eo-card.high{border-left:4px solid #ef4444}.eo-card.medium{border-left:4px solid #facc15}.eo-card.low{border-left:4px solid #22c55e}.eo-header{padding:16px;cursor:pointer;display:flex;flex-wrap:wrap;gap:8px;align-items:center}.eo-type-badge{font-size:.7rem;text-transform:uppercase;letter-spacing:.5px;background:#e2e8f0;padding:4px 8px;border-radius:4px;color:#64748b}.eo-title{flex:1 1 100%;font-size:.95rem;color:#1e293b;margin:0}.eo-meta{display:flex;gap:12px;width:100%}.eo-date{font-size:.8rem;color:#94a3b8}.eo-impact{font-size:.75rem;font-weight:600}.expand-icon{font-size:1.5rem;color:#94a3b8}.eo-details{padding:0 16px 16px;border-top:1px solid #e2e8f0}.eo-abstract{color:#64748b;font-size:.9rem;line-height:1.6;margin:16px 0}.eo-links{display:flex;gap:16px}.eo-links a{color:#3b82f6;font-size:.85rem;text-decoration:none}.eo-links a:hover{text-decoration:underline}.see-all-orders{display:block;text-align:center;padding:16px;background:#f1f5f9;border-radius:12px;color:#3b82f6;text-decoration:none;font-weight:600;margin-top:12px}.see-all-orders:hover{background:#e2e8f0}.grade-breakdown{display:flex;flex-direction:column;gap:24px}.overall-grade{text-align:center}.grade-circle{width:120px;height:120px;margin:0 auto 12px;border-radius:50%;border:8px solid;display:flex;flex-direction:column;align-items:center;justify-content:center}.grade-letter{font-size:2.5rem;font-weight:800;color:#1e293b}.grade-score{font-size:.9rem;color:#64748b}.grade-label{font-size:1rem;color:#64748b;margin:0}.criteria-grades{display:flex;flex-direction:column;gap:16px}.criterion{padding:16px;background:#f8fafc;border-radius:12px}.criterion-header{display:flex;justify-content:space-between;margin-bottom:8px}.criterion-label{font-weight:600;color:#1e293b}.criterion-score{font-weight:700}.criterion-bar{height:8px;background:#e2e8f0;border-radius:4px;overflow:hidden;margin-bottom:8px}.criterion-fill{height:100%;border-radius:4px;transition:width .5s}.criterion-desc{font-size:.85rem;color:#64748b;margin:0}.grading-methodology{margin-top:24px;padding:20px;background:#f0f9ff;border-radius:12px;border:2px solid #bae6fd}.grading-methodology h3{margin:0 0 12px;color:#0369a1}.grading-methodology p{color:#0369a1;margin-bottom:12px}.grading-methodology ul{margin:0;padding-left:20px;color:#0369a1}.grading-methodology li{margin-bottom:6px}.contact-section{background:#fff;border-radius:16px;padding:24px;box-shadow:0 2px 12px #0000000f}.contact-section h3{margin:0 0 16px;color:#1e293b}.contact-options{display:flex;flex-wrap:wrap;gap:12px}.contact-option{display:flex;align-items:center;gap:8px;padding:12px 16px;background:#f8fafc;border-radius:10px;text-decoration:none;color:#1e293b;font-weight:500;transition:background .2s}.contact-option:hover{background:#f1f5f9}.contact-icon{font-size:1.25rem}@media (max-width: 768px){.president-content{padding-top:70px}.president-header-card{flex-direction:column;text-align:center;padding:20px}.president-photo{margin:0 auto}.president-photo img{width:140px;height:175px}.quick-stats{justify-content:center}.president-tabs{gap:4px}.president-tabs .tab{padding:10px 12px;font-size:.8rem;min-width:70px}.eo-category-grid{grid-template-columns:repeat(2,1fr)}.factors-grid,.average-stats{grid-template-columns:1fr}.contact-options{flex-direction:column}}.governor-detail-page{min-height:100vh;background:#f8fafc}.governor-content{max-width:900px;margin:0 auto;padding:1rem}.governor-header{background:#fff;border-radius:16px;padding:1.5rem;margin-bottom:1rem;box-shadow:0 2px 8px #0000000d}.back-link{display:inline-block;margin-bottom:1rem;color:#64748b;text-decoration:none;font-size:.9rem}.back-link:hover{color:#3b82f6}.governor-info{display:flex;align-items:flex-start;gap:1.5rem}.governor-photo{width:120px;height:140px;object-fit:cover;border-radius:12px;flex-shrink:0}.governor-avatar{width:120px;height:140px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:2.5rem;font-weight:700;color:#fff;flex-shrink:0}.governor-avatar.D{background:linear-gradient(135deg,#3b82f6,#1d4ed8)}.governor-avatar.R{background:linear-gradient(135deg,#ef4444,#b91c1c)}.governor-text{flex:1}.governor-text h1{margin:0 0 .5rem;font-size:1.75rem;color:#1e293b}.gov-title{margin:0 0 .75rem;color:#64748b;font-size:1rem}.gov-meta{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center}.party-badge{padding:.25rem .75rem;border-radius:20px;font-size:.8rem;font-weight:600}.party-badge.dem{background:#dbeafe;color:#1e40af}.party-badge.rep{background:#fee2e2;color:#991b1b}.term-info{font-size:.85rem;color:#64748b}.grade-badge{display:flex;flex-direction:column;align-items:center;padding:1rem 1.5rem;border-radius:12px;flex-shrink:0}.grade-badge .grade-letter{font-size:2.5rem;font-weight:700;line-height:1}.grade-badge .grade-label{font-size:.75rem;text-transform:uppercase;opacity:.8}.grade-badge.grade-a{background:#dcfce7;color:#166534}.grade-badge.grade-b{background:#d1fae5;color:#047857}.grade-badge.grade-c{background:#fef3c7;color:#92400e}.grade-badge.grade-d{background:#fed7aa;color:#c2410c}.grade-badge.grade-f{background:#fee2e2;color:#991b1b}.grade-badge.grade-\?{background:#f1f5f9;color:#64748b}.tab-nav{display:flex;gap:.5rem;background:#fff;padding:.5rem;border-radius:12px;margin-bottom:1rem;overflow-x:auto}.tab-nav button{flex:1;min-width:max-content;padding:.75rem 1rem;border:none;background:transparent;border-radius:8px;font-size:.9rem;font-weight:500;color:#64748b;cursor:pointer;transition:all .2s}.tab-nav button:hover{background:#f1f5f9}.tab-nav button.active{background:#3b82f6;color:#fff}.tab-content{background:#fff;border-radius:16px;padding:1.5rem;box-shadow:0 2px 8px #0000000d}.tab-content section{margin-bottom:2rem}.tab-content section:last-child{margin-bottom:0}.tab-content h2{margin:0 0 1rem;font-size:1.25rem;color:#1e293b}.grade-display{display:flex;gap:1.5rem;align-items:flex-start}.big-grade{font-size:5rem;font-weight:700;line-height:1;padding:1rem 2rem;border-radius:16px}.big-grade.grade-a{background:#dcfce7;color:#166534}.big-grade.grade-b{background:#d1fae5;color:#047857}.big-grade.grade-c{background:#fef3c7;color:#92400e}.big-grade.grade-d{background:#fed7aa;color:#c2410c}.big-grade.grade-f{background:#fee2e2;color:#991b1b}.big-grade.grade-\?{background:#f1f5f9;color:#64748b}.grade-details{flex:1}.grade-summary{font-size:1.1rem;color:#475569;margin-bottom:1rem}.grade-breakdown{display:flex;flex-wrap:wrap;gap:1rem}.breakdown-item{background:#f8fafc;padding:.75rem 1rem;border-radius:8px}.breakdown-label{display:block;font-size:.8rem;color:#64748b;margin-bottom:.25rem}.breakdown-value{font-size:1.25rem;font-weight:600;color:#1e293b}.accomplishments-list{list-style:none;padding:0;margin:0}.accomplishments-list li{padding:.75rem 0 .75rem 2rem;border-bottom:1px solid #f1f5f9;position:relative}.accomplishments-list li:before{content:"✓";position:absolute;left:0;color:#22c55e;font-weight:700}.stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.stat-card{text-align:center;padding:1.25rem;background:#f8fafc;border-radius:12px}.stat-icon{font-size:1.5rem;display:block;margin-bottom:.5rem}.stat-value{font-size:2rem;font-weight:700;color:#1e293b;display:block}.stat-label{font-size:.85rem;color:#64748b}.signing-list{display:flex;flex-direction:column;gap:1rem}.signing-item{padding:1rem;border-radius:10px;border-left:4px solid}.signing-item.signed{background:#f0fdf4;border-color:#22c55e}.signing-item.vetoed{background:#fef2f2;border-color:#ef4444}.signing-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.bill-number{font-weight:600;color:#64748b;font-size:.85rem}.action-badge{padding:.2rem .6rem;border-radius:12px;font-size:.75rem;font-weight:600;text-transform:uppercase}.action-badge.signed{background:#dcfce7;color:#166534}.action-badge.vetoed{background:#fee2e2;color:#991b1b}.bill-title{margin:0 0 .5rem;font-size:1rem;color:#1e293b}.signing-meta{display:flex;gap:1rem;font-size:.85rem;color:#64748b}.impact-badge{font-weight:500}.impact-badge.positive{color:#16a34a}.impact-badge.negative{color:#dc2626}.impact-badge.mixed{color:#d97706}.eo-list{display:flex;flex-direction:column;gap:1rem}.eo-item{padding:1rem;background:#f8fafc;border-radius:10px}.eo-number{font-size:.8rem;font-weight:600;color:#64748b}.eo-item h4{margin:.25rem 0 .5rem;color:#1e293b}.eo-item p{margin:0 0 .5rem;color:#475569;font-size:.9rem}.budget-list{display:flex;flex-direction:column;gap:1.25rem}.budget-item{padding:1rem;background:#f8fafc;border-radius:10px}.budget-header{display:flex;justify-content:space-between;align-items:center}.budget-header h4{margin:0;color:#1e293b}.change{font-size:.85rem;font-weight:600}.change.increase{color:#16a34a}.change.decrease{color:#dc2626}.budget-amount{font-size:1.5rem;font-weight:700;color:#3b82f6;margin:.5rem 0}.budget-bar{height:8px;background:#e2e8f0;border-radius:4px;overflow:hidden}.budget-fill{height:100%;background:linear-gradient(90deg,#3b82f6,#60a5fa);border-radius:4px}.contact-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1rem;margin-bottom:1.5rem}.contact-card{display:flex;flex-direction:column;align-items:center;padding:1.25rem;background:#f8fafc;border-radius:12px;text-decoration:none;color:inherit;transition:all .2s}.contact-card:hover{background:#e2e8f0;transform:translateY(-2px)}.contact-icon{font-size:2rem;margin-bottom:.5rem}.contact-label{font-size:.8rem;color:#64748b}.contact-value{font-weight:600;color:#1e293b;text-align:center}.contact-message{background:linear-gradient(135deg,#eff6ff,#dbeafe);padding:1.5rem;border-radius:12px;text-align:center}.contact-message h3{margin:0 0 .5rem}.contact-message p{margin:0 0 1rem;color:#475569}.message-btn{display:inline-block;padding:.75rem 1.5rem;background:#3b82f6;color:#fff;border-radius:8px;text-decoration:none;font-weight:600;transition:background .2s}.message-btn:hover{background:#2563eb}.no-data{text-align:center;padding:3rem;color:#64748b}.external-link{display:inline-block;margin-top:1rem;color:#3b82f6;text-decoration:none}.loading,.error-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem}@media (max-width: 768px){.governor-info,.grade-display{flex-direction:column;align-items:center;text-align:center}.stats-grid{grid-template-columns:1fr}.tab-nav{gap:.25rem}.tab-nav button{padding:.5rem .75rem;font-size:.8rem}}.mayor-detail-page{min-height:100vh;background:#0f172a;color:#e2e8f0}.mayor-content{max-width:900px;margin:0 auto;padding:1rem;padding-bottom:100px}.back-link{display:inline-block;margin-bottom:1rem;color:#60a5fa;background:none;border:none;cursor:pointer;font-size:.9rem;padding:0}.loading-state,.error-state{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:50vh;text-align:center;padding:2rem}.error-state h2{color:#f87171;margin-bottom:8px}.error-state .back-btn{margin-top:16px;background:#3b82f6;color:#fff;border:none;padding:10px 24px;border-radius:8px;cursor:pointer;font-weight:600}.mayor-header{background:linear-gradient(135deg,#1e293b,#0f172a);border:1px solid #334155;border-radius:16px;padding:1.5rem;margin-bottom:1rem}.mayor-info{display:flex;align-items:flex-start;gap:1.25rem;margin-bottom:1.25rem}.mayor-photo{width:100px;height:120px;object-fit:cover;border-radius:12px;flex-shrink:0}.mayor-avatar{width:100px;height:120px;border-radius:12px;background:#334155;display:flex;align-items:center;justify-content:center;font-size:2rem;font-weight:700;color:#94a3b8;flex-shrink:0}.mayor-text h1{font-size:1.5rem;font-weight:800;color:#f1f5f9;margin:0 0 4px}.mayor-title{color:#94a3b8;font-size:.95rem;margin:0 0 8px}.party-badge{display:inline-block;padding:2px 10px;border-radius:12px;font-size:.75rem;font-weight:700;margin-right:8px}.party-badge.dem{background:#1d4ed8;color:#dbeafe}.party-badge.rep{background:#b91c1c;color:#fee2e2}.party-badge.ind{background:#6b7280;color:#e5e7eb}.term-info{font-size:.8rem;color:#64748b}.quick-stats{display:flex;gap:1rem}.quick-stats .stat{flex:1;text-align:center;background:#ffffff0d;border-radius:10px;padding:12px 8px}.stat-value{display:block;font-size:1.5rem;font-weight:800;color:#60a5fa}.stat-label{font-size:.7rem;color:#94a3b8;text-transform:uppercase;letter-spacing:.5px}.mayor-tabs{display:flex;gap:4px;background:#1e293b;border-radius:12px;padding:4px;margin-bottom:1rem;overflow-x:auto}.mayor-tabs .tab{flex:1;padding:10px 8px;border:none;background:transparent;color:#94a3b8;font-size:.8rem;font-weight:600;border-radius:8px;cursor:pointer;white-space:nowrap}.mayor-tabs .tab.active{background:#3b82f6;color:#fff}.section-card{background:#1e293b;border:1px solid #334155;border-radius:12px;padding:1.25rem;margin-bottom:1rem}.section-card h2{font-size:1.1rem;font-weight:700;color:#f1f5f9;margin:0 0 1rem}.no-data{color:#64748b;font-size:.9rem;text-align:center;padding:2rem 0}.legislation-list{display:flex;flex-direction:column;gap:10px}.legislation-item{background:#ffffff08;border:1px solid #334155;border-radius:10px;padding:12px;text-decoration:none;color:inherit}.legislation-item.clickable:hover{border-color:#60a5fa;background:#3b82f60d}.leg-header-row{display:flex;align-items:center;gap:8px;margin-bottom:6px}.status-badge{font-size:.7rem;font-weight:700;padding:2px 8px;border-radius:6px;text-transform:uppercase}.status-badge.passed,.status-badge.adopted,.status-badge.approved{background:#166534;color:#bbf7d0}.status-badge.introduced,.status-badge.referred{background:#1e40af;color:#bfdbfe}.status-badge.failed,.status-badge.withdrawn{background:#991b1b;color:#fecaca}.status-badge.vetoed{background:#92400e;color:#fde68a}.leg-type{font-size:.7rem;color:#64748b}.legislation-item h4{font-size:.9rem;color:#e2e8f0;margin:0 0 6px;line-height:1.4}.leg-meta{display:flex;flex-wrap:wrap;gap:12px;font-size:.75rem;color:#64748b}.view-link{display:block;margin-top:8px;font-size:.8rem;color:#60a5fa}.view-all-btn{display:block;width:100%;margin-top:12px;padding:10px;background:#3b82f61a;border:1px solid #3b82f6;color:#60a5fa;border-radius:8px;cursor:pointer;font-weight:600;font-size:.85rem}.meetings-list{display:flex;flex-direction:column;gap:8px}.meeting-item{display:flex;align-items:center;gap:12px;padding:10px;background:#ffffff08;border-radius:8px}.meeting-date{background:#3b82f6;color:#fff;padding:6px 10px;border-radius:8px;font-size:.75rem;font-weight:700;white-space:nowrap;flex-shrink:0}.meeting-info h4{font-size:.85rem;color:#e2e8f0;margin:0}.meeting-info span{font-size:.75rem;color:#64748b;display:block}.council-list{display:flex;flex-direction:column;gap:4px}.council-member{border:1px solid #334155;border-radius:10px;overflow:hidden}.member-header{display:flex;align-items:center;gap:12px;padding:12px;background:#ffffff05}.member-header:hover{background:#ffffff0d}.member-photo{width:48px;height:48px;border-radius:50%;object-fit:cover;flex-shrink:0}.member-avatar{width:48px;height:48px;border-radius:50%;background:#334155;display:flex;align-items:center;justify-content:center;font-size:.85rem;font-weight:700;color:#94a3b8;flex-shrink:0}.member-info{flex:1;min-width:0}.member-info h4{font-size:.9rem;color:#f1f5f9;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.member-role{font-size:.75rem;color:#64748b}.member-contact{display:flex;gap:8px}.member-contact a{text-decoration:none;font-size:1.1rem}.expand-icon{color:#64748b;font-size:.7rem}.member-votes{background:#0f172a;border-top:1px solid #334155;padding:12px}.loading-votes,.no-votes{color:#64748b;font-size:.85rem;text-align:center;padding:12px}.votes-list h5{font-size:.8rem;color:#94a3b8;margin:0 0 8px;text-transform:uppercase;letter-spacing:.5px}.vote-item{display:flex;align-items:flex-start;gap:10px;padding:8px 0;border-bottom:1px solid #1e293b}.vote-item:last-child{border-bottom:none}.vote-badge{flex-shrink:0;padding:2px 8px;border-radius:6px;font-size:.7rem;font-weight:700;min-width:40px;text-align:center}.vote-badge.yea{background:#166534;color:#bbf7d0}.vote-badge.nay{background:#991b1b;color:#fecaca}.vote-badge.other{background:#4b5563;color:#d1d5db}.vote-question{font-size:.8rem;color:#cbd5e1;margin:0;line-height:1.4}.vote-date{font-size:.7rem;color:#64748b}.contact-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}.contact-card{display:flex;flex-direction:column;align-items:center;gap:6px;padding:20px;background:#ffffff08;border:1px solid #334155;border-radius:12px;text-decoration:none;color:inherit;text-align:center}.contact-card:hover{border-color:#60a5fa;background:#3b82f60d}.contact-label{font-size:.75rem;color:#64748b;text-transform:uppercase}.contact-value{font-size:.9rem;color:#60a5fa;font-weight:600}@media (max-width: 600px){.mayor-info{flex-direction:column;align-items:center;text-align:center}.quick-stats{flex-wrap:wrap}.quick-stats .stat{min-width:80px}.mayor-tabs{flex-wrap:nowrap}.mayor-tabs .tab{font-size:.7rem;padding:8px 4px}}.report-card{background:#fff;border-radius:16px;overflow:hidden;box-shadow:0 2px 12px #00000014}.report-card.loading{padding:2rem;text-align:center;color:#888}.grade-section{padding:1.5rem}.grade-section.universal{background:linear-gradient(135deg,#f8fafc,#f1f5f9)}.grade-section.alignment{background:#fff}.grade-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.grade-header h3{margin:0;font-size:1.1rem;display:flex;align-items:center;gap:.5rem}.grade-type-badge{font-size:.7rem;padding:.25rem .5rem;background:#e2e8f0;color:#64748b;border-radius:4px;font-weight:500}.grade-type-badge.personal{background:#fef3c7;color:#92400e}.grade-display{display:flex;justify-content:center;margin:1.5rem 0}.grade-circle{width:100px;height:100px;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#fff;box-shadow:0 4px 12px #00000026}.grade-letter{font-size:2.5rem;font-weight:800;line-height:1}.grade-score{font-size:.9rem;opacity:.9}.grade-description{text-align:center;color:#64748b;font-size:.9rem;margin:0;line-height:1.5}.unlock-btn{display:block;width:100%;margin-top:1rem;padding:.875rem;background:linear-gradient(135deg,#4f46e5,#7c3aed);color:#fff;border:none;border-radius:10px;font-size:.95rem;font-weight:600;cursor:pointer;transition:all .2s}.unlock-btn:hover{transform:translateY(-2px);box-shadow:0 4px 12px #4f46e54d}.ad-playing{text-align:center;padding:2rem;background:#1a1a2e;border-radius:10px;color:#fff;margin-top:1rem}.ad-spinner{width:40px;height:40px;border:3px solid rgba(255,255,255,.2);border-top-color:#4f46e5;border-radius:50%;animation:spin 1s linear infinite;margin:0 auto 1rem}.ad-timer{font-size:.8rem;opacity:.7}.grade-breakdown{margin-top:1.5rem;padding-top:1rem;border-top:1px solid #e2e8f0}.grade-breakdown h4{margin:0 0 1rem;font-size:.95rem;color:#334155}.breakdown-row{margin-bottom:.75rem}.breakdown-label{display:flex;justify-content:space-between;font-size:.85rem;margin-bottom:.25rem}.breakdown-label span:first-child{color:#334155}.breakdown-weight{color:#94a3b8;font-size:.75rem}.breakdown-bar-container{height:8px;background:#e2e8f0;border-radius:4px;overflow:hidden;position:relative}.breakdown-bar{height:100%;border-radius:4px;transition:width .5s ease}.breakdown-score{display:block;text-align:right;font-size:.8rem;color:#64748b;margin-top:.125rem}.breakdown-details{margin-top:1rem;padding:1rem;background:#f8fafc;border-radius:8px}.detail-item{margin:0 0 .5rem;font-size:.8rem;color:#64748b}.detail-item:last-child{margin-bottom:0}.detail-item strong{color:#334155}.grade-divider{display:flex;align-items:center;padding:0 1.5rem;background:#f1f5f9}.grade-divider:before,.grade-divider:after{content:"";flex:1;height:1px;background:#e2e8f0}.grade-divider span{padding:.5rem 1rem;font-size:.75rem;color:#94a3b8;text-transform:uppercase;letter-spacing:.05em}.needs-quiz{text-align:center;padding:1.5rem;background:#f8fafc;border-radius:10px}.needs-quiz p{margin:0 0 1rem;color:#64748b}.quiz-btn{padding:.875rem 1.5rem;background:linear-gradient(135deg,#10b981,#059669);color:#fff;border:none;border-radius:10px;font-size:.95rem;font-weight:600;cursor:pointer;transition:all .2s}.quiz-btn:hover{transform:translateY(-2px);box-shadow:0 4px 12px #10b9814d}.alignment-locked{text-align:center}.locked-preview{padding:1.5rem;background:#f8fafc;border-radius:10px;margin-bottom:1rem}.blur-score{font-size:3rem;font-weight:800;color:#cbd5e1;filter:blur(4px)}.locked-preview p{margin:.5rem 0 0;color:#64748b}.alignment-unlocked{animation:fadeIn .3s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.alignment-display{text-align:center;margin-bottom:1rem}.alignment-score{margin-bottom:.75rem}.score-number{font-size:3rem;font-weight:800;color:#4f46e5}.score-label{display:block;font-size:.9rem;color:#64748b}.alignment-bar{height:12px;border-radius:6px;margin:0 auto;max-width:300px}.alignment-description{text-align:center;color:#64748b;font-size:.9rem;margin:1rem 0}.issue-alignments{margin-top:1.5rem}.issue-alignments h4{margin:0 0 1rem;font-size:.9rem;color:#64748b}.issue-row{display:flex;align-items:center;gap:.5rem;margin-bottom:.75rem;font-size:.85rem}.issue-icon{font-size:1rem;width:24px}.issue-name{width:100px;color:#334155}.issue-bar-container{flex:1;height:6px;background:#e2e8f0;border-radius:3px;overflow:hidden}.issue-bar{height:100%;background:linear-gradient(90deg,#4f46e5,#7c3aed);border-radius:3px}.issue-score{width:40px;text-align:right;font-weight:600;color:#4f46e5}.alignment-disclaimer{margin-top:1rem;padding:.75rem;background:#fef3c7;border-radius:8px;font-size:.8rem;color:#92400e}.data-sources{padding:1rem 1.5rem;background:#f8fafc;border-top:1px solid #e2e8f0;text-align:center}.data-sources p{margin:0 0 .5rem;font-size:.75rem;color:#94a3b8}.methodology-link{font-size:.8rem;color:#4f46e5;text-decoration:none}.methodology-link:hover{text-decoration:underline}.grade-badge{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:6px;color:#fff;font-weight:700;font-size:.9rem}.grade-badge.universal{box-shadow:0 2px 4px #0000001a}.values-quiz{background:#fff;border-radius:16px;max-width:500px;margin:0 auto;overflow:hidden}.quiz-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;background:linear-gradient(135deg,#4f46e5,#7c3aed);color:#fff}.quiz-header h3{margin:0;font-size:1.1rem}.close-btn{width:32px;height:32px;border:none;border-radius:50%;background:#fff3;color:#fff;font-size:1.5rem;cursor:pointer;display:flex;align-items:center;justify-content:center}.quiz-progress{display:flex;align-items:center;gap:1rem;padding:.75rem 1.5rem;background:#f8fafc}.quiz-progress .progress-bar{flex:1;height:6px;background:#e2e8f0;border-radius:3px;overflow:hidden}.quiz-progress .progress-bar:after{content:"";display:block;height:100%;background:#4f46e5;width:var(--progress, 0%);transition:width .3s ease}.quiz-progress span{font-size:.8rem;color:#64748b}.quiz-question{padding:1.5rem}.issue-header{display:flex;align-items:center;gap:.75rem;margin-bottom:1rem}.issue-header .issue-icon{font-size:2rem}.issue-header h4{margin:0;font-size:1.25rem}.question-text{color:#64748b;margin:1rem 0 .75rem;font-size:.9rem}.position-scale,.importance-scale{display:flex;flex-wrap:wrap;gap:.5rem}.position-scale button,.importance-scale button{flex:1;min-width:calc(50% - .25rem);padding:.75rem .5rem;border:2px solid #e2e8f0;border-radius:8px;background:#fff;font-size:.8rem;cursor:pointer;transition:all .2s}.position-scale button:hover,.importance-scale button:hover{border-color:#4f46e5}.position-scale button.active,.importance-scale button.active{background:#4f46e5;border-color:#4f46e5;color:#fff}.importance-scale button{min-width:calc(20% - .4rem)}.quiz-nav{display:flex;justify-content:space-between;padding:1rem 1.5rem;border-top:1px solid #e2e8f0}.nav-btn{padding:.75rem 1.5rem;border:none;border-radius:8px;font-size:.9rem;font-weight:600;cursor:pointer;transition:all .2s}.nav-btn.back{background:#f1f5f9;color:#64748b}.nav-btn.next{background:#4f46e5;color:#fff}.nav-btn.complete{background:linear-gradient(135deg,#10b981,#059669);color:#fff}.nav-btn:disabled{opacity:.5;cursor:not-allowed}@media (max-width: 480px){.grade-circle{width:80px;height:80px}.grade-letter{font-size:2rem}.issue-name{width:80px;font-size:.75rem}.position-scale button{min-width:100%;padding:.625rem}.importance-scale button{min-width:calc(33.33% - .33rem);font-size:.7rem;padding:.5rem .25rem}}@media (prefers-color-scheme: dark){.report-card{background:#1a1a2e;color:#fff}.grade-section.universal,.grade-section.alignment{background:#1a1a2e}.grade-description{color:#94a3b8}.grade-type-badge{background:#334155;color:#94a3b8}.breakdown-bar-container,.issue-bar-container{background:#334155}.needs-quiz,.locked-preview,.breakdown-details{background:#2a2a4e}.data-sources{background:#0f0f1a;border-color:#334155}.values-quiz{background:#1a1a2e}.quiz-progress{background:#2a2a4e}.position-scale button,.importance-scale button{background:#2a2a4e;border-color:#334155;color:#fff}}.state-rep-detail{min-height:100vh;background:#f8f9fa}.detail-content{max-width:700px;margin:0 auto;padding:1rem;padding-bottom:100px}.back-link{display:inline-flex;align-items:center;gap:.25rem;padding:.5rem 0;color:#4f46e5;background:none;border:none;font-size:.9rem;cursor:pointer;margin-bottom:1rem}.official-header{display:flex;gap:1rem;align-items:flex-start;padding:1.5rem;background:#fff;border-radius:16px;box-shadow:0 2px 8px #0000000f;margin-bottom:1rem}.official-photo{width:80px;height:80px;border-radius:50%;overflow:hidden;flex-shrink:0}.official-photo img{width:100%;height:100%;object-fit:cover}.photo-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:1.5rem;font-weight:700;color:#fff}.photo-placeholder.d{background:linear-gradient(135deg,#2563eb,#1d4ed8)}.photo-placeholder.r{background:linear-gradient(135deg,#dc2626,#b91c1c)}.official-info{flex:1}.official-info h1{margin:0;font-size:1.35rem;line-height:1.2}.official-role{margin:.25rem 0;color:#64748b;font-size:.9rem}.official-state{margin:0;color:#94a3b8;font-size:.85rem}.official-meta{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.75rem}.party-badge{display:inline-block;padding:.25rem .5rem;border-radius:4px;font-size:.75rem;font-weight:600}.party-badge.d{background:#dbeafe;color:#1d4ed8}.party-badge.r{background:#fee2e2;color:#b91c1c}.term-info{font-size:.75rem;color:#94a3b8}.official-grade{text-align:center;flex-shrink:0}.grade-circle{width:56px;height:56px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto}.grade-letter{font-size:1.5rem;font-weight:800;color:#fff}.grade-label{display:block;margin-top:.25rem;font-size:.65rem;color:#94a3b8}.detail-tabs{display:flex;gap:.5rem;margin-bottom:1rem;overflow-x:auto;padding-bottom:.25rem}.tab{padding:.75rem 1.25rem;background:#fff;border:1px solid #e5e7eb;border-radius:10px;font-size:.9rem;cursor:pointer;white-space:nowrap;transition:all .2s}.tab:hover{border-color:#4f46e5}.tab.active{background:#4f46e5;color:#fff;border-color:#4f46e5}.tab-content{animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.tab-content section{background:#fff;border-radius:12px;padding:1.25rem;margin-bottom:1rem;box-shadow:0 1px 4px #0000000a}.tab-content h2{margin:0 0 1rem;font-size:1.1rem}.section-note{color:#64748b;font-size:.85rem;margin:-.5rem 0 1rem}.stats-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem}.stat-card{padding:1rem;background:#f8f9fa;border-radius:10px;text-align:center}.stat-value{display:block;font-size:1.5rem;font-weight:700;color:#1f2937}.stat-label{display:block;font-size:.75rem;color:#64748b;margin-top:.25rem}.bills-list{display:flex;flex-direction:column;gap:.75rem}.bill-card{padding:1rem;background:#f8f9fa;border-radius:10px;border-left:4px solid #94a3b8}.bill-card.signed{border-left-color:#22c55e}.bill-card.vetoed{border-left-color:#ef4444}.bill-status{font-size:.75rem;font-weight:600;margin-bottom:.5rem}.bill-card h4{margin:0 0 .5rem;font-size:.95rem}.bill-description{margin:0 0 .5rem;font-size:.85rem;color:#64748b}.bill-meta{display:flex;gap:1rem;font-size:.75rem;color:#94a3b8}.no-data{text-align:center;padding:2rem;color:#64748b}.data-note{font-size:.85rem;margin-top:.5rem}.external-link{display:inline-block;margin-top:1rem;padding:.5rem 1rem;background:#f1f5f9;color:#4f46e5;text-decoration:none;border-radius:8px;font-size:.9rem}.quick-contact-section{margin-top:.75rem;display:flex;justify-content:flex-start}.one-click-contact{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;padding:1rem 1.25rem;margin-bottom:1.25rem}.one-click-contact h3{margin:0 0 .75rem;font-size:1rem;color:#0f172a}.one-click-contact .quick-contact-bar{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:flex-start}.one-click-contact .quick-action{flex:1 1 auto;min-width:90px}.contact-tip{margin:.75rem 0 0;font-size:.8rem;color:#475569}.contact-methods{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1.5rem}.contact-card{display:flex;align-items:center;gap:1rem;padding:1rem;background:#f8f9fa;border-radius:10px;text-decoration:none;color:inherit;transition:all .2s}.contact-card:hover{background:#f1f5f9}.contact-icon{font-size:1.5rem}.contact-card strong{display:block;font-size:.85rem;color:#64748b}.contact-card span{color:#1f2937}.social-links{margin-bottom:1.5rem}.social-links h3{margin:0 0 .75rem;font-size:.9rem;color:#64748b}.social-buttons{display:flex;gap:.75rem;flex-wrap:wrap}.social-btn{padding:.5rem 1rem;border-radius:8px;text-decoration:none;font-size:.85rem}.social-btn.twitter{background:#1a1a1a;color:#fff}.social-btn.facebook{background:#1877f2;color:#fff}.action-buttons{display:flex;gap:.75rem}.action-btn{flex:1;padding:.875rem;border-radius:10px;text-align:center;text-decoration:none;font-weight:600;transition:all .2s}.action-btn.primary{background:#4f46e5;color:#fff}.action-btn.secondary{background:#f1f5f9;color:#1f2937}.data-sources{text-align:center;padding:1.5rem;color:#94a3b8;font-size:.8rem}.methodology-link{color:#4f46e5;text-decoration:none}.loading-container,.error-container{text-align:center;padding:3rem 1rem}.spinner{width:40px;height:40px;border:3px solid #e5e7eb;border-top-color:#4f46e5;border-radius:50%;animation:spin 1s linear infinite;margin:0 auto 1rem}.back-btn{padding:.75rem 1.5rem;background:#4f46e5;color:#fff;border:none;border-radius:8px;cursor:pointer;margin-top:1rem}@media (max-width: 480px){.official-header{flex-direction:column;text-align:center}.official-photo{margin:0 auto}.official-meta{justify-content:center}.stats-grid{grid-template-columns:1fr 1fr}.action-buttons{flex-direction:column}}@media (prefers-color-scheme: dark){.state-rep-detail{background:#0f0f1a}.official-header,.tab-content section{background:#1a1a2e}.official-info h1{color:#fff}.tab{background:#1a1a2e;border-color:#3a3a5e;color:#fff}.stat-card,.bill-card,.contact-card{background:#2a2a4e}.stat-value{color:#fff}}:root{--primary: #2d5a7b;--primary-dark: #1a3a5c;--primary-light: #3b9cc2;--primary-bg: rgba(45, 90, 123, .08);--secondary: #3b9cc2;--secondary-dark: #2d5a7b;--secondary-light: #7ec8e3;--success: #059669;--success-bg: rgba(5, 150, 105, .1);--warning: #d97706;--warning-bg: rgba(217, 119, 6, .1);--danger: #dc2626;--danger-bg: rgba(220, 38, 38, .1);--bg-primary: #ffffff;--bg-secondary: #f8fafc;--bg-tertiary: #f1f5f9;--bg-card: #ffffff;--bg-card-hover: #f8fafc;--text-primary: #1e293b;--text-secondary: #475569;--text-muted: #94a3b8;--border-color: #e2e8f0;--border-color-hover: #cbd5e1;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px rgba(0, 0, 0, .07);--shadow-lg: 0 10px 25px rgba(0, 0, 0, .1);--radius-sm: 6px;--radius-md: 10px;--radius-lg: 16px;--radius-xl: 24px;--radius-full: 9999px}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:#f8fafc;color:var(--text-primary);line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{color:var(--primary);text-decoration:none;transition:color .2s}a:hover{color:var(--primary-dark)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:#f1f5f9}::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#94a3b8}.spinner{width:32px;height:32px;border:3px solid var(--border-color);border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite}.spinner.small{width:20px;height:20px;border-width:2px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 20px;font-size:14px;font-weight:500;border-radius:var(--radius-md);border:none;cursor:pointer;transition:all .2s}.btn-primary{background:linear-gradient(135deg,var(--primary),var(--primary-dark));color:#fff;box-shadow:0 2px 8px #2563eb40}.btn-primary:hover{transform:translateY(-1px);box-shadow:0 4px 12px #2563eb59}.btn-secondary{background:#fff;color:var(--text-primary);border:1px solid var(--border-color)}.btn-secondary:hover{background:var(--bg-secondary);border-color:var(--border-color-hover)}.card{background:#fff;border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:16px;box-shadow:var(--shadow-sm);transition:all .2s}.card:hover{box-shadow:var(--shadow-md);border-color:var(--border-color-hover)}.badge{display:inline-flex;align-items:center;padding:4px 10px;font-size:12px;font-weight:500;border-radius:var(--radius-full);background:var(--bg-tertiary);color:var(--text-secondary)}.badge-primary{background:var(--primary-bg);color:var(--primary)}.badge-success{background:var(--success-bg);color:var(--success)}.badge-warning{background:var(--warning-bg);color:var(--warning)}.input{width:100%;padding:12px 16px;font-size:15px;background:#fff;border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-primary);transition:all .2s}.input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-bg)}.input::placeholder{color:var(--text-muted)}.page{min-height:100vh;padding-bottom:80px;background:var(--bg-secondary)}.page-content{max-width:600px;margin:0 auto;padding:70px 16px 16px}.chip{padding:8px 16px;font-size:13px;font-weight:500;background:#fff;border:1px solid var(--border-color);border-radius:var(--radius-full);color:var(--text-secondary);cursor:pointer;transition:all .2s}.chip:hover{background:var(--bg-secondary);color:var(--text-primary)}.chip.active{background:var(--primary);border-color:var(--primary);color:#fff}.gradient-text{background:linear-gradient(135deg,var(--primary),var(--secondary));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}:root{--color-navy: #0f2439;--color-navy-mid: #1a3a5c;--color-navy-light: #2d5a7b;--color-sky: #7ec8e3;--color-sky-dark: #3b9cc2;--color-green: #5cb85c;--color-green-light: #6fd06f;--color-gray-50: #f8fafb;--color-gray-100: #f1f4f7;--color-gray-200: #e2e7ed;--color-gray-300: #cdd4dc;--color-gray-500: #8e99a8;--color-gray-700: #4a5568;--color-gray-900: #1a202c;--color-red: #ef4444;--color-red-bg: #fef2f2;--color-blue: #3b82f6;--color-blue-bg: #eff6ff;--space-xs: clamp(4px, .4vw, 6px);--space-sm: clamp(8px, .8vw, 12px);--space-md: clamp(12px, 1.2vw, 20px);--space-lg: clamp(16px, 1.8vw, 28px);--space-xl: clamp(20px, 2.5vw, 40px);--text-xs: clamp(10px, .75rem, 12px);--text-sm: clamp(12px, .85rem, 14px);--text-base: clamp(14px, 1rem, 16px);--text-lg: clamp(16px, 1.15rem, 20px);--text-xl: clamp(20px, 1.5rem, 28px);--text-2xl: clamp(24px, 1.8rem, 36px);--radius-sm: clamp(6px, .6vw, 10px);--radius-md: clamp(10px, 1vw, 14px);--radius-lg: clamp(14px, 1.2vw, 20px);--radius-xl: clamp(16px, 1.5vw, 24px);--radius-full: 100px;--shadow-sm: 0 1px 3px rgba(15, 36, 57, .06);--shadow-md: 0 4px 12px rgba(15, 36, 57, .08);--shadow-lg: 0 8px 24px rgba(15, 36, 57, .1);--shadow-nav: 0 -1px 20px rgba(0, 0, 0, .04);--font-sans: -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", system-ui, sans-serif;--content-cap: 1200px}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{font-family:var(--font-sans);background:var(--color-gray-50);min-height:100vh;color:var(--color-gray-900);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.5;font-size:var(--text-base)}#root{min-height:100vh;background:#fff}@media (min-width: 768px){body{background:linear-gradient(180deg,#eef2f5 0%,var(--color-gray-50) 100%)}#root{max-width:var(--content-cap);margin:0 auto;box-shadow:0 0 80px #0f24390d;border-left:1px solid var(--color-gray-200);border-right:1px solid var(--color-gray-200)}}#root:has(.landing),#root:has(.login-page),#root:has(.onboarding){max-width:100%;box-shadow:none;border:none}.landing,.login-page,.onboarding{width:100vw;margin-left:calc(-50vw + 50%);max-width:100vw;overflow-x:hidden}.app{min-height:100vh}.header{background:linear-gradient(135deg,var(--color-navy) 0%,var(--color-navy-mid) 100%);color:#fff;padding:var(--space-md) var(--space-lg);position:sticky;top:0;z-index:100;border-bottom:1px solid rgba(126,200,227,.12)}.header-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-sm)}.logo{font-size:var(--text-lg);font-weight:700;letter-spacing:-.3px}.logo span{color:var(--color-sky)}.header-icons{display:flex;gap:var(--space-md)}.header-icons span{font-size:18px;cursor:pointer;opacity:.85;transition:opacity .2s}.header-icons span:hover{opacity:1}.grassroots-bar{height:2px;background:linear-gradient(90deg,var(--color-green),var(--color-sky),var(--color-green));opacity:.5}.district-badge{display:inline-flex;align-items:center;gap:var(--space-sm);background:#7ec8e31f;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-full);font-size:var(--text-sm);border:1px solid rgba(126,200,227,.18)}.district-badge strong{color:var(--color-sky)}.main{padding:var(--space-lg);padding-bottom:100px}@media (min-width: 768px){.main{padding-bottom:var(--space-xl)}}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-md);margin-top:var(--space-sm)}.section-title{font-size:var(--text-lg);font-weight:700;color:var(--color-navy);letter-spacing:-.2px}.see-all{font-size:var(--text-sm);color:var(--color-sky-dark);text-decoration:none;font-weight:500;cursor:pointer;transition:color .2s}.see-all:hover{color:var(--color-navy-light)}.card{background:#fff;border-radius:var(--radius-lg);padding:var(--space-md);margin-bottom:var(--space-md);box-shadow:var(--shadow-sm);border:1px solid var(--color-gray-200);transition:transform .15s ease,box-shadow .15s ease}.card:hover{transform:translateY(-1px);box-shadow:var(--shadow-md)}.bottom-nav{position:fixed;bottom:0;left:50%;transform:translate(-50%);width:100%;max-width:var(--content-cap);background:#ffffffeb;-webkit-backdrop-filter:blur(20px) saturate(180%);backdrop-filter:blur(20px) saturate(180%);border-top:1px solid rgba(0,0,0,.06);box-shadow:var(--shadow-nav);display:flex;justify-content:space-around;align-items:flex-start;padding:8px 8px calc(env(safe-area-inset-bottom,8px) + 8px);z-index:100}@media (min-width: 768px){.bottom-nav{display:none!important}}.nav-item{display:flex;flex-direction:column;align-items:center;gap:3px;min-width:56px;padding:6px 12px 4px;border-radius:var(--radius-md);font-size:var(--text-xs);color:var(--color-gray-500);text-decoration:none;font-weight:500;transition:all .2s ease;background:none;border:none;cursor:pointer;-webkit-tap-highlight-color:transparent;position:relative}.nav-item.active{color:var(--color-navy-light);background:#1e5a820f;font-weight:600}.nav-item.active:before{content:"";position:absolute;top:0;left:50%;transform:translate(-50%);width:20px;height:2.5px;background:linear-gradient(90deg,var(--color-navy-light),var(--color-sky-dark));border-radius:0 0 4px 4px}.nav-item span{font-size:22px;line-height:1}.nav-item:active{transform:scale(.95)}.nav-spacer{height:80px}@media (min-width: 768px){.nav-spacer{height:0}}.party-badge{font-size:var(--text-xs);padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-full);font-weight:600;letter-spacing:.3px;text-transform:uppercase}.party-badge.dem,.party-badge.democrat{background:var(--color-blue-bg);color:#2563eb}.party-badge.rep,.party-badge.republican{background:var(--color-red-bg);color:#dc2626}.btn{padding:var(--space-md) var(--space-lg);border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:600;cursor:pointer;border:none;transition:all .15s ease;display:inline-flex;align-items:center;justify-content:center;gap:var(--space-sm);letter-spacing:.1px}.btn-primary{background:linear-gradient(135deg,var(--color-navy-light),var(--color-sky-dark));color:#fff;box-shadow:0 2px 8px #1e5a824d}.btn-primary:hover{transform:translateY(-1px);box-shadow:0 4px 14px #1e5a8259}.btn-primary:active{transform:translateY(0)}.btn-secondary{background:var(--color-gray-100);color:var(--color-navy);border:1px solid var(--color-gray-200)}.btn-secondary:hover{background:var(--color-gray-200)}.contact-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;padding:var(--space-sm);border-radius:var(--radius-sm);font-size:var(--text-xs);font-weight:600;text-decoration:none;transition:all .15s ease}.contact-btn.call{background:#ecfdf5;color:#059669;border:1px solid #d1fae5}.contact-btn.email{background:var(--color-blue-bg);color:#2563eb;border:1px solid #dbeafe}.contact-btn.website{background:#faf5ff;color:#7c3aed;border:1px solid #ede9fe}.contact-btn:hover{transform:translateY(-1px);box-shadow:0 2px 6px #00000014}.chip{display:inline-flex;align-items:center;gap:4px;padding:6px var(--space-md);border-radius:var(--radius-full);font-size:var(--text-sm);font-weight:500;background:var(--color-gray-100);color:var(--color-gray-700);border:1px solid var(--color-gray-200);cursor:pointer;transition:all .15s ease;-webkit-tap-highlight-color:transparent}.chip.active{background:var(--color-navy);color:#fff;border-color:var(--color-navy)}.chip:not(.active):hover{background:var(--color-gray-200)}.loading{display:flex;justify-content:center;align-items:center;padding:var(--space-xl)}.spinner{width:32px;height:32px;border:3px solid var(--color-gray-200);border-top-color:var(--color-navy-light);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media (min-width: 640px){.reps-grid,.officials-grid,.legislators-grid{grid-template-columns:repeat(2,1fr)!important}}.home-page,.reps-page,.action-page,.bills-page,.profile-page,.lobby-page,.local-page{padding-bottom:100px}@media (min-width: 768px){.home-page,.reps-page,.action-page,.bills-page,.profile-page,.lobby-page,.local-page{padding-bottom:var(--space-xl)}}:focus-visible{outline:2px solid var(--color-sky-dark);outline-offset:2px;border-radius:4px}.hide-scrollbar{-ms-overflow-style:none;scrollbar-width:none}.hide-scrollbar::-webkit-scrollbar{display:none}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.page-content{padding-bottom:100px}@media (min-width: 768px){.page-content{padding-bottom:var(--space-xl)}}
