:root{color-scheme:light dark;--red:light-dark(#c41e14, #ff6b5e);--green:light-dark(#1a7a10, #7ede4e);--blue:light-dark(#1c41f4, #8aa3ff);--blue-bg:#1c41f4;--yellow:#f8de4c;--bg:light-dark(#f5f5f5, #16181d);--card:light-dark(#ffffff, #22252b);--text:light-dark(#222222, #e8eaed);--muted:light-dark(#666666, #a0a5ad);--on-yellow:#222222}html[data-theme=light]{color-scheme:light}html[data-theme=dark]{color-scheme:dark}*,::after,::before{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;background:var(--bg);color:var(--text);line-height:1.5;padding:1rem;max-width:900px;margin:0 auto}header{display:grid;grid-template-columns:1fr auto 1fr;align-items:start;gap:.5rem 1rem;margin-bottom:1.5rem}header h1{grid-column:2;font-size:1.8rem;color:var(--red);text-align:center;margin:0}.header-controls{grid-column:3;display:flex;align-items:center;gap:.75rem;justify-self:end}.theme-toggle{display:inline-flex;align-items:center;justify-content:center;padding:.35rem .6rem;border:2px solid var(--blue);border-radius:6px;background:var(--card);color:var(--text);cursor:pointer}.theme-toggle svg{width:18px;height:18px}html:not([data-theme=dark]) .theme-toggle .icon-sun,html[data-theme=dark] .theme-toggle .icon-moon{display:none}@media (prefers-color-scheme:dark){html:not([data-theme=light]):not([data-theme=dark]) .theme-toggle .icon-sun{display:inline-block}html:not([data-theme=light]):not([data-theme=dark]) .theme-toggle .icon-moon{display:none}}.theme-toggle:hover{background:var(--blue-bg);color:#fff}.state-selector{margin:0}.state-selector label{margin-right:.5rem;font-weight:600}.state-selector select{padding:.4rem .8rem;font-size:1rem;border:2px solid var(--blue);border-radius:6px;background:var(--card);color:var(--text);cursor:pointer}.state-selector select option{color:var(--text);background:var(--card)}.loading{color:var(--muted);font-style:italic;margin-bottom:1rem}.hidden{display:none!important}.theme-filter{margin-bottom:1rem;padding:.5rem 0;display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:.5rem}.theme-filter>span{font-weight:600;color:var(--text)}#theme-tags{display:flex;flex-wrap:wrap;justify-content:center;gap:.4rem}.theme-tag{display:inline-block;padding:.2rem .6rem;font-size:.85rem;background:var(--blue-bg);color:#fff;border-radius:12px;cursor:pointer;transition:opacity .2s}.theme-tag:hover{opacity:.85}.theme-tag.active{background:var(--yellow);color:var(--on-yellow)}#clear-filter{padding:.2rem .8rem;font-size:.85rem;border:2px solid var(--red);background:0 0;color:var(--red);border-radius:12px;cursor:pointer;font-weight:600}.cargo-group{margin-bottom:2rem}.cargo-group h2{font-size:1.3rem;padding-bottom:.3rem;margin-bottom:.8rem;border-bottom:3px solid;color:var(--cargo-clr);border-color:var(--cargo-clr)}.cargo-group[data-cargo=senador]{--cargo-clr:var(--green)}.cargo-group[data-cargo="deputado federal"]{--cargo-clr:var(--blue)}.cargo-group[data-cargo="deputado estadual"]{--cargo-clr:var(--red)}.cargo-grid{display:grid;grid-template-columns:repeat(auto-fill,160px);justify-content:center;gap:1rem}.candidate-card{background:var(--card);border-radius:10px;overflow:hidden;box-shadow:0 2px 6px rgba(0,0,0,.1);cursor:pointer;transition:transform .15s,box-shadow .15s;text-align:center}.candidate-card:hover{transform:translateY(-3px);box-shadow:0 4px 12px rgba(0,0,0,.15)}.candidate-card img{width:100%;aspect-ratio:1;object-fit:cover;display:block;background:#ddd}.candidate-card h3{font-size:.95rem;padding:.4rem .5rem .2rem}.card-themes{padding:0 .5rem .5rem;display:flex;flex-wrap:wrap;justify-content:center;gap:.3rem}.card-themes .theme-tag{font-size:.75rem;padding:.1rem .4rem}.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.6);display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.modal-content{background:var(--card);border-radius:12px;max-width:480px;width:100%;max-height:90vh;overflow-y:auto;position:relative;padding:1.5rem;border-top:4px solid var(--red)}.modal-close{position:absolute;top:.6rem;right:.6rem;width:2.2rem;height:2.2rem;font-size:1.4rem;line-height:1;background:var(--blue-bg);border:none;border-radius:50%;cursor:pointer;color:#fff;z-index:10;display:flex;align-items:center;justify-content:center;box-shadow:0 1px 4px rgba(0,0,0,.3)}.modal-body h2{font-size:1.3rem;margin-bottom:.3rem}.cargo-label{font-size:.9rem;color:var(--blue);font-weight:600;margin-bottom:.5rem}.info-line{font-size:.95rem;margin-bottom:.3rem}.modal-avatar{margin:-1.5rem -1.5rem 1rem;border-radius:12px 12px 0 0;overflow:hidden}.modal-avatar img{width:100%;height:auto;display:block}.modal-number-row{display:flex;align-items:center;gap:1rem;margin:.5rem 0}.modal-number{font-size:4rem;font-weight:800;line-height:1;color:var(--text);letter-spacing:-.03em}.modal-partido-logo{height:4rem;width:auto;max-width:100px;border-radius:6px}.modal-body .description{margin-top:.8rem;font-size:.95rem;line-height:1.6}.modal-themes{margin-top:.8rem;display:flex;flex-wrap:wrap;gap:.4rem}@media (max-width:480px){body{padding:.5rem}header{grid-template-columns:1fr;row-gap:.25rem}header h1{grid-column:1;font-size:1.4rem}.header-controls{grid-column:1;justify-self:center;flex-wrap:wrap;justify-content:center}.state-selector label{display:block;margin-bottom:.2rem}.cargo-grid{grid-template-columns:repeat(2,140px);gap:.6rem}.candidate-card h3{font-size:.85rem}.modal-content{padding:1rem}.modal-number{font-size:3rem}.modal-partido-logo{height:3rem}.modal-avatar{margin:-1rem -1rem .8rem}}