/* WiTheX PDV | Executive Blue v1 - camada VISUAL isolada
   Sem alterações de negócio, permissões, cálculos ou armazenamento.
   Reversão: remover este arquivo e sua referência em index.html. */
:root {
  --bg: #f2f6fc;
  --panel: #ffffff;
  --panel-2: #f7faff;
  --line: #dfe7f2;
  --text: #142746;
  --muted: #64748b;
  --accent: #0d58bb;
  --accent-2: #247cf0;
  --success: #14855a;
  --danger: #d34252;
  --warning: #a76d13;
  --shadow: 0 8px 28px rgba(20, 47, 93, .055);
  --wx-navy: #06275b;
  --wx-navy-2: #0b438a;
  --wx-soft: #e9f2ff;
  --wx-deep: #122b50;
}
html,body { background:var(--bg); color:var(--text); }
body { font-size:14px; -webkit-font-smoothing:antialiased; }
:focus-visible { outline:2px solid #3985e8; outline-offset:2px; }
::selection { background:#bad7fe; color:#0c3166; }
.muted,.subtitle { color:var(--muted); }

/* Ação visual padronizada - sem trocar classe, valor ou evento. */
.btn { border-radius:10px; font-weight:750; transition:filter .12s ease,box-shadow .12s ease,background .12s ease; }
.btn-primary { color:#fff; background:linear-gradient(135deg,#0a4ba6,#1672e4); box-shadow:0 5px 12px rgba(23,99,193,.15); }
.btn-primary:hover:not(:disabled) { filter:brightness(1.07); box-shadow:0 7px 17px rgba(23,99,193,.22); }
.btn-ghost { color:#224676; border:1px solid #d2dfef; background:#fff; }
.btn-ghost:hover:not(:disabled) { border-color:#87b4ec; background:#f0f6ff; color:#0b4a9d; }
.btn-success { color:#fff; background:#16845b; }
.btn:disabled { box-shadow:none; }
button,input,textarea,select { accent-color:#0f65d3; }
input:not([type="checkbox"]):not([type="radio"]):not([type="range"]),
select,textarea,.modal-input,.discount-input,.scan-row input,
.payment-row input,.payment-row select,.parcelas-box select,
.products-search-box input,.stock-search-box input,.login-form input,
.stock-entry-row input,.stock-entry-row select {
  background:#fff; color:#183457; border-color:#cddbee;
}
input::placeholder,textarea::placeholder { color:#94a3b8; }
input:focus,textarea:focus,select:focus { border-color:#367bdb; box-shadow:0 0 0 3px rgba(36,124,240,.11); }
input:disabled,select:disabled,textarea:disabled { background:#f0f3f7; color:#758397; }
option { background:#fff; color:#153356; }

/* Tabelas com leitura melhor, sem trocar colunas. */
.table-wrap { border-radius:0 0 14px 14px; }
table th { color:#506583; background:#f2f6fc; font-size:11px; font-weight:800; letter-spacing:.025em; }
table td { color:#243953; }
tr:hover > td { background:rgba(234,243,255,.45); }
.empty-row td { color:#8294ad; }

/* Topbars: barra clara + identidade da loja preservada. */
.topbar,.admin-topbar,.users-topbar,.products-topbar,.stock-topbar,
.clients-admin-topbar,.finance-admin-topbar,.config-admin-topbar {
  background:rgba(255,255,255,.97); border-bottom:1px solid var(--line);
  box-shadow:0 2px 10px rgba(22,51,97,.035); min-height:80px;
}
.admin-topbar,.users-topbar,.products-topbar,.stock-topbar,
.clients-admin-topbar,.finance-admin-topbar,.config-admin-topbar { padding:11px 26px; }
.admin-brand-block,.users-brand-block,.products-brand-block,.stock-brand-block,
.clients-admin-brand,.finance-admin-brand,.config-admin-brand { gap:14px; }
.admin-logo,.users-logo,.products-logo,.stock-logo,.clients-admin-logo,
.finance-admin-logo,.config-admin-logo,.brand-logo {
  max-width:174px; width:auto; max-height:52px; height:auto;
}
.admin-brand-block > img,.users-brand-block > img,.products-brand-block > img,
.stock-brand-block > img,.clients-admin-brand > img,.finance-admin-brand > img,
.config-admin-brand > img,.topbar .brand {
  background:linear-gradient(135deg,#082c61,#0d4c92); border-radius:12px;
  padding:7px 12px; min-height:52px; max-width:200px;
}
.admin-brand-block h1,.users-brand-block h1,.products-brand-block h1,
.stock-brand-block h1,.clients-admin-brand h1,.finance-admin-brand h1,
.config-admin-brand h1 { font-size:21px; color:#132d53; font-weight:850; letter-spacing:-.025em; }
.admin-current-user strong,.users-current-user strong,.products-current-user strong,
.stock-current-user strong,.clients-admin-current-user strong,
.finance-admin-current-user strong,.config-admin-current-user strong { color:#143466; }
.admin-current-user span,.admin-current-user small,.users-current-user span,
.products-current-user span,.stock-current-user span,.clients-admin-current-user span,
.finance-admin-current-user span,.config-admin-current-user span { color:#74849a; }

/* Paineis internos: consistência na hierarquia e no espaçamento. */
:is(.users-page,.products-page,.stock-page,.clients-admin-page,.finance-admin-page,.config-admin-page) {
  width:min(1540px,calc(100% - 48px)); max-width:none; padding:27px 0 64px;
}
:is(.admin-heading,.users-heading,.products-heading,.stock-heading,
.clients-admin-heading,.finance-admin-heading,.config-admin-heading) h2 {
  color:#0b2854; font-size:27px; font-weight:850; letter-spacing:-.035em;
}
:is(.admin-heading,.products-heading,.stock-heading,.finance-admin-heading,
.clients-admin-heading,.config-admin-heading) p { color:#697e98; line-height:1.55; }
:is(.admin-eyebrow,.products-eyebrow,.stock-eyebrow,.finance-admin-eyebrow,
.clients-admin-eyebrow,.config-admin-eyebrow) { color:#2272d8; }

/* Reaproveita os cards funcionais existentes. */
:is(.admin-kpi-card,.admin-module-card,.users-summary-card,.users-card,
.products-kpi-card,.products-list-card,.stock-kpi-card,.stock-card,
.clients-admin-card,.finance-admin-account,.finance-admin-card,.config-admin-card,
.scan-card,.cart-card,.summary-card,.client-card,.payment-card) {
  border:1px solid #e0e9f5; background:#fff; box-shadow:var(--shadow);
  border-radius:16px;
}
:is(.admin-kpi-card,.products-kpi-card,.stock-kpi-card,.users-summary-card,
.finance-admin-account) { border-top:3px solid #dcecff; }
:is(.admin-kpi-card,.products-kpi-card,.stock-kpi-card,.users-summary-card,.finance-admin-account):hover {
  border-color:#b6d3fa;
}
:is(.admin-kpi-card,.products-kpi-card,.stock-kpi-card,.users-summary-card) > span,
:is(.admin-kpi-card,.products-kpi-card,.stock-kpi-card) > small { color:#617893; }
:is(.admin-kpi-card,.products-kpi-card,.stock-kpi-card,.users-summary-card) > strong,
.finance-admin-account strong { color:#0c2c60; font-variant-numeric:tabular-nums; }
:is(.admin-module-card,.users-card,.products-list-card,.stock-card,.finance-admin-card,.config-admin-card) {
  overflow:hidden;
}
:is(.products-list-toolbar,.stock-toolbar,.users-toolbar) { background:linear-gradient(#fff,#fcfdff); }
:is(.stock-tabs,.finance-admin-tabs,.config-finance-tabs) { border-color:var(--line); }
:is(.stock-tab,.finance-admin-tab,.config-finance-tab) { color:#486482; }
:is(.stock-tab.active,.finance-admin-tab.active,.config-finance-tab.active) {
  background:#e9f2ff; color:#1157b4; border-color:#b7d7ff;
}
.stock-row,.product-list-item,.stock-movement { border-color:#e5edf6; }
.stock-row:hover,.product-list-item:hover,.stock-movement:hover { background:#f7faff; }
.stock-row .stock-cost-summary { background:#eff6ff; border-color:#d9e9fa; }
.stock-cost-metric > strong { color:#183d6d; }
.stock-cost-metric > strong.stock-cost-unavailable { color:#768aa2; }
.stock-cost-warning { color:#9a6717; }
.finance-admin-note { color:#315c8e; background:#eef6ff; border-color:#d1e4fa; }

/* Painel inicial no estilo Executive Blue. */
.admin-shell { min-height:100vh; display:grid; grid-template-columns:244px minmax(0,1fr); grid-template-rows:auto minmax(0,1fr); }
.admin-shell > .wx-sidebar { grid-column:1;grid-row:1 / 3; }
.admin-shell > .admin-topbar { grid-column:2;grid-row:1; }
.admin-shell > .admin-page { grid-column:2;grid-row:2; width:min(1520px,calc(100% - 46px)); margin:0 auto; padding:30px 0 60px; min-width:0; }
.wx-sidebar {
  position:sticky;top:0;height:100vh;align-self:start;overflow-y:auto;
  padding:24px 12px 18px; color:#dbeafd;
  background:linear-gradient(155deg,#062554 0%,#083773 52%,#062a61 100%);
  display:flex;flex-direction:column;gap:21px;border-right:1px solid #074184;
}
.wx-brand { display:block;padding:2px 13px 16px;border-bottom:1px solid rgba(255,255,255,.15); }
.wx-brand-main { color:white;font-size:27px;font-weight:850;letter-spacing:-.055em;line-height:1.05;white-space:nowrap; }
.wx-brand-main em { font-style:normal;color:#65b6ff;letter-spacing:-.03em;font-weight:600;font-size:19px; }
.wx-brand-sub { display:block;margin-top:7px;font-size:9px;letter-spacing:.13em; color:#a8c6e9; }
.wx-nav { display:flex;flex-direction:column;gap:5px; }
.wx-nav-label { padding:0 12px;color:#8fb9e8;font-size:10px;font-weight:850;letter-spacing:.11em;text-transform:uppercase;margin-bottom:4px; }
.wx-nav-btn { display:flex;gap:13px;align-items:center;width:100%;padding:12px;border:1px solid transparent;border-radius:10px;color:#e0ecfa;background:transparent;font:inherit;font-weight:650;font-size:13px;text-align:left;transition:background .13s; }
.wx-nav-btn svg { width:18px;height:18px;flex:0 0 18px;stroke-width:1.9; }
.wx-nav-btn:hover { background:rgba(255,255,255,.1); }
.wx-nav-btn.is-active { background:linear-gradient(110deg,#1e69c2,#0c4f9e);border-color:rgba(137,194,255,.28);color:#fff;box-shadow:0 5px 14px rgba(0,20,66,.18); }
.wx-nav-btn[hidden] { display:none!important; }
.wx-sidebar-foot { margin-top:auto;padding:16px 12px 1px;border-top:1px solid rgba(255,255,255,.15);font-size:12px;color:#b3d4f8;line-height:1.6; }
.wx-sidebar-foot b { display:block;color:#fff;font-size:13px; }
.wx-online { display:flex;align-items:center;gap:8px;margin-top:9px;color:#bcf3d2;font-size:11px; }
.wx-online:before { content:'';height:8px;width:8px;border-radius:50%;background:#31d58a;box-shadow:0 0 0 3px rgba(49,213,138,.14); }
.admin-shell > .admin-topbar { min-width:0; }
.admin-shell > .admin-topbar .admin-logo { max-width:95px;max-height:38px; }
.admin-shell > .admin-topbar .admin-brand-block > img { min-height:44px;padding:5px 9px;max-width:115px; }
.admin-shell > .admin-topbar .admin-brand-block h1 { font-size:17px; }
.admin-shell > .admin-topbar .admin-brand-block span { font-size:11px; }
.admin-shell > .admin-topbar .admin-topbar-actions { flex-shrink:0; }
.admin-heading { margin:0 0 24px;align-items:center; }
.admin-heading h2 { font-size:32px;letter-spacing:-.04em; }
.admin-kpi-grid { grid-template-columns:repeat(3,minmax(0,1fr));gap:14px; }
.admin-kpi-card { min-height:120px;padding:20px 21px;border-top-width:1px;position:relative;justify-content:center; }
.admin-kpi-card::before { content:'';position:absolute;right:19px;top:17px;width:33px;height:33px;background:#e7f2ff;border-radius:10px; }
.admin-kpi-card:nth-child(2)::before { background:#e6f7ec; }
.admin-kpi-card:nth-child(3)::before { background:#fff0df; }
.admin-kpi-card:nth-child(4)::before { background:#f1eafd; }
.admin-kpi-card:nth-child(5)::before { background:#ffeaf0; }
.admin-kpi-card:nth-child(6)::before { background:#e8f3fa; }
.admin-kpi-card > span { color:#486784;font-size:12px;font-weight:700;padding-right:36px; }
.admin-kpi-card > strong { margin:9px 0 6px;font-size:30px;letter-spacing:-.04em; }
.admin-kpi-card > small { font-size:11px;line-height:1.5; }
.admin-section { margin-top:31px; }
.admin-section-title h2 { font-size:22px;color:#102d58;letter-spacing:-.025em; }
.admin-module-grid { grid-template-columns:repeat(4,minmax(0,1fr));gap:13px; }
.admin-module-card { min-height:226px;padding:17px;background:#fff;box-shadow:var(--shadow); }
.admin-module-card.available { border-color:#e1e9f4; }
.admin-module-icon { width:40px;height:40px;background:#e8f2ff;border:0;border-radius:11px;color:#0b5dbc;font-size:12px;margin-bottom:11px; }
.admin-module-card:nth-child(2) .admin-module-icon { background:#e8f8ec;color:#08764c; }
.admin-module-card:nth-child(3) .admin-module-icon { background:#fff2e2;color:#b76d0d; }
.admin-module-card:nth-child(4) .admin-module-icon { background:#f2edff;color:#7650be; }
.admin-module-content h3 { margin:7px 0 5px;font-size:16px;color:#183352; }
.admin-module-content p { color:#687d95;font-size:11px;line-height:1.55; }
.admin-module-status.ready { color:#11805a;background:#e6f7ef;border-color:#c9eedb; }
.admin-module-card > .btn { margin-top:12px;min-height:39px; }

/* Caixa operacional: mantém layout e botões já homologados. */
.topbar { padding:11px 26px; }
.topbar .brand-logo { height:49px;max-width:min(270px,35vw); }
.status-pill { background:#ecf8f2;border-color:#cdebdc;color:#176144; }
.operator { color:#123869; }
.layout { max-width:1620px; }
.scan-card { background:linear-gradient(140deg,#fff,#f9fbff); }
.scan-row input { background:#fff!important;border:1px solid #bed3ed!important; }
.summary-card { background:linear-gradient(150deg,#ffffff 35%,#edf5ff);border-top:3px solid #2375d9; }
.summary-total { color:#093c82; }
.cash-info div,.multi-summary div { background:#f4f8ff; }
.cart-card thead th { background:#edf4ff; }

/* Formulários, modais, cartões auxiliares. */
.modal { background:#fff;color:#172b4a;box-shadow:0 22px 75px rgba(17,46,95,.2); }
.modal-header,.modal-footer { border-color:#e2e9f3; }
.login-shell { background:radial-gradient(circle at 10% 9%,#d9eaff 0,transparent 33%),linear-gradient(125deg,#eaf3ff,#f8fbff); }
.login-card { background:#fff;border-color:#d6e5f7;box-shadow:0 22px 65px rgba(18,52,104,.12); }
.login-brand { padding:12px;border-radius:12px;background:linear-gradient(130deg,#092f65,#0b55a1); }
.login-error { background:#fff1f1;color:#a12834; }
.client-option { background:#f8fbff;border-color:#e0e9f6; }

/* Indicadores e relatórios que tinham cores claras fixas sobre fundo escuro. */
.cmv-relatorio,.dre-principal-shell,.dre-principal-economica,.dre-financeira-detalhes,
.rd-evolucao-card,.dre-ec-overflow,.cmv-tabela-container {
  background:#fff;border:1px solid #dae7f5;color:#173354;
}
.dre-principal-economica { background:#f9fbff; }
.dre-principal-kpi,.cmv-indicador { background:#fff;border-color:#dce6f3; }
.dre-principal-kpi strong,.cmv-indicador strong { color:#0d2e5e; }
.dre-principal-kpi small,.cmv-indicador small,.dre-principal-filtros label { color:#516a89; }
.dre-principal-kpi span,.cmv-indicador span { color:#6f8199; }
.dre-principal-cabecalho h2,.dre-principal-identidade h3,.cmv-cabecalho h2,
.rd-evolucao-cabecalho h3 { color:#0d2d57; }
.dre-principal-identidade p,.rd-evolucao-cabecalho p { color:#5c7089; }
.dre-principal-distintivo { color:#1359b1;background:#e8f3ff;border-color:#c5defa; }
.dre-financeira-detalhes>summary { color:#184272;background:#f1f7ff; }
.dre-financeira-detalhes>summary small,.dre-financeira-observacao { color:#657e9e; }
.dre-financeira-expansao,.dre-ec-detalhes summary { color:#1263c0; }
.dre-financeira-aviso { color:#684b19;background:#fff8eb; }
.dre-ec-tabela th,.cmv-tabela th { color:#476486;background:#f0f6fe; }
.dre-ec-tabela td,.cmv-tabela td { color:#213855; }
.dre-ec-tabela td small { color:#6e8199; }
.dre-ec-linha-destaque { background:#e8f3ff; }
.dre-ec-linha-destaque td { color:#0c356e; }
.dre-ec-aviso { color:#825c14;background:#fff8e8; }
.dre-ec-detalhes { color:#5d718c; }
.dre-ec-grupo strong,.dre-ec-conta b { color:#1b3b68; }
.dre-ec-conta { color:#58718c; }
.cmv-alerta { color:#167651;background:#ecf9f2; }
.cmv-alerta-pendente { color:#885b11;background:#fff8ea; }
.cmv-tabela-container h3 { border-color:#e4ebf3; }
.rd-evolucao-filtros label,.rd-evolucao-grafico { color:#526a88; }
.rd-evolucao-filtros select { color:#1b3c62; }
.rd-evolucao-tabela summary { color:#1763b8; }
.rd-evolucao-instrucao { color:#7e8da3; }

/* Dashboard de estoque já existente: traz as cores para o tema claro. */
.stock-dashboard .wd-kpi,.stock-dashboard .wd-card { background:#fff;border-color:#e0e9f5;box-shadow:var(--shadow); }
.stock-dashboard .wd-kpi strong,.stock-dashboard .wd-card h3,
.stock-dashboard .wd-donut-core strong { color:#103363; }
.stock-dashboard .wd-eyebrow,.stock-dashboard .wd-sub,.stock-dashboard .wd-kpi small,
.stock-dashboard .wd-filter-label,.stock-dashboard .wd-health-box small { color:#5a7490; }
.stock-dashboard .wd-donut-core { background:#fff; }
.stock-dashboard .wd-cat-row,.stock-dashboard .wd-bar-heading,
.stock-dashboard .wd-sub-bars-head { color:#1b385d; }
.stock-dashboard .wd-cat-percent,.stock-dashboard .wd-health-footer,
.stock-dashboard .wd-footnote,.stock-dashboard .wd-donut-core small { color:#617c98; }
.stock-dashboard .wd-cat-row { border-bottom-color:#e3ecf7; }
.stock-dashboard .wd-cat-row:hover,.stock-dashboard .wd-cat-row.wd-active,
.stock-dashboard .wd-bar-row:hover,.stock-dashboard .wd-bar-row.wd-active { background:#edf5ff; }
.stock-dashboard .wd-cat-row.wd-active .wd-cat-nome,
.stock-dashboard .wd-bar-row.wd-active .wd-bar-heading span { color:#0d4eaa; }
.stock-dashboard .wd-health-box,.stock-dashboard .wd-footnote { border-color:#e0e9f5; }
.stock-dashboard .wd-modos { border-color:#d3e2f4;background:#f6faff; }
.stock-dashboard .wd-modos button { color:#426483; }
.stock-dashboard .wd-modos button.active { background:#1e6cc7;color:#fff; }
.stock-dashboard .wd-sub-select { background:#fff;color:#17365d;border-color:#cdddf2; }
.stock-dashboard .wd-bar-track { background:#e8eff8; }
.stock-dashboard .wd-kpi.wd-unavailable strong { color:#7589a4; }

/* Alguns controles usam cores de texto ou fundo fixas na folha antiga. */
.finance-admin-shell,.stock-shell,.products-shell,.users-shell,.clients-admin-shell,.config-admin-shell { background:var(--bg); }
.stock-field label,.config-admin-card-header h3,.finance-admin-card h3 { color:#234166; }
.finance-admin-account-code { background:#e8f3ff;color:#21598c;border-color:#cfdef0; }
.stock-info-note,.stock-warning-note { color:#4d6582; }
.stock-info-note { background:#e9f5ff; }
.stock-warning-note { background:#fff9ec; }
.stock-state.ok { color:#137a54; }
.stock-state.low { color:#9b6813; }
.stock-state.zero { color:#be4b54; }

@media (max-width:1250px) {
  .admin-shell { grid-template-columns:218px minmax(0,1fr); }
  .admin-kpi-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .admin-module-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
}
@media (max-width:950px) {
  .admin-shell { grid-template-columns:1fr;grid-template-rows:auto auto 1fr; }
  .admin-shell > .wx-sidebar { grid-column:1;grid-row:1;position:relative;height:auto;padding:12px 16px;gap:8px; }
  .wx-brand { padding:0 3px 7px; }
  .wx-brand-main { font-size:20px; }
  .wx-brand-sub,.wx-sidebar-foot,.wx-nav-label { display:none; }
  .wx-nav { flex-direction:row;flex-wrap:wrap;gap:4px; }
  .wx-nav-btn { width:auto;padding:9px 11px;font-size:12px; }
  .wx-nav-btn svg { width:15px;height:15px;flex-basis:15px; }
  .admin-shell > .admin-topbar { grid-column:1;grid-row:2; }
  .admin-shell > .admin-page { grid-column:1;grid-row:3;width:calc(100% - 36px); }
}
@media (max-width:720px) {
  :is(.users-page,.products-page,.stock-page,.clients-admin-page,.finance-admin-page,.config-admin-page) { width:calc(100% - 24px); }
  .admin-kpi-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .admin-module-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .admin-shell > .admin-topbar { gap:9px; }
  .admin-shell > .admin-topbar .admin-logo { max-width:86px; }
  .wx-nav-btn { padding:8px 9px; }
}
@media (max-width:520px) {
  .admin-kpi-grid,.admin-module-grid { grid-template-columns:1fr; }
  .admin-shell > .admin-page { width:calc(100% - 24px); }
  .admin-shell > .admin-topbar .admin-topbar-actions { width:100%; }
  .wx-nav-btn { font-size:11px; }
}
@media (prefers-reduced-motion:reduce) { .btn,.wx-nav-btn { transition:none; } }

/* Regras do caixa 5.x usam seletores #appShell de maior especificidade. */
#appShell { background:var(--bg); }
#appShell .topbar {
  background:rgba(255,255,255,.985);border-bottom:1px solid #dbe6f5;
  box-shadow:0 3px 13px rgba(22,55,105,.055);color:#15365b;
}
#appShell .topbar .brand { background:linear-gradient(130deg,#082d62,#0b5198);padding:6px 12px; }
#appShell .brand-logo { max-height:53px; }
#appShell .summary-card {
  background:linear-gradient(140deg,#fff 24%,#edf5ff 100%);
  border-top:3px solid #2577d6;
}
#appShell .scan-card,#appShell .cart-card,#appShell .summary-card,
#appShell .client-card,#appShell .payment-card {
  box-shadow:0 6px 22px rgba(22,55,105,.065);
  border-color:#dfe8f4;
}
#appShell .summary-total { color:#103f84; }
#appShell .scan-row input:focus {box-shadow:0 0 0 3px rgba(36,124,240,.13);}
#appShell .table-wrap th { background:#edf4ff;color:#456482; }
#appShell .cash-info div { background:#f5f9ff;border-color:#e0eafa; }
#appShell .status-pill { background:#eef9f2;border-color:#d4ecdf; }


/* =============================================================
   WiTheX Executive Blue v2 | refinamentos de legibilidade
   SOMENTE APRESENTACAO. Nenhum evento/endpoint/regra alterado.
   ============================================================= */
:root {
  --wx-green-strong: #087a4a;
  --wx-red-strong: #c21c35;
}

/* Caixa: controles de quantidade de venda/troca precisam de alto contraste.
   O CSS anterior definia fundo escuro e herdava texto azul quase invisivel. */
#appShell .qty-control,
.qty-control {
  background: #fff;
  border: 1px solid #b5cce9;
  border-radius: 11px;
  box-shadow: 0 1px 3px rgba(14,57,108,.06);
  overflow: hidden;
  vertical-align: middle;
}
#appShell .qty-control > button,
.qty-control > button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 40px;
  width: 40px;
  height: 40px;
  min-height: 40px;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: #0d58bb !important;
  color: #fff !important;
  font-family: inherit;
  font-size: 23px;
  font-weight: 800;
  line-height: 1;
  opacity: 1;
  cursor: pointer;
  transition: background .15s ease, box-shadow .15s ease;
}
#appShell .qty-control > button:hover:not(:disabled),
.qty-control > button:hover:not(:disabled) {
  background: #08438f !important;
}
#appShell .qty-control > button:focus-visible,
.qty-control > button:focus-visible {
  outline: 3px solid #9ac8ff;
  outline-offset: -3px;
  position: relative;
  z-index: 1;
}
#appShell .qty-control > button:active:not(:disabled),
.qty-control > button:active:not(:disabled) {
  background: #062f69 !important;
}
#appShell .qty-control > button:disabled,
.qty-control > button:disabled {
  background: #8199b7 !important;
  color: #fff !important;
  opacity: 1;
  cursor: not-allowed;
}
#appShell .qty-control > span,
.qty-control > span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 46px;
  min-height: 40px;
  padding: 0 7px;
  background: #fff;
  color: #123a70;
  font-size: 17px;
  font-weight: 850;
  font-variant-numeric: tabular-nums;
}

/* Relatorios: os wrappers foram originalmente desenhados para o fundo dark.
   Reestiliza a superficie cinza sem precisar alterar o app.js. */
#relatoriosAdminShell #financeiroFluxoCaixaPanel > div,
#relatoriosAdminShell #financeiroReceitasDespesasPanel > div {
  background: #fff !important;
  color: #193858;
  border: 1px solid #dce7f5 !important;
  box-shadow: 0 9px 30px rgba(17,53,97,.065);
  border-radius: 17px !important;
}
#financeiroFluxoCaixaPanel h2,
#financeiroReceitasDespesasPanel h2 {
  color: #0d2f5a;
  font-weight: 850;
  letter-spacing: -.025em;
}
#financeiroFluxoCaixaPanel .muted,
#financeiroReceitasDespesasPanel .muted {
  color: #59728f;
}

/* Fluxo: KPIs brancos com contornos semitransparentes discretos. */
#financeiroFluxoResumo .finance-admin-account {
  min-height: 145px;
  border-radius: 14px;
  box-shadow: 0 4px 17px rgba(22,62,110,.04);
}
#financeiroFluxoResumo .finance-admin-account:nth-child(1) {
  background: #fff !important;
  border-color: #dbe6f5 !important;
}
#financeiroFluxoResumo .finance-admin-account:nth-child(2) {
  background: #f1faf5 !important;
  border-color: #a6dec1 !important;
}
#financeiroFluxoResumo .finance-admin-account:nth-child(3) {
  background: #fff4f5 !important;
  border-color: #edb9bf !important;
}
#financeiroFluxoResumo .finance-admin-account:nth-child(4) {
  background: #f2f7ff !important;
  border-color: #bad3f2 !important;
}
#financeiroFluxoResumo .finance-admin-account-name small {
  font-size: 12px;
  font-weight: 650;
  color: #59708b;
}
#financeiroFluxoResumo .finance-admin-account-balance {
  font-size: clamp(23px,2vw,32px);
  font-weight: 850;
  line-height: 1.25;
  letter-spacing: -.02em;
}
#financeiroFluxoResumo .finance-admin-account-detail {
  font-size: 11px;
  line-height: 1.4;
  color: #607692;
}
#financeiroFluxoResumo .finance-admin-account:nth-child(2) .finance-admin-account-balance {
  color: var(--wx-green-strong) !important;
}
#financeiroFluxoResumo .finance-admin-account:nth-child(3) .finance-admin-account-balance {
  color: var(--wx-red-strong) !important;
}

/* Fluxo: tabela de movimentacoes, antes com cabecalho cinza escuro. */
#financeiroFluxoConteudo > div:first-child {
  background: #fff;
  border: 1px solid #dbe6f2 !important;
  border-radius: 13px !important;
  box-shadow: 0 3px 14px rgba(21,57,105,.04);
}
#financeiroFluxoConteudo > div:first-child > div > div:first-child {
  background: #eaf2fd !important;
  color: #284e77;
  border-bottom: 1px solid #d3e2f3 !important;
  font-size: 12px;
  font-weight: 800 !important;
}
#financeiroFluxoConteudo > div:first-child > div > div:not(:first-child) {
  background: #fff;
  color: #233b57;
  border-bottom: 1px solid #e7edf5 !important;
}
#financeiroFluxoConteudo > div:first-child > div > div:nth-child(2n+3) {
  background: #f7faff;
}
#financeiroFluxoConteudo > div:first-child > div > div:not(:first-child):hover {
  background: #edf5ff;
}
#financeiroFluxoConteudo > div:first-child > div > div:not(:first-child) strong {
  color: #1d385c;
}

/* Cores financeiras fortes sobre o novo fundo claro.
   Restringe a cor herdada aos espacos financeiros, preservando o resto do PDV. */
#relatoriosAdminShell [style*="color:#86efac"],
#financeiroAdminShell [style*="color:#86efac"] {
  color: var(--wx-green-strong) !important;
}
#relatoriosAdminShell [style*="color:#fca5a5"],
#financeiroAdminShell [style*="color:#fca5a5"] {
  color: var(--wx-red-strong) !important;
}
#financeiroAdminShell .finance-admin-account > div [style*="color:#86efac"],
#financeiroAdminShell .finance-admin-account > div [style*="color:#fca5a5"] {
  font-weight: 850;
  font-size: 17px;
}
#financeiroAdminShell .finance-admin-kpis span,
#financeiroAdminShell .finance-admin-account-name small {
  color: #566f8f;
}

/* Report Receitas/Despesas: graficos e filtros num mesmo canvas claro. */
#financeiroReceitasDespesasPanel .rd-evolucao-card {
  border-color: #dce7f5;
  box-shadow: 0 5px 19px rgba(19,56,106,.04);
}
#financeiroReceitasDespesasPanel .rd-evolucao-filtros {
  color: #446281;
}

@media (max-width: 620px) {
  #appShell .qty-control > button, .qty-control > button {
    width: 38px; height: 40px; flex-basis: 38px;
  }
  #appShell .qty-control > span, .qty-control > span { min-width: 40px; }
  #financeiroFluxoResumo .finance-admin-account-balance { font-size: 25px; }
}


/* =============================================================
   WiTheX Executive Blue v3 | logos sem placa azul + avisos legiveis
   Somente CSS: sem mudancas em permissoes, operacoes ou validacao.
   ============================================================= */
/* A marca enviada por cada loja permanece intacta. Apenas a placa
   azul adicionada pelo Executive Blue deixa de envolver a imagem. */
#loginShell .login-brand {
  background: transparent !important;
  border: 0 !important;
  border-radius: 0;
  box-shadow: none;
  padding: 0 !important;
}
#loginShell .login-logo {
  background: transparent !important;
  border: 0 !important;
  border-radius: 0;
  padding: 0 !important;
  box-shadow: none;
  object-fit: contain;
}
#appShell .topbar .brand {
  background: transparent !important;
  border: 0 !important;
  border-radius: 0;
  padding: 0 !important;
  min-height: 0;
  max-width: none;
  box-shadow: none;
}
#appShell .topbar .brand-logo {
  background: transparent !important;
  border: 0 !important;
  border-radius: 0;
  padding: 0 !important;
  box-shadow: none;
  object-fit: contain;
}
/* O tema claro herdava textos escuros sobre fundo escuro no toast.
   Tratamos estados de erro e sucesso por classe, sem alterar showToast(). */
#toast.toast {
  background: #ffffff !important;
  color: #183457 !important;
  border: 1px solid #c5d9ef !important;
  box-shadow: 0 12px 32px rgba(17, 46, 92, .20);
  font-weight: 800;
  font-size: 14px;
  line-height: 1.5;
  padding: 14px 20px;
  text-wrap: pretty;
}
#toast.toast.error {
  background: #fff1f2 !important;
  border-color: #e77b89 !important;
  border-left: 5px solid #bf1d35 !important;
  color: #98152a !important;
}
#toast.toast.success {
  background: #edfaf3 !important;
  border-color: #80caa4 !important;
  border-left: 5px solid #09804e !important;
  color: #075e3e !important;
}
@media (max-width: 520px) {
  #toast.toast { padding: 12px 15px; font-size: 13px; }
}

/* WiTheX Executive Blue v5 | Somente a cor do botao Troca.
   O cabecalho do carrinho e Limpar venda mantem o estilo claro anterior. */
#appShell .cart-card > .section-header #trocaButton {
  background: #a66700 !important;
  color: #ffffff !important;
  border: 2px solid #ffd34d !important;
  box-shadow: 0 3px 10px rgba(255, 193, 7, .18);
  font-weight: 850;
}
#appShell .cart-card > .section-header #trocaButton:hover:not(:disabled) {
  background: #855400 !important;
  border-color: #ffe283 !important;
  color: #ffffff !important;
}
#appShell .cart-card > .section-header #trocaButton:focus-visible {
  outline: 3px solid #fff1b9;
  outline-offset: 2px;
}
