:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;display:flex;place-items:center;min-width:320px;min-height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media(prefers-color-scheme:light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.6;color:#333}.app{min-height:100vh}.announcement-banner{background:#fff8e1;border-bottom:2px solid #f59e0b;color:#78350f;padding:.65rem 0}.announcement-banner .container{display:flex;justify-content:space-between;align-items:center;gap:1rem}.announcement-text{font-size:.9rem;line-height:1.4}.announcement-dismiss{background:none;border:none;color:#92400e;font-size:1rem;cursor:pointer;padding:.25rem .5rem;flex-shrink:0;opacity:.7;transition:opacity .2s ease}.announcement-dismiss:hover{opacity:1}.candidate-banner{background:gold;color:#1a1a1a;padding:.75rem 0;text-align:center;font-weight:600}.candidate-banner .container{display:flex;justify-content:center;align-items:center;gap:1rem;flex-wrap:wrap}.banner-text{font-size:.95rem}.banner-link{color:#dc143c;text-decoration:underline;font-weight:700;transition:opacity .2s ease}.banner-link:hover{opacity:.8}.candidate-banner.party-banner{background:#e0f2fe;border-bottom:1px solid #bae6fd}.container{max-width:1200px;margin:0 auto;padding:0 2rem}.hero{background:linear-gradient(135deg,#dc143c,#a00000);color:#fff;padding:3rem 0 4rem;text-align:center;position:relative;overflow:hidden}.hero:before{content:"";position:absolute;inset:0;background:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1200 120"><path d="M0,0 Q300,60 600,30 T1200,0 L1200,120 L0,120 Z" fill="rgba(0,0,0,0.1)"/></svg>') bottom center no-repeat;background-size:cover;opacity:.3}.hero .container{position:relative;z-index:1}.hero-badge{display:inline-block;background:#fff3;padding:.5rem 1rem;border-radius:20px;font-size:.85rem;font-weight:600;letter-spacing:1px;text-transform:uppercase;margin-bottom:1rem}.hero-title{font-size:3rem;font-weight:800;line-height:1.2;margin-bottom:1rem;letter-spacing:-1px}.hero-title .highlight{color:gold}.hero-subtitle{font-size:1.5rem;line-height:1.4;max-width:700px;margin:0 auto 1rem;opacity:.95;font-weight:600}.hero-description{font-size:1.1rem;line-height:1.6;max-width:700px;margin:0 auto 2rem;opacity:.9}.cta-primary{display:inline-block;background:#fff;color:#dc143c;padding:1rem 2.5rem;font-size:1.1rem;font-weight:700;text-decoration:none;border-radius:8px;transition:all .3s ease;box-shadow:0 4px 15px #0003}.cta-primary:hover{transform:translateY(-2px);box-shadow:0 6px 20px #0000004d}.cta-secondary{display:inline-block;background:#dc143c;color:#fff;padding:.9rem 2rem;font-size:1rem;font-weight:600;text-decoration:none;border-radius:6px;transition:all .3s ease}.cta-secondary:hover{background:#a00000;transform:translateY(-1px)}.deadline{margin-top:1.2rem;font-size:1rem;font-weight:500;opacity:.85}.about{padding:3.5rem 0;background:#f8f9fa}.about h2{font-size:2rem;font-weight:700;margin-bottom:1.5rem;color:#dc143c;text-align:center}.about .lead{font-size:1.15rem;line-height:1.7;margin-bottom:1rem;color:#2c3e50;max-width:900px;margin-left:auto;margin-right:auto}.about p{font-size:1.05rem;line-height:1.7;margin-bottom:.8rem;max-width:900px;margin-left:auto;margin-right:auto;text-align:center}.results-preview{padding:3.5rem 0;background:#fff}.results-preview h2{font-size:2rem;font-weight:700;margin-bottom:1rem;color:#dc143c;text-align:center}.section-intro{font-size:1.05rem;text-align:center;margin-bottom:1.5rem;color:#666;max-width:800px;margin-left:auto;margin-right:auto}.filter-row{display:flex;justify-content:center;gap:2rem;flex-wrap:wrap;margin-bottom:2rem}.filter-row .filter-container{margin:0}.filter-container{max-width:500px;margin:0 auto 2rem;text-align:center;display:flex;flex-direction:column;align-items:center}.filter-label{display:block;margin-bottom:.5rem;font-weight:600;color:#333}.office-filter{padding:.5rem 1rem;font-size:1rem;border:2px solid #DC143C;border-radius:6px;background:#fff;color:#333;cursor:pointer;min-width:300px}.office-filter:focus{outline:none;border-color:#a00000;box-shadow:0 0 0 3px #dc143c1a}.table-container{overflow-x:auto;margin:0 auto 2rem;border-radius:8px;box-shadow:0 2px 8px #0000001a}.results-table{width:100%;border-collapse:collapse;background:#fff;font-size:.95rem}.results-table thead{background:#dc143c;color:#fff}.results-table th{padding:1rem;text-align:left;font-weight:600;font-size:.9rem;letter-spacing:.5px}.results-table td{padding:1rem;border-bottom:1px solid #e9ecef}.results-table tbody tr:hover{background:#f8f9fa}.sample-row.responded{background:#f0fdf4}.sample-row.pending{background:#fffbeb}.sample-row.no-response{background:#fef2f2}.status-badge{display:inline-block;padding:.3rem .8rem;border-radius:4px;font-size:.85rem;font-weight:600}.status-badge.responded{background:#dcfce7;color:#166534}.status-badge.pending{background:#fef3c7;color:#92400e}.status-badge.no-response{background:#fee2e2;color:#991b1b}.status-badge.declined{background:#9ca3af;color:#1f2937}.status-badge.withdrew{background:#d1d5db;color:#6b7280;text-decoration:line-through}.status-badge.undeliverable{background:#fbbf24;color:#78350f}.sample-row.declined{background:#f3f4f6;color:#6b7280}.sample-row.declined td{opacity:.7}.sample-row.declined strong{color:#6b7280}.sample-row.withdrew{background:#f9fafb;color:#9ca3af}.sample-row.withdrew td{opacity:.6;text-decoration:line-through}.sample-row.withdrew strong{color:#9ca3af}.sample-row.undeliverable{background:#fffbeb}.party-badge{display:inline-block;width:24px;height:24px;border-radius:50%;text-align:center;line-height:24px;font-weight:700;font-size:.75rem;color:#fff}.party-badge.democratic{background:#0015bc}.party-badge.republican{background:#e81b23}.party-badge.statehood-green{background:#228b22}.party-badge.independent{background:#6b5b95}.slate-badge{display:inline-block;padding:.2rem .5rem;border-radius:4px;font-weight:700;font-size:.7rem;color:#fff;text-transform:uppercase;letter-spacing:.5px}.slate-badge.free-dc{background:#2563eb}.slate-badge.dems-united{background:#7c3aed}.slate-badge.independent{background:#6b5b95}.slate-badge.fight-statehood{background:#059669}.slate-badge.act-now{background:#d97706}.slate-legend{padding:1.5rem 0;background:#f8fafc;border-bottom:1px solid #e2e8f0}.slate-legend h3{font-size:1rem;margin-bottom:1rem;color:#374151}.slate-list{display:flex;flex-wrap:wrap;gap:1.5rem}.slate-item{display:flex;align-items:center;gap:.5rem}.slate-name{font-weight:600;color:#1f2937}.slate-count{color:#6b7280;font-size:.9rem}.view-response-btn{background:#dc143c;color:#fff;border:none;padding:.4rem 1rem;border-radius:4px;font-size:.85rem;font-weight:600;cursor:pointer;transition:all .2s ease}.view-response-btn:hover{background:#a00000;transform:translateY(-1px)}.not-available{color:#999;font-style:italic}.modal-overlay{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.modal-content{background:#fff;border-radius:8px;max-width:700px;width:100%;max-height:90vh;overflow-y:auto;position:relative;box-shadow:0 10px 40px #0000004d;animation:modalSlideIn .3s ease}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.modal-close{position:absolute;top:1rem;right:1rem;background:none;border:none;font-size:2rem;color:#999;cursor:pointer;line-height:1;width:40px;height:40px;display:flex;align-items:center;justify-content:center;transition:color .2s ease}.modal-close:hover{color:#333}.modal-title{font-size:2rem;font-weight:700;color:#dc143c;margin:2rem 2rem .5rem;padding-right:2rem}.modal-subtitle{font-size:1rem;color:#666;margin:0 2rem .75rem}.copy-link-btn{display:inline-flex;align-items:center;gap:.35rem;margin:0 2rem 1.25rem;padding:.35rem .85rem;font-size:.8rem;background:#f5f5f5;border:1px solid #ddd;border-radius:4px;cursor:pointer;color:#555;transition:background .15s,color .15s}.copy-link-btn:hover{background:#e8e8e8;color:#222}.copy-link-btn:focus{outline:2px solid #DC143C;outline-offset:2px}.modal-body{padding:1.5rem 2rem 2rem}.question-block{margin-bottom:2rem}.question-block:last-child{margin-bottom:0}.question{font-size:1.1rem;font-weight:700;color:#2c3e50;margin-bottom:.5rem}.answer{font-size:1rem;line-height:1.6;color:#555;margin:0;white-space:pre-wrap}.table-note{text-align:center;font-size:.9rem;color:#666;font-style:italic;max-width:700px;margin:0 auto;padding:0 1rem}.questionnaire-info{padding:3.5rem 0;background:#f8f9fa}.questionnaire-info h2{font-size:2rem;font-weight:700;margin-bottom:3rem;color:#dc143c;text-align:center}.info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:2rem;margin-bottom:3rem}.info-card{background:#fff;padding:2rem;border-radius:8px;box-shadow:0 2px 8px #00000014}.info-card h3{font-size:1.3rem;margin-bottom:1rem;color:#2c3e50}.info-card ul{list-style:none;padding:0}.info-card li{padding:.6rem 0 .6rem 1.5rem;position:relative;color:#555;font-size:.95rem;line-height:1.5}.info-card li:before{content:"•";position:absolute;left:0;color:#dc143c;font-weight:700;font-size:1.2rem}.cta-box{background:#fff;border:2px solid #DC143C;padding:2.5rem;border-radius:8px;text-align:center;max-width:700px;margin:0 auto}.cta-box h3{font-size:1.5rem;margin-bottom:.8rem;color:#2c3e50}.cta-box p{font-size:1rem;color:#666;margin-bottom:1.5rem}.about-content{max-width:800px;margin:0 auto}.about-mission{font-size:1.1rem;line-height:1.7;color:#2c3e50;text-align:center;margin-bottom:2rem}.faq-section{display:flex;flex-direction:column;gap:.5rem}.faq-item{background:#fff;border:1px solid #e5e7eb;border-radius:8px;overflow:hidden;transition:box-shadow .2s ease}.faq-item:hover{box-shadow:0 2px 8px #00000014}.faq-item[open]{border-color:#dc143c;box-shadow:0 2px 12px #dc143c1a}.faq-item summary{padding:1rem 1.25rem;font-size:1.05rem;font-weight:600;color:#2c3e50;cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;transition:color .2s ease}.faq-item summary::-webkit-details-marker{display:none}.faq-item summary:after{content:"+";font-size:1.4rem;font-weight:300;color:#dc143c;flex-shrink:0;margin-left:1rem;transition:transform .2s ease}.faq-item[open] summary:after{content:"−"}.faq-item summary:hover{color:#dc143c}.faq-answer{padding:0 1.25rem 1.25rem;color:#555;line-height:1.7;font-size:.95rem}.faq-answer p{margin-bottom:.75rem}.faq-answer p:last-child{margin-bottom:0}.faq-answer a{color:#dc143c;text-decoration:underline;transition:opacity .2s ease}.faq-answer a:hover{opacity:.8}.footer{background:#1a1a1a;color:#fff;padding:3rem 0 2rem}.footer-content{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:2.5rem;margin-bottom:2rem}.footer-section h3{font-size:1.2rem;margin-bottom:1rem;color:gold}.footer-section p{color:#ccc;line-height:1.7;font-size:.95rem}.footer-section ul{list-style:none;padding:0}.footer-section li{margin-bottom:.7rem}.footer-section a{color:#ccc;text-decoration:none;transition:color .3s ease}.footer-section a:hover{color:gold}.footer-bottom{border-top:1px solid #333;padding-top:1.5rem;text-align:center}.footer-bottom p{color:#999;font-size:.9rem;margin-bottom:.5rem}.footer-disclaimer{font-size:.85rem;color:#777}.recent-responses{padding:2rem 0;background:linear-gradient(135deg,#fef3c7,#fff7ed);border-bottom:2px solid #f59e0b}.recent-responses h2{font-size:1.5rem;font-weight:700;color:#92400e;margin-bottom:1rem}.recent-list{display:flex;flex-direction:column;gap:.75rem}.recent-item{display:flex;align-items:center;gap:1rem;background:#fff;padding:1rem 1.25rem;border-radius:8px;box-shadow:0 2px 8px #00000014;cursor:pointer;transition:all .2s ease;border-left:4px solid #f59e0b}.recent-item:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000001f}.recent-new-badge{display:inline-block;background:#dc143c;color:#fff;font-size:.65rem;font-weight:800;padding:.2rem .5rem;border-radius:3px;letter-spacing:.5px;text-transform:uppercase;flex-shrink:0;animation:badgePulse 2s ease-in-out infinite}@keyframes badgePulse{0%,to{opacity:1}50%{opacity:.7}}.recent-office{color:#6b7280;font-size:.9rem}.recent-date{color:#9ca3af;font-size:.85rem;margin-left:auto}.recent-statehood{font-size:.9rem;color:#374151}.recent-arrow{color:#dc143c;font-weight:600;font-size:.9rem;flex-shrink:0}.new-badge{display:inline-block;background:#dc143c;color:#fff;font-size:.6rem;font-weight:800;padding:.15rem .4rem;border-radius:3px;letter-spacing:.5px;text-transform:uppercase;margin-left:.5rem;vertical-align:middle;animation:badgePulse 2s ease-in-out infinite}.sample-row.recent{background:#fffbeb;border-left:3px solid #f59e0b}.sample-row.recent.responded{background:linear-gradient(90deg,#fffbeb,#f0fdf4 40%)}.cards-container{display:none;max-width:900px;margin:0 auto}.office-group{margin-bottom:.75rem;border:1px solid #e5e7eb;border-radius:8px;overflow:hidden;background:#fff;box-shadow:0 1px 3px #00000014}.office-group-header{width:100%;display:flex;justify-content:space-between;align-items:center;padding:1rem 1.25rem;background:#f9fafb;border:none;cursor:pointer;font-family:inherit;text-align:left;transition:background .2s ease}.office-group-header.expanded{background:#dc143c;color:#fff}.office-group-title{font-size:1rem;font-weight:700}.candidate-count{font-weight:400;font-size:.9rem;opacity:.8}.expand-icon{font-size:1.4rem;font-weight:300;line-height:1}.office-group-content{padding:.5rem}.candidate-card{border:1px solid #e5e7eb;border-radius:6px;padding:.85rem 1rem;margin-bottom:.5rem;transition:all .15s ease}.candidate-card:last-child{margin-bottom:0}.candidate-card.clickable{cursor:pointer}.candidate-card.clickable:active{transform:scale(.98)}.candidate-card.responded{background:#f0fdf4;border-left:4px solid #10b981}.candidate-card.no-response{background:#fef2f2;border-left:4px solid #ef4444}.candidate-card.declined{background:#f3f4f6;border-left:4px solid #9ca3af;opacity:.8}.candidate-card.undeliverable{background:#fffbeb;border-left:4px solid #f59e0b}.candidate-card.withdrew{background:#f9fafb;border-left:4px solid #d1d5db;opacity:.6}.candidate-card.withdrew .candidate-name,.candidate-card.withdrew .info-value{text-decoration:line-through;color:#9ca3af}.candidate-card.recent.responded{background:linear-gradient(135deg,#f0fdf4,#dcfce7);border-left:4px solid #10b981}.candidate-card-header{display:flex;justify-content:space-between;align-items:flex-start;gap:.5rem}.candidate-name-row{display:flex;align-items:center;gap:.4rem;flex:1;min-width:0}.candidate-card .candidate-name{font-size:1rem;color:#1f2937;line-height:1.3}.candidate-badges{display:flex;gap:.4rem;align-items:center;flex-shrink:0}.candidate-card-body{margin-top:.6rem;padding-top:.6rem;border-top:1px solid #e5e7eb;display:flex;justify-content:space-between;align-items:center}.candidate-info-row{display:flex;align-items:center;gap:.4rem}.info-label{font-size:.85rem;color:#6b7280}.info-value{font-size:.9rem;color:#1f2937;font-weight:600}.view-response-indicator{font-size:.8rem;color:#dc143c;font-weight:600;white-space:nowrap}@media(max-width:768px){.container{padding:0 1.5rem}.hero-title{font-size:2rem}.hero-subtitle{font-size:1.15rem}.hero-description{font-size:.95rem}.cta-primary{padding:.9rem 2rem;font-size:1rem}.about h2,.results-preview h2,.questionnaire-info h2{font-size:1.5rem}.about .lead{font-size:1rem}.table-container{display:none}.cards-container{display:block}.info-grid{grid-template-columns:1fr}.footer-content{grid-template-columns:1fr;gap:2rem}.results-table{font-size:.85rem}.results-table th,.results-table td{padding:.7rem .5rem}.filter-row{flex-direction:column;gap:1rem;padding:0 1rem}.filter-container{padding:0 1rem}.filter-label{display:block;margin-bottom:.5rem}.office-filter{min-width:100%;width:100%}.recent-item{flex-wrap:wrap;gap:.5rem}.recent-date{margin-left:0}.recent-statehood{width:100%;font-size:.85rem}.about-mission{font-size:1rem}.faq-item summary{font-size:.95rem;padding:.85rem 1rem}.faq-answer{padding:0 1rem 1rem;font-size:.9rem}.view-response-btn{padding:.3rem .7rem;font-size:.8rem}.modal-content{max-height:95vh;border-radius:8px 8px 0 0;margin-top:auto}.modal-title{font-size:1.5rem;margin:1.5rem 1.5rem .5rem}.modal-subtitle{margin:0 1.5rem 1rem}.modal-body{padding:1rem 1.5rem 1.5rem}.question{font-size:1rem}.answer{font-size:.95rem}}@media(max-width:480px){.container{padding:0 1rem}.hero{padding:2rem 0 2.5rem}.hero-title{font-size:1.7rem}.hero-subtitle{font-size:1rem}.hero-description{font-size:.9rem}.about h2,.results-preview h2,.questionnaire-info h2{font-size:1.4rem}.about .lead{font-size:.95rem}.cta-box{padding:2rem 1.5rem}.table-container{margin:0 -1rem 2rem;border-radius:0}.results-table{font-size:.8rem}.results-table th,.results-table td{padding:.6rem .4rem}.status-badge{font-size:.75rem;padding:.2rem .5rem}}
