* { box-sizing: border-box; }

:root {
  --azul: #1367df;
  --azul-2: #0d56bb;
  --azul-escuro: #073b78;
  --azul-noite: #062f63;
  --azul-claro: #edf5ff;
  --azul-suave: #f5f9ff;
  --texto: #10233f;
  --texto-2: #314866;
  --cinza-texto: #71809a;
  --cinza-fundo: #f4f7fb;
  --borda: #dde6f1;
  --borda-2: #e9eef5;
  --verde: #138a52;
  --vermelho: #c43c4c;
  --amarelo: #a86200;
  --sombra: 0 10px 30px rgba(31, 71, 121, .08), 0 2px 6px rgba(31, 71, 121, .05);
  --sombra-forte: 0 22px 60px rgba(20, 71, 130, .12), 0 4px 14px rgba(20, 71, 130, .07);
}

html { min-height: 100%; background: var(--cinza-fundo); }
body {
  min-height: 100vh;
  margin: 0;
  color: var(--texto);
  background:
    radial-gradient(circle at 50% -120px, rgba(66, 143, 236, .13), transparent 34%),
    linear-gradient(180deg, #f9fbff 0%, var(--cinza-fundo) 72%);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
  line-height: 1.45;
  -webkit-font-smoothing: antialiased;
}

button, input, select { font: inherit; }
button { -webkit-tap-highlight-color: transparent; }
svg { width: 1em; height: 1em; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }

/* ==================== TOPO ==================== */
.topo {
  position: sticky;
  top: 0;
  z-index: 20;
  color: #fff;
  background: linear-gradient(105deg, #1268d9 0%, #0b4d9f 48%, #07356f 100%);
  box-shadow: 0 4px 22px rgba(5, 51, 108, .20);
}
.header-conteudo {
  width: min(1500px, calc(100% - 40px));
  min-height: 86px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: max-content 1fr max-content;
  align-items: center;
  gap: 36px;
}
.marca {
  color: #fff;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 13px;
  font-size: 1.22rem;
  font-weight: 780;
  letter-spacing: -.025em;
  white-space: nowrap;
}
.marca-icone {
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  border-radius: 13px;
  background: rgba(255,255,255,.16);
  border: 1px solid rgba(255,255,255,.18);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.16);
}
.marca-icone svg { width: 25px; height: 25px; }

nav {
  min-width: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
}
.aba-btn {
  height: 46px;
  border: 1px solid rgba(255,255,255,.06);
  border-radius: 12px;
  padding: 0 16px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  color: rgba(255,255,255,.91);
  background: rgba(255,255,255,.08);
  cursor: pointer;
  font-size: .87rem;
  font-weight: 650;
  white-space: nowrap;
  transition: transform .15s ease, background .15s ease, color .15s ease, box-shadow .15s ease;
}
.aba-btn:hover { background: rgba(255,255,255,.14); transform: translateY(-1px); }
.aba-btn.ativa {
  color: #0a58be;
  background: #fff;
  border-color: #fff;
  box-shadow: 0 7px 18px rgba(4, 42, 89, .18);
}
.nav-icone { display: grid; place-items: center; font-size: 1.12rem; }
.nav-icone svg { width: 19px; height: 19px; }

.acoes-topo {
  padding-left: 22px;
  border-left: 1px solid rgba(255,255,255,.18);
  display: flex;
  align-items: center;
  gap: 16px;
}
.usuario-topo {
  display: flex;
  align-items: center;
  gap: 10px;
}
.usuario-avatar {
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: rgba(255,255,255,.12);
  border: 1px solid rgba(255,255,255,.18);
}
.usuario-avatar svg { width: 19px; height: 19px; }
.usuario-texto { display: grid; line-height: 1.08; min-width: 58px; }
.usuario-texto strong { font-size: .88rem; }
.usuario-texto small { opacity: .72; font-size: .69rem; margin-top: 4px; }

/* ==================== ESTRUTURA ==================== */
main {
  width: min(1320px, calc(100% - 40px));
  margin: 36px auto 54px;
}
.aba.escondida { display: none; }

.painel {
  background: rgba(255,255,255,.97);
  border: 1px solid rgba(216, 226, 239, .88);
  border-radius: 18px;
  padding: 26px;
  margin-bottom: 22px;
  box-shadow: var(--sombra);
}
.painel-destaque { box-shadow: var(--sombra-forte); }
.painel-alerta-suave { border-color: #f0e5d5; }

.pagina-titulo {
  display: flex;
  gap: 15px;
  align-items: center;
  margin: 0 0 22px;
}
.pagina-titulo h1 { margin: 0; font-size: 1.55rem; letter-spacing: -.035em; }
.pagina-titulo p { margin: 4px 0 0; color: var(--cinza-texto); font-size: .9rem; }
.pagina-icone {
  width: 46px;
  height: 46px;
  border-radius: 14px;
  display: grid;
  place-items: center;
  background: var(--azul-claro);
  font-size: 1.15rem;
}

.painel-titulo {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 18px;
}
.painel h2 { margin: 2px 0 0; color: var(--texto); font-size: 1.06rem; letter-spacing: -.015em; }
.eyebrow { color: var(--azul); font-size: .68rem; font-weight: 800; letter-spacing: .11em; }
.tag {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 0 10px;
  border-radius: 999px;
  color: var(--azul-2);
  background: var(--azul-claro);
  font-size: .73rem;
  font-weight: 700;
}

/* ==================== PDV ==================== */
.pdv-layout {
  display: grid;
  grid-template-columns: 210px minmax(640px, 920px) 185px;
  justify-content: center;
  align-items: start;
  gap: 28px;
}
.pdv-painel { padding: 30px; border-radius: 20px; }
.painel-cabecalho { display: flex; align-items: center; gap: 14px; margin-bottom: 22px; }
.titulo-icone {
  width: 50px;
  height: 50px;
  display: grid;
  place-items: center;
  color: var(--azul);
  background: var(--azul-claro);
  border: 1px solid #dfebfa;
  border-radius: 14px;
}
.titulo-icone svg { width: 25px; height: 25px; }
.painel-cabecalho h1 { margin: 0; font-size: 1.5rem; letter-spacing: -.035em; }
.painel-cabecalho p { margin: 2px 0 0; color: var(--cinza-texto); font-size: .88rem; }

.chamada-lateral { color: #7e91af; }
.chamada-esquerda { padding-top: 80px; }
.chamada-esquerda .chamada-mini {
  display: inline-block;
  color: var(--azul);
  font-size: .68rem;
  font-weight: 850;
  letter-spacing: .12em;
  margin-bottom: 9px;
}
.chamada-esquerda h2 { color: #153361; margin: 0; font-size: 1.7rem; line-height: 1.14; letter-spacing: -.045em; }
.chamada-esquerda p { margin: 12px 0 0; font-size: .87rem; line-height: 1.65; }
.chamada-direita { padding-top: 310px; }
.mini-card {
  padding: 18px;
  border-left: 2px solid #c9dfff;
  display: grid;
  gap: 4px;
  font-size: .82rem;
}
.mini-card strong { color: #42648d; }
.mini-card-icone { width: 30px; height: 30px; margin-bottom: 5px; color: #82a7d6; }
.mini-card-icone svg { width: 28px; height: 28px; }

.campo-busca-wrap, .select-com-icone { position: relative; }
.campo-busca-wrap { margin-bottom: 8px; }
.campo-icone {
  position: absolute;
  left: 16px;
  top: 50%;
  transform: translateY(-50%);
  color: #6b84a8;
  pointer-events: none;
  display: grid;
  place-items: center;
}
.campo-icone svg { width: 20px; height: 20px; }
.campo-busca {
  width: 100%;
  height: 56px;
  padding-left: 48px !important;
  padding-right: 78px !important;
  border: 1.5px solid #b7cceb !important;
  box-shadow: 0 0 0 3px rgba(19,103,223,.055);
  font-size: 1rem !important;
}
.campo-busca:focus { border-color: #3b8cff !important; box-shadow: 0 0 0 4px rgba(47,133,255,.11); }
.atalho-enter {
  position: absolute;
  right: 13px;
  top: 50%;
  transform: translateY(-50%);
  padding: 4px 7px;
  color: #8797ae;
  background: #f4f7fb;
  border: 1px solid #e0e7f0;
  border-radius: 7px;
  font-size: .61rem;
  font-weight: 800;
  letter-spacing: .04em;
}
.dica-info { display: flex; align-items: center; gap: 7px; margin-bottom: 17px !important; }
.dica-info > span {
  width: 17px;
  height: 17px;
  display: inline-grid;
  place-items: center;
  flex: none;
  border: 1.4px solid #4b91ef;
  border-radius: 50%;
  color: #3180ea;
  font-size: .64rem;
  font-weight: 800;
}

.cliente-linha { display: grid !important; grid-template-columns: 1fr auto; gap: 14px !important; margin-bottom: 18px !important; }
.campo-cliente select, .pagamento-select select { width: 100%; padding-left: 48px; }
.checkbox-pill {
  min-height: 46px;
  padding: 0 3px 0 0;
  display: inline-flex;
  align-items: center;
  gap: 9px;
  color: var(--texto-2);
  background: transparent;
  border: none;
  border-radius: 10px;
  cursor: pointer;
  font-size: .87rem;
  font-weight: 600;
  white-space: nowrap;
}
.checkbox-pill input { position: absolute; opacity: 0; pointer-events: none; }
.checkbox-visual {
  width: 21px;
  height: 21px;
  border: 1.5px solid #c4d1e0;
  border-radius: 6px;
  background: #fff;
  position: relative;
  transition: .15s ease;
}
.checkbox-pill input:checked + .checkbox-visual { background: var(--azul); border-color: var(--azul); }
.checkbox-pill input:checked + .checkbox-visual::after {
  content: "";
  position: absolute;
  left: 6px;
  top: 2px;
  width: 5px;
  height: 10px;
  border: solid #fff;
  border-width: 0 2px 2px 0;
  transform: rotate(45deg);
}

.tabela-carrinho-wrap {
  min-height: 220px;
  border: 1px solid #e7edf5;
  border-radius: 13px;
  overflow: hidden;
  background: #fff;
}
.tabela-carrinho-wrap table { margin-top: 0; }
.estado-vazio {
  min-height: 178px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 5px;
  color: #8da0ba;
  text-align: center;
}
.estado-vazio strong { color: #7187a5; font-size: .87rem; }
.estado-vazio span:last-child { font-size: .78rem; }
.estado-vazio-icone {
  width: 44px;
  height: 44px;
  display: grid;
  place-items: center;
  margin-bottom: 4px;
  color: #c6d3e4;
}
.estado-vazio-icone svg { width: 36px; height: 36px; }

.rodape-venda { margin-top: 18px; padding-top: 17px; border-top: 1px solid #e7edf5; }
.total-linha {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 15px;
}
.total-label { display: inline-flex; align-items: center; gap: 10px; font-size: 1rem; font-weight: 750; }
.total-icone {
  width: 36px;
  height: 36px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: var(--azul-claro);
  color: var(--azul);
  font-size: .67rem;
  font-weight: 850;
}
.total-linha strong { color: #0d4389; font-size: 1.9rem; letter-spacing: -.04em; }
.pagamento-linha { display: grid !important; grid-template-columns: 1fr 260px; gap: 15px !important; margin: 0 !important; }
.btn-finalizar { min-height: 50px; font-size: .94rem !important; }
.btn-finalizar span { font-size: 1.15rem; }

/* ==================== CAMPOS E BOTÕES ==================== */
.linha { display: flex; gap: 12px; margin-bottom: 14px; align-items: center; flex-wrap: wrap; }
.linha input, .linha select { flex: 1; min-width: 180px; }
input, select {
  min-height: 46px;
  padding: 0 13px;
  border: 1.4px solid var(--borda);
  border-radius: 10px;
  color: var(--texto);
  background: #fff;
  font-size: .88rem;
  transition: border-color .15s ease, box-shadow .15s ease, background .15s ease;
}
input::placeholder { color: #8a97aa; }
input:hover, select:hover { border-color: #c8d5e5; }
input:focus, select:focus { outline: none; border-color: #6da6ee; box-shadow: 0 0 0 4px rgba(56,132,235,.085); }
select { cursor: pointer; }
.select-largo { width: min(520px, 100%); margin: 2px 0 16px; }

.form-grade { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 12px; }
.form-grade input, .form-grade select { width: 100%; }
.form-grade-3 { grid-template-columns: 1.4fr .8fr .9fr; }

.btn-primario {
  min-height: 46px;
  border: 0;
  border-radius: 10px;
  padding: 0 20px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  color: #fff;
  background: linear-gradient(180deg, #2479ea 0%, #0f62cf 100%);
  box-shadow: 0 7px 15px rgba(24,104,211,.18), inset 0 1px 0 rgba(255,255,255,.22);
  cursor: pointer;
  font-size: .88rem;
  font-weight: 750;
  transition: transform .15s ease, box-shadow .15s ease, filter .15s ease;
}
.form-grade > .btn-primario { grid-column: 1 / -1; justify-self: start; min-width: 190px; }
.btn-primario:hover { filter: brightness(1.035); box-shadow: 0 10px 22px rgba(24,104,211,.24), inset 0 1px 0 rgba(255,255,255,.22); transform: translateY(-1px); }
.btn-primario:active { transform: translateY(0); box-shadow: 0 4px 10px rgba(24,104,211,.16); }

/* ==================== TABELAS ==================== */
.tabela-wrap { width: 100%; overflow-x: auto; }
table { width: 100%; border-collapse: collapse; margin-top: 4px; font-size: .85rem; }
th, td { text-align: left; padding: 13px 12px; border-bottom: 1px solid #edf1f6; vertical-align: middle; }
th {
  color: #6e81a0;
  background: #f5f8fc;
  font-weight: 800;
  font-size: .67rem;
  text-transform: uppercase;
  letter-spacing: .055em;
}
thead th:first-child { border-radius: 9px 0 0 9px; }
thead th:last-child { border-radius: 0 9px 9px 0; }
tbody tr { transition: background .13s ease; }
tbody tr:hover { background: #f9fbfe; }
tbody tr:last-child td { border-bottom: 0; }
.qtd-input { min-height: 34px !important; height: 34px; border-radius: 8px !important; padding: 0 7px !important; }

button.link-btn {
  border: 0;
  border-radius: 7px;
  padding: 6px 9px;
  color: var(--azul-2);
  background: var(--azul-claro);
  cursor: pointer;
  font-size: .75rem;
  font-weight: 750;
  text-decoration: none;
}
button.link-btn:hover { background: #dfedff; }

/* ==================== TEXTOS / ESTADOS ==================== */
.mensagem { min-height: 1.1em; margin: 10px 0 0; font-size: .82rem; font-weight: 650; }
.mensagem.erro { color: var(--vermelho); }
.mensagem.sucesso { color: var(--verde); }
.dica { margin: 0 0 12px; color: var(--cinza-texto); font-size: .78rem; }
.dica-vazio { margin: 0; padding: 24px 0; text-align: center; color: var(--cinza-texto); font-size: .82rem; }

/* ==================== VASILHAMES ==================== */
.cards-grade { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px,1fr)); gap: 14px; }
.card-vasilhame {
  border: 1px solid #e3eaf3;
  border-radius: 14px;
  padding: 17px;
  background: linear-gradient(180deg, #fff 0%, #fbfdff 100%);
  box-shadow: 0 4px 13px rgba(28,71,121,.04);
}
.card-vasilhame h3 { margin: 0 0 13px; color: var(--texto); font-size: .94rem; }
.card-vasilhame .linha-metrica { display: flex; justify-content: space-between; gap: 10px; padding: 5px 0; color: #5d6f89; font-size: .79rem; }
.card-vasilhame .linha-metrica.total { margin-bottom: 5px; padding-bottom: 10px; border-bottom: 1px dashed #dce4ee; color: #334b69; font-weight: 750; }
.badge-cheio { color: var(--verde); font-weight: 700; }
.badge-emprestado { color: var(--amarelo); font-weight: 700; }
.badge-vazio { color: var(--cinza-texto); font-weight: 700; }

/* ==================== RECIBO ==================== */
#recibo-overlay {
  position: fixed;
  inset: 0;
  z-index: 50;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
  background: rgba(7, 22, 42, .62);
  backdrop-filter: blur(5px);
}
#recibo-overlay.escondida { display: none; }
#recibo {
  width: 330px;
  padding: 24px;
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 28px 70px rgba(0,0,0,.28);
  font-family: "Courier New", monospace;
}
#recibo h3 { margin-top: 0; text-align: center; }
#recibo hr { border: 0; border-top: 1px dashed #9aa4b3; }
.recibo-acoes { display: flex; gap: 8px; margin-top: 16px; }
.recibo-acoes button { flex: 1; min-height: 40px; border: 1px solid #dbe2ea; border-radius: 8px; background: #fff; cursor: pointer; font-family: inherit; }
.recibo-acoes button:first-child { color: #fff; background: var(--azul); border-color: var(--azul); }

/* ==================== RODAPÉ ==================== */
.rodape-site {
  width: min(1500px, calc(100% - 44px));
  margin: 0 auto;
  padding: 0 0 20px;
  display: flex;
  justify-content: space-between;
  gap: 20px;
  color: #8a99ad;
  font-size: .7rem;
}
.rodape-site b { margin: 0 5px; color: #b3bfd0; }

/* ==================== RESPONSIVO ==================== */
@media (max-width: 1240px) {
  .pdv-layout { grid-template-columns: minmax(0, 920px); }
  .chamada-lateral { display: none; }
  .header-conteudo { gap: 20px; }
  .usuario-topo { display: none; }
  .acoes-topo { padding-left: 16px; }
  .tema-toggle-texto { display: none; }
  .header-conteudo { grid-template-columns: max-content 1fr max-content; }
}

@media (max-width: 980px) {
  .topo { position: static; }
  .header-conteudo { width: calc(100% - 24px); min-height: auto; padding: 14px 0; grid-template-columns: 1fr max-content; gap: 12px; }
  nav { grid-column: 1 / -1; justify-content: flex-start; overflow-x: auto; padding-bottom: 2px; }
  .acoes-topo { padding-left: 0; border-left: 0; }
  .aba-btn { flex: 0 0 auto; }
  main { width: calc(100% - 24px); margin-top: 22px; }
}

@media (max-width: 720px) {
  .marca { font-size: 1.06rem; }
  .marca-icone { width: 38px; height: 38px; }
  .aba-btn { height: 42px; padding: 0 12px; font-size: .8rem; }
  .painel { padding: 18px; border-radius: 15px; }
  .pdv-painel { padding: 18px; }
  .painel-cabecalho h1 { font-size: 1.3rem; }
  .cliente-linha, .pagamento-linha { grid-template-columns: 1fr !important; }
  .checkbox-pill { min-height: 32px; }
  .form-grade, .form-grade-3 { grid-template-columns: 1fr; }
  .form-grade > .btn-primario { grid-column: 1; width: 100%; }
  .pagamento-linha .btn-primario { width: 100%; }
  .total-linha strong { font-size: 1.55rem; }
  .rodape-site { width: calc(100% - 24px); flex-direction: column; gap: 4px; }
  .atalho-enter { display: none; }
  .campo-busca { padding-right: 14px !important; }
}

@media print {
  body * { visibility: hidden; }
  #recibo, #recibo * { visibility: visible; }
  #recibo { position: absolute; top: 0; left: 0; width: 100%; box-shadow: none; }
  .recibo-acoes { display: none; }
}


/* ==================== ALTERNADOR DE TEMA ==================== */
.tema-toggle {
  min-height: 40px;
  padding: 0 10px 0 7px;
  border: 1px solid rgba(255,255,255,.16);
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: rgba(255,255,255,.94);
  background: rgba(255,255,255,.08);
  cursor: pointer;
  font-size: .74rem;
  font-weight: 720;
  white-space: nowrap;
  transition: background .18s ease, border-color .18s ease, transform .18s ease;
}
.tema-toggle:hover { background: rgba(255,255,255,.14); transform: translateY(-1px); }
.tema-toggle-trilho {
  width: 38px;
  height: 24px;
  padding: 2px;
  display: flex;
  align-items: center;
  border-radius: 999px;
  background: rgba(0,0,0,.20);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.08);
}
.tema-toggle-bola {
  width: 20px;
  height: 20px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  color: #0b57ba;
  background: #fff;
  box-shadow: 0 2px 6px rgba(0,0,0,.20);
  transition: transform .22s ease, color .22s ease, background .22s ease;
}
.tema-toggle-bola svg { grid-area: 1 / 1; width: 13px; height: 13px; }
.icone-sol { display: none; }

/* ==================== MODO DARK — PRETO + DOURADO ==================== */
html[data-theme="dark"] {
  color-scheme: dark;
  --azul: #d6a52b;
  --azul-2: #c79216;
  --azul-escuro: #8f6706;
  --azul-noite: #0a0a0b;
  --azul-claro: #241d0d;
  --azul-suave: #17140d;
  --texto: #f4f1e8;
  --texto-2: #d7d0bf;
  --cinza-texto: #9f9b90;
  --cinza-fundo: #090a0c;
  --borda: #2b2b2d;
  --borda-2: #222326;
  --verde: #4cc889;
  --vermelho: #ff6b78;
  --amarelo: #e2b33f;
  --sombra: 0 12px 34px rgba(0,0,0,.34), 0 2px 8px rgba(0,0,0,.22);
  --sombra-forte: 0 24px 70px rgba(0,0,0,.48), 0 4px 16px rgba(0,0,0,.28);
  background: #090a0c;
}
html[data-theme="dark"] body {
  color: var(--texto);
  background:
    radial-gradient(circle at 50% -140px, rgba(214,165,43,.10), transparent 34%),
    radial-gradient(circle at 10% 40%, rgba(214,165,43,.035), transparent 27%),
    linear-gradient(180deg, #0b0c0f 0%, #08090b 72%);
}
html[data-theme="dark"] .topo {
  color: #f7e8b5;
  background: linear-gradient(105deg, #050506 0%, #111114 55%, #090909 100%);
  border-bottom: 1px solid rgba(214,165,43,.30);
  box-shadow: 0 5px 24px rgba(0,0,0,.55);
}
html[data-theme="dark"] .marca { color: #f4df9e; }
html[data-theme="dark"] .marca-icone,
html[data-theme="dark"] .usuario-avatar {
  color: #e4b83f;
  background: rgba(214,165,43,.10);
  border-color: rgba(214,165,43,.26);
}
html[data-theme="dark"] .aba-btn {
  color: #d3cbb8;
  background: rgba(255,255,255,.035);
  border-color: rgba(214,165,43,.08);
}
html[data-theme="dark"] .aba-btn:hover {
  color: #f5dda0;
  background: rgba(214,165,43,.09);
}
html[data-theme="dark"] .aba-btn.ativa {
  color: #0b0b0c;
  background: linear-gradient(180deg, #e3b942 0%, #c99318 100%);
  border-color: #e1b33a;
  box-shadow: 0 8px 22px rgba(0,0,0,.36), 0 0 0 1px rgba(255,222,126,.12) inset;
}
html[data-theme="dark"] .acoes-topo { border-left-color: rgba(214,165,43,.22); }
html[data-theme="dark"] .tema-toggle {
  color: #ebd995;
  background: rgba(214,165,43,.08);
  border-color: rgba(214,165,43,.26);
}
html[data-theme="dark"] .tema-toggle:hover { background: rgba(214,165,43,.14); }
html[data-theme="dark"] .tema-toggle-trilho { background: #1b160a; box-shadow: inset 0 0 0 1px rgba(214,165,43,.25); }
html[data-theme="dark"] .tema-toggle-bola {
  transform: translateX(14px);
  color: #100d05;
  background: linear-gradient(180deg, #f0cb63 0%, #d6a52b 100%);
}
html[data-theme="dark"] .icone-lua { display: none; }
html[data-theme="dark"] .icone-sol { display: block; }

html[data-theme="dark"] .painel {
  background: linear-gradient(180deg, rgba(19,20,23,.98) 0%, rgba(14,15,17,.98) 100%);
  border-color: #292a2d;
  box-shadow: var(--sombra);
}
html[data-theme="dark"] .painel-destaque {
  border-color: rgba(214,165,43,.20);
  box-shadow: var(--sombra-forte), 0 0 0 1px rgba(214,165,43,.03) inset;
}
html[data-theme="dark"] .painel-alerta-suave { border-color: #43361a; }
html[data-theme="dark"] .pagina-icone,
html[data-theme="dark"] .titulo-icone,
html[data-theme="dark"] .total-icone,
html[data-theme="dark"] .tag,
html[data-theme="dark"] button.link-btn {
  color: #dfb444;
  background: #211b0d;
  border-color: #3b311a;
}
html[data-theme="dark"] .titulo-icone { border-color: #3b311a; }
html[data-theme="dark"] .chamada-lateral { color: #807b70; }
html[data-theme="dark"] .chamada-esquerda h2 { color: #e9dfc7; }
html[data-theme="dark"] .chamada-esquerda .chamada-mini,
html[data-theme="dark"] .eyebrow { color: #dfb444; }
html[data-theme="dark"] .mini-card { border-left-color: #5b4614; }
html[data-theme="dark"] .mini-card strong { color: #c9b77e; }
html[data-theme="dark"] .mini-card-icone { color: #a9852b; }

html[data-theme="dark"] input,
html[data-theme="dark"] select {
  color: #eee9dd;
  background: #101114;
  border-color: #303136;
}
html[data-theme="dark"] input::placeholder { color: #77766f; }
html[data-theme="dark"] input:hover,
html[data-theme="dark"] select:hover { border-color: #514526; }
html[data-theme="dark"] input:focus,
html[data-theme="dark"] select:focus {
  border-color: #c99a23;
  box-shadow: 0 0 0 4px rgba(214,165,43,.10);
}
html[data-theme="dark"] .campo-icone { color: #9f8c56; }
html[data-theme="dark"] .campo-busca {
  border-color: #4a3b17 !important;
  background: #0d0e10;
  box-shadow: 0 0 0 3px rgba(214,165,43,.045);
}
html[data-theme="dark"] .campo-busca:focus {
  border-color: #d6a52b !important;
  box-shadow: 0 0 0 4px rgba(214,165,43,.11), 0 8px 25px rgba(0,0,0,.24);
}
html[data-theme="dark"] .atalho-enter {
  color: #a99f84;
  background: #18181a;
  border-color: #303034;
}
html[data-theme="dark"] .dica-info > span {
  color: #dfb444;
  border-color: #b7891c;
}
html[data-theme="dark"] .checkbox-visual { background: #101114; border-color: #3a3b40; }
html[data-theme="dark"] .checkbox-pill input:checked + .checkbox-visual {
  background: #d6a52b;
  border-color: #d6a52b;
}
html[data-theme="dark"] .checkbox-pill input:checked + .checkbox-visual::after { border-color: #111; }

html[data-theme="dark"] .tabela-carrinho-wrap {
  background: #0d0e10;
  border-color: #26272a;
}
html[data-theme="dark"] th {
  color: #b7a97d;
  background: #171719;
}
html[data-theme="dark"] th,
html[data-theme="dark"] td { border-bottom-color: #242529; }
html[data-theme="dark"] tbody tr:hover { background: #151515; }
html[data-theme="dark"] .estado-vazio { color: #77756f; }
html[data-theme="dark"] .estado-vazio strong { color: #a7a091; }
html[data-theme="dark"] .estado-vazio-icone { color: #4b4639; }
html[data-theme="dark"] .rodape-venda { border-top-color: #28292c; }
html[data-theme="dark"] .total-linha strong { color: #e6bd4b; text-shadow: 0 0 24px rgba(214,165,43,.10); }

html[data-theme="dark"] .btn-primario {
  color: #141006;
  background: linear-gradient(180deg, #e2b845 0%, #c99016 100%);
  box-shadow: 0 8px 18px rgba(0,0,0,.34), inset 0 1px 0 rgba(255,239,184,.30);
}
html[data-theme="dark"] .btn-primario:hover {
  box-shadow: 0 11px 25px rgba(0,0,0,.42), 0 0 18px rgba(214,165,43,.08), inset 0 1px 0 rgba(255,239,184,.30);
}
html[data-theme="dark"] button.link-btn:hover { background: #30250e; }

html[data-theme="dark"] .card-vasilhame {
  border-color: #292a2d;
  background: linear-gradient(180deg, #141518 0%, #101113 100%);
  box-shadow: 0 5px 15px rgba(0,0,0,.20);
}
html[data-theme="dark"] .card-vasilhame .linha-metrica { color: #aaa397; }
html[data-theme="dark"] .card-vasilhame .linha-metrica.total {
  color: #ded5c2;
  border-bottom-color: #353331;
}
html[data-theme="dark"] .rodape-site { color: #65635e; }
html[data-theme="dark"] .rodape-site b { color: #8c7b4e; }

html[data-theme="dark"] #recibo-overlay { background: rgba(0,0,0,.78); }
html[data-theme="dark"] #recibo {
  color: #e9e3d6;
  background: #111214;
  border: 1px solid #383126;
  box-shadow: 0 28px 80px rgba(0,0,0,.62);
}
html[data-theme="dark"] #recibo hr { border-top-color: #5c5548; }
html[data-theme="dark"] .recibo-acoes button {
  color: #ddd6c7;
  background: #191a1d;
  border-color: #323337;
}
html[data-theme="dark"] .recibo-acoes button:first-child {
  color: #141006;
  background: #d6a52b;
  border-color: #d6a52b;
}

@media (max-width: 560px) {
  .tema-toggle { width: 40px; padding: 0; justify-content: center; }
  .tema-toggle-texto { display: none; }
}

/* ==================== IDENTIDADE NORTE PDV ==================== */
.marca-textos {
  display: grid;
  gap: 1px;
  line-height: 1;
}
.marca-nome {
  font-size: 1.28rem;
  font-weight: 790;
  letter-spacing: -.03em;
}
.marca-nome strong {
  color: #ffd45e;
  font-weight: 850;
}
.marca-textos small {
  margin-top: 5px;
  color: rgba(255,255,255,.66);
  font-size: .56rem;
  font-weight: 760;
  letter-spacing: .105em;
  text-transform: uppercase;
}
.marca-compasso {
  position: relative;
  border-radius: 50%;
}
.marca-compasso::before,
.marca-compasso::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: currentColor;
  box-shadow: 0 -25px 0 -1px currentColor, 0 25px 0 -1px currentColor;
  transform: translate(-50%, -50%);
  opacity: .7;
}
.marca-compasso::after {
  transform: translate(-50%, -50%) rotate(90deg);
}

.painel-cabecalho { position: relative; }
.assinatura-pdv {
  margin-left: auto;
  padding-left: 15px;
  border-left: 2px solid rgba(19,103,223,.22);
  display: grid;
  gap: 3px;
  color: var(--azul);
  font-size: .57rem;
  font-weight: 850;
  letter-spacing: .22em;
  line-height: 1.15;
}

.rodape-norte .rodape-marca {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  flex-wrap: wrap;
}
.rodape-norte .rodape-marca strong { color: var(--texto-2); }
.rodape-norte .rodape-marca small {
  flex-basis: 100%;
  margin-top: 2px;
  font-size: .58rem;
  font-weight: 720;
  letter-spacing: .13em;
  text-transform: uppercase;
}

/* ==================== BUSCA DO CATÁLOGO ==================== */
.painel-catalogo { overflow: hidden; }
.catalogo-titulo { align-items: center; }
.contador-produtos {
  min-height: 30px;
  padding: 0 11px;
  display: inline-flex;
  align-items: center;
  border: 1px solid var(--borda);
  border-radius: 999px;
  color: var(--texto-2);
  background: var(--azul-suave);
  font-size: .73rem;
  font-weight: 760;
  white-space: nowrap;
}
.catalogo-controles { margin: -2px 0 18px; }
.busca-catalogo-wrap {
  position: relative;
  max-width: 680px;
}
.busca-catalogo-wrap input {
  width: 100%;
  height: 50px;
  padding-left: 48px;
  padding-right: 82px;
  border-width: 1.5px;
  font-size: .9rem;
}
.busca-catalogo-wrap .campo-icone { color: var(--azul); }
.btn-limpar-busca {
  position: absolute;
  right: 9px;
  top: 50%;
  transform: translateY(-50%);
  min-height: 32px;
  padding: 0 10px;
  border: 1px solid var(--borda);
  border-radius: 8px;
  color: var(--cinza-texto);
  background: var(--azul-suave);
  cursor: pointer;
  font-size: .7rem;
  font-weight: 760;
  opacity: 0;
  pointer-events: none;
  transition: opacity .15s ease, background .15s ease, color .15s ease;
}
.btn-limpar-busca.visivel { opacity: 1; pointer-events: auto; }
.btn-limpar-busca:hover { color: var(--azul); background: var(--azul-claro); }
.estado-busca-vazia {
  min-height: 190px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4px;
  color: var(--cinza-texto);
  text-align: center;
}
.estado-busca-vazia.escondida { display: none; }
.estado-busca-vazia strong { color: var(--texto-2); font-size: .9rem; }
.estado-busca-vazia span:last-child { font-size: .77rem; }
.estado-busca-icone {
  width: 42px;
  height: 42px;
  margin-bottom: 5px;
  display: grid;
  place-items: center;
  border-radius: 12px;
  color: var(--azul);
  background: var(--azul-claro);
  font-size: 1.4rem;
}

/* acabamento da marca no modo dark */
html[data-theme="dark"] body::before {
  content: "";
  position: fixed;
  right: -150px;
  bottom: -175px;
  z-index: 0;
  width: 600px;
  height: 600px;
  border: 1px solid rgba(214,165,43,.09);
  border-radius: 50%;
  background:
    linear-gradient(45deg, transparent 49.8%, rgba(214,165,43,.07) 50%, transparent 50.2%),
    linear-gradient(-45deg, transparent 49.8%, rgba(214,165,43,.07) 50%, transparent 50.2%),
    radial-gradient(circle at center, transparent 0 26%, rgba(214,165,43,.05) 26.2% 26.5%, transparent 26.7% 45%, rgba(214,165,43,.04) 45.2% 45.5%, transparent 45.7%);
  pointer-events: none;
}
html[data-theme="dark"] body::after {
  content: "N";
  position: fixed;
  right: 112px;
  bottom: 355px;
  z-index: 0;
  color: rgba(214,165,43,.10);
  font-family: Georgia, serif;
  font-size: 4.2rem;
  line-height: 1;
  pointer-events: none;
}
html[data-theme="dark"] .topo,
html[data-theme="dark"] main,
html[data-theme="dark"] .rodape-site { position: relative; z-index: 1; }
html[data-theme="dark"] .marca-nome strong { color: #e7bd49; }
html[data-theme="dark"] .marca-textos small { color: rgba(218,190,105,.66); }
html[data-theme="dark"] .marca-compasso {
  color: #e3b640;
  box-shadow: 0 0 0 1px rgba(214,165,43,.15), 0 0 24px rgba(214,165,43,.06);
}
html[data-theme="dark"] .assinatura-pdv {
  color: #c99a23;
  border-left-color: rgba(214,165,43,.42);
}
html[data-theme="dark"] .contador-produtos {
  color: #d6c38b;
  background: #19160e;
  border-color: #38301d;
}
html[data-theme="dark"] .busca-catalogo-wrap input {
  background: #0d0e10;
  border-color: #39321f;
}
html[data-theme="dark"] .busca-catalogo-wrap input:focus {
  border-color: #d6a52b;
  box-shadow: 0 0 0 4px rgba(214,165,43,.10);
}
html[data-theme="dark"] .btn-limpar-busca {
  color: #a69a78;
  background: #181712;
  border-color: #373121;
}
html[data-theme="dark"] .btn-limpar-busca:hover {
  color: #efd36f;
  background: #25200f;
}
html[data-theme="dark"] .estado-busca-icone {
  color: #d6a52b;
  background: #201a0d;
}
html[data-theme="dark"] .rodape-norte .rodape-marca strong { color: #b89a48; }

@media (max-width: 720px) {
  .marca-textos small { display: none; }
  .assinatura-pdv { display: none; }
  .catalogo-titulo { align-items: flex-start; }
  .busca-catalogo-wrap { max-width: none; }
}

/* ======================================================================
   NORTE PDV 2.1 — Dashboard, caixa, vendas e componentes operacionais
   ====================================================================== */
.header-v2 {
  width: min(1780px, calc(100% - 30px));
  grid-template-columns: max-content minmax(0, 1fr) max-content;
  gap: 18px;
}
.principal-nav {
  justify-content: flex-start;
  overflow-x: auto;
  scrollbar-width: none;
  padding: 4px 2px;
}
.principal-nav::-webkit-scrollbar { display: none; }
.principal-nav .aba-btn { padding: 0 13px; height: 44px; font-size: .81rem; }
.acoes-v2 { gap: 9px; padding-left: 14px; }
.icon-action {
  width: 38px; height: 38px; display: grid; place-items: center;
  border: 1px solid rgba(255,255,255,.18); border-radius: 11px;
  color: #fff; background: rgba(255,255,255,.08); cursor: pointer; font-weight: 800;
}
.icon-action:hover { background: rgba(255,255,255,.15); }
.main-v2 { width: min(1420px, calc(100% - 36px)); }
.titulo-com-acao { position: relative; }
.titulo-com-acao > .btn-secundario { margin-left: auto; }

.btn-secundario, .btn-perigo, .btn-chip {
  min-height: 42px; padding: 0 15px; border-radius: 10px; border: 1px solid var(--borda);
  color: var(--texto-2); background: var(--azul-suave); cursor: pointer; font-weight: 720;
  transition: .16s ease;
}
.btn-secundario:hover, .btn-chip:hover { color: var(--azul); border-color: var(--azul); transform: translateY(-1px); }
.btn-perigo { color: #a62b37; border-color: rgba(196,60,76,.25); background: rgba(196,60,76,.07); }
.btn-perigo:hover { border-color: var(--vermelho); background: rgba(196,60,76,.12); }
.btn-largo { width: 100%; }
.btn-chip { min-height: 34px; padding: 0 10px; font-size: .72rem; }
.btn-chip b { margin-left: 5px; min-width: 20px; height: 20px; display: inline-grid; place-items: center; border-radius: 999px; background: var(--azul-claro); color: var(--azul); }

.metricas-grade {
  display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 16px; margin-bottom: 22px;
}
.metrica-card {
  min-height: 138px; padding: 21px; display: flex; flex-direction: column; justify-content: center;
  border-radius: 17px; border: 1px solid var(--borda); background: rgba(255,255,255,.97); box-shadow: var(--sombra);
}
.metrica-card > span { color: var(--cinza-texto); font-size: .78rem; font-weight: 720; }
.metrica-card strong { margin: 8px 0 5px; color: var(--texto); font-size: 1.7rem; letter-spacing: -.045em; }
.metrica-card small { color: var(--cinza-texto); font-size: .72rem; }
.metrica-destaque { border-color: rgba(19,103,223,.28); background: linear-gradient(145deg, var(--azul-suave), #fff); }
.dashboard-grid { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(320px,.75fr); gap: 22px; }
.dashboard-grid > .painel { min-width: 0; }

.grafico-barras {
  height: 245px; display: flex; align-items: flex-end; gap: 13px; padding: 34px 8px 2px; border-bottom: 1px solid var(--borda);
}
.barra-coluna { flex: 1; height: 100%; min-width: 38px; display: flex; flex-direction: column; justify-content: flex-end; align-items: center; gap: 7px; }
.barra { width: min(42px, 72%); min-height: 5px; border-radius: 8px 8px 3px 3px; background: linear-gradient(180deg,var(--azul),var(--azul-2)); box-shadow: 0 5px 15px rgba(19,103,223,.18); }
.barra-coluna > span { color: var(--cinza-texto); font-size: .67rem; text-transform: capitalize; }
.barra-valor { height: 16px; color: var(--texto-2); font-size: .58rem; font-weight: 700; white-space: nowrap; }

.resumo-lista { display: grid; gap: 0; margin-bottom: 16px; }
.resumo-lista > div, .detalhe-grid > div { display: flex; justify-content: space-between; gap: 14px; padding: 12px 0; border-bottom: 1px solid var(--borda-2); }
.resumo-lista span, .detalhe-grid span { color: var(--cinza-texto); font-size: .77rem; }
.resumo-lista strong, .detalhe-grid strong { color: var(--texto-2); font-size: .82rem; text-align: right; }
.estado-inline { padding: 18px; border: 1px dashed var(--borda); border-radius: 12px; color: var(--cinza-texto); text-align: center; }
.alertas-lista { display: grid; gap: 9px; }
.alerta-item { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 14px; border: 1px solid var(--borda-2); border-radius: 12px; background: var(--azul-suave); }
.alerta-item div { display: grid; gap: 3px; }
.alerta-item strong { font-size: .82rem; }
.alerta-item span { color: var(--cinza-texto); font-size: .7rem; }
.alerta-item > b { min-width: 38px; height: 32px; display: grid; place-items: center; border-radius: 9px; color: var(--amarelo); background: rgba(214,165,43,.10); }
.alerta-item > b.critico { color: var(--vermelho); background: rgba(196,60,76,.09); }

.status-badge { display: inline-flex; align-items: center; justify-content: center; min-height: 27px; padding: 0 9px; border-radius: 999px; border: 1px solid var(--borda); color: var(--cinza-texto); background: var(--azul-suave); font-size: .64rem; font-weight: 850; letter-spacing: .06em; white-space: nowrap; }
.status-aberto, .status-concluida { color: var(--verde); border-color: rgba(19,138,82,.25); background: rgba(19,138,82,.08); }
.status-fechado { color: var(--cinza-texto); }
.status-cancelada { color: var(--vermelho); border-color: rgba(196,60,76,.25); background: rgba(196,60,76,.08); }
.status-atencao { color: var(--amarelo); border-color: rgba(168,98,0,.22); background: rgba(168,98,0,.08); }

.form-vertical { display: grid; gap: 11px; }
.form-vertical input, .form-vertical select { width: 100%; }
.painel-perigo-suave { border-color: rgba(196,60,76,.16); }
.lista-simples { display: grid; gap: 8px; }
.lista-item { min-height: 57px; padding: 10px 13px; display: flex; align-items: center; justify-content: space-between; gap: 14px; border: 1px solid var(--borda-2); border-radius: 11px; background: var(--azul-suave); }
.lista-item > div:first-child { display: grid; gap: 3px; }
.lista-item strong { color: var(--texto-2); font-size: .8rem; }
.lista-item span { color: var(--cinza-texto); font-size: .69rem; }
.valor-negativo { color: var(--vermelho) !important; }
.valor-positivo { color: var(--verde) !important; }

.pdv-layout-v2 { grid-template-columns: minmax(700px, 980px); }
.cabecalho-acoes { margin-left: auto; display: flex; align-items: center; gap: 8px; }
.busca-com-camera .campo-busca { padding-right: 112px; }
.btn-camera { position: absolute; right: 7px; top: 7px; height: calc(100% - 14px); padding: 0 12px; border-radius: 9px; border: 1px solid var(--borda); color: var(--texto-2); background: var(--azul-suave); cursor: pointer; font-size: .72rem; font-weight: 750; }
.btn-camera:hover { color: var(--azul); border-color: var(--azul); }
.qtd-controle { display: inline-flex; align-items: center; border: 1px solid var(--borda); border-radius: 9px; overflow: hidden; }
.qtd-controle button { width: 30px; height: 32px; border: 0; color: var(--texto-2); background: var(--azul-suave); cursor: pointer; }
.qtd-controle input { width: 48px !important; height: 32px; padding: 0 3px; border: 0 !important; border-left: 1px solid var(--borda) !important; border-right: 1px solid var(--borda) !important; border-radius: 0 !important; text-align: center; box-shadow: none !important; }
.subtexto-tabela { display: block; margin-top: 3px; color: var(--cinza-texto); font-size: .65rem; font-weight: 500; }
.tag-mini { display: inline-flex; margin-left: 5px; padding: 2px 6px; border-radius: 6px; color: var(--azul); background: var(--azul-claro); font-size: .55rem; font-weight: 850; vertical-align: middle; }
.tag-erro { color: var(--vermelho); background: rgba(196,60,76,.08); }
.pdv-opcoes { margin-top: 16px; padding: 14px 0 4px; display: flex; align-items: flex-end; justify-content: space-between; gap: 18px; border-top: 1px solid var(--borda-2); }
.desconto-box { display: grid; grid-template-columns: auto 150px 105px; gap: 8px; align-items: center; }
.desconto-box label { color: var(--cinza-texto); font-size: .73rem; font-weight: 720; }
.desconto-box select, .desconto-box input { height: 40px; }
.resumo-venda-mini { display: flex; gap: 18px; color: var(--cinza-texto); font-size: .72rem; }
.resumo-venda-mini span { display: grid; gap: 2px; text-align: right; }
.resumo-venda-mini b { color: var(--texto-2); font-size: .8rem; }
.pagamento-linha { grid-template-columns: 1fr auto auto; }

.filtros-linha { display: flex; align-items: center; gap: 10px; margin-bottom: 17px; }
.filtros-linha > input, .filtros-linha > select { min-height: 44px; }
.filtros-linha > input { flex: 1; min-width: 190px; }
.filtros-linha .busca-catalogo-wrap { flex: 1; min-width: 260px; }
.estoque-badge { display: inline-grid; min-width: 37px; height: 29px; place-items: center; border-radius: 8px; color: var(--verde); background: rgba(19,138,82,.08); font-weight: 800; }
.estoque-badge.baixo { color: var(--amarelo); background: rgba(168,98,0,.09); }
.estoque-badge.zerado { color: var(--vermelho); background: rgba(196,60,76,.09); }
.celula-vazia { padding: 34px !important; color: var(--cinza-texto); text-align: center; }
.link-btn.perigo { color: var(--vermelho); }
.acoes-inline { display: flex !important; grid-auto-flow: column; gap: 6px !important; }

.overlay {
  position: fixed; inset: 0; z-index: 100; display: grid; place-items: center; padding: 24px;
  background: rgba(7,12,20,.72); backdrop-filter: blur(9px);
}
.overlay.escondida { display: none !important; }
.modal-card {
  width: min(560px, 96vw); max-height: 90vh; overflow: auto; padding: 24px;
  border: 1px solid var(--borda); border-radius: 18px; color: var(--texto); background: #fff; box-shadow: 0 30px 100px rgba(0,0,0,.32);
}
.modal-largo { width: min(850px, 96vw); }
.modal-media { width: min(680px, 96vw); }
.modal-topo { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin-bottom: 18px; }
.modal-topo h3 { margin: 2px 0 0; font-size: 1.2rem; }
.modal-fechar { width: 36px; height: 36px; border: 1px solid var(--borda); border-radius: 10px; color: var(--texto-2); background: var(--azul-suave); cursor: pointer; font-size: 1.2rem; }
.modal-acoes { display: flex; justify-content: flex-end; gap: 9px; margin-top: 18px; }
.modal-media video { width: 100%; min-height: 260px; max-height: 55vh; object-fit: cover; border-radius: 13px; background: #08090b; }
.separador { height: 1px; background: var(--borda); margin: 20px 0; }
.ajuste-rapido { display: grid; grid-template-columns: 160px 1fr auto; gap: 10px; align-items: end; }
.ajuste-rapido h4 { grid-column: 1 / -1; margin: 0; }
.detalhe-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0 18px; margin-bottom: 18px; }
.resumo-detalhe { margin-top: 16px; display: grid; justify-items: end; gap: 5px; }
.resumo-detalhe span { color: var(--cinza-texto); font-size: .75rem; }
.resumo-detalhe span b { color: var(--texto-2); margin-left: 18px; }
.resumo-detalhe > strong { margin-top: 5px; color: var(--azul); font-size: 1.3rem; }
.aviso-cancelamento { padding: 11px 13px; border-radius: 10px; color: var(--vermelho); background: rgba(196,60,76,.08); }

.recibo-v2 { width: min(500px,96vw) !important; }
.recibo-item { padding: 10px 0; display: grid; grid-template-columns: 1fr auto; border-bottom: 1px dashed var(--borda); }
.recibo-item small { grid-column: 1 / -1; color: var(--cinza-texto); }
.recibo-resumo { margin-top: 15px; display: grid; gap: 7px; }
.recibo-resumo p { margin: 0; display: flex; justify-content: space-between; }
.recibo-resumo #recibo-total { padding-top: 10px; border-top: 1px solid var(--borda); font-size: 1.15rem; }
.recibo-acoes { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 18px; }
.recibo-acoes button { flex: 1; min-width: 100px; }

/* DARK para componentes 2.0 */
html[data-theme="dark"] .icon-action { color:#d9bd6d; background:rgba(214,165,43,.06); border-color:rgba(214,165,43,.2); }
html[data-theme="dark"] .icon-action:hover { background:rgba(214,165,43,.12); }
html[data-theme="dark"] .metrica-card,
html[data-theme="dark"] .modal-card { background: linear-gradient(180deg,#141518,#101113); border-color:#292a2d; }
html[data-theme="dark"] .metrica-destaque { background: linear-gradient(145deg,#1b170d,#111214); border-color:#4b3a14; }
html[data-theme="dark"] .metrica-card strong { color:#f3ead5; }
html[data-theme="dark"] .btn-secundario,
html[data-theme="dark"] .btn-chip,
html[data-theme="dark"] .btn-camera,
html[data-theme="dark"] .modal-fechar { color:#cabd94; background:#171719; border-color:#323236; }
html[data-theme="dark"] .btn-secundario:hover,
html[data-theme="dark"] .btn-chip:hover,
html[data-theme="dark"] .btn-camera:hover { color:#efcd64; border-color:#7d6221; background:#201b0e; }
html[data-theme="dark"] .btn-chip b { background:#2a210d; color:#e0b33d; }
html[data-theme="dark"] .btn-perigo { color:#ff8490; border-color:#553038; background:#201315; }
html[data-theme="dark"] .barra { background:linear-gradient(180deg,#e1b747,#b9800e); box-shadow:0 7px 18px rgba(214,165,43,.12); }
html[data-theme="dark"] .alerta-item,
html[data-theme="dark"] .lista-item { background:#111214; border-color:#292a2d; }
html[data-theme="dark"] .estado-inline { border-color:#39332a; }
html[data-theme="dark"] .qtd-controle { border-color:#333439; }
html[data-theme="dark"] .qtd-controle button { color:#c8ba8e; background:#171719; }
html[data-theme="dark"] .qtd-controle input { border-color:#333439 !important; background:#101114; }
html[data-theme="dark"] .tag-mini { color:#e3b640; background:#211b0d; }
html[data-theme="dark"] .tag-erro { color:#ff7b87; background:#251317; }
html[data-theme="dark"] .estoque-badge { color:#63d99c; background:#102019; }
html[data-theme="dark"] .estoque-badge.baixo { color:#e3b640; background:#211b0d; }
html[data-theme="dark"] .estoque-badge.zerado { color:#ff7380; background:#241316; }
html[data-theme="dark"] .overlay { background:rgba(0,0,0,.79); }
html[data-theme="dark"] .recibo-item { border-bottom-color:#343438; }
html[data-theme="dark"] .resumo-detalhe > strong { color:#e3b640; }

@media (max-width: 1250px) {
  .header-v2 { grid-template-columns: max-content 1fr max-content; }
  .usuario-texto { display:none; }
  .principal-nav .aba-btn { padding:0 10px; }
  .dashboard-grid { grid-template-columns:1fr; }
}
@media (max-width: 980px) {
  .header-v2 { display:flex; gap:12px; min-height:76px; }
  .marca-textos small { display:none; }
  .principal-nav { order:3; flex:1; }
  .acoes-v2 { border-left:0; padding-left:0; }
  .metricas-grade { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .pdv-layout-v2 { grid-template-columns:1fr; }
  .filtros-linha { flex-wrap:wrap; }
}
@media (max-width: 680px) {
  .header-v2 { width:calc(100% - 18px); }
  .marca-textos { display:none; }
  .marca-icone { width:38px;height:38px; }
  .acoes-v2 .usuario-topo { display:none; }
  .main-v2 { width:calc(100% - 18px); margin-top:18px; }
  .metricas-grade { grid-template-columns:1fr; }
  .metrica-card { min-height:108px; }
  .pdv-painel { padding:18px; }
  .cabecalho-acoes { width:100%; margin-left:0; margin-top:10px; }
  .painel-cabecalho { flex-wrap:wrap; }
  .pdv-opcoes { align-items:stretch; flex-direction:column; }
  .desconto-box { grid-template-columns:1fr 1fr; }
  .desconto-box label { grid-column:1/-1; }
  .resumo-venda-mini { justify-content:space-between; }
  .pagamento-linha { display:grid; grid-template-columns:1fr; }
  .pagamento-linha > * { width:100%; }
  .ajuste-rapido { grid-template-columns:1fr; }
  .detalhe-grid { grid-template-columns:1fr; }
  .grafico-barras { gap:5px; }
  .barra-valor { display:none; }
}

@media print {
  body * { visibility:hidden !important; }
  #recibo-overlay, #recibo-overlay * { visibility:visible !important; }
  #recibo-overlay { position:static !important; display:block !important; background:#fff !important; padding:0 !important; }
  #recibo { width:80mm !important; max-height:none !important; overflow:visible !important; box-shadow:none !important; border:0 !important; color:#000 !important; background:#fff !important; margin:0 auto; }
  .recibo-acoes, .modal-fechar { display:none !important; }
}


/* ======================================================================
   NORTE PDV 2.1 — acabamento visual, atalhos, produtos e notificações
   ====================================================================== */
.aba:not(.escondida) { animation: abaEntrando .22s ease both; }
@keyframes abaEntrando { from { opacity:0; transform:translateY(5px); } to { opacity:1; transform:none; } }

.pagina-icone-svg svg { width:23px; height:23px; }
.btn-icone-texto { display:inline-flex; align-items:center; justify-content:center; gap:8px; }
.btn-icone-texto svg { width:16px; height:16px; }
.btn-icone-texto.carregando svg { animation:girar .7s linear infinite; }
@keyframes girar { to { transform:rotate(360deg); } }

.dashboard-boas-vindas {
  margin-bottom:18px; display:flex; align-items:center; justify-content:space-between; gap:20px;
}
.dashboard-titulo { margin:0; }
.dashboard-operacao { display:flex; align-items:center; justify-content:flex-end; gap:12px; }
.operacao-info { padding-right:14px; border-right:1px solid var(--borda); display:grid; gap:2px; text-align:right; }
.operacao-info span { color:var(--cinza-texto); font-size:.68rem; }
.operacao-info strong { color:var(--texto-2); font-size:.82rem; }

.acoes-rapidas { padding:17px 18px; display:flex; align-items:center; gap:22px; }
.acoes-rapidas-texto { min-width:190px; display:grid; gap:2px; }
.acoes-rapidas-texto > strong { color:var(--texto); font-size:.95rem; }
.acoes-rapidas-texto > small { color:var(--cinza-texto); font-size:.68rem; }
.acoes-rapidas-botoes { flex:1; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; }
.acao-rapida {
  min-height:72px; padding:10px 12px; border:1px solid var(--borda); border-radius:13px;
  display:grid; grid-template-columns:36px 1fr; grid-template-rows:auto auto; column-gap:10px; align-items:center;
  color:var(--texto-2); background:var(--azul-suave); cursor:pointer; text-align:left; transition:.16s ease;
}
.acao-rapida:hover { transform:translateY(-2px); border-color:var(--azul); box-shadow:var(--sombra); }
.acao-rapida > span { grid-row:1/3; width:36px; height:36px; display:grid; place-items:center; border-radius:10px; color:var(--azul); background:var(--azul-claro); }
.acao-rapida > span svg { width:18px; height:18px; }
.acao-rapida b { align-self:end; font-size:.78rem; }
.acao-rapida small { align-self:start; color:var(--cinza-texto); font-size:.63rem; }
.acao-rapida.acao-destaque { border-color:rgba(19,103,223,.22); background:linear-gradient(145deg,var(--azul-suave),rgba(255,255,255,.82)); }

.metricas-dashboard { grid-template-columns:repeat(6,minmax(0,1fr)); }
.metrica-com-icone { min-height:126px; padding:18px; display:grid; grid-template-columns:36px 1fr; gap:12px; align-items:center; }
.metrica-com-icone > div { min-width:0; display:flex; flex-direction:column; }
.metrica-com-icone .metrica-icone { width:36px; height:36px; display:grid; place-items:center; border-radius:11px; color:var(--azul); background:var(--azul-claro); }
.metrica-com-icone .metrica-icone svg { width:18px; height:18px; }
.metrica-com-icone strong { font-size:1.43rem; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }

.produto-resumo-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; margin-bottom:18px; }
.produto-resumo-card { min-height:92px; padding:15px 17px; display:flex; flex-direction:column; justify-content:center; border:1px solid var(--borda); border-radius:14px; background:rgba(255,255,255,.94); box-shadow:var(--sombra); }
.produto-resumo-card span { color:var(--cinza-texto); font-size:.7rem; font-weight:720; }
.produto-resumo-card strong { margin:4px 0 1px; color:var(--texto); font-size:1.24rem; letter-spacing:-.025em; }
.produto-resumo-card small { color:var(--cinza-texto); font-size:.62rem; }
.filtros-produtos > select { min-width:150px; }
.busca-catalogo-wrap .campo-icone svg { width:17px; height:17px; }
.atalho-busca { position:absolute; right:70px; top:50%; transform:translateY(-50%); min-width:24px; height:24px; display:grid; place-items:center; border:1px solid var(--borda); border-radius:6px; color:var(--cinza-texto); background:var(--azul-suave); font-size:.68rem; box-shadow:none; pointer-events:none; }
.btn-limpar-busca.visivel + .atalho-busca { display:none; }
.filtros-chips { margin:-4px 0 16px; display:flex; flex-wrap:wrap; gap:7px; }
.filtro-chip { min-height:31px; padding:0 10px; display:inline-flex; align-items:center; gap:6px; border:1px solid var(--borda); border-radius:999px; color:var(--cinza-texto); background:var(--azul-suave); cursor:pointer; font-size:.67rem; font-weight:750; }
.filtro-chip b { min-width:20px; height:20px; display:grid; place-items:center; border-radius:999px; color:var(--texto-2); background:var(--borda-2); font-size:.6rem; }
.filtro-chip:hover,.filtro-chip.ativo { color:var(--azul); border-color:var(--azul); background:var(--azul-claro); }
.codigo-produto { padding:3px 6px; border:1px solid var(--borda-2); border-radius:6px; color:var(--texto-2); background:var(--azul-suave); font-family:ui-monospace,SFMono-Regular,Consolas,monospace; font-size:.68rem; }
.btn-tabela-icone { width:34px; height:34px; display:grid; place-items:center; border:1px solid var(--borda); border-radius:9px; color:var(--texto-2); background:var(--azul-suave); cursor:pointer; transition:.15s ease; }
.btn-tabela-icone:hover { color:var(--azul); border-color:var(--azul); transform:translateY(-1px); }
.btn-tabela-icone svg { width:15px; height:15px; }

.toast-container { position:fixed; right:20px; bottom:20px; z-index:250; width:min(390px,calc(100vw - 32px)); display:grid; gap:9px; pointer-events:none; }
.toast { transform:translateY(12px); opacity:0; min-height:68px; padding:12px 12px; display:grid; grid-template-columns:36px 1fr 28px; align-items:center; gap:10px; border:1px solid var(--borda); border-radius:14px; color:var(--texto); background:rgba(255,255,255,.97); box-shadow:0 18px 50px rgba(15,31,50,.18); pointer-events:auto; transition:.2s ease; }
.toast.visivel { opacity:1; transform:none; }
.toast-icone { width:34px; height:34px; display:grid; place-items:center; border-radius:10px; color:var(--azul); background:var(--azul-claro); font-weight:900; }
.toast > div { display:grid; gap:2px; }
.toast strong { font-size:.74rem; }
.toast > div span { color:var(--cinza-texto); font-size:.69rem; line-height:1.35; }
.toast button { width:28px; height:28px; border:0; border-radius:8px; color:var(--cinza-texto); background:transparent; cursor:pointer; font-size:1rem; }
.toast-sucesso .toast-icone { color:var(--verde); background:rgba(19,138,82,.09); }
.toast-erro .toast-icone { color:var(--vermelho); background:rgba(196,60,76,.09); }

html[data-theme="dark"] .acao-rapida,
html[data-theme="dark"] .produto-resumo-card,
html[data-theme="dark"] .toast { background:linear-gradient(180deg,#141518,#101113); border-color:#2b2c30; }
html[data-theme="dark"] .acao-rapida.acao-destaque { background:linear-gradient(145deg,#211b0d,#111214); border-color:#4a3915; }
html[data-theme="dark"] .acao-rapida > span,
html[data-theme="dark"] .metrica-com-icone .metrica-icone { color:#e3b640; background:#211b0d; }
html[data-theme="dark"] .acao-rapida:hover,
html[data-theme="dark"] .filtro-chip:hover,
html[data-theme="dark"] .filtro-chip.ativo,
html[data-theme="dark"] .btn-tabela-icone:hover { border-color:#8d6d20; }
html[data-theme="dark"] .produto-resumo-card strong { color:#f3ead5; }
html[data-theme="dark"] .filtro-chip,
html[data-theme="dark"] .codigo-produto,
html[data-theme="dark"] .btn-tabela-icone,
html[data-theme="dark"] .atalho-busca { background:#171719; border-color:#303136; }
html[data-theme="dark"] .filtro-chip.ativo { color:#efcd64; background:#211b0d; }
html[data-theme="dark"] .filtro-chip b { color:#d7c58d; background:#28230f; }
html[data-theme="dark"] .toast { box-shadow:0 20px 60px rgba(0,0,0,.55); }
html[data-theme="dark"] .toast-icone { color:#e3b640; background:#211b0d; }
html[data-theme="dark"] .toast-sucesso .toast-icone { color:#63d99c; background:#102019; }
html[data-theme="dark"] .toast-erro .toast-icone { color:#ff7b87; background:#251317; }

@media (max-width:1350px) {
  .metricas-dashboard { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .acoes-rapidas { align-items:flex-start; }
  .acoes-rapidas-botoes { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:900px) {
  .dashboard-boas-vindas { align-items:flex-start; flex-direction:column; }
  .dashboard-operacao { width:100%; justify-content:flex-start; flex-wrap:wrap; }
  .operacao-info { text-align:left; }
  .acoes-rapidas { flex-direction:column; }
  .acoes-rapidas-botoes { width:100%; }
  .produto-resumo-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:620px) {
  .metricas-dashboard { grid-template-columns:1fr; }
  .acoes-rapidas-botoes { grid-template-columns:1fr; }
  .produto-resumo-grid { grid-template-columns:1fr 1fr; }
  .dashboard-operacao .btn-secundario { width:100%; }
  .operacao-info { flex:1; }
  .toast-container { right:16px; bottom:16px; }
}


/* ======================================================================
   NORTE PDV 2.2 — atalhos robustos e cadastro de produto autoexplicativo
   ====================================================================== */
.atalhos-pdv {
  margin:10px 0 14px; display:flex; align-items:center; flex-wrap:wrap; gap:7px;
  color:var(--cinza-texto); font-size:.68rem;
}
.atalhos-pdv-titulo { display:inline-flex; align-items:center; gap:6px; margin-right:2px; font-weight:760; color:var(--texto-2); }
.atalhos-pdv-titulo > span { width:18px; height:18px; display:grid; place-items:center; border-radius:50%; color:var(--azul); background:var(--azul-claro); font-size:.62rem; }
.atalhos-pdv button {
  min-height:30px; padding:4px 9px 4px 5px; display:inline-flex; align-items:center; gap:6px;
  border:1px solid var(--borda); border-radius:8px; color:var(--cinza-texto); background:var(--azul-suave);
  cursor:pointer; font:inherit; font-weight:700; transition:.15s ease;
}
.atalhos-pdv button:hover { color:var(--azul); border-color:var(--azul); transform:translateY(-1px); }
.atalhos-pdv kbd {
  min-width:28px; height:20px; padding:0 5px; display:grid; place-items:center; border:1px solid var(--borda-2);
  border-radius:5px; color:var(--texto-2); background:var(--fundo); font:750 .62rem/1 ui-monospace,SFMono-Regular,Consolas,monospace;
  box-shadow:0 1px 0 rgba(0,0,0,.06);
}
.atalhos-pdv small { flex-basis:100%; margin-left:26px; color:var(--cinza-texto); font-size:.62rem; }
.atalho-destaque { animation:atalhoPulso .82s ease; }
@keyframes atalhoPulso {
  0%,100% { box-shadow:inherit; }
  25% { box-shadow:0 0 0 3px rgba(19,103,223,.16), 0 0 0 1px var(--azul); }
}

.form-produto-explicado { align-items:start; }
.campo-cadastro { min-width:0; display:flex; flex-direction:column; gap:5px; }
.campo-cadastro label { color:var(--texto-2); font-size:.69rem; font-weight:780; }
.campo-cadastro label em { margin-left:4px; color:var(--cinza-texto); font-size:.6rem; font-style:normal; font-weight:650; }
.campo-cadastro input,.campo-cadastro select { width:100%; }
.campo-cadastro small { min-height:30px; color:var(--cinza-texto); font-size:.61rem; line-height:1.35; }
.campo-cadastro small b { color:var(--texto-2); }
.campo-explicado { padding:10px; border:1px solid var(--borda); border-radius:11px; background:var(--azul-suave); }
.campo-explicado input { background:var(--fundo); }

html[data-theme="dark"] .atalhos-pdv button { color:#aaa7a0; background:#171719; border-color:#303136; }
html[data-theme="dark"] .atalhos-pdv button:hover { color:#efcd64; border-color:#8d6d20; }
html[data-theme="dark"] .atalhos-pdv kbd { color:#ead38b; background:#101114; border-color:#39342b; }
html[data-theme="dark"] .atalhos-pdv-titulo > span { color:#e3b640; background:#211b0d; }
html[data-theme="dark"] .atalho-destaque { animation-name:atalhoPulsoDark; }
@keyframes atalhoPulsoDark {
  0%,100% { box-shadow:inherit; }
  25% { box-shadow:0 0 0 3px rgba(227,182,64,.15), 0 0 0 1px #d1a735; }
}
html[data-theme="dark"] .campo-explicado { background:#141416; border-color:#333028; }
html[data-theme="dark"] .campo-explicado input { background:#101114; }
html[data-theme="dark"] .campo-cadastro small b { color:#e9cd74; }

@media (max-width:680px) {
  .atalhos-pdv button span { display:none; }
  .atalhos-pdv small { margin-left:0; }
}

/* ==================== NORTE PDV 3.0 · USUÁRIOS ==================== */
.usuario-menu-wrap{position:relative}.usuario-topo-btn{border:0;background:transparent;color:inherit;cursor:pointer;text-align:left}.usuario-chevron{color:var(--dourado,#d6aa35);margin-left:5px}.usuario-dropdown{position:absolute;right:0;top:calc(100% + 10px);z-index:120;width:230px;padding:9px;background:#141416;border:1px solid rgba(214,170,53,.22);border-radius:15px;box-shadow:0 18px 55px rgba(0,0,0,.45)}[data-theme="light"] .usuario-dropdown{background:#fff;border-color:#e4e0d4}.usuario-dropdown-info{display:grid;gap:3px;padding:10px 11px 12px;border-bottom:1px solid rgba(128,128,128,.15);margin-bottom:6px}.usuario-dropdown-info strong{font-size:.9rem}.usuario-dropdown-info span{font-size:.75rem;color:#8f8b80}.usuario-dropdown button{width:100%;border:0;border-radius:9px;padding:10px 11px;text-align:left;background:transparent;color:inherit;cursor:pointer}.usuario-dropdown button:hover{background:rgba(214,170,53,.1);color:#e9b62b}.operador-identificado{min-height:48px;border:1px solid var(--borda,#333);border-radius:12px;padding:7px 13px;display:flex;flex-direction:column;justify-content:center;background:var(--campo,#151517)}.operador-identificado span{font-size:.68rem;text-transform:uppercase;letter-spacing:.08em;color:#87837a}.operador-identificado strong{font-size:.92rem}.permissoes-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.permissoes-grid>div{display:grid;gap:6px;padding:16px;border:1px solid rgba(128,128,128,.15);border-radius:14px;background:rgba(128,128,128,.035)}.permissoes-grid strong{color:#e2b43b}.permissoes-grid span{font-size:.82rem;color:#8f8b80;line-height:1.5}.usuario-linha{display:flex;align-items:center;gap:10px}.usuario-inicial{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:rgba(214,170,53,.13);color:#e4b739;font-weight:900}.usuario-linha small{display:block;color:#87837a;margin-top:2px}.select-papel-tabela{min-width:125px;padding:7px 9px;border-radius:9px}.acoes-usuario{display:flex;gap:6px;flex-wrap:wrap}.btn-mini{border:1px solid rgba(128,128,128,.22);background:transparent;color:inherit;border-radius:8px;padding:7px 9px;font-size:.72rem;cursor:pointer}.btn-mini:hover{border-color:#b38b26;color:#e5b638}.btn-mini.perigo:hover{border-color:#b84c4c;color:#ff7777}.restrito-permissao{opacity:.58;pointer-events:none}.hidden-permission{display:none!important}@media(max-width:900px){.permissoes-grid{grid-template-columns:1fr}.usuario-dropdown{right:-10px}}
.auth-pendente{visibility:hidden}
.assinatura-badge{white-space:nowrap;padding:8px 11px;border:1px solid rgba(79,214,156,.28);border-radius:999px;background:rgba(79,214,156,.08);color:#6fe0ac;font-size:.68rem;font-weight:800;letter-spacing:.04em}.assinatura-badge.assinatura-atencao{border-color:rgba(233,182,43,.4);background:rgba(233,182,43,.09);color:#e9b62b}.lista-perfis-operador{display:grid;gap:8px;margin:10px 0 16px}.perfil-operador-card{display:flex;justify-content:space-between;align-items:center;gap:12px;width:100%;padding:14px;border:1px solid rgba(128,128,128,.2);border-radius:12px;background:transparent;color:inherit;text-align:left;cursor:pointer}.perfil-operador-card:hover{border-color:#b38b26;background:rgba(214,170,53,.07)}.perfil-operador-card span{font-size:.75rem;color:#8f8b80}


/* ======================================================================
   NORTE PDV 3.2 — correções de topo, menu do usuário e responsividade
   ====================================================================== */
/* O modo dark antigo criava um novo stacking context com z-index 1 no topo
   e fazia o conteúdo da página pintar por cima do dropdown do usuário. */
.topo,
html[data-theme="dark"] .topo {
  z-index: 1000;
  overflow: visible;
}
html[data-theme="dark"] main,
html[data-theme="dark"] .rodape-site { z-index: 1; }

.usuario-menu-wrap { z-index: 1100; }
/* Dropdown de perfil começa fechado; só aparece quando o JS remove .escondida. */
.usuario-dropdown.escondida { display: none !important; }
.usuario-dropdown {
  z-index: 1200;
  width: 252px;
  max-height: min(520px, calc(100vh - 92px));
  overflow-y: auto;
  overscroll-behavior: contain;
}
.usuario-dropdown-info { gap: 4px; }
.usuario-menu-assinatura {
  margin-top: 5px;
  color: #66d9a3 !important;
  font-size: .68rem !important;
  font-weight: 800;
}
.usuario-menu-assinatura.assinatura-atencao { color: #e9b62b !important; }
.usuario-dropdown-grupo { display: grid; gap: 2px; }
.usuario-dropdown-separado {
  margin-top: 6px;
  padding-top: 6px;
  border-top: 1px solid rgba(128,128,128,.15);
}
.usuario-dropdown .usuario-sair { color: #ff858f; }
.usuario-dropdown .usuario-sair:hover { color: #ff9ca4; background: rgba(196,60,76,.10); }
.mobile-only { display: none !important; }

/* A faixa de navegação agora denuncia que é rolável e aceita mouse/roda. */
.principal-nav {
  scrollbar-width: thin;
  scrollbar-color: rgba(214,170,53,.48) transparent;
  scroll-behavior: smooth;
  overscroll-behavior-x: contain;
  cursor: grab;
  user-select: none;
  padding-bottom: 6px;
}
.principal-nav.nav-segurando { cursor: grabbing; scroll-behavior: auto; }
.principal-nav::-webkit-scrollbar { display: block; height: 4px; }
.principal-nav::-webkit-scrollbar-track { background: transparent; }
.principal-nav::-webkit-scrollbar-thumb { background: rgba(214,170,53,.42); border-radius: 99px; }
.principal-nav .aba-btn { flex: 0 0 auto; }

/* Em notebooks/monitores médios, marca e ações ficam na primeira linha e as
   abas ganham uma linha inteira. Isso evita esconder Equipe/Vasilhames etc. */
@media (max-width: 1700px) and (min-width: 981px) {
  .header-v2 {
    grid-template-columns: minmax(0,1fr) max-content;
    grid-template-rows: auto auto;
    gap: 8px 18px;
    min-height: auto;
    padding: 10px 0 8px;
  }
  .header-v2 > .marca { grid-column: 1; grid-row: 1; }
  .header-v2 > .acoes-v2 { grid-column: 2; grid-row: 1; }
  .header-v2 > .principal-nav { grid-column: 1 / -1; grid-row: 2; width: 100%; }
  .usuario-topo { display: flex; }
}

@media (max-width: 1250px) and (min-width: 981px) {
  .usuario-topo { display: flex; }
  .usuario-texto { display: none; }
}

@media (max-width: 980px) {
  .topo,
  html[data-theme="dark"] .topo { position: relative; top: auto; z-index: 1000; }
  .header-v2 {
    width: calc(100% - 20px);
    display: grid;
    grid-template-columns: minmax(0,1fr) max-content;
    grid-template-rows: auto auto;
    gap: 9px 12px;
    padding: 10px 0 8px;
    min-height: auto;
  }
  .header-v2 > .marca { grid-column: 1; grid-row: 1; min-width: 0; }
  .header-v2 > .acoes-v2 { grid-column: 2; grid-row: 1; }
  .header-v2 > .principal-nav { grid-column: 1 / -1; grid-row: 2; width: 100%; min-width: 0; }
  .acoes-v2 { display: flex; padding-left: 0; border-left: 0; }
  .usuario-topo { display: flex; }
  .usuario-texto { display: none; }
  .principal-nav { touch-action: pan-x; -webkit-overflow-scrolling: touch; }
}

@media (max-width: 680px) {
  .header-v2 { width: calc(100% - 16px); gap: 8px; }
  .marca-textos { display: none; }
  .marca-icone { width: 38px; height: 38px; }

  /* No telefone ficam só os controles realmente úteis no topo. */
  #assinatura-badge,
  #btn-backup,
  #btn-fullscreen { display: none !important; }
  .acoes-v2 { gap: 7px; }
  .acoes-v2 .usuario-topo { display: flex !important; }
  .acoes-v2 .usuario-chevron { display: none; }
  .acoes-v2 .usuario-avatar { width: 38px; height: 38px; }
  .tema-toggle { transform: scale(.92); transform-origin: center; }
  .mobile-only:not(.escondida):not(.hidden-permission) { display: block !important; }

  .principal-nav { gap: 6px; padding: 3px 1px 6px; }
  .principal-nav .aba-btn { height: 40px; padding: 0 11px; gap: 7px; font-size: .75rem; border-radius: 10px; }
  .principal-nav .nav-icone svg { width: 17px; height: 17px; }

  /* Dropdown fixo no viewport: nunca fica atrás dos cards nem sai da tela. */
  .usuario-dropdown {
    position: fixed;
    top: 58px;
    right: 8px;
    left: auto;
    width: min(320px, calc(100vw - 16px));
    max-height: calc(100dvh - 70px);
    z-index: 3000;
    border-radius: 14px;
    box-shadow: 0 22px 65px rgba(0,0,0,.62);
  }
  .usuario-dropdown button { min-height: 44px; font-size: .84rem; }

  .main-v2 { width: calc(100% - 16px); margin-top: 14px; }
  .dashboard-boas-vindas { gap: 14px; }
  .pagina-titulo { gap: 10px; }
  .pagina-icone { flex: 0 0 auto; }
  .dashboard-titulo h1 { font-size: clamp(1.15rem, 6vw, 1.45rem); }
  .dashboard-operacao { gap: 8px; }
  .operacao-info { width: 100%; padding-right: 0; border-right: 0; text-align: left; }
  .acoes-rapidas { padding: 14px; gap: 14px; }
  .acao-rapida { min-height: 62px; }
}

/* Norte PDV 3.2.2 - leitor de codigo de barras */
.camera-preview-wrap { position: relative; width: 100%; border-radius: 13px; overflow: hidden; background: #08090b; }
.camera-preview-wrap video { display: block; }
.camera-preview-wrap video.camera-sem-video { display: none; }
.camera-mira { position: absolute; inset: 0; pointer-events: none; display: grid; place-items: center; }
.camera-mira span { width: min(82%, 520px); height: 34%; min-height: 92px; border: 2px solid rgba(239,205,100,.88); border-radius: 12px; box-shadow: 0 0 0 999px rgba(0,0,0,.15), inset 0 0 18px rgba(239,205,100,.12); }
.camera-sem-video + .camera-mira { display: none; }
.camera-acoes { display: flex; gap: 10px; flex-wrap: wrap; }
.camera-acoes button { flex: 1 1 180px; }
@media (max-width: 640px) {
  .modal-media { width: min(96vw, 560px); }
  .modal-media video { min-height: 220px; max-height: 48vh; }
  .camera-acoes { flex-direction: column; }
  .camera-acoes button { width: 100%; flex-basis: auto; }
}


/* Norte PDV 3.2.3 - leitor no cadastro de produto */
.entrada-codigo-camera { position:relative; display:flex; align-items:stretch; gap:8px; }
.entrada-codigo-camera input { flex:1 1 auto; min-width:0; }
.btn-camera-cadastro { flex:0 0 auto; min-width:92px; padding:0 12px; border:1px solid var(--borda); border-radius:10px; background:var(--azul-suave); color:var(--texto-2); font:inherit; font-size:.69rem; font-weight:780; cursor:pointer; }
.btn-camera-cadastro:hover { color:var(--azul); border-color:var(--azul); }
html[data-theme="dark"] .btn-camera-cadastro { color:#efcd64; border-color:#4b4024; background:#201b0e; }
html[data-theme="dark"] .btn-camera-cadastro:hover { border-color:#7d6221; background:#29200d; }
@media(max-width:560px){
  .entrada-codigo-camera { gap:6px; }
  .btn-camera-cadastro { min-width:76px; padding:0 9px; }
  .btn-camera-cadastro span { display:none; }
}

/* ======================================================================
   NORTE PDV 3.2.4 — contraste do operador autenticado no Controle de Caixa
   ====================================================================== */
html[data-theme="dark"] .operador-identificado {
  background: linear-gradient(145deg, #24231f 0%, #1b1b19 100%);
  border-color: rgba(214,165,43,.36);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.025), 0 7px 18px rgba(0,0,0,.16);
}
html[data-theme="dark"] .operador-identificado span {
  color: #b9b19d;
}
html[data-theme="dark"] .operador-identificado strong {
  color: #f4df9e;
  font-weight: 800;
}


/* ======================================================================
   NORTE PDV 3.2.5 — contraste do operador autenticado no modo claro
   ====================================================================== */
html[data-theme="light"] .operador-identificado {
  background: linear-gradient(145deg, #ffffff 0%, #f3f7fc 100%);
  border-color: #cfdbea;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.95), 0 7px 18px rgba(31,71,121,.07);
}
html[data-theme="light"] .operador-identificado span {
  color: #61728a;
}
html[data-theme="light"] .operador-identificado strong {
  color: #10233f;
  font-weight: 800;
}

/* ===== Norte PDV 4.0: terminais, NF-e, auditoria e gestão ===== */
.terminal-badge{display:inline-flex;align-items:center;justify-content:center;min-height:30px;padding:0 10px;border:1px solid rgba(214,170,53,.22);border-radius:999px;background:rgba(214,170,53,.08);color:var(--dourado,#d6aa35);font-size:.67rem;font-weight:900;letter-spacing:.07em;white-space:nowrap}
.nfe-upload{display:grid;grid-template-columns:minmax(220px,1fr) auto;gap:12px;align-items:center}.nfe-upload input[type=file]{padding:12px;border:1px dashed var(--borda,#333);border-radius:12px;background:var(--campo,#151517);color:inherit}.nfe-upload small{grid-column:1/-1;color:var(--texto-fraco,#8f8b80)}
.nfe-avisos{display:grid;gap:7px;margin-bottom:12px}.aviso-nfe{padding:10px 12px;border-radius:10px;border:1px solid rgba(219,157,55,.35);background:rgba(219,157,55,.08);color:#d9ad45;font-size:.8rem}.nfe-preco-venda{min-width:115px;width:130px}.nfe-confirmar{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:16px;padding-top:16px;border-top:1px solid rgba(128,128,128,.15)}.nfe-confirmar span{color:var(--texto-fraco,#8f8b80);font-size:.82rem}
.config-assinatura{display:grid;gap:7px}.config-assinatura strong{font-size:1.7rem;color:var(--dourado,#d6aa35)}.config-assinatura span{font-size:.9rem}.config-assinatura small{color:var(--texto-fraco,#8f8b80);line-height:1.5}.backup-status{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:8px 0 16px}.backup-status>div{display:grid;gap:4px;padding:13px;border:1px solid rgba(128,128,128,.15);border-radius:12px;background:rgba(128,128,128,.035)}.backup-status span{font-size:.72rem;text-transform:uppercase;letter-spacing:.07em;color:var(--texto-fraco,#8f8b80)}.detalhe-auditoria{display:block;max-width:360px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#tabela-auditoria code{color:var(--dourado,#d6aa35);font-size:.72rem}.pagina-icone{font-size:.72rem;font-weight:900}.operador-overlay-obrigatorio .modal-fechar{display:none!important}
#operador-overlay:not(.escondida){z-index:250}.perfil-operador-card:focus-visible{outline:2px solid var(--dourado,#d6aa35);outline-offset:2px}
[data-theme="light"] .terminal-badge{background:#fff8e8;border-color:#e5d3a1;color:#8a6615}[data-theme="light"] .nfe-upload input[type=file]{background:#fff;border-color:#d9d4c8}[data-theme="light"] .aviso-nfe{background:#fff7e4;color:#7e5c11;border-color:#e9ce8a}
@media(max-width:780px){.nfe-upload{grid-template-columns:1fr}.nfe-upload small{grid-column:auto}.nfe-confirmar{align-items:stretch;flex-direction:column}.backup-status{grid-template-columns:1fr}.terminal-badge{max-width:110px;overflow:hidden;text-overflow:ellipsis}.detalhe-auditoria{max-width:220px}}


/* ======================================================================
   NORTE PDV 4.0.4 — cupom térmico / segunda via
   ====================================================================== */
.recibo-v2 { width:min(500px,96vw)!important; font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif!important; }
.recibo-modal-topo { margin-bottom:14px; }
.cupom-termico {
  width:min(80mm,100%); margin:0 auto; padding:16px 14px; border:1px dashed #b9b9b9;
  border-radius:8px; color:#111; background:#fff; font-family:"Courier New",ui-monospace,SFMono-Regular,Consolas,monospace;
  font-size:12px; line-height:1.35;
}
.cupom-cabecalho { display:grid; justify-items:center; gap:3px; text-align:center; }
.cupom-cabecalho>strong { max-width:100%; font-size:17px; letter-spacing:.02em; text-transform:uppercase; overflow-wrap:anywhere; }
.cupom-cabecalho>span { max-width:100%; color:#333; font-size:10px; overflow-wrap:anywhere; }
.cupom-cabecalho>b { margin-top:4px; font-size:10px; letter-spacing:.08em; }
.cupom-cabecalho>em { margin-top:3px; padding:2px 6px; border:1px solid #111; border-radius:3px; font-size:10px; font-style:normal; font-weight:700; letter-spacing:.07em; }
.cupom-cabecalho>em.segunda-via { background:#111; color:#fff; }
.cupom-separador { height:0; margin:10px 0; border-top:1px dashed #555; }
.cupom-meta { display:grid; gap:3px; }
.cupom-meta>div { display:grid; grid-template-columns:72px 1fr; gap:8px; align-items:start; }
.cupom-meta span { color:#444; }
.cupom-meta b { text-align:right; font-weight:700; overflow-wrap:anywhere; }
.cupom-itens-cabecalho { display:flex; justify-content:space-between; gap:8px; color:#333; font-size:10px; font-weight:700; }
.cupom-termico .recibo-item { padding:7px 0!important; display:grid!important; grid-template-columns:minmax(0,1fr) auto!important; gap:8px; border-bottom:1px dotted #aaa!important; }
.cupom-termico .recibo-item:last-child { border-bottom:0!important; }
.cupom-termico .recibo-item>div { min-width:0; display:grid; gap:1px; }
.cupom-termico .recibo-item strong { overflow-wrap:anywhere; font-size:11px; }
.cupom-termico .recibo-item small { grid-column:auto!important; color:#555!important; font-size:9px; overflow-wrap:anywhere; }
.cupom-termico .recibo-item span { color:#333; font-size:10px; }
.cupom-termico .recibo-item>b { white-space:nowrap; align-self:end; font-size:11px; }
.cupom-termico .recibo-resumo { margin:0; gap:4px; }
.cupom-termico .recibo-resumo p { display:flex; justify-content:space-between; gap:10px; margin:0; }
.cupom-termico .recibo-resumo #recibo-total { margin-top:4px; padding-top:7px; border-top:1px solid #111; font-size:15px; }
.cupom-termico .recibo-resumo #recibo-total strong { font-size:17px; }
.cupom-rodape { display:grid; justify-items:center; gap:3px; text-align:center; }
.cupom-rodape strong { font-size:11px; }
.cupom-rodape span { font-size:10px; }
.cupom-rodape small { color:#555; font-size:9px; }
.cupom-rodape .recibo-cancelado { padding:2px 5px; color:#fff; background:#111; font-weight:700; letter-spacing:.05em; }
html[data-theme="dark"] .cupom-termico { color:#111; background:#fff; border-color:#777; }
html[data-theme="dark"] .cupom-termico * { border-color:#777; }
html[data-theme="dark"] .cupom-termico .cupom-meta span,
html[data-theme="dark"] .cupom-termico .recibo-item span,
html[data-theme="dark"] .cupom-termico .recibo-item small,
html[data-theme="dark"] .cupom-termico .cupom-cabecalho>span,
html[data-theme="dark"] .cupom-termico .cupom-rodape small { color:#444!important; }

@media (max-width:520px) {
  .recibo-v2 { padding:14px!important; }
  .cupom-termico { width:100%; padding:14px 10px; }
  .recibo-acoes { display:grid!important; grid-template-columns:1fr 1fr; }
  .recibo-acoes button { min-width:0!important; }
  .recibo-acoes button:first-child { grid-column:1/-1; }
}

@media print {
  @page { size:80mm auto; margin:2mm; }
  html, body { width:80mm!important; min-width:80mm!important; margin:0!important; padding:0!important; background:#fff!important; }
  body * { visibility:hidden!important; }
  #recibo-overlay, #recibo-overlay * { visibility:visible!important; }
  #recibo-overlay { position:absolute!important; inset:0!important; display:block!important; width:80mm!important; padding:0!important; margin:0!important; background:#fff!important; backdrop-filter:none!important; }
  #recibo { width:80mm!important; max-width:80mm!important; padding:0!important; margin:0!important; border:0!important; border-radius:0!important; box-shadow:none!important; overflow:visible!important; background:#fff!important; }
  .recibo-modal-topo, .recibo-acoes { display:none!important; }
  .cupom-termico { width:76mm!important; max-width:76mm!important; margin:0 auto!important; padding:2mm!important; border:0!important; border-radius:0!important; color:#000!important; background:#fff!important; font-size:10pt!important; }
}

/* Norte PDV 4.0.4 — configuração do cupom */
.config-cupom-grade{grid-template-columns:repeat(2,minmax(0,1fr));align-items:end}
.config-cupom-grade label{display:grid;gap:7px}
.config-cupom-grade .campo-largo{grid-column:1/-1}
.config-cupom-grade .check-linha{display:flex;align-items:center;gap:9px;min-height:42px;padding:10px 12px;border:1px solid var(--borda);border-radius:10px;background:rgba(128,128,128,.04);font-size:.85rem}
.config-cupom-grade .check-linha input{width:17px;height:17px;margin:0}
.config-cupom-acoes{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-top:4px}
.config-cupom-acoes small{color:var(--texto-fraco,#8f8b80);line-height:1.45}
.cupom-cabecalho>span{white-space:pre-line;line-height:1.35}
.painel-cupom-config .painel-titulo p{margin-top:4px;color:var(--texto-fraco,#8f8b80);font-size:.8rem}
@media(max-width:720px){.config-cupom-grade{grid-template-columns:1fr}.config-cupom-grade .campo-largo{grid-column:auto}.config-cupom-acoes{align-items:stretch;flex-direction:column}.config-cupom-acoes .btn-primario{width:100%}}

/* ======================================================================
   NORTE PDV 4.0.5 — Produtos: catálogo primeiro, ações em modal
   ====================================================================== */
.produtos-titulo { align-items:center; }
.produtos-acoes-topo { margin-left:auto; display:flex; gap:9px; flex-wrap:wrap; justify-content:flex-end; }
.produtos-acoes-topo .btn-primario,.produtos-acoes-topo .btn-secundario { min-height:40px; }
.produtos-acoes-topo .btn-icone-texto { display:inline-flex; align-items:center; gap:7px; }
.produtos-acoes-topo .btn-icone-texto span { font-size:1rem; font-weight:900; }
.painel-duplicados-compacto { margin-bottom:18px; }
.painel-duplicados-compacto .lista-item { padding:9px 0; }
.modal-acoes-form { grid-column:1/-1; width:100%; }
.acoes-produto-tabela { display:flex; gap:6px; justify-content:flex-end; }
#novo-produto-overlay .modal-card { max-height:92vh; overflow:auto; }
#novo-produto-overlay .form-produto-explicado { grid-template-columns:repeat(2,minmax(0,1fr)); }
#entrada-estoque-overlay .campo-cadastro > span { color:var(--texto-2); font-size:.69rem; font-weight:780; }
#entrada-estoque-overlay .campo-cadastro > span em { color:var(--cinza-texto); font-style:normal; font-size:.62rem; }
.produto-linha-destaque { animation:produtoLinhaDestaque 1.4s ease; }
@keyframes produtoLinhaDestaque { 0%,100%{background:transparent} 30%{background:var(--azul-claro)} }
@media (max-width:760px){
  .produtos-titulo { align-items:flex-start; }
  .produtos-acoes-topo { width:100%; margin-left:0; justify-content:stretch; }
  .produtos-acoes-topo button { flex:1; min-width:145px; }
  #novo-produto-overlay .form-produto-explicado { grid-template-columns:1fr; }
}

/* ======================================================================
   NORTE PDV 4.0.6 — acabamento de modais e revisão real de duplicidades
   ====================================================================== */
body.modal-aberto { overflow: hidden; }

/* O topo usa z-index alto para o dropdown do usuário; os modais precisam
   ficar acima dele e trabalhar dentro da área útil do viewport. */
.overlay {
  z-index: 4000;
  padding: clamp(12px, 2.4vh, 24px);
  overflow: hidden;
}
#camera-overlay { z-index: 6000; }
#revisar-duplicado-overlay { z-index: 5200; }
#operador-overlay:not(.escondida) { z-index: 5000; }

#novo-produto-overlay .modal-card,
#entrada-estoque-overlay .modal-card,
#produto-overlay .modal-card,
#revisar-duplicado-overlay .modal-card {
  max-height: calc(100dvh - clamp(24px, 4.8vh, 48px));
  overflow: auto;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
}

/* Cadastro de produto mais compacto em desktop, sem esconder o topo do modal. */
#novo-produto-overlay .modal-card {
  width: min(880px, calc(100vw - 32px));
  padding: clamp(17px, 2.2vh, 23px);
}
#novo-produto-overlay .modal-topo { margin-bottom: 13px; }
#novo-produto-overlay .form-produto-explicado { gap: 9px 12px; }
#novo-produto-overlay .campo-cadastro { gap: 4px; }
#novo-produto-overlay .campo-cadastro small { min-height: 22px; line-height: 1.25; }
#novo-produto-overlay .modal-acoes-form { margin-top: 8px; }

/* Revisão fica depois do catálogo e só aparece quando existe pendência real. */
.painel-duplicados-compacto { margin-top: 20px; margin-bottom: 0; }
.painel-duplicados-titulo { align-items: flex-start; }
.painel-duplicados-titulo p {
  max-width: 760px;
  margin: 5px 0 0;
  color: var(--cinza-texto);
  font-size: .76rem;
  line-height: 1.45;
}
.lista-duplicados-revisao { display: grid; gap: 10px; }
.duplicado-lista-item {
  display: grid;
  grid-template-columns: minmax(0,1fr) auto;
  align-items: center;
  gap: 16px;
  padding: 14px 15px;
  border: 1px solid var(--borda-2);
  border-radius: 13px;
  background: var(--azul-suave);
}
.duplicado-lista-info { display: grid; gap: 5px; min-width: 0; }
.duplicado-lista-info strong { color: var(--texto-2); font-size: .84rem; }
.duplicado-lista-info span { color: var(--cinza-texto); font-size: .72rem; line-height: 1.45; }
.duplicado-lista-info small { color: var(--cinza-texto); font-size: .66rem; }
.duplicado-lista-acoes { display: flex; gap: 7px; }

.modal-revisao-duplicado { width: min(900px, calc(100vw - 32px)); }
.duplicado-motivos { display: flex; gap: 7px; flex-wrap: wrap; margin: -2px 0 15px; }
.duplicado-motivo {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 0 9px;
  border: 1px solid rgba(168,98,0,.24);
  border-radius: 999px;
  color: var(--amarelo);
  background: rgba(168,98,0,.08);
  font-size: .68rem;
  font-weight: 780;
}
.duplicado-opcoes { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.duplicado-opcao {
  position: relative;
  display: grid;
  gap: 9px;
  padding: 15px;
  border: 1px solid var(--borda);
  border-radius: 14px;
  background: var(--azul-suave);
  cursor: pointer;
  transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease;
}
.duplicado-opcao:hover { border-color: var(--azul); transform: translateY(-1px); }
.duplicado-opcao.selecionado {
  border-color: var(--azul);
  box-shadow: 0 0 0 3px rgba(19,103,223,.10);
  background: linear-gradient(145deg,var(--azul-suave),#fff);
}
.duplicado-opcao-cabecalho { display: flex; align-items: flex-start; gap: 10px; }
.duplicado-opcao-cabecalho input { margin-top: 4px; width: 17px; height: 17px; flex: 0 0 auto; }
.duplicado-opcao-cabecalho div { min-width: 0; display: grid; gap: 2px; }
.duplicado-opcao-cabecalho strong { color: var(--texto); font-size: .9rem; overflow-wrap: anywhere; }
.duplicado-opcao-cabecalho small { color: var(--cinza-texto); font-size: .65rem; }
.duplicado-opcao-dados { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 7px 12px; }
.duplicado-opcao-dados div { display: grid; gap: 1px; }
.duplicado-opcao-dados span { color: var(--cinza-texto); font-size: .61rem; text-transform: uppercase; letter-spacing: .045em; }
.duplicado-opcao-dados b { color: var(--texto-2); font-size: .75rem; overflow-wrap: anywhere; }
.duplicado-editar { justify-self: start; }
.duplicado-aviso {
  margin-top: 15px;
  padding: 12px 14px;
  border: 1px solid rgba(19,103,223,.18);
  border-radius: 12px;
  color: var(--cinza-texto);
  background: rgba(19,103,223,.055);
  font-size: .74rem;
  line-height: 1.5;
}
.duplicado-aviso strong { color: var(--texto-2); }

html[data-theme="dark"] .duplicado-lista-item,
html[data-theme="dark"] .duplicado-opcao { background: #121315; border-color: #292a2d; }
html[data-theme="dark"] .duplicado-opcao.selecionado {
  border-color: #b99436;
  background: linear-gradient(145deg,#1b170d,#111214);
  box-shadow: 0 0 0 3px rgba(214,170,53,.08);
}
html[data-theme="dark"] .duplicado-opcao:hover { border-color: #b99436; }
html[data-theme="dark"] .duplicado-aviso { border-color: rgba(214,170,53,.18); background: rgba(214,170,53,.055); }

@media (max-height: 760px) and (min-width: 761px) {
  #novo-produto-overlay .modal-card { padding: 15px 19px; }
  #novo-produto-overlay .modal-topo { margin-bottom: 9px; }
  #novo-produto-overlay .modal-topo .dica { margin: 4px 0 0; font-size: .7rem; }
  #novo-produto-overlay .form-produto-explicado { gap: 7px 11px; }
  #novo-produto-overlay .campo-cadastro small { min-height: 16px; font-size: .57rem; }
  #novo-produto-overlay input,
  #novo-produto-overlay select { min-height: 38px; }
}

@media (max-width: 760px) {
  .overlay { padding: 10px; align-items: center; }
  #novo-produto-overlay .modal-card,
  #entrada-estoque-overlay .modal-card,
  #produto-overlay .modal-card,
  #revisar-duplicado-overlay .modal-card {
    width: calc(100vw - 20px);
    max-height: calc(100dvh - 20px);
    border-radius: 15px;
  }
  .painel-duplicados-titulo { gap: 10px; }
  .duplicado-lista-item { grid-template-columns: 1fr; }
  .duplicado-lista-acoes .btn-secundario { width: 100%; }
  .duplicado-opcoes { grid-template-columns: 1fr; }
}

/* Norte PDV 4.0.7 — fechamento da Frente de Caixa */
.campo-cliente{position:relative;min-width:min(440px,100%)}
.btn-fechar-campo{border:0;background:transparent;color:var(--texto-fraco,#8f8b80);font-size:1.15rem;line-height:1;cursor:pointer;padding:6px 8px;border-radius:8px;margin-left:4px}
.btn-fechar-campo:hover{background:rgba(214,170,53,.10);color:var(--dourado,#d6aa35)}
.pdv-fiado-opcoes{display:grid;grid-template-columns:minmax(180px,260px) minmax(180px,260px) 1fr;gap:12px;align-items:end;padding:13px 15px;margin:-2px 0 12px;border:1px solid rgba(214,170,53,.20);border-radius:13px;background:rgba(214,170,53,.055)}
.pdv-fiado-opcoes label,.fiado-vencimento{display:grid;gap:5px}.pdv-fiado-opcoes label>span,.fiado-vencimento>span{font-size:.69rem;text-transform:uppercase;letter-spacing:.075em;color:var(--texto-fraco,#8f8b80);font-weight:750}.prazo-input{display:flex;align-items:center;gap:8px}.prazo-input input{width:95px}.prazo-input b{font-size:.8rem;color:var(--texto-fraco,#8f8b80)}.fiado-vencimento strong{min-height:42px;display:flex;align-items:center;font-size:.92rem}.pdv-fiado-opcoes>small{font-size:.76rem;color:var(--texto-fraco,#8f8b80);line-height:1.45;padding-bottom:3px}
.pagamento-select{position:relative;padding-top:15px}.campo-mini-label{position:absolute;top:2px;left:39px;font-size:.58rem;text-transform:uppercase;letter-spacing:.08em;color:var(--texto-fraco,#8f8b80);font-weight:800;pointer-events:none}
.modal-produtos-pdv{max-width:820px}.lista-produtos-pdv{display:grid;gap:8px;max-height:min(58vh,520px);overflow:auto;padding-right:3px;margin-top:12px}.produto-pdv-opcao{width:100%;display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;border:1px solid rgba(128,128,128,.16);border-radius:13px;padding:12px 14px;background:rgba(128,128,128,.035);color:inherit;text-align:left;cursor:pointer}.produto-pdv-opcao:hover,.produto-pdv-opcao.selecionado{border-color:rgba(214,170,53,.52);background:rgba(214,170,53,.09)}.produto-pdv-opcao>div{display:grid;gap:3px}.produto-pdv-opcao strong{font-size:.91rem}.produto-pdv-opcao small{color:var(--texto-fraco,#8f8b80);font-size:.73rem}.produto-pdv-opcao>span{display:grid;text-align:right;gap:3px}.produto-pdv-opcao>span b{color:var(--dourado,#d6aa35)}.produto-pdv-opcao.sem-estoque{opacity:.55}.produto-pdv-opcao.sem-estoque:hover{border-color:rgba(128,128,128,.16);background:rgba(128,128,128,.035);cursor:not-allowed}
.fiado-vencido{color:#e45858!important}.fiado-hoje{color:#d59a23!important}.tag-prazo{display:inline-flex;align-items:center;border-radius:999px;padding:3px 7px;font-size:.64rem;font-weight:850;background:rgba(214,170,53,.10);color:#b98b17}
@media(max-width:760px){.pdv-fiado-opcoes{grid-template-columns:1fr}.campo-cliente{min-width:0;width:100%}.cliente-linha{align-items:stretch;flex-direction:column}.modal-produtos-pdv{max-width:calc(100vw - 22px)}.produto-pdv-opcao{grid-template-columns:1fr}.produto-pdv-opcao>span{text-align:left;grid-template-columns:auto auto;justify-content:start;gap:10px}}

/* Norte PDV 4.0.9 — venda a prazo realmente oculta quando desmarcada */
.pdv-fiado-opcoes.escondida{display:none!important}

/* Norte PDV 4.0.8 — fluxo do PDV, preço por item e desconto sob demanda */
.campo-cliente{padding-right:42px}
.campo-cliente select{padding-right:42px!important}
.campo-cliente .btn-fechar-campo{position:absolute;right:8px;top:50%;transform:translateY(-50%);z-index:2;margin:0}
.pdv-coluna-acoes{text-align:right;min-width:150px}
.btn-desconto-venda{border:1px solid rgba(214,170,53,.24);background:rgba(214,170,53,.06);color:var(--texto-fraco,#8f8b80);border-radius:9px;padding:6px 9px;font-size:.68rem;font-weight:800;cursor:pointer;white-space:nowrap}
.btn-desconto-venda:hover,.btn-desconto-venda.ativo{border-color:rgba(214,170,53,.55);background:rgba(214,170,53,.12);color:var(--dourado,#d6aa35)}
.acoes-item-pdv{display:flex;justify-content:flex-end;align-items:center;gap:8px;white-space:nowrap}.link-editar-item{color:var(--dourado,#d6aa35)!important}
.tag-preco-editado{background:rgba(214,170,53,.13)!important;color:#c99720!important;border-color:rgba(214,170,53,.25)!important}
.pdv-pagamento-principal{display:grid;grid-template-columns:minmax(260px,1fr);margin-top:4px}.pdv-pagamento-principal .pagamento-select{width:100%}
.pdv-fiado-rodape{margin:12px 0 0!important}
.pdv-acoes-venda{display:flex;justify-content:flex-end;gap:12px;margin-top:12px}.pdv-acoes-venda .btn-finalizar{min-width:210px}.pdv-acoes-venda .btn-secundario{min-width:130px}
.modal-pdv-preco,.modal-pdv-desconto{max-width:520px}.pdv-preco-resumo{display:grid;gap:4px;margin-bottom:14px;padding:12px 14px;border:1px solid rgba(214,170,53,.16);border-radius:12px;background:rgba(214,170,53,.045)}.pdv-preco-resumo span{font-size:.66rem;text-transform:uppercase;letter-spacing:.07em;color:var(--texto-fraco,#8f8b80);font-weight:800}.pdv-preco-resumo strong{font-size:1rem}.pdv-preco-resumo small{color:var(--texto-fraco,#8f8b80)}
.pdv-desconto-previa{display:flex;justify-content:space-between;gap:16px;padding:12px 14px;border:1px solid rgba(128,128,128,.14);border-radius:11px;background:rgba(128,128,128,.035);font-size:.78rem}.pdv-desconto-previa span{display:grid;gap:3px}.pdv-desconto-previa b{font-size:.9rem;color:var(--texto)}
@media(max-width:760px){.pdv-coluna-acoes{min-width:120px}.btn-desconto-venda{white-space:normal}.pdv-acoes-venda{display:grid;grid-template-columns:1fr}.pdv-acoes-venda .btn-finalizar,.pdv-acoes-venda .btn-secundario{width:100%;min-width:0}.pdv-desconto-previa{flex-direction:column}.acoes-item-pdv{flex-direction:column;align-items:flex-end;gap:3px}}

/* ===== Estoque operacional v4.0.12 ===== */
.estoque-resumo-grade{margin-bottom:18px}
.filtros-estoque-operacional{grid-template-columns:minmax(280px,1fr) 220px}
.estoque-acoes{gap:6px;white-space:nowrap}
.estoque-modal-resumo{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border:1px solid var(--borda);border-radius:12px;background:var(--fundo-suave)}
.estoque-modal-resumo span{color:var(--texto-suave);font-size:.82rem;text-transform:uppercase;letter-spacing:.05em}
.estoque-modal-resumo strong{font-size:1.55rem}
.estoque-inventario-modal{max-width:900px}
.estoque-inventario-modal .tabela-wrap{max-height:52vh;overflow:auto}
.inventario-input{width:110px;min-width:92px;text-align:center}
.inventario-ok{color:var(--sucesso);font-weight:800}
.inventario-falta{color:var(--perigo);font-weight:800}
.inventario-sobra{color:var(--destaque);font-weight:800}
.inventario-rodape{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:14px;padding-top:14px;border-top:1px solid var(--borda)}
.inventario-rodape span{color:var(--texto-suave)}
#tabela-estoque-produtos td:nth-child(3),#tabela-estoque-produtos td:nth-child(4),#tabela-estoque-produtos td:nth-child(5),#tabela-estoque-produtos td:nth-child(6){white-space:nowrap}
@media(max-width:760px){.filtros-estoque-operacional{grid-template-columns:1fr}.inventario-rodape{align-items:stretch;flex-direction:column}.estoque-inventario-modal{max-width:96vw}}

/* ===== Estoque visual compacto v4.0.12 ===== */
#aba-estoque .estoque-resumo-grade{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:12px;
  margin-bottom:14px;
}
#aba-estoque .estoque-resumo-grade .produto-resumo-card{
  min-height:82px;
  padding:13px 15px;
  box-shadow:none;
}
#aba-estoque .estoque-resumo-grade .produto-resumo-card strong{font-size:1.32rem;margin-top:5px}
#aba-estoque .estoque-resumo-grade .produto-resumo-card:last-child small::after{content:" · custo médio × saldo"}
.estoque-posicao-painel{padding-top:18px}
.estoque-posicao-titulo{margin-bottom:13px;align-items:flex-end}
.estoque-posicao-titulo p{margin-top:4px;max-width:650px}
.estoque-contador{flex:0 0 auto;padding:7px 10px;border:1px solid var(--borda);border-radius:999px;color:var(--texto-suave);font-size:.72rem;font-weight:800;background:var(--fundo-suave)}
.filtros-estoque-operacional{display:grid;grid-template-columns:minmax(300px,1fr) minmax(170px,210px) minmax(160px,190px) auto;gap:9px;margin-bottom:12px}
.filtros-estoque-operacional > input,.filtros-estoque-operacional > select,.filtros-estoque-operacional > button{min-height:40px;margin:0}
.estoque-btn-criticos{white-space:nowrap;padding-inline:13px}
.estoque-btn-criticos.ativo{border-color:rgba(214,170,53,.5);background:rgba(214,170,53,.11);color:var(--dourado,#d6aa35)}
.estoque-quantidade{display:inline-grid;place-items:center;min-width:38px;height:29px;padding:0 8px;border-radius:9px;font-weight:900;border:1px solid transparent}
.estoque-quantidade.ok{color:var(--sucesso);background:rgba(34,197,94,.08);border-color:rgba(34,197,94,.15)}
.estoque-quantidade.baixo{color:#d39b18;background:rgba(214,170,53,.09);border-color:rgba(214,170,53,.18)}
.estoque-quantidade.zerado{color:var(--perigo);background:rgba(239,68,68,.08);border-color:rgba(239,68,68,.18)}
.estoque-acao-btn{position:relative}
.estoque-acao-btn::after{content:attr(data-tooltip);position:absolute;left:50%;bottom:calc(100% + 8px);transform:translateX(-50%) translateY(3px);padding:5px 7px;border-radius:7px;background:#111;color:#f6ead0;font-size:.63rem;font-weight:800;white-space:nowrap;opacity:0;pointer-events:none;transition:.14s ease;z-index:20;box-shadow:0 5px 18px rgba(0,0,0,.25)}
.estoque-acao-btn:hover::after,.estoque-acao-btn:focus-visible::after{opacity:1;transform:translateX(-50%) translateY(0)}
#aba-estoque #tabela-estoque-produtos thead th{white-space:nowrap}
#aba-estoque #tabela-estoque-produtos tbody tr:hover{background:rgba(214,170,53,.035)}
@media(max-width:1100px){#aba-estoque .estoque-resumo-grade{grid-template-columns:repeat(2,minmax(0,1fr))}.filtros-estoque-operacional{grid-template-columns:1fr 1fr}.estoque-btn-criticos{width:100%}}
@media(max-width:680px){#aba-estoque .estoque-resumo-grade{grid-template-columns:1fr 1fr;gap:8px}#aba-estoque .estoque-resumo-grade .produto-resumo-card{min-height:76px;padding:11px 12px}.filtros-estoque-operacional{grid-template-columns:1fr}.estoque-posicao-titulo{align-items:flex-start;gap:10px;flex-direction:column}}

/* ======================================================================
   NORTE PDV 4.0.13 — NF-e com conferência e anti-duplicidade
   ====================================================================== */
.nfe-vazio{display:grid;justify-items:center;text-align:center;gap:7px;padding:34px 24px;border-style:dashed}.nfe-vazio strong{font-size:1rem}.nfe-vazio span{max-width:720px;color:var(--texto-fraco,#8f8b80);font-size:.82rem;line-height:1.55}
.nfe-meta-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:14px}.nfe-meta-grid>div{display:grid;gap:5px;padding:11px 12px;border:1px solid rgba(128,128,128,.14);border-radius:11px;background:rgba(128,128,128,.035);min-width:0}.nfe-meta-grid span{font-size:.67rem;color:var(--texto-fraco,#8f8b80);text-transform:uppercase;letter-spacing:.06em}.nfe-meta-grid strong{font-size:.82rem;overflow-wrap:anywhere}
.nfe-resumo{display:grid;grid-template-columns:repeat(6,minmax(110px,1fr));gap:9px;margin:12px 0 14px}.nfe-resumo>div{display:grid;gap:4px;padding:10px 11px;border:1px solid rgba(128,128,128,.14);border-radius:10px;background:rgba(128,128,128,.035)}.nfe-resumo span{font-size:.65rem;color:var(--texto-fraco,#8f8b80);text-transform:uppercase;letter-spacing:.055em}.nfe-resumo strong{font-size:.92rem}.nfe-resumo-alerta{border-color:rgba(219,157,55,.45)!important;background:rgba(219,157,55,.08)!important}.nfe-resumo-alerta strong{color:#e3b848}
.nfe-legenda{display:flex;flex-wrap:wrap;gap:14px;margin:0 0 10px;color:var(--texto-fraco,#8f8b80);font-size:.72rem}.nfe-legenda span{display:flex;align-items:center;gap:6px}.nfe-dot{width:8px;height:8px;border-radius:999px;display:inline-block}.nfe-dot.exato{background:#42c995}.nfe-dot.revisar{background:#e4ad35}.nfe-dot.novo{background:#7398e8}
.nfe-item-status{display:inline-flex;align-items:center;padding:4px 7px;border-radius:999px;font-size:.59rem;font-weight:900;letter-spacing:.05em;margin-bottom:6px}.nfe-item-status.exato{color:#59dbab;background:rgba(66,201,149,.1);border:1px solid rgba(66,201,149,.28)}.nfe-item-status.revisar{color:#e4b54d;background:rgba(228,173,53,.1);border:1px solid rgba(228,173,53,.28)}.nfe-item-status.novo{color:#8eaceb;background:rgba(115,152,232,.1);border:1px solid rgba(115,152,232,.26)}
.nfe-vinculo{display:block;width:min(300px,100%);min-width:220px;margin:0 0 5px;padding:8px 30px 8px 9px;border-radius:9px;border:1px solid var(--borda,#333);background:var(--campo,#151517);color:inherit;font-size:.72rem}.nfe-vinculo-revisar{border-color:rgba(228,173,53,.55);background:rgba(228,173,53,.06)}.nfe-vinculo:disabled{opacity:.85}.nfe-preco-venda{min-width:105px;width:115px}
#nfe-itens-preview{min-width:1180px}#nfe-itens-preview td{vertical-align:top}#nfe-itens-preview [data-nfe-estoque],#nfe-itens-preview [data-nfe-custo-medio]{white-space:nowrap;font-weight:700}
.nfe-ver-detalhes{white-space:nowrap;padding:7px 10px;border:1px solid var(--borda,#333);border-radius:8px;background:transparent;color:inherit;cursor:pointer;font-size:.7rem;font-weight:800}.nfe-ver-detalhes:hover{border-color:var(--dourado,#d6aa35);color:var(--dourado,#d6aa35)}
#nfe-detalhes-overlay .nfe-resumo{grid-template-columns:repeat(3,minmax(120px,1fr))}
[data-theme="light"] .nfe-vinculo{background:#fff;border-color:#d9d4c8}[data-theme="light"] .nfe-vinculo-revisar{background:#fff9e9;border-color:#d9b65b}
@media(max-width:1100px){.nfe-meta-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.nfe-resumo{grid-template-columns:repeat(3,minmax(110px,1fr))}}
@media(max-width:650px){.nfe-meta-grid{grid-template-columns:1fr}.nfe-resumo{grid-template-columns:repeat(2,minmax(100px,1fr))}.nfe-legenda{display:grid;gap:7px}}
\n\n/* ======================================================================\n   NORTE PDV 4.0.15 — comprovante térmico comercial com logo\n   ====================================================================== */\n.config-cupom-layout{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:24px;align-items:start}\n.config-logo-cupom{display:grid;grid-template-columns:118px minmax(0,1fr);gap:14px;align-items:center;padding:14px;border:1px solid var(--borda);border-radius:14px;background:rgba(128,128,128,.035)}\n.config-logo-preview{height:82px;display:grid;place-items:center;border:1px dashed var(--borda);border-radius:10px;background:#fff;color:#888;font-size:.66rem;font-weight:850;letter-spacing:.08em;overflow:hidden}\n.config-logo-preview img{display:none;max-width:100%;max-height:76px;object-fit:contain;filter:grayscale(1) contrast(1.15)}\n.config-logo-preview.tem-logo span{display:none}.config-logo-preview.tem-logo img{display:block}\n.config-logo-controles{display:grid;gap:7px}.config-logo-controles label{display:grid;gap:6px}.config-logo-controles input[type=file]{width:100%;min-width:0}.config-logo-controles small{color:var(--texto-fraco,#8f8b80);font-size:.7rem}.config-logo-controles .btn-secundario{justify-self:start;min-height:34px;padding:0 11px}\n.cupom-mini-preview{position:sticky;top:90px;display:grid;gap:8px}.cupom-mini-label{font-size:.66rem;font-weight:900;letter-spacing:.09em;color:var(--texto-fraco,#8f8b80)}\n.cupom-mini-papel{width:100%;padding:18px 15px;background:#fff;color:#111;border:1px solid #d2d2d2;border-radius:8px;box-shadow:0 8px 24px rgba(0,0,0,.08);font-family:"Courier New",monospace;font-size:9px;line-height:1.3}\n.cupom-mini-identidade{display:grid;grid-template-columns:54px minmax(0,1fr);gap:8px;align-items:center}.cupom-mini-identidade>div:last-child{min-width:0;display:grid;gap:2px}.cupom-mini-identidade strong{font-size:11px;overflow-wrap:anywhere}.cupom-mini-identidade small{white-space:normal;overflow-wrap:anywhere}\n.cupom-mini-logo{height:46px;display:grid;place-items:center;border:1px dashed #bbb;font-size:7px;color:#777}.cupom-mini-logo img{display:none;max-width:100%;max-height:46px;object-fit:contain;filter:grayscale(1) contrast(1.2)}.cupom-mini-logo.tem-logo span{display:none}.cupom-mini-logo.tem-logo img{display:block}\n.cupom-mini-traco{border-top:1px dashed #777;margin:8px 0}.cupom-mini-papel> b,.cupom-mini-papel>em{display:block;text-align:center;font-style:normal}.cupom-mini-papel>em{font-size:8px;margin-top:2px}.cupom-mini-item,.cupom-mini-total{display:flex;justify-content:space-between;gap:8px}.cupom-mini-item small{font-size:8px}.cupom-mini-total b{font-size:12px}\n\n.cupom-identidade{width:100%;display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;align-items:center;text-align:left}.cupom-identidade:has(.cupom-logo-wrap.escondida){grid-template-columns:1fr;text-align:center}.cupom-logo-wrap{width:58px;height:54px;display:grid;place-items:center;overflow:hidden}.cupom-logo-wrap img{max-width:58px;max-height:54px;object-fit:contain;filter:grayscale(1) contrast(1.25)}\n.cupom-identidade-texto{min-width:0;display:grid;gap:2px}.cupom-identidade-texto>strong{max-width:100%;font-size:15px;line-height:1.12;letter-spacing:.01em;text-transform:uppercase;overflow-wrap:anywhere}.cupom-identidade-texto>span{max-width:100%;color:#333;font-size:9px;white-space:pre-line;line-height:1.22;overflow-wrap:anywhere}\n.cupom-cabecalho>b{margin-top:7px!important;font-size:11px!important;letter-spacing:.06em!important}.cupom-nao-fiscal{font-size:9px;font-weight:800;letter-spacing:.07em}.cupom-itens-cabecalho{padding-bottom:4px;border-bottom:1px dotted #888}.cupom-termico .recibo-item{padding:6px 0!important}.cupom-termico .recibo-item strong{font-size:10.5px}.cupom-termico .recibo-item span{font-size:9.5px}.cupom-termico .recibo-resumo #recibo-qtd-itens{padding-bottom:3px;margin-bottom:2px}.cupom-pagamento{display:grid;gap:4px}.cupom-pagamento>div{display:flex;justify-content:space-between;gap:10px}.cupom-pagamento-titulo{font-size:9.5px;letter-spacing:.02em}.cupom-pagamento>div:last-child{font-size:10.5px}.cupom-rodape>b{margin-top:4px;font-size:8px;letter-spacing:.06em}\n@media(max-width:900px){.config-cupom-layout{grid-template-columns:1fr}.cupom-mini-preview{position:static;max-width:320px;margin:0 auto;width:100%}}\n@media(max-width:520px){.config-logo-cupom{grid-template-columns:86px minmax(0,1fr);padding:11px}.config-logo-preview{height:70px}.config-logo-preview img{max-height:64px}.cupom-identidade{gap:8px}.cupom-logo-wrap{width:50px;height:48px}.cupom-logo-wrap img{max-width:50px;max-height:48px}}\n@media print{.cupom-logo-wrap img{filter:grayscale(1) contrast(1.35)!important}.cupom-identidade-texto>strong{font-size:12pt!important}.cupom-identidade-texto>span{font-size:8pt!important}.cupom-nao-fiscal{font-size:8pt!important}}\n
/* v4.0.16 — recuperação de terminal preso */
.terminal-recuperacao-card{cursor:default;display:flex;flex-direction:column;align-items:stretch;gap:6px}.terminal-recuperacao-card .btn-mini{margin-top:4px;align-self:flex-start}


/* ======================================================================
   NORTE PDV 4.0.17 — cabeçalho térmico: logo lateral + dados organizados
   ====================================================================== */
.cupom-identidade{
  width:100%;
  display:grid;
  grid-template-columns:62px minmax(0,1fr);
  gap:12px;
  align-items:start;
  text-align:left;
  box-sizing:border-box;
  padding:2px 12px 3px 10px;
}
.cupom-identidade:has(.cupom-logo-wrap.escondida){
  grid-template-columns:1fr;
  text-align:center;
  padding-left:12px;
}
.cupom-logo-wrap{
  width:58px;
  height:58px;
  display:grid;
  place-items:center;
  overflow:hidden;
  margin-top:1px;
}
.cupom-logo-wrap img{
  display:block;
  max-width:56px;
  max-height:56px;
  object-fit:contain;
  filter:grayscale(1) contrast(1.25);
}
.cupom-identidade-texto{
  min-width:0;
  display:grid;
  align-content:start;
  gap:4px;
  padding-top:1px;
}
.cupom-identidade-texto>strong{
  display:block;
  max-width:100%;
  font-size:14px;
  line-height:1.08;
  letter-spacing:.015em;
  text-transform:uppercase;
  overflow-wrap:anywhere;
}
.cupom-identidade-texto>span{
  display:block;
  max-width:100%;
  color:#333;
  font-size:9px;
  white-space:pre-line;
  line-height:1.32;
  overflow-wrap:anywhere;
}
.cupom-cabecalho>b{margin-top:8px!important}

@media(max-width:520px){
  .cupom-identidade{grid-template-columns:58px minmax(0,1fr);gap:10px;padding-left:9px;padding-right:9px}
  .cupom-logo-wrap{width:54px;height:54px}
  .cupom-logo-wrap img{max-width:52px;max-height:52px}
  .cupom-identidade-texto>strong{font-size:13px}
  .cupom-identidade-texto>span{font-size:8.5px}
}
@media print{
  .cupom-identidade{grid-template-columns:17mm minmax(0,1fr)!important;gap:3mm!important;padding:0 2.5mm 1mm 2.5mm!important;align-items:start!important}
  .cupom-logo-wrap{width:16mm!important;height:16mm!important;margin-top:.5mm!important}
  .cupom-logo-wrap img{max-width:15mm!important;max-height:15mm!important}
  .cupom-identidade-texto{gap:1mm!important;padding-top:.5mm!important}
  .cupom-identidade-texto>strong{font-size:11pt!important;line-height:1.05!important}
  .cupom-identidade-texto>span{font-size:7.5pt!important;line-height:1.28!important}
}
