/* ===== Portal Nika — re-tema "Ink & Ember" sobre Tabler (P1, 17/07/2026) =====
   TOKENS copiados de pwa/app.css (NUNCA importar o arquivo — o portal nao herda CSS do app).
   Series de grafico VALIDADAS pelo validador do skill dataviz (6 checks, PASS integral):
     claro  (surface #FFFFFF): Semalo #E8590C · Concorrencia #3056A0
     escuro (surface #1C1917): Semalo #E8590C · Concorrencia #5C7CFA
   Dark mode e' SELECIONADO (tokens proprios), nao um flip automatico. */
@font-face{font-family:'Inter';font-style:normal;font-weight:400 700;font-display:swap;
  src:url('fonts/inter-var.woff2') format('woff2')}
@font-face{font-family:'Plus Jakarta Sans';font-style:normal;font-weight:400 800;font-display:swap;
  src:url('fonts/jakarta-var.woff2') format('woff2')}

:root,[data-bs-theme=light]{
  --pp-bg:#F6F3EC; --pp-card:#FFFFFF; --pp-ink:#0C1B33; --pp-muted:#46536E; --pp-line:#E7E1D4;
  --pp-navy:#0F1F3D; --pp-orange:#F6871F; --pp-orange-soft:#FFF0E0; --pp-orange-text:#B54708;
  --pp-ghost:#EFEBE2; --pp-ok:#047857; --pp-okbg:#E3F2EC; --pp-err:#B91C1C; --pp-errbg:#FCE8E6;
  --pp-warn:#B45309; --pp-warnbg:#FBF0DC;
  --pp-s1:#E8590C; --pp-s2:#3056A0;          /* series: Semalo · Concorrencia (validadas) */
  --pp-grid:#EFEBE2; --pp-tick:#46536E;
  --tblr-body-bg:var(--pp-bg); --tblr-body-color:var(--pp-ink);
  --tblr-bg-surface:var(--pp-card); --tblr-border-color:var(--pp-line);
  --tblr-primary:#0F1F3D; --tblr-primary-rgb:15,31,61;
  --tblr-link-color:var(--pp-orange-text); --tblr-link-hover-color:var(--pp-orange-text);
  --tblr-secondary-color:var(--pp-muted); --tblr-muted:var(--pp-muted);
  --tblr-font-sans-serif:'Inter',system-ui,-apple-system,'Segoe UI',sans-serif;
  /* ===== Fase 2 (12/09) — escala de espaco 8pt, raios, sombras quase invisiveis, tokens semanticos ===== */
  --sp-1:4px; --sp-2:8px; --sp-3:12px; --sp-4:16px; --sp-5:24px; --sp-6:32px; --sp-7:48px;
  --r-sm:8px; --r-md:12px; --r-lg:16px; --r-pill:999px;
  --sh-1:0 1px 2px rgba(12,27,51,.05); --sh-2:0 4px 12px rgba(12,27,51,.06);
  --pp-info:#3056A0; --pp-infobg:#E8EEF9;
  --pp-purple:#6D46A8; --pp-purplebg:#F0EAFE;
}
[data-bs-theme=dark]{
  --pp-bg:#12100E; --pp-card:#1C1917; --pp-ink:#F5EFE6; --pp-muted:#A89E90; --pp-line:#2E2822;
  --pp-navy:#0F1F3D; --pp-orange:#F6871F; --pp-orange-soft:#3A2A18; --pp-orange-text:#FFB066;
  --pp-ghost:#26211D; --pp-ok:#34D399; --pp-okbg:#0E2A20; --pp-err:#F87171; --pp-errbg:#331414;
  --pp-warn:#FBBF24; --pp-warnbg:#332508;
  --pp-s1:#E8590C; --pp-s2:#5C7CFA;
  --pp-grid:#26211D; --pp-tick:#A89E90;
  --tblr-body-bg:var(--pp-bg); --tblr-body-color:var(--pp-ink);
  --tblr-bg-surface:var(--pp-card); --tblr-border-color:var(--pp-line);
  --tblr-link-color:var(--pp-orange-text); --tblr-link-hover-color:var(--pp-orange-text);
  --tblr-secondary-color:var(--pp-muted); --tblr-muted:var(--pp-muted);
  --pp-info:#8FA8F0; --pp-infobg:#1B2440; --sh-1:none; --sh-2:0 4px 12px rgba(0,0,0,.35);
  --pp-purple:#C9A9F0; --pp-purplebg:#2A1F42;
}

body{font-family:'Inter',system-ui,-apple-system,'Segoe UI',sans-serif;background:var(--pp-bg);color:var(--pp-ink)}
h1,h2,h3,.pp-display{font-family:'Plus Jakarta Sans','Inter',sans-serif;letter-spacing:-.01em}
.card{background:var(--pp-card);border:1px solid var(--pp-line);border-radius:16px;
  box-shadow:0 1px 2px rgba(12,27,51,.05)}
.card .card-title{font-weight:800}
.text-secondary,.text-muted{color:var(--pp-muted)!important}

/* laranja = COR EXCLUSIVA DE ACAO, fill com texto navy (regra WCAG do design system) */
.btn-primary{--tblr-btn-bg:var(--pp-orange);--tblr-btn-border-color:var(--pp-orange);
  --tblr-btn-color:#0F1F3D;--tblr-btn-hover-bg:#E07812;--tblr-btn-hover-border-color:#E07812;
  --tblr-btn-hover-color:#0F1F3D;--tblr-btn-active-bg:#D06E0E;--tblr-btn-active-border-color:#D06E0E;
  --tblr-btn-active-color:#0F1F3D;font-weight:800}
.btn-ghost{--tblr-btn-bg:var(--pp-ghost);--tblr-btn-border-color:var(--pp-ghost);--tblr-btn-color:var(--pp-ink)}
.form-control,.form-select{background:var(--pp-card);border-color:var(--pp-line);color:var(--pp-ink)}
.form-control:focus{border-color:var(--pp-orange);box-shadow:0 0 0 3px var(--pp-orange-soft)}

/* ===== Sidebar: navy da marca nos DOIS temas (ancora, como a appbar do app) ===== */
.pp-sidebar{background:var(--pp-navy)!important;border-right:none}
.pp-sidebar .nav-link{color:rgba(255,255,255,.72);font-weight:600;border-radius:10px;margin:2px 8px}
.pp-sidebar .nav-link:hover{color:#fff;background:rgba(255,255,255,.08)}
.pp-sidebar .nav-link.active{color:#fff;background:rgba(255,255,255,.12)}
.pp-sidebar .nav-link.active .nav-link-icon{color:var(--pp-orange)}
.pp-sidebar .nav-link.pp-nav-parent{color:#fff;background:rgba(246,135,31,.10)}
.pp-sidebar .pp-nav-section{margin:18px 14px 5px;padding:12px 8px 7px;border-top:1px solid rgba(255,255,255,.14);
  display:flex;flex-direction:column;gap:2px;color:rgba(255,255,255,.55)}
.pp-sidebar .pp-nav-section span{font-size:9px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}
.pp-sidebar .pp-nav-section strong{font:700 13px 'Plus Jakarta Sans',sans-serif;color:#fff;overflow:hidden;
  text-overflow:ellipsis;white-space:nowrap}
.pp-sidebar .nav-link.pp-nav-sub{margin-left:22px;padding-left:10px;font-size:13px}
.pp-sidebar .nav-link.pp-nav-sub .nav-link-icon{width:17px;min-width:17px}
.pp-sidebar .nav-link.pp-nav-sub .nav-link-icon svg{width:17px;height:17px}
.pp-sidebar .nav-link.pp-breve{opacity:.45;cursor:default;pointer-events:none}
.pp-sidebar .badge-breve{font-size:9px;font-weight:800;letter-spacing:.04em;background:rgba(255,255,255,.14);
  color:rgba(255,255,255,.75);border-radius:999px;padding:2px 7px;margin-left:auto}
.pp-mark{font-family:'Plus Jakarta Sans',sans-serif;font-size:26px;font-weight:800;color:#fff;letter-spacing:-.03em}
.pp-mark b{color:var(--pp-orange)}

/* ===== KPI card (anatomia fixa: label → valor → contexto/Δ → sparkline) ===== */
.kpi .lbl{font-size:11px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--pp-muted)}
.kpi .val{font-family:'Plus Jakarta Sans',sans-serif;font-size:30px;font-weight:800;line-height:1.15;
  font-variant-numeric:tabular-nums;margin-top:2px}
.kpi .val.na{font-size:16px;font-weight:700;color:var(--pp-muted);padding:7px 0}
.kpi .sub{font-size:12.5px;color:var(--pp-muted);margin-top:2px;min-height:18px}
.kpi .delta-up{color:var(--pp-err);font-weight:700}     /* preco SUBIU = atencao (vermelho) */
.kpi .delta-down{color:var(--pp-ok);font-weight:700}
/* wrapper com altura fixa: Chart.js (responsive) dimensiona o canvas pelo PAI — altura no
   canvas direto e' sobrescrita pela lib (visto no preview: canvas 141x178 distorcendo o card) */
.kpi .sparkwrap{position:relative;height:34px;margin-top:8px}

/* ===== 3 estados por componente: skeleton / vazio honesto / erro com retry ===== */
.skel{position:relative;overflow:hidden;background:var(--pp-ghost);border-radius:8px;color:transparent!important}
.skel::after{content:"";position:absolute;inset:0;transform:translateX(-100%);
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.35),transparent);
  animation:pp-shimmer 1.4s infinite}
[data-bs-theme=dark] .skel::after{background:linear-gradient(90deg,transparent,rgba(255,255,255,.07),transparent)}
@keyframes pp-shimmer{100%{transform:translateX(100%)}}
@media (prefers-reduced-motion:reduce){.skel::after{animation:none}}
.st-empty,.st-err{display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:8px;padding:28px 16px;text-align:center;color:var(--pp-muted);font-size:14px}
.st-err .btn{margin-top:4px}

/* variacoes vs mes anterior (dados reais de variacao_periodo — numeros do backend, sem derivar) */
.var-row{display:flex;align-items:baseline;gap:10px;padding:7px 0;border-bottom:1px solid var(--pp-line);font-size:13.5px}
.var-row:last-child{border-bottom:none}
.var-row .g{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}
.var-row .p{font-variant-numeric:tabular-nums;color:var(--pp-muted)}
.var-row .d{font-variant-numeric:tabular-nums;font-weight:800;min-width:64px;text-align:right}
.var-row .d.up{color:var(--pp-err)} .var-row .d.down{color:var(--pp-ok)}

/* ===== paginas de auth (login / definir senha / esqueci) ===== */
.pp-auth{min-height:100vh;display:grid;place-items:center;padding:24px;background:var(--pp-bg)}
.pp-auth .card{width:100%;max-width:400px;border-radius:22px;box-shadow:0 10px 30px rgba(12,27,51,.10)}
.pp-auth .pp-mark{color:var(--pp-ink);font-size:34px;text-align:center;display:block;margin-bottom:4px}
.pp-auth .sub{color:var(--pp-muted);text-align:center;font-size:14px;margin-bottom:18px}
.pp-alert{border-radius:10px;padding:10px 12px;font-size:13.5px;font-weight:600;display:none;margin-bottom:12px}
.pp-alert.on{display:block}
.pp-alert.err{background:var(--pp-errbg);color:var(--pp-err)}
.pp-alert.ok{background:var(--pp-okbg);color:var(--pp-ok)}

/* topbar */
.pp-topbar{background:transparent;border-bottom:1px solid var(--pp-line)}
.pp-userchip{display:flex;align-items:center;gap:10px}
.pp-avatar{width:36px;height:36px;border-radius:999px;background:var(--pp-orange);color:#0F1F3D;
  font-weight:800;font-size:13px;display:flex;align-items:center;justify-content:center}
.pp-userchip .n{font-weight:700;font-size:14px;line-height:1.1}
.pp-userchip .p{font-size:11.5px;color:var(--pp-muted);text-transform:capitalize}
.pp-iconbtn{width:36px;height:36px;border-radius:999px;border:1px solid var(--pp-line);background:var(--pp-card);
  color:var(--pp-ink);display:inline-flex;align-items:center;justify-content:center;cursor:pointer}
.pp-iconbtn:hover{background:var(--pp-ghost)}
.chart-wrap{position:relative;height:290px}
@media (max-width:575px){.kpi .val{font-size:26px}.chart-wrap{height:240px}}

/* ===== F1 — curadoria no portal (Pendências + Revisão do Auditor) ===== */
.pp-navbadge{margin-left:auto;background:var(--pp-orange);color:#0F1F3D;font-size:10.5px;font-weight:800;
  border-radius:999px;padding:1px 7px;min-width:20px;text-align:center;line-height:1.5}
#pp-toast{position:fixed;right:18px;bottom:18px;z-index:80;background:var(--pp-ink);color:var(--pp-bg);
  padding:10px 16px;border-radius:10px;font-size:13.5px;font-weight:700;box-shadow:0 4px 18px rgba(0,0,0,.25);
  opacity:0;transform:translateY(8px);transition:opacity .2s,transform .2s;pointer-events:none;max-width:440px}
#pp-toast.on{opacity:1;transform:none}
/* busca-e-seleciona single (ac-menu em FLUXO — mesmo racional do mobile) */
.ac-menu{margin-top:3px;border:1.5px solid var(--pp-line);border-radius:9px;background:var(--pp-card);
  max-height:190px;overflow-y:auto;box-shadow:0 4px 14px rgba(0,0,0,.12)}
.ac-item{display:block;width:100%;text-align:left;background:none;border:none;border-bottom:1px solid var(--pp-line);
  padding:8px 11px;font-size:13px;font-weight:600;color:var(--pp-ink);cursor:pointer}
.ac-item:last-child{border-bottom:none}
.ac-item:hover{background:var(--pp-warnbg)}
/* cards de proposta */
.cur-grid{display:grid;grid-template-columns:1fr;gap:14px;align-items:start}
@media (min-width:1200px){.cur-grid{grid-template-columns:1fr 1fr}}
.cur-card{background:var(--pp-card);border:1px solid var(--pp-line);border-radius:12px;overflow:hidden}
.cur-card.busy{opacity:.5;pointer-events:none}
.cur-top{display:flex;gap:14px;padding:14px}
.cur-top img{width:140px;height:175px;object-fit:cover;border-radius:10px;background:var(--pp-ghost);
  cursor:zoom-in;flex-shrink:0}
.cur-info{flex:1;min-width:0}
.cur-lida{font-size:12.5px;color:var(--pp-muted)}
.cur-lida b{color:var(--pp-ink);font-size:14.5px}
.conf{display:inline-block;font-size:10px;font-weight:800;padding:2px 8px;border-radius:999px;
  text-transform:uppercase;margin-left:6px}
.conf.alta{background:var(--pp-okbg);color:var(--pp-ok)}
.conf.media{background:var(--pp-warnbg);color:var(--pp-warn)}
.conf.baixa,.conf.desconhecido{background:var(--pp-errbg);color:var(--pp-err)}
.cur-evid{font-size:12.5px;color:var(--pp-muted);margin-top:6px;line-height:1.45}
.cur-evid.alerta{color:var(--pp-warn);font-weight:700}
.cur-stale{font-size:12.5px;color:var(--pp-err);font-weight:700;margin-top:6px}
.cur-val{font-size:13px;color:var(--pp-ink);margin-top:6px}
.cur-val.sug{color:var(--pp-ok);font-weight:700}
.cur-fontes{margin-top:8px;font-size:12.5px}
.cur-fontes a{display:block;color:var(--pp-orange-text);text-decoration:none;margin-top:2px;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cur-fld{display:flex;flex-direction:column;gap:3px;margin-top:8px}
.cur-fld label{font-size:10px;font-weight:800;color:var(--pp-muted);text-transform:uppercase;letter-spacing:.04em}
.cur-fld input{padding:8px 10px;border:1.5px solid var(--pp-line);border-radius:9px;font-size:13.5px;
  font-weight:600;color:var(--pp-ink);background:var(--pp-card)}
.cur-fld input:focus{outline:none;border-color:var(--pp-orange)}
.cur-row2{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.cur-corrigir{margin-top:8px;border-top:1px dashed var(--pp-line);padding-top:8px}
.cur-corrigir[hidden]{display:none}
.cur-acoes{display:flex;gap:8px;padding:0 14px 14px;flex-wrap:wrap;align-items:center}
.cur-acoes button{border:none;border-radius:9px;padding:9px 14px;font-size:13px;font-weight:800;cursor:pointer}
.cur-acoes .b-ap{background:var(--pp-okbg);color:var(--pp-ok)}
.cur-acoes .b-ed{background:var(--pp-warnbg);color:var(--pp-warn)}
.cur-acoes .b-rj{background:var(--pp-errbg);color:var(--pp-err)}
.cur-acoes .b-cancel{background:none;color:var(--pp-muted)}
.cur-acoes .rj-q{width:100%;font-size:12px;font-weight:800;color:var(--pp-muted)}
.cur-acoes .rj-m{border:1.5px solid var(--pp-line);border-radius:999px;background:var(--pp-card);
  padding:8px 13px;font-size:12.5px;font-weight:700;color:var(--pp-err);cursor:pointer}
.cur-acoes .rj-m:hover{background:var(--pp-errbg)}
.sel-cb{width:16px;height:16px;vertical-align:middle;accent-color:var(--pp-err);cursor:pointer}
.cur-sec{margin:18px 0 0;border-top:1px dashed var(--pp-line);padding-top:10px}
.cur-sec summary{cursor:pointer;font-size:13px;font-weight:800;color:var(--pp-muted);padding:6px 2px;list-style:none}
.cur-sec summary::-webkit-details-marker{display:none}
.cur-sec summary::before{content:"▸ "}
.cur-sec[open] summary::before{content:"▾ "}
/* barra de rejeição em lote (sticky no fim da página) */
#lote-bar{position:sticky;bottom:12px;z-index:40;background:var(--pp-ink);color:var(--pp-bg);
  padding:10px 14px;display:none;gap:8px;align-items:center;flex-wrap:wrap;border-radius:12px;
  box-shadow:0 6px 18px rgba(0,0,0,.25);margin-top:14px}
#lote-bar.on{display:flex}
#lote-bar .lb-n{font-weight:800;font-size:13.5px;flex:1;min-width:150px}
#lote-bar button{border:none;border-radius:999px;padding:8px 13px;font-size:12.5px;font-weight:800;cursor:pointer}
#lote-bar .lb-rj{background:var(--pp-errbg);color:var(--pp-err)}
#lote-bar .lb-x{background:transparent;color:inherit;opacity:.8}
#lote-bar .lb-m{background:var(--pp-card);color:var(--pp-err)}
/* zoom de foto (original em tela cheia) */
#pp-zoom{position:fixed;inset:0;background:rgba(12,27,51,.92);display:none;align-items:center;
  justify-content:center;z-index:70;cursor:zoom-out}
#pp-zoom img{max-width:96vw;max-height:92vh;border-radius:10px}

/* Aceite pessoal de privacidade no primeiro login do portal. O overlay bloqueia a UI e o
   backend continua sendo o gate real ate /api/lgpd/aceitar registrar o consentimento. */
.pp-lgpd-gate{position:fixed;inset:0;z-index:2000;display:grid;place-items:center;padding:20px;
  background:rgba(12,27,51,.9);backdrop-filter:blur(4px)}
.pp-lgpd-box{width:min(620px,100%);max-height:min(720px,calc(100vh - 40px));overflow:auto;
  background:var(--pp-card);color:var(--pp-ink);border:1px solid var(--pp-line);border-radius:16px;
  padding:24px;box-shadow:0 24px 70px rgba(0,0,0,.35)}
.pp-lgpd-box h2{font-size:20px;margin:0 0 14px}
.pp-lgpd-text{max-height:300px;overflow:auto;padding:14px;background:var(--pp-bg);
  border:1px solid var(--pp-line);border-radius:10px;color:var(--pp-muted);line-height:1.55}
.pp-lgpd-check{display:flex;gap:10px;align-items:flex-start;margin:16px 0;font-size:13.5px;font-weight:700}
.pp-lgpd-check input{margin-top:3px;width:17px;height:17px;accent-color:var(--pp-orange)}
.pp-lgpd-actions{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap}
.pp-lgpd-erro{margin:0 0 12px;padding:9px 11px;border-radius:8px;background:var(--pp-errbg);
  color:var(--pp-err);font-size:13px;font-weight:700}
@media (max-width:575px){.pp-lgpd-box{padding:18px}.pp-lgpd-actions button{flex:1}}
