/* Só o que é do Currículo: cada aba é uma página em coluna única de até 880 px. Tokens, base, cabeçalho, botões, abas, chips e gráficos vêm de /css/base.css (compartilhado com a Bancada). */
html { scroll-behavior: smooth; }
body { font-size: 17px; line-height: 1.6; min-height: 100vh; }
.gut { max-width: 880px; margin: 0 auto; padding-left: max(16px, env(safe-area-inset-left, 0px)); padding-right: max(16px, env(safe-area-inset-right, 0px)); }

.atalhos { display: flex; gap: 8px; flex: none; }
@media (max-width: 520px) { .topo .marca small { display: none; } }
.cv-linha.sep { margin-top: 22px; } .cv-linha.sep-p { margin-top: 14px; }
.leg-a { background: var(--acento); } .leg-t { background: var(--acento-2); border-radius: 50%; }
.acoes { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 18px; }
.cv-linha { display: flex; justify-content: space-between; gap: 4px 16px; flex-wrap: wrap; align-items: baseline; }

main { padding-block: 32px 72px; }
.pagina[hidden] { display: none; }
.cabeca { display: grid; gap: 8px; margin-bottom: 22px; }
.pagina h1, .pagina h2.titulo { font-size: clamp(27px, 5vw, 38px); font-weight: 700; line-height: 1.15; letter-spacing: -.01em; }
.pagina h1 em { font-style: normal; color: var(--acento-texto); }
.sub { color: var(--texto-2); max-width: 66ch; }

/* blocos */
.item { margin-top: 16px; padding: 20px; background: var(--superficie); border: 1px solid var(--linha); border-radius: var(--raio); min-width: 0; }
.item h3 { font-size: clamp(17px, 2.6vw, 19px); font-weight: 600; line-height: 1.35; }
.item .meta { margin-top: 4px; font: 500 13px var(--f-mono); color: var(--texto-2); }
.item ul { margin: 12px 0 0; padding-left: 20px; }
.item li { margin: 6px 0; }
.item li::marker { color: var(--acento-texto); }
.item b { font-weight: 650; }
.item.destaque { border-color: color-mix(in srgb, var(--acento-borda) 50%, var(--linha)); box-shadow: inset 0 2px 0 var(--acento-borda); }
.item.exp { position: relative; }
.item.exp::before { content: ""; position: absolute; left: -1px; top: 22px; width: 3px; height: 26px; border-radius: 0 2px 2px 0; background: var(--acento-2); }
.nota { margin-top: 16px; padding: 16px 18px; border-radius: var(--raio); border: 1px solid color-mix(in srgb, var(--acento-3) 40%, var(--linha)); background: color-mix(in srgb, var(--acento-3) 7%, var(--superficie)); }
.nota h3 { font: 600 12px var(--f-mono); letter-spacing: .04em; color: var(--acento-3); margin-bottom: 6px; }
.nota ul { margin: 0; padding-left: 20px; }
.nota li { margin: 6px 0; }
.nota li::marker { color: var(--acento-3); }

.heroi { padding: 22px; background: var(--superficie); border: 1px solid var(--linha); border-radius: var(--raio); display: grid; gap: 12px; margin-bottom: 4px; }
.heroi .linha { display: flex; align-items: center; gap: 10px; font: 500 13px var(--f-mono); color: var(--texto-2); flex-wrap: wrap; }
.lede { font-size: 19px; line-height: 1.55; max-width: 62ch; }

.stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin-top: 16px; }
.stat { background: var(--superficie); border: 1px solid var(--linha); border-radius: var(--raio); padding: 14px; min-width: 0; }
.stat small { display: block; font: 600 12px var(--f-mono); letter-spacing: .04em; color: var(--texto-2); }
.stat b { display: block; font-size: 30px; line-height: 1.2; font-weight: 700; font-variant-numeric: tabular-nums; }
.stat:nth-child(1) b { color: var(--acento-texto); } .stat:nth-child(2) b { color: var(--acento-3); } .stat:nth-child(3) b { color: var(--acento-2); }
.stat span { color: var(--texto-2); font-size: 14px; }
@media (max-width: 640px) { .stats { gap: 8px; } .stat { padding: 10px; } .stat b { font-size: 24px; } .stat span { font-size: 13px; } }

.chips { margin-top: 12px; }

.row { display: grid; gap: 14px; margin: 0; }
.row > div { display: grid; gap: 2px 14px; }
.row p { min-width: 0; overflow-wrap: anywhere; }
.lbl { font: 600 12px var(--f-mono); letter-spacing: .04em; color: var(--acento-2); padding-top: 4px; }
@media (min-width: 640px) { .row > div { grid-template-columns: 8rem minmax(0, 1fr); } }
.tools { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 16px; }
.toast { color: var(--texto-2); font-size: 15px; align-self: center; }
/* gráficos e mapa: SVG feito à mão, cores pelos tokens do tema */
.fig { margin-top: 16px; }
.item .fig { background: var(--superficie-2); margin-top: 14px; padding: 14px; }
.fig.mini svg { max-width: 480px; }
.fig svg .peq { font-size: 11px; }
.hoje { stroke: var(--ok); stroke-width: 1.5; }
.fig svg .hoje-t { fill: var(--ok); font-weight: 600; }
.fatia { fill: none; stroke-width: 22; }
.legenda-fig { display: flex; flex-wrap: wrap; gap: 6px 18px; margin-top: 12px; font-size: 13px; color: var(--texto-2); }
.legenda-fig i { display: inline-block; width: 11px; height: 11px; border-radius: 3px; margin-right: 6px; vertical-align: -1px; }
.item .caixa { fill: var(--superficie); }
.ico { fill: none; stroke: var(--acento-borda); stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.mapa svg { background: var(--superficie-2); border-radius: 8px; max-width: 520px; margin: 0 auto; }
.fig.mapa svg { overflow: hidden; }
.mapa .viz { fill: color-mix(in srgb, var(--texto-2) 12%, transparent); stroke: color-mix(in srgb, var(--texto-2) 45%, transparent); stroke-width: .6; vector-effect: non-scaling-stroke; }
.mapa .br { fill: color-mix(in srgb, var(--acento) 24%, transparent); stroke: var(--acento-borda); stroke-width: 1.1; vector-effect: non-scaling-stroke; }
.mapa .grat { fill: none; stroke: var(--linha); stroke-width: .5; vector-effect: non-scaling-stroke; }
.mapa .halo { fill: var(--acento-2); opacity: .25; transform-box: fill-box; transform-origin: center; animation: pulso 2.4s ease-out infinite; }
.mapa .pin { fill: var(--acento-2); stroke: var(--superficie); stroke-width: 2; }
.fig svg .rot { font: 700 15px var(--f-corpo); fill: var(--texto); paint-order: stroke; stroke: var(--superficie-2); stroke-width: 4px; stroke-linejoin: round; }
.fig svg .rot-br { font-size: 13px; letter-spacing: .14em; fill: var(--acento-texto); }
@keyframes pulso { from { transform: scale(.4); opacity: .5; } to { transform: scale(1.9); opacity: 0; } }
footer { border-top: 1px solid var(--linha); margin-top: 40px; padding-block: 18px; color: var(--texto-2); font-size: 14px; }
