  :root { color-scheme: light; --bg:#f6f5f2; --surface:#fcfcfb; --ink:#0b0b0b; --ink2:#52514e; --muted:#85847f; --grid:#e6e5e0; --line:#d6d5cf;
    --pt:#e34948; --anti:#2a78d6; --s1:#2a78d6; --s2:#eb6834; --s3:#1baf7a; --s4:#eda100; --s5:#e87ba4; --s7:#4a3aa7;
    --div-blue:#2a78d6; --div-mid:#f0efec; --div-red:#e34948; --serif:"Iowan Old Style","Palatino Linotype",Palatino,Charter,Georgia,"Times New Roman",serif; --link:#1d5fb0; }
  @media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) { color-scheme: dark; --bg:#121211; --surface:#1a1a19; --ink:#fff; --ink2:#c3c2b7; --muted:#8d8c84; --grid:#2c2c2a; --line:#3a3a37;
    --pt:#e66767; --anti:#3987e5; --s1:#3987e5; --s2:#d95926; --s3:#199e70; --s4:#c98500; --s5:#d55181; --s7:#9085e9;
    --div-blue:#3987e5; --div-mid:#383835; --div-red:#e66767; --link:#6aa6f0; } }
  :root[data-theme="dark"] { color-scheme: dark; --bg:#121211; --surface:#1a1a19; --ink:#fff; --ink2:#c3c2b7; --muted:#8d8c84; --grid:#2c2c2a; --line:#3a3a37;
    --pt:#e66767; --anti:#3987e5; --s1:#3987e5; --s2:#d95926; --s3:#199e70; --s4:#c98500; --s5:#d55181; --s7:#9085e9;
    --div-blue:#3987e5; --div-mid:#383835; --div-red:#e66767; --link:#6aa6f0; }
  * { box-sizing:border-box } body { margin:0; background:var(--bg); color:var(--ink); font:16px/1.6 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif; -webkit-text-size-adjust:100%; }
  main { max-width:1360px; margin:0 auto; padding:24px 16px 64px }
  .topo { display:flex; justify-content:space-between; align-items:flex-start; gap:12px }
  .tema { border:1px solid var(--line); background:var(--surface); color:var(--ink); border-radius:8px; padding:6px 10px; cursor:pointer; font:inherit; font-size:.82rem; white-space:nowrap }
  .sec { display:grid; grid-template-columns:minmax(0,1fr) 262px; gap:28px; align-items:start }
  .side { position:sticky; top:16px; margin-top:46px; font-size:.82rem; color:var(--ink2); border-left:3px solid var(--line); padding:2px 0 2px 12px }
  .side h4 { margin:0 0 8px; font-size:.68rem; letter-spacing:.09em; text-transform:uppercase; color:var(--muted) } .side ul { margin:0; padding:0; list-style:none } .side li { margin:0 0 9px; line-height:1.4 } .side li b { color:var(--ink) }
  @media (min-width:1201px) { .semnota { max-width:calc(100% - 290px) } }
  @media (max-width:1200px) { .sec { grid-template-columns:minmax(0,1fr); gap:0 } .side { position:static; margin:0 0 6px } }
  h1 { font:700 2rem/1.15 var(--serif); margin:0 0 6px; letter-spacing:-.015em } h2 { font:700 1.35rem/1.25 var(--serif); margin:40px 0 6px; letter-spacing:-.01em } h3 { font-size:.98rem; margin:0 0 2px }
  .sub { color:var(--ink2); margin:0 0 16px; font-size:1.05rem; line-height:1.5; max-width:70ch } .nota { color:var(--muted); font-size:.82rem; margin:6px 0 0 }
  .kpis { display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:10px; margin:16px 0 }
  .kpi { background:var(--surface); border:1px solid var(--line); border-radius:10px; padding:10px 12px } .kpi b { display:block; font-size:1.55rem; letter-spacing:-.02em; font-variant-numeric:tabular-nums }
  .kpi span { color:var(--ink2); font-size:.8rem } .kpi small { display:block; color:var(--muted); font-size:.74rem }
  .card { background:var(--surface); border:1px solid var(--line); border-radius:12px; padding:14px 14px 10px; margin:12px 0 }
  .row { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:12px } @media (max-width:820px) { .row { grid-template-columns:minmax(0,1fr) } }
  .filtros { display:flex; flex-wrap:wrap; gap:8px; align-items:center; margin:0 0 8px; font-size:.85rem; color:var(--ink2) }
  .seg { display:inline-flex; border:1px solid var(--line); border-radius:8px; overflow:hidden } .seg button { border:0; background:transparent; color:var(--ink2); padding:5px 12px; cursor:pointer; font:inherit }
  .seg button[aria-pressed=true] { background:var(--ink); color:var(--surface) }
  select { font:inherit; padding:4px 8px; background:var(--surface); color:var(--ink); border:1px solid var(--line); border-radius:8px }
  label.chk { display:inline-flex; gap:6px; align-items:center; cursor:pointer }
  .cv { position:relative; height:320px } .cv.alto { height:640px } .cv.med { height:380px }
  details { margin-top:6px; font-size:.82rem; color:var(--ink2) } summary { cursor:pointer }
  table.t { border-collapse:collapse; width:100%; font-size:.8rem; font-variant-numeric:tabular-nums } .t th,.t td { text-align:right; padding:3px 8px; border-bottom:1px solid var(--grid) } .t th:first-child,.t td:first-child { text-align:left }
  .heat td { text-align:center; padding:4px 2px; border:2px solid var(--surface); border-radius:3px; min-width:54px; font-size:.78rem } .heat td:first-child { text-align:left; border-radius:0; font-weight:600; min-width:36px }
  .heat th { font-weight:600; color:var(--ink2); padding:4px 2px }
  .tiles { display:grid; grid-template-columns:repeat(7,1fr); grid-template-rows:repeat(8,1fr); gap:3px; max-width:430px } .tl { aspect-ratio:1; border-radius:6px; display:flex; flex-direction:column; align-items:center; justify-content:center; font-size:.68rem; line-height:1.15; font-variant-numeric:tabular-nums } .tl b { font-size:.78rem }
  .sl label { display:flex; flex-direction:column; min-width:240px } .sl b { color:var(--ink); font-weight:600 } .lnk { background:none; border:0; color:var(--ink2); text-decoration:underline; cursor:pointer; font:inherit }
  .hero { padding:16px 16px 12px } .hero-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:12px; margin:8px 0 } @media (max-width:640px) { .hero-grid { grid-template-columns:minmax(0,1fr) } }
  .cand { border:1px solid var(--line); border-radius:12px; padding:12px 14px; border-top:4px solid var(--c) } .cand .nome { display:flex; align-items:center; gap:8px; font-weight:600; color:var(--ink) } .cand .nome i { width:10px; height:10px; border-radius:50%; background:var(--c); display:inline-block }
  .cand .big { font-size:3.2rem; line-height:1; letter-spacing:-.03em; font-weight:700; font-variant-numeric:tabular-nums; margin:6px 0 2px; color:var(--ink) } .cand .rot { color:var(--ink2); font-size:.82rem }
  .comp { display:flex; height:12px; gap:2px; margin:10px 0 6px } .comp span { display:block; border-radius:3px; background:var(--c) } .comp .t1 { background:repeating-linear-gradient(45deg,var(--c) 0 3px,transparent 3px 6px); box-shadow:inset 0 0 0 1.5px var(--c) }
  .cand ul { list-style:none; margin:6px 0 0; padding:0; font-size:.86rem; color:var(--ink2) } .cand li { display:flex; justify-content:space-between; padding:2px 0; border-bottom:1px solid var(--grid) } .cand li b { color:var(--ink); font-variant-numeric:tabular-nums }
  .hero-foot { display:flex; flex-wrap:wrap; gap:6px 24px; font-size:.88rem; color:var(--ink2); padding-top:4px } .hero-foot b { color:var(--ink) }
  .chaves { display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:8px } .ch { border:1px solid var(--line); border-radius:10px; padding:8px 10px; font-size:.82rem; color:var(--ink2) } .ch b { color:var(--ink); font-size:.92rem } .ch .bar { height:8px; background:var(--grid); border-radius:4px; position:relative; margin:6px 0 3px } .ch .bar i { position:absolute; top:0; bottom:0; left:0; background:var(--pt); border-radius:4px } .ch .bar u { position:absolute; top:-2px; bottom:-2px; left:50%; border-left:1.5px solid var(--ink2) }
  .aviso { border-left:3px solid var(--s4); background:var(--surface); padding:8px 12px; font-size:.84rem; color:var(--ink2); border-radius:0 8px 8px 0; margin:12px 0 }
  /* agregador de pesquisas */
  .agg-kpis { display:grid; grid-template-columns:repeat(auto-fit,minmax(170px,1fr)); gap:10px; margin:10px 0 }
  .agg-k { border:1px solid var(--line); border-top:4px solid var(--c); border-radius:10px; padding:8px 12px } .agg-k .nome { display:flex; align-items:center; gap:6px; font-weight:600; font-size:.85rem } .agg-k .nome i { width:9px; height:9px; border-radius:50%; background:var(--c) }
  .agg-k b { display:block; font-size:2rem; line-height:1.1; letter-spacing:-.02em; font-variant-numeric:tabular-nums } .agg-k small { color:var(--muted); font-size:.74rem } .agg-k .dl { font-size:.8rem; font-weight:600; font-variant-numeric:tabular-nums }
  .agg-k .dl.up { color:var(--s3) } .agg-k .dl.dn { color:var(--pt) } .agg-k .dl.eq { color:var(--muted) }
  .agg-leg { display:flex; flex-wrap:wrap; gap:4px 16px; font-size:.78rem; color:var(--ink2); margin:6px 0 0 } .agg-leg span { display:inline-flex; align-items:center; gap:5px } .agg-leg svg { width:12px; height:12px; fill:none; stroke:var(--ink2); stroke-width:1.6 }
  .cv.agg { height:420px } @media (max-width:640px) { .cv.agg { height:320px } }

  /* ---- moldura do site (nav.py): cabeçalho, menu, rodapé ---- */
  a { color:var(--link); text-underline-offset:2px } a:hover { text-decoration-thickness:2px }
  :focus-visible { outline:2px solid var(--anti); outline-offset:2px; border-radius:3px }
  .pular { position:absolute; left:8px; top:-60px; z-index:100; background:var(--ink); color:var(--bg); padding:8px 14px; border-radius:8px; text-decoration:none } .pular:focus { top:8px }
  .mast { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:2px 0 14px }
  .brand { display:flex; align-items:center; gap:12px; text-decoration:none; color:var(--ink) } .brand svg { flex:none }
  .brand b { display:block; font:700 1.35rem/1.1 var(--serif); letter-spacing:-.01em } .brand small { display:block; color:var(--muted); font-size:.8rem; margin-top:2px }
  .tabs { display:flex; flex-wrap:wrap; gap:0 6px; margin:0 -16px 22px; padding:0 16px; background:var(--bg); border-top:1px solid var(--line); border-bottom:1px solid var(--line); z-index:30 }
  .tabs .g { display:flex; flex-direction:column; padding-right:10px; margin-right:6px; border-right:1px solid var(--line) } .tabs .g:last-child { border-right:0; margin-right:0 }
  .tabs .grp { padding:7px 10px 0; font-size:.62rem; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); white-space:nowrap } .tabs .gl { display:flex }
  .tabs a { display:inline-flex; align-items:center; padding:5px 9px 9px; color:var(--ink2); text-decoration:none; border-bottom:3px solid transparent; font-size:.88rem; margin-bottom:-1px; white-space:nowrap }
  .tabs a:hover { color:var(--ink); background:var(--grid) } .tabs a[aria-current=page] { color:var(--ink); border-bottom-color:var(--pt); font-weight:600 }
  @media (min-width:1240px) { .tabs { position:sticky; top:0; flex-wrap:nowrap } }
  @media (min-width:1320px) { .side { top:78px } }
  .topo { padding:6px 0 4px }
  .aviso { box-shadow:0 1px 0 rgba(0,0,0,.03) } .card, .kpi, .post { box-shadow:0 1px 2px rgba(0,0,0,.04) }
  .kpi span { text-transform:uppercase; letter-spacing:.05em; font-size:.68rem; color:var(--muted) }
  table.t { font-size:.84rem } .t th { font-size:.72rem; letter-spacing:.04em; text-transform:uppercase; color:var(--muted); font-weight:600; border-bottom:2px solid var(--line); vertical-align:bottom } .t tbody tr:hover td, .t tr:hover td { background:var(--grid) }
  .rodape { border-top:1px solid var(--line); margin-top:8px; background:var(--surface) } .rodape-in { max-width:1360px; margin:0 auto; padding:22px 16px 40px; font-size:.82rem; color:var(--ink2) } .rodape p { margin:0 0 8px; max-width:90ch }
  /* ---- análises: seções com nota lateral ---- */
  .an { max-width:none; margin:0 } .an p, .an ul, .an ol { max-width:74ch } .an .fonte { max-width:80ch }
  .an .sec { border-top:1px solid var(--line); margin-top:34px; padding-top:6px } .an .sec h2:first-child { margin-top:14px } .an .side { margin-top:16px } .an .sec > div { min-width:0 }
  .an .aviso, .an .kpis, .an .semnota { max-width:calc(100% - 290px) } .an .kpis { max-width:calc(100% - 290px) }
  .tema { padding:6px 12px; border-radius:999px }
  /* ---- celular e tablet ---- */
  @media (max-width:1200px) { .an .aviso, .an .kpis, .an .semnota { max-width:none } .side { background:var(--surface); border:1px solid var(--line); border-left:3px solid var(--s4); border-radius:0 8px 8px 0; padding:10px 14px; margin:10px 0 4px }
    .an .side { margin:10px 0 4px } .an .sec > div { order:0 } }
  @media (max-width:1239px) { .tabs { position:sticky; top:0; flex-wrap:nowrap; overflow-x:auto; scrollbar-width:thin; gap:0; -webkit-mask-image:linear-gradient(90deg,#000 92%,transparent); mask-image:linear-gradient(90deg,#000 92%,transparent) }
    .tabs .g { flex-direction:row; border:0; margin:0; padding:0 } .tabs .grp { display:none } .tabs a { padding:13px 12px } }
  @media (max-width:760px) { table.t { display:block; overflow-x:auto; -webkit-overflow-scrolling:touch } .brand small { display:none } h1 { font-size:1.6rem } h2 { font-size:1.2rem; margin-top:30px }
    .kpi b { font-size:1.35rem } .cand .big { font-size:2.6rem } }
  @media (max-width:520px) { main { padding:14px 12px 40px } .tabs { margin:0 -12px 18px; padding:0 12px } .kpis { grid-template-columns:repeat(2,1fr); gap:8px } .brand b { font-size:1.15rem } .tema { font-size:.75rem; padding:5px 9px }
    .sl label { min-width:0; width:100% } .filtros { gap:6px } .row3 { grid-template-columns:1fr } }
  @media print { .tabs, .tema, .pular { display:none } .side { position:static } }
  .sec > *, .mainc { min-width:0 } img, canvas, svg { max-width:100% }
  .row > *, .row3 > *, .hero-grid > * { min-width:0 }
