/* Patrimo 7.0 — extensões de aplicação sobre o Design Kit (patrimo7-ui.css).
   Somente tokens (var(--…)) e prefixo pt-. Sem !important. */

html, body { height: 100%; }
body { margin: 0; background: var(--canvas); }
#root { height: 100dvh; }

/* ---------- Shell ---------- */
.pt-topbar__search { flex: 0 1 320px; min-width: 160px; }
.pt-topbar .pt-kbd { white-space: nowrap; }
.pt-topbar .pt-crumbs { min-width: 0; overflow: hidden; text-overflow: ellipsis; }
.pt-sidebar__cfg { margin-top: auto; padding: var(--space-2) var(--space-3); }
.pt-sidebar__cfg + .pt-sidebar__foot { margin-top: 0; }
.pt-sidebar__foot--btn { width: 100%; background: transparent; border-left: 0; border-right: 0; border-bottom: 0; color: inherit; font: inherit; text-align: left; cursor: pointer; }
.pt-sidebar__foot--btn:hover { background: var(--nav-surface); }
.pt-avatar--btn { cursor: pointer; font-family: inherit; }
.pt-avatar--btn:hover { background: var(--surface-2); }

.pt-mktcard { margin: var(--space-2) var(--space-3); padding: var(--space-3); border: 1px solid var(--nav-border); border-radius: var(--radius-sm); background: var(--nav-surface); color: var(--nav-text); }
.pt-mktcard__h { display: flex; align-items: center; gap: var(--space-2); font-size: 11px; line-height: 16px; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; color: var(--nav-muted); }
.pt-mktcard__dot { width: 8px; height: 8px; border-radius: var(--radius-pill); background: var(--nav-muted); flex: none; }
.pt-mktcard[data-session="trading"] .pt-mktcard__dot { background: var(--positive); }
.pt-mktcard[data-session="pre-open"] .pt-mktcard__dot,
.pt-mktcard[data-session="closing-call"] .pt-mktcard__dot { background: var(--warning); }
.pt-mktcard__s { margin-top: var(--space-1); font-size: 14px; line-height: 20px; font-weight: 600; color: var(--nav-text-strong); }
.pt-mktcard__n { font-size: 12px; line-height: 16px; color: var(--nav-muted); }
@container ptshell (max-width:1023px) { .pt-mktcard { display: none; } }

.pt-topstatus { display: flex; align-items: center; gap: var(--space-4); min-width: 0; }
.pt-tick { display: inline-flex; align-items: center; gap: var(--space-2); white-space: nowrap; }
.pt-tick__l { font-size: 11px; line-height: 16px; font-weight: 600; letter-spacing: .06em; color: var(--text-muted); }
.pt-tick__v { font-weight: 500; color: var(--text-primary); }

.pt-topstatus .pt-status { flex-wrap: nowrap; white-space: nowrap; }
@container ptshell (max-width:1759px) { .pt-topstatus .pt-status span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; } .pt-beta { display: none; } }
@container ptshell (max-width:1439px) { .pt-topstatus .pt-tick { display: none; } }
@container ptshell (max-width:1439px) { .pt-topbar { gap: var(--space-2); } }

.pt-beta { display: inline-flex; align-items: center; border: 1px solid var(--border-strong); border-radius: var(--radius-pill); background: var(--surface-2); overflow: hidden; flex: none; }
.pt-beta[aria-hidden="true"] { display: none; }
.pt-beta.is-visible, .pt-beta[aria-hidden="false"] { display: inline-flex; }
.pt-beta__main { display: inline-flex; align-items: center; gap: var(--space-2); padding: 0 var(--space-3); height: 28px; border: 0; background: transparent; font: inherit; font-size: 12px; color: var(--text-secondary); cursor: pointer; }
.pt-beta__main b { color: var(--brand-text); font-weight: 600; }
.pt-beta__x { width: 28px; height: 28px; border: 0; background: transparent; color: var(--text-muted); cursor: pointer; font: inherit; font-size: 16px; line-height: 1; }
.pt-beta__x:hover { color: var(--text-primary); }

/* ---------- Guia da página ---------- */
.pt-coach { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--space-4); flex-wrap: wrap; padding: var(--space-4); border: 1px solid var(--border-subtle); border-left: 3px solid var(--brand-ui); border-radius: var(--radius-md); background: var(--surface-1); }
.pt-coach__main { display: flex; flex-direction: column; gap: var(--space-1); min-width: 0; flex: 1 1 320px; }
.pt-coach__list { margin: var(--space-1) 0 0; padding-left: var(--space-5); color: var(--text-secondary); font-size: 13px; line-height: 20px; }
.pt-coach__act { display: flex; align-items: center; gap: var(--space-2); flex-wrap: wrap; }

/* ---------- Plano bloqueado ---------- */
.pt-benefits { list-style: none; margin: var(--space-5) 0 0; padding: 0; display: grid; gap: var(--space-2); }
.pt-benefits li { display: flex; gap: var(--space-2); align-items: flex-start; color: var(--text-secondary); }
.pt-benefits .pt-icon { color: var(--positive); flex: none; margin-top: 2px; }

/* ---------- Compatibilidade (páginas ainda não migradas) ---------- */
.pt-compat { min-width: 0; }

/* ---------- Grades e utilitários de página ---------- */
@container ptshell (min-width:1024px) { .pt-grid--1-2 { grid-template-columns: minmax(0,1fr) minmax(0,2fr); } .pt-grid--3 { grid-template-columns: repeat(3, minmax(0,1fr)); } }
@container ptshell (min-width:768px) and (max-width:1023px) { .pt-grid--3 { grid-template-columns: repeat(2, minmax(0,1fr)); } }
.pt-ondesk { display: none; }
.pt-onmob { display: block; }
@container ptshell (min-width:768px) { .pt-ondesk { display: block; } .pt-onmob { display: none; } }
.pt-dl { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: var(--space-2) var(--space-5); margin: 0; }
.pt-dl dd { text-align: right; margin: 0; max-width: 100%; overflow-wrap: anywhere; }
.pt-stack { display: flex; flex-direction: column; gap: var(--space-4); }

/* ---------- Painel ---------- */
.pt-plan { display: flex; flex-direction: column; gap: var(--space-4); }
.pt-plan__head { display: flex; justify-content: space-between; align-items: baseline; gap: var(--space-3); flex-wrap: wrap; }
.pt-plan__pct { font-family: var(--font-num); font-size: 22px; line-height: 28px; font-weight: 500; }
.pt-minis { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px,1fr)); gap: var(--space-4); margin: 0; }
.pt-mini { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.pt-mini dt { font-size: 12px; line-height: 16px; color: var(--text-secondary); }
.pt-mini dd { margin: 0; font-family: var(--font-num); font-size: 18px; line-height: 24px; font-weight: 500; overflow-wrap: anywhere; }
.pt-mini small { font-size: 12px; line-height: 16px; color: var(--text-muted); }
.pt-attn { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: var(--space-3); }
.pt-attn li { display: grid; grid-template-columns: 20px minmax(0,1fr); gap: var(--space-3); align-items: start; }
.pt-attn .pt-icon { margin-top: 2px; }
.pt-attn b { display: block; font-weight: 600; }
.pt-attn span { color: var(--text-secondary); font-size: 13px; line-height: 20px; }
.pt-next { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }
.pt-next li + li { border-top: 1px solid var(--border-subtle); }
.pt-next button { display: grid; grid-template-columns: 24px minmax(0,1fr) 16px; gap: var(--space-3); align-items: center; width: 100%; min-height: var(--target-min); padding: var(--space-3) 0; border: 0; background: transparent; color: inherit; font: inherit; text-align: left; cursor: pointer; }
.pt-next button:hover b { color: var(--brand-text); }
.pt-next b { display: block; font-weight: 600; }
.pt-next span { display: block; font-size: 13px; line-height: 20px; color: var(--text-secondary); }
.pt-goalrow { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: var(--space-2) var(--space-4); align-items: center; }
.pt-asset-cell { display: flex; align-items: center; gap: var(--space-3); min-width: 0; }
.pt-goals { display: flex; flex-direction: column; gap: var(--space-5); }
.pt-goals .pt-goal { display: block; }
.pt-goal__top { display: flex; justify-content: space-between; gap: var(--space-3); align-items: baseline; flex-wrap: wrap; }
.pt-goal__name { font-weight: 500; }
.pt-goal__bar { position: relative; height: 10px; margin: var(--space-2) 0 var(--space-1); background: var(--surface-3); border: 1px solid var(--border-subtle); border-radius: var(--radius-pill); }
.pt-goal__fill { height: 100%; background: var(--brand-ui); border-radius: var(--radius-pill); }
.pt-goal__tick { position: absolute; top: -4px; bottom: -4px; width: 2px; background: var(--text-primary); }
.pt-goal__foot { display: flex; justify-content: space-between; gap: var(--space-3); align-items: center; flex-wrap: wrap; }

/* ---------- Minha Carteira ---------- */
.pt-tabpanel { display: flex; flex-direction: column; gap: var(--space-6); min-width: 0; }
.pt-periodbar { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-3) var(--space-4); }
.pt-periodbar { min-width: 0; max-width: 100%; }
.pt-periodbar > * { min-width: 0; max-width: 100%; }
.pt-dates { display: flex; gap: var(--space-3); align-items: flex-end; flex-wrap: wrap; }
.pt-dates__f { display: flex; flex-direction: column; gap: var(--space-1); }
.pt-input-native { height: var(--ctl-h); padding: 0 var(--space-3); border: 1px solid var(--border-strong); border-radius: var(--radius-sm); background: var(--surface-1); color: var(--text-primary); font: inherit; }
.pt-input-native:focus-visible { outline: 2px solid var(--focus-ring); outline-offset: 1px; }
.pt-tabpanel .pt-tabs { max-width: 100%; }
.pt-switch input[type="checkbox"] { min-height: 0; width: 44px; height: 24px; }
.pt-table th { text-transform: none; letter-spacing: normal; }
/* o botão flutuante do Agente (legado) não deve cobrir o fim das páginas no celular */
@container ptshell (max-width:767px) { #pt-main { padding-bottom: calc(var(--space-12) + 72px); } }
/* Topbar compacta (<1280): chip Open Beta sai; a informação continua no cartão do Painel. */
@container ptshell (max-width:1279px) { .pt-beta, .pt-beta.is-visible, .pt-beta[aria-hidden="false"] { display: none; } }
@container ptshell (max-width:1279px) {
  .pt-topbar .pt-crumb--anc { display: none; }
  .pt-topbar .pt-topbar__search { flex: none; width: var(--ctl-h); min-width: 0; }
  .pt-topbar .pt-gsearch { width: var(--ctl-h); padding: 0; justify-content: center; }
  .pt-topbar .pt-gsearch span, .pt-topbar .pt-gsearch kbd { display: none; }
}
@container ptshell (max-width:767px) { .pt-topbar { gap: var(--space-2); } }

/* Tabelas V7 sempre em modo tabela e na largura total: imunes ao auditor de rolagem legado (data-scroll-audit) mesmo com script em cache. */
.pt-tablewrap table.pt-table, .pt-tablewrap table.pt-table[data-scroll-audit] { display: table; width: 100%; white-space: normal; overflow: visible; }

/* ---------- Visuais complementares (patrimo7-charts.js) ---------- */
.pt-spark { display: block; overflow: visible; flex: none; }
.pt-inbar { display: inline-flex; align-items: center; gap: var(--space-2); min-width: 0; width: 100%; }
.pt-inbar__track { flex: 1; min-width: 36px; height: 8px; border-radius: var(--radius-pill); background: var(--surface-3); overflow: hidden; }
.pt-inbar__fill { display: block; height: 100%; border-radius: var(--radius-pill); }
.pt-inbar__v { flex: none; min-width: 52px; text-align: right; }

.pt-div { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: var(--space-2); }
.pt-div__row { display: grid; grid-template-columns: minmax(96px, 1fr) minmax(80px, 2fr) auto; align-items: center; gap: var(--space-3); min-height: 32px; }
.pt-div__lab { display: flex; flex-direction: column; min-width: 0; line-height: 16px; }
.pt-div__lab b { font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pt-div__lab small { color: var(--text-muted); font-size: 11px; }
.pt-div__track { position: relative; height: 10px; border-radius: var(--radius-pill); background: var(--surface-3); }
.pt-div__zero { position: absolute; left: 50%; top: -3px; bottom: -3px; width: 1px; background: var(--border-strong); }
.pt-div__bar { position: absolute; top: 0; bottom: 0; border-radius: var(--radius-pill); }
.pt-div__val { min-width: 76px; text-align: right; font-weight: 600; }
.pt-div__val.is-pos { color: var(--positive); }
.pt-div__val.is-neg { color: var(--negative); }

.pt-tiles { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: var(--space-2); }
.pt-tile { display: flex; flex-direction: column; justify-content: space-between; gap: 2px; min-height: 60px; padding: var(--space-2) var(--space-3); border-radius: var(--radius-sm); line-height: 18px; overflow: hidden; }
.pt-tile b { font-weight: 700; }
.pt-tile small { font-size: 12px; }

.pt-ring { position: relative; flex: none; }
.pt-ring__c { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; }
.pt-ring__c b { font-size: 30px; line-height: 34px; font-weight: 600; }
.pt-ring__c small { font-size: 11px; color: var(--text-secondary); }

.pt-mcal { min-width: 0; }
.pt-mcal__h { display: flex; justify-content: space-between; align-items: baseline; gap: var(--space-3); margin-bottom: var(--space-2); text-transform: capitalize; }
.pt-mcal__g { display: grid; grid-template-columns: repeat(7, 1fr); gap: 2px; text-align: center; }
.pt-mcal__w { font-size: 11px; color: var(--text-muted); padding: 2px 0; }
.pt-mcal__d { position: relative; display: flex; align-items: center; justify-content: center; min-height: 32px; border-radius: var(--radius-xs); font-size: 13px; color: var(--text-secondary); font-variant-numeric: tabular-nums; }
.pt-mcal__d.has-ev { background: var(--info-bg); color: var(--text-primary); font-weight: 600; }
.pt-mcal__d.has-ev i { position: absolute; bottom: 3px; width: 4px; height: 4px; border-radius: var(--radius-pill); background: var(--brand-ui); }
.pt-mcal__d.is-today { outline: 2px solid var(--action); outline-offset: -2px; color: var(--text-primary); font-weight: 700; }
@media (max-width: 520px) { .pt-div__row { grid-template-columns: minmax(80px, 1fr) minmax(60px, 1.4fr) auto; } .pt-div__val { min-width: 64px; } }

/* ---------- M1.1 · blocos analíticos da Carteira ---------- */
.pt-num.is-pos, .pt-div__val.is-pos { color: var(--positive); }
.pt-num.is-neg, .pt-div__val.is-neg { color: var(--negative); }
.pt-muted { color: var(--text-muted); }
.pt-kvs { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: var(--space-3) var(--space-5); margin: 0; }
.pt-kv { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.pt-kv dt { font-size: 12px; line-height: 16px; color: var(--text-secondary); }
.pt-kv dd { margin: 0; display: flex; flex-direction: column; }
.pt-kv dd .pt-num { font-size: 20px; line-height: 26px; font-weight: 500; }
.pt-kv dd small { font-size: 12px; line-height: 16px; color: var(--text-muted); }
.pt-spark-row { display: flex; align-items: center; justify-content: space-between; gap: var(--space-3); padding-bottom: var(--space-3); border-bottom: 1px solid var(--border-subtle); }
.pt-mini__spark { display: block; margin-top: 2px; }
.pt-bench-lab { display: inline-flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.pt-swatch { display: inline-block; width: 10px; height: 10px; border-radius: 3px; flex: none; }
.pt-chips { display: flex; flex-wrap: wrap; gap: var(--space-2); }
.pt-chip:disabled { opacity: .6; cursor: not-allowed; }
.pt-chip__note { font-size: 11px; color: var(--text-muted); }
.pt-zoom { display: grid; grid-template-columns: 1fr 1fr auto; gap: var(--space-4); align-items: end; }
.pt-zoom label { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.pt-zoom input[type="range"] { width: 100%; min-height: 0; accent-color: var(--brand-ui); }
.pt-cal-split { display: grid; grid-template-columns: minmax(260px, 340px) minmax(0, 1fr); gap: var(--space-6); align-items: start; }
.pt-evlist, .pt-toplist { display: flex; flex-direction: column; gap: var(--space-3); }
.pt-evlist li { display: flex; justify-content: space-between; align-items: center; gap: var(--space-3); }
.pt-toplist li { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr) auto; gap: var(--space-3); align-items: center; }
.pt-score { display: flex; gap: var(--space-6); align-items: center; flex-wrap: wrap; }
.pt-subscores { flex: 1 1 220px; display: flex; flex-direction: column; gap: var(--space-3); min-width: 0; }
.pt-subscores li { display: grid; grid-template-columns: minmax(96px, 1fr) minmax(110px, 1.4fr); gap: var(--space-3); align-items: center; font-size: 13px; }
.pt-title-xs { margin: 0; font-size: 13px; line-height: 18px; font-weight: 600; color: var(--text-secondary); }
.pt-range { display: inline-flex; align-items: center; gap: 6px; }
.pt-range__v { font-size: 12px; color: var(--text-secondary); }
.pt-range__track { position: relative; display: inline-block; width: 52px; height: 4px; border-radius: 2px; background: var(--surface-3); flex: none; }
.pt-range__track i { position: absolute; top: -3px; width: 4px; height: 10px; border-radius: 2px; background: var(--brand-ui); transform: translateX(-50%); }
.pt-target { display: inline-flex; align-items: center; gap: 4px; }
@container ptshell (max-width: 1023px) { .pt-cal-split { grid-template-columns: minmax(0, 1fr); } .pt-zoom { grid-template-columns: 1fr 1fr; } .pt-zoom .pt-btn { grid-column: 1 / -1; justify-self: start; } }
@container ptshell (max-width: 599px) { .pt-toplist li { grid-template-columns: minmax(0, 1fr) auto; } .pt-toplist li .pt-inbar { grid-column: 1 / -1; order: 3; } .pt-subscores li { grid-template-columns: 1fr; gap: 4px; } }

/* tabelas: sempre na largura do cartão, cabeçalho legível, sem “ilha” estreita */
.pt-tablewrap { width: 100%; }
.pt-table th { white-space: nowrap; }
.pt-table td .pt-inbar { min-width: 118px; }
.pt-table td .pt-asset-cell { min-width: 150px; }
.pt-grid { align-items: stretch; }

/* tabelas densas (Ativos e afins): menos respiro lateral, mais colunas úteis no mesmo cartão */
.pt-tablewrap--dense .pt-table td, .pt-tablewrap--dense .pt-table th { padding-left: 6px; padding-right: 6px; }
.pt-tablewrap--dense .pt-table td { height: 46px; }
.pt-tablewrap--dense .pt-table td .pt-inbar { min-width: 76px; }
.pt-tablewrap--dense .pt-table td .pt-asset-cell { min-width: 128px; }
.pt-tablewrap--dense .pt-table td .pt-inbar__v { min-width: 44px; }
.pt-tablewrap--dense .pt-range__track { width: 34px; }
.pt-cell2 { display: inline-flex; flex-direction: column; align-items: flex-end; line-height: 1.25; }
.pt-cell2 small { font-size: 11px; line-height: 14px; color: var(--text-muted); font-family: var(--font-num); }
.pt-tablewrap--dense .pt-table th { white-space: normal; line-height: 15px; padding-top: 6px; padding-bottom: 6px; vertical-align: bottom; }
.pt-tablewrap--dense .pt-table th .pt-sortbtn, .pt-tablewrap--dense .pt-table th button { white-space: normal; text-align: inherit; }
@container ptshell (min-width: 1024px) { .pt-cols2 > .pt-list-plain, .pt-cols2 ul { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: var(--space-8); align-content: start; } }

/* M1.1 · cabeçalho de bloco: ferramentas quebram de linha em vez de estourar o card */
.pt-card__head { flex-wrap: wrap; }
.pt-card__head > * { min-width: 0; }
.pt-card__head .pt-tools { max-width: 100%; }
.pt-chart__head > * { min-width: 0; }
.pt-chart__head .pt-tools { max-width: 100%; }

/* M1.2 · Diversificação: matriz de correlação, pares e filtro de tipos */
.pt-corr { border-collapse: separate; border-spacing: 2px; font-variant-numeric: tabular-nums; width: max-content; min-width: 100%; }
.pt-corr th { font-size: 12px; line-height: 16px; font-weight: 500; color: var(--text-secondary); padding: 4px 6px; text-align: center; white-space: nowrap; }
.pt-corr tbody th { text-align: left; }
.pt-corr td { min-width: 44px; height: 34px; text-align: center; border-radius: var(--radius-sm); font-size: 12px; font-family: var(--font-num); color: var(--text-primary); background: var(--surface-2); }
.pt-corr td.pt-corr-diag { background: var(--surface-3); color: var(--text-muted); }
.pt-corr-legend { display: inline-flex; align-items: center; flex-wrap: wrap; gap: 4px var(--space-4); font-size: 12px; color: var(--text-secondary); }
.pt-corr-sw { display: inline-block; width: 14px; height: 14px; border-radius: 3px; border: 1px solid var(--border-subtle); margin-left: var(--space-2); }
.pt-corr-sw--neg { background: color-mix(in srgb, var(--chart-2) 55%, var(--surface-2)); }
.pt-corr-sw--zero { background: var(--surface-2); }
.pt-corr-sw--pos { background: color-mix(in srgb, var(--warning) 55%, var(--surface-2)); }
.pt-pairs { display: flex; flex-direction: column; gap: var(--space-2); }
.pt-pairs li { display: grid; grid-template-columns: minmax(0, 1fr) auto 52px; gap: var(--space-3); align-items: baseline; padding: 4px 0; border-bottom: 1px solid var(--border-subtle); }
.pt-pairs li:last-child { border-bottom: 0; }
.pt-pairs small { text-align: right; }
.pt-eyebrow { font-size: 12px; line-height: 16px; font-weight: 600; letter-spacing: .02em; color: var(--text-secondary); margin-bottom: var(--space-2); }
.pt-corr-legend > span { display: inline-flex; align-items: center; white-space: nowrap; }
.pt-corr-sw { margin-left: 0; margin-right: 6px; }
.pt-grid--stretch { align-items: stretch; }
.pt-kvs--4 { grid-template-columns: repeat(auto-fit, minmax(112px, 1fr)); }
.pt-bands { display: grid; grid-template-columns: repeat(auto-fit, minmax(104px, 1fr)); gap: var(--space-2); margin-top: var(--space-3); }
.pt-bands li { display: flex; flex-direction: column; gap: 2px; padding: var(--space-2) var(--space-3); border: 1px solid var(--border-subtle); border-radius: var(--radius-sm); font-size: 12px; line-height: 16px; color: var(--text-secondary); }
.pt-bands li.pt-is-cur { border-color: var(--positive); background: var(--surface-2); color: var(--text-primary); }
.pt-bands li b { font-size: 13px; font-weight: 600; }
.pt-bands li em { font-style: normal; font-weight: 600; color: var(--positive); }
.pt-toplist--tight { gap: 0; }
.pt-toplist--tight li { padding: 7px 0; border-bottom: 1px solid var(--border-subtle); }
.pt-toplist--tight li:last-child { border-bottom: 0; }

/* M1.2 · cartões lado a lado têm a mesma altura e o conteúdo ocupa o espaço (sem faixa vazia embaixo) */
.pt-grid > .pt-card { display: flex; flex-direction: column; }
.pt-grid > .pt-card > .pt-card__head ~ :last-child:not(.pt-chart__foot) { flex: 1 1 auto; }
.pt-grid > .pt-card.pt-chart > .pt-chart__foot { margin-top: auto; }
.pt-grid > .pt-card > .pt-card__head ~ div:last-child { align-content: center; }
.pt-cal-split .pt-evlist { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: var(--space-3) var(--space-6); }
.pt-stk > .pt-caption:last-child { margin-top: auto; }
.pt-grid > .pt-card > .pt-stk:last-child { justify-content: flex-start; }
.pt-spark-row { flex-wrap: wrap; }
.pt-spark-row > * { min-width: 0; max-width: 100%; }

/* ---------- M2 · Mercado ---------- */
@container ptshell (min-width:1024px) { .pt-grid--3-2 { grid-template-columns: minmax(0,3fr) minmax(0,2fr); } .pt-grid--1-2-eq { grid-template-columns: minmax(0,1fr) minmax(0,1fr); } }
.pt-mk-toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-3) var(--space-4); margin-bottom: var(--space-3); }
.pt-mk-toolbar__g { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2); }
.pt-mk-zoom { margin-left: auto; }
.pt-mk-pan { display: inline-flex; align-items: center; gap: var(--space-2); flex: 1 1 160px; max-width: 320px; }
.pt-mk-pan input { flex: 1; min-width: 0; accent-color: var(--brand-ui); }
.pt-chartbox { position: relative; width: 100%; }
.pt-chartbox .pt-svg:focus-visible { outline: 2px solid var(--focus-ring, var(--brand-ui)); outline-offset: 2px; border-radius: var(--radius-sm); }
.pt-mk-idx { padding: var(--space-4); display: flex; flex-direction: column; gap: var(--space-3); min-width: 0; }
.pt-mk-idx__top { display: flex; justify-content: space-between; align-items: flex-start; gap: var(--space-2); }
.pt-mk-idx__t { font-size: 12px; letter-spacing: .08em; text-transform: uppercase; color: var(--text-secondary); }
.pt-mk-idx__row { display: flex; justify-content: space-between; align-items: flex-end; gap: var(--space-3); }
.pt-mk-idx__v { font-size: 24px; line-height: 30px; font-weight: 500; }
.pt-mk-macro { display: grid; grid-template-columns: repeat(auto-fit, minmax(128px, 1fr)); gap: var(--space-3) var(--space-4); margin: 0; }
.pt-mk-macro__i { min-width: 0; padding-bottom: var(--space-2); border-bottom: 1px solid var(--border-subtle); }
.pt-mk-macro__i dt { font-size: 11px; letter-spacing: .08em; color: var(--text-secondary); text-transform: uppercase; }
.pt-mk-macro__i dd { margin: 2px 0; font-size: 18px; line-height: 24px; font-weight: 500; }
.pt-mk-macro__i dd small { font-size: 12px; color: var(--text-muted); font-weight: 400; }
.pt-mk-macro__c { color: var(--text-secondary); }
.pt-mk-sum { display: flex; flex-direction: column; gap: var(--space-2); }
.pt-mk-sum li { line-height: 22px; }
.pt-newslist { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }
.pt-news { border-bottom: 1px solid var(--border-subtle); }
.pt-news:last-child { border-bottom: 0; }
.pt-news__btn { display: flex; flex-direction: column; gap: 4px; width: 100%; text-align: left; background: none; border: 0; padding: var(--space-3) 0; color: inherit; font: inherit; cursor: pointer; border-radius: var(--radius-sm); }
.pt-news__btn:hover .pt-news__t { text-decoration: underline; }
.pt-news__meta { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2); }
.pt-news__t { font-size: 14px; line-height: 20px; font-weight: 500; color: var(--text-primary); text-wrap: pretty; }
.pt-mk-head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: var(--space-4); }
.pt-mk-head__id { display: flex; align-items: center; gap: var(--space-3); min-width: 0; }
.pt-mk-head__t { display: flex; align-items: center; gap: var(--space-2); flex-wrap: wrap; }
.pt-mk-head__n { overflow: hidden; text-overflow: ellipsis; }
.pt-mk-head__q { text-align: right; display: flex; flex-direction: column; align-items: flex-end; gap: 2px; }
.pt-mk-head__p { font-size: 28px; line-height: 34px; font-weight: 500; }
.pt-mk-head__d { display: flex; align-items: center; gap: var(--space-2); flex-wrap: wrap; justify-content: flex-end; }
.pt-heatboard { display: flex; flex-wrap: wrap; gap: var(--space-3); align-items: stretch; }
.pt-heatsec { display: flex; flex-direction: column; gap: var(--space-2); min-width: 0; }
.pt-heatsec__h { display: flex; justify-content: space-between; gap: var(--space-2); align-items: baseline; flex-wrap: wrap; }
.pt-heatsec__t { display: flex; flex-wrap: wrap; gap: 2px; flex: 1; }
.pt-heattile { display: flex; flex-direction: column; justify-content: center; align-items: center; gap: 2px; min-width: 0; border: 0; border-radius: var(--radius-sm); color: var(--text-primary); font: inherit; cursor: pointer; padding: var(--space-2); }
.pt-heattile b { font-size: 14px; }
.pt-heattile .pt-num { font-weight: 600; }
.pt-heattile:hover { outline: 2px solid var(--text-primary); outline-offset: -2px; }
.pt-heattile:focus-visible { outline: 2px solid var(--focus-ring, var(--brand-ui)); outline-offset: 1px; }
.pt-asset-cell.pt-linkbtn { text-decoration: none; color: inherit; font-size: inherit; text-align: left; }
.pt-asset-cell.pt-linkbtn:hover .pt-asset__sym { text-decoration: underline; }

/* ---------- M2 · Análise ---------- */
.pt-an-search { max-width: 420px; margin-bottom: var(--space-4); }
.pt-fund-groups { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr)); gap: var(--space-4); }
.pt-stm-limit { min-width: 140px; }
.pt-stm-toggle { text-decoration: none; color: var(--text-primary); }
.pt-lab-checks { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: var(--space-1) var(--space-4); max-height: 260px; overflow: auto; margin-top: var(--space-3); padding: var(--space-1); }
.pt-report-set { border: 1px solid var(--border-subtle); border-radius: var(--radius-md); padding: var(--space-3) var(--space-4); margin: var(--space-3) 0 0; min-width: 0; }
.pt-report-set legend { font-size: 13px; font-weight: 600; padding: 0 var(--space-2); }
.pt-plan-form { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: var(--space-4); margin-bottom: var(--space-4); }
.pt-grid--start { align-items: start; }

/* ---------- M2 · FIIs e Cripto ---------- */
@container ptshell (min-width:1024px) { .pt-grid--1-2.pt-grid--start { grid-template-columns: minmax(300px,1fr) minmax(0,2fr); } }
.pt-fii-filters { display: grid; grid-template-columns: 1fr; gap: var(--space-3); margin-bottom: var(--space-3); }
.pt-fii-criteria { margin: 0 0 var(--space-3); border: 1px solid var(--border-subtle); border-radius: var(--radius-md); padding: var(--space-2) var(--space-3); }
.pt-fii-criteria > summary { cursor: pointer; font-weight: 600; color: var(--text-primary); padding: var(--space-1) 0; }
.pt-fii-criteria[open] > summary { margin-bottom: var(--space-3); }
.pt-fii-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; max-height: 640px; overflow: auto; border: 1px solid var(--border-subtle); border-radius: var(--radius-md); }
.pt-fii-item { display: flex; align-items: center; gap: var(--space-3); width: 100%; text-align: left; background: none; border: 0; border-bottom: 1px solid var(--border-subtle); padding: var(--space-3); color: inherit; font: inherit; cursor: pointer; }
.pt-fii-item:hover { background: var(--surface-2); }
.pt-fii-item[aria-pressed="true"] { background: var(--surface-3); box-shadow: inset 3px 0 0 var(--brand-ui); }
.pt-fii-item .pt-asset__txt { flex: 1; min-width: 0; }
.pt-fii-item__v { display: flex; flex-direction: column; align-items: flex-end; flex: none; }
.pt-link { color: var(--brand-text); display: inline-flex; align-items: center; gap: 4px; }
.pt-kvs--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }

/* ===== M2 · Radar de Notícias ===== */
.pt-news__search { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: var(--space-3); align-items: end; margin-bottom: var(--space-3); }
.pt-news__filters { overflow-x: auto; padding-bottom: 2px; }
.pt-news--card { display: flex; align-items: center; gap: var(--space-3); }
.pt-news--card .pt-news__btn { flex: 1 1 auto; min-width: 0; }
.pt-news__side { display: flex; align-items: center; gap: var(--space-2); flex: 0 0 auto; }
.pt-news__thumb { width: 88px; height: 60px; object-fit: cover; border-radius: var(--radius-sm); background: var(--canvas); }
@media (max-width: 640px) {
  .pt-news__search { grid-template-columns: 1fr; align-items: stretch; }
  .pt-news--card { flex-direction: column; align-items: stretch; gap: 0; }
  .pt-news__side { justify-content: space-between; padding-bottom: var(--space-3); }
}

/* ===== M2 · Radar Inteligente ===== */
.pt-label { font-size: 12px; line-height: 16px; font-weight: 600; letter-spacing: .02em; color: var(--text-secondary); margin-bottom: var(--space-1); }
.pt-bullets { margin: 0; padding-left: var(--space-5); display: flex; flex-direction: column; gap: var(--space-2); font-size: 14px; line-height: 20px; color: var(--text-secondary); }
.pt-mk-hint { margin: var(--space-2) 0 0; }
/* Mapas de calor: faixas discretas com fundo e tinta próprios (contraste ≥ 4,5:1 nos dois temas); azul = alta, dourado = queda */
.pt-heat-p1 { background: var(--heat-p1-bg); color: var(--heat-p1-ink); }
.pt-heat-p2 { background: var(--heat-p2-bg); color: var(--heat-p2-ink); }
.pt-heat-p3 { background: var(--heat-p3-bg); color: var(--heat-p3-ink); }
.pt-heat-p4 { background: var(--heat-p4-bg); color: var(--heat-p4-ink); }
.pt-heat-n1 { background: var(--heat-n1-bg); color: var(--heat-n1-ink); }
.pt-heat-n2 { background: var(--heat-n2-bg); color: var(--heat-n2-ink); }
.pt-heat-n3 { background: var(--heat-n3-bg); color: var(--heat-n3-ink); }
.pt-heat-n4 { background: var(--heat-n4-bg); color: var(--heat-n4-ink); }
.pt-heat-z { background: var(--heat-z-bg); color: var(--heat-z-ink); }
.pt-tile small { opacity: 1; }
.pt-heatlegend { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2) var(--space-3); margin: var(--space-3) 0 0; padding: 0; list-style: none; }
.pt-heatlegend__lbl { font-size: 12px; color: var(--text-secondary); }
.pt-heatlegend__i { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; color: var(--text-secondary); }
.pt-heatlegend__sw { display: inline-block; width: 18px; height: 14px; border-radius: 3px; border: 1px solid var(--border-subtle, var(--chart-grid)); flex: none; }
.pt-tile small { color: inherit; }

/* ===== M3 · Acompanhamento (Proventos, Calendário, Comparativo, Planejador, Watchlist, Monitoramento, Agente) ===== */
.pt-m3-filters{display:flex;flex-wrap:wrap;gap:var(--space-4);align-items:flex-end}
.pt-m3-filters .pt-field{min-width:180px}
.pt-m3-viewbar{display:flex;flex-wrap:wrap;gap:var(--space-3) var(--space-4);align-items:center;justify-content:space-between}

/* Calendário */
.pt-cal-g--income{--g:var(--chart-1)} .pt-cal-g--result{--g:var(--info)} .pt-cal-g--macro{--g:var(--chart-4)} .pt-cal-g--investment{--g:var(--positive)} .pt-cal-g--sale{--g:var(--negative)} .pt-cal-g--other{--g:var(--text-muted)}
.pt-cal-nav{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-3)}
.pt-cal-nav__title{margin:0;min-width:150px;text-align:center}
.pt-cal-legend{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-bottom:var(--space-4)}
.pt-cal-chip{display:inline-flex;align-items:center;gap:6px;min-height:32px;padding:0 var(--space-3);border:1px solid var(--border-subtle);border-radius:var(--radius-pill);background:var(--surface-1);color:var(--text-secondary);font:inherit;font-size:13px;cursor:pointer}
.pt-cal-chip i{width:8px;height:8px;border-radius:50%;background:var(--g)}
.pt-cal-chip[aria-pressed="true"]{color:var(--text-primary);border-color:var(--g);background:var(--surface-2)}
.pt-cal-chip[aria-pressed="false"] i{background:transparent;box-shadow:inset 0 0 0 1.5px var(--g)}
.pt-cal-chip:focus-visible,.pt-cal-cell:focus-visible,.pt-cal-day:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}
.pt-cal-weekhead,.pt-cal-week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:var(--space-1)}
.pt-cal-weekhead{margin-bottom:var(--space-1);text-align:center;font-size:12px;color:var(--text-secondary)}
.pt-cal-month{display:flex;flex-direction:column;gap:var(--space-1)}
.pt-cal-cell{display:flex;flex-direction:column;gap:4px;width:100%;min-height:104px;padding:var(--space-2);text-align:left;border:1px solid var(--border-subtle);border-radius:var(--radius-sm);background:var(--surface-1);color:var(--text-primary);font:inherit;cursor:pointer;overflow:hidden}
.pt-cal-cell--out{min-height:0;border:0;background:transparent}
.pt-cal-cell:hover{background:var(--surface-2)}
.pt-cal-cell.is-today .pt-cal-cell__num{color:var(--brand-text);font-weight:700}
.pt-cal-cell.is-selected{border-color:var(--action);box-shadow:inset 0 0 0 1px var(--action)}
.pt-cal-cell__top{display:flex;justify-content:space-between;align-items:center}
.pt-cal-cell__num{font-family:var(--font-num);font-size:13px}
.pt-cal-cell__count{font-size:11px;color:var(--text-secondary)}
.pt-cal-cell__chips{display:flex;flex-direction:column;gap:2px;min-width:0}
.pt-cal-cell__dots{display:none;gap:3px}
.pt-cal-cell__dots i{width:6px;height:6px;border-radius:50%;background:var(--g)}
.pt-cal-mini{display:block;padding:2px 6px;border-left:3px solid var(--g);border-radius:var(--radius-xs);background:var(--surface-2);font-size:11px;line-height:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--text-primary)}
.pt-cal-weekview{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:var(--space-2)}
.pt-cal-day{display:flex;flex-direction:column;gap:var(--space-2);min-height:180px;padding:var(--space-3);text-align:left;border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--surface-1);color:var(--text-primary);font:inherit;cursor:pointer}
.pt-cal-day.is-selected{border-color:var(--action);box-shadow:inset 0 0 0 1px var(--action)}
.pt-cal-day.is-today .pt-cal-day__num{color:var(--brand-text)}
.pt-cal-day__num{font-family:var(--font-num);font-size:20px}
.pt-cal-day__list{display:flex;flex-direction:column;gap:4px;min-width:0}
.pt-cal-evlist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.pt-cal-ev{display:grid;grid-template-columns:4px 56px minmax(0,1fr) auto;gap:var(--space-4);align-items:center;padding:var(--space-3) 0;border-bottom:1px solid var(--border-subtle)}
.pt-cal-ev:last-child{border-bottom:0}
.pt-cal-ev__bar{align-self:stretch;border-radius:2px;background:var(--g)}
.pt-cal-ev__date{display:flex;flex-direction:column;text-align:center;font-family:var(--font-num);font-size:14px}
.pt-cal-ev__date small{font-size:11px;color:var(--text-muted)}
.pt-cal-ev__badges{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-bottom:4px}
.pt-cal-ev__title{font-weight:600;overflow-wrap:anywhere}
.pt-cal-ev__side{display:flex;flex-direction:column;align-items:flex-end;gap:var(--space-1)}
@container ptshell (max-width:767px){
  .pt-cal-cell{min-height:56px;align-items:center;padding:var(--space-1)}
  .pt-cal-cell__chips,.pt-cal-cell__count{display:none}
  .pt-cal-cell__dots{display:flex;min-height:8px}
  .pt-cal-weekview{grid-template-columns:1fr}
  .pt-cal-day{min-height:0}
  .pt-cal-ev{grid-template-columns:4px minmax(0,1fr)}
  .pt-cal-ev__date{grid-column:2;flex-direction:row;gap:var(--space-2);justify-content:flex-start}
  .pt-cal-ev__main,.pt-cal-ev__side{grid-column:2}
  .pt-cal-ev__bar{grid-row:1 / span 3}
  .pt-cal-ev__side{align-items:flex-start}
}

/* Comparativo */
.pt-cmp-head{display:flex;flex-wrap:wrap;gap:var(--space-4);align-items:flex-end;justify-content:space-between}
.pt-cmp-chips{display:flex;flex-wrap:wrap;gap:var(--space-2)}
.pt-cmp-x{margin-left:6px;border:0;background:transparent;color:var(--text-secondary);font:inherit;font-size:16px;line-height:1;min-width:24px;min-height:24px;cursor:pointer;border-radius:var(--radius-xs)}
.pt-cmp-x:hover:not(:disabled){color:var(--negative)} .pt-cmp-x:focus-visible{outline:2px solid var(--focus-ring)} .pt-cmp-x:disabled{opacity:.4;cursor:not-allowed}
.pt-cmp-add{display:flex;gap:var(--space-3);align-items:flex-end;flex-wrap:wrap}
.pt-cmp-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-6);align-items:start}
@container ptshell (min-width:1024px){.pt-cmp-layout{grid-template-columns:minmax(280px,340px) minmax(0,1fr)}}
.pt-cmp-list{display:flex;flex-direction:column;max-height:320px;overflow:auto}
.pt-cmp-list li{display:flex;justify-content:space-between;align-items:center;gap:var(--space-2);padding:var(--space-1) 0;border-bottom:1px solid var(--border-subtle)}
.pt-cmp-actions{display:inline-flex;gap:2px}
.pt-cmp-chips.pt-list-plain{flex-direction:row;flex-wrap:wrap;gap:var(--space-2)}
.pt-cmp-chips.pt-list-plain li{border:0;padding:0}

/* Planejador */
.pt-form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--space-4)}
.pt-form-grid--1{grid-template-columns:minmax(0,1fr)}
.pt-form-wide{grid-column:1 / -1}
.pt-input--area{height:auto;align-items:stretch;padding:var(--space-2) var(--space-3)}
.pt-input--area textarea{flex:1;min-width:0;border:0;outline:0;resize:vertical;background:transparent;color:inherit;font:inherit;min-height:72px}
.pt-sugg{counter-reset:s}
.pt-sugg li{gap:var(--space-3)}
.pt-sugg__rank{display:inline-grid;place-items:center;width:26px;height:26px;border-radius:50%;background:var(--surface-2);font-family:var(--font-num);font-size:13px;flex:none}
.pt-sugg__txt{display:flex;flex-direction:column;flex:1;min-width:0}
.pt-theses li{display:block}
.pt-thesis header{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-3)}
.pt-thesis p{margin:var(--space-2) 0 0;overflow-wrap:anywhere}
.pt-field--nolabel .pt-field__label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ===== M3 · Watchlist e Monitoramento ===== */
.pt-addasset{display:flex;flex-direction:column;gap:var(--space-3)}
.pt-addasset__row{display:grid;grid-template-columns:minmax(160px,220px) minmax(180px,1fr) auto;gap:var(--space-4);align-items:flex-start}
.pt-addasset__row .pt-btn{margin-top:26px}
.pt-addasset__sugg{display:flex;flex-wrap:wrap;gap:var(--space-2);align-items:center}
.pt-chip-btn{border:1px solid var(--border-strong);background:var(--surface-1);color:var(--text-primary);border-radius:var(--radius-pill);padding:4px 12px;font:inherit;font-size:13px;cursor:pointer;min-height:32px}
.pt-chip-btn:hover{border-color:var(--border-strong);background:var(--surface-2)}
.pt-chip-btn:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}
.pt-rowactions{display:inline-flex;gap:var(--space-2);align-items:center;flex-wrap:wrap}
.pt-quote-cell{display:inline-flex;flex-direction:column;align-items:flex-end;gap:2px}
.pt-quote-blank{display:inline-flex;gap:var(--space-2);align-items:center;justify-content:flex-end}
.pt-alertline{font-size:13px}
@media (max-width:767px){.pt-addasset__row{grid-template-columns:1fr}.pt-addasset__row .pt-btn{margin-top:0;justify-self:start}}

/* ===== M3 · Agente Patrimo ===== */
.pt-agent-capsule{display:flex;align-items:center;gap:var(--space-3);width:100%;text-align:left;padding:var(--space-3) var(--space-4);border:1px solid var(--border-strong);border-radius:var(--radius-md);background:var(--surface-1);color:var(--text-primary);font:inherit;cursor:pointer;min-height:44px}
.pt-agent-capsule:hover{background:var(--surface-2)}
.pt-agent-capsule:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}
.pt-agent-capsule>span:nth-child(2){flex:1;min-width:0;overflow-wrap:anywhere}
.pt-agent-capsule__edit{color:var(--brand-text);font-weight:600;font-size:13px}
.pt-agent-thread{display:flex;flex-direction:column;gap:var(--space-5)}
.pt-agent-thread .pt-msg{max-width:860px}
.pt-agent-thread .pt-msg__bubble>div:not(.pt-msg__who){white-space:normal}
.pt-agent-answer{display:flex;flex-direction:column;gap:var(--space-4);white-space:normal}
.pt-agent-rich p{margin:0 0 var(--space-2)}
.pt-agent-rich p:last-child{margin-bottom:0}
.pt-agent-list{margin:0 0 var(--space-2);padding-left:var(--space-5)}
.pt-agent-block h4{margin:0 0 var(--space-2);font-size:14px;line-height:20px;font-weight:600}
.pt-agent-foot{display:flex;flex-wrap:wrap;gap:var(--space-3);align-items:center;justify-content:space-between;border-top:1px solid var(--border-subtle);padding-top:var(--space-3)}
.pt-agent-src{display:flex;flex-wrap:wrap;gap:var(--space-2)}
.pt-agent-actions{display:flex;gap:var(--space-2)}
.pt-agent-follow{display:flex;flex-wrap:wrap;gap:var(--space-2)}
.pt-agent-follow .pt-chip-btn{text-align:left;height:auto;white-space:normal}
.pt-agent-loading{display:flex;gap:var(--space-3);align-items:center;padding:var(--space-3) var(--space-4)}
.pt-agent-empty{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-6) 0}
.pt-agent-starters{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:var(--space-3)}
.pt-starter{display:flex;flex-direction:column;gap:var(--space-1);text-align:left;padding:var(--space-4);border:1px solid var(--border-strong);border-radius:var(--radius-md);background:var(--surface-1);color:var(--text-primary);font:inherit;cursor:pointer}
.pt-starter span{color:var(--text-secondary);font-size:13px;line-height:18px}
.pt-starter:hover{border-color:var(--brand-text)}
.pt-starter:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}
.pt-agent-composer{position:sticky;bottom:0;background:var(--canvas);padding:var(--space-3) 0}
.pt-hist{display:flex;gap:var(--space-2);align-items:center;border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:var(--space-2) var(--space-3)}
.pt-hist__open{flex:1;min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:2px;border:0;background:transparent;color:var(--text-primary);font:inherit;text-align:left;cursor:pointer;padding:var(--space-1) 0}
.pt-hist__open:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}

/* ---------- M4 · Perfil, Instituições, Conta ---------- */
.pt-chip-btn[aria-pressed="true"]{border-color:var(--brand-ui);background:var(--surface-2);box-shadow:inset 0 0 0 1px var(--brand-ui);font-weight:600}
.pt-chips{display:flex;flex-wrap:wrap;gap:var(--space-2)}
.pt-formgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--space-4)}
.pt-goalgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:var(--space-4)}
.pt-goal{border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-3);background:var(--surface-1)}
.pt-goal__head{display:flex;justify-content:space-between;gap:var(--space-3);align-items:flex-start}
.pt-goal__vals{display:flex;justify-content:space-between;gap:var(--space-3);flex-wrap:wrap}
.pt-savebar{position:sticky;bottom:var(--space-4);z-index:3}
.pt-dl--lead{grid-template-columns:max-content minmax(0,1fr)}
.pt-dl--lead dd{text-align:left}

/* M4 — Central de Dados */
.pt-goal--row{flex-direction:row;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--space-3)}
.pt-goal--row>div{flex:1 1 240px;min-width:0}
.pt-goal--row>input[type=radio]{flex:0 0 auto;accent-color:var(--brand-ui)}
.pt-stepper{list-style:none;margin:0;padding:0;display:flex;gap:var(--space-2);flex-wrap:wrap;counter-reset:none}
.pt-stepper__item{display:flex;align-items:center;gap:var(--space-2);color:var(--text-secondary);font-size:14px}
.pt-stepper__dot{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;border:1px solid var(--border-strong);font-size:12px;font-weight:600;background:var(--surface-1)}
.pt-stepper__item[data-state="current"]{color:var(--text-primary);font-weight:600}
.pt-stepper__item[data-state="current"] .pt-stepper__dot{background:var(--action);border-color:var(--brand-ui);color:var(--on-brand)}
.pt-stepper__item[data-state="done"] .pt-stepper__dot{background:var(--surface-2);border-color:var(--positive);color:var(--positive)}
.pt-stepper__item:not([data-state="current"]) .pt-stepper__label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.pt-filedrop{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-2);text-align:center;padding:var(--space-6) var(--space-4);border:1px dashed var(--border-strong);border-radius:var(--radius-md);cursor:pointer;background:var(--surface-1)}
.pt-filedrop:focus-within{outline:2px solid var(--focus-ring);outline-offset:2px}
.pt-filedrop input[type=file]{max-width:100%}

.pt-filedrop input[type=file]{position:absolute;width:1px;height:1px;opacity:0;overflow:hidden;clip:rect(0 0 0 0)}
.pt-filedrop{position:relative}

/* M4.1 — Administração: corte de textos longos, alertas, módulos do relatório, célula de plano; abas sem barra vertical */
.pt-tabs{overflow-y:hidden}
.pt-adm-clip{display:inline-block;max-width:40ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:bottom}
.pt-adm-alerts{display:grid;gap:var(--space-2)}
.pt-adm-checks{border:0;margin:0;padding:0;display:grid;gap:var(--space-2) var(--space-6);grid-template-columns:repeat(auto-fill,minmax(210px,1fr));min-width:0}
.pt-adm-checks legend{grid-column:1/-1;padding:0;margin-bottom:var(--space-1)}
.pt-adm-plan{display:inline-flex;gap:var(--space-2);align-items:center;flex-wrap:nowrap}
.pt-adm-select{position:relative;min-width:150px}

/* M4.2 — o reset legado `:where(input,select,textarea){min-height:44px}` esticava a caixa do checkbox.
   Remover junto com o CSS legado no M5. */
.pt-app .pt-check input{min-height:0}
.pt-app .pt-check{align-items:flex-start}

/* 7.2 — mapa de calor mensal e painel “Em construção” (somente tokens) */
.pt-mheat { width: 100%; border-collapse: separate; border-spacing: 2px; table-layout: fixed; min-width: 640px; }
.pt-mheat th { font-size: 12px; font-weight: 600; color: var(--text-secondary); text-align: center; padding: var(--space-1); }
.pt-mheat tbody th { text-align: left; color: var(--text-primary); }
.pt-mheat__c { text-align: center; padding: var(--space-2) var(--space-1); border-radius: var(--radius-sm); font-size: 13px; }
.pt-mheat__na { background: var(--surface-2); color: var(--text-secondary); }
.pt-mheat__y { text-align: center; font-weight: 600; padding: var(--space-2) var(--space-1); border-left: 1px solid var(--border-subtle); }
.pt-roadmap { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: var(--space-3); }
.pt-roadmap__i { display: flex; flex-direction: column; gap: var(--space-1); padding: var(--space-3); border: 1px dashed var(--border-strong, var(--border-subtle)); border-radius: var(--radius-md); background: var(--surface-1); min-width: 0; }
.pt-roadmap__h { display: flex; justify-content: space-between; align-items: flex-start; gap: var(--space-2); flex-wrap: wrap; }

/* ---------- 7.6.0 — Assistente de importação B3 ---------- */
.pt-b3wiz { display: grid; gap: var(--space-4); min-width: 0; }
.pt-stack-sm { display: grid; gap: var(--space-3); min-width: 0; }
.pt-b3__lead { margin: 0; }
.pt-b3 { display: grid; gap: var(--space-4); min-width: 0; }
.pt-b3steps { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--space-3); }
.pt-b3steps__item { display: grid; grid-template-columns: 28px minmax(0, 1fr); gap: var(--space-3); align-items: start; padding: var(--space-3); border: 1px solid var(--border-subtle); border-radius: var(--radius-md); background: var(--surface-1); }
.pt-b3steps__n { display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; border-radius: 50%; background: var(--action); color: var(--on-brand); font-size: 13px; font-weight: 600; }
.pt-b3steps__text { margin: 2px 0 0; }
.pt-b3filters { display: grid; border: 1px solid var(--border-subtle); border-radius: var(--radius-md); overflow: hidden; background: var(--surface-1); }
.pt-b3filters__row { display: grid; grid-template-columns: minmax(130px, 0.9fr) minmax(150px, 1fr) minmax(0, 1.8fr); gap: var(--space-3); align-items: center; padding: var(--space-3); border-top: 1px solid var(--border-subtle); }
.pt-b3filters__row:first-child { border-top: 0; }
.pt-b3filters__row--head { background: var(--surface-2); font-size: 12px; font-weight: 600; color: var(--text-secondary); }
.pt-b3groups { display: grid; gap: var(--space-2); }
.pt-b3group { border: 1px solid var(--border-subtle); border-radius: var(--radius-md); background: var(--surface-1); min-width: 0; }
.pt-b3group[data-effect="revisar"] { border-color: var(--warning); }
.pt-b3group[open] { background: var(--surface-2); }
.pt-b3group__sum { display: flex; justify-content: space-between; align-items: center; gap: var(--space-2) var(--space-3); flex-wrap: wrap; padding: var(--space-3); cursor: pointer; list-style: none; }
.pt-b3group__sum::-webkit-details-marker { display: none; }
.pt-b3group__sum::before { content: "+"; flex: 0 0 16px; color: var(--text-secondary); font-weight: 600; text-align: center; }
.pt-b3group[open] > .pt-b3group__sum::before { content: "\2212"; }
.pt-b3group__sum:focus-visible { outline: 2px solid var(--focus-ring); outline-offset: 2px; border-radius: var(--radius-md); }
.pt-b3group__title { font-weight: 600; flex: 1 1 180px; min-width: 0; overflow-wrap: anywhere; }
.pt-b3group__meta { display: inline-flex; align-items: center; gap: var(--space-2); flex-wrap: wrap; }
.pt-b3group__count { font-size: 13px; color: var(--text-secondary); font-variant-numeric: tabular-nums; }
.pt-b3group__body { display: grid; gap: var(--space-2); padding: 0 var(--space-3) var(--space-3); }
.pt-b3group__body p { margin: 0; overflow-wrap: anywhere; }
.pt-b3list { margin: 6px 0 0; padding-left: 18px; display: grid; gap: 4px; }
.pt-b3diag { display: grid; gap: var(--space-3); }
.pt-goalgrid--one { grid-template-columns: minmax(0, 1fr); }
.pt-goal--pick { cursor: pointer; }
.pt-goal--pick[data-on="true"] { border-color: var(--brand-ui); box-shadow: inset 0 0 0 1px var(--brand-ui); }
/* 7.8.0 — Conferir posições */
.pt-b3conf__h { margin: var(--space-2) 0 0; font-size: 15px; font-weight: 600; }
.pt-b3conf__name { font-weight: 400; }
.pt-b3conf__qty { font-variant-numeric: tabular-nums; font-weight: 600; }
.pt-b3conf__list { display: grid; gap: var(--space-1); }
.pt-b3conf__ret { display: flex; justify-content: space-between; align-items: center; gap: var(--space-2) var(--space-3); flex-wrap: wrap; padding: var(--space-2) 0; border-top: 1px solid var(--border-subtle); font-size: 13px; }
.pt-b3conf__actions { display: flex; gap: var(--space-2); flex-wrap: wrap; }
.pt-b3mode__head { display: flex; gap: var(--space-2); align-items: center; flex-wrap: wrap; }
.pt-filedrop > svg { color: var(--text-secondary); }
@media (max-width: 767px) {
  .pt-b3filters__row { grid-template-columns: minmax(0, 1fr); gap: var(--space-1); }
  .pt-b3filters__row--head { display: none; }
  .pt-b3filters__row > [data-label]::before { content: attr(data-label) ": "; font-size: 12px; color: var(--text-muted); font-weight: 400; }
  .pt-b3steps__item { padding: var(--space-2) var(--space-3); }
}

/* Patrimo Invest 7.8.1 — Laboratório de risco: estilos só com tokens do Design Kit (claro, escuro e celular). */
.pt-matrix-tools { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-3) var(--space-4); }
.pt-matrix-tools > * { min-width: 0; max-width: 100%; }
.pt-corr-wrap { max-width: 100%; overflow: auto; }
.pt-corr--lg td { padding: 0; min-width: 52px; }
.pt-corr--lg td.pt-corr-diag { padding: 0 4px; }
.pt-corr--lg tbody th { position: sticky; left: 0; z-index: 1; background: var(--surface-1); }
.pt-corr-btn { display: block; width: 100%; height: 100%; min-height: 36px; padding: 0 6px; margin: 0; border: 0; border-radius: var(--radius-sm); background: transparent; color: inherit; font: inherit; text-align: center; cursor: pointer; }
.pt-corr-btn:hover { box-shadow: inset 0 0 0 1px var(--text-secondary); }
.pt-corr-btn[aria-pressed="true"] { box-shadow: inset 0 0 0 2px var(--text-primary); font-weight: 700; }
.pt-corr-btn:disabled { cursor: default; color: var(--text-muted); }
.pt-modal:has(.pt-corr--lg) { width: min(1040px, 100%); }
.pt-modal:has(.pt-pairdetail) { width: min(1040px, 100%); }
.pt-pairdetail { display: flex; flex-direction: column; gap: var(--space-3); padding: var(--space-4); border: 1px solid var(--border-subtle); border-radius: var(--radius-md); background: var(--surface-2); }
.pt-clusters { display: flex; flex-direction: column; gap: var(--space-2); margin: 0; padding: 0; list-style: none; }
.pt-clusters li { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: var(--space-3); align-items: baseline; padding: 6px 0; border-bottom: 1px solid var(--border-subtle); }
.pt-clusters li:last-child { border-bottom: 0; }
.pt-clusters li > div { display: flex; flex-direction: column; min-width: 0; overflow-wrap: anywhere; }
.pt-code { font-family: var(--font-num); font-size: 12px; line-height: 18px; color: var(--text-secondary); overflow-wrap: anywhere; }
@media (max-width: 767px) {
  .pt-clusters li { grid-template-columns: minmax(0, 1fr) auto; }
  .pt-clusters li > small { grid-column: 1 / -1; }
}

/* ===== 7.9.0 — Painel personalizável, calendário de dividendos, assistente de cards, aparência ===== */
.pt-dash-wrap { display: flex; flex-direction: column; gap: var(--space-4); min-width: 0; }
.pt-dash__boards { display: flex; align-items: center; justify-content: space-between; gap: var(--space-3); flex-wrap: wrap; }
.pt-dash__boards .pt-tabs { flex: 1 1 auto; min-width: 0; overflow-x: auto; }
.pt-dash { --dash-row: 72px; display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); grid-auto-rows: minmax(var(--dash-row), auto); gap: var(--space-4); min-width: 0; align-items: stretch; }
.pt-dash__cell { grid-column: calc(var(--x, 0) + 1) / span var(--w, 12); grid-row: calc(var(--y, 0) + 1) / span var(--h, 2); position: relative; display: flex; flex-direction: column; min-width: 0; min-height: 0; }
.pt-dash__body { flex: 1 1 auto; display: flex; flex-direction: column; min-width: 0; min-height: 0; }
.pt-dash__body > * { flex: 1 1 auto; min-width: 0; }
.pt-dash--stack { display: flex; flex-direction: column; }
.pt-dash--stack .pt-dash__cell { grid-column: auto; grid-row: auto; }
.pt-dash--editing .pt-dash__cell { outline: 1px dashed var(--border-strong); outline-offset: 3px; border-radius: var(--radius-md); }
.pt-dash--editing .pt-dash__body { pointer-events: none; }
.pt-dash__cell--dragging { outline: 2px solid var(--brand-ui); box-shadow: var(--shadow-popover); z-index: 2; }
.pt-dash__cell--hidden .pt-dash__body { opacity: 0.55; }
.pt-dash__bar { display: flex; align-items: center; gap: var(--space-2); padding: var(--space-1) var(--space-2); background: var(--surface-2); border: 1px solid var(--border-subtle); border-bottom: 0; border-radius: var(--radius-md) var(--radius-md) 0 0; min-width: 0; }
.pt-dash__name { flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: 600; font-size: 13px; color: var(--text-primary); }
.pt-dash__size { margin-left: var(--space-2); font-weight: 400; color: var(--text-secondary); }
.pt-dash__tools { display: inline-flex; gap: var(--space-1); flex: 0 0 auto; }
.pt-dash__grip { display: grid; place-items: center; min-width: 32px; min-height: 32px; border: 0; background: transparent; color: var(--text-secondary); border-radius: var(--radius-sm); cursor: grab; touch-action: none; }
.pt-dash__grip:hover { background: var(--surface-3); color: var(--text-primary); }
.pt-dash__resize { position: absolute; right: var(--space-1); bottom: var(--space-1); z-index: 1; display: grid; place-items: center; width: 28px; height: 28px; background: var(--surface-1); color: var(--text-secondary); border: 1px solid var(--border-strong); border-radius: var(--radius-sm); cursor: nwse-resize; touch-action: none; }
.pt-dash__resize:hover { background: var(--surface-3); color: var(--text-primary); }
body.pt-dash-dragging { cursor: grabbing; user-select: none; -webkit-user-select: none; }
.pt-dash__help { min-width: 0; }

.pt-addlist { display: grid; gap: var(--space-4); }
.pt-addrow { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: var(--space-3); align-items: center; padding: var(--space-3) 0; border-bottom: 1px solid var(--border-subtle); }
.pt-addrow__ico { display: grid; place-items: center; width: 36px; height: 36px; border-radius: var(--radius-md); background: var(--surface-2); color: var(--brand-text); }
.pt-addrow__txt { min-width: 0; }

.pt-dcal { display: grid; gap: var(--space-3); min-width: 0; }
.pt-dcal__head { display: flex; align-items: center; gap: var(--space-2); }
.pt-dcal__title { flex: 1 1 auto; text-align: center; color: var(--text-primary); }
.pt-dcal__grid { display: grid; gap: 2px; }
.pt-dcal__week, .pt-dcal__row { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 2px; }
.pt-dcal__week span { text-align: center; font-size: 12px; color: var(--text-secondary); padding: var(--space-1) 0; }
.pt-dcal__day { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; min-height: 40px; padding: var(--space-1); border: 1px solid transparent; border-radius: var(--radius-sm); background: transparent; color: var(--text-primary); font-size: 13px; cursor: pointer; }
.pt-dcal__day:hover { background: var(--surface-2); }
.pt-dcal__day--out { color: var(--text-muted); }
.pt-dcal__day--today { border-color: var(--brand-ui); }
.pt-dcal__day--sel { background: var(--surface-3); border-color: var(--border-strong); font-weight: 600; }
.pt-dcal__dots { display: inline-flex; gap: 3px; min-height: 8px; }
.pt-dcal__dots i, .pt-dcal__lg { display: inline-block; width: 8px; height: 8px; border-radius: 50%; box-sizing: border-box; }
.pt-dcal__dots i.pt-dcal__rec, .pt-dcal__lg.pt-dcal__rec { background: var(--positive); }
.pt-dcal__dots i.pt-dcal__exp, .pt-dcal__lg.pt-dcal__exp { background: transparent; border: 2px solid var(--brand-ui); }
.pt-dcal__legend { display: flex; flex-wrap: wrap; gap: var(--space-4); }
.pt-dcal__legend span { display: inline-flex; align-items: center; gap: var(--space-2); }
.pt-dcal__day-list { display: grid; gap: var(--space-2); }

.pt-watch__row { display: flex; align-items: center; justify-content: space-between; gap: var(--space-3); padding: var(--space-2) 0; border-bottom: 1px solid var(--border-subtle); }
.pt-watch__q { display: inline-flex; align-items: center; gap: var(--space-2); }
.pt-idx.pt-list-plain { flex-direction: row; flex-wrap: wrap; gap: var(--space-6); }
.pt-idx .pt-idx__item { display: grid; gap: 2px; justify-content: start; padding: 0; border-bottom: 0; }
.pt-idx__v { font-size: 18px; font-weight: 600; }
.pt-custom__big { display: grid; gap: 4px; }
.pt-custom__big .pt-num { font-size: 28px; line-height: 36px; font-weight: 600; color: var(--text-primary); }
.pt-custom__foot { display: grid; gap: 2px; margin-top: var(--space-3); }

.pt-wiz { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--space-6); min-width: 0; }
.pt-wiz__form { display: grid; gap: var(--space-4); align-content: start; min-width: 0; }
.pt-wiz__preview { display: grid; gap: var(--space-3); align-content: start; align-self: start; min-width: 0; position: sticky; top: 0; }
.pt-wiz__sec { display: grid; gap: var(--space-3); padding: var(--space-3); border: 1px solid var(--border-subtle); border-radius: var(--radius-md); min-width: 0; }
.pt-wiz__scope { display: grid; gap: var(--space-3); min-width: 0; }
.pt-wiz__fs { border: 0; margin: 0; padding: 0; display: grid; gap: var(--space-2); min-width: 0; }
.pt-wiz__fs legend { padding: 0; }
.pt-wiz__checks { display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: var(--space-2); }
.pt-wiz__chips { display: flex; flex-wrap: wrap; gap: var(--space-2); }
@media (max-width: 900px) {
  .pt-wiz { grid-template-columns: minmax(0, 1fr); }
  .pt-wiz__preview { position: static; }
}

.pt-accents { display: flex; flex-wrap: wrap; gap: var(--space-2); }
.pt-accent { display: inline-flex; align-items: center; gap: var(--space-2); min-height: 36px; padding: var(--space-2) var(--space-3); background: var(--surface-1); color: var(--text-primary); border: 1px solid var(--border-strong); border-radius: var(--radius-pill); cursor: pointer; font-size: 14px; }
.pt-accent:hover { background: var(--surface-2); }
.pt-accent--on { border-color: var(--brand-ui); box-shadow: inset 0 0 0 1px var(--brand-ui); font-weight: 600; }
.pt-accent__dot { width: 16px; height: 16px; border-radius: 50%; border: 1px solid var(--border-strong); }
.pt-menued { display: grid; gap: var(--space-4); }
.pt-menued__grp { display: grid; gap: var(--space-2); }
.pt-menued__row { display: flex; align-items: center; justify-content: space-between; gap: var(--space-3); padding: var(--space-1) 0; }
.pt-menued__mv { display: inline-flex; gap: var(--space-1); }

/* gráfico dentro de um card do painel: sem moldura dupla; o título continua disponível para leitores de tela */
.pt-chart--flat { border: 0; padding: 0; background: transparent; }
.pt-chart--flat .pt-chart__head > div:first-child { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.pt-chart--flat .pt-chart__head { justify-content: flex-end; }
.pt-dash--stack .pt-dash__bar { flex-wrap: wrap; }
.pt-dash--stack .pt-dash__name { flex: 1 1 100%; white-space: normal; }
.pt-dash--stack .pt-dash__tools { margin-left: auto; }
.pt-goal--row > .pt-accents { flex: 1 1 420px; justify-content: flex-start; }
.pt-accent { flex: 0 0 auto; white-space: nowrap; }
.pt-accent__dot { flex: 0 0 16px; }

/* 7.9.1 — campo “Instituição / corretora” em lista (formulários legados) */
.pt-inst-field select { width: 100%; }
.pt-inst-field .pt-inst-new { display: grid; gap: var(--space-2); margin-top: var(--space-2); }
.pt-inst-field .pt-inst-new input { width: 100%; }
.pt-inst-field .pt-inst-req { color: var(--negative); font-weight: 600; }
.pt-inst-field small { color: var(--text-muted); line-height: 1.35; }

/* 7.12 — Análise de Ações e FIIs: visão executiva, sazonalidade e indicadores por setor/tipo.
   Somente tokens; sem cor de bom/ruim (diferenças e retornos usam texto com sinal, nunca verde/vermelho). */
.pt-an712 { display: grid; gap: var(--space-4); min-width: 0; --row-h: 44px; }
.pt-an712--compact { --row-h: 32px; }
.pt-an712 > * { min-width: 0; }
.pt-an712-toolbar { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: var(--space-3) var(--space-4); }
.pt-an712-toolbar__r { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-3); }
.pt-an712-period { display: grid; gap: var(--space-2); min-width: 0; max-width: 100%; }
.pt-an712-period .pt-seg { max-width: 100%; overflow-x: auto; }
.pt-an712-range { display: flex; flex-wrap: wrap; align-items: flex-end; gap: var(--space-3); }
.pt-an712-actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2); }
.pt-an712-kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: var(--space-3); }
.pt-an712-kpi { display: grid; gap: var(--space-1); align-content: start; padding: var(--space-3) var(--space-4); background: var(--surface-1); border: 1px solid var(--border-subtle); border-radius: var(--radius-md); min-width: 0; }
.pt-an712-kpi__v { font-size: 22px; line-height: 28px; font-weight: 600; color: var(--text-primary); overflow-wrap: anywhere; }
.pt-an712-note { margin: var(--space-3) 0 0; }
.pt-an712-reading { margin: 0 0 var(--space-3); line-height: 22px; color: var(--text-primary); }
.pt-an712-lead { margin: 0 0 var(--space-3); line-height: 22px; }
.pt-an712-sea, .pt-an712-sector { display: grid; gap: var(--space-4); min-width: 0; }
.pt-an712-peers { display: grid; gap: var(--space-3); max-width: 520px; }
.pt-an712-chips { display: flex; flex-wrap: wrap; gap: var(--space-2); margin: 0; padding: 0; list-style: none; }
.pt-an712-chip { display: inline-flex; align-items: center; gap: var(--space-2); min-height: 32px; padding: 0 var(--space-3); border: 1px solid var(--border-strong); border-radius: var(--radius-md); background: var(--surface-2); font-weight: 600; }
.pt-an712-chip button { display: inline-grid; place-items: center; min-width: 24px; min-height: 24px; border: 0; border-radius: var(--radius-md); background: transparent; color: var(--text-secondary); cursor: pointer; font-size: 16px; line-height: 1; }
.pt-an712-chip button:hover { background: var(--surface-3); color: var(--text-primary); }
.pt-an712-chip button:focus-visible { outline: 2px solid var(--brand-ui); outline-offset: 1px; }
.pt-an712-nf { margin-left: var(--space-2); white-space: nowrap; }
.pt-an712-ext { margin: var(--space-3) 0; padding-left: var(--space-5); display: grid; gap: var(--space-2); line-height: 20px; }

/* mapa de calor mês × ano */
.pt-sea-wrap { display: grid; gap: var(--space-3); min-width: 0; }
.pt-sea-table { width: 100%; border-collapse: separate; border-spacing: 2px; font-family: var(--font-num); font-variant-numeric: tabular-nums; font-size: 12px; table-layout: fixed; min-width: 640px; }
.pt-sea-wrap { overflow-x: auto; }
.pt-sea-table th { padding: var(--space-1) var(--space-1); color: var(--text-secondary); font-weight: 600; text-align: center; }
.pt-sea-table tbody th { text-align: left; width: 52px; }
.pt-sea-cell { padding: var(--space-2) 0; text-align: center; border-radius: var(--radius-sm); white-space: nowrap; }
.pt-sea-cell--none { color: var(--text-muted); background: var(--surface-2); }
.pt-sea-cell--partial { color: var(--text-muted); border: 1px dashed var(--border-strong); }
.pt-sea-cell--year { font-weight: 600; background: var(--surface-3); color: var(--text-primary); }
.pt-an712--compact .pt-sea-cell { padding: var(--space-1) 0; }
@media (max-width: 720px) {
  .pt-an712-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pt-an712-kpi__v { font-size: 18px; line-height: 24px; }
  .pt-an712-toolbar__r { width: 100%; }
}

/* relatório de 1 página (prévia na tela e impressão) */
.pt-report1 { display: grid; gap: var(--space-4); color: var(--text-primary); background: var(--surface-1); min-width: 0; }
.pt-report1__head { display: flex; flex-wrap: wrap; justify-content: space-between; gap: var(--space-3); border-bottom: 1px solid var(--border-strong); padding-bottom: var(--space-3); }
.pt-report1__head h2 { margin: 0; font-size: 20px; line-height: 28px; }
.pt-report1__head p { margin: 0; }
.pt-report1__meta { text-align: right; }
.pt-report1__kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: var(--space-2); }
.pt-report1__kpis .pt-an712-kpi__v { font-size: 18px; line-height: 24px; }
.pt-report1__sec h3 { margin: 0 0 var(--space-2); font-size: 13px; line-height: 18px; text-transform: uppercase; letter-spacing: .06em; color: var(--text-secondary); }
.pt-report1__sec p { margin: 0 0 var(--space-2); font-size: 13px; line-height: 20px; }
.pt-report1__tbl { width: 100%; border-collapse: collapse; font-size: 12px; font-family: var(--font-num); font-variant-numeric: tabular-nums; }
.pt-report1__tbl th, .pt-report1__tbl td { padding: var(--space-1) var(--space-2); border-bottom: 1px solid var(--border-subtle); text-align: right; }
.pt-report1__tbl th:first-child, .pt-report1__tbl thead th { text-align: left; }
.pt-report1__foot { font-size: 11px; line-height: 16px; color: var(--text-muted); border-top: 1px solid var(--border-subtle); padding-top: var(--space-2); }
.pt-print-host { display: none; }
@media print {
  body.pt-printing > :not(.pt-print-host) { display: none; }
  body.pt-printing > .pt-print-host { display: block; position: static; padding: 0; margin: 0; background: var(--surface-1); -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  body.pt-printing { height: auto; overflow: visible; background: var(--surface-1); }
  body.pt-printing .pt-report1 { gap: var(--space-3); }
  @page { size: A4; margin: 12mm; }
}
