:root{
  /* ---- identidade Prieto: o vinho continua sendo a cor de destaque ---- */
  --wine:#730000;--wine-dark:#500b12;--wine-soft:#f6eceb;--gold:#84754d;
  --gold-ink:#6f5e2b;--gold-bg:#f3efe3;--gold-line:#ddd2ba;
  --wine-fill:#730000;--on-wine:#fff;
  --paper:#f4f3f0;--white:#fff;--ink:#26241f;--muted:#6b6862;--faint:#726e67;
  --line:#e2ded6;--line-soft:#eeebe5;--line-strong:#d3cdc3;--line-hard:#c9c1b6;
  --surface-soft:#fcfbf9;--surface-mute:#f5f3ef;--hover:#faf8f5;
  --backdrop:#29171c66;--shadow:#2a161b22;--shadow-strong:#2a161b33;
  --green:#286147;--green-bg:#eff5f1;--green-line:#cbdcd1;
  --amber:#7d5518;--amber-bg:#fdf6e8;--amber-line:#e7d5ae;
  --blue:#1f4f7a;--blue-bg:#eef4f9;--blue-line:#c6d9e8;
  --red:#8d2f25;--red-bg:#fdf0ee;--red-line:#e6c5bf;
  color-scheme:light;
}

/* ============================================================== TEMA ESCURO
   Nao e inversao de cores. O fundo e um cinza-carvao levemente quente, para
   nao brigar com o vinho institucional; o vinho puro (#730000) nao tem
   contraste suficiente sobre fundo escuro, entao o DESTAQUE clareia para um
   tom da mesma familia. Os estados operacionais (mantido/removido/novo)
   continuam com texto explicito: a cor nunca e o unico sinal.
   ========================================================================= */
:root[data-tema="escuro"]{
  --wine:#e08a86;--wine-dark:#2a1417;--wine-soft:#3a1d20;--gold:#c9b47c;
  --gold-ink:#d8c58a;--gold-bg:#332d1f;--gold-line:#5a5038;
  --wine-fill:#9d2b2b;--on-wine:#fff;
  --paper:#16151a;--white:#1e1d23;--ink:#eceae4;--muted:#a9a49a;--faint:#9c968c;
  --line:#37343c;--line-soft:#2a282f;--line-strong:#46424b;--line-hard:#57525c;
  --surface-soft:#232228;--surface-mute:#2a2830;--hover:#2d2b33;
  --backdrop:#0a0910cc;--shadow:#00000066;--shadow-strong:#00000088;
  --green:#7fc8a0;--green-bg:#1b2e24;--green-line:#33543f;
  --amber:#e3bd72;--amber-bg:#332a1a;--amber-line:#5c4c2c;
  --blue:#8bbbe0;--blue-bg:#1a2732;--blue-line:#33495c;
  --red:#ef9a8d;--red-bg:#331f1c;--red-line:#5e3a33;
  color-scheme:dark;
}


@media (prefers-color-scheme: dark){
  :root:not([data-tema="claro"]):not([data-tema="escuro"]){
    --wine:#e08a86;--wine-dark:#2a1417;--wine-soft:#3a1d20;--gold:#c9b47c;
    --gold-ink:#d8c58a;--gold-bg:#332d1f;--gold-line:#5a5038;
    --wine-fill:#9d2b2b;--on-wine:#fff;
    --paper:#16151a;--white:#1e1d23;--ink:#eceae4;--muted:#a9a49a;--faint:#9c968c;
    --line:#37343c;--line-soft:#2a282f;--line-strong:#46424b;--line-hard:#57525c;
    --surface-soft:#232228;--surface-mute:#2a2830;--hover:#2d2b33;
    --backdrop:#0a0910cc;--shadow:#00000066;--shadow-strong:#00000088;
    --green:#7fc8a0;--green-bg:#1b2e24;--green-line:#33543f;
    --amber:#e3bd72;--amber-bg:#332a1a;--amber-line:#5c4c2c;
    --blue:#8bbbe0;--blue-bg:#1a2732;--blue-line:#33495c;
    --red:#ef9a8d;--red-bg:#331f1c;--red-line:#5e3a33;
    color-scheme:dark;
  }
}

/* -------------------------------------------- alternador de tema (icone)
   Um botao so. O icone mostra PARA ONDE se vai, nao onde se esta: lua no
   tema claro (ir para o escuro), sol no escuro (voltar para o claro). */
.tema-icone{border:1px solid var(--line);background:none;border-radius:4px;
  width:30px;height:30px;padding:0;display:flex;align-items:center;justify-content:center;color:var(--muted)}
.tema-icone:hover{background:var(--hover);color:var(--wine);border-color:var(--line-strong)}
.tema-icone svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.7;
  stroke-linecap:round;stroke-linejoin:round}
.tema-icone .icone-sol{display:none}
.tema-icone .icone-lua{display:inline}
:root[data-tema="escuro"] .tema-icone .icone-sol{display:inline}
:root[data-tema="escuro"] .tema-icone .icone-lua{display:none}
@media (prefers-color-scheme: dark){
  :root:not([data-tema="claro"]) .tema-icone .icone-sol{display:inline}
  :root:not([data-tema="claro"]) .tema-icone .icone-lua{display:none}
}

/* A logomarca e escura; no tema escuro ela precisa de um respiro claro
   atras, senao some no cabecalho. */
:root[data-tema="escuro"] .logo{background:#f4f3f0;border-radius:3px}
@media (prefers-color-scheme: dark){
  :root:not([data-tema="claro"]) .logo{background:#f4f3f0;border-radius:3px}
}

*{box-sizing:border-box}
body{margin:0;background:var(--paper);color:var(--ink);font:14px/1.45 "Segoe UI",Arial,sans-serif}
button,input,select{font:inherit}button{cursor:pointer}
button:disabled{cursor:not-allowed;opacity:.45}
:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
[hidden]{display:none!important}
h1,h2,h3,p,dl,dd{margin:0}
h1{font-size:23px;font-weight:620;letter-spacing:-.4px}
h2{font-size:14px;font-weight:650;letter-spacing:.2px}
.plain{color:var(--muted);line-height:1.6}
.plain+.plain{margin-top:10px}

.header{background:var(--white);border-top:3px solid var(--wine);border-bottom:1px solid var(--line)}
.header-inner{max-width:1500px;margin:auto;padding:0 22px;min-height:54px;display:flex;align-items:center;justify-content:space-between;gap:18px}
.identity{display:flex;align-items:center;gap:14px}
.logo{position:relative;width:92px;height:48px;flex:none;overflow:hidden}
.logo img{position:absolute;left:0;top:-56px;width:92px;height:auto}
.identity-rule{width:1px;height:24px;background:var(--line)}
.product-title{display:block;font-weight:650;font-size:14px;color:var(--wine);line-height:1.2;white-space:nowrap;letter-spacing:-0.1px}
.product-subtitle{display:block;font-size:10.5px;color:var(--faint);line-height:1.25;white-space:nowrap}
.header-actions{display:flex;align-items:center;gap:20px}
.env-badge{font-size:9px;letter-spacing:.9px;font-weight:700;color:var(--gold);border:1px solid var(--gold-line);border-radius:3px;padding:4px 7px}
.quiet-button{border:0;background:none;color:var(--wine);font-size:12.5px;padding:6px 0}
.quiet-button:hover{text-decoration:underline}
.operator{text-align:right;border-left:1px solid var(--line);padding-left:20px}
.operator span{display:block;font-size:10px;color:var(--faint);letter-spacing:.4px}
.operator strong{display:block;font-size:12.5px;font-weight:600;max-width:190px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.operator button{border:0;background:none;color:var(--wine);font-size:10.5px;padding:1px 0 0;cursor:pointer}
.operator button:hover{text-decoration:underline}

/* ------------------------------------------------------------------- nav */
.nav-wrap{background:var(--white);border-bottom:1px solid var(--line)}
.nav{max-width:1500px;margin:auto;padding:0 26px;display:flex;align-items:center;gap:4px;min-height:44px}
.nav-item{border:0;background:none;color:var(--muted);font-size:12.5px;font-weight:600;letter-spacing:.5px;
  text-transform:uppercase;padding:13px 16px;position:relative;white-space:nowrap}
.nav-item:hover:not(:disabled){color:var(--ink)}
.nav-item.active{color:var(--wine)}
.nav-item.active:after{content:"";position:absolute;left:10px;right:10px;bottom:0;height:3px;background:var(--wine-fill)}
.nav-state{margin-left:auto;font-size:11px;color:var(--faint);white-space:nowrap}
.nav-state.alerta{color:var(--amber);font-weight:600}
.nav-state.ok{color:var(--green);font-weight:600}

main{max-width:1500px;margin:auto;padding:20px 26px 0}
.view-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:16px}
.view-head .sub{font-size:12px;color:var(--muted);margin-top:4px}
.view-actions{display:flex;gap:8px}

/* ----------------------------------------------------------------- card */
.card{background:var(--white);border:1px solid var(--line);border-radius:6px;padding:18px 20px}
.card.flush{padding:0;overflow:hidden}
.card-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;
  padding-bottom:12px;margin-bottom:14px;border-bottom:1px solid var(--line-soft)}
.card.flush .card-head{padding:14px 18px;margin:0;border-bottom:1px solid var(--line)}
.card-head h2{text-transform:uppercase;font-size:11px;letter-spacing:.9px;color:var(--faint)}
.card-note{font-size:11px;color:var(--faint)}

/* -------------------------------------------------------------- análise */
.grid-analise{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:start}
.sources{width:100%;border-collapse:collapse;font-size:13px}
.sources th{text-align:left;font-weight:600;padding:8px 0}
.sources td{padding:8px 0;color:var(--muted);text-align:right}
.sources tr+tr th,.sources tr+tr td{border-top:1px solid var(--line-soft)}
.src-status{width:110px}
.st-ok{color:var(--green)}.st-warn{color:var(--amber)}.st-info{color:var(--faint);font-weight:400}
.source-health{display:flex;align-items:flex-start;gap:10px;margin-top:12px;padding:10px 12px;border-radius:4px;
  background:var(--surface-mute);border:1px solid var(--line-soft);font-size:12px;color:var(--muted)}
.source-health strong{display:block;color:var(--ink);font-size:12.5px}
.source-health.fresh{background:var(--green-bg);border-color:var(--green-line)}
.source-health.fresh strong{color:var(--green)}
.source-health.stale{background:var(--amber-bg);border-color:var(--amber-line)}
.source-health.stale strong{color:var(--amber)}
.field-row{margin-bottom:16px}
.field-row>label{display:block;font-size:11px;letter-spacing:.4px;color:var(--faint);text-transform:uppercase;margin-bottom:7px}
.days{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:12px}
.days input{width:74px;height:36px;border:1px solid var(--line-strong);border-radius:4px;padding:6px 10px;background:var(--surface-soft);font-size:15px;text-align:center}
.days.small input{width:56px;height:30px;font-size:13px}
.chips{display:flex;flex-wrap:wrap;gap:6px}
.chip{font-size:11.5px;color:var(--muted);background:var(--surface-mute);border:1px solid var(--line-soft);border-radius:3px;padding:4px 8px}
.more{border-top:1px solid var(--line-soft);padding-top:12px}
.more summary{font-size:12px;color:var(--wine);cursor:pointer;width:fit-content}
.more-body{padding-top:10px}
.more-line{display:flex;justify-content:space-between;font-size:12.5px;padding:5px 0;border-bottom:1px solid var(--line-soft)}
.more-line span{color:var(--muted)}
.more-body p{font-size:11.5px;color:var(--faint);margin-top:9px;line-height:1.5}
.ack{display:flex;align-items:center;gap:8px;font-size:12.5px;margin:16px 0 12px}
input[type=checkbox]{accent-color:var(--wine);width:15px;height:15px;flex:none;margin:0}

/* ------------------------------------------------------- panorama FIFO */
.fifo-panorama{margin-top:16px}
.panorama-head{align-items:flex-start}
.panorama-head>div{min-width:0}
.panorama-head .card-sub{margin-top:5px;font-size:12px;color:var(--muted);line-height:1.5}
.panorama-head .btn{flex:none}
.panorama-totals{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.panorama-metric{border:1px solid var(--line);border-radius:5px;padding:13px 14px;background:var(--surface-soft);min-width:0}
.panorama-metric span{display:block;font-size:10px;color:var(--faint);text-transform:uppercase;letter-spacing:.45px}
.panorama-metric strong{display:inline-block;margin-top:4px;font-size:24px;line-height:1.1;font-weight:650;letter-spacing:-.6px}
.panorama-metric em{font-style:normal;font-size:11px;color:var(--muted);margin-left:4px}
.panorama-compare{display:flex;align-items:center;gap:12px;margin:12px 0 18px;padding:10px 13px;border-left:3px solid var(--wine);
  background:var(--wine-soft);color:var(--muted);font-size:12px}
.panorama-compare b{color:var(--ink)}
.panorama-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(310px,.8fr);gap:24px;border-top:1px solid var(--line-soft);padding-top:16px}
.section-title{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:9px}
.section-title h3{font-size:12px;font-weight:650}
.section-title span{font-size:10.5px;color:var(--faint)}
.situation-list{display:grid;gap:6px}
.situation-row{display:grid;grid-template-columns:85px minmax(35px,1fr) minmax(140px,auto) 100px;align-items:center;gap:8px;width:100%;
  padding:8px 10px;border:1px solid var(--line-soft);border-radius:4px;background:var(--white);color:var(--ink);text-align:left}
.situation-row:hover{border-color:var(--line-hard);background:var(--surface-soft)}
.situation-name{font-weight:650;font-size:12px}
.situation-bar{height:6px;background:var(--surface-mute);border-radius:8px;overflow:hidden}
.situation-bar i{display:block;width:var(--share);height:100%;background:var(--wine-fill);border-radius:8px}
.situation-row[data-situation="NORMAL"] .situation-bar i{background:var(--green)}
.situation-row[data-situation="1-3 VAL"] .situation-bar i{background:var(--gold)}
.situation-row[data-situation="PDA"] .situation-bar i{background:var(--amber)}
.situation-row[data-situation="PDC"] .situation-bar i{background:var(--red)}
.situation-boxes{text-align:right;font-weight:650;font-variant-numeric:tabular-nums;font-size:12.5px}
.situation-meta{text-align:right;color:var(--faint);font-size:10.5px;white-space:nowrap}
.other-situations{margin-top:8px;padding:10px 12px;border:1px solid var(--amber-line);border-radius:4px;background:var(--gold-bg)}
.other-title{display:flex;justify-content:space-between;gap:12px;font-size:11px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;color:var(--amber)}
.other-list{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:8px}
.other-list button{border:0;border-left:2px solid var(--amber-line);background:none;text-align:left;padding:2px 8px;color:var(--muted);font-size:10.5px}
.other-list button:hover{color:var(--ink)}
.other-list b{display:block;color:var(--ink);font-size:12px;margin-top:2px}
.pda-bands{display:grid;gap:7px}
.pda-band{display:grid;grid-template-columns:minmax(60px,1fr) minmax(145px,auto);gap:12px;padding:10px 12px;border:1px solid var(--line-soft);border-radius:4px;background:var(--surface-soft);text-align:left}
button.pda-band{width:100%;color:var(--ink)}
button.pda-band:hover{border-color:var(--line-hard);background:var(--white)}
.pda-band span{font-size:11.5px;color:var(--muted)}
.pda-band b{text-align:right;font-size:14px;font-variant-numeric:tabular-nums}
.pda-band small{grid-column:1/3;color:var(--faint);font-size:10px}
.panorama-note{font-size:10.5px;color:var(--faint);margin-top:9px}

/* -------------------------------------------------------------- botões */
.btn{border:1px solid var(--line-strong);background:var(--white);color:var(--ink);border-radius:4px;
  font-size:12px;font-weight:600;letter-spacing:.4px;padding:9px 14px;min-height:36px;white-space:nowrap}
.btn:hover:not(:disabled){background:var(--surface-mute)}
.btn.small{font-size:11px;padding:6px 10px;min-height:30px}
.btn.primary{background:var(--wine-fill);border-color:var(--wine-fill);color:var(--on-wine);width:100%;min-height:42px;font-size:13px;letter-spacing:.8px}
.btn.primary:hover:not(:disabled){background:var(--wine-dark)}

/* ------------------------------------------------------------- alertas */
.alert{border-left:3px solid;border-radius:0 4px 4px 0;padding:10px 14px;font-size:12.5px;line-height:1.5;margin-bottom:10px}
.alert.warn{border-color:var(--amber-line);background:var(--amber-bg);color:var(--amber)}
.alert.ok{border-color:var(--green-line);background:var(--green-bg);color:var(--green)}
.error{border:1px solid var(--red-line);background:var(--red-bg);color:var(--red);border-radius:4px;padding:12px 16px;font-size:13px;margin-bottom:16px}

/* ------------------------------------------------------------ executando */
.running{text-align:center;padding:64px 20px;margin-top:40px}
.running p{color:var(--muted);margin-top:8px;font-size:13px}
.spinner{width:28px;height:28px;border-radius:50%;border:3px solid var(--line);border-top-color:var(--wine);margin:0 auto 18px;animation:spin 1s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.spinner{animation:none}}

/* Ajuda e explicações operacionais: um único padrão em todos os módulos. */
.page-help{margin-left:auto;flex:none;border:1px solid var(--line);background:var(--white);color:var(--wine);border-radius:4px;padding:7px 10px;font-size:11.5px;font-weight:600}
.page-help:hover{background:var(--wine-soft);border-color:var(--line-strong)}
.help-dialog{width:min(720px,calc(100vw - 28px))}
.help-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding-top:4px}
.help-grid section{padding:13px 14px;border:1px solid var(--line-soft);border-radius:5px;background:var(--surface-soft)}
.help-grid section.wide{grid-column:1/-1}.help-grid h3{font-size:11px;text-transform:uppercase;letter-spacing:.55px;color:var(--wine);margin-bottom:5px}.help-grid p{font-size:12.5px;line-height:1.5;color:var(--muted)}
.info-tip{display:inline-flex;align-items:center;justify-content:center;width:17px;height:17px;margin-left:4px;padding:0;border:1px solid var(--line-strong);border-radius:50%;background:var(--white);color:var(--muted);font:700 10px/1 Georgia,serif;vertical-align:1px;text-transform:none;letter-spacing:0}
.info-tip:hover,.info-tip[aria-expanded="true"]{color:var(--wine);border-color:var(--wine);background:var(--wine-soft)}
.ui-tooltip{position:fixed;z-index:10000;width:min(290px,calc(100vw - 16px));padding:9px 11px;border:1px solid var(--line-strong);border-radius:5px;background:var(--ink);color:var(--white);box-shadow:0 8px 25px var(--shadow-strong);font-size:11.5px;line-height:1.45}
.toast-region{position:fixed;right:18px;bottom:18px;z-index:10020;display:grid;gap:8px;width:min(370px,calc(100vw - 28px))}.toast{padding:11px 13px;border:1px solid var(--green-line);border-radius:5px;background:var(--green-bg);color:var(--green);box-shadow:0 8px 24px var(--shadow);font-size:12.5px;font-weight:600}.toast.aviso{border-color:var(--amber-line);background:var(--amber-bg);color:var(--amber)}.toast.erro{border-color:var(--red-line);background:var(--red-bg);color:var(--red)}

/* Abertura operacional: pendências primeiro, estado dos módulos depois. */
.home-attention{margin-bottom:16px;border:1px solid var(--line);border-left:4px solid var(--wine);border-radius:5px;background:var(--white);padding:12px 15px;min-height:48px}.home-attention ul{margin:0;padding-left:18px;display:grid;gap:5px;font-size:12.5px}.home-attention p{display:flex;flex-wrap:wrap;gap:5px 10px;font-size:12.5px}.home-attention p span{color:var(--muted)}
.home-section-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin:4px 0 9px}.home-section-head h2{text-transform:uppercase;font-size:10.5px;letter-spacing:.75px;color:var(--faint)}.home-section-head span{font-size:10.5px;color:var(--faint)}
.home-card small{display:block;color:var(--faint);font-size:10.5px;line-height:1.35;margin-top:8px}
.source-state{white-space:nowrap}.source-state.ok{color:var(--green);font-weight:600}.source-state.empty{color:var(--faint)}
.status-text{font-weight:700}.status-text.ok{color:var(--green)}.status-text.warn{color:var(--amber)}
.vazio b,.faltas-empty-row b,.faltas-error-row b{display:block;color:var(--ink);margin-bottom:2px}.vazio span{display:block;color:var(--faint);font-size:11px;margin-top:2px}

@media(max-width:760px){.help-grid{grid-template-columns:1fr}.help-grid section.wide{grid-column:auto}.page-help{font-size:0;padding:7px}.page-help::after{content:"?";font-size:13px}.home-section-head span{display:none}.header-actions{gap:9px}#help-open{font-size:0}#help-open::after{content:"?";font-size:14px}.ui-tooltip{font-size:12px}}

/* ---------------------------------------------------------------- KPIs */
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-bottom:14px}
.kpi{background:var(--white);border:1px solid var(--line);border-radius:6px;padding:12px 15px}
.kpi span{display:block;font-size:10.5px;letter-spacing:.4px;text-transform:uppercase;color:var(--faint)}
.kpi strong{font-size:27px;font-weight:620;letter-spacing:-.9px;font-variant-numeric:tabular-nums;display:inline-block;margin-top:5px}
.kpi em{font-style:normal;font-size:11.5px;color:var(--muted);margin-left:5px}
.kpi.accent{background:var(--green-bg);border-color:var(--green-line)}
.kpi.accent strong{color:var(--green)}
#kpi-review-box{background:var(--blue-bg);border-color:var(--blue-line)}
#kpi-review-box strong{color:var(--blue)}

/* -------------------------------------------------------------- filtros */
.filter-bar{display:flex;align-items:center;gap:10px;padding:12px 16px;background:var(--surface-soft);border-bottom:1px solid var(--line)}
.search{flex:1;min-width:0;display:flex;align-items:center;gap:8px;border:1px solid var(--line-strong);border-radius:4px;background:var(--white);padding:0 10px;height:34px}
.search svg{width:16px;height:16px;flex:none;stroke:var(--faint);fill:none;stroke-width:1.6}
.search input{border:0;background:none;width:100%;font-size:12.5px;height:32px}
.search input:focus{outline:0}
.inline{display:flex;align-items:center;gap:7px;font-size:11px;color:var(--faint);text-transform:uppercase;letter-spacing:.4px}
.inline select{height:34px;border:1px solid var(--line-strong);border-radius:4px;background:var(--white);padding:0 8px;font-size:12.5px;color:var(--ink);text-transform:none;letter-spacing:0;min-width:96px}
.filter-extra{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;align-items:end;
  padding:14px 16px;background:var(--surface-soft);border-bottom:1px solid var(--line)}
.filter-extra label{font-size:10.5px;color:var(--faint);text-transform:uppercase;letter-spacing:.4px}
.filter-extra input,.filter-extra select{display:block;width:100%;height:32px;margin-top:5px;border:1px solid var(--line-strong);border-radius:4px;background:var(--white);padding:0 8px;font-size:12.5px;color:var(--ink)}
.filter-extra .days input{margin-top:0}
.filter-extra .days{margin-top:5px}
.list-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 16px;
  border-bottom:1px solid var(--line);font-size:11.5px;color:var(--muted)}
.bulk{display:flex;align-items:center;gap:8px}
.bulk-note{font-size:11px;color:var(--faint)}

/* --------------------------------------------------------------- tabela */
.table-head,.row{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1.35fr) 84px 92px 150px;
  gap:14px;align-items:center;padding:9px 16px}
.table-head{background:var(--surface-mute);border-bottom:1px solid var(--line);font-size:10px;letter-spacing:.7px;
  text-transform:uppercase;color:var(--faint);font-weight:600}
.table-head.compact,.row.compact{grid-template-columns:minmax(0,1fr) minmax(0,1.15fr) 86px}
.row{border-bottom:1px solid var(--line-soft);font-size:12.5px}
.row:hover{background:var(--surface-soft)}
.row.off{background:var(--surface-soft);opacity:.62}
.row.novo{box-shadow:inset 3px 0 0 var(--blue)}
.cliente,.produto{display:block;font-weight:600;overflow-wrap:anywhere;line-height:1.35}
.cliente{color:var(--wine)}
.meta{display:block;font-size:11px;color:var(--faint);margin-top:2px;overflow-wrap:anywhere}
.meta b{color:var(--muted);font-weight:600}
.num{text-align:right;font-variant-numeric:tabular-nums;font-size:14px;white-space:nowrap}
.num em{font-style:normal;font-size:10px;color:var(--faint);margin-left:3px}
.num.forte{font-weight:650;color:var(--green);font-size:16px}
.acao{display:flex;align-items:center;justify-content:flex-end;gap:12px}
.toggle{border:1px solid var(--green-line);background:var(--green-bg);color:var(--green);
  border-radius:3px;font-size:10px;font-weight:700;letter-spacing:.6px;padding:5px 8px;min-width:78px}
.toggle:hover{border-color:var(--green);}
.toggle.removido{border-color:var(--red-line);background:var(--red-bg);color:var(--red)}
.link{border:0;background:none;color:var(--wine);font-size:11.5px;padding:0}
.link:hover{text-decoration:underline}
.tag{display:inline-block;font-size:9px;font-weight:700;letter-spacing:.7px;padding:2px 6px;border-radius:2px;margin-bottom:4px}
.tag.novo{background:var(--blue-bg);color:var(--blue);border:1px solid var(--blue-line)}
.vazio{padding:38px 16px;text-align:center;color:var(--faint);font-size:13px}
.pager{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 16px;font-size:11.5px;color:var(--muted)}
.pager>div{display:flex;gap:6px}

/* ------------------------------------------------------------ aprovação */
.grid-aprov{display:grid;grid-template-columns:320px minmax(0,1fr);gap:16px;align-items:start}
.grid-csv{display:grid;grid-template-columns:340px minmax(0,1fr);gap:16px;align-items:start}
.summary{margin-bottom:18px}
.summary>div{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px solid var(--line-soft)}
.summary dt{font-size:12px;color:var(--muted)}
.summary dd{font-size:13px;font-weight:650;font-variant-numeric:tabular-nums;text-align:right;overflow-wrap:anywhere}
.aprov-lista{max-height:560px;overflow:auto}
.csv-preview{margin-top:14px;background:var(--surface-mute);border:1px solid var(--line-soft);border-radius:4px;
  padding:12px 14px;font-family:Consolas,monospace;font-size:12px;color:var(--muted);line-height:1.7;overflow-wrap:anywhere}

/* ------------------------------------------------------------- técnicos */
.technical{margin-top:14px;font-size:12px}
.technical summary{cursor:pointer;color:var(--muted);padding:8px 0;width:fit-content}
.technical dl{display:grid;grid-template-columns:230px 1fr;gap:7px 16px;background:var(--white);
  border:1px solid var(--line);border-radius:6px;padding:16px 18px;margin-top:6px}
.technical dt{color:var(--faint)}
.technical dd{overflow-wrap:anywhere}

footer{display:flex;justify-content:space-between;gap:16px;border-top:1px solid var(--line);
  margin-top:28px;padding:16px 0 22px;font-size:10px;letter-spacing:.6px;color:var(--faint)}

/* --------------------------------------------------------------- dialog */
dialog{border:1px solid var(--line);border-radius:8px;padding:0;width:640px;max-width:calc(100vw - 32px);
  max-height:86vh;background:var(--white);color:var(--ink);box-shadow:0 18px 60px var(--shadow-strong)}
dialog::backdrop{background:var(--backdrop)}
.dialog-head{display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:16px 20px;border-bottom:1px solid var(--line)}
.dialog-head h2{font-size:15px;text-transform:none;letter-spacing:0;color:var(--ink)}
.close{border:0;background:var(--surface-mute);color:var(--muted);width:28px;height:28px;border-radius:50%;font-size:20px;line-height:1;flex:none}
#dialog-body{padding:18px 20px 22px;font-size:13px}
dl.detalhe{display:grid;grid-template-columns:1fr 1fr;gap:12px 20px}
dl.detalhe dt{font-size:10.5px;color:var(--faint);text-transform:uppercase;letter-spacing:.4px}
dl.detalhe dd{font-size:13px;font-weight:600;margin-top:2px;overflow-wrap:anywhere}
#dialog-body .alert{margin:14px 0 0}
.help-steps{margin:0 0 14px;padding-left:20px;line-height:1.9;color:var(--ink)}
.operator-dialog{width:470px}
.dialog-eyebrow{display:block;color:var(--wine);font-size:9.5px;font-weight:700;letter-spacing:1px;text-transform:uppercase;margin-bottom:3px}
.operator-body{padding:22px 20px 24px}
.operator-body label{display:block;font-size:11px;font-weight:650;letter-spacing:.45px;text-transform:uppercase;color:var(--faint);margin-bottom:7px}
.operator-body input{width:100%;height:42px;border:1px solid var(--line-strong);border-radius:4px;background:var(--surface-soft);padding:0 11px;color:var(--ink);font-size:15px}
.operator-body p{font-size:12px;color:var(--muted);line-height:1.55;margin:10px 0 16px}
.field-error{font-size:12px;color:var(--red);background:var(--red-bg);border-left:3px solid var(--red-line);padding:8px 10px;margin:0 0 12px}

/* ---------------------------------------------------------- responsivo */
@media(max-width:1180px){
  .grid-aprov,.grid-csv{grid-template-columns:1fr}
  .table-head,.row{grid-template-columns:minmax(0,1.2fr) minmax(0,1.3fr) 70px 80px 140px;gap:10px}
}
@media(max-width:900px){
  .grid-analise{grid-template-columns:1fr}
  .table-head{display:none}
  .row,.row.compact{grid-template-columns:1fr 1fr;gap:8px 12px;padding:14px 16px}
  .c-cliente,.c-produto{grid-column:1/3}
  .acao{grid-column:1/3;justify-content:space-between;border-top:1px solid var(--line-soft);padding-top:10px}
  .num{text-align:left}
  .num:before{content:attr(data-label)}
  .filter-bar{flex-wrap:wrap}.search{flex-basis:100%}
  .env-badge{display:none}
  .header-actions{gap:12px}.operator{padding-left:12px}
  .nav{overflow-x:auto}
  .nav-state{display:none}
}
@media(max-width:600px){
  .header-inner{padding:0 16px;min-height:62px}.nav{padding:0 16px}main{padding:16px 16px 0}
  .logo{width:80px;height:48px}.logo img{width:80px;top:-45px}
  .identity{gap:9px}.identity-rule{display:none}.product-subtitle{display:none}
  .header-actions>.quiet-button{display:none}.operator{border-left:0;padding-left:0}.operator strong{max-width:110px}
  .nav-item{padding:12px 10px;font-size:11.5px}
  .kpis{grid-template-columns:1fr 1fr}
  .view-head{flex-direction:column;gap:12px}
  .view-actions{flex-wrap:wrap;width:100%}
  .view-actions .btn{flex:1}
  .list-bar{flex-direction:column;align-items:stretch;gap:8px}
  .technical dl{grid-template-columns:1fr}
}
.csv-preview{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:8px;font-family:inherit}
.csv-preview .cfg{display:flex;flex-direction:column;gap:2px;background:var(--white);border:1px solid var(--line-soft);border-radius:4px;padding:8px 10px;color:var(--ink);font-size:12.5px;font-weight:600}
.csv-preview .cfg b{font-weight:400;font-size:10px;letter-spacing:.4px;text-transform:uppercase;color:var(--faint)}
.criteria-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px 12px;margin-bottom:16px}
.criteria-grid label{font-size:10.5px;letter-spacing:.4px;color:var(--faint);text-transform:uppercase}
.criteria-grid input,.criteria-grid select{display:block;width:100%;height:34px;margin-top:5px;border:1px solid var(--line-strong);
  border-radius:4px;background:var(--surface-soft);padding:0 9px;font-size:13px;color:var(--ink);text-transform:none;letter-spacing:0}
.view-head .chips{margin-top:8px}
.toggle.aceitar{border-color:var(--blue-line);background:var(--blue-bg);color:var(--blue);min-width:64px}
.tag.revisado{background:var(--green-bg);color:var(--green);border:1px solid var(--green-line)}
.csv-path{margin-top:12px;background:var(--surface-mute);border:1px solid var(--line-soft);border-radius:4px;
  padding:10px 12px;font-family:Consolas,monospace;font-size:12px;overflow-wrap:anywhere}
#csv-status{margin-top:12px;margin-bottom:0;overflow-wrap:anywhere}
.csv-actions{display:grid;gap:8px}
@media(max-width:600px){.criteria-grid{grid-template-columns:1fr}}

.running{text-align:left;padding:30px 28px}
.running-head{display:flex;align-items:center;gap:16px;padding-bottom:18px;border-bottom:1px solid var(--line-soft)}
.running-head .spinner{margin:0;flex:none}
.running-head h2{font-size:17px;text-transform:none;letter-spacing:0;color:var(--ink)}
.running-head .sub{font-size:12px;color:var(--muted);margin-top:3px}
.stages{list-style:none;margin:16px 0 0;padding:0;max-width:520px}
.stages li{display:flex;justify-content:space-between;gap:16px;font-size:12.5px;padding:7px 0;border-bottom:1px solid var(--line-soft)}
.stages li:last-child{border-bottom:0}
.stages .stage-time{color:var(--faint);font-variant-numeric:tabular-nums;font-size:11.5px;white-space:nowrap}
.stages .feita span:first-child{color:var(--muted)}
.stages .feita span:first-child:before{content:"✓";color:var(--green);margin-right:8px}
.stages .em-curso span:first-child{color:var(--wine);font-weight:600}
.stages .em-curso span:first-child:before{content:"›";margin-right:8px}

.days-prefix{color:var(--faint)}
.field-help{font-size:11.5px;color:var(--faint);margin-top:7px;line-height:1.5}
footer .credit{margin-left:auto;margin-right:auto;color:var(--faint)}
@media(max-width:600px){footer{flex-direction:column;gap:4px}footer .credit{margin:0}}

/* ---------------------------------------------------- multi-selecao */
.multi{position:relative}
.multi-label{display:block;font-size:10.5px;letter-spacing:.4px;color:var(--faint);text-transform:uppercase}
.multi-btn{position:relative;display:block;width:100%;height:34px;margin-top:5px;border:1px solid var(--line-strong);border-radius:4px;
  background:var(--surface-soft);padding:0 26px 0 9px;font-size:13px;color:var(--ink);text-align:left;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;position:relative}
.multi-btn:after{content:"";position:absolute;right:10px;top:50%;margin-top:-2px;border:4px solid transparent;border-top-color:var(--faint)}
.multi-btn.tem-selecao{border-color:var(--wine);color:var(--wine);font-weight:600}
.multi-pop{position:absolute;z-index:20;top:62px;left:0;right:0;min-width:230px;background:var(--white);
  border:1px solid var(--line);border-radius:6px;box-shadow:0 10px 30px var(--shadow);overflow:hidden}
.multi-head{display:flex;gap:6px;padding:8px;border-bottom:1px solid var(--line-soft);background:var(--surface-soft)}
.multi-busca{flex:1;min-width:0;height:28px;border:1px solid var(--line-strong);border-radius:4px;padding:0 8px;font-size:12px}
.multi-clear{border:0;background:none;color:var(--wine);font-size:11px;padding:0 4px;white-space:nowrap}
.multi-list{max-height:240px;overflow:auto;padding:4px 0}
.multi-list label{display:flex;align-items:center;gap:8px;padding:6px 10px;font-size:12.5px;cursor:pointer;
  text-transform:none;letter-spacing:0;color:var(--ink)}
.multi-list label:hover{background:var(--surface-mute)}
.multi-list .fora{color:var(--faint)}
.multi-list .desc{color:var(--faint);font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.multi-vazio{padding:16px 10px;text-align:center;color:var(--faint);font-size:12px}

/* A regra generica .criteria-grid input{width:100%} alcancava as caixas de
   selecao do multi e empurrava o rotulo para fora da lista. */
.criteria-grid .multi-list input[type=checkbox]{display:inline-block;width:15px;height:15px;margin:0;flex:none}
.criteria-grid .multi-head input{width:auto}

.env-badge.oficial{color:var(--green);border-color:var(--green-line);background:var(--green-bg)}
.env-badge.teste{color:var(--amber);border-color:var(--amber-line);background:var(--amber-bg)}
.sources thead th{font-size:10px;letter-spacing:.4px;text-transform:uppercase;color:var(--faint);
  font-weight:600;text-align:right;padding-bottom:4px}
.sources thead th:first-child{text-align:left}

/* ------------------------------------------------------ detalhes FIFO */
.fifo-dialog{position:fixed;inset:0 0 0 auto;margin:0;width:min(1180px,92vw);max-width:92vw;height:100vh;max-height:100vh;
  border-radius:8px 0 0 8px;overflow:hidden}
/* O detalhe PDA/PDC reaproveita .fifo-dialog, que é um painel de altura fixa
   com overflow:hidden — no detalhamento do FIFO o scroll vive no container
   interno .fifo-table-wrap. O detalhe do PDA/PDC não tem esse container, então
   tudo que passava de 100vh ficava inacessível (Programado atual/anterior).
   Aqui quem rola é o próprio diálogo: uma única barra, sem concorrência, e o
   teclado funciona porque o elemento focado no showModal() fica dentro dele.
   O cabeçalho fica fixo por sticky, sem criar uma segunda área de rolagem. */
#pda-dialog:not([open]){display:none}
#pda-dialog[open]{display:flex;flex-direction:column}
#pda-dialog .drawer-head{flex:none}
#pda-dialog .pda-detail{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain}
#pda-dialog .pda-detail:focus{outline:none}
.drawer-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;padding:18px 20px 14px;border-bottom:1px solid var(--line)}
.drawer-head h2{font-size:19px;margin-top:1px}
.drawer-head p{font-size:11.5px;color:var(--muted);margin-top:4px}
.fifo-filters{display:grid;grid-template-columns:2fr 1fr 1fr auto;gap:10px;align-items:end;padding:12px 20px;background:var(--surface-mute);border-bottom:1px solid var(--line)}
.fifo-filters label{font-size:10px;letter-spacing:.4px;color:var(--faint);text-transform:uppercase}
.fifo-filters input,.fifo-filters select{display:block;width:100%;height:34px;margin-top:4px;border:1px solid var(--line-strong);border-radius:4px;background:var(--white);padding:0 9px;color:var(--ink);font-size:12.5px;text-transform:none;letter-spacing:0}
.fifo-detail-count{padding:9px 20px;font-size:11px;color:var(--muted);border-bottom:1px solid var(--line-soft)}
.fifo-table-wrap{overflow:auto;height:calc(100vh - 159px)}
.fifo-table{width:100%;border-collapse:collapse;font-size:11.5px}
.fifo-table th{position:sticky;top:0;z-index:1;background:var(--wine-dark);color:var(--white);padding:9px 10px;text-align:left;font-size:9.5px;letter-spacing:.35px;text-transform:uppercase;white-space:nowrap}
/* Ordenacao do detalhamento do FIFO.
   O indicador e um TRIANGULO desenhado com bordas, nao um caractere: setas
   Unicode dependem da fonte e de encoding, e ja apareceram corrompidas. */
.fifo-table th[data-ord]{cursor:pointer;user-select:none;padding-right:20px;position:sticky}
.fifo-table th[data-ord]:hover{background:var(--wine-fill)}
.fifo-table th[data-ord]::after{content:"";position:absolute;right:7px;top:50%;
  width:0;height:0;border-left:4px solid transparent;border-right:4px solid transparent;
  opacity:0;transition:opacity .12s}
/* sem ordenacao: so uma dica ao passar o mouse */
.fifo-table th[data-ord]:hover::after{opacity:.45;border-top:5px solid currentColor;margin-top:-2px}
.fifo-table th.ord::after,.fifo-table th[data-ord]:hover.ord::after{opacity:1}
.fifo-table th.ord[data-dir='asc']::after{border-bottom:5px solid currentColor;border-top:0;margin-top:-3px}
.fifo-table th.ord[data-dir='desc']::after{border-top:5px solid currentColor;border-bottom:0;margin-top:-2px}
/* Ordenacao da tabela PDA/PDC — mesmo padrao do detalhamento do FIFO
   (triangulo em CSS, nao caractere), adaptado ao cabecalho claro do
   .data-table (o hover do FIFO usa --wine-fill, feito para cabecalho escuro). */
.pda-table th[data-ord]{cursor:pointer;user-select:none;padding-right:20px}
.pda-table th[data-ord]:hover{background:var(--line-soft)}
.pda-table th[data-ord]::after{content:"";position:absolute;right:7px;top:50%;
  width:0;height:0;border-left:4px solid transparent;border-right:4px solid transparent;
  opacity:0;transition:opacity .12s}
.pda-table th[data-ord]:hover::after{opacity:.45;border-top:5px solid currentColor;margin-top:-2px}
.pda-table th.ord::after,.pda-table th[data-ord]:hover.ord::after{opacity:1}
.pda-table th.ord[data-dir='asc']::after{border-bottom:5px solid currentColor;border-top:0;margin-top:-3px}
.pda-table th.ord[data-dir='desc']::after{border-top:5px solid currentColor;border-bottom:0;margin-top:-2px}
.fifo-table td{padding:8px 10px;border-bottom:1px solid var(--line-soft);vertical-align:middle}
.fifo-table tbody tr:hover{background:var(--hover)}
.fifo-table td:nth-child(6),.fifo-table td:nth-child(7),.fifo-table td:nth-child(8),.fifo-table td:nth-child(9){white-space:nowrap;text-align:right;font-variant-numeric:tabular-nums}
.fifo-table .description{min-width:240px;max-width:360px}
.fifo-tag{display:inline-block;border-radius:3px;padding:3px 6px;background:var(--surface-mute);color:var(--muted);font-size:9.5px;font-weight:700;letter-spacing:.25px;white-space:nowrap}
.fifo-tag.normal{background:var(--green-bg);color:var(--green)}
.fifo-tag.um-terco{background:var(--gold-bg);color:var(--gold-ink)}
.fifo-tag.pda{background:var(--amber-bg);color:var(--amber)}
.fifo-tag.pdc,.fifo-tag.vencido{background:var(--red-bg);color:var(--red)}
.fifo-tag.falso,.fifo-tag.vence-hoje{background:var(--gold-bg);color:var(--amber);border:1px solid var(--amber-line)}

/* --------------------------------------------- agrupamento e visões */
.kpi-acao{text-align:left;font:inherit;cursor:pointer}
.kpi-acao:hover{border-color:var(--wine)}
.kpi-acao strong{color:var(--wine)}
.segmento{display:inline-flex;border:1px solid var(--line-strong);border-radius:4px;overflow:hidden}
.seg{border:0;background:var(--white);font-size:11px;font-weight:600;padding:7px 12px;color:var(--muted)}
.seg+.seg{border-left:1px solid var(--line-strong)}
.seg.ativo{background:var(--wine-fill);color:var(--on-wine)}
#bulk-aviso{padding:8px 16px 10px;margin:0;border-bottom:1px solid var(--line-soft);font-size:11px}
.grupo{border-bottom:1px solid var(--line)}
.grupo.off{background:var(--surface-soft)}
.grupo.off .grupo-cab{opacity:.62}
.grupo-cab{display:grid;grid-template-columns:minmax(0,1fr) 84px 92px 190px;gap:14px;align-items:center;padding:11px 16px}
.grupo-cab:hover{background:var(--surface-soft)}
.grupo-itens{background:var(--surface-soft);border-top:1px solid var(--line-soft);padding:2px 0 6px 22px}
.grupo-itens .row{grid-template-columns:minmax(0,1fr) minmax(0,1.2fr) 74px 84px 150px;padding:8px 16px;font-size:12px}
.toggle.parcial{border-color:var(--amber-line);background:var(--amber-bg);color:var(--amber)}
.tabela-resumo{max-height:46vh;overflow:auto;border:1px solid var(--line);border-radius:5px;margin-top:16px}
.tabela-resumo table{width:100%;border-collapse:collapse;font-size:12px}
.tabela-resumo th{position:sticky;top:0;background:var(--surface-mute);text-align:left;font-size:10px;letter-spacing:.4px;
  text-transform:uppercase;color:var(--faint);padding:8px 10px;border-bottom:1px solid var(--line)}
.tabela-resumo td{padding:7px 10px;border-bottom:1px solid var(--line-soft);vertical-align:top}
.tabela-resumo .n{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.tabela-resumo .forte{font-weight:650;color:var(--green)}
.tabela-resumo .desc{display:block;color:var(--faint);font-size:11px;margin-top:2px}
@media(max-width:900px){.grupo-cab{grid-template-columns:1fr 1fr;gap:8px}.grupo-cab .c-cliente{grid-column:1/3}
  .grupo-cab .acao{grid-column:1/3;justify-content:space-between}.grupo-itens{padding-left:0}}

@media(max-width:900px){
  .panorama-totals{grid-template-columns:1fr 1fr}
  .panorama-grid{grid-template-columns:1fr}
  .fifo-filters{grid-template-columns:1fr 1fr}
  .fifo-dialog{width:100vw;max-width:100vw;border-radius:0}
}
@media(max-width:600px){
  .panorama-head{display:block}.panorama-head .btn{margin-top:10px;width:100%}
  .panorama-totals{grid-template-columns:1fr 1fr}
  .panorama-metric strong{font-size:21px}
  .situation-row{grid-template-columns:82px 1fr}.situation-boxes{grid-column:1/-1;text-align:left}.situation-meta{display:none}
  .other-list{grid-template-columns:1fr}
  .fifo-filters{grid-template-columns:1fr}
}

/* Cabeçalho do card de fontes: hora da conferência e ação na mesma linha,
   para o bloco não crescer com uma terceira linha de texto. */
.card-head .card-note{display:inline-flex;align-items:center;gap:14px;white-space:nowrap}
.card-head .card-note .quiet-button{padding:0}
.sources td .muted{color:var(--faint)}

/* ------------------------------------------ bloco FONTES enxuto */
.sources-list{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.source-item{min-width:0}
.source-name{font-size:12px;font-weight:650;margin-bottom:6px}
.source-item dl{margin:0;display:grid;gap:3px}
.source-item dl div{display:flex;justify-content:space-between;gap:10px;font-size:12px}
.source-item dt{color:var(--faint)}
.source-item dd{margin:0;font-variant-numeric:tabular-nums;white-space:nowrap}
.panorama-acoes{display:flex;gap:8px;flex-wrap:wrap}
#panorama-aviso{margin:12px 0 0}
@media(max-width:900px){.sources-list{grid-template-columns:1fr}}


/* ============================================================
   Tela ANALISE em sequencia vertical: FONTES -> PANORAMA ->
   DIRECIONAMENTO. As duas colunas antigas deixavam um vazio
   enorme sob FONTES e empurravam o panorama para baixo, o que
   sugeria que ele dependia da analise. Nao depende.
   ============================================================ */
#view-analise > .card + .card{margin-top:14px}

/* FONTES: faixa compacta de largura total, sem altura artificial. */
.faixa-fontes{padding:14px 20px 16px}
.faixa-fontes .card-head{padding-bottom:10px;margin-bottom:12px}
.faixa-fontes .sources-list{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px 28px}
.faixa-fontes .source-health{margin-top:12px}

/* CRITERIOS lado a lado, aproveitando a largura. */
/* Tres colunas fixas: Prazo | UF | SKU  /  Cliente | Empresa | Marca propria.
   'auto-fit' reflui conforme a largura e quebrava o pareamento das linhas. */
#form-analise .criteria-grid{grid-template-columns:repeat(3,1fr);
  gap:14px 18px;align-items:start;margin-bottom:0}
@media(max-width:980px){#form-analise .criteria-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:620px){#form-analise .criteria-grid{grid-template-columns:1fr}}
#form-analise .field-row{margin-bottom:0}
#form-analise .field-row > label{font-size:10.5px}
#form-analise .days{margin-top:5px}
#form-analise .days input{height:34px;font-size:14px;width:62px}
#form-analise .field-help{margin-top:6px}
.analise-acao{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;
  margin-top:16px;padding-top:14px;border-top:1px solid var(--line-soft)}
.analise-acao .ack{margin:0}
.analise-acao .btn.primary{width:auto;min-width:220px;padding:12px 28px}

/* O panorama ganha peso: e a leitura principal de quem abre o sistema. */
.fifo-panorama .panorama-totals{gap:12px}
.fifo-panorama .panorama-metric{background:var(--white)}
.fifo-panorama .panorama-metric strong{font-size:26px}

@media(max-width:900px){
  .analise-acao{flex-direction:column;align-items:stretch}
  .analise-acao .btn.primary{width:100%}
}

/* Em telas largas, rotulo e valor ficavam nas pontas opostas de uma coluna
   muito larga, obrigando o olho a atravessar o vazio. */
.faixa-fontes .source-item dl div{max-width:340px}
.faixa-fontes .source-item dd{color:var(--ink);font-weight:600}

/* ------------------------------------------------- filtro de cliente */
/* Campo com um botao de acao ao lado: o controle ocupa a largura restante e
   a acao fica presa a ele, na mesma altura dos demais campos da grade. */
.campo-com-acao{display:flex;gap:6px;margin-top:5px}
.campo-com-acao .multi-btn{margin-top:0;flex:1 1 auto;min-width:0}
.btn-campo{flex:none;height:34px;padding:0 11px;border:1px solid var(--line-strong);border-radius:4px;
  background:var(--surface-soft);color:var(--wine);font-size:10.5px;letter-spacing:.4px;
  text-transform:uppercase;font-weight:600;white-space:nowrap}
.btn-campo:hover:not(:disabled){background:var(--hover);border-color:var(--wine)}
.btn-campo:disabled{color:var(--faint);border-color:var(--line)}
.multi-nota{margin:0;padding:7px 10px;font-size:11px;line-height:1.45;color:var(--muted);
  background:var(--surface-soft);border-bottom:1px solid var(--line-soft)}
.multi-pop-largo{min-width:430px;max-width:560px}
/* O popup do cliente e mais largo que a coluna: ancora pela esquerda e, na
   ultima coluna, pela direita, para nao sair da tela. */
.multi-pop-largo{left:0;right:auto}
.multi-pop-largo .multi-list label{align-items:flex-start}
.cli-linha{display:flex;flex-direction:column;gap:1px;min-width:0}
.cli-topo{display:flex;gap:7px;align-items:baseline;flex-wrap:wrap}
.cli-cod{font-variant-numeric:tabular-nums;font-weight:600;color:var(--ink)}
.cli-loja{font-size:10.5px;color:var(--muted);border:1px solid var(--line);border-radius:3px;padding:0 4px}
.cli-nome{color:var(--ink);overflow:hidden;text-overflow:ellipsis}
.cli-uf{font-size:10.5px;color:var(--faint);letter-spacing:.4px}
.cli-marca{font-size:10.5px;letter-spacing:.2px}
.cli-marca.ok{color:var(--green)}
.cli-marca.sem{color:var(--faint)}
.link-acao{border:0;background:none;padding:0;color:var(--wine);font-size:11.5px;text-decoration:underline}
.link-acao:disabled{color:var(--faint);text-decoration:none}
.multi-nota.alerta{color:var(--amber);background:var(--amber-bg);border-bottom-color:var(--amber-line)}

/* Acoes em massa dentro do seletor. Ficam entre a nota e a lista, para que
   o operador veja o universo antes de agir sobre ele. */
.multi-acoes{display:flex;flex-wrap:wrap;align-items:center;gap:4px;padding:6px 8px;
  border-bottom:1px solid var(--line-soft);background:var(--surface-mute)}
.multi-acoes button{border:1px solid var(--line-strong);background:var(--white);color:var(--wine);
  border-radius:3px;font-size:10px;letter-spacing:.3px;text-transform:uppercase;font-weight:600;padding:4px 7px}
.multi-acoes button:hover{background:var(--hover);border-color:var(--wine)}
.multi-acoes-sep{flex:1}

/* ================================================= ESCOAMENTO REALIZADO */
#view-escoamento{display:grid;gap:14px}
#view-escoamento[hidden]{display:none}
.eyebrow{display:block;margin-bottom:4px;color:var(--wine);font-size:10px;font-weight:700;letter-spacing:.8px;text-transform:uppercase}
.escoamento-head{margin-bottom:0;align-items:center}
.escoamento-head .btn{padding:8px 15px;font-size:11px;min-width:auto}
.escoamento-fonte{padding:10px 16px}
.source-summary{display:grid;grid-template-columns:auto repeat(3,minmax(125px,auto)) minmax(170px,1fr);align-items:center;gap:0}
.source-status{display:inline-flex;align-items:center;gap:7px;margin-right:18px;color:var(--green);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.35px;white-space:nowrap}
.source-status::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}
.source-status[data-state="running"]{color:var(--blue)}.source-status[data-state="failed"]{color:var(--amber)}
.source-summary>div{padding:1px 18px;border-left:1px solid var(--line);min-width:0}
.source-summary>div span{display:block;color:var(--faint);font-size:9.5px;text-transform:uppercase;letter-spacing:.35px}
.source-summary>div strong{display:block;font-size:12px;margin-top:1px;white-space:nowrap}
.source-details{justify-self:end;position:relative;color:var(--muted);font-size:11px}
.source-details summary{color:var(--wine);cursor:pointer;white-space:nowrap;list-style:none}
.source-details summary::after{content:" +"}.source-details[open] summary::after{content:" −"}
.source-details>div{position:absolute;right:0;top:25px;z-index:8;width:360px;padding:12px 14px;border:1px solid var(--line);border-radius:5px;background:var(--white);box-shadow:0 10px 28px var(--shadow)}
.source-details b,.source-details span{display:block}.source-details b{margin-bottom:5px;overflow:hidden;text-overflow:ellipsis}.source-details span{color:var(--faint);font-size:10.5px;line-height:1.55}
.technical-details{margin-top:8px;color:var(--muted);font-size:11px}.technical-details summary{width:max-content;color:var(--wine);cursor:pointer}.technical-details code{display:block;max-width:100%;margin-top:7px;padding:8px 10px;border-radius:4px;background:var(--surface);color:var(--muted);font-size:10px;overflow-wrap:anywhere;white-space:normal}
.escoamento-filtros{padding:12px 16px 14px}.escoamento-filtros .card-head{padding-bottom:7px;margin-bottom:8px}
.filter-grid{display:grid;grid-template-columns:repeat(8,minmax(105px,1fr));gap:8px}
.filter-grid label{color:var(--faint);font-size:9px;font-weight:650;text-transform:uppercase;letter-spacing:.3px}
.filter-grid input,.filter-grid select{display:block;width:100%;height:32px;margin-top:3px;border:1px solid var(--line-strong);border-radius:4px;background:var(--white);color:var(--ink);padding:5px 7px;text-transform:none;letter-spacing:0;font-size:11px;font-weight:400}
.escoamento-kpis{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:10px}
.kpi-primary,.kpi-secondary{display:grid;gap:10px}
.kpi-primary{grid-template-columns:repeat(4,minmax(0,1fr))}.kpi-secondary{grid-template-columns:repeat(3,minmax(0,1fr))}
.escoamento-kpis .kpi{min-width:0}
.escoamento-kpis .kpi span{font-size:9.5px;letter-spacing:.45px}
.escoamento-kpis .kpi strong{font-size:21px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.escoamento-kpis .kpi strong small{font-size:11px;font-weight:600;color:var(--muted)}
.escoamento-kpis .kpi em{font-size:9.5px}
.escoamento-operacoes{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;margin:-2px 0 3px;padding:9px 12px;border:1px solid var(--line);border-radius:6px;background:var(--surface-soft);color:var(--muted);font-size:11px}
.escoamento-operacoes b{color:var(--ink);font-weight:650}
.kpi-secondary .kpi{padding:10px 12px;background:var(--surface-soft)}
.kpi-secondary .kpi strong{font-size:16px}.kpi-secondary .kpi:last-child strong{font-size:14px}
.situation-um-terco{border-top:3px solid var(--gold)}
.situation-pda{border-top:3px solid var(--amber)}
.situation-pdc{border-top:3px solid var(--red)}
.escoamento-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(320px,.5fr);gap:14px;align-items:start}
.ranking-grid{grid-template-columns:1fr}
.month-chart{display:grid;gap:10px;margin-top:2px}
.month-row{display:grid;grid-template-columns:70px minmax(80px,1fr) 118px;align-items:center;gap:10px;min-height:38px}
.month-row>button{border:0;background:none;color:var(--wine);font-size:11px;font-weight:650;text-align:left;padding:0;text-transform:uppercase}
.month-row>button:hover{text-decoration:underline}
.month-row>strong{text-align:right;font-size:11.5px;font-variant-numeric:tabular-nums}.month-row>strong small{font-size:9px;color:var(--faint)}
.month-track{width:100%;height:20px;overflow:hidden;border-radius:3px;background:var(--surface-mute)}
.month-track .seg.um-terco{fill:var(--gold)}.legend.um-terco{background:var(--gold)}
.month-track .seg.pda{fill:var(--amber)}.legend.pda{background:var(--amber)}
.month-track .seg.pdc{fill:var(--red)}.legend.pdc{background:var(--red)}
.month-track .seg.outra{fill:var(--faint)}.legend.outra{background:var(--faint)}
.distribution-list{display:grid;gap:5px}
.distribution-list button{display:grid;grid-template-columns:10px 1fr auto;align-items:center;gap:9px;width:100%;border:0;border-bottom:1px solid var(--line-soft);background:none;color:var(--ink);padding:9px 2px;text-align:left}
.distribution-list button:hover{background:var(--hover)}
.distribution-list span b,.distribution-list span small,.distribution-list strong small{display:block}
.distribution-list small{color:var(--faint);font-size:10px;font-weight:400}
.distribution-list strong{text-align:right;font-variant-numeric:tabular-nums}
.legend{width:8px;height:26px;border-radius:2px}.legend.pda{background:var(--amber)}.legend.pdc{background:var(--red)}
.distribution-other{display:grid;grid-template-columns:10px 1fr auto;align-items:center;gap:9px;margin-top:4px;padding:9px 2px;color:var(--muted)}
.distribution-other span b,.distribution-other span small,.distribution-other strong small{display:block}.distribution-other small{font-size:10px;font-weight:400;color:var(--faint)}.distribution-other strong{text-align:right;font-size:10.5px;font-weight:600}
.daily-head{display:flex;justify-content:space-between;align-items:end;margin-top:18px;padding-top:14px;border-top:1px solid var(--line)}
.daily-head h3{font-size:12px}.daily-head span{color:var(--faint);font-size:9.5px}
.daily-list{display:grid;gap:5px;margin-top:8px}
.daily-list button{display:grid;grid-template-columns:78px 1fr 100px;align-items:center;gap:8px;border:0;background:none;color:var(--ink);padding:4px 0;font-size:10.5px;text-align:left}
.daily-list button:hover{color:var(--wine)}.daily-list strong{text-align:right;font-variant-numeric:tabular-nums}
.daily-list progress{width:100%;height:7px;border:0;border-radius:5px;overflow:hidden;background:var(--surface-mute);accent-color:var(--wine-fill)}
.daily-list progress::-webkit-progress-bar{background:var(--surface-mute)}.daily-list progress::-webkit-progress-value{background:var(--wine-fill)}
.current-month-card{padding:15px 18px 16px}
.current-month-card .card-head{padding-bottom:10px;margin-bottom:10px}
.current-month-meta{display:grid;justify-items:end;gap:5px}
.current-month-period{color:var(--muted);font-size:11px;font-weight:600;text-transform:capitalize}
.daily-legend{display:flex;align-items:center;gap:5px;color:var(--faint);font-size:9px}.daily-legend i,.month-composition i,.daily-tooltip i{display:inline-block;width:7px;height:7px;border-radius:2px}.daily-legend i:not(:first-child){margin-left:6px}
.daily-legend .um-terco,.month-composition .um-terco,.daily-tooltip .um-terco{background:var(--gold)}.daily-legend .pda,.month-composition .pda,.daily-tooltip .pda{background:var(--amber)}.daily-legend .pdc,.month-composition .pdc,.daily-tooltip .pdc{background:var(--red)}.daily-legend .outra,.month-composition .outra,.daily-tooltip .outra{background:var(--faint)}
.current-month-layout{display:grid;grid-template-columns:minmax(0,1fr) 255px;gap:14px;align-items:stretch}
.daily-column-chart{position:relative;min-width:0;border-right:1px solid var(--line-soft);padding-right:12px}
.daily-column-chart svg{display:block;width:100%;height:340px;overflow:visible}
.daily-grid line{stroke:var(--line-soft);stroke-width:1}.daily-grid text{fill:var(--muted);font-size:10px;font-weight:550}
.daily-bar{cursor:pointer}.daily-segment{opacity:.86}.daily-segment.um-terco{fill:var(--gold)}.daily-segment.pda{fill:var(--amber)}.daily-segment.pdc{fill:var(--red)}.daily-segment.outra{fill:var(--faint);opacity:.55}
.daily-day{fill:var(--muted);font-size:11px;font-weight:550}.daily-total{fill:var(--ink);font-size:10px;font-weight:700;paint-order:stroke;stroke:var(--white);stroke-width:3px;stroke-linejoin:round}.zero-marker{stroke:var(--line-strong);stroke-width:1.2}
.daily-outline{fill:none;stroke:var(--gold-ink);stroke-width:1.4}.daily-bar.selected .daily-day{fill:var(--wine);font-weight:700}
.average-line line{stroke:var(--gold);stroke-width:1.5;stroke-dasharray:6 5}.average-line text{fill:var(--gold-ink);font-size:11px;font-weight:700;paint-order:stroke;stroke:var(--white);stroke-width:4px;stroke-linejoin:round}
.daily-tooltip{position:absolute;z-index:6;width:172px;padding:9px 10px;border:1px solid var(--line-strong);border-radius:5px;background:var(--white);box-shadow:0 8px 24px var(--shadow);pointer-events:none;font-size:9.5px}.daily-tooltip>b{display:block;margin-bottom:6px;color:var(--wine)}.daily-tooltip span{display:grid;grid-template-columns:9px 1fr auto;align-items:center;gap:5px;padding:2px 0;color:var(--muted)}.daily-tooltip span strong{color:var(--ink);font-variant-numeric:tabular-nums}.daily-tooltip .other{color:var(--faint)}.daily-tooltip em{display:flex;justify-content:space-between;margin-top:5px;padding-top:5px;border-top:1px solid var(--line);color:var(--ink);font-style:normal}.daily-tooltip em strong{font-size:10.5px}
.month-reading h3{font-size:10px;color:var(--faint);letter-spacing:.7px;text-transform:uppercase;margin-bottom:8px}
.month-metrics{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--line);border-radius:5px;overflow:hidden}
.month-metrics>div{padding:8px 10px;background:var(--surface-soft);min-width:0}.month-metrics>.month-total,.month-metrics>.month-composition{grid-column:1/-1}.month-metrics>.month-total{border-bottom:1px solid var(--line)}.month-metrics>div:last-child{border-left:1px solid var(--line)}
.month-metrics dt{color:var(--faint);font-size:8.5px;letter-spacing:.35px;text-transform:uppercase}.month-metrics dd{margin-top:3px;font-size:12px;font-weight:650;white-space:nowrap}
.month-metrics>.month-total dd{font-size:16px}.month-composition{display:grid;grid-template-columns:1fr;gap:0;border-bottom:1px solid var(--line);padding:0!important}.month-composition>div{display:flex;justify-content:space-between;align-items:center;padding:6px 9px;border-top:1px solid var(--line-soft)}.month-composition>div:first-child{border-top:0}.month-composition>div.other{border-top:1px solid var(--line-soft)}.month-composition dt{display:flex;align-items:center;gap:5px}.month-composition dd{font-size:10.5px}.month-composition dd small{color:var(--faint);font-size:9px;font-weight:400}
.month-status{display:grid;grid-template-columns:1fr auto;gap:1px 10px;margin-top:9px;padding:9px 11px;border-radius:5px;border:1px solid var(--line);background:var(--surface-soft)}
.month-status span,.month-status em{font-size:9.5px;color:var(--faint);font-style:normal}.month-status strong{font-size:17px}.month-status b{grid-column:2;grid-row:1/4;align-self:center;font-size:9px;letter-spacing:.35px;text-align:right;max-width:78px}
.month-status.acima{border-color:var(--green-line);background:var(--green-bg)}.month-status.acima b{color:var(--green)}
.month-status.dentro{border-color:var(--gold-line);background:var(--gold-bg)}.month-status.dentro b{color:var(--gold-ink)}
.month-status.abaixo{border-color:var(--amber-line);background:var(--amber-bg)}.month-status.abaixo b{color:var(--amber)}
.table-scroll{overflow:auto}
.data-table{width:100%;border-collapse:collapse;font-size:11.5px}
.data-table th{position:sticky;top:0;z-index:1;background:var(--surface-mute);color:var(--faint);font-size:9.5px;letter-spacing:.35px;text-transform:uppercase;text-align:left;padding:9px 11px;border-bottom:1px solid var(--line);white-space:nowrap}
.data-table td{padding:9px 11px;border-bottom:1px solid var(--line-soft);vertical-align:top}
.data-table tbody tr:hover{background:var(--hover)}
.data-table .num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.data-table .forte{font-weight:650;color:var(--ink)}
.data-table .desc{display:block;color:var(--faint);font-size:10.5px;margin-top:2px;max-width:300px}
.product-ranking-table>thead th:first-child{width:52%}
.product-drill-button{display:flex;align-items:center;gap:9px;width:100%;padding:0;border:0;background:none;color:var(--ink);text-align:left;cursor:pointer}
.product-drill-button:hover b{color:var(--wine);text-decoration:underline}.product-drill-button b,.product-drill-button small{display:block}.product-drill-button small{margin-top:2px;color:var(--faint);font-size:10.5px}
.product-chevron{display:grid;place-items:center;flex:0 0 22px;width:22px;height:22px;border:1px solid var(--line-strong);border-radius:50%;color:var(--wine);font-size:14px;font-weight:500;background:var(--surface-soft)}
.product-rank-row.expanded{background:var(--gold-bg)}.product-rank-row.expanded td{border-bottom:0}
.product-drill-row:hover{background:transparent!important}.product-drill-row>td{padding:0 12px 12px 43px;background:var(--gold-bg)}
.product-drill{overflow:hidden;border:1px solid var(--gold-line);border-radius:5px;background:var(--white)}
.product-drill-head{display:flex;justify-content:space-between;gap:12px;padding:9px 12px;border-bottom:1px solid var(--line);font-size:10.5px}.product-drill-head span{color:var(--muted)}
.fabrication-drill-table{width:100%;border-collapse:collapse;font-size:10.5px}.fabrication-drill-table th{padding:7px 10px;background:var(--surface-soft);color:var(--faint);font-size:8.5px;text-align:left;text-transform:uppercase;letter-spacing:.3px;white-space:nowrap}.fabrication-drill-table td{padding:8px 10px;border-bottom:1px solid var(--line-soft);white-space:nowrap}.fabrication-drill-table tr:last-child td{border-bottom:0}.fabrication-drill-table .num{text-align:right;font-variant-numeric:tabular-nums}
.pill{display:inline-block;padding:2px 6px;border-radius:10px;background:var(--surface-mute);color:var(--muted);font-size:9.5px;font-weight:700;white-space:nowrap}
.pill.um-terco{background:var(--gold-bg);color:var(--gold-ink)}.pill.pda{background:var(--amber-bg);color:var(--amber)}.pill.pdc{background:var(--red-bg);color:var(--red)}
.escoamento-detail-wrap{max-height:58vh}
.escoamento-detail th[data-esort]{cursor:pointer}.escoamento-detail th[data-esort]:hover{color:var(--wine)}
.pagination{display:flex;justify-content:flex-end;align-items:center;gap:12px;padding:12px 16px;border-top:1px solid var(--line-soft)}
.pagination span{font-size:11px;color:var(--muted)}

@media(max-width:1250px){.escoamento-kpis{grid-template-columns:1fr}.filter-grid{grid-template-columns:repeat(4,1fr)}}
@media(max-width:900px){.source-summary{grid-template-columns:auto repeat(3,1fr)}.source-details{grid-column:1/-1;justify-self:start;margin-top:8px}.source-details>div{left:0;right:auto}.escoamento-grid{grid-template-columns:1fr}.month-row{min-height:26px}.month-chart{gap:8px}.current-month-layout{grid-template-columns:1fr}.daily-column-chart{border-right:0;border-bottom:1px solid var(--line-soft);padding:0 0 12px}.month-reading{max-width:none}}
@media(max-width:700px){.escoamento-head{align-items:flex-start}.source-summary{grid-template-columns:1fr 1fr;gap:8px}.source-status{grid-column:1/-1}.source-summary>div{border-left:0;padding:2px 0}.source-details{grid-column:1/-1}.filter-grid{grid-template-columns:repeat(2,1fr)}.kpi-primary{grid-template-columns:1fr 1fr}.kpi-secondary{grid-template-columns:1fr}.month-row{grid-template-columns:58px minmax(70px,1fr) 100px}}

/* ====================================================== módulos / menu */
.app-shell{display:grid;grid-template-columns:208px minmax(0,1fr);min-height:calc(100vh - 58px);transition:grid-template-columns .16s ease}
.side-nav{position:sticky;top:0;align-self:start;width:208px;height:calc(100vh - 1px);background:var(--white);border-right:1px solid var(--line);padding:8px 7px 12px;z-index:20;display:flex;flex-direction:column;transition:width .16s ease}
.side-nav-top{display:flex;align-items:center;justify-content:space-between;min-height:40px;margin:0 4px 8px;padding:2px 5px 7px;border-bottom:1px solid var(--line-soft)}
.side-nav-caption{color:var(--faint);font-size:9.5px;font-weight:700;letter-spacing:.75px;text-transform:uppercase}
.side-toggle{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border:0;border-radius:6px;background:transparent;color:var(--muted);cursor:pointer;transition:background .12s ease,color .12s ease}
.side-toggle:hover{background:var(--surface-mute);color:var(--wine)}
.side-toggle .toggle-icon{transition:transform .18s ease}
.side-nav .nav{display:flex;flex-direction:column;align-items:stretch;gap:0;min-height:0;padding:0 2px 8px 0;margin:0;overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;scrollbar-color:transparent transparent}
.side-nav .nav:hover,.side-nav .nav:focus-within{scrollbar-color:var(--line-strong) transparent}
.side-nav .nav::-webkit-scrollbar{width:5px}
.side-nav .nav::-webkit-scrollbar-thumb{background:transparent;border-radius:6px}
.side-nav .nav:hover::-webkit-scrollbar-thumb,.side-nav .nav:focus-within::-webkit-scrollbar-thumb{background:var(--line-strong)}

.side-nav .nav-item{display:flex;align-items:center;gap:10px;width:100%;height:36px;min-height:36px;padding:5px 9px;border:0;border-radius:6px;background:transparent;color:var(--muted);font-size:12.5px;font-weight:500;text-align:left;letter-spacing:0;text-transform:none;position:relative;cursor:pointer;user-select:none;transition:background .12s ease,color .12s ease}
.side-nav .nav-item:hover:not(:disabled):not([aria-disabled="true"]){background:var(--hover);color:var(--ink)}
.side-nav .nav-item.active{background:var(--wine-soft);color:var(--wine);font-weight:650}
.side-nav .nav-item.active:after{content:none}
.side-nav .nav-item.active:before{content:"";position:absolute;left:0;top:5px;bottom:5px;width:3px;border-radius:0 3px 3px 0;background:var(--wine)}
.side-nav .nav-item:disabled,.side-nav .nav-item[aria-disabled="true"]{opacity:.5;cursor:not-allowed}
.side-nav .nav-item:focus-visible,.side-toggle:focus-visible,.nav-group-header:focus-visible{outline:2px solid var(--wine);outline-offset:1px}

.nav-icon{width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center;flex:0 0 18px;color:var(--muted);transition:color .12s ease}
.nav-icon svg{width:17px;height:17px;stroke-width:1.7}
.side-nav .nav-item:hover .nav-icon{color:var(--ink)}
.side-nav .nav-item.active .nav-icon{color:var(--wine)}
.nav-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:12.5px}

.nav-group{display:flex;flex-direction:column;gap:1px;margin-top:7px}
.nav-group-header{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:23px;padding:3px 7px;border:0;border-radius:4px;background:transparent;cursor:pointer;text-align:left;user-select:none;transition:background .12s ease}
.nav-group-header:hover{background:var(--hover)}
.nav-group-title{font-size:10px;letter-spacing:.55px;text-transform:uppercase;color:var(--faint);font-weight:700;transition:color .12s ease}
.nav-group-header:hover .nav-group-title{color:var(--muted)}
.nav-group-chevron{display:inline-flex;align-items:center;justify-content:center;width:13px;height:13px;color:var(--faint);transition:transform .15s ease}
.nav-group.collapsed .nav-group-chevron{transform:rotate(-90deg)}
.nav-group-items{display:flex;flex-direction:column;gap:1px;overflow:hidden;max-height:300px;opacity:1;transition:max-height .16s ease,opacity .12s ease}
.nav-group-items .nav-item{padding-left:10px}
.nav-group.collapsed .nav-group-items{max-height:0;opacity:0;pointer-events:none}

.side-nav .nav-state{margin:12px 8px 0;white-space:normal;line-height:1.35}

/* Sidebar recolhida (mini-mode) */
.side-nav.collapsed{width:60px;padding:8px 7px 12px}
.app-shell:has(.side-nav.collapsed){grid-template-columns:60px minmax(0,1fr)}
.side-nav.collapsed .side-nav-top{justify-content:center;margin:0 2px 8px;padding-left:0;padding-right:0}
.side-nav.collapsed .side-nav-caption{display:none}
.side-nav.collapsed .side-toggle .toggle-icon{transform:rotate(180deg)}
.side-nav.collapsed .nav-group-header{display:none}
.side-nav.collapsed .nav-group{margin-top:7px;border-top:1px solid var(--line-soft);padding-top:6px}
.side-nav.collapsed .nav-group-items{max-height:none!important;opacity:1!important;display:flex!important;pointer-events:auto!important}
.side-nav.collapsed .nav-label,.side-nav.collapsed .nav-state{display:none}
.side-nav.collapsed .nav-item{justify-content:center;padding:5px 0;height:38px;min-height:38px}
.side-nav.collapsed .nav-item.active:before{left:0;top:4px;bottom:4px;width:3px}
.nav-tooltip{position:fixed;z-index:1000;max-width:min(260px,calc(100vw - 80px));padding:7px 10px;border:1px solid var(--line-strong);border-radius:6px;background:var(--ink);color:var(--white);box-shadow:0 6px 20px var(--shadow);font-size:11.5px;font-weight:600;line-height:1.3;pointer-events:none;white-space:nowrap}
@media(prefers-reduced-motion:reduce){.app-shell,.side-nav,.side-toggle .toggle-icon,.nav-group-chevron{transition:none}}
.app-shell>main{width:100%;max-width:1600px;margin:0 auto;padding-left:24px;padding-right:24px;min-width:0}
.module-head{align-items:flex-end}.eyebrow{display:block;color:var(--wine);font-size:9px;font-weight:800;letter-spacing:1px;text-transform:uppercase;margin-bottom:5px}
.home-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.home-card{border:1px solid var(--line);border-radius:12px;background:var(--white);padding:22px;text-align:left;display:grid;gap:7px;cursor:pointer;color:var(--ink);box-shadow:var(--shadow)}.home-card:hover{border-color:var(--wine);transform:translateY(-1px)}.home-card>span{font-size:10px;letter-spacing:.8px;text-transform:uppercase;color:var(--muted);font-weight:800}.home-card>strong{font-size:24px;line-height:1.1}.home-card>em{font-size:11px;color:var(--muted);font-style:normal}.home-card>b{font-size:11px;color:var(--wine);margin-top:8px}.home-card.critical{border-top:3px solid var(--wine)}
/* Painel de fontes do PDA/PDC, em grupos separados: FIFO = posição atual do
   estoque; VENDA = programação para o PRÓXIMO DIA ÚTIL. As duas datas NÃO
   precisam ser iguais - agrupar visualmente evita que pareçam a mesma coisa. */
.source-panel{display:flex;gap:0;background:var(--white);border:1px solid var(--line);border-radius:10px;padding:10px 14px;margin-bottom:12px;overflow:auto}
.source-group{display:flex;flex-direction:column;gap:3px;padding:0 16px;border-right:1px solid var(--line);white-space:nowrap}
.source-group:last-child{border-right:0}
.source-group>b{font-size:9px;letter-spacing:.5px;color:var(--wine);text-transform:uppercase}
.source-group>span{font-size:10.5px;color:var(--muted)}
.source-group>span strong{color:var(--ink);font-weight:600}
.source-group.muted>b{color:var(--faint)}
/* Em tela estreita os blocos quebram em linhas: um cabeçalho que rola na
   horizontal esconde informação sem avisar. */
@media(max-width:820px){
  .source-panel{flex-wrap:wrap;gap:4px 0;overflow:visible}
  .source-group{border-right:0;flex:1 1 170px;padding:6px 14px 6px 0}
}
.ops-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:12px}.ops-kpis .kpi{padding:14px 16px}.ops-kpis .kpi strong{font-size:22px}.ops-kpis .kpi.danger{border-color:#df9b9b;background:#fff8f8}.ops-kpis .kpi.danger strong{color:#a51d2d}
.compact-filters{padding:11px 14px;margin-bottom:12px}.pda-filter-grid{grid-template-columns:repeat(6,minmax(120px,1fr));align-items:end}.check-filter{display:flex!important;align-items:center;gap:7px;min-height:34px;font-size:10px!important;text-transform:none!important;letter-spacing:0!important}.check-filter input{width:auto!important;margin:0}
.pda-table{min-width:1140px;table-layout:fixed}
.pda-table .pda-col-product{width:164px}.pda-table .pda-col-date{width:80px}.pda-table .pda-col-days{width:100px}.pda-table .pda-col-situation{width:60px}
.pda-table .pda-col-weight{width:97px}.pda-table .pda-col-balance{width:120px}.pda-table .pda-col-committed{width:92px}.pda-table .pda-col-realized{width:96px}.pda-table .pda-col-vendors{width:100px}.pda-table .pda-col-orders{width:54px}
.pda-table th,.pda-table td{padding-left:7px;padding-right:7px}
.pda-table th,.pda-table th.num{white-space:normal;line-height:1.2;vertical-align:middle}
.pda-table td.num,.pda-table .pda-data,.pda-table .pda-prazo,.pda-table .pda-realizado{white-space:nowrap;font-variant-numeric:tabular-nums}
.pda-table .pda-produto,.pda-table .pda-vendedores{overflow-wrap:normal;word-break:normal}
.pda-table .pda-prazo-atencao{color:var(--amber);font-weight:700}.pda-table .pda-prazo-critico{color:var(--red);font-weight:700}
.critical-tabs{display:flex;gap:4px;margin:-2px 0 12px;border-bottom:1px solid var(--line)}
.critical-tabs button{border:0;border-bottom:2px solid transparent;background:transparent;color:var(--muted);padding:10px 16px;font:inherit;font-size:12px;font-weight:700;cursor:pointer}
.critical-tabs button[aria-selected="true"]{color:var(--wine);border-bottom-color:var(--wine)}
.critical-tabs button:focus-visible,.critical-product:focus-visible,.critical-value:focus-visible{outline:2px solid var(--wine);outline-offset:2px}
.critical-history-toolbar{display:flex;align-items:end;gap:12px;flex-wrap:wrap;padding:12px 14px;margin-bottom:10px}
.critical-history-toolbar label{font-size:10px;text-transform:uppercase;letter-spacing:.35px;color:var(--faint);font-weight:700}
.critical-history-toolbar input,.critical-history-toolbar select{display:block;height:34px;margin-top:4px;padding:0 8px;border:1px solid var(--line-strong);border-radius:4px;background:var(--white);color:var(--ink);font-size:12px;text-transform:none}
.critical-history-toolbar #critical-search{width:min(255px,34vw)}
.critical-month-nav{display:flex;align-items:end;gap:4px}.critical-month-nav button{height:34px;min-width:30px;padding:0 8px;font-size:20px;line-height:1}
.critical-history-message{min-height:24px;margin:0 2px 7px;color:var(--muted);font-size:11px}
.critical-history-card .card-head{padding:12px 16px}
.critical-matrix-scroll{overflow:auto;max-height:min(62vh,600px);scrollbar-gutter:stable}
.critical-matrix{border-collapse:separate;border-spacing:0;min-width:max-content;font-size:11px;font-variant-numeric:tabular-nums}
.critical-matrix th,.critical-matrix td{height:33px;padding:5px 7px;border-right:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft);background:var(--white)}
.critical-matrix thead th{position:sticky;top:0;z-index:2;min-width:68px;background:var(--surface-mute);color:var(--faint);text-align:right;font-size:10px}
.critical-matrix thead th:first-child{left:0;z-index:4;min-width:240px;text-align:left}
.critical-matrix tbody th{position:sticky;left:0;z-index:1;min-width:240px;max-width:240px;text-align:left}
.critical-matrix td{text-align:right;white-space:nowrap;min-width:68px}
.critical-matrix .critical-no-position{color:var(--faint);text-align:center}
.critical-matrix .critical-rise{box-shadow:inset 3px 0 var(--green-line)}
.critical-matrix .critical-fall{box-shadow:inset 3px 0 var(--amber-line)}
.critical-event{margin-left:2px;color:var(--wine);font-size:8px;font-weight:800}
.critical-matrix tbody tr:hover th,.critical-matrix tbody tr:hover td{background:var(--hover)}
.critical-product{display:block;width:100%;border:0;background:transparent;text-align:left;color:var(--ink);cursor:pointer;font:inherit}
.critical-product b{display:block}.critical-product span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:10px}
.critical-history-pages{display:flex;align-items:center;justify-content:flex-end;gap:10px;padding:9px 14px;color:var(--muted);font-size:11px}
.critical-detail-summary{display:flex;gap:12px;flex-wrap:wrap}.critical-detail-summary span{border:1px solid var(--line);border-radius:5px;padding:8px 10px;font-size:11px}.critical-detail-summary b{margin-left:4px;color:var(--ink)}
.critical-chart{height:150px;display:flex;align-items:end;gap:3px;border-bottom:1px solid var(--line);padding:4px 2px 0;margin:0 0 10px;overflow:hidden}
.critical-chart-empty{padding:18px 12px;background:var(--surface-mute);border:1px solid var(--line-soft);border-radius:5px;color:var(--muted);font-size:11px}
.critical-bar-slot{flex:1;min-width:0;max-width:44px;height:100%;display:flex;flex-direction:column;justify-content:end;align-items:center;font-size:9px;color:var(--faint)}
.critical-bar{flex:none;width:min(100%,19px);background:var(--wine);border-radius:2px 2px 0 0;min-height:0}.critical-bar.missing{background:transparent}
.critical-bar-slot span{height:16px;padding-top:2px}.critical-detail-note{font-size:10px;color:var(--muted);margin-top:12px}
@media(max-width:760px){.critical-history-toolbar{gap:8px}.critical-history-toolbar #critical-search{width:190px}.critical-matrix thead th:first-child,.critical-matrix tbody th{min-width:180px;max-width:180px}}
.pda-cell-help{cursor:help}.pda-cell-help:focus-visible{outline:2px solid var(--wine);outline-offset:2px;border-radius:2px}
.pda-table tbody tr{cursor:pointer}.pda-table tbody tr:hover{background:var(--wine-soft)}.balance-negative{color:#a51d2d;font-weight:800}.balance-zero{color:var(--green);font-weight:700}.pda-detail{padding:18px 22px 30px}.pda-detail-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:18px}.detail-metric{background:var(--surface);border:1px solid var(--line);border-radius:9px;padding:12px}.detail-metric span{font-size:9px;text-transform:uppercase;color:var(--muted);font-weight:800}.detail-metric strong{display:block;font-size:17px;margin-top:4px}.pda-detail h3{font-size:11px;text-transform:uppercase;letter-spacing:.6px;margin:20px 0 8px}.timeline{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
/* Ultimo faturamento da combinacao aberta - um registro so, nao histórico. */
.ultimo-faturamento{background:var(--surface);border:1px solid var(--line);border-radius:9px;padding:12px 14px}
.ultimo-faturamento .data{font-size:9px;text-transform:uppercase;letter-spacing:.4px;color:var(--muted);font-weight:800}
.ultimo-faturamento strong{display:block;margin-top:4px;font-size:17px}
.ultimo-faturamento .desc{display:block;margin-top:5px;font-size:11px;color:var(--faint)}.timeline article{border-left:3px solid var(--wine);background:var(--surface);padding:12px;border-radius:0 8px 8px 0}.timeline span{font-size:9px;color:var(--muted);text-transform:uppercase}.timeline strong{display:block;margin-top:5px;font-size:13px}
.exp-preview{margin-bottom:14px}.exp-totals{display:grid;grid-template-columns:repeat(4,1fr);gap:9px}.exp-total{border:1px solid var(--line);border-radius:9px;padding:14px}.exp-total span{font-size:9px;font-weight:800;color:var(--muted);text-transform:uppercase}.exp-total strong{display:block;font-size:19px;margin:5px 0}.exp-total em{font-size:10px;color:var(--muted);font-style:normal}.exp-total:last-child{background:var(--wine);color:white;border-color:var(--wine)}.exp-total:last-child span,.exp-total:last-child em{color:#f3dadd}.exp-actions{display:grid;grid-template-columns:1fr 1fr;gap:14px}.exp-actions .card{display:grid;grid-template-columns:1fr auto;align-items:center;column-gap:16px}.exp-actions .eyebrow,.exp-actions h2,.exp-actions p{grid-column:1}.exp-actions button{grid-column:2}.exp-actions .quiet-button{margin-top:7px}
@media(max-width:820px){.app-shell,.app-shell:has(.side-nav.collapsed){grid-template-columns:60px minmax(0,1fr)}.side-nav,.side-nav.collapsed{width:60px;padding:8px 7px 12px}.side-nav .side-nav-top{justify-content:center;margin:0 2px 8px;padding-left:0;padding-right:0}.side-nav .side-nav-caption,.side-nav .side-toggle,.side-nav .nav-group-header{display:none}.side-nav .nav-group{margin-top:7px;border-top:1px solid var(--line-soft);padding-top:6px}.side-nav .nav-group-items{max-height:none!important;opacity:1!important;display:flex!important;pointer-events:auto!important}.side-nav .nav-label,.side-nav .nav-state{display:none}.side-nav .nav-item{justify-content:center;padding:5px 0;height:38px;min-height:38px}.home-grid{grid-template-columns:1fr}.pda-filter-grid{grid-template-columns:repeat(2,1fr)}.exp-actions{grid-template-columns:1fr}.exp-totals{grid-template-columns:repeat(2,1fr)}.pda-detail-grid,.timeline{grid-template-columns:1fr 1fr}.app-shell>main{padding-left:14px;padding-right:14px}}

.alert .desc{display:block;margin-top:4px;font-size:10.5px;opacity:.8}

/* Faltas / Cortes */
.faltas-kpis-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin-bottom:14px}
.faltas-kpis-grid .ops-kpi{padding:14px 16px;background:var(--white);border:1px solid var(--line);border-radius:10px;display:flex;flex-direction:column;gap:3px;box-shadow:var(--shadow-sm)}
.faltas-kpis-grid .ops-kpi span{font-size:9.5px;letter-spacing:.5px;text-transform:uppercase;color:var(--muted);font-weight:800}
.faltas-kpis-grid .ops-kpi strong{font-size:20px;line-height:1.15;color:var(--ink);font-variant-numeric:tabular-nums}
.faltas-kpis-grid .ops-kpi em{font-size:10.5px;color:var(--muted);font-style:normal;margin-top:2px}
.faltas-kpis-grid .ops-kpi.critical{border-top:3px solid var(--wine)}
.faltas-kpis-grid .ops-kpi.critical strong{color:var(--wine)}
.faltas-kpis-grid .ops-kpi.attention-card{border-top:3px solid #b45309}
.faltas-kpis-grid .ops-kpi.attention-card strong{color:#b45309}

.badge-homologada{display:inline-block;padding:2px 6px;border-radius:4px;font-size:10px;font-weight:700;background:var(--wine-soft);color:var(--wine)}
.badge-nao-homologada{display:inline-block;padding:2px 6px;border-radius:4px;font-size:10px;font-weight:700;background:#fef3c7;color:#b45309}
.badge-gestor{display:inline-block;padding:2px 7px;border-radius:4px;font-size:9.5px;font-weight:700;background:#e0f2fe;color:#0369a1}
.badge-web{display:inline-block;padding:2px 7px;border-radius:4px;font-size:9.5px;font-weight:700;background:#dcfce7;color:#15803d}
.badge-auto{display:inline-block;padding:2px 7px;border-radius:4px;font-size:9.5px;font-weight:700;background:#f3e8ff;color:#7e22ce}
.badge-pendente{display:inline-block;padding:2px 7px;border-radius:4px;font-size:9.5px;font-weight:700;background:#fee2e2;color:#b91c1c}
.badge-revisao{display:inline-block;padding:2px 7px;border-radius:4px;font-size:9.5px;font-weight:700;background:#fef3c7;color:#b45309}

.regra-aplicada-box{background:var(--surface);border-left:3px solid var(--wine);padding:8px 12px;border-radius:0 6px 6px 0;margin:12px 0;font-size:11px;color:var(--muted)}
.regra-aplicada-box strong{color:var(--ink);font-weight:700}
.faltas-notice-box{background:var(--surface);border-left:3px solid #0369a1;padding:10px 14px;border-radius:0 8px 8px 0;margin:12px 0;font-size:11px;color:var(--muted);line-height:1.4}
.faltas-notice-box strong{color:var(--ink);font-weight:700}

.ocorrencias-table tbody tr:hover{background:var(--wine-soft);cursor:pointer}
.ocorrencias-table th{cursor:pointer}
.tag-motivo-pendente{color:#dc2626;font-weight:700}
.faltas-header-controls{display:flex;gap:12px;align-items:center}
.date-picker-label{font-size:11px;color:var(--muted);display:flex;align-items:center;gap:6px;text-transform:uppercase;font-weight:700}
.date-picker-input{padding:5px 8px;border-radius:6px;border:1px solid var(--line);background:var(--white);color:var(--ink);font-size:12px}
.faltas-status-badge{margin-bottom:14px}
.faltas-2col-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:16px}
.faltas-card-mb{margin-bottom:16px}
.faltas-filter-panel{display:flex;gap:10px;align-items:center;flex-wrap:wrap;background:var(--white);border:1px solid var(--line);border-radius:10px;padding:10px 14px;margin-bottom:14px}
.faltas-filter-search{flex:1 1 240px;padding:8px 12px;border-radius:6px;border:1px solid var(--line);background:var(--surface);color:var(--ink);font-size:12px}
.faltas-filter-select{padding:8px 12px;border-radius:6px;border:1px solid var(--line);background:var(--white);color:var(--ink);font-size:12px}
.faltas-empty-row{text-align:center;color:var(--muted);padding:24px}
.faltas-loading-row{text-align:center;padding:20px;color:var(--muted)}
.faltas-error-row{text-align:center;padding:20px;color:var(--wine);font-weight:600}
.destaque-wine{color:var(--wine);font-weight:700}
.cell-bold{font-weight:700}
.faltas-dialog-body{padding:18px 22px 30px}
.faltas-curar-box{background:var(--surface);border:1px solid var(--line);border-radius:9px;padding:14px;margin-top:14px}
.faltas-curar-box h3{margin-top:0;font-size:10px;text-transform:uppercase;color:var(--wine);letter-spacing:.6px}
.faltas-form-field{margin-bottom:10px}
.faltas-form-field label{display:block;font-size:10px;font-weight:700;text-transform:uppercase;color:var(--muted);margin-bottom:4px}
.faltas-form-field select,.faltas-form-field textarea{width:100%;padding:8px 10px;border-radius:6px;border:1px solid var(--line);background:var(--white);color:var(--ink);font-size:12px}
.faltas-w100{width:100%}
@media(max-width:1300px){.faltas-kpis-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:820px){.faltas-2col-grid{grid-template-columns:1fr}}
@media(max-width:700px){.faltas-kpis-grid{grid-template-columns:repeat(2,1fr)}}


/* ======================================================= Estoque Geral Styles */
.badge-success { display:inline-block; padding:2px 7px; border-radius:4px; font-size:9.5px; font-weight:700; background:#dcfce7; color:#15803d; }
.badge-purple { display:inline-block; padding:2px 7px; border-radius:4px; font-size:9.5px; font-weight:700; background:#f3e8ff; color:#7e22ce; }
.badge-warning { display:inline-block; padding:2px 7px; border-radius:4px; font-size:9.5px; font-weight:700; background:#fef3c7; color:#b45309; }
.badge-info { display:inline-block; padding:2px 7px; border-radius:4px; font-size:9.5px; font-weight:700; background:#e0f2fe; color:#0369a1; }

.subtabs { display:flex; gap:6px; overflow-x:auto; }
.subtab { background:none; border:1px solid transparent; border-radius:6px; padding:6px 14px; font-size:12px; font-weight:600; color:var(--muted); cursor:pointer; transition:all .15s; }
.subtab:hover { background:var(--surface); color:var(--ink); }
.subtab.active { background:var(--wine-soft); border-color:var(--wine-soft); color:var(--wine); font-weight:700; }


@media (max-width: 1100px) {
  }
@media (max-width: 700px) {
  }
.btn.small.primary {
  width: auto;
  min-height: auto;
  padding: 5px 12px;
  font-size: 11px;
}

/* ------------------------------------ Estoque Geral: Composição & Auditoria -- */

.math-flow-container {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 16px;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 14px 16px;
}
.math-card {
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: 6px;
  padding: 10px 14px;
  min-width: 100px;
  text-align: center;
  box-shadow: 0 1px 2px rgba(0,0,0,0.03);
}
.math-card .math-lbl {
  font-size: 10.5px;
  text-transform: uppercase;
  letter-spacing: .4px;
  color: var(--muted);
  margin-bottom: 4px;
  font-weight: 600;
}
.math-card .math-val {
  font-size: 16px;
  font-weight: 700;
  color: var(--ink);
  font-variant-numeric: tabular-nums;
}
.math-card .math-sub {
  font-size: 9.5px;
  color: var(--faint);
  margin-top: 3px;
}
.math-card.result {
  background: var(--wine-soft);
  border-color: var(--wine-line);
}
.math-card.result .math-val {
  color: var(--wine);
  font-size: 18px;
}
.math-sym {
  font-size: 18px;
  font-weight: 700;
  color: var(--muted);
  user-select: none;
}

.override-alert-box {
  background: #fef3c7;
  border: 1px solid #f59e0b;
  border-radius: 6px;
  padding: 12px 16px;
  margin-bottom: 16px;
}
.override-alert-title {
  font-size: 12.5px;
  font-weight: 700;
  color: #92400e;
  display: flex;
  align-items: center;
  gap: 6px;
}
.override-alert-desc {
  font-size: 12px;
  color: #78350f;
  margin: 4px 0 0 0;
  line-height: 1.4;
}

.audit-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 12px;
  margin-top: 8px;
}
.audit-table th {
  background: var(--surface);
  color: var(--muted);
  font-size: 10.5px;
  letter-spacing: .4px;
  text-transform: uppercase;
  text-align: left;
  padding: 8px 10px;
  border-bottom: 1px solid var(--line);
}
.audit-table td {
  padding: 8px 10px;
  border-bottom: 1px solid var(--line-soft);
  color: var(--ink);
}
.audit-table tr:hover td {
  background: var(--soft);
}


/* ==========================================================================
   PRODUTOS > CATÁLOGO DIGITAL (PORTFÓLIO, ZOOM & FICHA CANÔNICA)
   ========================================================================== */

.catalogo-view-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
}

.catalogo-head-actions {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}

/* Barra de Ferramentas / Filtros */
.catalogo-toolbar-card {
  background: #ffffff;
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 12px 16px;
  margin-bottom: 12px;
}

.catalogo-toolbar-row {
  display: flex;
  gap: 12px;
  align-items: center;
  flex-wrap: wrap;
}

.catalogo-search-box {
  position: relative;
  flex: 1;
  min-width: 260px;
}

.catalogo-search-box input {
  width: 100%;
  padding: 9px 12px 9px 36px;
  border-radius: 6px;
  border: 1px solid var(--border);
  font-size: 13.5px;
  outline: none;
  background: #ffffff;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.catalogo-search-box input:focus {
  border-color: var(--wine);
  box-shadow: 0 0 0 3px rgba(139, 21, 56, 0.08);
}

.catalogo-search-icon {
  position: absolute;
  left: 11px;
  top: 50%;
  transform: translateY(-50%);
  color: var(--muted);
  pointer-events: none;
}

.catalogo-filter-group {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}

.catalogo-select-wrap select {
  padding: 8.5px 12px;
  border-radius: 6px;
  border: 1px solid var(--border);
  font-size: 13px;
  background: #ffffff;
  color: var(--ink);
  outline: none;
  cursor: pointer;
  min-width: 180px;
  transition: border-color 0.15s ease;
}

.catalogo-select-wrap select:focus {
  border-color: var(--wine);
}

.catalogo-toggle-foto {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 13px;
  font-weight: 600;
  color: var(--ink);
  cursor: pointer;
  user-select: none;
  padding: 7.5px 12px;
  border-radius: 6px;
  background: var(--soft);
  border: 1px solid var(--border);
  transition: background-color 0.15s ease, border-color 0.15s ease;
}

.catalogo-toggle-foto:hover {
  background: #f1f3f6;
  border-color: #d1d5db;
}

.catalogo-toggle-foto input {
  cursor: pointer;
}

/* Sub-barra de Metadados / Contador */
.catalogo-meta-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 12px;
  padding: 0 2px;
  flex-wrap: wrap;
}

.catalogo-counter-text {
  font-size: 13px;
  font-weight: 600;
  color: var(--muted);
}

.catalogo-quick-hints {
  display: flex;
  align-items: center;
  gap: 8px;
}

.catalogo-hint-pill {
  font-size: 11.5px;
  font-weight: 500;
  color: var(--muted);
}

/* Grade de Produtos (Marketplace / Portfólio) */
.catalogo-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(230px, 1fr));
  gap: 16px;
  margin-top: 4px;
}

@media (min-width: 1400px) {
  .catalogo-grid {
    grid-template-columns: repeat(5, 1fr);
  }
}

.catalogo-card {
  background: #ffffff;
  border: 1px solid var(--border);
  border-radius: 8px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: transform 0.2s cubic-bezier(0.2, 0, 0, 1), box-shadow 0.2s ease, border-color 0.2s ease;
  cursor: pointer;
  position: relative;
  text-align: left;
}

.catalogo-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 10px 24px -4px rgba(0, 0, 0, 0.09), 0 4px 8px -2px rgba(0, 0, 0, 0.04);
  border-color: var(--wine);
}

.catalogo-card:focus-visible {
  outline: 2px solid var(--wine);
  outline-offset: 2px;
}

.catalogo-card-media {
  height: 180px;
  width: 100%;
  background: #fafbfc;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  border-bottom: 1px solid var(--border);
  overflow: hidden;
  padding: 12px;
}

.catalogo-card-img {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  transition: transform 0.35s cubic-bezier(0.2, 0, 0, 1);
}

.catalogo-card:hover .catalogo-card-img {
  transform: scale(1.08);
}

/* Linha / Submarca Complementar (Micro-tag secundária, sutil e elegante) */
.catalogo-card-sublinha {
  margin: 1px 0 4px 0;
  display: flex;
  align-items: center;
}

.catalogo-sublinha-tag {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  font-size: 11px;
  line-height: 1.25;
  color: #52525b;
  background: #f4f4f5;
  border: 1px solid #e4e4e7;
  padding: 1px 7px;
  border-radius: 4px;
  font-weight: 600;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.catalogo-sublinha-lbl {
  font-weight: 400;
  color: #71717a;
  margin-right: 1px;
}

/* Pills da Ficha Canônica (Modal) */
.catalogo-pill-sublinha {
  background-color: #f4f4f5 !important;
  color: #3f3f46 !important;
  border: 1px solid #e4e4e7 !important;
  font-weight: 600 !important;
}

.catalogo-pill-categoria {
  background-color: #f8fafc !important;
  color: #475569 !important;
  border: 1px solid #e2e8f0 !important;
  font-weight: 600 !important;
}

.catalogo-pill-shelflife {
  background-color: #fef3c7 !important;
  color: #92400e !important;
  border: 1px solid #fde68a !important;
}

.catalogo-pill-oficial-2026 {
  background-color: #ecfdf5 !important;
  color: #065f46 !important;
  border: 1px solid #a7f3d0 !important;
  font-weight: 600 !important;
}

.catalogo-placeholder-fiche {
  height: 220px !important;
}

.catalogo-card-placeholder {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  color: var(--muted);
  gap: 8px;
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  text-align: center;
  width: 100%;
  height: 100%;
  background: #f4f5f7;
  border-radius: 4px;
}

.catalogo-card-body {
  padding: 12px 14px;
  display: flex;
  flex-direction: column;
  flex: 1;
}

.catalogo-card-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 6px;
}

.catalogo-card-sku {
  font-family: var(--mono);
  font-size: 11px;
  font-weight: 700;
  color: var(--wine);
  background: #fcf1f4;
  padding: 2px 6px;
  border-radius: 4px;
  border: 1px solid #f2cad3;
}

.catalogo-card-category {
  font-size: 10px;
  font-weight: 600;
  color: var(--muted);
  text-transform: uppercase;
  letter-spacing: 0.4px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.catalogo-card-title {
  font-size: 13px;
  font-weight: 700;
  color: var(--ink);
  line-height: 1.35;
  margin: 4px 0 10px 0;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  min-height: 35px;
}

.catalogo-card-footer {
  margin-top: auto;
  padding-top: 8px;
  border-top: 1px solid var(--border);
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: 12px;
  color: var(--muted);
}

.catalogo-card-btn-link {
  font-size: 12px;
  font-weight: 700;
  color: var(--wine);
  display: inline-flex;
  align-items: center;
  gap: 4px;
}

/* ==========================================================================
   MODAL / DIALOG DA FICHA DO PRODUTO (CABEÇALHO FIXO + SCROLL + ABAS)
   ========================================================================== */

dialog.catalogo-modal-dialog {
  width: 95vw;
  max-width: 1020px;
  height: 88vh;
  max-height: 88vh;
  padding: 0;
  border: 1px solid var(--border);
  border-radius: 10px;
  background: #ffffff;
  box-shadow: 0 24px 48px rgba(0, 0, 0, 0.18);
  display: none;
  flex-direction: column;
  overflow: hidden;
}

dialog.catalogo-modal-dialog[open] {
  display: flex;
}

dialog.catalogo-info-dialog {
  width: 90vw;
  max-width: 620px;
  max-height: 80vh;
  padding: 0;
  border: 1px solid var(--border);
  border-radius: 10px;
  background: #ffffff;
  box-shadow: 0 20px 40px rgba(0, 0, 0, 0.18);
  display: none;
  flex-direction: column;
  overflow: hidden;
}

dialog.catalogo-info-dialog[open] {
  display: flex;
}

.catalogo-modal-head {
  padding: 16px 24px 12px 24px;
  border-bottom: 1px solid var(--border);
  background: #ffffff;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  flex-shrink: 0;
  gap: 16px;
}

.catalogo-modal-title-wrap {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.catalogo-modal-title-wrap h2 {
  font-size: 18px;
  font-weight: 800;
  color: var(--ink);
  margin: 2px 0 0 0;
  line-height: 1.25;
}

.catalogo-modal-title-wrap p {
  font-size: 12px;
  color: var(--muted);
  margin: 2px 0 0 0;
}

/* Barra de Navegação Interna / Abas Sticky */
.catalogo-fiche-nav {
  display: flex;
  gap: 6px;
  padding: 8px 24px;
  background: #f8fafc;
  border-bottom: 1px solid var(--border);
  overflow-x: auto;
  flex-shrink: 0;
  scrollbar-width: none;
}

.catalogo-fiche-nav::-webkit-scrollbar {
  display: none;
}

.catalogo-fiche-tab {
  background: transparent;
  border: 1px solid transparent;
  padding: 6px 12px;
  border-radius: 6px;
  font-size: 12px;
  font-weight: 600;
  color: var(--muted);
  cursor: pointer;
  white-space: nowrap;
  transition: all 0.15s ease;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.catalogo-fiche-tab:hover {
  color: var(--ink);
  background: rgba(0, 0, 0, 0.04);
}

.catalogo-fiche-tab.active {
  color: var(--wine);
  background: #fdf2f4;
  border-color: #fecdd3;
  font-weight: 700;
}

/* Corpo com Rolagem Independente */
.catalogo-modal-body {
  flex: 1;
  overflow-y: auto;
  overscroll-behavior: contain;
  padding: 20px 24px;
  scroll-behavior: smooth;
}

/* Hero Section (Foto & Destaques) */
.catalogo-fiche-hero {
  display: grid;
  grid-template-columns: 320px 1fr;
  gap: 24px;
  margin-bottom: 20px;
  background: #ffffff;
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 20px;
  scroll-margin-top: 10px;
}

@media (max-width: 768px) {
  .catalogo-fiche-hero {
    grid-template-columns: 1fr;
  }
}

.catalogo-fiche-media {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

/* Container de Foto com Zoom Interativo / Lupa */
.catalogo-fiche-photo-main {
  width: 100%;
  height: 280px;
  background: #ffffff;
  border: 1px solid var(--border);
  border-radius: 6px;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  position: relative;
  cursor: zoom-in;
  user-select: none;
  touch-action: manipulation;
}

.catalogo-fiche-photo-main.no-zoom {
  cursor: default;
}

.catalogo-fiche-photo-main img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  transition: transform 0.15s ease-out;
  pointer-events: none;
  transform: scale(1);
  transform-origin: center center;
  will-change: transform, transform-origin;
}

.catalogo-fiche-zoom-hint {
  position: absolute;
  bottom: 8px;
  right: 8px;
  background: rgba(255, 255, 255, 0.94);
  backdrop-filter: blur(4px);
  border: 1px solid var(--border);
  border-radius: 4px;
  padding: 4px 8px;
  font-size: 11px;
  font-weight: 600;
  color: var(--muted);
  pointer-events: none;
  transition: opacity 0.18s ease;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.08);
  z-index: 2;
}

.catalogo-fiche-photo-main.is-zooming .catalogo-fiche-zoom-hint,
.catalogo-fiche-photo-main.zooming .catalogo-fiche-zoom-hint,
.catalogo-fiche-photo-main.zoomed .catalogo-fiche-zoom-hint {
  opacity: 0;
}

/* Galeria de Miniaturas */
.catalogo-fiche-thumbnails {
  display: flex;
  gap: 8px;
  overflow-x: auto;
  padding-bottom: 4px;
}

.catalogo-fiche-thumb {
  width: 56px;
  height: 56px;
  border-radius: 6px;
  border: 2px solid var(--border);
  background: #fafbfc;
  padding: 2px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.catalogo-fiche-thumb.active,
.catalogo-fiche-thumb:hover {
  border-color: var(--wine);
  box-shadow: 0 2px 6px rgba(139, 21, 56, 0.12);
}

.catalogo-fiche-thumb img {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
}

.catalogo-fiche-info-header {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.catalogo-fiche-pills {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
}

.catalogo-pill {
  font-size: 11px;
  font-weight: 700;
  padding: 3px 8px;
  border-radius: 4px;
  display: inline-flex;
  align-items: center;
  gap: 4px;
}

.catalogo-pill-sku {
  background: #fcf1f4;
  color: var(--wine);
  border: 1px solid #f2cad3;
  font-family: var(--mono);
}

.catalogo-pill-category {
  background: #eef2ff;
  color: #3730a3;
  border: 1px solid #c7d2fe;
}

.catalogo-pill-brand {
  background: #ecfdf5;
  color: #065f46;
  border: 1px solid #a7f3d0;
}

.catalogo-fiche-title {
  font-size: 20px;
  font-weight: 800;
  color: var(--ink);
  line-height: 1.25;
  margin: 0;
}

.catalogo-fiche-subtitle {
  font-size: 13px;
  color: var(--muted);
  line-height: 1.4;
  margin-top: -6px;
}

.catalogo-fiche-quick-badges {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(130px, 1fr));
  gap: 10px;
  margin-top: 12px;
}

.catalogo-quick-box {
  background: var(--soft);
  border: 1px solid var(--border);
  border-radius: 6px;
  padding: 10px 12px;
}

.catalogo-quick-box .lbl {
  font-size: 10px;
  font-weight: 700;
  color: var(--muted);
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.catalogo-quick-box .val {
  font-size: 15px;
  font-weight: 800;
  color: var(--ink);
  margin-top: 2px;
}

/* Blocos Dinâmicos de Informações */
.catalogo-fiche-section {
  background: #ffffff;
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 18px 20px;
  margin-bottom: 16px;
  scroll-margin-top: 10px;
}

.catalogo-fiche-sec-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 14px;
  border-bottom: 1px solid var(--border);
  padding-bottom: 8px;
}

.catalogo-fiche-sec-head h3 {
  font-size: 14px;
  font-weight: 700;
  color: var(--ink);
  text-transform: uppercase;
  letter-spacing: 0.5px;
  margin: 0;
  display: flex;
  align-items: center;
  gap: 8px;
}

.catalogo-fiche-data-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: 12px 16px;
}

.catalogo-prop-item {
  display: flex;
  flex-direction: column;
}

.catalogo-prop-label {
  font-size: 11px;
  color: var(--muted);
  font-weight: 600;
}

.catalogo-prop-value {
  font-size: 13px;
  color: var(--ink);
  font-weight: 700;
  margin-top: 2px;
}

/* Card Especial de Escoamento 1/3, PDA e PDC */
.catalogo-escoamento-box {
  background: #fff8f5;
  border: 1px solid #ffd8c7;
  border-radius: 8px;
  padding: 18px 20px;
  margin-bottom: 16px;
  scroll-margin-top: 10px;
}

.catalogo-escoamento-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 12px;
  border-bottom: 1px solid #ffd8c7;
  padding-bottom: 8px;
}

.catalogo-escoamento-header h3 {
  font-size: 14px;
  font-weight: 700;
  color: #9a3412;
  margin: 0;
  display: flex;
  align-items: center;
  gap: 8px;
}

.catalogo-escoamento-alert {
  font-size: 12px;
  color: #7c2d12;
  background: #ffedd5;
  padding: 8px 12px;
  border-radius: 6px;
  margin-bottom: 14px;
  border: 1px solid #fed7aa;
}

.catalogo-escoamento-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 10px;
  margin-bottom: 16px;
}

.catalogo-escoamento-kpi {
  background: #ffffff;
  border: 1px solid #ffd8c7;
  border-radius: 6px;
  padding: 10px 14px;
}

.catalogo-escoamento-kpi .lbl {
  font-size: 10px;
  font-weight: 700;
  color: #9a3412;
  text-transform: uppercase;
}

.catalogo-escoamento-kpi .val {
  font-size: 16px;
  font-weight: 800;
  color: var(--ink);
  margin-top: 2px;
}

.catalogo-doc-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: var(--soft);
  color: var(--ink);
  border: 1px solid var(--border);
  padding: 8px 14px;
  border-radius: 6px;
  font-size: 12.5px;
  font-weight: 700;
  text-decoration: none;
  transition: all 0.15s ease;
  cursor: pointer;
}

.catalogo-doc-btn:hover {
  background: #ffffff;
  border-color: var(--wine);
  color: var(--wine);
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.06);
}

.catalogo-doc-btn.primary {
  background: var(--wine);
  color: #ffffff;
  border-color: var(--wine);
}

.catalogo-doc-btn.primary:hover {
  background: #73122e;
  border-color: #73122e;
  color: #ffffff;
}

@media (max-width: 640px) {
  dialog.catalogo-modal-dialog {
    width: 100vw;
    height: 100vh;
    max-height: 100vh;
    border-radius: 0;
  }
  .catalogo-modal-head {
    padding: 12px 16px;
  }
  .catalogo-fiche-nav {
    padding: 6px 16px;
  }
  .catalogo-modal-body {
    padding: 14px 16px;
  }
  .catalogo-fiche-photo-main {
    height: 220px;
  }
}

/* ==========================================================================
   LIGHTBOX MODAL - CATÁLOGO DE PRODUTOS
   ========================================================================== */

.catalogo-lightbox-dialog {
  border: none;
  background: transparent;
  padding: 0;
  max-width: 100vw;
  max-height: 100vh;
  width: 100vw;
  height: 100vh;
  margin: 0;
  position: fixed;
  inset: 0;
  z-index: 9999;
  overflow: hidden;
}

.catalogo-lightbox-dialog:not([open]) {
  display: none !important;
}

.catalogo-lightbox-dialog::backdrop {
  background: rgba(10, 15, 25, 0.92);
  backdrop-filter: blur(8px);
}

.catalogo-lightbox-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(10, 15, 25, 0.92);
  backdrop-filter: blur(8px);
  z-index: 1;
}

.catalogo-lightbox-panel {
  position: relative;
  z-index: 2;
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
  pointer-events: none;
}

.catalogo-lightbox-topbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 24px;
  background: linear-gradient(180deg, rgba(0, 0, 0, 0.8) 0%, rgba(0, 0, 0, 0) 100%);
  pointer-events: auto;
  gap: 16px;
}

.catalogo-lightbox-meta {
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: 0;
}

.catalogo-lightbox-sku {
  background: rgba(255, 255, 255, 0.15);
  color: #fff;
  border: 1px solid rgba(255, 255, 255, 0.3);
  padding: 3px 8px;
  border-radius: 4px;
  font-family: var(--mono);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.5px;
  flex-shrink: 0;
}

.catalogo-lightbox-title {
  color: #fff;
  font-size: 15px;
  font-weight: 600;
  margin: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.catalogo-lightbox-counter {
  color: rgba(255, 255, 255, 0.65);
  font-size: 12px;
  font-weight: 600;
  flex-shrink: 0;
  padding-left: 6px;
  border-left: 1px solid rgba(255, 255, 255, 0.2);
}

.catalogo-lightbox-actions {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-shrink: 0;
}

.catalogo-lightbox-btn {
  background: rgba(255, 255, 255, 0.12);
  border: 1px solid rgba(255, 255, 255, 0.25);
  color: #fff;
  border-radius: 6px;
  padding: 6px 12px;
  font-size: 13px;
  font-weight: 600;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  cursor: pointer;
  text-decoration: none;
  transition: all 0.15s ease;
  line-height: 1;
}

.catalogo-lightbox-btn:hover {
  background: rgba(255, 255, 255, 0.25);
  border-color: rgba(255, 255, 255, 0.45);
  color: #fff;
}

.catalogo-lightbox-btn.close {
  font-size: 24px;
  width: 36px;
  height: 36px;
  padding: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  font-weight: 400;
}

.catalogo-lightbox-stage {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10px 24px;
  position: relative;
  min-height: 0;
}

.catalogo-lightbox-view {
  flex: 1;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  pointer-events: auto;
  user-select: none;
}

.catalogo-lightbox-view img {
  max-width: 90vw;
  max-height: calc(85vh - 120px);
  object-fit: contain;
  border-radius: 6px;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.7);
  background: rgba(255, 255, 255, 0.03);
  transition: opacity 0.15s ease;
}

.catalogo-lightbox-nav {
  pointer-events: auto;
  background: rgba(255, 255, 255, 0.14);
  border: 1px solid rgba(255, 255, 255, 0.25);
  color: #fff;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all 0.15s ease;
  flex-shrink: 0;
  z-index: 3;
}

.catalogo-lightbox-nav:hover {
  background: rgba(255, 255, 255, 0.3);
  transform: scale(1.08);
}

.catalogo-lightbox-strip {
  padding: 12px 24px 20px 24px;
  display: flex;
  justify-content: center;
  gap: 10px;
  pointer-events: auto;
  overflow-x: auto;
  background: linear-gradient(0deg, rgba(0, 0, 0, 0.8) 0%, rgba(0, 0, 0, 0) 100%);
}

.catalogo-lightbox-strip:empty {
  display: none;
}

.catalogo-lightbox-strip-item {
  width: 54px;
  height: 54px;
  border-radius: 6px;
  border: 2px solid rgba(255, 255, 255, 0.3);
  background: #111;
  cursor: pointer;
  overflow: hidden;
  padding: 2px;
  transition: all 0.15s ease;
  flex-shrink: 0;
}

.catalogo-lightbox-strip-item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 4px;
}

.catalogo-lightbox-strip-item.active {
  border-color: #f59e0b;
  box-shadow: 0 0 10px rgba(245, 158, 11, 0.5);
  transform: scale(1.06);
}

/* ==============================================================
   MÓDULO: CLIENTES (Visão Geral, Carteira, Movimentações, Ficha)
   ============================================================== */
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.cli-head-actions{display:flex;gap:8px;align-items:center}
.cli-fonte{margin-bottom:10px}
.cli-status{font-weight:700}
.source-group .cli-status.ok{color:var(--green)}.source-group .cli-status.warn{color:var(--amber)}.source-group .cli-status.run{color:var(--blue)}
.cli-fonte-alerta{margin:0 0 12px}
.cli-card{margin-bottom:12px}
.cli-card .card-head{padding:11px 16px;margin:0;border-bottom:1px solid var(--line);align-items:center}
.cli-card .card-note{font-size:11px;color:var(--muted)}
.cli-nota-fonte{font-size:11px;color:var(--muted);line-height:1.45;margin:8px 0 0}
.cli-nota-fonte code,.cli-info-body code{font-size:10.5px;background:var(--surface-mute);padding:1px 4px;border-radius:3px}

/* Carteira atual */
.cli-carteira{display:grid;grid-template-columns:minmax(0,320px) minmax(0,1fr);gap:0}
.cli-carteira-kpis{display:grid;grid-template-columns:1fr;border-right:1px solid var(--line)}
.cli-num{padding:10px 16px;border-bottom:1px solid var(--line-soft);display:flex;justify-content:space-between;align-items:baseline;gap:12px}
.cli-num:last-child{border-bottom:0}
.cli-num span{font-size:11px;color:var(--muted)}
.cli-num strong{font-size:20px;font-weight:620;letter-spacing:-.5px;font-variant-numeric:tabular-nums;color:var(--ink)}
.cli-num:first-child strong{color:var(--wine)}
.cli-dist{padding:12px 16px}
.cli-dist-bar{display:flex;height:10px;border-radius:4px;overflow:hidden;background:var(--surface-mute);gap:1px}
.cli-dist-bar .cli-seg{min-width:2px;flex-basis:0}
.cli-dist-legend{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:2px 14px;margin-top:10px}
.cli-leg{display:grid;grid-template-columns:auto 1fr auto auto;gap:8px;align-items:center;border:0;background:none;padding:5px 6px;border-radius:4px;font:inherit;font-size:12px;color:var(--ink);text-align:left;cursor:pointer}
.cli-leg:hover{background:var(--hover)}
.cli-leg .nome em{font-style:normal;color:var(--faint);font-size:10.5px}
.cli-leg strong{font-variant-numeric:tabular-nums;font-weight:650}
.cli-leg .pct{font-style:normal;font-size:10.5px;color:var(--faint);min-width:40px;text-align:right;font-variant-numeric:tabular-nums}
.cli-dot{display:inline-block;width:9px;height:9px;border-radius:2px}
.cli-seg.ativo,.cli-dot.ativo{background:var(--green)}
.cli-seg.pendencia,.cli-dot.pendencia{background:#8fb7a2}
.cli-seg.bloqueio,.cli-dot.bloqueio{background:var(--amber)}
.cli-seg.fechado,.cli-dot.fechado{background:var(--red)}
.cli-seg.inativo,.cli-dot.inativo{background:var(--faint)}

/* Movimentações (resumo) */
.cli-period-selector{display:inline-flex;border:1px solid var(--line);border-radius:5px;overflow:hidden}
.cli-period-btn{border:0;background:var(--white);color:var(--muted);font:inherit;font-size:11px;padding:4px 10px;cursor:pointer;border-right:1px solid var(--line)}
.cli-period-btn:last-child{border-right:0}
.cli-period-btn:hover{background:var(--hover)}
.cli-period-btn.active{background:var(--wine-fill);color:var(--on-wine)}
.cli-mov-resumo{padding:0}
.cli-vazio{margin:0;padding:16px;font-size:12.5px;color:var(--muted);line-height:1.5}
.cli-vazio strong{display:block;color:var(--ink);font-weight:600}
.cli-vazio span{display:block;font-size:11.5px;margin-top:2px}
.cli-vazio.erro{color:var(--red)}
td.cli-vazio{text-align:center;padding:28px}
.cli-mov-tipos{display:flex;flex-wrap:wrap;gap:8px;padding:12px 16px;border-bottom:1px solid var(--line-soft)}
.cli-mov-tipo{display:flex;align-items:baseline;gap:6px;border:1px solid var(--line);background:var(--white);border-radius:5px;padding:5px 10px;font:inherit;font-size:12px;color:var(--ink);cursor:pointer}
.cli-mov-tipo:hover{border-color:var(--wine)}
.cli-mov-tipo strong{font-size:15px;color:var(--wine);font-variant-numeric:tabular-nums}
.cli-lista{display:flex;flex-direction:column}
.cli-linha-item{display:flex;align-items:center;gap:12px;padding:8px 16px;border-bottom:1px solid var(--line-soft)}
.cli-linha-item:last-child{border-bottom:0}
.cli-linha-item>div{flex:1;min-width:0}
.cli-linha-item strong{display:block;font-size:12.5px;font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cli-linha-item span{display:block;font-size:11.5px;color:var(--muted)}
.cli-data{font-size:11px;color:var(--faint);font-variant-numeric:tabular-nums;white-space:nowrap}
.cli-card-foot{padding:6px 16px;border-top:1px solid var(--line-soft)}

/* Qualidade cadastral */
.cli-qualidade{padding:0 0 4px}
.cli-qualidade>.cli-nota-fonte{margin:0;padding:10px 16px 6px}
.cli-q{border-top:1px solid var(--line-soft)}
.cli-q summary{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:9px 16px;cursor:pointer;font-size:12.5px;color:var(--ink);list-style:none}
.cli-q summary::-webkit-details-marker{display:none}
.cli-q summary::before{content:"";width:0;height:0;border-left:4px solid var(--faint);border-top:4px solid transparent;border-bottom:4px solid transparent;margin-right:4px;transition:transform .15s}
.cli-q[open] summary::before{transform:rotate(90deg)}
.cli-q summary span{flex:1}
.cli-q summary strong{font-variant-numeric:tabular-nums;color:var(--muted);font-weight:600}
.cli-q summary:hover{background:var(--hover)}
.cli-q .cli-lista{background:var(--surface-soft);border-top:1px solid var(--line-soft)}
.cli-q .cli-nota-fonte{padding:6px 16px 8px;margin:0}

/* Filtros (Carteira e Movimentações) */
.cli-filtros{padding:12px 14px;margin-bottom:8px}
.cli-filtros-grid{display:grid;grid-template-columns:minmax(220px,2.2fr) repeat(4,minmax(120px,1fr)) minmax(70px,.5fr) minmax(130px,1fr) auto;gap:8px 10px;align-items:end}
.cli-filtros-mov{grid-template-columns:minmax(220px,2.2fr) repeat(3,minmax(140px,1fr)) auto}
.cli-filtros label{display:flex;flex-direction:column;gap:3px;font-size:9.5px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;color:var(--faint);min-width:0}
.cli-filtros input,.cli-filtros select{font:inherit;font-size:12px;text-transform:none;letter-spacing:0;font-weight:400;color:var(--ink);background:var(--white);border:1px solid var(--line-strong);border-radius:5px;padding:6px 8px;min-width:0;width:100%}
.cli-filtros input:focus,.cli-filtros select:focus{outline:2px solid var(--wine-soft);border-color:var(--wine)}
.cli-f-limpar{align-self:end;height:31px}
.cli-meta{display:flex;justify-content:space-between;align-items:center;font-size:11.5px;color:var(--muted);margin:4px 2px 8px;min-height:16px}

/* Tabela da carteira */
.cli-tabela-card .table-scroll{max-height:none}
.cli-table{table-layout:fixed;min-width:1000px}
.cli-table td{padding:7px 10px;border-bottom:1px solid var(--line-soft);vertical-align:top;font-size:12px;line-height:1.35;overflow:hidden;text-overflow:ellipsis}
.cli-table th{padding:8px 10px}
.cli-table tbody tr{cursor:pointer}
.cli-table tbody tr:hover td,.cli-table tbody tr:focus-visible td{background:var(--wine-soft)}
.cli-table .c-cod{width:104px}.cli-table .c-cid{width:128px}.cli-table .c-pes{width:118px}
.cli-table .c-rede{width:108px}.cli-table .c-sit{width:124px}.cli-table .c-data{width:92px}.cli-table .c-acao{width:58px;text-align:right}
.cli-table td.c-nome span b{font-weight:500;font-variant-numeric:tabular-nums;color:var(--muted)}
.cli-th-sub{font-weight:500;text-transform:none;letter-spacing:0;color:var(--faint)}
.cli-table td.c-pes{white-space:nowrap}
.cli-table td.c-nome strong{display:block;font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cli-table td.c-nome span,.cli-table td.c-cid span{display:block;font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cli-table td.c-data{font-variant-numeric:tabular-nums;white-space:nowrap}
.cli-table td.c-pes,.cli-table td.c-rede,.cli-table td.c-cid{overflow:hidden;text-overflow:ellipsis}
.cli-cod-num{font-variant-numeric:tabular-nums;font-weight:600;color:var(--ink)}
.cli-cod-loja{margin-left:5px;font-size:10.5px;color:var(--muted);border:1px solid var(--line);border-radius:3px;padding:0 4px}
.cli-vazio-cel{color:var(--faint)}
.cli-badge{display:inline-block;padding:2px 7px;border-radius:10px;font-size:10.5px;font-weight:650;white-space:nowrap;border:1px solid transparent}
.cli-badge-ativo{background:var(--green-bg);color:var(--green);border-color:var(--green-line)}
.cli-badge-pendencia{background:var(--blue-bg);color:var(--blue);border-color:var(--blue-line)}
.cli-badge-bloqueio{background:var(--amber-bg);color:var(--amber);border-color:var(--amber-line)}
.cli-badge-fechado{background:var(--red-bg);color:var(--red);border-color:var(--red-line)}
.cli-badge-inativo{background:var(--surface-mute);color:var(--muted);border-color:var(--line)}
.cli-pagination-bar{display:flex;justify-content:center;align-items:center;gap:14px;margin:12px 0 4px}
.cli-pag-info{font-size:11.5px;color:var(--muted);font-variant-numeric:tabular-nums}

/* Feed de movimentações */
.cli-feed{display:flex;flex-direction:column;gap:8px}
.cli-evento{background:var(--white);border:1px solid var(--line);border-left:3px solid var(--line-hard);border-radius:5px;padding:10px 14px;font-size:12px}
.cli-evento.t-novo_cliente,.cli-evento.t-nova_loja,.cli-evento.t-reativado,.cli-evento.t-retorno_a_fonte{border-left-color:var(--green)}
.cli-evento.t-inativado,.cli-evento.t-fora_da_fonte{border-left-color:var(--red)}
.cli-evento.t-mudanca_situacao{border-left-color:var(--amber)}
.cli-evento.t-troca_vendedor,.cli-evento.t-troca_gestor,.cli-evento.t-troca_rede{border-left-color:var(--wine)}
.cli-evento-topo{display:flex;justify-content:space-between;gap:12px;align-items:baseline}
.cli-evento-tipo{font-size:10px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;color:var(--wine)}
.cli-evento-cliente{display:flex;gap:8px;align-items:baseline;margin-top:3px}
.cli-evento-cliente strong{font-weight:600;color:var(--ink)}
.cli-evento p{margin:4px 0 0;color:var(--ink);line-height:1.45}
.cli-diff{display:inline-flex;gap:8px;align-items:center;margin-top:6px;font-size:11.5px;background:var(--surface-soft);border:1px solid var(--line-soft);border-radius:4px;padding:3px 8px}
.cli-diff .de{color:var(--muted);text-decoration:line-through}.cli-diff .seta{color:var(--faint)}.cli-diff .para{color:var(--ink);font-weight:600}
.cli-evento-meta{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:6px;font-size:11px;color:var(--muted)}

/* Ficha do cliente */
#clientes-ficha-dialog,#clientes-info-dialog{display:flex;flex-direction:column}
#clientes-ficha-dialog:not([open]),#clientes-info-dialog:not([open]){display:none}
#clientes-ficha-dialog .drawer-head,#clientes-info-dialog .drawer-head{flex:none}
.cli-ficha{width:min(900px,92vw)}
.cli-info{width:min(680px,92vw)}
.cli-ficha h2{font-size:18px;margin:2px 0}
.cli-ficha #cli-dialog-fantasia{font-size:12px;color:var(--muted);margin:0}
.cli-ficha-tags{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
.cli-tag{display:inline-block;padding:2px 7px;border-radius:10px;font-size:10.5px;font-weight:600;background:var(--surface-mute);color:var(--muted);border:1px solid var(--line)}
.cli-tag.warn{background:var(--amber-bg);color:var(--amber);border-color:var(--amber-line)}
.cli-ficha-acoes{display:flex;gap:8px;align-items:center}
.cli-ficha-nav{flex:none;display:flex;gap:2px;padding:0 16px;border-bottom:1px solid var(--line);overflow-x:auto}
.cli-ficha-tab{border:0;background:none;font:inherit;font-size:12px;color:var(--muted);padding:9px 10px;border-bottom:2px solid transparent;cursor:pointer;white-space:nowrap}
.cli-ficha-tab:hover{color:var(--ink)}
.cli-ficha-tab.active{color:var(--wine);border-bottom-color:var(--wine);font-weight:600}
.cli-ficha-body,.cli-info-body{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain}
.cli-campos{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:0;background:var(--white);border:1px solid var(--line-soft);border-radius:6px;overflow:hidden}
.cli-campo{background:var(--white);padding:9px 12px;display:flex;flex-direction:column;gap:2px;min-width:0;box-shadow:0 0 0 .5px var(--line-soft)}
.cli-campo.largo{grid-column:1/-1}
.cli-campo>span{font-size:9.5px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;color:var(--faint)}
.cli-campo strong{font-size:13px;font-weight:500;color:var(--ink);overflow-wrap:anywhere}
.cli-campo strong.mono,.cli-ficha td.mono{font-variant-numeric:tabular-nums}
.cli-campo strong em{font-style:normal;color:var(--faint)}
.cli-campo small{font-size:10.5px;color:var(--faint)}
.cli-mata-wrap{margin-top:10px;border:1px solid var(--line);border-radius:6px;max-height:420px}
.cli-info-body h3{font-size:11px;text-transform:uppercase;letter-spacing:.6px;margin:16px 0 6px;color:var(--wine)}
.cli-info-body h3:first-child{margin-top:0}
.cli-info-body p,.cli-info-body li{font-size:12.5px;line-height:1.55;color:var(--ink)}
.cli-info-body ul{padding-left:18px;margin:0}

@media(max-width:1100px){
  .cli-filtros-grid,.cli-filtros-mov{grid-template-columns:repeat(3,minmax(0,1fr))}
  .cli-f-busca{grid-column:1/-1}
}
@media(max-width:820px){
  .cli-carteira{grid-template-columns:1fr}
  .cli-carteira-kpis{border-right:0;border-bottom:1px solid var(--line)}
  .cli-filtros-grid,.cli-filtros-mov{grid-template-columns:1fr 1fr}
  .cli-head-actions{margin-top:8px}
}
.cli-feed>.cli-vazio{background:var(--white);border:1px solid var(--line);border-radius:6px;padding:18px 20px}
.pda-table .pda-realizado .pda-cell-help,.pda-table .pda-vendedores .pda-cell-help{color:var(--faint);font-size:11px}

/* ===== Estoque crítico: novidades, selos e Comunicar Comercial ===== */
.pda-acoes{display:flex;gap:8px;align-items:center}
.pda-novidades{display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:var(--white);border:1px solid var(--line);border-left:3px solid var(--wine);border-radius:6px;padding:7px 14px;margin-bottom:10px;font-size:12px}
.pda-novidades .pda-nov-rotulo{font-size:9.5px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;color:var(--wine)}
.pda-novidades strong{font-size:15px;color:var(--ink);font-variant-numeric:tabular-nums}
.pda-novidades .pda-nov-detalhe{color:var(--muted);flex:1}
.pda-novidades .quiet-button{padding:0 4px}
.pda-selo{display:inline-block;margin-left:6px;padding:0 5px;border-radius:3px;font-size:9px;font-weight:700;letter-spacing:.3px;text-transform:uppercase;vertical-align:1px;white-space:nowrap}
.pda-selo.novo{background:var(--wine-soft);color:var(--wine);border:1px solid var(--wine-soft)}
.pda-selo.excl{background:var(--gold-bg);color:var(--gold-ink);border:1px solid var(--gold-line)}
.com-dialog{width:min(980px,94vw)}
#com-dialog{display:flex;flex-direction:column}
#com-dialog:not([open]){display:none}
#com-dialog .drawer-head{flex:none}
#com-dialog .com-body{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain}
.com-escolhas{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.com-opcao{border:1px solid var(--line);border-radius:6px;padding:14px 16px;display:flex;flex-direction:column;gap:8px;background:var(--white)}
.com-opcao h3{margin:0;font-size:13px;text-transform:none;letter-spacing:0;color:var(--wine)}
.com-opcao p{margin:0;font-size:12px;color:var(--muted)}
.com-opcao label{display:flex;flex-direction:column;gap:5px;font-size:12px;color:var(--ink)}
.com-dias{display:flex;align-items:center;gap:6px}
.com-dias input{width:110px;font:inherit;font-size:14px;padding:6px 8px;border:1px solid var(--line-strong);border-radius:5px;background:var(--white);color:var(--ink)}
.com-dias em{font-style:normal;color:var(--muted);font-size:12px}
.com-opcao .btn{align-self:flex-start}
.com-nota{font-size:11px;color:var(--muted);margin:10px 0 0;line-height:1.45}
.com-nota-inline{font-size:10px;font-weight:500;text-transform:none;letter-spacing:0;color:var(--faint);margin-left:6px}
.com-resumo{display:flex;flex-wrap:wrap;gap:6px 16px;align-items:center;font-size:12px;color:var(--muted);padding:6px 0 10px;border-bottom:1px solid var(--line-soft);margin-bottom:8px}
.com-resumo b{color:var(--ink);font-variant-numeric:tabular-nums}
.com-sel-acoes{margin-left:auto;display:flex;gap:10px}
.com-tabela td,.com-tabela th{padding:5px 8px;font-size:11.5px}
.com-tabela td{border-bottom:1px solid var(--line-soft);white-space:nowrap}
.com-tabela td.com-desc{white-space:normal;min-width:220px}
.com-tabela tr.com-off td{color:var(--faint)}
.com-tabela input[type=checkbox]{accent-color:var(--wine);width:15px;height:15px}
/* com-ferramentas: busca + marcar/desmarcar os encontrados; CX/KG editáveis */
.com-ferramentas{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin:0 0 6px}
.com-ferramentas .com-busca{width:min(320px,100%);height:30px;padding:0 10px;border:1px solid var(--line-strong);border-radius:4px;background:var(--white);color:var(--ink);font-size:12.5px}
.com-ferramentas .com-busca:focus{outline:2px solid var(--wine-soft);border-color:var(--wine)}
.com-resumo-nums{display:contents}
.com-busca-n{font-size:12px;color:var(--muted)}
.com-ferramentas .com-sel-acoes{margin-left:auto}
.com-nota-qtd{margin:0 0 8px}
.com-tabela td.com-qtd-cel{padding-top:3px;padding-bottom:3px}
.com-tabela .com-qtd{width:84px;height:26px;padding:0 6px;border:1px solid var(--line);border-radius:3px;background:var(--white);color:var(--ink);font:inherit;font-variant-numeric:tabular-nums;text-align:right}
.com-tabela .com-qtd:hover{border-color:var(--line-strong)}
.com-tabela .com-qtd:focus{outline:2px solid var(--wine-soft);border-color:var(--wine)}
.com-tabela .com-qtd.ajustado{border-color:var(--gold-line);background:var(--gold-bg);color:var(--gold-ink);font-weight:600}
.com-tabela .com-qtd.invalido{border-color:var(--red)}
.com-tabela .com-qtd:disabled{background:transparent;border-color:transparent;color:var(--faint)}
.com-tabela .com-orig{display:block;margin-top:1px;font-size:10px;color:var(--muted)}
.com-rodape{display:flex;justify-content:flex-end;gap:8px;margin-top:14px;padding-top:10px;border-top:1px solid var(--line-soft)}
.com-previa{display:grid;grid-template-columns:140px 1fr;gap:6px 14px;font-size:12.5px;margin:4px 0}
.com-previa dt{color:var(--faint);font-size:10px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;padding-top:2px}
.com-previa dd{margin:0;color:var(--ink)}
.com-previa textarea{display:block;width:100%;margin-top:6px;font:inherit;font-size:11.5px;border:1px solid var(--line-strong);border-radius:5px;padding:6px 8px;background:var(--white);color:var(--ink)}
.com-aviso{margin-bottom:10px}
.com-excl{border:1px solid var(--line);border-radius:8px;padding:0;width:min(480px,92vw);background:var(--white);color:var(--ink)}
.com-excl .dialog-head{padding:14px 18px;border-bottom:1px solid var(--line)}
.com-excl .dialog-head h2{color:var(--wine);font-size:14px;margin:0;text-transform:uppercase;letter-spacing:.4px}
.com-excl-body{padding:12px 18px;font-size:12.5px;line-height:1.5}
.com-excl-body ul{margin:6px 0 10px;padding-left:18px}
.com-excl-acoes{display:flex;justify-content:flex-end;gap:8px;padding:10px 18px 14px}
@media(max-width:820px){.com-escolhas{grid-template-columns:1fr}.com-previa{grid-template-columns:1fr}.pda-acoes{margin-top:8px}}
.com-rodape .btn,.com-opcao .btn{width:auto;flex:none}

/* Formato do comunicado e agrupamento por segmentação */
.com-formato-bar{display:flex;align-items:center;flex-wrap:wrap;gap:12px;padding:8px 12px;background:var(--surface-mute);border:1px solid var(--line);border-radius:6px;margin:8px 0 10px}
.com-formato-label{font-size:11.5px;font-weight:700;color:var(--wine);letter-spacing:.2px}
.com-formato-opt{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--ink);cursor:pointer;font-weight:500;user-select:none}
.com-formato-opt input[type=radio]{accent-color:var(--wine);margin:0}
.pda-seg-badge{display:inline-block;padding:1px 6px;border-radius:4px;font-size:10px;font-weight:600;background:var(--line-soft);color:var(--ink);letter-spacing:.2px;max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.com-secao-seg{margin-top:16px;padding-top:14px;border-top:1px solid var(--line-strong)}
.com-secao-cab-seg{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:10px}
.com-secao-cab-seg h3{margin:0;font-size:13px;color:var(--wine);text-transform:uppercase;letter-spacing:.4px}
.com-blocos-grid{display:flex;flex-direction:column;gap:14px}
.com-bloco-card{background:var(--white);border:1px solid var(--line);border-radius:6px;overflow:hidden}
.com-bloco-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;padding:8px 12px;background:var(--wine-soft);border-bottom:1px solid var(--line-soft)}
.com-bloco-tit{font-size:12px;color:var(--wine);display:flex;align-items:center;gap:6px}
.com-bloco-tit b{font-weight:700}
.com-bloco-cnt{font-size:11px;color:var(--muted);font-weight:400}
.com-bloco-subtot{font-size:11.5px;color:var(--ink);font-variant-numeric:tabular-nums}
.com-bloco-subtot b{color:var(--wine)}
.com-tabela-bloco th{background:var(--surface-mute);color:var(--ink);font-size:10.5px}
.com-tr-subtotal td{background:var(--wine-soft);font-size:11px;color:var(--wine);border-top:1px solid var(--wine-line);border-bottom:none}
.com-tr-subtotal td b{color:var(--wine)}

/* ===== Estoque geral (réplica da planilha de estoque oficial) ===== */
.eg-barra{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:flex-end;padding:10px 14px;margin-bottom:10px}
.eg-barra label{display:flex;flex-direction:column;gap:3px;font-size:9.5px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;color:var(--faint)}
.eg-barra select,.eg-barra input[type=search]{font:inherit;font-size:12px;text-transform:none;letter-spacing:0;font-weight:400;color:var(--ink);background:var(--white);border:1px solid var(--line-strong);border-radius:5px;padding:6px 8px}
.eg-barra #eg-perfil{min-width:250px;font-weight:600}
.eg-barra .eg-busca{flex:1;min-width:200px}
.eg-barra .check-filter{flex-direction:row;align-items:center;gap:5px;text-transform:none;letter-spacing:0;font-weight:500;font-size:12px;color:var(--ink);padding-bottom:6px}
.eg-tabela-card{margin-bottom:64px}
.eg-tabela{table-layout:fixed;min-width:900px}
.eg-tabela .eg-c-sku{width:84px}.eg-tabela .eg-c-env{width:110px}.eg-tabela .eg-c-num{width:96px}.eg-tabela .eg-c-inp{width:112px}.eg-tabela .eg-c-acao{width:84px}
.eg-tabela td{padding:5px 10px;border-bottom:1px solid var(--line-soft);font-size:12px;vertical-align:middle}
.eg-tabela td.num{font-variant-numeric:tabular-nums;white-space:nowrap}
.eg-tabela td.mono{font-variant-numeric:tabular-nums;font-weight:600}
.eg-tabela td.eg-desc{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.eg-tabela td.eg-env{color:var(--muted);font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.eg-tabela tr.eg-secao td{background:var(--surface-mute);color:var(--wine);font-size:10px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;padding:6px 10px}
.eg-tabela tr.eg-ajustado td{background:var(--wine-soft)}
.eg-tabela tr.eg-negativo td{color:var(--red)}
.eg-inp{width:88px;text-align:right;font:inherit;font-size:12.5px;font-variant-numeric:tabular-nums;padding:4px 6px;border:1px solid var(--line-strong);border-radius:4px;background:var(--white);color:var(--ink)}
.eg-inp:focus{outline:2px solid var(--wine-soft);border-color:var(--wine)}
.eg-inp:disabled{background:transparent;border-color:transparent;color:var(--faint)}
.eg-tabela tr.eg-ajustado .eg-inp{border-color:var(--wine);font-weight:600}
.eg-tag{display:inline-block;margin-left:6px;padding:0 5px;border-radius:3px;font-size:9px;font-weight:700;letter-spacing:.3px;text-transform:uppercase;background:var(--white);color:var(--wine);border:1px solid var(--wine)}
.eg-muted{color:var(--faint)}
.eg-rodape{position:sticky;bottom:0;z-index:5;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;background:var(--white);border:1px solid var(--line);border-top:2px solid var(--wine);border-radius:6px;padding:9px 14px;margin-top:-54px;box-shadow:0 -4px 12px var(--shadow)}
.eg-resumo{display:flex;gap:14px;flex-wrap:wrap;align-items:baseline;font-size:12.5px;font-variant-numeric:tabular-nums}
.eg-resumo b{color:var(--wine)}
.eg-rodape-acoes{display:flex;gap:8px}
.eg-rodape-acoes .btn{width:auto}
.eg-dialog{width:min(900px,94vw)}
#eg-dialog{display:flex;flex-direction:column}
#eg-dialog:not([open]){display:none}
#eg-dialog .drawer-head{flex:none}
#eg-dialog .eg-dlg-corpo{flex:1;min-height:0;overflow-y:auto}
.eg-prev td,.eg-prev th{padding:6px 9px;font-size:12px}
.eg-prev td{border-bottom:1px solid var(--line-soft)}
.eg-prev tr.eg-muted td{color:var(--faint)}
.eg-arqs{display:flex;gap:6px;flex-wrap:wrap}
.eg-arqs .btn{width:auto}
.eg-sku{border:0;background:none;padding:0;font:inherit;font-weight:600;color:var(--wine);cursor:pointer;text-decoration:underline;text-decoration-color:var(--line-strong);text-underline-offset:2px}
.pda-notas{margin-top:6px}.pda-notas summary{cursor:pointer;font-size:12px;color:var(--ink)}.pda-notas summary .desc{display:inline;margin-left:6px;color:var(--wine)}.pda-notas .table-scroll{margin-top:6px}.pda-notas td,.pda-notas th{padding:5px 8px;font-size:11.5px}

/* ==========================================================================
   CONSULTA DE PEDIDOS — ferramenta de consulta, não painel. A lista é a
   protagonista; totais e fontes são contexto em texto pequeno.
   Escala: título 22 · pedido no painel 18 · corpo 12.5 · rótulos 11.
   ========================================================================== */
.cped{--cped-r:6px}
.cped-head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin:2px 0 14px}
.cped-titulo h1{font-size:22px;font-weight:600;letter-spacing:-.3px;line-height:1.15}
.cped-titulo p{font-size:12.5px;color:var(--muted);margin-top:3px}
.cped-fontes{display:flex;align-items:center;gap:18px;font-size:11.5px;color:var(--muted);white-space:nowrap}
.cped-fonte{display:flex;flex-direction:column;align-items:flex-end;line-height:1.35}
.cped-fonte-nome{font-size:10.5px;font-weight:600;letter-spacing:.3px;text-transform:uppercase;color:var(--faint);display:flex;align-items:center;gap:5px}
.cped-fonte-nome::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--green)}
.cped-fonte.antiga .cped-fonte-nome::before{background:var(--amber)}
.cped-fonte.falha .cped-fonte-nome::before{background:var(--red)}
.cped-fonte.lendo .cped-fonte-nome::before{background:var(--blue)}
.cped-fonte-val{color:var(--ink)}
.cped-fonte-val small{color:var(--muted);font-size:11px}
.cped-btn-fontes{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 10px;border:1px solid var(--line);border-radius:var(--cped-r);background:var(--white);color:var(--ink);font:inherit;font-size:12px;cursor:pointer}
.cped-btn-fontes:hover{border-color:var(--line-strong);background:var(--hover)}
.cped-btn-fontes:disabled{color:var(--muted);cursor:default}

/* Busca: o elemento mais forte da página */
.cped-busca{display:flex;align-items:center;gap:10px;height:44px;padding:0 12px 0 14px;border:1px solid var(--line-strong);border-radius:8px;background:var(--white);color:var(--muted)}
.cped-busca:focus-within{border-color:var(--wine);box-shadow:0 0 0 3px color-mix(in srgb,var(--wine) 12%,transparent)}
.cped-busca input{flex:1;min-width:0;border:0;outline:0;background:transparent;color:var(--ink);font:inherit;font-size:15px}
.cped-busca input::placeholder{color:var(--faint)}
.cped-busca input::-webkit-search-cancel-button{cursor:pointer}
.cped-atalho{font:11px/1 Consolas,monospace;color:var(--faint);border:1px solid var(--line);border-radius:4px;padding:3px 6px;background:var(--surface-mute)}

/* Filtros: controles compactos em linha, sem aparência de formulário */
.cped-filtros{display:flex;flex-wrap:wrap;align-items:center;gap:6px 6px;margin:10px 0 0}
.cped-f{display:inline-flex;align-items:center;height:28px;border:1px solid var(--line);border-radius:var(--cped-r);background:var(--white);font-size:12px;overflow:hidden}
.cped-f>span{padding:0 2px 0 9px;color:var(--faint);white-space:nowrap}
.cped-f select{border:0;background:transparent;color:var(--ink);font:inherit;font-size:12px;height:26px;padding:0 6px 0 4px;max-width:160px;cursor:pointer;outline:0}
.cped-f:focus-within{border-color:var(--wine)}
.cped-f.ativo{border-color:color-mix(in srgb,var(--wine) 45%,var(--line));background:var(--wine-soft)}
.cped-f.ativo>span{color:var(--wine)}
.cped-f-uf select{max-width:70px}
.cped-periodo{display:inline-flex;align-items:center;gap:6px}
.cped-f-base{border-radius:var(--cped-r)}
.cped-seg{display:inline-flex;height:28px;border:1px solid var(--line);border-radius:var(--cped-r);overflow:hidden;background:var(--white)}
.cped-seg button{border:0;border-right:1px solid var(--line-soft);background:transparent;color:var(--muted);font:inherit;font-size:12px;padding:0 9px;cursor:pointer;white-space:nowrap}
.cped-seg button:last-child{border-right:0}
.cped-seg button:hover{color:var(--ink);background:var(--hover)}
.cped-seg button.ativo{background:var(--wine-soft);color:var(--wine);font-weight:600}
.cped-datas{display:inline-flex;align-items:center;gap:4px;height:28px;border:1px solid var(--line);border-radius:var(--cped-r);background:var(--white);padding:0 6px;font-size:12px;color:var(--faint)}
.cped-datas input{border:0;background:transparent;color:var(--ink);font:inherit;font-size:12px;width:112px;outline:0}
.cped-datas:focus-within{border-color:var(--wine)}
.cped-limpar{margin-left:auto;border:0;background:none;color:var(--muted);font:inherit;font-size:12px;padding:4px 2px;cursor:pointer;text-decoration:underline;text-decoration-color:transparent}
.cped-limpar:hover{color:var(--wine);text-decoration-color:currentColor}
.cped-limpar[hidden]{display:none}

/* Erro contextual */
.cped-erro{margin:10px 0 0;padding:8px 12px;border:1px solid var(--red-line);border-radius:var(--cped-r);background:var(--red-bg);color:var(--red);font-size:12.5px}
.cped-erro details{margin-top:4px;color:var(--muted);font-size:11.5px}
.cped-erro summary{cursor:pointer}

/* Resumo: uma linha de contexto, não indicadores */
.cped-resumo{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 0;margin:14px 0 8px;font-size:12.5px;color:var(--muted);min-height:18px}
.cped-resumo .it{white-space:nowrap}
.cped-resumo .it+.it::before{content:"·";margin:0 9px;color:var(--line-hard)}
.cped-resumo b{font-weight:600;color:var(--ink);font-variant-numeric:tabular-nums}
.cped-resumo abbr{text-decoration:none;cursor:help}
.cped-resumo .rot{color:var(--faint);font-size:11px;letter-spacing:.3px;text-transform:uppercase;margin-right:10px}
.cped-resumo .st{margin-left:auto;font-size:11.5px;color:var(--faint)}
.cped-resumo.carregando{opacity:.55}

/* Tabela */
.cped-tabela-wrap{border:1px solid var(--line);border-radius:8px;background:var(--white)}
.cped-tabela{width:100%;border-collapse:separate;border-spacing:0;table-layout:fixed;font-size:12.5px}
.cped-tabela col.w-ped{width:78px}.cped-tabela col.w-tipo{width:150px}.cped-tabela col.w-cli{width:auto}
.cped-tabela col.w-vend{width:128px}.cped-tabela col.w-data{width:76px}.cped-tabela col.w-st{width:104px}
.cped-tabela col.w-kg{width:84px}.cped-tabela col.w-val{width:112px}.cped-tabela col.w-nf{width:86px}
.cped-tabela th{position:sticky;top:0;z-index:2;background:var(--surface-mute);color:var(--faint);font-size:10.5px;font-weight:600;letter-spacing:.3px;text-transform:uppercase;text-align:left;padding:7px 8px;border-bottom:1px solid var(--line);white-space:nowrap}
.cped-tabela th:first-child{border-top-left-radius:8px}.cped-tabela th:last-child{border-top-right-radius:8px}
.cped-tabela td{padding:5px 8px;border-bottom:1px solid var(--line-soft);vertical-align:top;line-height:1.35;overflow:hidden;text-overflow:ellipsis}
.cped-tabela tbody tr:last-child td{border-bottom:0}
.cped-tabela .num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.cped-tabela tbody tr{cursor:pointer}
.cped-tabela tbody tr:hover td{background:var(--hover)}
.cped-tabela tbody tr.sel td{background:var(--wine-soft)}
.cped-tabela tbody tr.sel td:first-child{box-shadow:inset 3px 0 0 var(--wine)}
.cped-tabela tbody tr:focus-visible{outline:2px solid var(--wine);outline-offset:-2px}
.cped-tabela tbody.carregando{opacity:.5}
.cped-ped{font:600 12px/1.35 Consolas,"Cascadia Mono",monospace;color:var(--ink);letter-spacing:.2px}
.cped-cli-nome{display:block;font-weight:550;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cped-cli-cod{display:block;font-size:11px;color:var(--faint);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cped-cli-cod .cped-link{font:11px Consolas,monospace;color:var(--muted)}
.cped-cli-cod .cped-link:hover{color:var(--wine)}
.cped-vend{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--ink)}
.cped-data{white-space:nowrap;font-variant-numeric:tabular-nums;color:var(--ink)}
.cped-mudo{color:var(--faint)}
.cped-aviso{display:block;font-size:10.5px;color:var(--amber)}
.cped-sub{display:block;font-size:10.5px;color:var(--faint);font-weight:400;white-space:nowrap}
.cped-nf{font:11.5px/1.35 Consolas,monospace;white-space:nowrap;color:var(--ink)}
.cped-vazio td{padding:22px 12px!important;text-align:center;color:var(--muted);cursor:default;background:none!important}

/* Selos: pouca saturação, texto sempre explícito */
.cped-st{display:inline-block;padding:0 7px;border-radius:9px;font-size:11px;font-weight:550;line-height:18px;white-space:nowrap;border:1px solid var(--line);color:var(--muted);background:var(--surface-soft)}
.cped-st-prog{color:var(--blue);border-color:var(--blue-line);background:var(--blue-bg)}
.cped-st-parcial{color:var(--amber);border-color:var(--amber-line);background:var(--amber-bg)}
.cped-st-fat{color:var(--green);border-color:var(--green-line);background:var(--green-bg)}
.cped-st-saiu{color:var(--muted)}
.cped-tags{display:flex;flex-wrap:wrap;gap:3px}
.cped-tag{display:inline-block;padding:0 5px;border-radius:3px;font-size:10.5px;line-height:17px;border:1px solid var(--line);color:var(--muted);background:var(--white);white-space:nowrap}
.cped-tag-emp{color:var(--ink);font-weight:550}
.cped-tag-cold{color:var(--blue);border-color:var(--blue-line)}
.cped-tag-bonificacao{color:var(--amber);border-color:var(--amber-line)}
.cped-tag-degustacao{color:var(--blue);border-color:var(--blue-line)}
.cped-tag-devolucao{color:var(--red);border-color:var(--red-line)}
.cped-link{border:0;background:none;padding:0;font:inherit;color:var(--wine);cursor:pointer;text-decoration:underline;text-decoration-color:transparent}
.cped-link:hover{text-decoration-color:currentColor}

/* Rodapé da lista */
.cped-rodape{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:8px 2px 0;font-size:12px;color:var(--muted)}
.cped-pag{display:flex;align-items:center;gap:8px}
.cped-pag button,.cped-export button{height:26px;min-width:26px;padding:0 8px;border:1px solid var(--line);border-radius:5px;background:var(--white);color:var(--ink);font:inherit;font-size:12px;cursor:pointer}
.cped-pag button:hover:not(:disabled),.cped-export button:hover{background:var(--hover);border-color:var(--line-strong)}
.cped-pag button:disabled{color:var(--line-hard);cursor:default}
.cped-export{display:flex;align-items:center;gap:6px}

/* ---------------------------------------------------------- Painel do pedido */
.cped-drawer{position:fixed;inset:0 0 0 auto;margin:0;width:min(940px,64vw);max-width:none;height:100vh;max-height:100vh;padding:0;border:0;border-left:1px solid var(--line);border-radius:0;background:var(--white);color:var(--ink);box-shadow:-12px 0 32px -12px var(--shadow-strong);z-index:40}
.cped-drawer[open]{display:flex;flex-direction:column}
.cped-dh{flex:none;display:flex;justify-content:space-between;align-items:flex-start;gap:16px;padding:14px 18px 12px;border-bottom:1px solid var(--line)}
.cped-dh-linha1{display:flex;align-items:center;gap:10px}
.cped-dh h2{font-size:18px;font-weight:600;letter-spacing:-.2px}
.cped-dh h2 .cped-ped{font-size:17px}
.cped-dh-cliente{margin-top:4px;font-size:13.5px;line-height:1.4}
.cped-dh-cliente strong{font-weight:550}
.cped-dh-cliente .cod{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;font-size:11.5px;color:var(--muted);margin-top:1px}
.cped-dh-cliente .cod .mono{font-family:Consolas,monospace}
.cped-btn-cli{display:inline-flex;align-items:center;gap:4px;border:1px solid var(--line);border-radius:5px;background:var(--white);color:var(--wine);font:inherit;font-size:11.5px;padding:1px 7px;cursor:pointer}
.cped-btn-cli:hover{border-color:var(--wine)}
.cped-dh-acoes{display:flex;align-items:center;gap:4px}
.cped-nav,.cped-fechar{display:inline-grid;place-items:center;width:28px;height:28px;border:1px solid transparent;border-radius:6px;background:none;color:var(--muted);cursor:pointer}
.cped-nav:hover:not(:disabled),.cped-fechar:hover{background:var(--hover);border-color:var(--line);color:var(--ink)}
.cped-nav:disabled{color:var(--line-hard);cursor:default}
.cped-fechar{margin-left:6px}
.cped-nav-pos{font-size:11px;color:var(--faint);min-width:44px;text-align:center;font-variant-numeric:tabular-nums}
.cped-db{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:12px 18px 18px}
.cped-db:focus{outline:none}
.cped-explica{font-size:12px;color:var(--muted);margin:0 0 12px}
.cped-secao{margin-top:16px}
.cped-secao>h3{font-size:10.5px;font-weight:600;letter-spacing:.35px;text-transform:uppercase;color:var(--faint);margin:0 0 6px;display:flex;align-items:baseline;gap:8px}
.cped-secao>h3 small{font-size:11px;letter-spacing:0;text-transform:none;font-weight:400}

/* Dados gerais: grade compacta, rótulo sobre valor, sem cartões */
.cped-dados{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px 18px;margin:0;padding:10px 0 12px;border-bottom:1px solid var(--line-soft)}
.cped-dados div{min-width:0}
.cped-dados dt{font-size:11px;color:var(--faint);margin-bottom:1px}
.cped-dados dd{margin:0;font-size:12.5px;color:var(--ink);overflow:hidden;text-overflow:ellipsis}
.cped-dados dd .mono{font-family:Consolas,monospace;font-size:12px}
.cped-dados dd .cped-aviso{display:inline;margin-left:4px}

/* Métricas do pedido: faixa única com divisórias */
.cped-metricas{display:flex;flex-wrap:wrap;margin-top:12px;border:1px solid var(--line-soft);border-radius:6px;background:var(--surface-soft)}
.cped-metricas div{flex:1 1 0;min-width:108px;padding:7px 12px;border-right:1px solid var(--line-soft)}
.cped-metricas div:last-child{border-right:0}
.cped-metricas span{display:block;font-size:11px;color:var(--faint)}
.cped-metricas strong{display:block;font-size:14px;font-weight:600;font-variant-numeric:tabular-nums;color:var(--ink);white-space:nowrap}
.cped-metricas strong.zero{font-weight:400;color:var(--faint)}

/* Tabelas internas */
.cped-mini{width:100%;border-collapse:collapse;font-size:12px}
.cped-mini th{text-align:left;font-size:10.5px;font-weight:600;letter-spacing:.3px;text-transform:uppercase;color:var(--faint);padding:5px 8px;border-bottom:1px solid var(--line);white-space:nowrap;background:var(--surface-soft)}
.cped-mini td{padding:5px 8px;border-bottom:1px solid var(--line-soft);vertical-align:top;line-height:1.35}
.cped-mini tr:last-child td{border-bottom:0}
.cped-mini .num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.cped-mini .zero{color:var(--faint)}
.cped-mini-wrap{border:1px solid var(--line-soft);border-radius:6px;overflow:hidden}
.cped-prod{font-weight:500;color:var(--ink)}
.cped-prod-sku{display:flex;align-items:center;gap:6px;margin-top:1px;font-size:11px;color:var(--faint)}
.cped-prod-sku .cped-link{font:11px Consolas,monospace}
.cped-sit{font-size:11.5px;color:var(--muted);white-space:nowrap}
.cped-sit.aberto{color:var(--blue)}
.cped-dev td{color:var(--red)}

/* Linha do tempo compacta */
.cped-tl{list-style:none;margin:0;padding:0}
.cped-tl li{display:grid;grid-template-columns:84px 12px 1fr;align-items:baseline;font-size:12px;padding:2px 0}
.cped-tl time{color:var(--faint);font-variant-numeric:tabular-nums}
.cped-tl li::before{content:"";grid-column:2;grid-row:1;width:5px;height:5px;border-radius:50%;background:var(--line-hard);align-self:center}
.cped-tl li.fat::before{background:var(--green)}
.cped-tl li.dev::before{background:var(--red)}
.cped-tl time{grid-column:1;grid-row:1}
.cped-tl span{grid-column:3;grid-row:1;color:var(--ink)}
.cped-nota{margin-top:16px;padding-top:10px;border-top:1px solid var(--line-soft);font-size:11px;color:var(--faint);line-height:1.5}

@media (max-width:1500px){
  .cped-tabela col.w-tipo{width:122px}.cped-tabela col.w-vend{width:100px}.cped-tabela col.w-val{width:102px}
  .cped-f select{max-width:118px}.cped-f-uf select{max-width:64px}.cped-f-base select{max-width:none}
  .cped-tabela col.w-kg{width:82px}.cped-tabela col.w-data{width:68px}.cped-tabela col.w-st{width:98px}.cped-tabela col.w-nf{width:80px}
  .cped-tabela td,.cped-tabela th{padding-left:6px;padding-right:6px}
  .cped-drawer{width:min(900px,78vw)}
  .cped-dados{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (max-width:1250px){.cped-head{flex-direction:column;align-items:flex-start}.cped-fonte{align-items:flex-start}}
.cped-tabela th[data-ordem]{padding:0}
.cped-tabela th button{display:flex;align-items:center;gap:4px;width:100%;height:100%;padding:7px 8px;border:0;background:none;font:inherit;color:inherit;letter-spacing:inherit;text-transform:inherit;cursor:pointer;text-align:left}
.cped-tabela th.num button{justify-content:flex-end}
.cped-tabela th button:hover{color:var(--ink)}
.cped-seta{display:inline-block;width:8px;height:8px;flex:none;opacity:0}
.cped-tabela th button:hover .cped-seta{opacity:.35}
.cped-seta::before{content:"↕";font-size:10px;line-height:8px}
.cped-tabela th[aria-sort=ascending],.cped-tabela th[aria-sort=descending]{color:var(--wine)}
.cped-tabela th[aria-sort=ascending] .cped-seta,.cped-tabela th[aria-sort=descending] .cped-seta{opacity:1}
.cped-tabela th[aria-sort=ascending] .cped-seta::before{content:"↑"}
.cped-tabela th[aria-sort=descending] .cped-seta::before{content:"↓"}
@media (max-width:1500px){.cped-tabela th button{padding:7px 5px;letter-spacing:0}}
@media (max-width:1500px){.cped-filtros .cped-f:first-child select{max-width:158px}}

/* ==========================================================================
   ESTOQUE CRÍTICO — VISÃO OPERACIONAL (UX/UI PRIETO SÓBRIA & COMPACTA)
   Prioridade operacional: FIFO -> Indicadores -> Filtros -> Tabela ampliada.
   ========================================================================== */

/* Layout & Container */
.view-pda-container {
  display: flex;
  flex-direction: column;
  gap: 10px;
  animation: fadeIn 0.15s ease-out;
}

/* Header */
.pda-view-head {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 12px !important;
  padding: 0 0 8px 0 !important;
  margin-bottom: 0 !important;
  border-bottom: 1px solid var(--line-soft, #ebe7e1) !important;
}

.pda-title-wrap {
  display: flex;
  flex-direction: column;
  gap: 3px;
}

.pda-title {
  font-size: 19px !important;
  font-weight: 700 !important;
  color: var(--ink, #1e1b18) !important;
  letter-spacing: -0.01em !important;
  margin: 0 !important;
  line-height: 1.2 !important;
}

.pda-status-inline {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 11.5px;
  color: #635b54;
}

.pda-status-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #057a55;
  flex-shrink: 0;
}

.pda-status-text strong {
  font-weight: 600;
  color: #1e1b18;
}

.pda-status-sep {
  color: #c4bfb7;
}

.pda-status-sub {
  color: #79716b;
  font-size: 11px;
}

/* Ações */
.pda-acoes {
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
}

.btn-sm {
  height: 30px !important;
  padding: 0 12px !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  border-radius: 5px !important;
}

.btn-prieto-primary {
  background: var(--wine, #812529) !important;
  color: #ffffff !important;
  border: 1px solid #6b1d20 !important;
}

.btn-prieto-primary:hover {
  background: #6e1c20 !important;
}

.btn-prieto-secondary {
  background: #ffffff !important;
  color: #3b352f !important;
  border: 1px solid #d5cfc7 !important;
}

.btn-prieto-secondary:hover {
  background: #fbf9f6 !important;
  border-color: #beb5a7 !important;
}

/* Controls bar: Tabs on left, Expandable Technical details on right */
.pda-controls-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
}

.critical-tabs {
  display: inline-flex;
  background: #eeeae4;
  border-radius: 6px;
  padding: 2px;
  gap: 2px;
}

.pda-tab-btn {
  background: none;
  border: none;
  font-size: 11.5px;
  font-weight: 600;
  color: #635b54;
  padding: 4px 12px;
  border-radius: 4px;
  cursor: pointer;
  transition: all 0.12s ease;
}

.pda-tab-btn.active {
  background: #ffffff;
  color: #1e1b18;
  box-shadow: 0 1px 2px rgba(0,0,0,0.06);
}

/* Expandable Technical Details */
.pda-tech-details {
  position: relative;
}

.pda-tech-summary {
  font-size: 11.5px;
  font-weight: 500;
  color: #79716b;
  cursor: pointer;
  user-select: none;
  padding: 4px 8px;
  border-radius: 4px;
  border: 1px solid transparent;
  transition: all 0.12s;
  list-style: none;
}

.pda-tech-summary::-webkit-details-marker {
  display: none;
}

.pda-tech-summary:hover {
  color: #1e1b18;
  border-color: #dfdad2;
  background: #f9f7f4;
}

.pda-tech-panel {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  background: #fbf9f6;
  border: 1px solid #e7e3dc;
  border-radius: 6px;
  padding: 8px 12px;
  margin-top: 6px;
  font-size: 11.5px;
}

.pda-tech-item {
  display: flex;
  align-items: baseline;
  gap: 5px;
}

.pda-tech-lbl {
  color: #79716b;
  font-weight: 500;
}

.pda-tech-val {
  color: #1e1b18;
}

.pda-tech-val strong {
  font-weight: 600;
}

/* 4 Compact KPI Cards */
.pda-kpis-grid {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 10px !important;
  margin-bottom: 0 !important;
}

.pda-kpi-card {
  background: #ffffff;
  border: 1px solid #e5e1da;
  border-radius: 6px;
  padding: 8px 12px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  box-shadow: 0 1px 2px rgba(0,0,0,0.02);
  min-height: 72px;
}

.pda-kpi-lbl {
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: #635b54;
  line-height: 1.2;
}

.pda-kpi-val {
  font-size: 19px;
  font-weight: 700;
  line-height: 1.15;
  color: #1e1b18;
  font-variant-numeric: tabular-nums;
  margin: 2px 0 2px 0;
}

.pda-kpi-val small {
  font-size: 11px;
  font-weight: 500;
  color: #79716b;
}

.pda-kpi-sub {
  font-size: 10.5px;
  color: #79716b;
  line-height: 1.25;
  font-variant-numeric: tabular-nums;
  text-transform: none !important;
  font-style: normal !important;
  display: block;
}

.pda-kpi-danger {
  border-color: #fca5a5 !important;
  background: #fffcfc !important;
}

.pda-kpi-warn {
  border-color: #fde68a !important;
}

.text-danger {
  color: #c81e1e !important;
  font-weight: 600;
}

/* Filters Card: Compact & Dense */
.pda-filters-card {
  background: #ffffff !important;
  border: 1px solid #e5e1da !important;
  border-radius: 6px !important;
  padding: 8px 12px !important;
  margin-bottom: 0 !important;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.pda-filters-row {
  display: grid;
  grid-template-columns: 2fr 1.1fr 1fr 1.3fr 1.4fr;
  gap: 10px;
  align-items: flex-end;
}

.pda-field-wrap {
  display: flex;
  flex-direction: column;
  gap: 3px;
}

.pda-field-wrap label {
  font-size: 10px !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.03em !important;
  color: #635b54 !important;
  margin: 0 !important;
}

.pda-field-wrap input,
.pda-field-wrap select {
  height: 29px !important;
  border: 1px solid #d5cfc7 !important;
  border-radius: 4px !important;
  padding: 0 8px !important;
  font-size: 12px !important;
  color: #1e1b18 !important;
  background: #ffffff !important;
  box-sizing: border-box !important;
}

.pda-field-wrap input:focus,
.pda-field-wrap select:focus {
  border-color: var(--wine, #812529) !important;
  outline: none !important;
}

.pda-filters-checks {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
  padding-top: 6px;
  border-top: 1px solid #f4f1eb;
}

.pda-checks-group {
  display: flex;
  align-items: center;
  gap: 16px;
  flex-wrap: wrap;
}

.check-inline {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 11.5px;
  color: #4b453f;
  cursor: pointer;
  user-select: none;
}

.check-inline input[type="checkbox"] {
  margin: 0;
  accent-color: var(--wine, #812529);
}

.check-danger input:checked + span {
  color: #c81e1e;
  font-weight: 600;
}

.check-warn input:checked + span {
  color: #b45309;
  font-weight: 600;
}

.pda-btn-clear {
  background: none;
  border: none;
  font-size: 11px;
  color: #79716b;
  cursor: pointer;
  text-decoration: underline;
  padding: 0;
}

.pda-btn-clear:hover {
  color: var(--wine, #812529);
}

/* Table Card & Scroll */
.pda-table-card {
  background: #ffffff !important;
  border: 1px solid #e5e1da !important;
  border-radius: 6px !important;
  overflow: hidden !important;
  box-shadow: 0 1px 3px rgba(0,0,0,0.02) !important;
  display: flex;
  flex-direction: column;
}

.pda-table-card-head {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  padding: 7px 12px !important;
  background: #faf8f5 !important;
  border-bottom: 1px solid #ebe6df !important;
}

.pda-table-title-area {
  display: flex;
  align-items: center;
  gap: 8px;
}

.pda-table-title-area h2 {
  font-size: 12.5px !important;
  font-weight: 700 !important;
  color: #1e1b18 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.03em !important;
  margin: 0 !important;
}

.pda-count-pill {
  font-size: 11px !important;
  font-weight: 600 !important;
  color: #635b54 !important;
  background: #eeeae4 !important;
  border-radius: 10px !important;
  padding: 1px 7px !important;
  font-variant-numeric: tabular-nums !important;
}

.pda-table-hint {
  font-size: 10.5px;
  color: #9ca3af;
}

.pda-table-scroll {
  /* Give the table maximum vertical space without causing whole-page double-scroll */
  max-height: calc(100vh - 290px);
  min-height: 420px;
  overflow-y: auto;
  overflow-x: auto;
}

.pda-table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  font-size: 12px;
}

.pda-table thead th {
  background: #f7f4ef !important;
  color: #575048 !important;
  font-size: 10.5px !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.03em !important;
  padding: 7px 8px !important;
  border-bottom: 2px solid #ddd7cc !important;
  position: sticky;
  top: 0;
  z-index: 2;
  white-space: nowrap;
}

.pda-table thead th.ord {
  color: var(--wine, #812529) !important;
  border-bottom-color: var(--wine, #812529) !important;
}

.pda-table tbody tr {
  cursor: pointer;
}

.pda-table tbody tr:hover {
  background: #faf7f4 !important;
}

.pda-table tbody tr.pda-row-over {
  background: #fffcfc;
}

.pda-table tbody tr.pda-row-over:hover {
  background: #fef2f2 !important;
}

.pda-table td {
  padding: 5px 8px !important;
  border-bottom: 1px solid #f0ece6 !important;
  vertical-align: middle !important;
}

.pda-sku {
  font-family: var(--font-mono, Consolas, monospace);
  font-size: 12px;
  font-weight: 700;
  color: var(--wine, #812529);
}

.pda-table td .desc {
  display: block;
  font-size: 10.5px;
  color: #635b54;
  line-height: 1.2;
}

.pda-prazo.pda-prazo-critico {
  color: #c81e1e !important;
  font-weight: 700 !important;
}

.pda-prazo.pda-prazo-atencao {
  color: #b45309 !important;
  font-weight: 700 !important;
}

.desc-vend {
  display: block;
  max-width: 140px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  font-size: 11.5px;
  color: #4b453f;
}

/* Situation Pills */
.pill.sit-1-3, .pill.sit-13 {
  background: #fdf2f2 !important;
  color: #812529 !important;
  border: 1px solid #f8d3d6 !important;
  font-weight: 700 !important;
  padding: 2px 6px !important;
  border-radius: 4px !important;
  font-size: 10px !important;
}

.pill.sit-pda {
  background: #eff6ff !important;
  color: #1d4ed8 !important;
  border: 1px solid #bfdbfe !important;
  font-weight: 700 !important;
  padding: 2px 6px !important;
  border-radius: 4px !important;
  font-size: 10px !important;
}

.pill.sit-pdc {
  background: #faf5ff !important;
  color: #7e22ce !important;
  border: 1px solid #e9d5ff !important;
  font-weight: 700 !important;
  padding: 2px 6px !important;
  border-radius: 4px !important;
  font-size: 10px !important;
}

/* Details Dialog */
#pda-dialog {
  width: min(860px, 92vw);
  border-radius: 8px;
  border: 1px solid #d5cfc7;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.15);
  padding: 0;
}

#pda-dialog .drawer-head {
  padding: 14px 18px;
  background: #faf8f5;
  border-bottom: 1px solid #e7e3db;
}

#pda-dialog .pda-detail {
  padding: 14px 18px 20px;
}

.pda-detail-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 8px;
  margin-bottom: 14px;
}

.detail-metric {
  background: #ffffff;
  border: 1px solid #e7e3dc;
  border-radius: 6px;
  padding: 8px 10px;
}

.detail-metric span {
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  color: #79716b;
  display: block;
  margin-bottom: 2px;
}

.detail-metric strong {
  font-size: 15px;
  font-weight: 700;
  color: #1e1b18;
  font-variant-numeric: tabular-nums;
}

/* Responsividade */
@media (max-width: 900px) {
  .pda-kpis-grid {
    grid-template-columns: repeat(2, 1fr) !important;
  }
  .pda-filters-row {
    grid-template-columns: repeat(2, 1fr) !important;
  }
}

@media (max-width: 600px) {
  .pda-kpis-grid {
    grid-template-columns: 1fr !important;
  }
  .pda-filters-row {
    grid-template-columns: 1fr !important;
  }
  .pda-view-head {
    flex-direction: column !important;
    align-items: stretch !important;
  }
}
