/* ══════════════════════════════════════════════════════════════════════════════
   ERP dentro do Ordane (Fase 1, 06/10/2026)
   Derivado de servicos/erp/api/src/web/app.css: todo seletor vive sob .ord-erp,
   para não vazar no painel nem receber o CSS dele por acaso.

   Cores: a INTERFACE (botão, seleção) segue o Ordane — âmbar com texto escuro.
   A paleta de DADOS (--series-*) é a escura do Retail Media, validada para
   daltonismo (pior ΔE CVD adjacente 8,4): não troque por cor de marca.
   ══════════════════════════════════════════════════════════════════════════════ */
.ord-erp{
  color-scheme: dark;
  --surface-1: var(--ord-grafite, #1C1C1E);
  --page: var(--ord-preto, #000000);
  --sidebar: var(--ord-tinta, #111113);
  --ink-1: var(--ord-osso, #F5F3EF);
  --ink-2: var(--ord-nevoa, #B8B4AE);
  --ink-muted: #898781;
  --grid: var(--ord-filete, #3A3A3C);
  --ring: rgba(255,255,255,.10);
  --acento: var(--ord-ambar, #F5A524);
  --acento-tinta: var(--ord-tinta, #111113);
  --series-1:#3987e5; --series-2:#d95926;
  --series-3:#199e70; --series-4:#c98500;
  --series-5:#d55181; --series-6:#008300;
  --series-7:#9085e9; --series-8:#e66767;
  --good:#0ca30c; --warning:#fab219; --serious:#ec835a; --critical:#d03b3b;
  --st-warn-bg: rgba(245,165,36,.16); --st-warn-fg: var(--ord-ambar-claro, #FFD98A);
}
.ord-erp, .ord-erp *{box-sizing:border-box;margin:0;padding:0}
.ord-erp{background:transparent;color:var(--ink-1);
     font:14px/1.5 system-ui,-apple-system,"Segoe UI",sans-serif}
/* ── Layout da aplicação ── */
.ord-erp .app{display:grid;grid-template-columns:212px 1fr;min-height:100vh}
@media (max-width:860px){.ord-erp .app{grid-template-columns:1fr}.ord-erp .nav{display:none} }
.ord-erp .nav{background:var(--sidebar);border-right:1px solid var(--ring);padding:16px 10px;
     display:flex;flex-direction:column;gap:2px;position:sticky;top:0;height:100vh;overflow-y:auto}
.ord-erp .nav .marca{font-size:14px;font-weight:700;padding:4px 10px 2px;letter-spacing:-.01em}
.ord-erp .nav .rede{font-size:11.5px;color:var(--ink-muted);padding:0 10px 14px}
.ord-erp .nav .grupo{font-size:10px;font-weight:700;color:var(--ink-muted);text-transform:uppercase;
            letter-spacing:.08em;padding:14px 10px 5px}
.ord-erp .nav a{display:flex;align-items:center;gap:8px;padding:7px 10px;border-radius:6px;
       color:var(--ink-2);text-decoration:none;font-size:13px;font-weight:500}
.ord-erp .nav a:hover{background:var(--ring)}
.ord-erp .nav a.on{background:var(--acento);color:var(--acento-tinta);font-weight:600}
.ord-erp .nav .ic{width:15px;text-align:center;font-size:13px;flex:none}
.ord-erp .nav .rodape{margin-top:auto;padding-top:12px;display:flex;gap:6px}
.ord-erp main{padding:0 24px 32px;max-width:none;overflow-x:hidden}
.ord-erp header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;
       flex-wrap:wrap;margin-bottom:18px}
.ord-erp h1{font-size:19px;font-weight:650;letter-spacing:-.01em}
.ord-erp .sub{color:var(--ink-2);font-size:12.5px;margin-top:2px}
.ord-erp h2{font-size:12px;font-weight:650;color:var(--ink-2);text-transform:uppercase;
   letter-spacing:.05em;margin-bottom:9px}
.ord-erp .note{font-size:12px;color:var(--ink-muted);font-weight:400;text-transform:none;letter-spacing:0}
.ord-erp section{margin-bottom:22px}
.ord-erp .card{background:var(--surface-1);border:1px solid var(--ring);border-radius:10px}
/* ── KPI: stat tiles, não bar chart de headline numbers ── */
.ord-erp .kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(132px,1fr));gap:10px;margin-bottom:20px}
.ord-erp .tile{padding:13px 14px}
.ord-erp .tile .v{font-size:25px;font-weight:650;letter-spacing:-.02em;line-height:1.15}
.ord-erp .tile .l{color:var(--ink-2);font-size:11.5px;margin-top:3px}
.ord-erp .tile .h{font-size:11px;color:var(--ink-muted);margin-top:2px}
/* ── Charts ── */
.ord-erp .charts{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media (max-width:760px){.ord-erp .charts{grid-template-columns:1fr} }
.ord-erp .chart{padding:14px}
.ord-erp .chart h3{font-size:13px;font-weight:600;margin-bottom:2px}
.ord-erp .chart .cap{font-size:11.5px;color:var(--ink-muted);margin-bottom:12px}
.ord-erp .bars{display:flex;flex-direction:column;gap:7px}
.ord-erp .row{display:grid;grid-template-columns:82px 1fr;align-items:center;gap:9px}
.ord-erp .row .nm{font-size:11.5px;color:var(--ink-2);text-align:right;white-space:nowrap;
         overflow:hidden;text-overflow:ellipsis}
.ord-erp .track{position:relative;height:19px;display:flex;align-items:center}
.ord-erp .bar{height:15px;border-radius:0 4px 4px 0;min-width:2px;transition:width .35s ease}
.ord-erp .bar.s1{background:var(--series-1)}
.ord-erp .bar.s2{background:var(--series-2)}
/* Rótulo direto em vez de eixo: série única dispensa legenda (o título nomeia) e
   as lojas têm volumes parecidos — a barra sozinha não separa 476 de 500.
   Texto em tinta, nunca na cor da série. */
.ord-erp .val{margin-left:7px;font-size:11.5px;font-weight:600;color:var(--ink-1);
     font-variant-numeric:tabular-nums;white-space:nowrap}
.ord-erp .val small{font-weight:400;color:var(--ink-muted)}
.ord-erp .empty{color:var(--ink-muted);font-size:12.5px;padding:22px 12px;text-align:center}
/* ── Tabelas ── */
.ord-erp .tbl-wrap{overflow-x:auto}
.ord-erp table{width:100%;border-collapse:collapse;font-size:12.5px}
.ord-erp th, .ord-erp td{text-align:left;padding:8px 12px;border-bottom:1px solid var(--grid);white-space:nowrap}
.ord-erp th{color:var(--ink-muted);font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.04em}
.ord-erp tr:last-child td{border-bottom:none}
.ord-erp tbody tr:hover{background:var(--ring)}
.ord-erp .num{text-align:right;font-variant-numeric:tabular-nums}
/* ── Status: sempre ponto + rótulo, nunca cor sozinha ── */
.ord-erp .st{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:600;white-space:nowrap}
.ord-erp .st .dot{width:7px;height:7px;border-radius:50%;flex:none}
.ord-erp .st-ok{color:var(--good)}
.ord-erp .st-ok .dot{background:var(--good)}
.ord-erp .st-err{color:var(--critical)}
.ord-erp .st-err .dot{background:var(--critical)}
.ord-erp .st-run{color:var(--series-1)}
.ord-erp .st-run .dot{background:var(--series-1)}
.ord-erp .st-off{color:var(--ink-muted)}
.ord-erp .st-off .dot{background:var(--ink-muted)}
.ord-erp .st-warn{color:var(--serious)}
.ord-erp .st-warn .dot{background:var(--serious)}
.ord-erp button{background:var(--acento);color:var(--acento-tinta);border:0;border-radius:6px;padding:5px 11px;
       font-size:12px;font-weight:600;cursor:pointer;font-family:inherit}
.ord-erp button:hover{filter:brightness(1.08)}
.ord-erp button.ghost{background:transparent;color:var(--acento);border:1px solid var(--ring)}
.ord-erp button.perigo{background:var(--critical)}
.ord-erp button:disabled{opacity:.45;cursor:not-allowed}
.ord-erp input, .ord-erp select, .ord-erp textarea{background:var(--page);border:1px solid var(--ring);color:var(--ink-1);
       border-radius:6px;padding:8px 10px;font:inherit;width:100%;font-size:13px}
.ord-erp label{display:block;font-size:11.5px;color:var(--ink-2);margin:10px 0 4px;font-weight:500}
.ord-erp .login{max-width:320px;margin:11vh auto;padding:22px}
.ord-erp .login button{width:100%;padding:9px;margin-top:15px;font-size:13px}
.ord-erp .err{color:var(--critical);font-size:12px;margin-top:9px;min-height:15px}
.ord-erp .hide{display:none !important}
.ord-erp .muted{color:var(--ink-muted)}
.ord-erp .flex{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.ord-erp .de{color:var(--ink-muted);text-decoration:line-through;font-size:11.5px}
.ord-erp .por{font-weight:650}
.ord-erp [title]{cursor:help}
/* ── Modal ── */
.ord-erp .erp-modal{position:fixed;inset:0;background:rgba(0,0,0,.55);display:grid;place-items:center;
       z-index:1000;padding:20px}
.ord-erp .erp-modal .box{background:var(--surface-1);border:1px solid var(--ring);border-radius:12px;
            padding:20px;width:100%;max-width:540px;max-height:86vh;overflow-y:auto}
.ord-erp .erp-modal h3{font-size:15px;font-weight:650;margin-bottom:4px}
.ord-erp .erp-modal .acoes{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}
.ord-erp .grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
/* ── Aviso (tela protegida, dado insuficiente) ── */
.ord-erp .aviso{border-left:3px solid var(--serious);background:var(--ring);padding:10px 12px;
       border-radius:0 6px 6px 0;font-size:12.5px;color:var(--ink-2);margin-bottom:12px}
.ord-erp .aviso b{color:var(--ink-1)}
.ord-erp .aviso.critico{border-left-color:var(--critical)}
/* ── Construtor de layout ── */
/* Seleção múltipla de lojas/produtos */
.ord-erp .chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}
.ord-erp .chip{border:1px solid var(--ring);border-radius:999px;padding:4px 11px;font-size:12px;
      cursor:pointer;user-select:none;background:var(--page)}
.ord-erp .chip.on{background:var(--acento);color:var(--acento-tinta);border-color:var(--acento);font-weight:600}
.ord-erp .lista-sel{max-height:190px;overflow-y:auto;border:1px solid var(--ring);border-radius:6px;margin-top:4px}
.ord-erp .lista-sel label{display:flex;gap:8px;align-items:center;padding:6px 10px;margin:0;
                 border-bottom:1px solid var(--grid);cursor:pointer;font-size:12.5px;color:var(--ink-1)}
.ord-erp .lista-sel label:last-child{border-bottom:none}
.ord-erp .lista-sel input{width:auto}
/* ── Auditoria fiscal ── */
.ord-erp .tag{display:inline-block;font-size:10px;font-weight:600;text-transform:uppercase;
     letter-spacing:.03em;padding:1px 6px;border-radius:4px;vertical-align:middle;
     background:var(--st-warn-bg,#fef3c7);color:var(--st-warn-fg,#92400e)}
.ord-erp .btn-link{text-decoration:none;display:inline-block}
/* ── Concorrência: revisão de pares ── */
/* Estar mais caro que o concorrente é o que o operador precisa enxergar de
   longe; mais barato é informação, não ação. Daí o par crítico/bom. */
.ord-erp .rev-caro{color:var(--critical)}
.ord-erp .rev-barato{color:var(--good)}
/* Par por nome com diferença absurda quase sempre é gramatura trocada
   (1kg × 5kg). A linha marcada diz onde olhar primeiro. */
.ord-erp .rev-suspeito{background:color-mix(in srgb, var(--critical) 7%, transparent)}
/* ── Comparativo de concorrência ── */
.ord-erp .bar.s3{background:var(--series-3)}
.ord-erp .bar.s4{background:var(--series-4)}
.ord-erp .bar.s5{background:var(--series-5)}
.ord-erp .bar.s6{background:var(--series-6)}
.ord-erp .bar.s7{background:var(--series-7)}
.ord-erp .bar.s8{background:var(--series-8)}
/* Seletor de fontes: a cor é do concorrente, não da posição na lista.
   Desmarcar um não pode repintar os outros. */
.ord-erp .fontes{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.ord-erp .fontes label{display:flex;gap:6px;align-items:center;font-size:12.5px;color:var(--ink-2);
              border:1px solid var(--ring);border-radius:6px;padding:5px 10px;cursor:pointer}
.ord-erp .fontes label.on{border-color:currentColor}
.ord-erp .fontes input{width:auto;margin:0}
.ord-erp .fontes .pt{width:9px;height:9px;border-radius:2px;flex:none}
/* Barras divergentes a partir da paridade.
   A DIREÇÃO carrega a polaridade (direita = mais caro que ele) e a COR carrega a
   identidade da fonte. Sem isso as duas informações brigariam pelo mesmo canal. */
.ord-erp .div-row{display:grid;grid-template-columns:150px 1fr;align-items:center;gap:9px;min-height:22px}
.ord-erp .div-row .nm{font-size:11.5px;color:var(--ink-2);text-align:right;
             white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ord-erp .div-track{position:relative;height:100%;min-height:18px}
/* A linha de paridade é a referência de leitura: some no meio, não no zero da esquerda. */
.ord-erp .div-track::before{content:'';position:absolute;left:50%;top:0;bottom:0;width:1px;background:var(--grid)}
.ord-erp .div-bar{position:absolute;top:50%;transform:translateY(-50%);height:13px;min-width:2px}
.ord-erp .div-bar.pos{left:50%;border-radius:0 4px 4px 0}
.ord-erp .div-bar.neg{right:50%;border-radius:4px 0 0 4px}
.ord-erp .div-val{position:absolute;top:50%;transform:translateY(-50%);font-size:11px;
         font-variant-numeric:tabular-nums;color:var(--ink-2);white-space:nowrap}
.ord-erp .div-leg{display:flex;gap:14px;flex-wrap:wrap;font-size:11px;color:var(--ink-muted);margin-top:10px}
.ord-erp .div-leg span{display:flex;gap:5px;align-items:center}
.ord-erp .div-leg i{width:9px;height:9px;border-radius:2px;display:inline-block}
/* Consulta avulsa */
.ord-erp .cola{width:100%;min-height:120px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;
      font-size:12px;line-height:1.5;resize:vertical}

