.candidate-hero-stats{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}.candidate-stat{min-width:130px;padding:15px 18px;border:1px solid rgba(255,255,255,.28);border-radius:12px;background:rgba(255,255,255,.08)}.candidate-stat strong{display:block;font-family:"Fraunces",serif;font-size:1.8rem;line-height:1}.candidate-stat span{display:block;margin-top:5px;font-size:.78rem;letter-spacing:.08em;text-transform:uppercase}.directory-layout{display:grid;grid-template-columns:minmax(220px,280px) minmax(0,1fr);gap:32px;align-items:start}.filter-panel{position:sticky;top:92px;padding:22px;border:1px solid var(--line,#d8d4c9);border-radius:16px;background:#fff}.filter-panel h2{font-size:1.4rem;margin:0 0 18px}.filter-field{display:block;margin-bottom:16px}.filter-field span{display:block;margin-bottom:7px;font-size:.76rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.filter-field input,.filter-field select{width:100%;min-height:46px;padding:10px 12px;border:1px solid #aaa59a;border-radius:8px;background:#fff;color:#161616;font:inherit}.filter-field input:focus,.filter-field select:focus{outline:3px solid rgba(211,92,44,.25);border-color:#9b3f1f}.filter-reset{width:100%;border:0;background:transparent;color:#743018;font:inherit;font-weight:700;text-decoration:underline;cursor:pointer}.results-head{display:flex;align-items:end;justify-content:space-between;gap:16px;margin-bottom:18px}.results-head h2{margin:0}.results-count{margin:0;color:#57534b}.candidate-list{display:grid;gap:14px}.candidate-card{padding:22px;border:1px solid var(--line,#d8d4c9);border-radius:14px;background:#fff;box-shadow:0 5px 18px rgba(29,25,20,.045)}.candidate-card-top{display:flex;justify-content:space-between;gap:18px;align-items:start}.candidate-card h3{margin:6px 0 8px;font-size:1.45rem}.candidate-office{margin:0;font-family:"DM Mono",monospace;font-size:.75rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:#823716}.party-chip,.election-chip{display:inline-block;padding:6px 9px;border-radius:999px;background:#f2eee5;font-size:.74rem;font-weight:800}.election-chip{background:#e8f0eb;color:#26523a}.party-chip{flex:0 0 auto}.candidate-meta{display:flex;flex-wrap:wrap;gap:8px 18px;margin:14px 0 0;padding:0;list-style:none;color:#4d4941;font-size:.92rem}.candidate-links{display:flex;flex-wrap:wrap;gap:10px 18px;margin-top:17px;padding-top:15px;border-top:1px solid #ebe7df}.candidate-links a{font-weight:700}.candidate-note{font-size:.84rem;color:#625d54}.load-more{display:block;margin:24px auto 0}.empty-state{padding:44px 24px;border:1px dashed #aaa59a;border-radius:14px;text-align:center}.source-strip{display:flex;justify-content:space-between;gap:22px;align-items:center}.source-strip p{margin:0}.source-strip a{flex:0 0 auto}.js-only{display:none}.js .js-only{display:block}.js .no-js-only{display:none}@media(max-width:820px){.directory-layout{grid-template-columns:1fr}.filter-panel{position:static}.filter-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}.results-head{align-items:start;flex-direction:column}.source-strip{align-items:flex-start;flex-direction:column}}@media(max-width:540px){.filter-grid{grid-template-columns:1fr}.candidate-card-top{display:block}.party-chip{display:inline-block;margin-top:12px}.candidate-hero-stats{display:grid;grid-template-columns:1fr 1fr}.candidate-stat{min-width:0}.candidate-links{align-items:flex-start;flex-direction:column}}
