:root{
  --bg:#F6F4EC; --surface:#FFFFFF; --text:#1B241E; --muted:#5A645C; --green:#1F5E3A; --green-2:#17482C;
  --pale:#EDF3EE; --rule:#DCD9CC; --gold:#B9892B; --red:#A93B2C; --up:#1F5E3A;
  --font-display:'Zodiak','Source Serif 4',Georgia,serif; --font-body:'Satoshi','Inter',system-ui,-apple-system,'Segoe UI',sans-serif;
  --text-xs:.8125rem; --text-sm:.9375rem; --text-base:1.0625rem; --text-lg:1.25rem; --text-xl:1.75rem; --text-2xl:2.25rem;
  --s1:.25rem; --s2:.5rem; --s3:.75rem; --s4:1rem; --s5:1.5rem; --s6:2rem; --s8:3rem;
  --radius:10px; --bar:56px; --tab:60px;
}
@media (prefers-color-scheme:dark){:root{
  --bg:#111613; --surface:#18201B; --text:#E9EDE6; --muted:#9BA69D; --green:#6FBE8A; --green-2:#8ED0A5; --pale:#1E2A22; --rule:#2B372F; --gold:#D9A93C; --red:#E27A68; --up:#6FBE8A;
}}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--text);font:400 var(--text-base)/1.65 var(--font-body);padding-top:var(--bar);padding-bottom:calc(var(--tab) + env(safe-area-inset-bottom));-webkit-font-smoothing:antialiased}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
a{color:var(--green)}
:focus-visible{outline:2px solid var(--green);outline-offset:2px;border-radius:4px}
.progress{position:fixed;top:0;left:0;height:3px;width:0;background:var(--gold);z-index:60;transition:width .1s}

.top{position:fixed;top:0;left:0;right:0;height:var(--bar);display:flex;align-items:center;gap:var(--s3);padding:0 var(--s4);background:var(--green);color:#F6F4EC;z-index:50;--bg:#1F5E3A}
.brand{display:flex;align-items:center;gap:var(--s2);font:700 1.15rem var(--font-display);color:#F6F4EC;min-height:44px}
.brand span{letter-spacing:.01em}
.ed{margin-left:auto;font-size:var(--text-xs);opacity:.85}
.icon-btn{width:44px;height:44px;display:grid;place-items:center;border-radius:50%;color:inherit}
.icon-btn:hover{background:rgba(127,127,127,.18)}

.shell{max-width:1180px;margin:0 auto;display:block}
main:focus,main:focus-visible{outline:0}
main{padding:var(--s5) var(--s4) var(--s8);max-width:780px;margin:0 auto;outline:0}
.side{display:none}

.tabbar{position:fixed;bottom:0;left:0;right:0;height:calc(var(--tab) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);display:grid;grid-template-columns:repeat(5,1fr);background:var(--surface);border-top:1px solid var(--rule);z-index:50}
.tabbar button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-size:.75rem;color:var(--muted);min-height:44px}
.tabbar svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.tabbar button[aria-current="true"]{color:var(--green);font-weight:700}

/* tipografia */
h1,h2,h3{margin:0;text-wrap:balance}
.kicker{font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:500;margin:0 0 var(--s2)}
.hero h1{font:700 var(--text-2xl)/1.1 var(--font-display);color:var(--green);margin-bottom:var(--s2)}
.hero .sub{font-size:var(--text-lg);color:var(--text);margin:0 0 var(--s3);line-height:1.4}
.hero .period{font-size:var(--text-sm);color:var(--muted);margin:0 0 var(--s5);border-left:3px solid var(--gold);padding-left:var(--s3)}
.sec-h{font:700 var(--text-xl)/1.2 var(--font-display);color:var(--green);margin:0 0 var(--s4)}
.sec-num{display:block;font:500 var(--text-xs) var(--font-body);letter-spacing:.08em;text-transform:uppercase;color:var(--gold);margin-bottom:var(--s2)}
h3{font:700 var(--text-lg)/1.3 var(--font-display);margin:var(--s6) 0 var(--s3);color:var(--text)}
p{margin:0 0 var(--s4);max-width:68ch}
p.note{font-size:var(--text-sm);color:var(--muted);line-height:1.5;margin-top:calc(-1*var(--s2))}
ul.list{margin:0 0 var(--s4);padding-left:1.1rem;max-width:68ch}
ul.list li{margin-bottom:var(--s2)}
strong{font-weight:700}

/* números da semana */
.nums{display:grid;grid-template-columns:1fr 1fr;gap:var(--s3);margin:0 0 var(--s6)}
.num{background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius);padding:var(--s3) var(--s3)}
.num .l{font-size:var(--text-xs);color:var(--muted);line-height:1.3;min-height:2.6em}
.num .v{font:700 1.5rem/1.15 var(--font-display);margin:var(--s2) 0 2px;font-variant-numeric:tabular-nums}
.num .d{font-size:var(--text-sm);font-weight:700;font-variant-numeric:tabular-nums}
.num .d.pos{color:var(--up)} .num .d.neg{color:var(--red)}
.num .p{font-size:var(--text-xs);color:var(--muted)}
.sec-title-sm{font:700 var(--text-lg) var(--font-display);margin:0 0 var(--s3);color:var(--text)}

/* tabelas */
.tw{overflow-x:auto;margin:var(--s4) 0 var(--s4);border:1px solid var(--rule);border-radius:var(--radius);background:var(--surface);-webkit-overflow-scrolling:touch}
.tw.hint{background:linear-gradient(to right,var(--surface) 30%,transparent),linear-gradient(to left,var(--surface) 30%,transparent),linear-gradient(to right,rgba(0,0,0,.12),transparent 8px),linear-gradient(to left,rgba(0,0,0,.12),transparent 8px);background-repeat:no-repeat;background-size:40px 100%,40px 100%,10px 100%,10px 100%;background-position:0 0,100% 0,0 0,100% 0;background-attachment:local,local,scroll,scroll}
table{border-collapse:collapse;width:100%;font-size:var(--text-sm);line-height:1.4}
th,td{padding:.55rem .75rem;text-align:left;vertical-align:top;border-bottom:1px solid var(--rule)}
thead th{background:var(--pale);color:var(--green-2);font-weight:700;position:sticky;top:0;white-space:nowrap}
tbody tr:nth-child(even) td{background:color-mix(in srgb,var(--pale) 45%,transparent)}
tbody tr:last-child td{border-bottom:0}
td.n,th.n{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
table.stk td:first-child,table.stk th:first-child{position:sticky;left:0;z-index:1;background:var(--surface);box-shadow:1px 0 0 var(--rule)}
table.stk thead th:first-child{background:var(--pale);z-index:2}
table.stk tbody tr:nth-child(even) td:first-child{background:color-mix(in srgb,var(--pale) 45%,var(--surface))}
thead th:first-child{white-space:normal}
td:first-child{font-weight:500;min-width:7.5rem}
table.stk td:first-child{min-width:8rem;max-width:9.5rem}
@media (max-width:639px){th,td{padding:.5rem .5rem}table{font-size:.875rem}}
@media (min-width:640px){td:first-child{min-width:11rem}table.stk td:first-child{max-width:none}}
table.wide{min-width:560px}
table.wide td{min-width:7.5rem}
table.wide td:first-child{min-width:7rem}
.tw{overscroll-behavior-x:contain}

/* gráficos */
figure.chart{margin:var(--s5) calc(-1*var(--s4));background:var(--surface);border-block:1px solid var(--rule);padding:var(--s3) 0 var(--s3)}
figure.chart img{display:block;width:100%;height:auto;cursor:zoom-in;margin:0 0 var(--s2)}
figure.chart figcaption{font-size:var(--text-sm);color:var(--muted);padding:var(--s2) var(--s4) 0;line-height:1.5;max-width:68ch}
figure.chart .zoom{font-size:var(--text-xs);color:var(--green);padding:0 var(--s4);font-weight:500}

/* referências */
.ref{display:inline-block;font:700 .72rem/1 var(--font-body);color:var(--green);background:var(--pale);border:1px solid color-mix(in srgb,var(--green) 25%,transparent);border-radius:999px;padding:.18rem .42rem;margin:0 .1rem;vertical-align:.12em;min-width:1.6rem;text-align:center;font-variant-numeric:tabular-nums;white-space:nowrap}
.ref:hover{background:var(--green);color:var(--bg)}
.reflist{list-style:none;margin:0;padding:0}
.reflist li{display:grid;grid-template-columns:2.4rem 1fr;gap:var(--s2);padding:var(--s3) 0;border-bottom:1px solid var(--rule);font-size:var(--text-sm);line-height:1.45}
.reflist .n{font-weight:700;color:var(--green);font-variant-numeric:tabular-nums}
.reflist a{display:block;font-size:var(--text-xs);overflow-wrap:anywhere;margin-top:2px}

/* navegação entre seções */
.pager{display:grid;gap:var(--s3);margin-top:var(--s8)}
.pager button{display:block;text-align:left;border:1px solid var(--rule);background:var(--surface);border-radius:var(--radius);padding:var(--s3) var(--s4);min-height:44px}
.pager small{display:block;color:var(--muted);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.06em}
.pager span{font:700 1rem/1.3 var(--font-display)}
.toc-cards{display:grid;gap:var(--s2);margin:var(--s3) 0 var(--s6)}
.toc-cards button{display:grid;grid-template-columns:2rem 1fr;gap:var(--s2);text-align:left;background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius);padding:var(--s3);min-height:44px;align-items:baseline}
.toc-cards b{color:var(--gold);font-variant-numeric:tabular-nums}
.toc-cards span{font:700 1rem/1.3 var(--font-display)}
.legal{margin-top:var(--s8);padding-top:var(--s4);border-top:1px solid var(--rule);font-size:var(--text-xs);color:var(--muted);line-height:1.5}
.legal p{font-size:var(--text-xs)}
.proto-unused{display:inline-block;background:var(--gold);color:#1B241E;font:700 .7rem/1 var(--font-body);letter-spacing:.08em;text-transform:uppercase;padding:.3rem .5rem;border-radius:4px;margin-bottom:var(--s3)}
.flash{animation:flash 2s ease-out}
@keyframes flash{0%,30%{background:color-mix(in srgb,var(--gold) 35%,transparent)}100%{background:transparent}}

/* sobreposições */
.overlay{position:fixed;inset:0;z-index:70;background:rgba(10,16,12,.55);display:flex;align-items:flex-end;justify-content:center}
.overlay[hidden],.lightbox[hidden]{display:none}
.overlay .panel{background:var(--bg);width:100%;max-width:640px;max-height:88dvh;display:flex;flex-direction:column;border-radius:16px 16px 0 0;overflow:hidden}
.panel-h{display:flex;align-items:center;gap:var(--s2);padding:var(--s2) var(--s3) var(--s2) var(--s4);border-bottom:1px solid var(--rule)}
.panel-h h2{font:700 var(--text-lg) var(--font-display);flex:1}
.panel-h input{flex:1;min-height:44px;font:inherit;border:0;background:transparent;color:var(--text);outline:0;font-size:1rem}
#sections-list,#results,#ref-body{overflow:auto;padding:var(--s2) var(--s4) var(--s5)}
.srow{display:grid;grid-template-columns:2rem 1fr;gap:var(--s2);width:100%;text-align:left;padding:var(--s3) 0;border-bottom:1px solid var(--rule);min-height:44px}
.srow b{color:var(--gold)} .srow span{font:700 1rem/1.3 var(--font-display)}
.res{display:block;width:100%;text-align:left;padding:var(--s3) 0;border-bottom:1px solid var(--rule);font-size:var(--text-sm);line-height:1.5}
.res small{display:block;color:var(--gold);font-weight:700;font-size:var(--text-xs);margin-bottom:2px}
mark{background:color-mix(in srgb,var(--gold) 40%,transparent);color:inherit;border-radius:2px}
.empty{color:var(--muted);padding:var(--s4) 0}
.lightbox{position:fixed;inset:0;z-index:80;background:#0c110e;display:flex;flex-direction:column}
.lightbox .close{position:absolute;top:var(--s2);right:var(--s2);z-index:2;background:rgba(0,0,0,.6);color:#fff}
.lb-scroll{flex:1;overflow:auto;display:flex;align-items:flex-start;-webkit-overflow-scrolling:touch}
.lb-scroll img{width:100%;min-width:100%;height:auto;background:#fff;margin:auto 0;transition:width .2s}
.lb-scroll img.z{width:220%;max-width:none}
.lb-hint{color:#9BA69D;font-size:var(--text-xs);text-align:center;margin:0;padding:var(--s2);max-width:none}

/* entradas da página inicial */
.entry{display:grid;gap:var(--s2);margin:0 0 var(--s6)}
.entry button{text-align:left;background:var(--surface);border:1px solid var(--rule);border-left:4px solid var(--green);border-radius:var(--radius);padding:var(--s3) var(--s4);min-height:44px}
.entry b{display:block;font:700 1.05rem/1.3 var(--font-display);color:var(--green)}
.entry span{display:block;font-size:var(--text-sm);color:var(--muted);line-height:1.4}
/* leitura rápida */
.chips{display:flex;gap:var(--s2);overflow-x:auto;padding:var(--s2) 0 var(--s3);margin:0 calc(-1*var(--s4)) var(--s3);padding-inline:var(--s4);position:sticky;top:var(--bar);background:var(--bg);z-index:5;scrollbar-width:none}
.chips::-webkit-scrollbar{display:none}
.chips a{flex:none;font-size:var(--text-xs);font-weight:700;color:var(--green-2);background:var(--pale);border-radius:999px;padding:.45rem .8rem;text-decoration:none;white-space:nowrap}
.tema{scroll-margin-top:calc(var(--bar) + 56px);padding-top:var(--s4);border-top:1px solid var(--rule);margin-top:var(--s5)}
.tema:first-of-type{border-top:0;margin-top:0}
.kicker.tk{color:var(--gold);font-weight:700}
.rq-h{margin-top:var(--s2)}
.rq-h4{font:700 1.05rem/1.3 var(--font-display);margin:var(--s5) 0 var(--s2)}
p.lead{font-size:var(--text-lg);line-height:1.5}
.rapida p.period{font-size:var(--text-sm);color:var(--muted);border-left:3px solid var(--gold);padding-left:var(--s3)}
.more{display:grid;gap:var(--s2);margin:var(--s4) 0}
.more>span{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:500}
.more button{display:grid;grid-template-columns:1.8rem 1fr;text-align:left;border:1px solid var(--rule);background:var(--surface);border-radius:var(--radius);padding:var(--s2) var(--s3);min-height:44px;align-items:center;font:700 .95rem/1.3 var(--font-display)}
.more button b{color:var(--gold);font-family:var(--font-body)}
/* mapa */
.seg{display:inline-grid;grid-template-columns:1fr 1fr;background:var(--pale);border-radius:999px;padding:3px;margin:var(--s2) 0 var(--s3)}
.seg button{min-height:40px;padding:0 1.4rem;border-radius:999px;font-weight:700;color:var(--muted)}
.seg button[aria-selected="true"]{background:var(--green);color:var(--bg)}
.mapa-box{background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius);padding:var(--s2)}
.mapa-svg{display:block;width:100%;max-width:560px;height:auto;margin:0 auto}
.lk{fill:none;stroke-width:2.5;stroke-dasharray:1;stroke-dashoffset:0;animation:draw .7s ease-out}
.lk-flat{stroke-dasharray:.02 .02;animation:none;stroke-dashoffset:0;opacity:.7}
@keyframes draw{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}
.fn{cursor:pointer;outline:none}
.fn rect{fill:var(--surface);stroke-width:1.5}
.fn.sel rect,.fn:focus-visible rect{fill:var(--pale);stroke-width:3}
.fn:hover rect{fill:var(--pale)}
.fn-t{font:700 12px var(--font-body);fill:var(--text)}
.fn-d{font:700 11px var(--font-body)}
.gn circle{fill:var(--green)}
.gn-t{font:700 19px var(--font-display);fill:var(--bg)}
.gn-s{font:500 9.5px var(--font-body);fill:var(--bg);opacity:.9}
.legend{display:flex;flex-wrap:wrap;gap:var(--s2) var(--s4);font-size:var(--text-xs);color:var(--muted);margin:var(--s3) 0}
.legend i{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:5px;vertical-align:-1px}
.ficha{background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius);padding:var(--s4);margin:var(--s3) 0;scroll-margin-top:calc(var(--bar) + 8px)}
.ficha h3{margin:0 0 var(--s3);color:var(--green)}
.ficha dl{display:grid;grid-template-columns:auto 1fr;gap:var(--s2) var(--s3);margin:0 0 var(--s3);align-items:center}
.ficha dt{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:700}
.ficha dd{margin:0}
.tag{display:inline-block;font-size:var(--text-sm);font-weight:700;color:var(--c);border:1.5px solid var(--c);border-radius:6px;padding:.1rem .5rem;line-height:1.4}
.ficha figure.chart{margin-inline:calc(-1*var(--s4))}
.mapa-hint{margin-top:var(--s3)}
/* PDFs */
.pdfs{margin-top:var(--s6)}
.pdf-grid{display:grid;gap:var(--s2)}
.pdf{display:flex;gap:var(--s3);align-items:center;text-decoration:none;color:var(--text);background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius);padding:var(--s3) var(--s4);min-height:56px}
.pdf svg{width:28px;height:28px;flex:none;fill:none;stroke:var(--green);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.pdf b{display:block;font:700 1rem/1.3 var(--font-display)}
.pdf small{color:var(--muted);font-size:var(--text-xs)}
@media (min-width:640px){
  .entry{grid-template-columns:repeat(3,1fr)}
  .pdf-grid{grid-template-columns:1fr 1fr}
  .ficha figure.chart{margin-inline:0}
  :root{--text-2xl:3rem}
  .nums{grid-template-columns:repeat(3,1fr)}
  figure.chart{margin-inline:0;border:1px solid var(--rule);border-radius:var(--radius)}
  .overlay{align-items:center}
  .overlay .panel{border-radius:16px;max-height:80dvh}
}
@media (min-width:1024px){
  body{padding-bottom:0}
  .tabbar{display:none}
  .shell{display:grid;grid-template-columns:280px minmax(0,1fr);gap:var(--s5);padding:0 var(--s5)}
  .side{display:block;position:sticky;top:var(--bar);align-self:start;max-height:calc(100dvh - var(--bar));overflow:auto;padding:var(--s5) 0}
  .side button{display:grid;grid-template-columns:1.6rem 1fr;gap:var(--s1);text-align:left;width:100%;padding:.5rem .6rem;border-radius:8px;font-size:var(--text-sm);line-height:1.35;color:var(--muted)}
  .side button b{color:var(--gold);font-variant-numeric:tabular-nums}
  .side button:hover{background:var(--pale)}
  .side button[aria-current="true"]{background:var(--pale);color:var(--green-2);font-weight:700}
  .side h2{font:500 var(--text-xs) var(--font-body);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:0 0 var(--s2) .6rem}
  main{margin:0;padding-top:var(--s6);max-width:820px}
  .nums{grid-template-columns:repeat(3,1fr)}
  .overlay .panel{border-radius:16px}
}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media print{.top,.tabbar,.side,.progress{display:none}body{padding:0}}

#q::-webkit-search-cancel-button{display:none}
