@import url(https://fonts.googleapis.com/css2?family=Playfair+Display:wght@700;900&family=Source+Sans+3:wght@300;400;600;700&display=swap);:root{--red:#b22234;--blue:#3c3b6e;--white:#fff;--light-blue:#4a90d9;--dark:#1a1a2e;--gray:#f5f5f5;--text-dark:#1a1a2e;--text-mid:#444;--shadow:0 4px 24px #0000001f;--radius:8px}*{box-sizing:border-box;margin:0;padding:0}body{background:#fff;background:var(--white);color:#1a1a2e;color:var(--text-dark);font-family:Source Sans\ 3,sans-serif}.app,body{min-height:100vh}.btn-primary{background:#f5c518;border:none;border-radius:50px;color:#1a1a2e;color:var(--dark);cursor:pointer;font-family:Source Sans\ 3,sans-serif;font-size:18px;font-weight:700;letter-spacing:.5px;padding:16px 40px;transition:all .2s}.btn-primary:hover{background:#e6b800;box-shadow:0 6px 20px #f5c51866;transform:translateY(-2px)}.btn-primary:disabled{background:#ccc;cursor:not-allowed;transform:none}.btn-back{background:#0000;border:2px solid #fff9;border-radius:50px;color:#fff;cursor:pointer;font-family:Source Sans\ 3,sans-serif;font-size:14px;font-weight:600;padding:10px 24px;transition:all .2s}.btn-back:hover{background:#ffffff26}.loading-spinner{animation:spin .8s linear infinite;border:4px solid #ffffff4d;border-radius:50%;border-top-color:#fff;height:40px;margin:0 auto;width:40px}.error-message{background:#b2223426;border:1px solid #b22234;border:1px solid var(--red);border-radius:8px;border-radius:var(--radius);color:#b22234;color:var(--red);font-size:14px;margin-top:12px;padding:12px 20px}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.fade-in{animation:fadeInUp .5s ease forwards}.admin-portal-icon{align-items:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff26;border:1.5px solid #ffffff4d;border-radius:50%;color:#fff;cursor:pointer;display:flex;height:44px;justify-content:center;position:fixed;right:20px;top:20px;transition:all .2s;width:44px;z-index:1000}.admin-portal-icon:hover{background:#ffffff40;transform:scale(1.05)}.page1,.page1-hero{min-height:100vh;position:relative}.page1-hero{align-items:center;background-image:url(/static/media/voting-booths.7dd799a2e482ee6fd738.png);background-position:50%;background-size:cover;display:flex;justify-content:center;padding-top:64px}.page1-overlay{background:#1414328c;inset:0;position:absolute}.page1-content{max-width:640px;padding:40px 24px;position:relative;text-align:center;width:100%;z-index:2}.page1-eyebrow{color:#ffffffbf;font-size:13px;font-weight:600;letter-spacing:3px;margin-bottom:20px;text-transform:uppercase}.page1-title{color:#fff;font-family:Playfair Display,serif;font-size:clamp(32px,5vw,54px);font-weight:700;line-height:1.15;margin-bottom:20px}.page1-subtitle{color:#ffffffd9;font-size:16px;font-weight:300;letter-spacing:1.5px;margin-bottom:36px;text-transform:uppercase}.page1-form{align-items:center;display:flex;flex-direction:column;gap:16px;width:100%}.form-group{max-width:440px;text-align:left;width:100%}.form-label{color:#fffc;display:block;font-size:13px;font-weight:600;letter-spacing:.5px;margin-bottom:6px}.form-input{background:#fff;border:none;border-radius:6px;color:#333;font-family:Source Sans\ 3,sans-serif;font-size:16px;outline:none;padding:14px 18px;transition:box-shadow .2s;width:100%}.form-input:focus{box-shadow:0 0 0 3px #f5c51880}.form-input::placeholder{color:#aaa}.btn-primary{align-items:center;display:flex;justify-content:center;margin-top:8px;min-height:54px;min-width:220px}.page1-footer{color:#ffffff73;font-size:12px}@media (max-width:480px){.page1-content{padding:32px 20px}}.page1-search-bar{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#0a0e1ad9;border-bottom:1px solid #ffffff14;left:0;padding:12px 20px;position:fixed;right:0;top:0;z-index:1000}.page1-search-bar-inner{align-items:center;display:flex;gap:10px;margin:0 auto;max-width:660px}.page1-search-bar-inner .candidate-search{flex:1 1;max-width:none}.page1-admin-btn{align-items:center;background:#ffffff26;border:1.5px solid #ffffff40;border-radius:50%;color:#fff;cursor:pointer;display:flex;flex-shrink:0;height:40px;justify-content:center;transition:background .2s;width:40px}.page1-admin-btn:hover{background:#ffffff4d}.candidate-search{margin:0 auto;max-width:600px;position:relative}.candidate-search-box{align-items:center;background:#ffffff1a;border:1.5px solid #fff3;border-radius:50px;display:flex;gap:10px;padding:0 16px}.candidate-search-box:focus-within{background:#ffffff26;border-color:#f5c51899}.candidate-search-icon{flex-shrink:0;font-size:16px}.candidate-search-input{background:none;border:none;color:#fff;flex:1 1;font-family:inherit;font-size:14px;outline:none;padding:11px 0}.candidate-search-input::placeholder{color:#fff6}.candidate-search-spinner{animation:spin .6s linear infinite;border:2px solid #fff3;border-radius:50%;border-top-color:#fff;flex-shrink:0;height:16px;width:16px}.candidate-search-clear{background:none;border:none;color:#fff6;cursor:pointer;flex-shrink:0;font-size:14px;padding:4px}.candidate-search-clear:hover{color:#fff}.candidate-search-results{background:#fff;border-radius:16px;box-shadow:0 8px 40px #00000040;left:0;max-height:400px;overflow:hidden;overflow-y:auto;position:absolute;right:0;top:calc(100% + 8px);z-index:1001}.candidate-search-result{align-items:center;background:none;border:none;border-bottom:1px solid #f0f0f0;cursor:pointer;display:flex;gap:12px;padding:12px 16px;text-align:left;width:100%}.candidate-search-result:last-child{border-bottom:none}.candidate-search-result:hover{background:#f8f9fa}.candidate-search-result-avatar{align-items:center;border-radius:50%;color:#fff;display:flex;flex-shrink:0;font-size:14px;font-weight:700;height:40px;justify-content:center;overflow:hidden;width:40px}.candidate-search-result-name{color:#1a1a2e;font-size:14px;font-weight:700}.candidate-search-result-race{color:#888;font-size:12px;margin-top:2px}.candidate-search-result-party{flex-shrink:0;font-size:11px;font-weight:700;letter-spacing:.5px;margin-left:auto;text-transform:uppercase}.search-modal-overlay{align-items:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#000000b3;display:flex;inset:0;justify-content:center;padding:20px;position:fixed;z-index:2000}.search-modal{background:#fff;border-radius:20px;box-shadow:0 20px 60px #0006;max-height:85vh;max-width:640px;overflow-y:auto;position:relative;width:100%}.search-modal-close{align-items:center;background:#fff3;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:14px;height:32px;justify-content:center;position:absolute;right:16px;top:16px;width:32px;z-index:10}.search-modal-close:hover{background:#ffffff59}.search-modal-header{align-items:center;border-radius:20px 20px 0 0;display:flex;gap:20px;padding:28px 24px}.search-modal-name{color:#fff;font-family:Playfair Display,serif;font-size:22px;margin:0 0 4px}.search-modal-party{color:#ffffffb3;font-size:13px;font-weight:600;letter-spacing:.5px;margin:0 0 4px;text-transform:uppercase}.search-modal-role{color:#fffc;font-size:13px;margin:0 0 4px}.search-modal-race{color:#fff9;font-size:12px;margin:0}.search-modal-links{border-bottom:1px solid #f0f0f0;display:flex;flex-wrap:wrap;gap:8px;padding:16px 24px}.search-modal-link{align-items:center;border:1.5px solid #0000;border-radius:20px;display:inline-flex;font-size:12px;font-weight:600;gap:5px;padding:7px 14px;text-decoration:none;transition:opacity .15s}.search-modal-link:hover{opacity:.8}.search-modal-link--website{background:#3c3b6e1a;border-color:#3c3b6e33;color:#3c3b6e}.search-modal-link--ballotpedia{background:#0064b41a;border-color:#0064b433;color:#0064b4}.search-modal-link--opensecrets{background:#00640014;border-color:#00640033;color:#006400}.search-modal-link--youtube{background:#ff000012;border-color:#f003;color:#c00}.search-modal-positions{padding:20px 24px}.search-modal-positions-title{color:#1a1a2e;font-family:Playfair Display,serif;font-size:18px;margin:0 0 14px}.search-modal-cats{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:16px}.search-modal-cat{background:#f4f4f6;border:1.5px solid #e8eaed;border-radius:20px;color:#666;cursor:pointer;font-size:12px;font-weight:600;padding:5px 12px}.search-modal-cat.active{background:#3c3b6e;background:var(--cat-color,#3c3b6e);border-color:#0000;color:#fff}.search-modal-position-item{border-bottom:1px solid #f5f5f5;margin-bottom:14px;padding-bottom:14px}.search-modal-position-item:last-child{border-bottom:none}.search-modal-position-label{font-size:12px;font-weight:700;letter-spacing:.5px;margin-bottom:5px;text-transform:uppercase}.search-modal-position-text{color:#444;font-size:13px;line-height:1.6}@media (max-width:768px){.page1-search-bar{padding:10px 16px}.search-modal{border-radius:16px;max-height:90vh}.search-modal-header{gap:14px;padding:20px 18px}.search-modal-positions{padding:16px 18px}.search-modal-links{padding:14px 18px}}.chatbot-btn{align-items:center;background:linear-gradient(135deg,#3c3b6e,#b22234);border:none;border-radius:50%;bottom:28px;box-shadow:0 4px 20px #0000004d;color:#fff;cursor:pointer;display:flex;height:56px;justify-content:center;position:fixed;right:24px;transition:transform .2s,box-shadow .2s;width:56px;z-index:1500}.chatbot-btn:hover{box-shadow:0 6px 28px #0006;transform:scale(1.08)}.chatbot-window{background:#fff;border-radius:20px;bottom:96px;box-shadow:0 12px 48px #00000040;display:flex;flex-direction:column;height:520px;overflow:hidden;position:fixed;right:24px;width:360px;z-index:1500}.chatbot-header{align-items:center;background:linear-gradient(135deg,#3c3b6e,#b22234);color:#fff;display:flex;justify-content:space-between;padding:16px 18px}.chatbot-header-info{align-items:center;display:flex;gap:10px}.chatbot-avatar{font-size:24px}.chatbot-title{font-size:14px;font-weight:700}.chatbot-subtitle{color:#ffffffb3;font-size:11px;margin-top:1px}.chatbot-close{align-items:center;background:#fff3;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:13px;height:28px;justify-content:center;width:28px}.chatbot-close:hover{background:#ffffff59}.chatbot-messages{background:#f8f9fa;display:flex;flex:1 1;flex-direction:column;gap:12px;overflow-y:auto;padding:16px}.chatbot-message{align-items:flex-start;display:flex;gap:8px}.chatbot-message--user{flex-direction:row-reverse}.chatbot-message-avatar{flex-shrink:0;font-size:18px;margin-top:2px}.chatbot-message-bubble{border-radius:16px;color:#333;font-size:13px;line-height:1.6;max-width:80%;padding:10px 14px}.chatbot-message--bot .chatbot-message-bubble{background:#fff;border-radius:4px 16px 16px 16px;box-shadow:0 1px 4px #00000014}.chatbot-message--user .chatbot-message-bubble{background:linear-gradient(135deg,#3c3b6e,#b22234);border-radius:16px 4px 16px 16px;color:#fff}.chatbot-thinking{align-items:center;display:flex;gap:4px;padding:12px 16px}.chatbot-thinking span{animation:chatbot-bounce 1.2s infinite;background:#bbb;border-radius:50%;height:7px;width:7px}.chatbot-thinking span:nth-child(2){animation-delay:.2s}.chatbot-thinking span:nth-child(3){animation-delay:.4s}@keyframes chatbot-bounce{0%,60%,to{transform:translateY(0)}30%{background:#3c3b6e;transform:translateY(-6px)}}.chatbot-input-row{align-items:center;background:#fff;border-top:1px solid #f0f0f0;display:flex;gap:8px;padding:12px 14px}.chatbot-input{border:1.5px solid #e8eaed;border-radius:20px;color:#333;flex:1 1;font-family:inherit;font-size:13px;outline:none;padding:9px 14px}.chatbot-input:focus{border-color:#3c3b6e}.chatbot-input::placeholder{color:#aaa}.chatbot-input:disabled{background:#f5f5f5}.chatbot-send{align-items:center;background:linear-gradient(135deg,#3c3b6e,#b22234);border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;flex-shrink:0;height:36px;justify-content:center;transition:opacity .15s;width:36px}.chatbot-send:disabled{cursor:not-allowed;opacity:.4}.chatbot-send:hover:not(:disabled){opacity:.85}@media (max-width:480px){.chatbot-window{bottom:88px;height:70vh;left:12px;right:12px;width:auto}.chatbot-btn{bottom:20px;right:16px}}.page1-legal-links{align-items:center;display:flex;font-size:12px;gap:8px;justify-content:center;margin-top:10px}.page1-legal-link{background:none;border:none;border-radius:4px;color:#ffffffb3;cursor:pointer;font-family:inherit;font-size:12px;padding:4px 8px;text-decoration:underline;text-underline-offset:3px;transition:color .2s,background .2s}.page1-legal-link:hover{background:#ffffff14;color:#fff}.page1-legal-sep{color:#fff6;font-size:12px}.page1-logo-link{display:inline-block;margin-bottom:18px}.page1-logo{display:block;height:auto;width:120px}.page1-footer{letter-spacing:.5px;margin-top:32px}.page1-disclaimer,.page1-footer{color:#ffffffe6;font-size:13px;font-weight:700}.page1-disclaimer{font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;letter-spacing:0;line-height:1.5;margin:20px auto 24px;max-width:900px;padding:0 20px;text-align:center}.page1-disclaimer strong{color:#fff;font-weight:800}.page1-disclaimer-link{color:#fff;font-weight:700;text-decoration:underline}.page1-legal-link,.page1-legal-sep{color:#ffffffe6;font-size:13px;font-weight:700}@media (max-width:480px){.page1-logo{width:88px}}.page2,.page2-hero{min-height:100vh}.page2-hero{align-items:center;background-image:url(/static/media/voters-booth.b9f41b22710d20961e66.png);background-position:50%;background-size:cover;display:flex;justify-content:center;position:relative}.page2-overlay{background:#0f143cb8;inset:0;position:absolute}.page2-content{max-width:800px;padding:40px 24px;position:relative;text-align:center;width:100%;z-index:2}.btn-back{display:inline-block;margin-bottom:32px}.page2-header{margin-bottom:48px}.page2-eyebrow{color:#ffffff8c;font-size:11px;letter-spacing:3px;margin-bottom:8px;text-transform:uppercase}.page2-location{color:#fff;font-family:Playfair Display,serif;font-size:clamp(28px,5vw,52px);font-weight:700;line-height:1.1;margin-bottom:8px}.page2-district-number{color:#f5c518;font-size:18px;font-weight:600;letter-spacing:.5px;margin-bottom:20px}.page2-district{color:#f5c518;font-size:14px;font-weight:700;letter-spacing:2px;margin-bottom:16px;text-transform:uppercase}.page2-title{color:#fff;font-family:Playfair Display,serif;font-size:clamp(22px,3vw,36px);font-weight:700;line-height:1.2;margin-bottom:20px}.page2-note{color:#ffffff8c;font-size:14px;font-style:italic}.page2-buttons{flex-wrap:wrap;gap:20px}.page2-buttons,.race-btn{display:flex;justify-content:center}.race-btn{align-items:center;border:none;border-radius:12px;color:#fff;cursor:pointer;flex-direction:column;font-family:Source Sans\ 3,sans-serif;font-size:17px;font-weight:700;gap:10px;line-height:1.3;min-height:140px;min-width:180px;padding:32px 28px;position:relative;transition:all .2s}.race-btn:hover:not(.race-btn--unavailable){box-shadow:0 12px 32px #0006;transform:translateY(-4px)}.race-btn--blue{background:#3c3b6e}.race-btn--red{background:#b22234}.race-btn--purple{background:#6b3fa0}.race-btn-icon{font-size:28px}.race-btn-sub{display:block;font-size:11px;font-weight:400;letter-spacing:.5px;margin-top:4px;opacity:.8}.race-btn--unavailable{align-items:flex-start;cursor:default;flex-direction:column;gap:0;min-height:auto;opacity:1;padding:20px 22px;text-align:left}.race-btn--unavailable:hover{box-shadow:none;opacity:.85;transform:none}.unavailable-content{display:flex;flex-direction:column;gap:5px;width:100%}.unavailable-title{color:#fff;font-family:Playfair Display,serif;font-size:17px;font-weight:700}.unavailable-note{color:#ffffffbf;font-size:12px;font-style:italic;font-weight:400;line-height:1.5}.unavailable-toggle{background:#ffffff26;border:1px solid #ffffff40;border-radius:20px;color:#fff;cursor:pointer;font-family:inherit;font-size:11px;margin-top:6px;padding:4px 12px;transition:background .2s;width:fit-content}.unavailable-toggle:hover{background:#ffffff47}.unavailable-details{background:#fff;border-radius:8px;display:flex;flex-direction:column;gap:7px;margin-top:8px;padding:10px 14px}.unavailable-detail-row{align-items:flex-start;display:flex;font-size:12px;gap:8px}.unavailable-label{color:#555;font-size:11px;font-weight:700;letter-spacing:.5px;min-width:110px;text-transform:uppercase;white-space:nowrap}.unavailable-value{color:#111;font-weight:700;line-height:1.4}@media (max-width:600px){.page2-buttons{align-items:center;flex-direction:column}.race-btn{flex-direction:row;gap:16px;justify-content:flex-start;max-width:320px;min-height:100px;padding:20px 24px;width:100%}.race-btn--unavailable{align-items:flex-start;flex-direction:column;min-height:auto;padding:18px 20px}.page2-location{font-size:clamp(24px,8vw,36px)}.page2-district-number{font-size:15px}}.page2-groups{display:flex!important;flex-direction:column!important;gap:28px!important;margin:0 auto;max-width:1100px;width:100%}.page2-group{display:flex;flex-direction:column;gap:12px}.page2-group-title{border-bottom:2px solid #ffffff40;color:#fff;font-family:Playfair Display,Georgia,serif;font-size:20px;font-weight:600;letter-spacing:.5px;margin:0;opacity:.95;padding:0 6px 6px;text-transform:uppercase}.page2-group-buttons{grid-gap:14px;display:grid;gap:14px;grid-template-columns:repeat(3,1fr)}.page2-group-buttons .race-btn{word-wrap:break-word;align-items:center;box-sizing:border-box;display:flex;flex-direction:column;font-size:15px;gap:6px;justify-content:center;line-height:1.3;min-height:110px;padding:18px 14px;text-align:center;white-space:normal}.page2-group-buttons .race-btn-icon{font-size:24px;margin:0}.page2-group-buttons .race-btn--unavailable{font-size:13px;min-height:130px;padding:14px}@media (max-width:900px){.page2-group-buttons{grid-template-columns:repeat(2,1fr)}.page2-group-title{font-size:18px}}@media (max-width:560px){.page2-groups{gap:22px!important}.page2-group-buttons{gap:10px;grid-template-columns:1fr}.page2-group-buttons .race-btn{font-size:14px;min-height:80px;padding:14px}.page2-group-title{font-size:16px}}.page3{background:#f8f8f8;min-height:100vh}.page3--error,.page3--loading{align-items:center;display:flex;justify-content:center;min-height:100vh}.error-container,.loading-container{align-items:center;display:flex;flex-direction:column;gap:20px;padding:40px;text-align:center}.error-container p,.loading-container p{color:#555;font-size:18px}.page3-header{background:linear-gradient(135deg,#1a1a4e,#3c3b6e 50%,#b22234);color:#fff;padding:32px 24px}.page3-header-inner{margin:0 auto;max-width:1200px}.page3-eyebrow{color:#fff9;font-size:12px;letter-spacing:3px;margin:12px 0 8px;text-transform:uppercase}.page3-title{color:#fff;font-family:Playfair Display,serif;font-size:clamp(24px,4vw,40px);font-weight:700}.page3-race-notes{color:#ffffffb3;font-size:13px;font-style:italic;line-height:1.5;margin-top:6px;max-width:700px}.page3-body{margin:0 auto;max-width:1200px;padding:40px 24px}.candidates-grid{grid-gap:24px;display:grid;gap:24px;grid-template-columns:repeat(2,1fr);grid-template-columns:repeat(var(--num-candidates,2),1fr);margin-bottom:48px}.candidate-card{background:#fff;border-radius:12px;box-shadow:0 2px 16px #00000014;overflow:hidden;transition:transform .2s}.candidate-card:hover{transform:translateY(-3px)}.candidate-header{gap:16px;padding:24px}.candidate-avatar,.candidate-header{align-items:center;color:#fff;display:flex}.candidate-avatar{background:#ffffff40;border-radius:50%;flex-shrink:0;font-size:20px;height:56px;justify-content:center;width:56px}.candidate-avatar,.candidate-name{font-family:Playfair Display,serif;font-weight:700}.candidate-name{font-size:18px;line-height:1.2;margin-bottom:4px}.candidate-party{font-size:12px;font-weight:600;letter-spacing:1px;opacity:.85;text-transform:uppercase}.candidate-role{font-size:12px;margin-top:4px;opacity:.75}.candidate-bio{background:#00000008;border-bottom:1px solid #0000000f;padding:12px 16px}.candidate-bio p{color:#555;font-size:12.5px;line-height:1.6;margin:0}.primary-pending-badge{background:#ffc1072e;border:1px solid #ffc10766;border-radius:20px;color:#b8860b;display:inline-block;font-size:10px;font-weight:700;letter-spacing:.5px;margin-top:6px;padding:2px 8px;text-transform:uppercase}.candidate-links{align-items:center;border-top:1px solid #0000000f;display:flex;min-height:48px;padding:12px 16px}.candidate-links-tbd{color:#aaa;font-size:13px;font-style:italic}.candidate-links-loading{align-items:center;color:#888;display:flex;font-size:13px;font-style:italic;gap:8px}.candidate-links-row{align-items:center;display:flex;flex-direction:row;flex-wrap:wrap;gap:8px;width:100%}.candidate-link-btn{align-items:center;border:1.5px solid #0000;border-radius:20px;display:inline-flex;font-size:12px;font-weight:600;gap:5px;padding:6px 12px;text-decoration:none;transition:all .15s;white-space:nowrap}.candidate-link-btn .link-icon{font-size:13px;line-height:1}.candidate-link-btn--website{background:#3c3b6e14;border-color:#3c3b6e33;color:#3c3b6e}.candidate-link-btn--website:hover{background:#3c3b6e26;border-color:#3c3b6e66}.candidate-link-btn--ballotpedia{background:#0064b414;border-color:#0064b433;color:#0064b4}.candidate-link-btn--ballotpedia:hover{background:#0064b426;border-color:#0064b466}.candidate-link-btn--youtube{background:#ff000012;border-color:#f003;color:#c00}.candidate-link-btn--youtube:hover{background:#ff000021;border-color:#ff000059}.candidate-link-btn--opensecrets{background:#00640014;border-color:#00640033;color:#006400}.candidate-link-btn--opensecrets:hover{background:#00640026;border-color:#00640066}.candidate-link-btn--x{background:#0000000f;border-color:#00000026;color:#000}.candidate-link-btn--x:hover{background:#0000001f;border-color:#0000004d}.candidate-social{border-top:1px solid #0000000f;padding:10px 16px 14px}.candidate-social-label{color:#aaa;font-size:10px;font-weight:700;letter-spacing:1px;margin-bottom:8px;text-transform:uppercase}.candidate-social-icons{display:flex;flex-wrap:wrap;gap:8px}.social-icon{align-items:center;border-radius:8px;display:flex;height:34px;justify-content:center;text-decoration:none;transition:opacity .15s;width:34px}.social-icon:hover{opacity:.8}.social-icon--x{background:#000;color:#fff}.social-icon--facebook{background:#1877f2;color:#fff}.social-icon--instagram{background:linear-gradient(45deg,#f09433,#e6683c,#dc2743,#cc2366,#bc1888);color:#fff}.social-icon--tiktok{background:#000;color:#fff}.candidate-contact{border-top:1px solid #0000000f;padding:10px 16px 14px}.candidate-contact-links{display:flex;flex-direction:column;gap:6px}.candidate-contact-link{align-items:center;color:#555;display:flex;font-size:13px;gap:6px;text-decoration:none}.candidate-contact-link:hover{color:#333}.primary-groups-row{display:flex;flex-wrap:wrap;gap:14px;margin-top:24px}.primary-group-summary{align-items:flex-start;background:#fff;border:2px solid var(--party-color);border-radius:12px;cursor:pointer;display:flex;flex:1 1;flex-direction:column;font-family:inherit;gap:4px;min-width:220px;padding:14px 18px;text-align:left;transition:all .2s}.primary-group-summary:hover{box-shadow:0 6px 18px #0000001a;transform:translateY(-2px)}.primary-group-summary--open{background:var(--party-color)}.primary-group-summary--open .primary-group-summary-arrow,.primary-group-summary--open .primary-group-summary-count,.primary-group-summary--open .primary-group-summary-title{color:#fff}.primary-group-summary--open .primary-group-summary-badge{background:#ffffff40;border-color:#fff6;color:#fff}.primary-group-summary-badge{background:#ffc1072e;border:1px solid #ffc10766;border-radius:20px;color:#b8860b;font-size:10px;font-weight:700;letter-spacing:.5px;padding:3px 9px;text-transform:uppercase}.primary-group-summary-title{color:#1a1a2e;font-family:Playfair Display,serif;font-size:16px;font-weight:700;margin-top:4px}.primary-group-summary-count{color:#888;font-size:12px}.primary-group-summary-arrow{color:var(--party-color);font-size:11px;font-weight:600;margin-top:6px}.primary-contest-section{background:#00000005;border-radius:14px;margin-bottom:8px;margin-top:18px;padding:20px}.primary-contest-header{align-items:center;border-bottom:2px dashed #00000014;display:flex;gap:12px;justify-content:space-between;margin-bottom:14px;padding-bottom:10px}.primary-contest-badge{background:#ffc1072e;border:1px solid #ffc10766;border-radius:20px;color:#b8860b;font-size:11px;font-weight:700;letter-spacing:.5px;padding:4px 10px;text-transform:uppercase;white-space:nowrap}.primary-contest-title{color:#1a1a2e;font-family:Playfair Display,serif;font-size:18px;font-weight:700;margin:0}.primary-contest-close{background:#0000000f;border:none;border-radius:20px;color:#555;cursor:pointer;font-size:12px;font-weight:600;padding:6px 14px;white-space:nowrap}.primary-contest-close:hover{background:#0000001a}.primary-contest-cards{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.issues-section{background:#fff;border-radius:12px;box-shadow:0 2px 16px #0000000f;overflow:hidden}.issues-header{align-items:center;border-bottom:1px solid #eee;display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;padding:28px 32px}.issues-title{color:#1a1a4e;font-family:Playfair Display,serif;font-size:24px}.issues-title--inline{font-size:22px;margin:4px 0 16px;padding:0 32px}.btn-load-issues{font-size:15px;padding:12px 28px}.loading-issues{align-items:center;color:#555;display:flex;font-size:14px;gap:12px}.comparison-toggle-row{border-top:1px solid #f0f0f0;display:flex;flex-direction:column;gap:10px;margin:4px 32px 18px;padding-top:14px}.comparison-toggle-label{color:#555;font-size:13px;font-weight:700;letter-spacing:.2px}.comparison-chip-row{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.comparison-chip{background:#fff;border:1.5px solid var(--party-color);border-radius:20px;color:var(--party-color);cursor:pointer;font-family:inherit;font-size:12px;font-weight:600;padding:6px 12px;transition:all .2s}.comparison-chip:hover{background:var(--party-color);color:#fff}.comparison-chip--out{background:#0000000a;border-color:#00000026;color:#999;text-decoration:line-through}.comparison-chip--out:hover{background:var(--party-color);color:#fff;text-decoration:none}.category-tabs{border-bottom:2px solid #eee;display:flex;gap:0;overflow-x:auto;padding:0 32px;scrollbar-width:none}.category-tabs::-webkit-scrollbar{display:none}.category-tab{background:#0000;border:none;border-bottom:3px solid #0000;color:#888;cursor:pointer;font-family:Source Sans\ 3,sans-serif;font-size:14px;font-weight:600;margin-bottom:-2px;padding:14px 20px;transition:all .2s;white-space:nowrap}.category-tab:hover{color:#3c3b6e}.category-tab.active{border-bottom-color:#3c3b6e;color:#3c3b6e}.issues-table-wrap{overflow-x:auto}.issues-table{min-width:500px;padding:0}.issues-table-header{grid-gap:0;background:#f8f8f8;border-bottom:1px solid #eee;display:grid;font-size:14px;font-weight:700;gap:0;padding:16px 0}.issue-col-label{padding:0 24px}.issue-row{grid-gap:0;align-items:start;border-bottom:1px solid #f0f0f0;display:grid;gap:0}.issue-row--even{background:#fafafa}.issue-name{color:#333;font-weight:700;padding:20px 16px 20px 24px}.issue-name,.issue-position{border-right:1px solid #eee;font-size:14px}.issue-position{color:#444;line-height:1.6;padding:20px 16px}.issue-position:last-child{border-right:none}.mobile-label{display:none;font-size:12px;font-weight:700;margin-bottom:6px}.page3-footer{color:#aaa;font-size:12px;line-height:1.8;margin-top:40px;text-align:center}@media (max-width:900px){.candidates-grid{grid-template-columns:repeat(2,1fr)!important}}@media (max-width:768px){.page3-header{padding:24px 16px}.page3-body{padding:16px}.candidates-grid{grid-template-columns:1fr!important}.candidate-header{padding:18px 16px}.candidate-avatar{font-size:16px;height:48px;width:48px}.candidate-name{font-size:16px}.candidate-links{padding:12px 16px}.issues-table-wrap{overflow-x:visible}.issues-table{min-width:0;min-width:auto}.issues-table-header{display:none!important}.issue-row{border-bottom:2px solid #ddd;display:flex!important;flex-direction:column;padding:0}.issue-name{background:#f8f8f8;border-bottom:1px solid #eee;border-right:none;font-size:15px;font-weight:700;padding:16px}.issue-position{border-left:none!important;border-right:none;border-top:1px solid #f0f0f0;font-size:14px;padding:14px 16px}.mobile-label{display:block}.category-tabs{-webkit-overflow-scrolling:touch;display:flex;flex-wrap:nowrap;overflow-x:auto;padding:0 16px;white-space:nowrap}.category-tab{flex-shrink:0;font-size:13px;padding:12px 14px}.issues-header{padding:20px 16px}.issues-title{font-size:20px}.issues-title--inline{padding:0 16px}.comparison-toggle-row{margin:4px 16px 18px}.primary-contest-cards{grid-template-columns:1fr}.primary-groups-row{flex-direction:column}.primary-contest-header{align-items:flex-start;flex-direction:column;gap:8px}}.measures-list{display:flex;flex-direction:column;gap:24px;margin-bottom:48px}.measure-card{scroll-margin-top:16px}.measure-card:hover{transform:none}.measure-choices{grid-gap:12px;display:grid;gap:12px;grid-template-columns:1fr 1fr;padding:16px}.measure-choice{border:1.5px solid #0000;border-radius:12px;padding:14px 16px}.measure-choice p{color:#444;font-size:14px;line-height:1.6;margin:0}.measure-choice-label{border:1px solid #0000;border-radius:20px;display:inline-block;font-size:11px;font-weight:700;letter-spacing:.5px;margin-bottom:8px;padding:3px 10px;text-transform:uppercase}.measure-choice--yes{background:#0064000f;border-color:#00640033}.measure-choice--yes .measure-choice-label{background:#0064001a;border-color:#00640040;color:#006400}.measure-choice--no{background:#cc00000d;border-color:#c003}.measure-choice--no .measure-choice-label{background:#cc000014;border-color:#cc000040;color:#c00}.measure-choices--neutral .measure-choice{background:#00000008;border-color:#00000014}.measure-who{color:#555;font-size:13px;margin:0}.measure-official-toggle{cursor:pointer;font-family:inherit}.measure-official{border-bottom:none;border-top:1px solid #0000000f}.measure-official .candidate-social-label{margin:10px 0 6px}.measure-official .candidate-social-label:first-child{margin-top:0}.measure-official-title{color:#333!important;font-weight:700;margin-bottom:4px!important}@media (max-width:768px){.measure-choices{grid-template-columns:1fr;padding:12px}}.admin-login{align-items:center;background:#0a0e1a;display:flex;font-family:Source Sans\ 3,Segoe UI,sans-serif;justify-content:center;min-height:100vh;position:relative}.admin-login-bg{background:radial-gradient(ellipse at 30% 50%,#3c3b6e66 0,#0000 60%),radial-gradient(ellipse at 70% 50%,#b222344d 0,#0000 60%);inset:0;position:absolute}.admin-login-card{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#ffffff0a;border:1px solid #ffffff1a;border-radius:20px;max-width:400px;padding:48px 40px;position:relative;text-align:center;width:100%;z-index:2}.admin-login-logo{font-size:48px;margin-bottom:20px}.admin-login-title{color:#fff;font-family:Playfair Display,serif;font-size:28px;margin-bottom:6px}.admin-login-sub{color:#fff6;font-size:13px;letter-spacing:1px;margin-bottom:32px;text-transform:uppercase}.admin-login-form{display:flex;flex-direction:column;gap:16px}.admin-login-field label{color:#ffffff80;display:block;font-size:12px;font-weight:700;letter-spacing:1px;margin-bottom:8px;text-align:left;text-transform:uppercase}.admin-login-field input{background:#ffffff14;border:1px solid #ffffff26;border-radius:10px;box-sizing:border-box;color:#fff;font-size:15px;outline:none;padding:14px 16px;transition:border-color .2s;width:100%}.admin-login-field input:focus{border-color:#f5c51899}.admin-login-field input::placeholder{color:#ffffff40}.admin-login-error{color:#ff6b6b;font-size:13px;text-align:left}.admin-login-btn{background:linear-gradient(135deg,#3c3b6e,#b22234);border:none;border-radius:10px;color:#fff;cursor:pointer;font-size:15px;font-weight:700;margin-top:8px;padding:14px;transition:opacity .2s,transform .2s}.admin-login-btn:hover{opacity:.9;transform:translateY(-1px)}.admin-login-footer{color:#fff3;font-size:12px;margin-top:24px}.admin-portal{background:#f0f2f5;display:flex;font-family:Source Sans\ 3,Segoe UI,sans-serif;min-height:100vh}.admin-sidebar{background:#0f1225;display:flex;flex-direction:column;flex-shrink:0;height:100vh;overflow-y:auto;position:sticky;top:0;width:280px}.admin-sidebar-header{align-items:center;border-bottom:1px solid #ffffff14;display:flex;gap:12px;padding:24px 20px}.admin-sidebar-flag{font-size:28px}.admin-sidebar-title{color:#fff;font-size:15px;font-weight:700}.admin-sidebar-sub{color:#ffffff59;font-size:11px;margin-top:2px}.admin-sidebar-section{flex:1 1;padding:20px 12px}.admin-sidebar-label{color:#ffffff40;font-size:10px;font-weight:700;letter-spacing:2px;margin-bottom:8px;padding:0 8px;text-transform:uppercase}.admin-race-btn{align-items:center;background:#0000;border:none;border-radius:8px;cursor:pointer;display:flex;gap:10px;margin-bottom:2px;padding:12px 10px;text-align:left;transition:background .15s;width:100%}.admin-race-btn:hover{background:#ffffff0f}.admin-race-btn.active{background:#3c3b6e99}.admin-race-badge{background:#ffffff1a;border-radius:4px;color:#ffffff80;flex-shrink:0;font-size:9px;font-weight:800;letter-spacing:1px;padding:3px 6px;text-transform:uppercase}.admin-race-btn.active .admin-race-badge{background:#f5c51833;color:#f5c518}.admin-race-label{color:#ffffffa6;font-size:13px;line-height:1.3}.admin-race-btn.active .admin-race-label{color:#fff}.admin-sidebar-footer{border-top:1px solid #ffffff14;padding:16px 12px}.admin-logout-btn{background:#ffffff0f;border:1px solid #ffffff1a;border-radius:8px;color:#ffffff80;cursor:pointer;font-size:13px;padding:10px;transition:all .2s;width:100%}.admin-logout-btn:hover{background:#ffffff1a;color:#fff}.admin-main{flex:1 1;overflow-y:auto;padding:0}.admin-topbar{align-items:center;background:#fff;border-bottom:1px solid #e8eaed;display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;padding:24px 32px;position:sticky;top:0;z-index:10}.admin-topbar-title{color:#0f1225;font-family:Playfair Display,serif;font-size:22px;margin:0}.admin-topbar-sub{color:#888;font-size:13px;margin:4px 0 0}.admin-topbar-actions{align-items:center;display:flex;gap:12px}.admin-unsaved{background:#f38c001a;border-radius:20px;color:#f38c00;font-size:13px;font-weight:600;padding:6px 12px}.admin-save-btn{background:#0f1225;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:14px;font-weight:700;padding:10px 24px;transition:opacity .2s}.admin-save-btn:hover:not(:disabled){opacity:.85}.admin-save-btn:disabled{cursor:not-allowed;opacity:.4}.admin-message{border-radius:10px;font-size:14px;font-weight:600;margin:20px 32px 0;padding:14px 20px}.admin-message--success{background:#e8f5e9;border:1px solid #c8e6c9;color:#2e7d32}.admin-message--error{background:#fdecea;border:1px solid #f5c6cb;color:#c62828}.admin-message--info{background:#e3f2fd;border:1px solid #bbdefb;color:#1565c0}.admin-empty{align-items:center;display:flex;flex-direction:column;justify-content:center;padding:80px 32px;text-align:center}.admin-empty-icon{font-size:64px;margin-bottom:20px}.admin-empty h2{color:#333;font-family:Playfair Display,serif;margin-bottom:8px}.admin-empty p{color:#888;font-size:15px}.admin-loading{align-items:center;color:#666;display:flex;flex-direction:column;gap:16px;padding:60px}.admin-spinner{animation:spin .7s linear infinite;border:3px solid #3c3b6e33;border-radius:50%;border-top-color:#3c3b6e;height:36px;width:36px}@keyframes spin{to{transform:rotate(1turn)}}.admin-candidates-grid{display:flex;flex-direction:column;gap:16px;padding:24px 32px}.admin-candidate-card{background:#fff;border-left:4px solid #ccc;border-left:4px solid var(--party-color,#ccc);border-radius:14px;box-shadow:0 2px 12px #0000000f;overflow:hidden;transition:box-shadow .2s}.admin-candidate-card:hover{box-shadow:0 4px 20px #0000001a}.admin-candidate-header{align-items:center;display:flex;gap:16px;padding:18px 20px}.admin-candidate-avatar{align-items:center;background:#ccc;background:var(--party-color,#ccc);border-radius:50%;color:#fff;display:flex;flex-shrink:0;font-family:Playfair Display,serif;font-size:16px;font-weight:700;height:44px;justify-content:center;width:44px}.admin-candidate-name{color:#0f1225;font-size:16px;font-weight:700}.admin-candidate-party{color:#888;color:var(--party-color,#888);font-size:12px;font-weight:600;letter-spacing:.5px;margin-top:2px;text-transform:uppercase}.admin-candidate-toggle{background:#f4f4f6;border:none;border-radius:6px;color:#555;cursor:pointer;font-size:13px;font-weight:600;margin-left:auto;padding:8px 16px;transition:background .15s;white-space:nowrap}.admin-candidate-toggle:hover{background:#e8eaed}.admin-candidate-body{border-top:1px solid #f0f0f0;padding:0 20px 24px}.admin-field-group{margin-top:20px}.admin-field-group-title{color:#aaa;font-size:13px;font-weight:800;letter-spacing:1.5px;margin-bottom:14px;text-transform:uppercase}.admin-fields-row{grid-gap:14px;display:grid;gap:14px;grid-template-columns:1fr 1fr}.admin-field label{color:#666;display:block;font-size:12px;font-weight:700;margin-bottom:6px}.admin-field input{border:1.5px solid #e8eaed;border-radius:8px;box-sizing:border-box;color:#333;font-family:inherit;font-size:14px;outline:none;padding:10px 12px;transition:border-color .2s;width:100%}.admin-field input:focus{border-color:#3c3b6e}.admin-category-tabs{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:16px}.admin-cat-tab{background:#f4f4f6;border:none;border-radius:20px;color:#666;cursor:pointer;font-size:12px;font-weight:600;padding:6px 14px;transition:all .15s}.admin-cat-tab:hover{background:#e8eaed}.admin-cat-tab.active{background:#0f1225;color:#fff}.admin-position-field{margin-bottom:14px}.admin-position-field label{color:#666;display:block;font-size:12px;font-weight:700;margin-bottom:6px}.admin-position-field textarea{border:1.5px solid #e8eaed;border-radius:8px;box-sizing:border-box;color:#333;font-family:inherit;font-size:13px;line-height:1.5;outline:none;padding:10px 12px;resize:vertical;transition:border-color .2s;width:100%}.admin-position-field textarea:focus{border-color:#3c3b6e}.admin-save-bar{align-items:center;background:#0f1225;border-radius:50px;bottom:24px;box-shadow:0 8px 32px #0000004d;color:#fff;display:flex;font-size:14px;gap:16px;left:50%;padding:14px 24px;position:fixed;transform:translateX(-50%);z-index:100}.admin-save-bar-btn{background:#f5c518;border:none;border-radius:20px;color:#0f1225;cursor:pointer;font-size:13px;font-weight:800;padding:8px 20px;transition:opacity .2s}.admin-save-bar-btn:hover{opacity:.9}.admin-save-bar-btn:disabled{cursor:not-allowed;opacity:.5}@media (max-width:768px){.admin-sidebar{display:none}.admin-fields-row{grid-template-columns:1fr}.admin-candidates-grid,.admin-topbar{padding:16px}}.admin-sidebar-search{border-bottom:1px solid #ffffff14;padding:12px}.admin-search-input{background:#ffffff14;border:1px solid #ffffff1f;border-radius:8px;box-sizing:border-box;color:#fff;font-size:13px;margin-bottom:8px;outline:none;padding:8px 12px;width:100%}.admin-search-input::placeholder{color:#ffffff4d}.admin-search-input:focus{border-color:#f5c51880}.admin-filter-tabs{display:flex;gap:4px;margin-bottom:8px}.admin-filter-tab{background:#0000;border:1px solid #ffffff1a;border-radius:6px;color:#fff6;cursor:pointer;flex:1 1;font-size:11px;font-weight:600;padding:5px 4px;transition:all .15s}.admin-filter-tab:hover{background:#ffffff0f;color:#fff}.admin-filter-tab.active{background:#f5c51833;border-color:#f5c51866;color:#f5c518}.admin-races-count{color:#ffffff40;font-size:11px;text-align:right}.admin-sidebar-races{flex:1 1;overflow-y:auto;padding:8px 12px}.admin-race-badge--house{background:#3c3b6e66;color:#8b89d4}.admin-race-badge--senate{background:#b2223466;color:#e08090}.admin-race-badge--governor{background:#00a86b4d;color:#4dd4a0}.admin-refresh-btn{background:#ffffff0f;border:1px solid #ffffff1a;border-radius:8px;color:#fff6;cursor:pointer;font-size:12px;margin-bottom:8px;padding:8px;transition:all .2s;width:100%}.admin-refresh-btn:hover{background:#ffffff1a;color:#fff}.admin-menu-btn{border:none;border-radius:6px;color:#0f1225;font-size:22px}.admin-menu-btn,.admin-sidebar-close{background:none;cursor:pointer;display:none;padding:4px 8px}.admin-sidebar-close{border:none;color:#ffffff80;font-size:18px;margin-left:auto}.admin-sidebar-overlay{background:#00000080;display:none;inset:0;position:fixed;z-index:99}.admin-photo-row{align-items:flex-start;display:flex;gap:16px}@media (max-width:768px){.admin-menu-btn,.admin-sidebar-close,.admin-sidebar-overlay{display:block}.admin-sidebar{height:100vh;left:-280px;position:fixed;top:0;transition:left .3s ease;z-index:100}.admin-sidebar--open{left:0}.admin-fields-row{grid-template-columns:1fr}.admin-topbar{padding:12px 16px}.admin-topbar-title{font-size:16px}.admin-topbar-sub{font-size:11px}.admin-candidates-grid{padding:12px 16px}.admin-candidate-header{gap:12px;padding:14px 16px}.admin-candidate-body{padding:0 16px 20px}.admin-save-bar{border-radius:12px;bottom:16px;left:16px;right:16px;transform:none;width:auto}.admin-unsaved{display:none}.admin-photo-row{flex-direction:column}}.admin-upload-btn{background:#3c3b6e;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:13px;font-weight:600;margin-right:8px;padding:9px 18px;transition:opacity .2s}.admin-upload-btn:hover:not(:disabled){opacity:.85}.admin-upload-btn:disabled{cursor:not-allowed;opacity:.5}.admin-remove-photo-btn{background:#fdecea;border:1px solid #f5c6cb;border-radius:8px;color:#c62828;cursor:pointer;font-size:13px;font-weight:600;padding:9px 14px}.admin-remove-photo-btn:hover{opacity:.8}.admin-delete-btn{background:#c6282814;border:1px solid #c6282840;border-radius:6px;color:#c62828;cursor:pointer;flex-shrink:0;font-size:14px;padding:5px 9px;transition:all .2s}.admin-delete-btn:hover{background:#c628282e}.admin-delete-btn:disabled{cursor:not-allowed;opacity:.5}.admin-delete-full-btn{background:#c62828;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:14px;font-weight:600;padding:10px 20px;transition:background .2s}.admin-delete-full-btn:hover{background:#b71c1c}.admin-danger-zone{background:#c6282808;border:1px solid #c6282833;border-radius:8px;padding:16px}.admin-delete-overlay{align-items:center;background:#0009;display:flex;inset:0;justify-content:center;padding:20px;position:fixed;z-index:9999}.admin-delete-modal{background:#fff;border-radius:16px;box-shadow:0 20px 60px #0000004d;max-width:400px;padding:32px;text-align:center;width:100%}.admin-delete-icon{font-size:48px;margin-bottom:16px}.admin-delete-modal h3{color:#1a1a2e;font-size:20px;font-weight:700;margin-bottom:12px}.admin-delete-modal p{color:#555;font-size:14px;line-height:1.5;margin-bottom:8px}.admin-delete-warning{color:#c62828!important;font-size:12px!important;font-weight:600;margin-bottom:24px!important}.admin-delete-actions{display:flex;gap:12px;justify-content:center}.admin-delete-cancel{background:#f5f5f5;border:1px solid #ddd;border-radius:8px;color:#333;cursor:pointer;font-size:14px;font-weight:600;padding:10px 24px;transition:background .2s}.admin-delete-cancel:hover{background:#eee}.admin-delete-confirm{background:#c62828;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:14px;font-weight:600;padding:10px 24px;transition:background .2s}.admin-delete-confirm:hover{background:#b71c1c}.admin-filter-tabs{-webkit-overflow-scrolling:touch!important;display:flex!important;overflow-x:scroll!important;overflow-y:hidden!important;padding:4px 0 8px!important;scrollbar-width:thin!important}.admin-filter-tab{flex-shrink:0!important;flex:0 0 auto!important}.admin-filter-tabs::-webkit-scrollbar{display:block!important;height:6px!important}.admin-filter-tabs::-webkit-scrollbar-thumb{background:#ffffff80!important;border-radius:4px!important}.admin-filter-tabs::-webkit-scrollbar-track{background:#ffffff0d!important}.admin-filter-tab{font-size:12px!important;padding:8px 6px!important}.admin-filter-tabs{grid-gap:6px!important;box-sizing:border-box!important;display:grid!important;flex-wrap:nowrap!important;gap:6px!important;grid-template-columns:repeat(4,1fr)!important;overflow:visible!important;padding:4px 0!important;width:100%!important}.admin-filter-tab{flex-shrink:1!important;font-size:11px!important;font-weight:600!important;min-width:0!important;overflow:hidden!important;padding:8px 4px!important;text-align:center!important;text-overflow:ellipsis!important;white-space:nowrap!important}.candidate-page{background:#f0f2f5;font-family:Source Sans\ 3,Segoe UI,sans-serif;min-height:100vh}.candidate-page-header{padding:20px 24px 36px;position:relative}.candidate-page-back{background:#fff3;border:none;border-radius:20px;color:#fff;cursor:pointer;display:inline-block;font-size:14px;font-weight:600;margin-bottom:24px;padding:8px 16px;transition:background .2s}.candidate-page-back:hover{background:#ffffff59}.candidate-page-hero{align-items:center;display:flex;gap:24px;margin:0 auto;max-width:800px}.candidate-page-photo{align-items:center;background:#fff3;border:3px solid #fff6;border-radius:50%;color:#fff;display:flex;flex-shrink:0;font-family:Playfair Display,serif;font-size:32px;font-weight:700;height:100px;justify-content:center;overflow:hidden;width:100px}.candidate-page-eyebrow{color:#fff9;font-size:11px;letter-spacing:1.5px;margin:0 0 8px;text-transform:uppercase}.candidate-page-name{color:#fff;font-family:Playfair Display,serif;font-size:clamp(24px,4vw,36px);line-height:1.2;margin:0 0 6px}.candidate-page-party{color:#ffffffbf;font-size:13px;font-weight:600;letter-spacing:.5px;margin:0 0 4px;text-transform:uppercase}.candidate-page-role{color:#ffffffd9;font-size:14px;margin:0 0 4px}.candidate-page-race{color:#fff9;font-size:13px;margin:0}.candidate-page-links{background:#fff;border-bottom:1px solid #e8eaed;display:flex;flex-wrap:wrap;gap:10px;max-width:100%;padding:20px 24px}.candidate-page-link{align-items:center;border:1.5px solid #0000;border-radius:20px;display:inline-flex;font-size:13px;font-weight:600;gap:6px;padding:9px 18px;text-decoration:none;transition:opacity .15s}.candidate-page-link:hover{opacity:.8}.candidate-page-link--website{background:#3c3b6e1a;border-color:#3c3b6e33;color:#3c3b6e}.candidate-page-link--ballotpedia{background:#0064b41a;border-color:#0064b433;color:#0064b4}.candidate-page-link--opensecrets{background:#00640014;border-color:#00640033;color:#006400}.candidate-page-link--youtube{background:#ff000012;border-color:#f003;color:#c00}.candidate-page-body{margin:0 auto;max-width:800px;padding:32px 24px}.candidate-page-section-title{font-family:Playfair Display,serif;font-size:24px;margin:0 0 20px}.candidate-page-cats{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:24px}.candidate-page-cat{background:#f4f4f6;border:1.5px solid #e8eaed;border-radius:20px;color:#666;cursor:pointer;font-size:13px;font-weight:600;padding:7px 16px;transition:all .15s}.candidate-page-cat:hover{background:#e8eaed}.candidate-page-cat.active{background:#3c3b6e;background:var(--cat-color,#3c3b6e);border-color:#0000;color:#fff}.candidate-page-positions{display:flex;flex-direction:column;gap:0}.candidate-page-position{border-bottom:1px solid #e8eaed;padding:18px 0}.candidate-page-position:last-child{border-bottom:none}.candidate-page-position-label{font-size:12px;font-weight:800;letter-spacing:1px;margin-bottom:8px;text-transform:uppercase}.candidate-page-position-text{color:#333;font-size:15px;line-height:1.7}.candidate-page-no-positions{color:#888;font-size:15px;padding:60px 20px;text-align:center}.candidate-page-footer{border-top:1px solid #e8eaed;color:#aaa;font-size:12px;margin-top:20px;padding:24px;text-align:center}@media (max-width:600px){.candidate-page-hero{flex-direction:column;text-align:center}.candidate-page-photo{font-size:24px;height:80px;width:80px}.candidate-page-links{gap:8px;padding:16px}.candidate-page-body{padding:20px 16px}}.legal-page{background:#f8f8f8;font-family:Source Sans\ 3,system-ui,sans-serif;min-height:100vh}.legal-header{background:linear-gradient(135deg,#1a1a4e,#3c3b6e 50%,#b22234);color:#fff;padding:32px 24px}.legal-header-inner{margin:0 auto;max-width:900px}.legal-back-btn{background:#ffffff26;border:1px solid #ffffff4d;border-radius:8px;color:#fff;cursor:pointer;font-size:13px;font-weight:600;padding:8px 16px;transition:background .2s}.legal-back-btn:hover{background:#ffffff40}.legal-title{color:#fff;font-family:Playfair Display,serif;font-size:clamp(28px,4vw,40px);font-weight:700;margin:20px 0 6px}.legal-subtitle{color:#ffffffb3;font-size:13px;font-style:italic;margin:0}.legal-body{margin:0 auto;max-width:900px;padding:40px 24px 80px}.legal-content{background:#fff;border-radius:12px;box-shadow:0 2px 16px #0000000f;padding:44px 48px}.legal-intro{border-bottom:1px solid #eee;color:#333;font-size:15px;line-height:1.7;margin-bottom:32px;padding-bottom:24px}.legal-intro--italic{color:#444;font-style:italic}.legal-section{margin-bottom:32px}.legal-section-heading{color:#1a1a4e;font-family:Playfair Display,serif;font-size:20px;font-weight:700;margin:24px 0 14px}.legal-section p{color:#333;font-size:15px;line-height:1.7;margin:0 0 14px}.legal-list{margin:10px 0 18px;padding-left:24px}.legal-list li{margin-bottom:10px}.legal-contact,.legal-list li{color:#333;font-size:15px;line-height:1.7}.legal-contact{background:#3c3b6e0a;border-left:3px solid #3c3b6e;border-radius:4px;font-style:normal;margin:14px 0;padding:16px 20px}.legal-contact a{color:#3c3b6e;font-weight:600;text-decoration:none}.legal-contact a:hover{text-decoration:underline}.legal-effective{border-top:1px solid #eee;color:#888;font-size:14px;font-style:italic;margin-top:40px;padding-top:24px;text-align:center}@media (max-width:700px){.legal-header{padding:24px 16px}.legal-body{padding:24px 16px 60px}.legal-content{padding:28px 20px}.legal-section-heading{font-size:18px}.legal-list li,.legal-section p{font-size:14px}}
/*# sourceMappingURL=main.56dae847.css.map*/