/* Interface preliminar: usa só tokens e componentes do kit FP&A Hub. Sem emoji, sem vermelho, sem estilo inline. */
.marca{text-decoration:none;color:var(--ink);font-size:20px}
.marca:hover{text-decoration:none}
.usuario{display:flex;align-items:center;gap:var(--sp-3);font-size:var(--fs-meta);color:var(--stone);font-weight:var(--fw-semibold)}
.faixa-previa{display:flex;align-items:center;gap:var(--sp-3);justify-content:center;padding:8px var(--pad-page);background:var(--amber-bg);color:var(--amber-tx);font-size:12.5px;font-weight:var(--fw-semibold);border-bottom:1px solid var(--border)}
.faixa-previa .fpa-badge{background:var(--surface)}
main{padding-block:var(--sp-8) var(--sp-18);min-height:70vh;outline:none}
.fpa-header__inner{gap:var(--sp-4)}
.fpa-nav{flex-wrap:nowrap;overflow-x:auto;gap:var(--sp-4);min-width:0;scrollbar-width:none}
.fpa-nav__link{white-space:nowrap;font-size:13.5px}
.usuario{flex:none}
.usuario .perfil{color:var(--silver)}
@media (max-width:1180px){.usuario .perfil{display:none}}

.pagina-topo{display:flex;flex-direction:column;gap:var(--sp-3);margin-bottom:var(--sp-6)}
.pagina-topo h1{font-family:var(--font-display);font-size:var(--fs-display-2);text-transform:uppercase;letter-spacing:var(--ls-display);color:var(--ink);line-height:1.05}
.eyebrow{display:flex;align-items:center;gap:var(--sp-3)}
.eyebrow::before{content:'';width:34px;height:2px;background:var(--g500)}
.eyebrow span{font-size:var(--fs-eyebrow);font-weight:var(--fw-bold);letter-spacing:var(--ls-eyebrow);text-transform:uppercase;color:var(--stone)}
.lead{max-width:70ch;color:var(--mist);line-height:var(--lh-body);font-size:var(--fs-body)}

.cartao{background:var(--surface);border:1px solid var(--edge);border-radius:var(--r-xl);box-shadow:var(--shadow-card);padding:var(--pad-card)}
.cartao + .cartao{margin-top:var(--sp-4)}
.cartao h2{font-size:var(--fs-subtitle);font-weight:var(--fw-bold);color:var(--ink);margin-bottom:var(--sp-3)}
.cartao h3{font-size:var(--fs-ui);font-weight:var(--fw-bold);color:var(--ink);margin:var(--sp-4) 0 var(--sp-2)}
.grade{display:grid;gap:var(--sp-4)}
.grade-2{grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}
.grade-4{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}
.linha{display:flex;align-items:center;gap:var(--sp-3);flex-wrap:wrap}
.linha-entre{justify-content:space-between}
.espaco{margin-top:var(--sp-4)}
.mudo{color:var(--mist);font-size:var(--fs-meta)}
.forte{font-weight:var(--fw-bold);color:var(--ink)}

.filtros{display:flex;flex-wrap:wrap;gap:var(--sp-4) var(--sp-6);align-items:flex-end;margin-bottom:var(--sp-5)}
.filtro{display:flex;flex-direction:column;gap:6px}
.filtro .fpa-select{min-width:160px}
.chips{display:flex;gap:var(--sp-2);flex-wrap:wrap}

.aviso{display:flex;gap:var(--sp-3);align-items:flex-start;padding:12px 16px;border-radius:var(--r-md);font-size:var(--fs-ui);line-height:1.5;margin-bottom:var(--sp-4)}
.aviso--ambar{background:var(--amber-bg);color:var(--amber-tx);border:1px solid #F5D9A8}
.aviso--ok{background:var(--ok-bg);color:var(--ok-tx);border:1px solid #BFE9C4}
.aviso--neutro{background:var(--tag-bg);color:var(--tag-tx);border:1px solid var(--border)}
.aviso strong{font-weight:var(--fw-bold)}

.faixa-indicadores{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--sp-6);padding:var(--sp-5);margin-bottom:var(--sp-5)}
.fpa-stat-item__value{font-size:30px}
.fpa-stat-item__value.neg{color:var(--amber-tx)}

table.demo{width:100%;border-collapse:collapse;font-size:var(--fs-ui)}
table.demo th{font-size:var(--fs-eyebrow);font-weight:var(--fw-bold);letter-spacing:var(--ls-eyebrow);text-transform:uppercase;color:var(--stone);text-align:right;padding:8px 10px;border-bottom:1px solid var(--border)}
table.demo th:first-child{text-align:left}
table.demo td{padding:7px 10px;border-bottom:1px solid var(--edge);text-align:right;font-variant-numeric:tabular-nums}
table.demo td:first-child{text-align:left}
table.demo tr.subtotal td{font-weight:var(--fw-bold);color:var(--ink);background:#FAFAF9}
table.demo tr.total td{font-weight:var(--fw-bold);color:var(--ink);background:var(--surface-hover-soft);border-top:1px solid var(--border)}
table.demo tr.conta-linha{cursor:pointer}
table.demo tr.conta-linha:hover td{background:var(--surface-hover-soft)}
table.demo tr.sub td{color:var(--charcoal);font-size:13px;padding-left:34px}
table.demo tr.sub td:not(:first-child){color:var(--mist)}
table.demo tr.conta td{color:var(--mist);font-size:12.5px}
table.demo tr.conta td:first-child{padding-left:62px}
table.demo tr.nao-conciliada td{background:var(--amber-bg)}
table.demo td.neg{color:var(--amber-tx)}
.seta{display:inline-block;width:16px;color:var(--silver);transition:transform var(--dur-base) var(--expo)}
.aberta .seta{transform:rotate(90deg);color:var(--g700)}
.rotulo-nota{color:var(--silver);font-size:11px;margin-left:6px}

table.matriz{width:100%;border-collapse:separate;border-spacing:0 6px;font-size:var(--fs-ui)}
table.matriz th{font-size:var(--fs-eyebrow);font-weight:var(--fw-bold);letter-spacing:var(--ls-eyebrow);text-transform:uppercase;color:var(--stone);text-align:left;padding:4px 10px}
table.matriz td{padding:8px 10px;background:#FAFAF9;vertical-align:middle}
table.matriz td:first-child{border-radius:var(--r-md) 0 0 var(--r-md);font-weight:var(--fw-semibold);color:var(--ink)}
table.matriz td:last-child{border-radius:0 var(--r-md) var(--r-md) 0}
button.celula{border:1px solid transparent;background:transparent;padding:0;cursor:pointer;border-radius:var(--r-status)}
button.celula:hover .fpa-badge{box-shadow:var(--shadow-card)}

.painel-estado{display:flex;gap:var(--sp-5);flex-wrap:wrap;align-items:center}
.estado-grande{font-family:var(--font-display);font-size:var(--fs-display-3);text-transform:uppercase;letter-spacing:var(--ls-display-3);color:var(--ink)}
.lista-simples{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--sp-2)}
.lista-simples li{display:flex;gap:var(--sp-3);align-items:baseline;font-size:var(--fs-ui)}
.marca-passo{flex:none;width:20px;text-align:center;font-weight:var(--fw-bold)}
.marca-passo.ok{color:var(--g700)}
.marca-passo.falta{color:var(--amber-tx)}

.matriz-fontes{display:grid;gap:6px}
.fonte-linha{display:grid;grid-template-columns:200px 1fr;gap:var(--sp-3);align-items:center}
.celulas-mes{display:flex;gap:4px;flex-wrap:wrap}
.mes{min-width:58px;text-align:center;font-size:11px;font-weight:var(--fw-bold);padding:5px 6px;border-radius:var(--r-sm);background:var(--tag-bg);color:var(--tag-tx)}
.mes.recebida{background:var(--ok-bg);color:var(--ok-tx)}
.mes.pendente{background:var(--amber-bg);color:var(--amber-tx)}

.fpa-btn{font-family:var(--font-body)}
.botoes{display:flex;gap:var(--sp-2);flex-wrap:wrap;align-items:center}
.fpa-input,.fpa-select{font-family:var(--font-body)}
textarea.fpa-input{min-height:84px;resize:vertical}
.campo{display:flex;flex-direction:column;gap:6px;margin-bottom:var(--sp-4)}

.modal-fundo{position:fixed;inset:0;background:rgba(26,23,24,.45);display:grid;place-items:center;z-index:60;padding:var(--sp-5)}
.modal{background:var(--surface);border-radius:var(--r-lg);box-shadow:var(--shadow-hover);width:min(640px,100%);max-height:88vh;overflow:auto;padding:var(--sp-6)}
.modal h2{font-family:var(--font-display);font-size:var(--fs-display-3);text-transform:uppercase;letter-spacing:var(--ls-display-3);color:var(--ink);margin-bottom:var(--sp-4)}
.modal .rodape{display:flex;gap:var(--sp-2);justify-content:flex-end;flex-wrap:wrap;margin-top:var(--sp-5)}
.historico{display:flex;flex-direction:column;gap:var(--sp-2);margin-top:var(--sp-2);font-size:var(--fs-meta);color:var(--stone)}
.historico div{padding:6px 10px;background:#FAFAF9;border-radius:var(--r-sm)}

#avisos{position:fixed;right:var(--sp-5);bottom:var(--sp-5);display:flex;flex-direction:column;gap:var(--sp-2);z-index:80;max-width:min(420px,calc(100vw - 40px))}
.toast{padding:12px 16px;border-radius:var(--r-md);box-shadow:var(--shadow-hover);font-size:var(--fs-ui);font-weight:var(--fw-semibold);background:var(--ink);color:#fff;animation:fpaSection var(--dur-slow) var(--expo) both}
.toast.erro{background:var(--amber-bg);color:var(--amber-tx);border:1px solid #F5D9A8}

table.simples{width:100%;border-collapse:collapse;font-size:var(--fs-ui)}
table.simples th{font-size:var(--fs-eyebrow);font-weight:var(--fw-bold);letter-spacing:var(--ls-eyebrow);text-transform:uppercase;color:var(--stone);text-align:left;padding:8px 10px;border-bottom:1px solid var(--border)}
table.simples td{padding:9px 10px;border-bottom:1px solid var(--edge);vertical-align:top}
table.simples td.num{text-align:right;font-variant-numeric:tabular-nums}

.entrada{display:grid;gap:var(--sp-4);grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}
.vazio{padding:var(--sp-8);text-align:center;color:var(--mist)}
.rodape-previa{margin-top:var(--sp-14);padding-top:var(--sp-4);border-top:1px solid var(--border);color:var(--silver);font-size:var(--fs-meta)}
@media (max-width:768px){.fonte-linha{grid-template-columns:1fr}.fpa-header__inner{padding-inline:var(--pad-page-mobile)}.marca{font-size:16px}}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* comparativos e comparativo IFRS */
.mudo-num{color:var(--mist)}
table.demo td.fav,table.simples td.fav,.var-ind.fav{color:var(--ok-tx)}
table.demo td.desf,table.simples td.desf,.var-ind.desf{color:var(--amber-tx)}
.var-ind{font-size:11px;font-weight:var(--fw-semibold);color:var(--mist)}
.rolagem{overflow-x:auto}
table.demo th:nth-child(n+3){white-space:nowrap}
h2.secao{font-family:var(--font-display);font-size:var(--fs-display-3);text-transform:uppercase;letter-spacing:var(--ls-display-3);color:var(--ink);margin:var(--sp-8) 0 var(--sp-3)}
table.calc{width:100%;border-collapse:collapse;font-size:var(--fs-ui)}
table.calc td{padding:8px 0;border-bottom:1px solid var(--edge)}
table.calc td.num{text-align:right;font-variant-numeric:tabular-nums}
table.calc tr.total td{font-weight:var(--fw-bold);color:var(--ink);border-bottom:none}
table.simples tr.subtotal-linha td{font-weight:var(--fw-bold);background:var(--surface-hover-soft)}
table.simples tr.sem-classificacao td{background:var(--amber-bg)}
svg.cascata{width:100%;height:auto;font-family:var(--font-body);font-size:11px;fill:var(--stone)}
svg.cascata .dica{fill:var(--silver)}
svg.cascata rect.total{fill:var(--ink)}
svg.cascata rect.sobe{fill:var(--g500)}
svg.cascata rect.desce{fill:var(--amber)}
svg.cascata text.valor{fill:var(--ink);font-weight:700}
svg.cascata line.conector{stroke:var(--silver);stroke-dasharray:3 3}

/* árvore das demonstrações (como no protótipo) */
table.demo .tg{display:inline-flex;align-items:center;border:0;background:none;padding:0;color:inherit;cursor:pointer;width:22px}
table.demo .sem-seta{display:inline-block;width:22px}
table.demo tr.aberta > td > .tg .seta,table.demo .tg[aria-expanded="true"] .seta{transform:rotate(90deg);color:var(--g700)}
.rotulo-nota--ini{display:inline-flex;margin:0 8px 0 0;font-size:11px;font-weight:600;letter-spacing:.06em;color:var(--tag-tx);background:var(--tag-bg);padding:2px 9px;border-radius:99px;white-space:nowrap}
.acoes-arvore{display:flex;gap:8px;align-items:flex-end}
a.desabilitado{opacity:.45;cursor:not-allowed;pointer-events:auto}
a.fpa-btn{text-decoration:none}

/* comentários nos números (seção 6.7): canto âmbar na célula comentada e caixa ancorada */
table.demo td.num-coment{cursor:pointer;position:relative}
table.demo td.num-coment:hover,table.demo td.num-coment:focus-visible{outline:2px solid var(--border);outline-offset:-2px}
table.demo td.com-comentario::after{content:"";position:absolute;top:0;right:0;border-style:solid;border-width:0 9px 9px 0;border-color:transparent var(--amber) transparent transparent}
.caixa-comentario{position:absolute;z-index:70;width:360px;max-width:calc(100vw - 32px);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-hover);padding:var(--sp-4)}
.caixa-seta{position:absolute;top:-7px;right:28px;width:12px;height:12px;background:var(--surface);border-left:1px solid var(--border);border-top:1px solid var(--border);transform:rotate(45deg)}
.caixa-cab{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--sp-3);margin-bottom:var(--sp-3)}
.caixa-valor{font-size:20px;font-weight:var(--fw-semibold);color:var(--ink)}
.caixa-lista{max-height:220px;overflow:auto;margin-bottom:var(--sp-3)}
.caixa-item{padding:8px 0;border-top:1px solid var(--border)}

.lista-marcar{max-height:50vh;overflow:auto;display:grid;gap:4px}
.item-marcar{display:block;padding:4px 0;cursor:pointer}
table.calc tr.destaque td{background:var(--amber-bg);color:var(--amber-tx);font-weight:var(--fw-semibold)}

/* ── Layout lateral (modelo do Legal Hub): marca, menu com ícones e cartão do usuário na barra à esquerda ──
   Só vale para o app (body.com-lateral); o espelho da Central continua com o cabeçalho de sempre. */
body.com-lateral{background:linear-gradient(135deg,var(--surface) 55%,var(--surface-hover-soft) 100%);background-attachment:fixed}
.layout{display:grid;grid-template-columns:264px minmax(0,1fr);min-height:100vh}
.layout__corpo{min-width:0}
.lateral{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;gap:var(--sp-6);padding:var(--sp-6) var(--sp-4);background:var(--surface);border-right:1px solid var(--border);overflow-y:auto}
.lateral .marca{display:flex;flex-direction:column;gap:6px;padding:0 var(--sp-2);text-decoration:none}
.marca__grupo{display:inline-flex;align-items:center;gap:8px;font-family:var(--font-display);font-size:13px;letter-spacing:.34em;text-transform:uppercase;color:var(--stone)}
.marca__ponto{width:10px;height:10px;border-radius:var(--r-pill);background:var(--g500)}
.marca__produto{font-family:var(--font-display);font-size:26px;letter-spacing:.02em;text-transform:uppercase;color:var(--ink);line-height:1.05}
.lateral__menu{display:flex;flex-direction:column;gap:2px}
.menu-grupo{margin:var(--sp-5) 0 var(--sp-2);padding:0 var(--sp-3);font-size:var(--fs-eyebrow);font-weight:var(--fw-bold);letter-spacing:var(--ls-eyebrow);text-transform:uppercase;color:var(--silver)}
.menu-grupo:first-child{margin-top:0}
.item-menu{position:relative;display:flex;align-items:center;gap:var(--sp-3);padding:10px var(--sp-3);border-radius:var(--r-lg);font-size:var(--fs-ui);font-weight:var(--fw-semibold);color:var(--stone);text-decoration:none;transition:background var(--dur-fast) var(--expo),color var(--dur-fast) var(--expo)}
.item-menu .icone{flex:none;color:var(--mist)}
.item-menu:hover{background:var(--surface-hover-soft);color:var(--ink);text-decoration:none}
.item-menu[aria-current="page"]{background:var(--g50);color:var(--ink);font-weight:var(--fw-bold)}
.item-menu[aria-current="page"] .icone{color:var(--g700)}
.item-menu[aria-current="page"]::before{content:'';position:absolute;left:calc(-1 * var(--sp-4));top:20%;bottom:20%;width:4px;border-radius:0 4px 4px 0;background:var(--g500)}
.item-menu:focus-visible,.sair:focus-visible{outline:none;box-shadow:var(--focus-ring)}
.lateral .usuario{margin-top:auto;flex-direction:column;align-items:stretch;gap:var(--sp-2);padding:var(--sp-3);border:1px solid var(--border);border-radius:var(--r-xl);background:var(--surface);font-weight:var(--fw-regular,400)}
.usuario:empty{display:none}
.usuario__cartao{display:flex;align-items:center;gap:var(--sp-3);min-width:0}
.avatar{flex:none;width:38px;height:38px;border-radius:var(--r-pill);display:grid;place-items:center;background:var(--g500);color:var(--text-on-accent);font-weight:var(--fw-bold);font-size:15px}
.usuario__dados{display:flex;flex-direction:column;min-width:0}
.usuario__nome{font-size:var(--fs-ui);font-weight:var(--fw-bold);color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.usuario__email,.lateral .usuario .perfil{display:block;font-size:var(--fs-meta);color:var(--mist);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lateral .usuario .perfil{color:var(--silver)}
.sair{display:flex;align-items:center;gap:var(--sp-2);width:100%;padding:8px var(--sp-1);border:0;border-top:1px solid var(--edge);background:none;font:inherit;font-size:var(--fs-meta);font-weight:var(--fw-semibold);color:var(--stone);cursor:pointer}
.sair:hover{color:var(--ink)}
.sair .icone{width:16px;height:16px}
.com-lateral .eyebrow span{color:var(--g700)}
.com-lateral .faixa-previa{border-radius:0}
/* sem sessão (tela de entrada): só a marca, no alto */
body.sem-sessao .layout{grid-template-columns:minmax(0,1fr);grid-template-rows:auto 1fr}
body.sem-sessao .lateral{position:static;height:auto;flex-direction:row;align-items:center;padding:var(--sp-4) var(--pad-page);border-right:0;border-bottom:1px solid var(--border)}
body.sem-sessao .lateral__menu{display:none}
@media (max-width:900px){
  .layout{grid-template-columns:minmax(0,1fr);grid-template-rows:auto 1fr}
  .lateral{position:static;height:auto;gap:var(--sp-3);padding:var(--sp-4) var(--pad-page-mobile);border-right:0;border-bottom:1px solid var(--border)}
  .lateral__menu{flex-direction:row;overflow-x:auto;gap:var(--sp-1);scrollbar-width:none}
  .menu-grupo{display:none}
  .item-menu{flex:none;white-space:nowrap}
  .item-menu[aria-current="page"]::before{display:none}
  .lateral .usuario{margin-top:0;flex-direction:row;align-items:center;justify-content:space-between}
  .sair{width:auto;border-top:0}
}
