:root{
  --paper:#f5f2ea; --card:#fffdf8; --ink:#17262c; --soft:#52636b; --line:#ddd6c6;
  --brand:#0f4c4a; --brand-2:#17635f; --accent:#b4501a; --warn-bg:#fff1d6; --warn-ink:#6b4300;
  --c-pedidos:#2f6fb3; --c-perguntas:#c98a12; --c-homenagens:#b0477f; --c-leis:#2e8b57; --c-outros:#8a8f94;
  --radius:14px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.5 system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif}
h1,h2,h3{font-family:Georgia,"Times New Roman",serif;line-height:1.15;margin:0;text-wrap:balance}
h1{font-size:clamp(1.8rem,4.5vw,2.7rem)}
h2{font-size:clamp(1.35rem,3vw,1.8rem);margin-top:2.6rem}
a{color:var(--brand-2)}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
.wrap{max-width:1180px;margin:0 auto;padding:0 16px}
.skip{position:absolute;left:-999px}
.skip:focus{left:8px;top:8px;background:#fff;padding:8px 12px;z-index:9}
main{padding-top:28px;padding-bottom:56px;outline:none;min-height:60vh}

.top{background:var(--brand);color:#fff}
.top-in{display:flex;flex-wrap:wrap;gap:10px 24px;align-items:center;justify-content:space-between;padding-top:14px;padding-bottom:14px}
.brand{display:flex;gap:12px;align-items:center;color:#fff;text-decoration:none}
.brand strong{display:block;font:700 1.25rem Georgia,serif}
.brand small{display:block;opacity:.85;font-size:.8rem}
.brand-mark{flex:none;width:34px;height:34px;border-radius:50%;border:2px solid #fff;background:
  radial-gradient(circle,#fff 0 3px,transparent 4px),
  radial-gradient(circle,transparent 0 8px,rgba(255,255,255,.7) 8px 9px,transparent 10px)}
.nav{display:flex;flex-wrap:wrap;gap:4px}
.nav a{color:#fff;text-decoration:none;padding:8px 12px;border-radius:999px;font-size:.92rem}
.nav a:hover,.nav a[aria-current="page"]{background:rgba(255,255,255,.16)}
.notice{background:var(--warn-bg);color:var(--warn-ink);font-size:.9rem;padding:9px 0;border-bottom:1px solid #ecd9a8}

.lede{max-width:68ch;color:var(--soft);margin:.7rem 0 0}
.chain{display:flex;flex-wrap:wrap;gap:6px 8px;align-items:center;list-style:none;padding:0;margin:1rem 0 0;font-size:.85rem}
.chain li{background:var(--card);border:1px solid var(--line);border-radius:999px;padding:4px 12px}

.filters{display:grid;grid-template-columns:2fr 1fr 1.4fr;gap:10px;margin:1rem 0 .4rem}
.field{display:flex;flex-direction:column;gap:4px;font-size:.8rem;color:var(--soft);font-weight:600}
input[type=search],select{font:inherit;color:var(--ink);background:#fff;border:1px solid #bfb8a6;border-radius:10px;padding:11px 12px;width:100%;min-height:46px}
.count{font-size:.88rem;color:var(--soft);margin:.4rem 0 .7rem}

details.how{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:10px 14px;margin:.6rem 0;font-size:.92rem}
details.how summary{cursor:pointer;font-weight:600}
details.how ul{margin:.6rem 0 .2rem;padding-left:1.1rem}
details.how li{margin:.3rem 0}

.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:16px;display:flex;flex-direction:column;gap:12px}
.who{display:flex;gap:12px;align-items:center}
.photo{flex:none;width:72px;height:72px;border-radius:50%;object-fit:cover;background:#e6e0d2;border:2px solid #fff;box-shadow:0 0 0 1px var(--line)}
.photo.big{width:120px;height:120px}
.initials{display:grid;place-items:center;font:700 1.4rem Georgia,serif;color:var(--brand)}
.who h3{font-size:1.2rem}
.full{font-size:.82rem;color:var(--soft);margin:2px 0 6px}
.chips{display:flex;flex-wrap:wrap;gap:6px}
.chip{font-size:.74rem;font-weight:700;border-radius:999px;padding:2px 9px;background:#e4efee;color:var(--brand)}
.chip.plain{background:#eee9dc;color:var(--soft)}
.chip.wait{background:var(--warn-bg);color:var(--warn-ink)}

.label{font-size:.74rem;text-transform:uppercase;letter-spacing:.05em;color:var(--soft);font-weight:700;margin:0 0 5px}
.bar{display:flex;height:12px;border-radius:999px;overflow:hidden;background:#e9e3d5}
.bar span{display:block;height:100%}
.legend{display:flex;flex-wrap:wrap;gap:3px 12px;list-style:none;padding:0;margin:7px 0 0;font-size:.8rem}
.legend li{display:flex;align-items:center;gap:5px}
.dot{width:9px;height:9px;border-radius:50%;flex:none}
.k-pedidos{background:var(--c-pedidos)}.k-perguntas{background:var(--c-perguntas)}.k-homenagens{background:var(--c-homenagens)}.k-leis{background:var(--c-leis)}.k-outros{background:var(--c-outros)}

.nums{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.num{background:#f3efe4;border-radius:10px;padding:9px 10px}
.num b{display:block;font:700 1.55rem Georgia,serif;line-height:1.1}
.num span{font-size:.78rem;color:var(--soft);display:block;line-height:1.25}
.votes{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;text-align:center}
.votes div{border:1px solid var(--line);border-radius:10px;padding:6px 2px}
.votes b{display:block;font-size:1.05rem}
.votes span{font-size:.7rem;color:var(--soft)}
.hint{font-size:.78rem;color:var(--soft);margin:6px 0 0}
.presence{font-size:.85rem;display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:auto}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:9px 14px;border-radius:10px;font:600 .9rem system-ui,sans-serif;text-decoration:none;border:1px solid var(--brand);cursor:pointer;flex:1 1 auto;text-align:center}
.btn.primary{background:var(--brand);color:#fff}
.btn.ghost{background:transparent;color:var(--brand)}
.btn.small{flex:none;min-height:40px}

.cats{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;margin:1rem 0}
.cat{background:var(--card);border:1px solid var(--line);border-left-width:6px;border-radius:10px;padding:10px 12px}
.cat b{font:700 1.5rem Georgia,serif;display:block}
.cat span{font-size:.85rem}
.cat.k-pedidos{border-left-color:var(--c-pedidos);background:var(--card)}
.cat.k-perguntas{border-left-color:var(--c-perguntas);background:var(--card)}
.cat.k-homenagens{border-left-color:var(--c-homenagens);background:var(--card)}
.cat.k-leis{border-left-color:var(--c-leis);background:var(--card)}
.cat.k-outros{border-left-color:var(--c-outros);background:var(--card)}

.list{list-style:none;padding:0;margin:1rem 0;display:grid;gap:10px}
.item{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:12px 14px}
.item h4{margin:0 0 4px;font-size:1rem}
.item p{margin:6px 0;font-size:.92rem;overflow-wrap:anywhere}
.meta{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center;font-size:.8rem;color:var(--soft)}
.more{display:flex;justify-content:center;margin:1rem 0}

.back{display:inline-block;margin-bottom:14px;font-size:.92rem}
.hero{display:flex;gap:18px;align-items:center;flex-wrap:wrap}
.tabs{display:flex;gap:4px;overflow-x:auto;border-bottom:2px solid var(--line);margin:22px 0 18px;padding-bottom:0;scrollbar-width:thin}
.tabs button{flex:none;font:600 .9rem system-ui,sans-serif;background:none;border:0;border-bottom:3px solid transparent;margin-bottom:-2px;padding:11px 12px;color:var(--soft);cursor:pointer;min-height:44px}
.tabs button[aria-selected="true"]{color:var(--brand);border-bottom-color:var(--brand)}
.panel{max-width:860px}
.panel p{overflow-wrap:anywhere}
table{border-collapse:collapse;width:100%;font-size:.92rem;background:var(--card)}
th,td{text-align:left;padding:9px 10px;border-bottom:1px solid var(--line);vertical-align:top}
th{font-size:.76rem;text-transform:uppercase;letter-spacing:.04em;color:var(--soft)}
.tablewrap{overflow-x:auto;border:1px solid var(--line);border-radius:12px}
.box{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:14px 16px;margin:12px 0}
.box.warn{background:var(--warn-bg);border-color:#ecd9a8;color:var(--warn-ink)}
.pills{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0}
.pills button{font:600 .85rem system-ui,sans-serif;border:1px solid var(--line);background:var(--card);border-radius:999px;padding:8px 14px;cursor:pointer;min-height:40px;color:var(--ink)}
.pills button[aria-pressed="true"]{background:var(--brand);color:#fff;border-color:var(--brand)}
.empty,.loading,.error{padding:24px 0;color:var(--soft)}
.error{color:#8a1c1c}
.foot{border-top:1px solid var(--line);padding:22px 0 34px;font-size:.85rem;color:var(--soft)}
.foot p{margin:.3rem 0}

@media (max-width:720px){
  .filters{grid-template-columns:1fr 1fr;gap:8px;margin-top:.7rem}
  .filters .field:first-child{grid-column:1/-1}
  .top-in{padding-top:10px;padding-bottom:8px;gap:6px}
  .notice{font-size:.8rem;padding:6px 0}
  main{padding-top:16px}
  .lede{font-size:.92rem;margin-top:.4rem}
  .nav a{padding:8px 10px}
  .brand small{display:none}
  .photo.big{width:92px;height:92px}
}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

.eyebrow{font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;color:var(--accent);font-weight:700;margin:0 0 .5rem}
.filters.one{grid-template-columns:1fr;max-width:640px}
button.cat{font:inherit;color:inherit;text-align:left;cursor:pointer;min-height:44px}
button.cat span{display:block}
button.cat:hover{box-shadow:0 0 0 2px var(--line)}

.summary{background:var(--brand);color:#fff;border-radius:var(--radius);padding:18px;margin:14px 0}
.summary a{color:#fff}
.summary .label{color:rgba(255,255,255,.8)}
.summary .hint{color:rgba(255,255,255,.78)}
.summary-total b{font:700 clamp(2rem,6vw,3rem) Georgia,serif;display:block;line-height:1}
.summary-total span{font-size:.9rem;opacity:.9}
.summary-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:18px;margin-top:16px;padding-top:14px;border-top:1px solid rgba(255,255,255,.25)}
.rank{list-style:none;padding:0;margin:0;display:grid;gap:8px;font-size:.92rem}
.rank li{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.rank li b{margin-left:auto}
.bar.thin{height:5px;flex-basis:100%;background:rgba(255,255,255,.2)}
.bar.thin span{background:#fff}
.bar.tall{height:22px;margin:14px 0}
.sub{margin:22px 0 0;font-size:1.2rem}
.section{margin-top:2.6rem}
.section h2{margin-top:0}
.cat p{font-size:.85rem;color:var(--soft);margin:6px 0 10px}
.cat .cat-name{font-weight:700}
.cats{grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}
.cards2{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px;margin:14px 0}
.cards2 .box{margin:0}
.cards2 h3{font-size:1.1rem;margin-bottom:6px}
.legend.rules{display:grid;gap:6px;margin:12px 0}
.official{margin:14px 0 0}
.official iframe{width:100%;height:70vh;border:1px solid var(--line);border-radius:12px;background:#fff;margin-top:10px}

.eyebrow+h2{margin-top:0}
.box+.eyebrow{margin-top:2.2rem}

.visits{display:flex;gap:10px;align-items:center;margin:14px 0 0;font-size:.88rem}
.visits b{display:block}
.visits span{color:var(--soft)}
.visits-dot{flex:none;width:12px;height:12px;border-radius:50%;border:3px solid var(--brand);background:var(--card)}

/* ===== visual limpo (14/11/2026) ===== */
:root{--paper:#ffffff;--card:#ffffff;--ink:#0f1720;--soft:#5d6875;--line:#e4e7ec;--brand:#0b5d57;--brand-2:#0b5d57;--accent:#0b5d57;--warn-bg:#fff7e6;--warn-ink:#6b4300;--radius:18px}
h1,h2,h3{font-family:system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;font-weight:800;letter-spacing:-.02em}
h1{font-size:clamp(1.9rem,4.6vw,2.9rem)}
.top{background:#fff;color:var(--ink);border-bottom:1px solid var(--line)}
.brand,.nav a{color:var(--ink)}
.brand strong{font:800 1.15rem system-ui,sans-serif;letter-spacing:-.01em}
.brand-mark{border-color:var(--brand);background:radial-gradient(circle,var(--brand) 0 3px,transparent 4px),radial-gradient(circle,transparent 0 8px,var(--brand) 8px 9px,transparent 10px)}
.nav a{color:var(--soft);font-weight:600}
.nav a:hover{background:#f1f3f5}
.nav a[aria-current="page"]{background:var(--ink);color:#fff}
.notice{background:#fff;border-bottom:1px solid var(--line);color:var(--soft);font-size:.82rem}
.notice strong{color:var(--warn-ink)}
.eyebrow{color:var(--soft)}
.lede{color:var(--soft)}
.card,.item,.box,details.how,.cat{border-color:var(--line)}
.card{border-radius:18px;padding:18px}
.num{background:#f6f7f9}
.num b,.cat b{font-family:system-ui,sans-serif;font-weight:800;letter-spacing:-.02em}
.chip{background:#eef6f5}
.chip.plain{background:#f1f3f5;color:var(--soft)}
.box.warn{border-color:#f1dfb5}
.btn{border-radius:12px}
input[type=search],select{border-color:#cfd5dc;border-radius:12px}
.pills button{border-color:var(--line)}
.pills button[aria-pressed="true"]{background:var(--ink);border-color:var(--ink)}

.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.searchbox{position:relative;display:block;margin:1rem 0 .7rem}
.searchbox input{border:2px solid var(--ink);border-radius:16px;padding:16px 16px 16px 52px;font-size:1.05rem;min-height:58px}
.lupa{position:absolute;left:20px;top:50%;width:15px;height:15px;margin-top:-10px;border:2px solid var(--soft);border-radius:50%}
.lupa::after{content:"";position:absolute;left:11px;top:12px;width:7px;height:2px;background:var(--soft);transform:rotate(45deg)}

.chips-row{display:flex;gap:8px;overflow-x:auto;padding:4px 0 8px;scrollbar-width:thin}
.chips-row.wrap{flex-wrap:wrap;overflow:visible}
.chips-row button{flex:none;font:600 .9rem system-ui,sans-serif;background:#fff;color:var(--ink);border:1px solid var(--line);border-radius:999px;padding:9px 16px;min-height:42px;cursor:pointer}
.chips-row button:hover{border-color:var(--ink)}
.chips-row button[aria-pressed="true"]{background:var(--ink);color:#fff;border-color:var(--ink)}

.summary{background:#fff;color:var(--ink);border:1px solid var(--line);border-radius:22px;padding:22px}
.summary a{color:var(--ink);font-weight:700;text-decoration:none}
.summary a:hover{text-decoration:underline}
.summary .label{color:var(--soft)}
.summary .hint{color:var(--soft)}
.summary .hint a{font-weight:400;text-decoration:underline;color:var(--brand)}
.summary-total{display:flex;align-items:flex-end;gap:14px;flex-wrap:wrap}
.summary-total b{font:800 clamp(2.8rem,9vw,4.4rem)/.9 system-ui,sans-serif;letter-spacing:-.04em;color:var(--brand)}
.summary-total span{font-size:1rem;opacity:1;max-width:22ch;line-height:1.3}
.summary-total span b{font:700 1rem system-ui,sans-serif;letter-spacing:0;color:var(--ink);display:inline}
.summary-total small{display:block;color:var(--soft);font-size:.78rem;margin-top:2px}
.summary-cols{border-top:0;padding-top:6px;gap:28px;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}
.rank{gap:12px}
.rank li{gap:8px}
.rank .photo{width:34px;height:34px;border-width:0;box-shadow:none;font-size:.8rem}
.rank .party{color:var(--soft);font-size:.88rem}
.rank li b{font-size:1.05rem}
.bar.thin{height:6px;background:#eef0f3}
.bar.thin span{background:var(--brand)}
.visits-dot{background:#fff}

.foot-goal{font-size:1rem;color:var(--ink);max-width:60ch;margin-bottom:.8rem}

.subsidy{background:var(--ink);color:#fff;border-radius:22px;padding:22px;margin:18px 0}
.subsidy .label{color:rgba(255,255,255,.75)}
.subsidy-total{font:800 clamp(2.2rem,7.5vw,3.8rem)/1 system-ui,sans-serif;letter-spacing:-.03em;margin:4px 0 8px;font-variant-numeric:tabular-nums}
.subsidy-note{margin:0 0 12px;color:rgba(255,255,255,.88);max-width:70ch;font-size:.95rem}
.subsidy details.how{background:#fff;color:var(--ink);margin:0}
.subsidy details.how p{font-size:.9rem}

.visits .visits-n{display:inline;color:var(--ink);font-size:1.05rem}

.chip.role{background:var(--ink);color:#fff}
.board{margin-top:2rem;border:1px solid var(--line);border-radius:18px;padding:18px}
.board h3,.board h2,.board h1{font-size:1.25rem;margin:0 0 10px}
.board-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}
.board-year ul{list-style:none;padding:0;margin:0;display:grid;gap:6px}
.board-year li span{display:inline-block;min-width:8.5em;color:var(--soft);font-size:.88rem}
.board-year li.is-president{font-weight:700}

.chip.theme{background:#e8f0fe;color:#1d4fa3}
.rec-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:14px;margin:14px 0}
.rec{border:1px solid var(--line);border-radius:18px;padding:18px;display:flex;flex-direction:column;gap:10px;background:#fff}
.rec:hover{border-color:var(--ink)}
.rec-top{display:flex;gap:14px;align-items:flex-start}
.rec-n{text-align:center;flex:none;min-width:58px}
.rec-n b{display:block;font:800 2.5rem/1 system-ui,sans-serif;letter-spacing:-.04em;color:#d92d20}
.rec-n span{font-size:.68rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--soft)}
.rec h3{font-size:1.1rem;line-height:1.2}
.rec .meta{margin:0}
.rec-go{font-weight:700;color:#d92d20;text-decoration:none;margin-top:auto}
.rec-go:hover{text-decoration:underline}
.btn.dark{background:var(--ink);color:#fff;border-color:var(--ink);width:100%;min-height:52px;font-size:1rem}
.sub.label{font-size:.78rem;margin-top:22px}
.rank .chip.theme{font-size:.85rem}

.rec-problem{margin:0;font-weight:700;font-size:.98rem}
.rec-problem.big{font-size:1.2rem;color:#d92d20;margin:.3rem 0}
.chip.ok{background:#e3f6ea;color:#17663a}

.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:14px 0 8px}
.stat{font:inherit;text-align:left;background:#f6f7f9;border:1px solid transparent;border-radius:16px;padding:16px;cursor:pointer;color:var(--ink);min-height:44px}
.stat:hover{border-color:var(--ink)}
.stat b{display:block;font:800 clamp(1.8rem,5vw,2.6rem)/1 system-ui,sans-serif;letter-spacing:-.03em}
.stat span{display:block;color:var(--soft);font-size:.9rem;margin-top:6px}
.stat small{display:block;margin-top:8px;font-size:.78rem;text-decoration:underline;color:var(--brand)}
.stat.k-total{background:#f6f7f9}
.stat.k-pedidos{background:#f6f7f9}.stat.k-pedidos b{color:var(--c-pedidos)}
.stat.k-homenagens{background:#f6f7f9}.stat.k-homenagens b{color:var(--c-homenagens)}
.stat.k-leis{background:#f6f7f9}.stat.k-leis b{color:var(--c-leis)}
.lastcheck{font-size:.85rem;color:var(--soft);margin:10px 0 0}
@media (max-width:720px){.stats{grid-template-columns:1fr 1fr}}

.top-in{flex-wrap:wrap}
.nav{margin-right:auto}
.visits-top{display:inline-flex;align-items:center;gap:7px;text-decoration:none;color:var(--ink);font-size:.9rem;border:1px solid var(--line);border-radius:999px;padding:7px 14px;min-height:40px;white-space:nowrap}
.visits-top b{font-size:1.05rem;font-variant-numeric:tabular-nums}
.visits-top span{color:var(--soft)}
.visits-top:hover{border-color:var(--ink)}
@media (max-width:720px){.visits-top{order:2;margin-left:auto;padding:5px 11px;min-height:36px}.brand{order:1}.nav{order:3;flex-basis:100%}}

/* cartões do Raio-X com mais vida */
.stat{position:relative;border:0;border-radius:18px;padding:18px 18px 16px;color:#fff;box-shadow:0 6px 16px rgba(15,23,32,.12);transition:transform .15s ease,box-shadow .15s ease;overflow:hidden}
.stat::after{content:"→";position:absolute;right:16px;top:14px;font-size:1.3rem;font-weight:700;opacity:.85;transition:transform .15s ease}
.stat:hover,.stat:focus-visible{transform:translateY(-3px);box-shadow:0 12px 24px rgba(15,23,32,.2);border:0}
.stat:hover::after{transform:translateX(4px)}
.stat b,.stat.k-pedidos b,.stat.k-homenagens b,.stat.k-leis b{color:#fff;font-size:clamp(2.1rem,5.5vw,3rem)}
.stat span{color:#fff;font-weight:600;font-size:.95rem}
.stat small{color:#fff;opacity:.9;font-weight:600}
.stat.k-total{background:#0f1720}
.stat.k-pedidos{background:#1d5fbf}
.stat.k-homenagens{background:#a8326f}
.stat.k-leis{background:#1c7a47}
@media (prefers-reduced-motion:reduce){.stat,.stat::after{transition:none}.stat:hover{transform:none}}

/* problemas que voltam: 4 por fileira em tela larga */
.rec-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
@media (max-width:980px){.rec-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.rec-grid{grid-template-columns:1fr}}

/* Faixa contínua da página inicial: os problemas caminham para a esquerda. */
.rec-carousel{overflow:hidden;margin:14px 0}
.rec-carousel .rec-track{display:flex;grid-template-columns:none;gap:14px;width:max-content;margin:0}
.rec-carousel .rec{flex:0 0 282px;width:282px}
.rec-copy{pointer-events:none}
@media (min-width:721px) and (prefers-reduced-motion:no-preference){
  .rec-carousel .rec-track{animation:rec-track-left 58s linear infinite}
  .rec-carousel:hover .rec-track,.rec-carousel:focus-within .rec-track{animation-play-state:paused}
  @keyframes rec-track-left{to{transform:translateX(calc(-50% - 7px))}}
}
@media (prefers-reduced-motion:reduce){.rec-carousel{overflow-x:auto}.rec-carousel .rec-track{animation:none}}

/* ===== celular (14/11/2026) ===== */
.card-toggle{display:none}
.card-more{display:flex;flex-direction:column;gap:12px}
.notice-short,.swipe-hint{display:none}
@media (max-width:720px){
  .wrap{padding:0 14px}
  /* cabeçalho em duas linhas: marca + visitantes, menu deslizante */
  .top{position:sticky;top:0;z-index:5}
  .top-in{padding-top:8px;padding-bottom:0;gap:4px 8px}
  .brand strong{font-size:1.05rem}
  .brand-mark{width:28px;height:28px}
  .nav{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin:0 -14px;padding:4px 14px 8px;gap:6px}
  .nav::-webkit-scrollbar{display:none}
  .nav a{flex:none;padding:8px 14px;border:1px solid var(--line);font-size:.88rem;min-height:38px;display:inline-flex;align-items:center}
  .nav a[aria-current="page"]{border-color:var(--ink)}
  .notice{padding:5px 0;font-size:.76rem}
  .notice-more{display:none}
  .notice-short{display:inline}
  main{padding-top:14px;padding-bottom:36px}
  h1{font-size:1.75rem}
  h2{font-size:1.4rem;margin-top:2rem}
  .section{margin-top:2rem}
  .eyebrow{font-size:.7rem;margin-bottom:.3rem}
  .lede{font-size:.95rem}
  /* subsídio e cartões do Raio-X */
  .subsidy{padding:16px;border-radius:18px;margin:14px 0}
  .subsidy-total{font-size:2rem}
  .subsidy-note{font-size:.88rem}
  .stats{gap:10px}
  .stat{padding:14px 14px 12px;border-radius:16px}
  .stat b,.stat.k-pedidos b,.stat.k-homenagens b,.stat.k-leis b{font-size:2rem}
  .stat span{font-size:.85rem;line-height:1.25}
  .stat small{display:block;margin-top:8px;font-size:.78rem}
  .stat::after{top:10px;right:12px;font-size:1.1rem}
  .lastcheck{font-size:.78rem}
  /* busca e filtros deslizantes */
  .searchbox input{padding:14px 14px 14px 46px;font-size:1rem;min-height:52px}
  .lupa{left:17px}
  .pills{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin:8px -14px;padding:2px 14px}
  .pills::-webkit-scrollbar{display:none}
  .pills button{flex:none}
  .chips-row{margin:0 -14px;padding:4px 14px 8px;scrollbar-width:none}
  .chips-row::-webkit-scrollbar{display:none}
  .chips-row.wrap{margin:0;padding:4px 0 8px}
  /* resumo do bairro */
  .summary{padding:16px;border-radius:18px}
  .summary-total b{font-size:2.8rem}
  .summary-cols{gap:18px}
  /* matérias */
  .item{padding:12px}
  .item h4{font-size:.98rem}
  .item p{font-size:.9rem}
  /* problemas que voltam: deslizar para o lado */
  .rec-grid.swipe{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:12px;margin:12px -14px;padding:2px 14px 10px;scrollbar-width:none}
  .rec-grid.swipe::-webkit-scrollbar{display:none}
  .rec-grid.swipe .rec{flex:0 0 82%;scroll-snap-align:center}
  .rec-carousel .rec-copy{display:none}
  .swipe-hint{display:block;margin-top:0}
  .rec{padding:14px}
  /* tipos de matéria: cada caixa mantém a explicação e a ação visíveis */
  .cats{grid-template-columns:1fr;gap:10px}
  .cat{padding:14px}
  .cat p{display:block;font-size:.9rem;line-height:1.45;margin:7px 0 12px}
  .cat b{font-size:1.5rem}
  .cat .btn{min-height:40px;padding:8px 12px;margin-top:0;width:100%}
  /* vereadores: no celular a ficha também vem completa, sem esconder os dados */
  .filters{grid-template-columns:1fr 1fr}
  .grid{gap:12px}
  .card{padding:14px;gap:10px}
  .photo{width:60px;height:60px}
  .who h3{font-size:1.1rem}
  .num{padding:8px 10px}
  .num b{font-size:1.4rem}
  .card-toggle{display:none}
  .card-more,.card.open .card-more{display:flex}
  .actions .btn{flex:1 1 45%;padding:9px 8px;font-size:.86rem}
  .board{padding:14px}
  .tabs{margin:16px -14px 14px;padding:0 14px}
  .hero{gap:12px}
  .foot{font-size:.8rem}
}

/* barra de bairros: uma no computador, duas no celular */
.chips-row.only-narrow{display:none}
@media (max-width:720px){
  .chips-row.only-wide{display:none}
  .chips-row.only-narrow{display:flex}
  .chips-row.only-narrow+.chips-row.only-narrow{padding-top:0}
}

@media (max-width:720px){
  .grid.full .card-more{display:flex}
  .grid.full .card-toggle{display:none}
}

/* bairros em rolagem sem fim */
.marquee{overflow:hidden;display:block}
.chips-row.only-narrow.marquee{display:none}
.marquee-track{display:flex;gap:8px;width:max-content;padding-right:8px;animation:marquee-left 150s linear infinite;will-change:transform}
.marquee-track.to-right{animation-name:marquee-right}
.only-narrow .marquee-track{animation-duration:60s}
.marquee:hover .marquee-track,.marquee:focus-within .marquee-track,.marquee.held .marquee-track{animation-play-state:paused}
@keyframes marquee-left{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@keyframes marquee-right{from{transform:translateX(-50%)}to{transform:translateX(0)}}
@media (max-width:720px){
  .chips-row.only-wide.marquee{display:none}
  .chips-row.only-narrow.marquee{display:block}
  /* no celular não existe "passar o mouse": só o toque segura a faixa */
  .marquee:hover .marquee-track{animation-play-state:running}
  .marquee.held .marquee-track{animation-play-state:paused}
}
/* Decisão do Douglas (14/11/2026): as faixas andam também em aparelhos com "reduzir movimento".
   Nesses aparelhos elas andam mais devagar. */
@media (prefers-reduced-motion:reduce){
  .marquee-track{animation-duration:220s}
  .only-narrow .marquee-track{animation-duration:110s}
}

/* filtro de tipos: "Todos" fixo e os demais rolando no celular */
.pills-split{display:flex;align-items:center;gap:6px}
.pills-split .pill-fixed{flex:none}
.pills-marquee{flex:1;min-width:0;overflow:visible}
.pills-marquee .marquee-track{animation:none;flex-wrap:wrap;width:auto;padding-right:0;gap:6px}
.pills-marquee .clone{display:none}
@media (max-width:720px){
  .pills.pills-split{overflow:hidden;flex-wrap:nowrap}
  .pills-split .pill-fixed{position:relative;z-index:1;box-shadow:6px 0 8px #fff}
  .pills-marquee{overflow:hidden}
  .pills-marquee .marquee-track{animation:marquee-left 28s linear infinite;flex-wrap:nowrap;width:max-content;padding-right:6px}
  .pills-marquee .clone{display:inline-block}
  .pills-marquee.held .marquee-track{animation-play-state:paused}
}
@media (prefers-reduced-motion:reduce) and (max-width:720px){
  .pills-marquee .marquee-track{animation-duration:45s}
}

/* correção: tocar num bairro deixava o foco no botão e a barra ficava parada para sempre.
   Agora só o foco de TECLADO segura a faixa; toque e clique não. */
.marquee:focus-within .marquee-track{animation-play-state:running}
@media (hover:hover) and (min-width:721px){.marquee:hover .marquee-track{animation-play-state:paused}}
.marquee:has(:focus-visible) .marquee-track{animation-play-state:paused}
.marquee.held .marquee-track{animation-play-state:paused}

.tagline{font-size:1.15rem;font-weight:700;margin:.5rem 0 0;color:var(--brand)}
@media (max-width:720px){.tagline{font-size:1.02rem}}

.stat b,.subsidy-total{font-variant-numeric:tabular-nums}

/* ===== tela travada: sem zoom e sem arrastar a página para o lado (decisão do Douglas, 14/11/2026) ===== */
html{overflow-x:hidden;overscroll-behavior-x:none;touch-action:pan-y;-webkit-text-size-adjust:100%}
body{overflow-x:clip;overscroll-behavior-x:none;touch-action:pan-y;max-width:100%}
/* áreas que continuam deslizando para o lado por dentro */
.nav,.tabs,.tablewrap,.rec-grid.swipe,.marquee,.pills{touch-action:pan-x pan-y}

/* ===== faixas: o movimento passou a ser por rolagem, para aceitar o dedo ===== */
.marquee,.pills-marquee{overflow-x:auto;overflow-y:hidden;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.marquee::-webkit-scrollbar{display:none}
.marquee .marquee-track,.pills-marquee .marquee-track{animation:none}
@media (min-width:721px){.pills-marquee{overflow:visible}}

/* abertura do portal */
html.welcome-open,body.welcome-open{overflow:hidden;overscroll-behavior:none}
body.welcome-open{position:fixed;inset:0;width:100%;height:100%;touch-action:none}
.welcome{position:fixed;z-index:100;inset:0;display:grid;place-items:center;padding:24px;background:rgba(15,37,42,.82)}
.welcome[hidden]{display:none}
.welcome-card{width:min(100%,720px);padding:clamp(32px,7vw,70px);background:#fffdf8;border-radius:26px;box-shadow:0 24px 70px rgba(0,0,0,.28)}
.welcome-eyebrow{margin:0;color:var(--brand-2);font-size:.76rem;font-weight:800;letter-spacing:.13em}
.welcome-card h1{font-size:clamp(2.4rem,6vw,4.1rem);margin:0 0 5px;color:var(--ink)}
.welcome-tagline{margin:0 0 18px;color:var(--ink);font-size:1.18rem;font-weight:800}
.welcome-subtitle{margin:0 0 28px;color:#36516d;font-weight:700;font-size:1.18rem}
.welcome-description{max-width:570px;margin:0;color:#4d6075;font-size:1.1rem}
.welcome-claim{margin:25px 0 30px;font-size:1.18rem;font-weight:800;color:var(--ink)}
.welcome-start{display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:12px;padding:15px 21px;background:var(--brand);color:#fff;font:800 1rem system-ui,-apple-system,"Segoe UI",sans-serif;text-decoration:none}
.welcome-start:hover{background:var(--brand-2)}
@media(max-width:540px){.welcome{padding:16px}.welcome-card{border-radius:20px;padding:32px 25px}.welcome-subtitle,.welcome-description,.welcome-claim{font-size:1rem}}

/* ===== boas-vindas: painel em espera por trás (14-15/11/2026) ===== */
.welcome{overflow-y:auto;overscroll-behavior:contain;touch-action:pan-y;transition:opacity .3s ease}
.welcome.closing{opacity:0;pointer-events:none}
button.welcome-start{cursor:pointer;min-width:200px}
button.welcome-start:disabled{opacity:.75;cursor:progress;background:var(--brand-2)}
button.welcome-start:disabled::after{content:"";width:14px;height:14px;margin-left:10px;border:2px solid #fff;border-top-color:transparent;border-radius:50%;animation:welcome-giro .8s linear infinite}
@keyframes welcome-giro{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.welcome{transition:none}button.welcome-start:disabled::after{animation-duration:2.4s}}

/* Navegação guardada em menu para manter o topo enxuto. */
.top .top-in{position:relative;flex-wrap:nowrap}
.top .brand{margin-right:auto;min-width:0}
.menu-toggle{display:inline-flex;align-items:center;gap:7px;min-height:40px;padding:8px 13px;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--ink);font:700 .9rem system-ui,-apple-system,"Segoe UI",sans-serif;cursor:pointer}
.menu-toggle:hover,.menu-toggle[aria-expanded="true"]{border-color:var(--ink);background:#f1f3f5}
.menu-toggle span:first-child{font-size:1.18rem;line-height:1}
.top .nav{display:none;position:absolute;z-index:25;top:calc(100% - 3px);right:0;min-width:250px;padding:8px;background:#fff;border:1px solid var(--line);border-radius:15px;box-shadow:0 16px 36px rgba(15,23,32,.18);flex-direction:column;gap:2px}
.top .nav.is-open{display:flex}
.top .nav a{width:100%;padding:10px 12px;border-radius:9px}
@media(max-width:720px){.top .top-in{padding-bottom:8px}.menu-toggle{min-height:36px;padding:6px 10px}.menu-toggle span:last-child{display:none}.top .nav{top:calc(100% - 2px);right:14px;min-width:min(260px,calc(100vw - 28px));margin:0;padding:8px}.top .nav a{border:0;font-size:.92rem;min-height:unset}.visits-top{margin-left:0}}
