.forecast-intro{max-width:980px;padding-top:28px}.forecast-intro h1{font-size:clamp(32px,4vw,49px)}.forecast-page{--candidate-flavio:#246bce;--candidate-lula:#bf3046;max-width:1100px;margin:0 auto}
[data-tema=noite] .forecast-page{--candidate-flavio:#8bbaff;--candidate-lula:#ff8997}
.forecast-section{margin:0 0 24px;scroll-margin-top:110px;background:var(--white);border:1px solid var(--line);border-radius:18px;padding:28px}.section-title{display:flex;align-items:center;gap:14px;font-size:26px;line-height:1.3;margin:0 0 24px;letter-spacing:-.035em}.section-number{display:grid;place-items:center;flex:none;width:38px;height:38px;background:var(--blue-soft);color:var(--blue);border-radius:10px;font-size:13px;font-weight:750;letter-spacing:.02em;font-variant-numeric:tabular-nums}
.forecast-today{display:grid;grid-template-columns:1fr 1fr;gap:24px}.forecast-panel{background:var(--paper);border:1px solid var(--line);border-radius:18px;padding:24px;min-width:0}
.forecast-gauge{max-width:360px;margin:auto}.forecast-gauge svg{width:100%;height:auto;display:block}.gauge-tie{fill:var(--muted);font-size:11px;letter-spacing:1.5px;font-weight:650}.gauge-needle{stroke:var(--ink);stroke-width:4;stroke-linecap:round}.gauge-center{fill:var(--ink)}
.forecast-probabilities{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:-14px}.forecast-probabilities>div{font-size:14px;font-weight:650}.forecast-probabilities>div:last-child{text-align:right}.forecast-probabilities strong{display:block;font-size:40px;line-height:1.1;letter-spacing:-.05em}.forecast-probabilities>span{text-align:center;font-size:10px;color:var(--muted);max-width:140px}
.lula-color{color:var(--candidate-lula)}.flavio-color{color:var(--candidate-flavio)}
.vote-projection{display:flex;flex-direction:column;justify-content:center}.vote-projection h3{font-size:18px;margin-bottom:22px}.forecast-votes{display:flex;gap:24px;justify-content:space-between;margin-bottom:22px}.forecast-votes span{display:block;font-size:13px;font-weight:650}.forecast-votes strong{font-size:40px;letter-spacing:-.05em;line-height:1.3}.vote-projection p{font-size:14px;color:var(--muted)}.vote-projection p strong{color:var(--ink)}.vote-projection .source-note{margin-top:14px}
.forecast-notice{padding:16px 20px;background:var(--blue-soft);border:1px solid var(--line);border-radius:12px;font-size:13px;color:var(--muted);margin-top:16px}.forecast-notice strong{color:var(--blue)}
.section-description{font-size:16px;line-height:1.75;color:var(--muted);margin:-6px 0 20px;max-width:850px}.history-panel{background:var(--white);padding:0}.history-panel svg{display:block;width:100%;height:260px;overflow:visible}.chart-axis{fill:var(--muted);font-size:12px}.chart-grid{stroke:var(--line)}.chart-half{stroke:var(--muted);stroke-dasharray:5 5}.chart-line{fill:none;stroke:var(--candidate-flavio);stroke-width:3}.chart-point{fill:var(--white);stroke:var(--candidate-flavio);stroke-width:3}.chart-hit{fill:transparent;cursor:pointer}.chart-hit:focus-visible{outline:none;stroke:var(--blue);stroke-width:2}.chart-detail{font-size:13px;color:var(--ink);background:var(--blue-soft);padding:12px 14px;border-radius:8px;min-height:46px;margin:8px 0 12px}.history-data summary{min-height:44px;display:flex;align-items:center;cursor:pointer;font-size:13px;color:var(--blue);font-weight:650}
.forecast-page table{width:100%;border-collapse:collapse;font-size:13px;line-height:1.55}.forecast-page th,.forecast-page td{padding:12px 14px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}.forecast-page th{font-weight:650}.forecast-page thead{background:var(--blue-soft)}.polls-table{border:1px solid var(--line);border-radius:12px;background:var(--white)}.polls-table td:nth-child(2),.polls-table td:nth-child(n+5){white-space:nowrap}.polls-table th:first-child{min-width:145px}.polls-table td:nth-child(4){min-width:160px}.table-hint{font-size:11px;color:var(--muted);display:none;margin-bottom:8px}.forecast-page .source-note{font-size:12px;color:var(--muted);margin-top:12px}
.method-section{max-width:none}.method-steps{list-style:none;padding:0;margin:0;max-width:850px}.method-steps li{padding:20px 0;border-top:1px solid var(--line)}.method-steps li:first-child{padding-top:0;border-top:0}.method-steps li:last-child{padding-bottom:0}.method-section h3{font-size:19px;margin-bottom:8px}.method-section p,.cross-check p{font-size:16px;color:var(--muted);line-height:1.8}.method-section strong,.cross-check strong{color:var(--ink)}.cross-check p{max-width:850px}.cross-check .text-link{margin-top:16px}
.frozen-record{padding:0;overflow:hidden}.frozen-record>summary{cursor:pointer;padding:28px;list-style:none}.frozen-record>summary::-webkit-details-marker{display:none}.frozen-record>summary .section-title{margin:0}.record-toggle{margin-left:auto;flex:none;width:28px;text-align:center;font-size:24px;font-weight:400;color:var(--blue)}.frozen-record[open] .record-toggle{transform:rotate(45deg)}.record-content{padding:0 28px 28px}.record-content h2{font-size:22px;padding-top:24px;border-top:1px solid var(--line)}.record-date{font-size:13px;color:var(--muted);margin-top:8px}.record-content iframe{border:0;width:100%;height:650px;display:block;margin-top:20px}.record-content .forecast-notice{margin-top:16px}
@media(max-width:800px){.forecast-section{padding:20px;margin-bottom:18px}.section-title{font-size:22px;gap:12px;margin-bottom:20px;align-items:flex-start}.section-number{width:32px;height:32px;font-size:12px;border-radius:8px}.section-title>span:nth-child(2){padding-top:2px}.forecast-today{grid-template-columns:1fr}.forecast-panel{padding:18px}.forecast-gauge{max-width:330px}.forecast-votes strong{font-size:38px}.history-panel{padding:0}.table-hint{display:block}.forecast-intro h1{font-size:36px}.frozen-record{padding:0}.frozen-record>summary{padding:20px}.record-content{padding:0 16px 20px}.record-content h2{font-size:21px}.forecast-page th,.forecast-page td{padding:10px}.forecast-probabilities>span{font-size:10px;max-width:115px}}
@media(max-width:360px){.forecast-section{padding:16px}.frozen-record{padding:0}.frozen-record>summary{padding:16px}.section-title{font-size:20px;gap:10px}.forecast-probabilities>span{font-size:9px;max-width:95px}.forecast-panel{padding:16px}.forecast-votes strong{font-size:34px}.forecast-probabilities strong{font-size:36px}}
@media print{.forecast-today{grid-template-columns:1fr 1fr}.forecast-section{break-inside:avoid}.frozen-record:not([open]){display:none}}

.chart-legend{display:flex;flex-wrap:wrap;gap:12px 24px;margin:0 0 12px;font-size:13px;font-weight:650;color:var(--ink)}.chart-legend>span{display:flex;align-items:center;gap:8px}.chart-legend i{display:block;width:24px;border-top:3px solid var(--candidate-flavio)}.chart-legend .legend-lula{border-color:var(--candidate-lula);border-top-style:dashed}.chart-line.chart-lula{stroke:var(--candidate-lula);stroke-dasharray:7 4}.chart-point.chart-lula{stroke:var(--candidate-lula)}

/* Premissas e documentação da estimativa. */
.estimate-bridge{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:22px;padding:20px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.estimate-bridge>span{font-size:13px;color:var(--muted)}.estimate-bridge strong{display:block;font-size:27px;color:var(--ink);letter-spacing:-.035em;margin-top:6px}
.forecast-sensitivity{margin-top:24px}.forecast-sensitivity h3{font-size:18px;margin-bottom:14px}.sensitivity-values{display:grid;grid-template-columns:1fr 1fr;gap:18px}.sensitivity-values p{margin:0;border-left:3px solid var(--line);padding-left:16px}.sensitivity-values strong{display:block;font-size:34px;letter-spacing:-.04em;color:var(--ink)}.sensitivity-values span{display:block;font-size:13px;color:var(--muted)}.forecast-reading{display:flex;flex-wrap:wrap;gap:16px 20px;align-items:center;margin-top:24px}.forecast-reading .text-link{font-size:13px}.forecast-page .history-panel{margin-top:20px}.polls-table a{color:var(--blue);text-underline-offset:3px}.method-formula{padding:14px 18px;background:var(--paper);border:1px solid var(--line);border-radius:10px;overflow-wrap:anywhere}
.technical-details{margin-top:24px;border-top:1px solid var(--line);padding-top:10px;scroll-margin-top:110px}.technical-details>summary{cursor:pointer;font-size:15px;font-weight:700;color:var(--blue);padding:14px 0;min-height:44px}.technical-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:18px}.technical-card{padding:20px;background:var(--paper);border:1px solid var(--line);border-radius:12px;min-width:0;scroll-margin-top:110px}.technical-card:target{border-color:var(--blue);box-shadow:0 0 0 2px var(--blue-soft)}.forecast-page .technical-card h3{font-size:17px;line-height:1.35;margin:0 0 6px}.forecast-page .technical-registration{font-size:13px;color:var(--blue);margin:0 0 16px}.technical-card dl{display:grid;grid-template-columns:1fr 1fr;gap:12px 16px;margin:0 0 18px;font-size:13px;line-height:1.5}.technical-card dl>div:nth-child(n+5){grid-column:1/-1}.technical-card dt{font-size:11px;color:var(--muted);margin-bottom:3px}.technical-card dd{margin:0;color:var(--ink);overflow-wrap:anywhere}.technical-card .text-link{font-size:12px}.forecast-page summary:focus-visible,.forecast-page .table-scroll:focus-visible{outline:3px solid var(--blue);outline-offset:4px}
@media(max-width:800px){.technical-grid{grid-template-columns:1fr}.technical-card{padding:18px}.estimate-bridge{gap:10px}.estimate-bridge>span{font-size:12px}.estimate-bridge strong{font-size:24px}}
@media(max-width:520px){.estimate-bridge{grid-template-columns:1fr;gap:13px}.estimate-bridge>span{display:flex;justify-content:space-between;align-items:center;gap:14px}.estimate-bridge strong{margin:0;font-size:24px;white-space:nowrap}.sensitivity-values{gap:12px}.sensitivity-values p{padding-left:12px}.sensitivity-values strong{font-size:30px}.forecast-reading{align-items:stretch;gap:12px}.forecast-reading .button{width:100%;justify-content:center}.technical-card dl{grid-template-columns:1fr}.technical-card dl>div{grid-column:1/-1}}
@media print{.technical-grid{display:block}.technical-card{break-inside:avoid;margin-bottom:12px}.method-section,.forecast-page #pesquisas{break-inside:auto}.forecast-reading{display:none}}
