:root{
  --zz-bg:#f3f6fa;
  --zz-card:#ffffff;
  --zz-text:#17324d;
  --zz-muted:#6e7e90;
  --zz-line:#d6e7f8;
  --zz-blue:#1765a8;
  --zz-blue-dark:#0f4c81;
  --zz-dark:#0f172a;
  --zz-danger:#d9534f;
  --zz-nav-bg:#f3f4f6;
  --zz-nav-border:#dfe5ee;
  --zz-secondary-bg:#eef2ff;
  --zz-secondary-border:#b9c8ff;
  --zz-secondary-text:#2748b0;
  --zz-shadow:0 12px 28px rgba(15,23,42,.08);
  --zz-cadastro-card-min-height: clamp(585px, calc(100vh - 102px), 880px);
}

*{box-sizing:border-box}
html,body{
  height:100%;
  margin:0;
  padding:0;
}
body{
  margin:0;
  padding:0;
  background:var(--zz-bg);
  color:var(--zz-text);
  font-family:Arial, Helvetica, sans-serif;
}
body.zz-page{
  margin:0;
  padding:0;
  background:var(--zz-bg);
  color:var(--zz-text);
  font-family:Arial, Helvetica, sans-serif;
}

html,
body{
  min-height:100%;
}

html{
  overflow-y:scroll;
  scrollbar-gutter:stable;
}

.zz-topbar{
  min-height:62px;
  background:linear-gradient(135deg, var(--zz-blue-dark), var(--zz-blue));
  color:#fff;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:0 24px;
  box-shadow:0 3px 12px rgba(0,0,0,.10);
}

.zz-topbar__title{
  display:flex;
  align-items:center;
  gap:12px;
  font-size:18px;
  font-weight:800;
  line-height:1.1;
}

.zz-topbar__title h1,
.zz-topbar__title h2,
.zz-topbar__title h3,
.zz-topbar__title p,
.zz-topbar__title span{
  margin:0;
  line-height:1.1;
}



.zz-topbar-home-link{
  width:38px;
  height:38px;
  border-radius:12px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  color:#fff;
  text-decoration:none;
  transition:background .2s ease, transform .12s ease;
}
.zz-topbar-home-link:hover{background:rgba(255,255,255,.12)}
.zz-topbar-home-link:active{transform:translateY(1px)}
.zz-home-icon{display:block;width:20px;height:20px;fill:currentColor}


.zz-home-icon-img{
  display:block;
  width:20px;
  height:20px;
  object-fit:contain;
}

.zz-wrap{
  max-width:1380px;
  margin:22px auto;
  padding:0 18px 26px;
}

.zz-card{
  background:var(--zz-card);
  border:1px solid var(--zz-line);
  border-radius:22px;
  box-shadow:var(--zz-shadow);
  overflow:hidden;
}

.zz-card__header{
  padding:18px 22px 14px;
  border-bottom:1px solid var(--zz-line);
}

.zz-card__header h1{
  margin:0;
  font-size:24px;
  font-weight:800;
  color:#0d1b34;
}

.zz-card__subtitle{
  margin-top:8px;
  color:#77839a;
  font-size:12px;
}

.zz-card__body{padding:14px 18px 18px}

.zz-form-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:14px 12px;
}
.zz-col-1{grid-column:span 1}
.zz-col-2{grid-column:span 2}
.zz-col-3{grid-column:span 3}
.zz-col-4{grid-column:span 4}

.zz-field{display:flex;flex-direction:column;min-width:0}
.zz-field label{
  margin-bottom:6px;
  font-size:13px;
  font-weight:700;
  color:#243b63;
}

.zz-input,
.zz-select,
.zz-check,
.zz-textarea{
  width:100%;
  min-height:44px;
  border:1px solid var(--zz-line);
  border-radius:16px;
  background:#fff;
  font-size:16px;
}

.zz-input,
.zz-select,
.zz-textarea{padding:0 14px; outline:none}
.zz-textarea{padding:12px 14px; min-height:88px; resize:vertical}
.zz-input:focus,
.zz-select:focus,
.zz-textarea:focus{border-color:#93c5fd; box-shadow:0 0 0 4px rgba(59,130,246,.14)}

.zz-check{
  display:flex;
  align-items:center;
  gap:10px;
  padding:0 14px;
  font-weight:700;
}
.zz-check input{width:18px;height:18px}

.zz-hint{font-size:12px;color:#7b8798;padding-top:8px}

.zz-actions{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:10px;
  border-top:1px solid var(--zz-line);
  margin-top:18px;
  padding-top:16px;
  flex-wrap:nowrap;
  width:100%;
  min-width:0;
}

.zz-actions-left,
.zz-actions-right{
  display:flex;
  align-items:flex-end;
  gap:8px;
  min-width:0;
}

.zz-actions-left{
  flex:0 1 auto;
  flex-wrap:wrap;
}

.zz-actions-right{
  flex:1 1 auto;
  justify-content:flex-end;
  flex-wrap:wrap;
}

.zz-msg{
  display:none;
  margin-top:12px;
  font-weight:800;
  color:#16a34a;
}
.zz-msg.is-error{color:#dc2626}
.zz-msg.is-visible{display:block}

.zz-btn{
  min-width:92px;
  height:42px;
  padding:0 12px;
  border-radius:14px;
  border:1px solid transparent;
  font-size:13px;
  font-weight:800;
  cursor:pointer;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  text-decoration:none;
  transition:transform .12s ease, box-shadow .2s ease;
  box-shadow:none;
  white-space:nowrap;
}
.zz-btn-nav{
  min-width:108px;
}
.zz-btn:hover{transform:translateY(-1px)}
.zz-btn:active{transform:translateY(0)}
.zz-btn-nav{background:var(--zz-nav-bg); color:#111827; border-color:var(--zz-nav-border)}
.zz-btn-dark{background:var(--zz-dark); color:#fff}
.zz-btn-secondary{background:var(--zz-secondary-bg); color:var(--zz-secondary-text); border-color:var(--zz-secondary-border)}
#btnEditar{
  min-width:114px;
  height:44px;
  padding:0 18px;
  border-radius:16px;
  border:1px solid var(--zz-secondary-border);
  background:var(--zz-secondary-bg);
  color:var(--zz-secondary-text);
  font-size:14px;
  font-weight:800;
  cursor:pointer;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  text-decoration:none;
  box-shadow:none;
  appearance:none;
  -webkit-appearance:none;
}

#btnEditar:hover{
  transform:translateY(-1px);
}

#btnEditar:active{
  transform:translateY(0);
}

#btnEditar[disabled]{
  opacity:.55;
  cursor:not-allowed;
  transform:none;
}

.zz-btn-danger{background:var(--zz-danger); color:#fff}
.zz-btn-primary{background:var(--zz-blue); color:#fff}
.zz-btn[disabled]{opacity:.55;cursor:not-allowed;transform:none}

.zz-modal-mask{
  position:fixed;inset:0;display:none;align-items:center;justify-content:center;
  background:rgba(15,23,42,.36);z-index:9999;padding:16px;
}
.zz-modal-mask.is-open{display:flex}
.zz-modal{
  width:min(1100px,100%);
  background:#fff;
  border-radius:22px;
  box-shadow:0 20px 60px rgba(15,23,42,.28);
  border:1px solid rgba(255,255,255,.25);
  overflow:hidden;
}
.zz-modal__head{padding:18px;border-bottom:1px solid var(--zz-line);display:flex;justify-content:space-between;align-items:flex-start}
.zz-modal__head h3{margin:0;font-size:28px}
.zz-modal__sub{margin-top:4px;color:var(--zz-muted);font-weight:600}
.zz-modal__close{width:44px;height:44px;border-radius:12px;border:1px solid var(--zz-line);background:#fff;font-size:22px;cursor:pointer}
.zz-modal__body{padding:16px 18px 18px}
.zz-modal__row{display:grid;grid-template-columns:260px 1fr 140px 140px;gap:12px;align-items:end;margin-bottom:12px}
.zz-modal__row--3{display:grid;grid-template-columns:1fr 1fr 160px;gap:12px;align-items:end;margin-bottom:12px}

.zz-table{width:100%;border-collapse:separate;border-spacing:0;border:1px solid var(--zz-line);border-radius:14px;overflow:hidden;background:#fff}
.zz-table th{padding:12px;text-align:left;font-size:13px;color:#64748b;background:#fbfdff;border-bottom:1px solid var(--zz-line)}
.zz-table td{padding:12px;border-bottom:1px solid var(--zz-line);font-size:15px}
.zz-table tbody tr:hover{background:#f1f5ff;cursor:pointer}
.zz-table tbody tr.is-selected{background:#e7efff}
.zz-pill{display:inline-flex;align-items:center;justify-content:center;padding:6px 10px;border-radius:999px;font-weight:800;border:1px solid var(--zz-line);background:#f8fafc;color:#0f172a;min-width:110px}
.zz-status-ok{background:#dcfce7;border-color:#bbf7d0;color:#166534}

@media (max-width: 1150px){
  .zz-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .zz-col-3,.zz-col-4{grid-column:span 2}
}

@media (max-width: 1200px){
  .zz-btn{
    min-width:84px;
    padding:0 10px;
    font-size:12px;
  }

  .zz-btn-nav{
    min-width:98px;
  }
}

@media (max-width: 900px){
  .zz-topbar{padding:0 16px;min-height:58px}
  .zz-wrap{padding:0 12px 22px}
  .zz-form-grid,.zz-modal__row,.zz-modal__row--3{grid-template-columns:1fr}
  .zz-col-2,.zz-col-3,.zz-col-4{grid-column:span 1}
  .zz-actions{
    flex-direction:column;
    align-items:stretch;
  }
  .zz-actions-left,.zz-actions-right{
    width:100%;
    justify-content:center;
    flex-wrap:wrap;
  }
  .zz-btn,
  .zz-btn-nav{
    min-width:auto;
    flex:1 1 160px;
  }
}



/* =========================
   MODAL PADRÃO DE MENSAGEM DO SISTEMA
   Visual centralizado no loja.css.
   O texto/título continuam vindo do loja-ui.js/tela.
   ========================= */
.zz-system-message-mask .zz-system-message-modal{
  width:min(620px, 92vw);
  max-width:620px;
  border-radius:var(--zz-radius-botao, 6px) !important;
  overflow:hidden;
}

.zz-system-message-mask .zz-system-message-head{
  padding:18px 18px 14px 18px;
}

.zz-system-message-mask .zz-system-message-head-text{
  min-width:0;
}

.zz-system-message-mask .zz-system-message-title{
  margin:0;
  font-size:30px;
  line-height:1.05;
  color:#17324d;
}

.zz-system-message-mask .zz-system-message-subtitle{
  display:none;
  margin-top:6px;
  font-weight:700;
  color:#64748b;
}

.zz-system-message-mask .zz-system-message-close{
  border-radius:var(--zz-radius-botao, 6px) !important;
}

.zz-system-message-mask .zz-system-message-body{
  padding:16px 18px 18px 18px;
}

.zz-system-message-mask .zz-system-message-text{
  border:0;
  border-bottom:1px solid var(--zz-line, #d7e3f5);
  border-radius:0;
  padding:2px 0 16px 0;
  background:transparent;
  color:#073b88;
  font-size:16px;
  font-weight:800;
  line-height:1.35;
  text-align:center;
  white-space:pre-line;
}

.zz-system-message-mask.zz-system-message--success .zz-system-message-text,
.zz-system-message-mask[data-variant="success"] .zz-system-message-text{
  color:#073b88;
}

.zz-system-message-mask.zz-system-message--warning .zz-system-message-text,
.zz-system-message-mask[data-variant="warning"] .zz-system-message-text{
  color:#9a5b00;
}

.zz-system-message-mask.zz-system-message--error .zz-system-message-text,
.zz-system-message-mask[data-variant="error"] .zz-system-message-text{
  color:#b42318;
}

.zz-system-message-mask .zz-system-message-actions{
  display:flex;
  justify-content:flex-end;
  align-items:center;
  gap:8px;
  margin-top:12px;
}

.zz-system-message-mask .zz-system-message-ok,
.zz-system-message-mask .zz-system-message-cancel{
  min-width:92px;
  height:42px;
  border-radius:var(--zz-radius-botao, 6px) !important;
}


/* =========================
   PADRÃO GLOBAL - CADASTROS
   Clientes / Empresa
   ========================= */

.zz-page{
  background:var(--zz-bg);
  min-height:calc(100vh - 62px);
}

.clientes-page,
.empresa-page{
  width:100%;
  max-width:1380px;
  margin:8px auto;
  padding:0 18px 8px;
  box-sizing:border-box;
}

.clientes-page .zz-card,
.empresa-page .zz-card{
  width:100%;
  border-radius:18px;
}

.clientes-page .zz-card__header,
.empresa-page .zz-card__header{
  padding:12px 16px 10px;
}

.clientes-page .zz-card__header h1,
.empresa-page .zz-card__header h1{
  font-size:20px;
  margin:0;
}

.clientes-page .zz-card__body,
.empresa-page .zz-card__body{
  padding:12px 18px 8px;
}

#form-cliente,
#form-empresa{
  flex:1;
  display:flex;
  flex-direction:column;
  min-height:0;
}

#form-cliente > :last-child,
#form-empresa > :last-child{
  margin-top:auto;
}

.clientes-form-grid,
.empresa-form-grid{
  display:grid;
  grid-template-columns:repeat(20,minmax(0,1fr));
  gap:10px 10px;
  align-items:end;
}

.clientes-field,
.empresa-field{
  display:flex;
  flex-direction:column;
  min-width:0;
  position:relative;
}

.clientes-label,
.empresa-label{
  margin:0 0 4px;
  font-size:12px;
  font-weight:700;
  line-height:1.1;
  color:#0f2d63;
}

.clientes-field input,
.clientes-field select,
.empresa-field input,
.empresa-field select{
  width:100%;
  height:40px;
  padding:0 14px;
  border:1px solid #bccbe0;
  border-radius:14px;
  background:#fff;
  color:#21436a;
  font-size:14px;
  outline:none;
  box-sizing:border-box;
  appearance:none;
  -webkit-appearance:none;
  -moz-appearance:none;
}

.clientes-field input:focus,
.clientes-field select:focus,
.empresa-field input:focus,
.empresa-field select:focus{
  border-color:#5b88da;
  box-shadow:0 0 0 2px rgba(91,136,218,.12);
}

.clientes-field select,
.empresa-field select{
  padding-right:36px;
}

.clientes-page .result-select,
.empresa-page .result-select{
  margin-bottom:12px;
  padding:12px;
  border:1px solid #d7e0ec;
  border-radius:14px;
  background:#f9fbff;
}

.clientes-page .result-select label,
.empresa-page .result-select label{
  display:block;
  margin-bottom:6px;
  font-size:12px;
  font-weight:700;
  color:#113c7b;
}

.clientes-page .result-select select,
.empresa-page .result-select select{
  width:100%;
  min-height:120px;
  border:1px solid #bccbe0;
  border-radius:14px;
  padding:10px;
  font-size:14px;
  color:#21436a;
  background:#fff;
}

.clientes-page .zz-msg,
.empresa-page .zz-msg{
  display:none;
  margin-top:12px;
}

.clientes-page .zz-msg.is-visible,
.empresa-page .zz-msg.is-visible{
  display:block;
}

/* spans compartilhados */
.clientes-page .span-20,
.empresa-page .span-20{grid-column:span 20}
.clientes-page .span-15,
.empresa-page .span-15{grid-column:span 15}
.clientes-page .span-14,
.empresa-page .span-14{grid-column:span 14}
.clientes-page .span-12,
.empresa-page .span-12{grid-column:span 12}
.clientes-page .span-10,
.empresa-page .span-10{grid-column:span 10}
.clientes-page .span-9,
.empresa-page .span-9{grid-column:span 9}
.clientes-page .span-8,
.empresa-page .span-8{grid-column:span 8}
.clientes-page .span-7,
.empresa-page .span-7{grid-column:span 7}
.clientes-page .span-6,
.empresa-page .span-6{grid-column:span 6}
.clientes-page .span-5,
.empresa-page .span-5{grid-column:span 5}
.clientes-page .span-4,
.empresa-page .span-4{grid-column:span 4}
.clientes-page .span-3,
.empresa-page .span-3{grid-column:span 3}
.clientes-page .span-2,
.empresa-page .span-2{grid-column:span 2}



/* =========================
   PADRÃO GLOBAL - LINHAS COM COLUNAS IGUAIS
   Use dentro de clientes-form-grid / empresa-form-grid quando os campos
   da mesma linha precisam dividir a largura igualmente.
   ========================= */
.clientes-form-grid > .zz-grid-row,
.empresa-form-grid > .zz-grid-row{
  grid-column:span 20;
}

.zz-grid-row{
  display:grid;
  gap:10px 10px;
  align-items:end;
  width:100%;
  min-width:0;
}

.zz-grid-row-2{grid-template-columns:repeat(2,minmax(0,1fr));}
.zz-grid-row-3{grid-template-columns:repeat(3,minmax(0,1fr));}
.zz-grid-row-4{grid-template-columns:repeat(4,minmax(0,1fr));}

.zz-grid-row > .clientes-field,
.zz-grid-row > .empresa-field{
  min-width:0;
}

.zz-grid-row > [class*="span-"]{
  grid-column:auto;
}

@media (max-width: 1200px){
  .clientes-form-grid > .zz-grid-row,
  .empresa-form-grid > .zz-grid-row{
    grid-column:span 12;
  }
}

@media (max-width: 820px){
  .clientes-form-grid > .zz-grid-row,
  .empresa-form-grid > .zz-grid-row{
    grid-column:span 6;
  }

  .zz-grid-row-2,
  .zz-grid-row-3,
  .zz-grid-row-4{
    grid-template-columns:1fr;
  }
}


/* autocomplete do cliente */
.clientes-page .autocomplete-box{
  position:absolute;
  top:calc(100% + 4px);
  left:0;
  right:0;
  z-index:30;
  background:#fff;
  border:1px solid #cfd9ea;
  border-radius:14px;
  box-shadow:0 8px 24px rgba(17,40,87,.12);
  max-height:260px;
  overflow-y:auto;
  display:none;
}

.clientes-page .autocomplete-item{
  padding:9px 12px;
  border-bottom:1px solid #edf2f8;
  cursor:pointer;
  font-size:13px;
  line-height:1.25;
  color:#163865;
}

.clientes-page .autocomplete-item:last-child{border-bottom:none}
.clientes-page .autocomplete-item:hover,
.clientes-page .autocomplete-item.active{background:#f4f7fd}
.clientes-page .autocomplete-item small{
  display:block;
  color:#5d7395;
  margin-top:2px;
}

@media (max-width: 1200px){
  .clientes-form-grid,
  .empresa-form-grid{grid-template-columns:repeat(12,minmax(0,1fr))}
  .clientes-page .span-20, .clientes-page .span-15, .clientes-page .span-14, .clientes-page .span-12, .clientes-page .span-10,
  .empresa-page .span-20, .empresa-page .span-15, .empresa-page .span-14, .empresa-page .span-12, .empresa-page .span-10, .empresa-page .span-9, .empresa-page .span-8{grid-column:span 12}
  .clientes-page .span-9, .clientes-page .span-8, .clientes-page .span-7, .clientes-page .span-6, .clientes-page .span-5,
  .empresa-page .span-7, .empresa-page .span-6, .empresa-page .span-5, .empresa-page .span-4{grid-column:span 6}
  .clientes-page .span-4, .clientes-page .span-3, .clientes-page .span-2,
  .empresa-page .span-3, .empresa-page .span-2{grid-column:span 4}
}

@media (max-width: 900px){
  .clientes-page,
  .empresa-page{padding:8px}
  #form-cliente,
  #form-empresa{min-height:auto}
}

@media (max-width: 820px){
  .clientes-form-grid,
  .empresa-form-grid{grid-template-columns:repeat(6,minmax(0,1fr))}
  .clientes-page .span-20, .clientes-page .span-15, .clientes-page .span-14, .clientes-page .span-12, .clientes-page .span-10, .clientes-page .span-9, .clientes-page .span-8, .clientes-page .span-7, .clientes-page .span-6, .clientes-page .span-5, .clientes-page .span-4, .clientes-page .span-3, .clientes-page .span-2,
  .empresa-page .span-20, .empresa-page .span-15, .empresa-page .span-14, .empresa-page .span-12, .empresa-page .span-10, .empresa-page .span-9, .empresa-page .span-8, .empresa-page .span-7, .empresa-page .span-6, .empresa-page .span-5, .empresa-page .span-4, .empresa-page .span-3, .empresa-page .span-2{grid-column:span 6}
}


/* =========================
   MODAL PADRÃO DE CONSULTA
   ========================= */
.zz-modal{
  width:min(1100px, calc(100vw - 32px));
  max-width:calc(100vw - 32px);
  max-height:min(88vh, 920px);
  display:flex;
  flex-direction:column;
  overflow:hidden;
}

.zz-modal__body{
  display:flex;
  flex-direction:column;
  gap:12px;
  min-height:0;
  flex:1 1 auto;
  overflow:hidden;
}

.zz-modal__table-wrap{
  flex:1 1 auto;
  min-height:0;
  max-width:100%;
  overflow:auto;
  border:1px solid var(--zz-line);
  border-radius:14px;
  background:#fff;
}

.zz-modal__table-wrap .zz-table{
  width:100%;
  margin:0;
  border:none;
  border-radius:0;
}

.zz-modal__table-wrap .zz-table th{
  position:sticky;
  top:0;
  z-index:2;
  background:#fbfdff;
}

.zz-modal__table-wrap .zz-table td,
.zz-modal__table-wrap .zz-table th{
  white-space:nowrap;
}

@media (max-width: 900px){
  .zz-modal{
    width:min(96vw, calc(100vw - 16px));
    max-width:calc(100vw - 16px);
    max-height:calc(100vh - 24px);
  }
}



/* =========================
   AJUSTE CIRÚRGICO - ALTURA RESPONSIVA GLOBAL DOS CADASTROS
   ========================= */

:root{
  --zz-cadastro-card-min-height: clamp(585px, calc(100vh - 102px), 880px);
}

body.zz-page{
  min-height:100vh;
}

.zz-page{
  min-height:calc(100vh - 62px);
  display:flex;
  flex-direction:column;
}

.zz-page .zz-card,
.clientes-page .zz-card,
.empresa-page .zz-card{
  min-height:var(--zz-cadastro-card-min-height);
  display:flex;
  flex-direction:column;
}

.zz-page .zz-card__body,
.clientes-page .zz-card__body,
.empresa-page .zz-card__body{
  flex:1;
  display:flex;
  flex-direction:column;
}

.zz-page .zz-card__body > form,
.zz-page .zz-card__body > .zz-cadastro-form,
.clientes-page .zz-cadastro-form,
.empresa-page .zz-cadastro-form,
#form-cliente,
#form-empresa{
  flex:1;
  display:flex;
  flex-direction:column;
  min-height:0;
}

.zz-page .zz-actions,
.clientes-page .zz-actions,
.empresa-page .zz-actions{
  margin-top:auto !important;
  padding-top:12px;
  padding-bottom:0;
  align-items:flex-end;
}

.zz-page .zz-actions-left,
.zz-page .zz-actions-right,
.clientes-page .zz-actions-left,
.empresa-page .zz-actions-left,
.clientes-page .zz-actions-right,
.empresa-page .zz-actions-right{
  align-items:flex-end;
}



.zz-page .zz-actions-left,
.zz-page .zz-actions-right,
.clientes-page .zz-actions-left,
.empresa-page .zz-actions-left,
.clientes-page .zz-actions-right,
.empresa-page .zz-actions-right{
  align-items:flex-end;
}

.zz-page .zz-card.zz-card--compact{
  min-height:auto !important;
}

.zz-page .zz-card.zz-card--compact .zz-card__body{
  flex:0 0 auto;
}

.zz-page .zz-card.zz-card--compact .zz-actions{
  margin-top:18px !important;
}

.zz-page .zz-card.zz-card--compact .zz-actions-left,
.zz-page .zz-card.zz-card--compact .zz-actions-right{
  align-items:center;
}

.zz-alert{
  margin-bottom:14px;
  padding:12px 14px;
  border-radius:12px;
  font-size:14px;
  font-weight:700;
  border:1px solid transparent;
}

.zz-alert-error{
  background:#fff1f2;
  border-color:#fecdd3;
  color:#b42318;
}

.zz-alert-success{
  background:#ecfdf3;
  border-color:#abefc6;
  color:#067647;
}

.zz-message-box{
  padding:10px 4px 4px;
  font-size:18px;
  line-height:1.5;
  color:#17345f;
  text-align:center;
}

.zz-message-box strong{
  font-weight:800;
}

.zz-message-actions{
  display:flex;
  justify-content:center;
  gap:10px;
}

.zz-home-icon-img{
  display:block;
  width:20px;
  height:20px;
  object-fit:contain;
}



@media (max-width: 900px){
  :root{
    --zz-cadastro-card-min-height: auto;
  }

  .zz-page .zz-card,
  .clientes-page .zz-card,
  .empresa-page .zz-card{
    min-height:unset;
  }

  .zz-page .zz-actions,
  .clientes-page .zz-actions,
  .empresa-page .zz-actions{
    align-items:stretch;
  }

  .zz-page .zz-actions-left,
  .zz-page .zz-actions-right,
  .clientes-page .zz-actions-left,
  .empresa-page .zz-actions-left,
  .clientes-page .zz-actions-right,
  .empresa-page .zz-actions-right{
    align-items:stretch;
  }
}


/* =========================
   ESTOQUE - REGRAS ESPECÍFICAS
   ========================= */
.zz-wrap.estoque-page{
  max-width:1380px;
  margin:16px auto 8px;
  padding:0 18px 8px;
}

.zz-wrap.estoque-page .zz-card__body{
  padding:10px 18px 6px;
}

.zz-wrap.estoque-page .zz-actions{
  margin-top:8px;
  padding-top:10px;
}

.estoque-form-grid{
  display:grid;
  grid-template-columns:repeat(12,minmax(0,1fr));
  gap:10px 10px;
}

.estoque-span-12{ grid-column:span 12; }
.estoque-span-8{ grid-column:span 8; }
.estoque-span-7{ grid-column:span 7; }
.estoque-span-6{ grid-column:span 6; }
.estoque-span-5{ grid-column:span 5; }
.estoque-span-4{ grid-column:span 4; }
.estoque-span-3{ grid-column:span 3; }
.estoque-span-2{ grid-column:span 2; }

.estoque-field label{
  display:block;
  margin-bottom:4px;
  font-size:12px;
  font-weight:700;
  color:#0f2d63;
}

.estoque-field input,
.estoque-field select,
.estoque-field textarea{
  width:100%;
}

.estoque-inline{
  display:flex;
  gap:10px;
  align-items:center;
  flex-wrap:nowrap;
}

.estoque-inline > .zz-input{
  flex:1 1 auto;
  min-width:0;
}

.estoque-inline > .estoque-chip{
  flex:0 0 auto;
  white-space:nowrap;
}

.estoque-inline-split{
  display:flex;
  gap:10px;
}

.estoque-inline-split .zz-input{
  width:100%;
}

.estoque-textarea{
  min-height:44px;
  resize:none;
  overflow:auto;
}

.estoque-hint{
  margin-top:6px;
  font-size:12px;
  color:#5d6b84;
}

.estoque-tabs{
  display:flex;
  gap:8px;
  margin:0 0 8px 0;
  flex-wrap:wrap;
}

.estoque-tab{
  border:1px solid #d7e0ee;
  background:#f6f8fc;
  color:#203a64;
  border-radius:12px 12px 0 0;
  padding:8px 14px;
  font-weight:700;
  cursor:pointer;
}

.estoque-tab.ativa{
  background:#fff;
  border-bottom-color:#fff;
  box-shadow:0 -1px 0 #fff inset;
}

.aba-conteudo{ display:none; width:100%; }
.aba-conteudo.ativa{ display:block; width:100%; }


/* =========================
   ESTOQUE - ALTURA / LARGURA DAS ABAS
   ========================= */

:root{
  --estoque-aba-altura: 462px;
}

.estoque-main-box,
.estoque-itens-box,
.estoque-fill-box{
  display:flex;
  flex-direction:column;
  width:100%;
  max-width:100%;
  box-sizing:border-box;
}

/* aba principal continua natural */
.estoque-main-box{
  min-height:auto;
  height:auto;
}

/* abas secundárias seguem a altura visual da principal */
.estoque-itens-box,
.estoque-fill-box,
.estoque-sync-box{
  min-height:var(--estoque-aba-altura);
  height:var(--estoque-aba-altura);
}

.estoque-main-box .estoque-form-grid{
  flex:1 1 auto;
  align-content:start;
}

.estoque-main-box .estoque-field.estoque-observacao{
  display:flex;
  flex-direction:column;
}

.estoque-main-box .estoque-field.estoque-observacao .estoque-textarea{
  flex:1 1 auto;
  min-height:180px;
}

.estoque-itens-box .estoque-table-wrap.itens-grid{
  flex:1 1 auto;
  min-height:0;
  height:auto;
  max-height:none;
}

.estoque-empty{
  text-align:center;
  color:#7a8ba5;
  font-style:italic;
  padding:18px 12px;
}

.estoque-table-wrap.estoque-fill-wrap{
  flex:1 1 auto;
  min-height:0;
  display:flex;
  flex-direction:column;
  width:calc(100% + 24px);
  max-width:calc(100% + 24px);
  margin-left:-12px;
  margin-right:-12px;
  border-left:none;
  border-right:none;
  border-radius:0;
}

/* largura/altura internas iguais nas abas secundárias */
.estoque-fill-box .estoque-fill-area{
  flex:1 1 auto;
  min-height:0;
  display:flex;
  align-items:stretch;
  width:100%;
  max-width:100%;
  box-sizing:border-box;
  padding:0;
  margin:0;
  scrollbar-gutter:auto;
}

.estoque-fill-box .estoque-totais,
.estoque-fill-box .estoque-duplicatas-wrap,
.estoque-fill-box .estoque-table-wrap{
  width:100%;
  max-width:100%;
  box-sizing:border-box;
  margin:0;
}

.estoque-fill-box .estoque-totais{
  display:flex;
  gap:28px;
  flex-wrap:wrap;
}

.estoque-fill-box .estoque-hint{
  margin-top:0;
}

.estoque-itens-box .estoque-table-wrap.itens-grid,
.estoque-fill-box .estoque-fill-area,
.estoque-fill-box .estoque-duplicatas-wrap,
.estoque-fill-box .estoque-table-wrap{
  flex:1 1 auto;
  min-height:0;
}

.estoque-box{
  border:1px solid #dbe4f0;
  border-radius:16px;
  padding:10px 12px 12px;
  background:#fff;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.7);
  width:100%;
  max-width:100%;
  box-sizing:border-box;
}

.estoque-status-row{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  margin-top:10px;
}

.estoque-chip{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:6px 12px;
  border-radius:999px;
  border:1px solid #d7e0ee;
  background:#f8fbff;
  color:#5b6f90;
  font-weight:700;
  font-size:12px;
}

.estoque-chip.ok{
  background:#e8f8ed;
  border-color:#c4e8d0;
  color:#177245;
}

.estoque-chip.err{
  background:#fff1f2;
  border-color:#f1c4cb;
  color:#b42318;
}

.estoque-toolbar{
  display:none;
}

.estoque-item-side-actions{
  position:absolute;
  top:12px;
  right:10px;
  z-index:4;
  display:flex;
  align-items:stretch;
  justify-content:flex-end;
  pointer-events:none;
}

.estoque-item-side-strip{
  width:14px;
  min-height:112px;
  border-radius:999px;
  background:linear-gradient(180deg,#eef4ff 0%, #dfe9fb 100%);
  border:1px solid #d4e0f2;
  box-shadow:0 4px 14px rgba(21,55,110,.08);
  cursor:pointer;
  pointer-events:auto;
  transition:opacity .18s ease, transform .18s ease;
  opacity:.9;
}

.estoque-item-side-buttons{
  display:flex;
  flex-direction:column;
  gap:10px;
  margin-right:10px;
  opacity:0;
  transform:translateX(12px);
  pointer-events:none;
  transition:opacity .18s ease, transform .18s ease;
}

.estoque-itens-box:hover .estoque-item-side-buttons,
.estoque-item-side-actions:hover .estoque-item-side-buttons{
  opacity:1;
  transform:translateX(0);
  pointer-events:auto;
}

.estoque-itens-box:hover .estoque-item-side-strip,
.estoque-item-side-actions:hover .estoque-item-side-strip{
  opacity:1;
  transform:scaleX(1.05);
}

.estoque-itens-box{
  position:relative;
  padding-right:76px;
}

.estoque-item-side-buttons .zz-btn{
  min-width:188px;
}

.estoque-table-wrap{
  border:1px solid #dbe4f0;
  border-radius:16px;
  overflow:auto;
  background:#fff;
  scrollbar-gutter:auto;
}

.estoque-table-wrap.itens-grid{
  overflow:auto;
}

.estoque-grid-meta{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin:0 0 10px 0;
  font-size:12px;
  color:#5d6b84;
  flex-wrap:wrap;
}

.estoque-grid-meta b{
  color:#0f2d63;
}

.estoque-table{
  width:100%;
  border-collapse:separate;
  border-spacing:0;
}

.estoque-table thead th{
  position:sticky;
  top:0;
  background:#f8fbff;
  z-index:2;
  color:#5c6f91;
  font-size:13px;
  font-weight:800;
  text-align:left;
  padding:10px 12px;
  border-bottom:1px solid #dbe4f0;
  white-space:nowrap;
}

.estoque-table tbody td{
  padding:10px 12px;
  border-bottom:1px solid #edf2f7;
  vertical-align:middle;
}

.estoque-table tbody tr:hover{
  background:#f9fbff;
}

.item-seq[data-item-id]{
  cursor:help;
}

.estoque-table td input,
.estoque-table td select{
  width:100%;
}

.estoque-right{
  text-align:right;
}

.estoque-totais{
  display:flex;
  gap:28px;
  flex-wrap:wrap;
  font-size:16px;
  font-weight:700;
  color:#203a64;
}

.estoque-totais .value{
  color:#0f2d63;
}

@media (max-width: 1200px){
  .estoque-form-grid{
    grid-template-columns:repeat(6,minmax(0,1fr));
  }

  .estoque-span-12,
  .estoque-span-8,
  .estoque-span-7,
  .estoque-span-6,
  .estoque-span-5,
  .estoque-span-4,
  .estoque-span-3,
  .estoque-span-2{
    grid-column:span 6;
  }
}

@media (max-width: 820px){
  .zz-wrap.estoque-page{
    padding:0 12px 8px;
  }

  .estoque-form-grid{
    grid-template-columns:repeat(1,minmax(0,1fr));
  }

  .estoque-span-12,
  .estoque-span-8,
  .estoque-span-7,
  .estoque-span-6,
  .estoque-span-5,
  .estoque-span-4,
  .estoque-span-3,
  .estoque-span-2{
    grid-column:span 1;
  }

  .estoque-inline-split{
    flex-direction:column;
  }

  .estoque-itens-box,
  .estoque-fill-box,
  .estoque-sync-box{
    min-height:auto;
    height:auto;
  }

  .estoque-itens-box{
    padding-right:12px;
  }

  .estoque-item-side-actions{
    position:static;
    margin-bottom:10px;
    justify-content:flex-start;
  }

  .estoque-item-side-strip{
    display:none;
  }

  .estoque-item-side-buttons{
    opacity:1;
    transform:none;
    pointer-events:auto;
    margin-right:0;
    width:100%;
  }

  .estoque-item-side-buttons .zz-btn{
    min-width:0;
    width:100%;
  }
}


/* =========================
   LOGIN - PADRÃO LOJA
   ========================= */

.zz-login-wrap{
  min-height:100vh;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:24px 16px;
  background:var(--zz-bg);
}

.zz-login-card{
  width:min(100%, 380px);
  background:var(--zz-card);
  border:1px solid var(--zz-line);
  border-radius:22px;
  box-shadow:var(--zz-shadow);
  overflow:hidden;
}

.zz-login-card .zz-card__header{
  padding:18px 22px 14px;
  border-bottom:1px solid var(--zz-line);
}

.zz-login-card .zz-card__header h1{
  margin:0;
  font-size:24px;
  font-weight:800;
  color:#0d1b34;
}

.zz-login-card .zz-card__subtitle{
  margin-top:8px;
  color:#77839a;
  font-size:12px;
}

.zz-login-card .zz-card__body{
  padding:18px 22px 22px;
  display:block;
}

.zz-login-form{
  display:grid;
  grid-template-columns:1fr;
  gap:14px;
}

.zz-password-wrap{
  position:relative;
  display:flex;
  align-items:center;
}

.zz-password-wrap .zz-input{
  padding-right:42px;
}

.zz-toggle-password{
  position:absolute;
  right:14px;
  top:50%;
  transform:translateY(-50%);
  cursor:pointer;
  user-select:none;
  font-size:16px;
  line-height:1;
  color:#5b6b82;
}

.zz-login-actions{
  display:flex;
  flex-direction:column;
  align-items:stretch;
  gap:12px;
  margin-top:2px;
}

.zz-link-forgot-password{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:42px;
  padding:0 14px;
  border:1px solid var(--zz-line);
  border-radius:14px;
  background:#f8fbff;
  color:var(--zz-blue-dark);
  font-size:14px;
  font-weight:800;
  text-decoration:none;
  text-align:center;
  transition:transform .12s ease, box-shadow .2s ease, border-color .2s ease, background .2s ease;
}

.zz-link-forgot-password:hover{
  transform:translateY(-1px);
  border-color:#bfd8f4;
  background:#eef6ff;
}

.zz-link-forgot-password:focus{
  outline:none;
  border-color:#93c5fd;
  box-shadow:0 0 0 4px rgba(59,130,246,.14);
}

.zz-login-submit{
  width:100%;
  min-width:0;
  min-height:44px;
  justify-self:stretch;
  font-size:14px;
}

/* Login - cantos mais quadrados nos campos e no botão/link de senha */
.zz-login-card .zz-input,
.zz-login-card .zz-select,
.zz-login-card .zz-link-forgot-password,
.zz-login-card .zz-login-submit{
  border-radius:var(--zz-radius-botao, 6px) !important;
}

.zz-info-message{
  margin-bottom:14px;
  padding:12px 14px;
  border-radius:12px;
  font-size:14px;
  font-weight:700;
  border:1px solid #bfdbfe;
  background:#eff6ff;
  color:#1d4ed8;
}

@media (max-width: 640px){
  .zz-login-wrap{
    padding:16px 10px;
  }

  .zz-login-card{
    border-radius:18px;
  }

  .zz-login-card .zz-card__header,
  .zz-login-card .zz-card__body{
    padding-left:16px;
    padding-right:16px;
  }

  .zz-link-forgot-password,
  .zz-login-submit{
    width:100%;
  }
}

/* =========================
   PADRÃO GLOBAL - VARIÁVEIS DE CAMPOS POR TABELA
   =========================
   Regra:
   - Cada coluna/campo de tabela pode ter uma variável própria.
   - Para ajustar o tamanho em todas as telas, altere só a variável no :root.
   - Use a classe campo-<tabela>-<coluna> no input/select correspondente.
*/
:root{
  /* loja.ncm */
  --zz-campo-ncm-id:90px;
  --zz-campo-ncm-codigo-ncm:120px;
  --zz-campo-ncm-descricao:520px;
  --zz-campo-ncm-data-validade:150px;
  --zz-campo-ncm-ativo:130px;
  --zz-campo-ncm-data-inclusao:170px;
  --zz-campo-ncm-data-modificacao:170px;

  --zz-campo-ncm-tributacao-icms:190px;
  --zz-campo-ncm-cst-icms:230px;
  --zz-campo-ncm-origem:230px;
  --zz-campo-ncm-percentual-reducao-icms:110px;
  --zz-campo-ncm-aliquota-icms:110px;
  --zz-campo-ncm-aliquota-cofins-icms:110px;
  --zz-campo-ncm-aliquota-pis-icms:110px;
  --zz-campo-ncm-percentual-reducao-icms-st:130px;
  --zz-campo-ncm-aliquota-icms-st:130px;
  --zz-campo-ncm-item-lista-servico:260px;
  --zz-campo-ncm-usa-substituicao-tributaria:220px;
  --zz-campo-ncm-subst-sem-mva:150px;
  --zz-campo-ncm-difal-s-compras:150px;

  --zz-campo-ncm-tributacao-ipi:230px;
  --zz-campo-ncm-cst-ipi:240px;
  --zz-campo-ncm-aliquota-ipi:120px;
  --zz-campo-ncm-aliquota-ipi-unidade:140px;
  --zz-campo-ncm-natureza-receita:260px;

  --zz-campo-ncm-pis-cofins:230px;
  --zz-campo-ncm-cst-pis-cofins:300px;
  --zz-campo-ncm-aliquota-cofins:120px;
  --zz-campo-ncm-aliquota-pis:120px;

  --zz-campo-ncm-cst-ibs-cbs:100px;
  --zz-campo-ncm-descricao-cst-ibs-cbs:520px;
  --zz-campo-ncm-classificacao-tributaria:110px;
  --zz-campo-ncm-descricao-classificacao-tributaria:520px;
  --zz-campo-ncm-percentual-reducao-ibs:110px;
  --zz-campo-ncm-percentual-reducao-cbs:110px;
}

/* Base visual global dos campos com largura controlada */
[class*="campo-ncm-"]{
  border-radius:6px !important;
}

input[class*="campo-ncm-"],
select[class*="campo-ncm-"]{
  height:38px;
}

.campo-ncm-id{max-width:var(--zz-campo-ncm-id) !important;}
.campo-ncm-codigo_ncm{max-width:var(--zz-campo-ncm-codigo-ncm) !important;}
.campo-ncm-descricao{max-width:var(--zz-campo-ncm-descricao) !important;}
.campo-ncm-data_validade{max-width:var(--zz-campo-ncm-data-validade) !important;}
.campo-ncm-ativo{max-width:var(--zz-campo-ncm-ativo) !important;}
.campo-ncm-data_inclusao{max-width:var(--zz-campo-ncm-data-inclusao) !important;}
.campo-ncm-data_modificacao{max-width:var(--zz-campo-ncm-data-modificacao) !important;}

.campo-ncm-tributacao_icms{max-width:var(--zz-campo-ncm-tributacao-icms) !important;}
.campo-ncm-cst_icms{max-width:var(--zz-campo-ncm-cst-icms) !important;}
.campo-ncm-origem{max-width:var(--zz-campo-ncm-origem) !important;}
.campo-ncm-percentual_reducao_icms{max-width:var(--zz-campo-ncm-percentual-reducao-icms) !important;}
.campo-ncm-aliquota_icms{max-width:var(--zz-campo-ncm-aliquota-icms) !important;}
.campo-ncm-aliquota_cofins_icms{max-width:var(--zz-campo-ncm-aliquota-cofins-icms) !important;}
.campo-ncm-aliquota_pis_icms{max-width:var(--zz-campo-ncm-aliquota-pis-icms) !important;}
.campo-ncm-percentual_reducao_icms_st{max-width:var(--zz-campo-ncm-percentual-reducao-icms-st) !important;}
.campo-ncm-aliquota_icms_st{max-width:var(--zz-campo-ncm-aliquota-icms-st) !important;}
.campo-ncm-item_lista_servico{max-width:var(--zz-campo-ncm-item-lista-servico) !important;}
.campo-ncm-usa_substituicao_tributaria{max-width:var(--zz-campo-ncm-usa-substituicao-tributaria) !important;}
.campo-ncm-subst_sem_mva{max-width:var(--zz-campo-ncm-subst-sem-mva) !important;}
.campo-ncm-difal_s_compras{max-width:var(--zz-campo-ncm-difal-s-compras) !important;}

.campo-ncm-tributacao_ipi{max-width:var(--zz-campo-ncm-tributacao-ipi) !important;}
.campo-ncm-cst_ipi{max-width:var(--zz-campo-ncm-cst-ipi) !important;}
.campo-ncm-aliquota_ipi{max-width:var(--zz-campo-ncm-aliquota-ipi) !important;}
.campo-ncm-aliquota_ipi_unidade{max-width:var(--zz-campo-ncm-aliquota-ipi-unidade) !important;}
.campo-ncm-natureza_receita{max-width:var(--zz-campo-ncm-natureza-receita) !important;}

.campo-ncm-pis_cofins{max-width:var(--zz-campo-ncm-pis-cofins) !important;}
.campo-ncm-cst_pis_cofins{max-width:var(--zz-campo-ncm-cst-pis-cofins) !important;}
.campo-ncm-aliquota_cofins{max-width:var(--zz-campo-ncm-aliquota-cofins) !important;}
.campo-ncm-aliquota_pis{max-width:var(--zz-campo-ncm-aliquota-pis) !important;}

.campo-ncm-cst_ibs_cbs{max-width:var(--zz-campo-ncm-cst-ibs-cbs) !important;}
.campo-ncm-descricao_cst_ibs_cbs{max-width:var(--zz-campo-ncm-descricao-cst-ibs-cbs) !important;}
.campo-ncm-classificacao_tributaria{max-width:var(--zz-campo-ncm-classificacao-tributaria) !important;}
.campo-ncm-descricao_classificacao_tributaria{max-width:var(--zz-campo-ncm-descricao-classificacao-tributaria) !important;}
.campo-ncm-percentual_reducao_ibs{max-width:var(--zz-campo-ncm-percentual-reducao-ibs) !important;}
.campo-ncm-percentual_reducao_cbs{max-width:var(--zz-campo-ncm-percentual-reducao-cbs) !important;}


/* =========================
   GRID - quebra de linha controlada
   ========================= */
.zz-grid-break{
  grid-column:1 / -1;
  height:0;
  min-height:0;
  padding:0;
  margin:0;
}


/* =========================
   NCM - ajuste fino de espaçamento compacto
   =========================
   Mantém a ordem do HTML e só reduz o espaço entre campos.
*/
#form-ncm > .empresa-form-grid,
#form-ncm .ncm-bloco .empresa-form-grid{
  display:flex !important;
  flex-wrap:wrap;
  align-items:flex-end;
  gap:6px 8px !important;
}

#form-ncm .empresa-field{
  flex:0 0 auto;
  margin:0 !important;
}

#form-ncm .empresa-label{
  margin-bottom:2px !important;
}

#form-ncm input[class*="campo-ncm-"],
#form-ncm select[class*="campo-ncm-"]{
  width:100% !important;
}

/* Larguras finais da tela NCM */
:root{
  --zz-campo-ncm-codigo-ncm:120px;
  --zz-campo-ncm-descricao:520px;
  --zz-campo-ncm-data-validade:150px;
  --zz-campo-ncm-ativo:130px;

  --zz-campo-ncm-tributacao-icms:180px;
  --zz-campo-ncm-cst-icms:230px;
  --zz-campo-ncm-origem:230px;
  --zz-campo-ncm-percentual-reducao-icms:110px;
  --zz-campo-ncm-aliquota-icms:110px;
  --zz-campo-ncm-percentual-reducao-icms-st:115px;
  --zz-campo-ncm-aliquota-icms-st:115px;

  --zz-campo-ncm-tributacao-ipi:230px;
  --zz-campo-ncm-cst-ipi:240px;
  --zz-campo-ncm-aliquota-ipi:120px;
  --zz-campo-ncm-aliquota-ipi-unidade:140px;

  --zz-campo-ncm-pis-cofins:230px;
  --zz-campo-ncm-cst-pis-cofins:300px;
  --zz-campo-ncm-aliquota-cofins:120px;
  --zz-campo-ncm-aliquota-pis:120px;

  --zz-campo-ncm-cst-ibs-cbs:520px;
  --zz-campo-ncm-classificacao-tributaria:520px;
  --zz-campo-ncm-percentual-reducao-ibs:110px;
  --zz-campo-ncm-percentual-reducao-cbs:110px;
}


/* =========================
   CLIENTES - contornos no padrão NCM
   Ajuste cirúrgico: somente visual dos campos da tela Clientes.
   ========================= */
#form-cliente .clientes-field input:not([type="hidden"]),
#form-cliente .clientes-field select{
  height:38px !important;
  min-height:38px !important;
  border-radius:6px !important;
  border:1px solid #bccbe0;
}

#form-cliente .clientes-label{
  margin-bottom:2px !important;
}

#form-cliente .clientes-form-grid{
  gap:8px 10px;
}

#form-cliente .cp-picker-group{
  grid-template-columns:minmax(0,1fr) 46px;
  gap:6px;
}

#form-cliente .cp-picker-group input[readonly]{
  height:38px !important;
  min-height:38px !important;
  border-radius:6px !important;
}

#form-cliente .cp-picker-btn{
  min-width:46px !important;
  width:46px !important;
  height:38px !important;
  min-height:38px !important;
  border-radius:6px !important;
  padding:0 !important;
  font-size:18px;
}

/* =========================
   CADASTRAR PRODUTO - contornos no padrão NCM
   Ajuste cirúrgico: somente visual dos campos da tela Cadastrar Produto.
   ========================= */
#form-produto .empresa-field input:not([type="hidden"]),
#form-produto .empresa-field select{
  height:38px !important;
  min-height:38px !important;
  border-radius:6px !important;
  border:1px solid #bccbe0;
}

#form-produto .empresa-label{
  margin-bottom:2px !important;
}

#form-produto .empresa-form-grid{
  gap:8px 10px;
}

#form-produto .cp-picker-group{
  grid-template-columns:minmax(0,1fr) 46px;
  gap:6px;
}

#form-produto .cp-picker-group input[readonly]{
  height:38px !important;
  min-height:38px !important;
  border-radius:6px !important;
}

#form-produto .cp-picker-btn{
  min-width:46px !important;
  width:46px !important;
  height:38px !important;
  min-height:38px !important;
  border-radius:6px !important;
  padding:0 !important;
  font-size:18px;
}

/* =========================
   CONDIÇÃO DE PAGAMENTO - contornos no padrão NCM
   Ajuste cirúrgico: somente visual dos campos da tela Condição de Pagamento.
   ========================= */
#frmCondicao .zz-field input:not([type="hidden"]),
#frmCondicao .zz-field select,
#frmCondicao .zz-field textarea{
  height:38px !important;
  min-height:38px !important;
  border-radius:6px !important;
  border:1px solid #bccbe0 !important;
  padding:0 14px !important;
  color:#21436a;
  font-size:14px;
}

#frmCondicao .zz-field label{
  margin-bottom:2px !important;
  font-size:12px;
  font-weight:700;
  color:#0f2d63;
}

#frmCondicao .zz-form-grid{
  gap:8px 10px !important;
}

#frmCondicao .zz-days,
#frmCondicao .zz-percent{
  height:38px !important;
  min-height:38px !important;
  border-radius:6px !important;
}

#frmCondicao #tabela-edicao-parcelas th,
#frmCondicao #tabela-edicao-parcelas td{
  padding-top:6px !important;
  padding-bottom:6px !important;
}

#frmCondicao #tabela-edicao-parcelas tbody tr{
  height:42px !important;
}

#modalConsulta .zz-field input:not([type="hidden"]),
#modalConsulta .zz-field select{
  height:38px !important;
  min-height:38px !important;
  border-radius:6px !important;
  border:1px solid #bccbe0 !important;
}

#modalConsulta .zz-field label{
  margin-bottom:2px !important;
  font-size:12px;
  font-weight:700;
  color:#0f2d63;
}



/* =========================
   PEDIDO DE VENDA - contornos no padrão NCM
   Ajuste cirúrgico: somente visual dos campos da tela PedidoVenda.
   ========================= */
.pedido-venda-page .pv-captura .zz-input,
.pedido-venda-page .pv-form-grid .zz-field input:not([type="hidden"]),
.pedido-venda-page .pv-form-grid .zz-field select,
.pedido-venda-page .pv-table-wrap input[name="quantidade[]"],
.pedido-venda-page .pv-table-wrap input[name="preco[]"],
#maskConsultaPedidos .zz-field input:not([type="hidden"]),
#maskConsultaPedidos .zz-field select{
  height:38px !important;
  min-height:38px !important;
  border-radius:6px !important;
  border:1px solid #bccbe0 !important;
  padding:0 14px !important;
  color:#21436a;
  font-size:14px;
  outline:none;
  box-sizing:border-box;
}

.pedido-venda-page .pv-form-grid .zz-field label,
#maskConsultaPedidos .zz-field label{
  margin-bottom:2px !important;
  font-size:12px;
  font-weight:700;
  color:#0f2d63;
}

.pedido-venda-page .pv-form-grid{
  gap:8px 10px !important;
}

.pedido-venda-page .pv-captura{
  gap:8px 10px !important;
}

.pedido-venda-page .pv-table-wrap input[name="quantidade[]"],
.pedido-venda-page .pv-table-wrap input[name="preco[]"]{
  text-align:right;
}

.pedido-venda-page .pv-total-box{
  height:38px !important;
  min-height:38px !important;
  border-radius:6px !important;
}

.pedido-venda-page .pv-total-box span{
  font-size:34px !important;
}

/* =========================
   LIQUIDAÇÃO DUPLICATAS - contornos no padrão NCM
   Ajuste cirúrgico: somente visual da tela LiquidacaoDuplicatas.
   ========================= */
.liquidacao-page .liquidacao-card-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}

.liquidacao-page .liquidacao-codigo-badge{
  display:inline-flex;
  align-items:center;
  gap:12px;
  min-width:112px;
  min-height:38px;
  padding:0 14px;
  border:1px solid var(--zz-line);
  border-radius:16px;
  background:#fff;
  color:#64748b;
  white-space:nowrap;
}

.liquidacao-page .liquidacao-codigo-badge__label{
  font-size:12px;
  font-weight:800;
  letter-spacing:.08em;
  color:#64748b;
  text-transform:uppercase;
}

.liquidacao-page .liquidacao-codigo-badge__value{
  font-size:18px;
  font-weight:800;
  color:#1f3d8f;
  line-height:1;
}

.liquidacao-page .liquidacao-field input:not([type=\"hidden\"]),
.liquidacao-page .liquidacao-field select,
.liquidacao-page .liquidacao-inline,
.liquidacao-modal .liquidacao-field input:not([type=\"hidden\"]),
.liquidacao-modal .liquidacao-field select{
  height:38px !important;
  min-height:38px !important;
  border-radius:6px !important;
  border:1px solid #bccbe0 !important;
  padding:0 14px !important;
  color:#21436a;
  font-size:14px;
  outline:none;
  box-sizing:border-box;
}

.liquidacao-page .liquidacao-field input[readonly],
.liquidacao-page .liquidacao-field input[disabled]{
  background:#f7f9fc;
  color:#5f7596;
}

.liquidacao-page .liquidacao-label,
.liquidacao-modal .liquidacao-label{
  margin-bottom:2px !important;
  font-size:12px;
  font-weight:700;
  color:#0f2d63;
}

.liquidacao-page .liquidacao-form-grid{
  gap:8px 10px !important;
}

.liquidacao-page .liquidacao-table-wrap,
.liquidacao-modal .liquidacao-modal__table-wrap{
  border-radius:6px !important;
  border:1px solid #bccbe0 !important;
}

.liquidacao-page .liquidacao-table,
.liquidacao-modal .liquidacao-modal__table-wrap table{
  border-radius:6px !important;
}


/* =========================
   CONTAS A PAGAR - badge código com canto mais quadrado
   Ajuste cirúrgico: somente contorno do badge de código.
   ========================= */
.liquidacao-page .zz-card__badge{
  min-height:38px !important;
  padding:0 14px !important;
  border:1px solid #bccbe0 !important;
  border-radius:6px !important;
  background:#fff !important;
  gap:12px !important;
  white-space:nowrap;
}

.liquidacao-page .zz-card__badge-label{
  font-size:12px !important;
  font-weight:800 !important;
  letter-spacing:.08em !important;
  color:#64748b !important;
  text-transform:uppercase;
}

.liquidacao-page .zz-card__badge-value{
  font-size:18px !important;
  font-weight:800 !important;
  color:#1f3d8f !important;
  line-height:1 !important;
}


/* =========================
   PEDIDO DE VENDA - badge ID com canto mais quadrado
   Ajuste cirúrgico: somente contorno do badge ID.
   ========================= */
.pedido-venda-page #pvBadgeId{
  min-height:38px !important;
  padding:0 14px !important;
  border:1px solid #bccbe0 !important;
  border-radius:6px !important;
  background:#fff !important;
  color:#64748b !important;
  gap:6px !important;
  white-space:nowrap;
  box-shadow:none !important;
}

.pedido-venda-page #pvBadgeId #pvBadgeIdValor{
  font-size:18px !important;
  font-weight:800 !important;
  color:#1f3d8f !important;
  line-height:1 !important;
}


/* =========================
   ESTOQUE - contornos no padrão NCM
   Ajuste cirúrgico: somente visual da tela Estoque.
   ========================= */
.zz-wrap.estoque-page .zz-card__badge{
  min-height:38px !important;
  padding:0 14px !important;
  border:1px solid #bccbe0 !important;
  border-radius:6px !important;
  background:#fff !important;
  gap:12px !important;
  white-space:nowrap;
  box-shadow:none !important;
}

.zz-wrap.estoque-page .zz-card__badge-label{
  font-size:12px !important;
  font-weight:800 !important;
  letter-spacing:.08em !important;
  color:#64748b !important;
  text-transform:uppercase;
}

.zz-wrap.estoque-page .zz-card__badge-value{
  font-size:18px !important;
  font-weight:800 !important;
  color:#1f3d8f !important;
  line-height:1 !important;
}

.zz-wrap.estoque-page .estoque-field input:not([type="hidden"]),
.zz-wrap.estoque-page .estoque-field select,
.zz-wrap.estoque-page .estoque-table input:not([type="hidden"]),
.zz-wrap.estoque-page .estoque-table select,
#maskConsultaEstoque .zz-input,
#maskConsultaEstoque .zz-select,
#maskChaveNfe .zz-input,
#maskFaltantesXml .zz-input,
#maskFaltantesXml .zz-select,
#maskImpressaoEstoque .zz-input,
#maskImpressaoEstoque .zz-select,
#maskMensagemImportacao .zz-input,
#maskMensagemImportacao .zz-select{
  height:38px !important;
  min-height:38px !important;
  border-radius:6px !important;
  border:1px solid #bccbe0 !important;
  padding:0 14px !important;
  color:#21436a;
  font-size:14px;
  outline:none;
  box-sizing:border-box;
}

.zz-wrap.estoque-page .estoque-field textarea,
.zz-wrap.estoque-page textarea.zz-input{
  border-radius:6px !important;
  border:1px solid #bccbe0 !important;
  color:#21436a;
  font-size:14px;
  outline:none;
  box-sizing:border-box;
}

.zz-wrap.estoque-page .estoque-field input[readonly],
.zz-wrap.estoque-page .estoque-field input[disabled],
.zz-wrap.estoque-page .estoque-field select[disabled],
.zz-wrap.estoque-page .estoque-table input[readonly],
.zz-wrap.estoque-page .estoque-table input[disabled],
.zz-wrap.estoque-page .estoque-table select[disabled]{
  background:#f7f9fc;
  color:#5f7596;
}

.zz-wrap.estoque-page .estoque-field label{
  margin-bottom:2px !important;
  font-size:12px;
  font-weight:700;
  color:#0f2d63;
}

.zz-wrap.estoque-page .estoque-form-grid{
  gap:8px 10px !important;
}

.zz-wrap.estoque-page .estoque-box,
.zz-wrap.estoque-page .estoque-table-wrap,
.zz-wrap.estoque-page .estoque-fill-wrap,
.zz-wrap.estoque-page .estoque-table,
#maskConsultaEstoque .estoque-table-wrap,
#maskFaltantesXml .estoque-table-wrap,
#maskImpressaoEstoque .zz-modal__table-wrap{
  border-radius:6px !important;
  border-color:#bccbe0 !important;
}

.zz-wrap.estoque-page .estoque-tab{
  border-radius:6px 6px 0 0 !important;
}

/* =========================
   ESTOQUE - CAMPOS FISCAIS DOS ITENS
   ========================= */
#tabela-itens .item-fiscal{
  background:#f8fbff;
  color:#43556b;
  font-size:12px;
  padding-left:8px;
  padding-right:8px;
}
#tabela-itens .item-fiscal[readonly]{
  cursor:default;
}

/* =========================
   ESTOQUE - ABA ITENS EM FORMULÁRIO
   ========================= */
.estoque-itens-editor-box{
  padding:8px 10px 10px;
  overflow:hidden;
}
.estoque-itens-editor-layout{
  display:grid;
  grid-template-columns:minmax(400px, 0.90fr) minmax(560px, 1.42fr);
  gap:10px;
  align-items:stretch;
}
.estoque-item-card{
  border:1px solid #d6e7f8;
  border-radius:16px;
  background:#fbfdff;
  padding:10px 12px;
  min-width:0;
  box-shadow:0 6px 14px rgba(15,23,42,.04);
}
.estoque-item-card-title{
  color:#123d7d;
  font-size:14px;
  font-weight:900;
  margin:0 0 8px;
  line-height:1.1;
}
.estoque-item-form{
  display:grid;
  gap:6px 8px;
  align-items:end;
}
.estoque-item-form-main{
  grid-template-columns:72px 102px minmax(180px,1fr) 112px;
}
.estoque-item-form-tributos{
  grid-template-columns:repeat(6, minmax(78px,1fr));
  gap:6px 8px;
}
.estoque-item-field{
  min-width:0;
  display:flex;
  flex-direction:column;
}
.estoque-item-field label{
  margin:0 0 3px;
  font-size:10px;
  line-height:1.05;
  color:#243b63;
  font-weight:800;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.estoque-item-field .zz-input,
.estoque-item-field .zz-select{
  min-height:32px;
  height:32px;
  border-radius:9px;
  padding:0 8px;
  font-size:13px;
}
.estoque-item-field .item-fiscal,
.estoque-item-field input[readonly]{
  background:#f8fbff;
}
.item-field-nome{grid-column:span 1;}
.item-field-obs{grid-column:span 2;}
.trib-class{grid-column:span 2;}
.estoque-item-toolbar{
  display:flex;
  align-items:center;
  gap:6px;
  flex-wrap:wrap;
  padding:8px 0 6px;
}
.estoque-item-toolbar .zz-btn{
  min-width:108px;
  height:32px;
  border-radius:10px;
  font-size:12px;
  padding:0 10px;
}
.itens-resumo-grid{
  max-height:180px;
  overflow:auto;
  border-radius:12px;
}
.estoque-table-resumo{
  table-layout:fixed;
  min-width:1180px;
}
.estoque-table-resumo th,
.estoque-table-resumo td{
  padding:6px 7px;
  font-size:12px;
  line-height:1.15;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.estoque-table-resumo tbody tr{
  cursor:pointer;
}
.estoque-table-resumo tbody tr.is-selected{
  background:#e7efff;
  box-shadow:inset 4px 0 0 #1765a8;
}
.estoque-table-resumo tfoot td{
  background:#fbfdff;
  border-top:1px solid #d6e7f8;
  font-weight:800;
}
.estoque-itens-data-grid{
  display:none !important;
}
.estoque-grid-resumo{
  margin-top:4px;
  color:#64748b;
  font-size:11px;
  font-weight:700;
}
@media (max-width: 1280px){
  .estoque-itens-editor-layout{grid-template-columns:1fr;}
  .estoque-item-form-tributos{grid-template-columns:repeat(4, minmax(76px,1fr));}
}
@media (max-width: 760px){
  .estoque-item-form-main,
  .estoque-item-form-tributos{grid-template-columns:1fr 1fr;}
  .item-field-obs,.trib-class{grid-column:span 2;}
}


/* =========================
   ESTOQUE - AJUSTE FINO ABA ITENS V4
   ========================= */
#status-msg{
  display:none !important;
  margin:0 !important;
  padding:0 !important;
  min-height:0 !important;
  height:0 !important;
  overflow:hidden !important;
}
.estoque-item-card-tributos{
  max-height:238px;
  overflow:hidden;
}
.estoque-item-card-tributos .estoque-item-form-tributos{
  max-height:196px;
  overflow-y:auto;
  overflow-x:hidden;
  padding-right:6px;
  align-content:start;
}
.estoque-item-card-tributos .estoque-item-form-tributos::-webkit-scrollbar{
  width:10px;
}
.estoque-item-card-tributos .estoque-item-form-tributos::-webkit-scrollbar-thumb{
  background:#c7d7ee;
  border-radius:999px;
  border:2px solid #f7fbff;
}
.estoque-item-card-tributos .estoque-item-form-tributos::-webkit-scrollbar-track{
  background:#eef4fc;
  border-radius:999px;
}
.itens-resumo-grid{
  max-height:236px;
}


/* =========================
   ESTOQUE - AJUSTE FINO ABA ITENS V5
   ========================= */
.estoque-itens-editor-box{
  padding:6px 8px 8px !important;
}
.estoque-itens-editor-layout{
  gap:8px !important;
  margin-bottom:4px;
}
.estoque-item-card{
  padding:8px 10px !important;
}
.estoque-item-card-title{
  margin:0 0 6px !important;
  font-size:13px !important;
}
.estoque-item-form{
  gap:4px 8px !important;
}
.estoque-item-form-main{
  grid-template-columns:70px 100px minmax(170px,1fr) 112px !important;
}
.estoque-item-form-tributos{
  grid-template-columns:repeat(6, minmax(74px,1fr)) !important;
  gap:4px 8px !important;
}
.estoque-item-field label{
  margin:0 0 2px !important;
  font-size:10px !important;
  line-height:1 !important;
}
.estoque-item-field .zz-input,
.estoque-item-field .zz-select{
  min-height:28px !important;
  height:28px !important;
  padding:0 7px !important;
  font-size:12px !important;
}
.estoque-item-card-tributos{
  max-height:233px !important;
}
.estoque-item-card-tributos .estoque-item-form-tributos{
  max-height:195px !important;
}
.estoque-item-toolbar{
  gap:4px !important;
  padding:6px 0 4px !important;
  flex-wrap:nowrap !important;
}
.estoque-item-toolbar .zz-btn{
  min-width:0 !important;
  flex:1 1 0;
  height:28px !important;
  border-radius:9px !important;
  font-size:11px !important;
  padding:0 8px !important;
  white-space:nowrap;
}
.itens-resumo-grid{
  flex:1 1 auto;
  min-height:0;
  max-height:none !important;
  height:auto;
}
.estoque-table-resumo th,
.estoque-table-resumo td{
  padding:4px 6px !important;
  font-size:11px !important;
  line-height:1.05 !important;
}
.estoque-table-resumo tfoot td{
  padding:5px 6px !important;
}
#itens-grid-resumo{
  margin-top:2px !important;
  font-size:11px !important;
}

/* =========================
   ESTOQUE - TRIBUTOS HORIZONTAIS COM LABELS V4
   Ajuste cirúrgico: só no quadro de Tributos.
   ========================= */
.estoque-item-card-tributos{
  max-height:233px !important;
  overflow:hidden !important;
}

.estoque-item-card-tributos .estoque-item-card-title{
  margin-bottom:4px !important;
}

.estoque-item-card-tributos .estoque-item-form-tributos,
.estoque-item-form-tributos.estoque-tributos-horizontal{
  display:flex !important;
  flex-direction:column !important;
  gap:3px !important;
  max-height:none !important;
  height:auto !important;
  overflow:hidden !important;
  padding-right:0 !important;
  align-content:stretch !important;
}

.estoque-tributos-row{
  display:grid;
  grid-template-columns:72px minmax(0,1fr);
  gap:6px;
  align-items:end;
  min-width:0;
  border-bottom:1px solid #d8e6f5;
  padding-bottom:2px;
}

.estoque-tributos-row:last-child{
  border-bottom:none;
  padding-bottom:0;
}

.estoque-tributos-grupo{
  align-self:center;
  font-size:13px;
  font-weight:900;
  line-height:1;
  white-space:nowrap;
  padding-left:2px;
}

.trib-icms{color:#0b62c7;}
.trib-ipi{color:#059669;}
.trib-piscofins{color:#f97316;}
.trib-ibscbs{color:#7c3aed;}

.estoque-tributos-campos{
  display:flex;
  flex-wrap:nowrap;
  gap:6px;
  min-width:0;
  overflow-x:auto;
  overflow-y:hidden;
  padding-bottom:2px;
  scrollbar-width:thin;
}

.estoque-tributos-campos::-webkit-scrollbar{
  height:5px;
}
.estoque-tributos-campos::-webkit-scrollbar-thumb{
  background:#c5cedb;
  border-radius:999px;
}
.estoque-tributos-campos::-webkit-scrollbar-track{
  background:#eef3f9;
  border-radius:999px;
}

.estoque-tributos-campos .estoque-item-field{
  flex:0 0 100px;
  min-width:100px;
}

.estoque-tributos-campos .estoque-item-field label{
  display:block !important;
  margin:0 0 2px !important;
  height:10px;
  font-size:9px !important;
  line-height:10px !important;
  color:#143461 !important;
  font-weight:900 !important;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

.estoque-tributos-campos .estoque-item-field .zz-input,
.estoque-tributos-campos .estoque-item-field .zz-select{
  height:24px !important;
  min-height:24px !important;
  font-size:11px !important;
  padding:0 6px !important;
  border-radius:8px !important;
}

.estoque-tributos-campos .estoque-item-field:has(#ed_item_ibscbs_class),
.estoque-tributos-campos .estoque-item-field:has(#ed_item_cred_codigo),
.estoque-tributos-campos .estoque-item-field:has(#ed_item_cred_valor){
  flex-basis:128px;
  min-width:128px;
}


/* Ajuste cirúrgico - layout Dados do Item (NCM antes de CFOP e Tipo oculto) */
.estoque-item-form-main .item-field-seq{order:1;}
.estoque-item-form-main .item-field-codigo{order:2;}
.estoque-item-form-main .item-field-nome{order:3; grid-column:span 2;}
.estoque-item-form-main .item-field-und{order:5;}
.estoque-item-form-main .item-field-qtd{order:6;}
.estoque-item-form-main .item-field-preco{order:7;}
.estoque-item-form-main .item-field-total{order:8;}
.estoque-item-form-main .item-field-ncm{order:9;}
.estoque-item-form-main .item-field-cfop{order:10;}
.estoque-item-form-main .item-field-tipo{order:11; display:none !important;}
.estoque-item-form-main .item-field-obs{order:12; grid-column:span 2;}


/* =========================
   ESTOQUE - ITENS NCM/CFOP + LUPA CÓDIGO
   ========================= */
.estoque-input-with-action{
  position:relative;
  display:block;
}
.estoque-input-with-action > .zz-input,
.estoque-input-with-action > input{
  width:100%;
  padding-right:36px !important;
}
.estoque-input-with-action > .zz-btn-inline-icon,
.estoque-input-with-action > button{
  position:absolute;
  right:4px;
  top:50%;
  transform:translateY(-50%);
  z-index:2;
}
.estoque-inline-fields{
  display:grid;
  gap:6px;
  align-items:center;
}
.estoque-inline-fields-ncm{
  grid-template-columns:110px minmax(0,1fr);
}
.estoque-inline-fields-cfop{
  grid-template-columns:90px 64px minmax(0,1fr);
}
.item-field-row-full,
.item-field-obs{
  grid-column:1 / -1 !important;
}
.estoque-item-field .zz-btn-inline-icon{
  min-width:32px !important;
  width:32px;
  height:28px !important;
  padding:0 !important;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:9px !important;
  font-size:14px !important;
  line-height:1;
}
#ed_item_ncm_desc,
#ed_item_cfop_desc{
  min-width:0;
}
#ed_item_cfop_id{
  text-align:center;
}


/* Ajuste cirúrgico - lupa do código como botão interno pequeno */
.estoque-input-with-action{
  position:relative !important;
  display:block !important;
}
.estoque-input-with-action > .zz-input,
.estoque-input-with-action > input{
  width:100% !important;
  padding-right:28px !important;
}
.estoque-input-with-action > .zz-btn-inline-icon,
.estoque-input-with-action > button{
  position:absolute !important;
  right:3px !important;
  top:50% !important;
  transform:translateY(-50%) !important;
  z-index:2 !important;
  width:22px !important;
  min-width:22px !important;
  height:22px !important;
  padding:0 !important;
  border-radius:3px !important;
  border:1px solid #b8c4d4 !important;
  background:#f3f4f6 !important;
  color:#334155 !important;
  box-shadow:none !important;
  font-size:13px !important;
  line-height:1 !important;
}

/* Modal interno de seleção de produto no Estoque */
.estoque-produto-modal{
  width:min(1040px, calc(100vw - 42px));
  max-width:1040px;
}
.estoque-produto-filtros{
  display:grid;
  grid-template-columns:160px minmax(260px, 1fr) 130px;
  gap:10px;
  align-items:end;
  margin-bottom:10px;
}
.estoque-produto-filtros label{
  display:block;
  color:#143461;
  font-size:12px;
  font-weight:800;
  margin-bottom:4px;
}
.estoque-produto-filtro-botao .zz-btn{
  width:100%;
  height:36px;
}
.estoque-produto-total{
  display:flex;
  align-items:center;
  justify-content:center;
  height:34px;
  max-width:280px;
  margin-bottom:10px;
  font-size:16px;
  font-weight:900;
}
.estoque-produto-grid-wrap{
  max-height:42vh;
  overflow:auto;
}
.estoque-produto-grid .zz-btn{
  min-width:92px;
  height:30px;
  padding:0 10px;
  border-radius:10px;
  font-size:12px;
}
.estoque-produto-paginacao{
  margin-top:12px;
}
@media (max-width: 760px){
  .estoque-produto-filtros{
    grid-template-columns:1fr;
  }
}

/* =========================
   PADRÃO GLOBAL - BADGE DE CÓDIGO
   Ajuste cirúrgico: deixa o campo CÓDIGO/ID no mesmo padrão quadrado dos inputs.
   ========================= */
.zz-card__badge{
  min-height:38px !important;
  padding:0 14px !important;
  border:1px solid #bccbe0 !important;
  border-radius:6px !important;
  background:#fff !important;
  color:#64748b !important;
  gap:12px !important;
  white-space:nowrap;
  box-shadow:none !important;
}

.zz-card__badge-label{
  font-size:12px !important;
  font-weight:800 !important;
  letter-spacing:.08em !important;
  color:#64748b !important;
  text-transform:uppercase;
}

.zz-card__badge-value{
  font-size:18px !important;
  font-weight:800 !important;
  color:#1f3d8f !important;
  line-height:1 !important;
}

/* Clientes: garante que o badge do cadastro acompanhe o padrão global mesmo com CSS antigo em cache. */
.clientes-page .zz-card__badge{
  border-radius:6px !important;
}




/* =========================
   SÉRIE NF-e - contornos no padrão NCM/LOJA
   Ajuste cirúrgico: somente visual da tela Série NF-e.
   ========================= */
.serie-nfe-page .zz-card__badge{
  min-height:38px !important;
  padding:0 14px !important;
  border:1px solid #bccbe0 !important;
  border-radius:6px !important;
  background:#fff !important;
  color:#64748b !important;
  gap:12px !important;
  white-space:nowrap;
  box-shadow:none !important;
}

.serie-nfe-page .zz-card__badge-label{
  font-size:12px !important;
  font-weight:800 !important;
  letter-spacing:.08em !important;
  color:#64748b !important;
  text-transform:uppercase;
}

.serie-nfe-page .zz-card__badge-value{
  font-size:18px !important;
  font-weight:800 !important;
  color:#1f3d8f !important;
  line-height:1 !important;
}

.serie-nfe-page #form-serie-nfe .serie-nfe-field input:not([type="hidden"]),
.serie-nfe-page #form-serie-nfe .serie-nfe-field select{
  height:38px !important;
  min-height:38px !important;
  border-radius:6px !important;
  border:1px solid #bccbe0 !important;
  padding:0 14px !important;
  color:#21436a;
  font-size:14px;
  outline:none;
  box-sizing:border-box;
}

.serie-nfe-page #form-serie-nfe .serie-nfe-field input[readonly],
.serie-nfe-page #form-serie-nfe .serie-nfe-field input[disabled],
.serie-nfe-page #form-serie-nfe .serie-nfe-field select[disabled]{
  background:#f7f9fc;
  color:#5f7596;
}

.serie-nfe-page #form-serie-nfe .serie-nfe-field label{
  margin-bottom:2px !important;
  font-size:12px;
  font-weight:700;
  color:#0f2d63;
  letter-spacing:0;
}

.serie-nfe-page #form-serie-nfe .serie-nfe-grid{
  gap:8px 10px !important;
}

.serie-nfe-page .serie-nfe-table-wrap,
.serie-nfe-page .serie-nfe-table{
  border-radius:6px !important;
  border-color:#bccbe0 !important;
}

/* =========================
   PADRÃO GLOBAL - GRID FLEXÍVEL / COLUNAS REDIMENSIONÁVEIS
   ========================= */
.zz-grid-flex-wrap,
.zz-modal__table-wrap,
.estoque-table-wrap,
.liquidacao-table-wrap,
[class*="table-wrap"].zz-grid-flex-wrap,
[class*="grid"].zz-grid-flex-wrap{
  flex:1 1 auto;
  min-height:0;
  overflow:auto;
  resize:both;
  scrollbar-gutter:stable;
}

.zz-modal__table-wrap.zz-grid-flex-wrap,
.zz-modal .zz-grid-flex-wrap,
.zz-modal-mask .zz-grid-flex-wrap{
  min-height:180px;
  max-height:58vh;
}

.zz-grid-table{
  table-layout:fixed !important;
  width:max-content !important;
  min-width:100% !important;
}

.zz-grid-table th,
.zz-grid-table td{
  white-space:nowrap !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
}

.zz-grid-table th{
  position:sticky;
  top:0;
  z-index:3;
  user-select:none;
}

.zz-grid-col-resizer{
  position:absolute;
  top:0;
  right:-5px;
  width:10px;
  height:100%;
  cursor:col-resize;
  z-index:20;
  touch-action:none;
}

.zz-grid-col-resizer::after{
  content:"";
  position:absolute;
  top:22%;
  bottom:22%;
  left:5px;
  width:1px;
  background:rgba(15,23,42,.25);
}

.zz-grid-table th:hover,
.zz-grid-table th.zz-grid-th-resizing{
  background:#eef5ff !important;
}

body.zz-grid-resizing,
body.zz-grid-resizing *{
  cursor:col-resize !important;
  user-select:none !important;
}

@media (max-width:900px){
  .zz-modal .zz-grid-flex-wrap,
  .zz-modal-mask .zz-grid-flex-wrap,
  .zz-modal__table-wrap.zz-grid-flex-wrap{
    resize:vertical;
    max-height:55vh;
  }
}


/* =========================
   PADRÃO GLOBAL - CANTOS MAIS QUADRADOS
   Centraliza o arredondamento do badge de código e dos botões do sistema.
   ========================= */
:root{
  --zz-radius-codigo:6px;
  --zz-radius-botao:6px;
}

.zz-card__badge,
.liquidacao-page .liquidacao-codigo-badge,
.pedido-venda-page #pvBadgeId,
.zz-wrap.estoque-page .zz-card__badge,
.liquidacao-page .zz-card__badge,
.clientes-page .zz-card__badge,
.empresa-page .zz-card__badge{
  border-radius:var(--zz-radius-codigo) !important;
}

.zz-btn,
.zz-btn-nav,
.zz-btn-dark,
.zz-btn-secondary,
.zz-btn-danger,
.zz-btn-primary,
.zz-actions .zz-btn,
#btnEditar,
.clientes-refresh-btn,
.clientes-pix-copy,
.cp-picker-btn,
.estoque-tab,
.liquidacao-tab,
.clientes-tab{
  border-radius:var(--zz-radius-botao) !important;
}

.clientes-tab,
.liquidacao-tab,
.estoque-tab{
  border-top-left-radius:var(--zz-radius-botao) !important;
  border-top-right-radius:var(--zz-radius-botao) !important;
  border-bottom-left-radius:0 !important;
  border-bottom-right-radius:0 !important;
}

/* =========================
   PADRÃO GLOBAL - MODAIS DE PESQUISA COM CANTOS MAIS QUADRADOS
   Ajuste cirúrgico: aplica o mesmo raio dos botões/código nos campos,
   paginação, botões e grades dentro dos modais.
   ========================= */
.zz-modal,
.zz-modal-mask .zz-modal{
  border-radius:var(--zz-radius-botao) !important;
}

.zz-modal__close,
.zz-modal .zz-modal__close{
  border-radius:var(--zz-radius-botao) !important;
}

.zz-modal input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]),
.zz-modal select,
.zz-modal textarea,
.zz-modal .zz-input,
.zz-modal .zz-select,
.zz-modal .clientes-field input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]),
.zz-modal .clientes-field select,
.zz-modal .empresa-field input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]),
.zz-modal .empresa-field select,
.zz-modal .liquidacao-field input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]),
.zz-modal .liquidacao-field select{
  border-radius:var(--zz-radius-botao) !important;
}

.zz-modal .zz-btn,
.zz-modal .zz-btn-nav,
.zz-modal .zz-btn-dark,
.zz-modal .zz-btn-secondary,
.zz-modal .zz-btn-danger,
.zz-modal .zz-btn-primary,
.zz-modal button.zz-btn,
.zz-modal .clientes-pix-copy,
.zz-modal .cp-picker-btn{
  border-radius:var(--zz-radius-botao) !important;
}

.zz-modal .zz-pill,
.zz-modal-mask .zz-pill,
#clientesPaginaInfo,
#ncmClientesPaginaInfo{
  border-radius:var(--zz-radius-botao) !important;
}

.zz-modal__table-wrap,
.zz-modal .zz-modal__table-wrap,
.zz-modal .zz-table,
.zz-modal table.zz-table,
#maskConsultaClientes .zz-modal__table-wrap,
#maskConsultaClientes .zz-table,
#maskNCMClientes .zz-modal__table-wrap,
#maskNCMClientes .zz-table{
  border-radius:var(--zz-radius-botao) !important;
}

/* =========================
   PADRÃO GLOBAL - STATUS / PILLS COM CANTOS MAIS QUADRADOS
   Ajuste cirúrgico: mantém cores e tamanhos existentes, altera só o raio.
   ========================= */
.zz-pill,
.zz-status-ok,
.clientes-status-pill,
.estoque-chip,
.liquidacao-acao-bloqueada{
  border-radius:var(--zz-radius-botao) !important;
}

#tbodyDuplicatasCliente .clientes-status-pill,
#tbodyUltimasComprasCliente .clientes-status-pill,
.clientes-detalhe-table .clientes-status-pill{
  border-radius:var(--zz-radius-botao) !important;
}


/* =========================
   CADASTRO PRODUTO - filtro dinâmico do modal com canto padrão
   Ajuste cirúrgico: o botão Filtrar é criado pelo loja-ui.js, então recebe regra própria.
   ========================= */
#zzCpBtnFiltrarV20.zz-cp-ean-btn-filtrar-v20,
.zz-modal #zzCpBtnFiltrarV20.zz-cp-ean-btn-filtrar-v20{
  border-radius:var(--zz-radius-botao, 6px) !important;
}

.zz-cp-ean-field-v20 input,
.zz-cp-ean-registros-v20 .zz-cp-ean-registros-box-v20,
.zz-produto-grid-wrap{
  border-radius:var(--zz-radius-botao, 6px) !important;
}


/* =========================
   NOTA - PADRÃO GLOBAL DE CANTOS MAIS QUADRADOS
   Ajuste cirúrgico: usa as mesmas variáveis globais de código/botões
   e força também campos, cards, totais, grids e modais específicos da Nota.
   ========================= */
.zz-wrap.estoque-page{
  --zz-radius-codigo:6px;
  --zz-radius-botao:6px;
}

.zz-wrap.estoque-page .zz-card__badge,
.zz-wrap.estoque-page .zz-card__badge[style],
.zz-wrap.estoque-page .zz-card__badge *{
  box-shadow:none !important;
}

.zz-wrap.estoque-page .zz-card__badge,
.zz-wrap.estoque-page .zz-card__badge[style]{
  min-height:38px !important;
  padding:0 14px !important;
  border:1px solid #bccbe0 !important;
  border-radius:var(--zz-radius-codigo, 6px) !important;
  background:#fff !important;
  color:#64748b !important;
  gap:12px !important;
  white-space:nowrap !important;
}

.zz-wrap.estoque-page .zz-card__badge-label,
.zz-wrap.estoque-page .zz-card__badge-label[style]{
  font-size:12px !important;
  font-weight:800 !important;
  letter-spacing:.08em !important;
  color:#64748b !important;
  text-transform:uppercase !important;
}

.zz-wrap.estoque-page .zz-card__badge-value,
.zz-wrap.estoque-page .zz-card__badge-value[style]{
  font-size:18px !important;
  font-weight:800 !important;
  color:#1f3d8f !important;
  line-height:1 !important;
}

.zz-wrap.estoque-page .zz-input,
.zz-wrap.estoque-page .zz-select,
.zz-wrap.estoque-page input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]),
.zz-wrap.estoque-page select,
.zz-wrap.estoque-page textarea,
.zz-wrap.estoque-page .estoque-total-field .zz-input,
.zz-wrap.estoque-page .estoque-item-field .zz-input,
.zz-wrap.estoque-page .estoque-item-field .zz-select,
.zz-wrap.estoque-page .estoque-tributos-campos .estoque-item-field .zz-input,
.zz-wrap.estoque-page .estoque-tributos-campos .estoque-item-field .zz-select{
  border-radius:var(--zz-radius-botao, 6px) !important;
  border-color:#bccbe0 !important;
}

.zz-wrap.estoque-page .zz-btn,
.zz-wrap.estoque-page .zz-btn-nav,
.zz-wrap.estoque-page .zz-btn-dark,
.zz-wrap.estoque-page .zz-btn-secondary,
.zz-wrap.estoque-page .zz-btn-danger,
.zz-wrap.estoque-page .zz-btn-primary,
.zz-wrap.estoque-page .estoque-item-toolbar .zz-btn,
.zz-wrap.estoque-page .estoque-produto-grid .zz-btn,
.zz-wrap.estoque-page .estoque-produto-filtro-botao .zz-btn,
.zz-wrap.estoque-page .zz-modal .zz-btn{
  border-radius:var(--zz-radius-botao, 6px) !important;
}

.zz-wrap.estoque-page .estoque-tab{
  border-radius:var(--zz-radius-botao, 6px) var(--zz-radius-botao, 6px) 0 0 !important;
}

.zz-wrap.estoque-page .estoque-box,
.zz-wrap.estoque-page .estoque-main-box,
.zz-wrap.estoque-page .estoque-itens-box,
.zz-wrap.estoque-page .estoque-fill-box,
.zz-wrap.estoque-page .estoque-sync-box,
.zz-wrap.estoque-page .estoque-item-card,
.zz-wrap.estoque-page .estoque-table-wrap,
.zz-wrap.estoque-page .estoque-fill-wrap,
.zz-wrap.estoque-page .estoque-table,
.zz-wrap.estoque-page .itens-resumo-grid,
.zz-wrap.estoque-page .estoque-produto-grid-wrap,
.zz-wrap.estoque-page .zz-modal__table-wrap,
.zz-wrap.estoque-page .zz-table{
  border-radius:var(--zz-radius-botao, 6px) !important;
  border-color:#bccbe0 !important;
}

.zz-wrap.estoque-page .estoque-chip,
.zz-wrap.estoque-page .zz-pill,
.zz-wrap.estoque-page .estoque-produto-total{
  border-radius:var(--zz-radius-botao, 6px) !important;
}

.zz-wrap.estoque-page .estoque-input-with-action > .zz-btn-inline-icon,
.zz-wrap.estoque-page .estoque-input-with-action > button{
  border-radius:var(--zz-radius-botao, 6px) !important;
}

.zz-wrap.estoque-page .nota-imprimir-split > #btn-imprimir{
  border-top-left-radius:var(--zz-radius-botao, 6px) !important;
  border-bottom-left-radius:var(--zz-radius-botao, 6px) !important;
  border-top-right-radius:0 !important;
  border-bottom-right-radius:0 !important;
}

.zz-wrap.estoque-page .nota-imprimir-arrow{
  border-top-left-radius:0 !important;
  border-bottom-left-radius:0 !important;
  border-top-right-radius:var(--zz-radius-botao, 6px) !important;
  border-bottom-right-radius:var(--zz-radius-botao, 6px) !important;
}

.zz-wrap.estoque-page .nota-imprimir-menu,
.zz-wrap.estoque-page .nota-imprimir-menu button{
  border-radius:var(--zz-radius-botao, 6px) !important;
}

/* Modais da Nota: consulta, chave, XML, impressão e busca de produto. */
#maskConsultaEstoque .zz-modal,
#maskChaveNfe .zz-modal,
#maskFaltantesXml .zz-modal,
#maskImpressaoEstoque .zz-modal,
#maskBuscaProdutoEstoque .zz-modal,
#maskMensagemImportacao .zz-modal{
  border-radius:var(--zz-radius-botao, 6px) !important;
}

#maskConsultaEstoque .zz-modal__close,
#maskChaveNfe .zz-modal__close,
#maskFaltantesXml .zz-modal__close,
#maskImpressaoEstoque .zz-modal__close,
#maskBuscaProdutoEstoque .zz-modal__close,
#maskMensagemImportacao .zz-modal__close{
  border-radius:var(--zz-radius-botao, 6px) !important;
}

#maskConsultaEstoque input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]),
#maskConsultaEstoque select,
#maskChaveNfe input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]),
#maskFaltantesXml input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]),
#maskFaltantesXml select,
#maskImpressaoEstoque input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]),
#maskImpressaoEstoque select,
#maskBuscaProdutoEstoque input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]),
#maskBuscaProdutoEstoque select,
#maskMensagemImportacao input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]),
#maskMensagemImportacao select,
#maskMensagemImportacao textarea{
  border-radius:var(--zz-radius-botao, 6px) !important;
  border-color:#bccbe0 !important;
}

#maskConsultaEstoque .zz-btn,
#maskChaveNfe .zz-btn,
#maskFaltantesXml .zz-btn,
#maskImpressaoEstoque .zz-btn,
#maskBuscaProdutoEstoque .zz-btn,
#maskMensagemImportacao .zz-btn,
#maskConsultaEstoque .zz-pill,
#maskChaveNfe .zz-pill,
#maskFaltantesXml .zz-pill,
#maskImpressaoEstoque .zz-pill,
#maskBuscaProdutoEstoque .zz-pill,
#maskMensagemImportacao .zz-pill{
  border-radius:var(--zz-radius-botao, 6px) !important;
}

#maskConsultaEstoque .estoque-table-wrap,
#maskFaltantesXml .estoque-table-wrap,
#maskImpressaoEstoque .zz-modal__table-wrap,
#maskBuscaProdutoEstoque .zz-modal__table-wrap,
#maskBuscaProdutoEstoque .estoque-produto-grid-wrap,
#maskMensagemImportacao .zz-modal__table-wrap{
  border-radius:var(--zz-radius-botao, 6px) !important;
  border-color:#bccbe0 !important;
}


/* =========================
   CFOP - PADRÃO GLOBAL DE CANTOS MAIS QUADRADOS
   Ajuste cirúrgico: alinha CFOP ao mesmo padrão visual das telas já ajustadas.
   ========================= */
body.cfop-page,
.cfop-page{
  --zz-radius-codigo:6px;
  --zz-radius-botao:6px;
}

.cfop-page .cfop-card-header{
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:16px !important;
}

.cfop-page .cfop-card-header h1{
  margin:0 !important;
}

.cfop-page .cfop-badge-codigo,
.cfop-page .zz-card__badge.cfop-badge-codigo,
.cfop-page .zz-card__header .cfop-badge-codigo,
.cfop-page #cfopBadgeCodigo{
  box-shadow:none !important;
}

.cfop-page .cfop-badge-codigo,
.cfop-page .zz-card__badge.cfop-badge-codigo{
  display:inline-flex !important;
  align-items:center !important;
  gap:12px !important;
  min-height:38px !important;
  padding:0 14px !important;
  border:1px solid #bccbe0 !important;
  border-radius:var(--zz-radius-codigo, 6px) !important;
  background:#fff !important;
  white-space:nowrap !important;
}

.cfop-page .cfop-badge-codigo .zz-card__badge-label{
  font-size:12px !important;
  font-weight:800 !important;
  letter-spacing:.08em !important;
  color:#64748b !important;
  text-transform:uppercase !important;
}

.cfop-page .cfop-badge-codigo .zz-card__badge-value,
.cfop-page #cfopBadgeCodigo{
  min-width:auto !important;
  height:auto !important;
  padding:0 !important;
  border:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  color:#1f3d8f !important;
  font-size:18px !important;
  font-weight:800 !important;
  line-height:1 !important;
}

.cfop-page .zz-input,
.cfop-page .zz-select,
.cfop-page .zz-textarea,
.cfop-page .zz-check,
.cfop-page input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]),
.cfop-page select,
.cfop-page textarea,
.cfop-page .cfop-regra-table input,
.cfop-page .cfop-regra-table select{
  border-radius:var(--zz-radius-botao, 6px) !important;
  border-color:#bccbe0 !important;
}

.cfop-page .zz-btn,
.cfop-page .zz-btn-nav,
.cfop-page .zz-btn-dark,
.cfop-page .zz-btn-secondary,
.cfop-page .zz-btn-danger,
.cfop-page .zz-btn-primary,
.cfop-page .zz-modal__close,
.cfop-page .cfop-pill,
.cfop-page .zz-pill,
.cfop-page .cfop-ncm-page-info,
.cfop-page .cfop-regra-status{
  border-radius:var(--zz-radius-botao, 6px) !important;
}

.cfop-page .cfop-tab{
  border-radius:var(--zz-radius-botao, 6px) var(--zz-radius-botao, 6px) 0 0 !important;
}

.cfop-page .zz-modal,
.cfop-page .zz-table,
.cfop-page .zz-ac-list,
.cfop-page .cfop-fill-box,
.cfop-page .cfop-table-wrap,
.cfop-page .zz-modal__table-wrap{
  border-radius:var(--zz-radius-botao, 6px) !important;
  border-color:#bccbe0 !important;
}

.cfop-page .zz-ac-item,
.cfop-page .nota-imprimir-menu button{
  border-radius:var(--zz-radius-botao, 6px) !important;
}

/* CFOP - campo Pesquisar da aba NCM no mesmo padrão dos campos globais */
.cfop-page #ncm_vinculo_busca{
  min-height:42px !important;
  height:42px !important;
  padding:0 14px !important;
  font-size:16px !important;
  background:#fff !important;
  border:1px solid #bccbe0 !important;
  border-radius:var(--zz-radius-botao, 6px) !important;
  box-sizing:border-box !important;
}

/* =========================
   EMPRESA - contornos no padrão NCM/LOJA
   Ajuste cirúrgico: somente visual da tela Empresa, aplicado sobre o arquivo enviado.
   ========================= */
.empresa-page{
  --zz-radius-codigo:6px;
  --zz-radius-botao:6px;
}

.empresa-page .zz-card__badge{
  min-height:38px !important;
  padding:0 14px !important;
  border:1px solid #bccbe0 !important;
  border-radius:var(--zz-radius-codigo, 6px) !important;
  background:#fff !important;
  color:#64748b !important;
  gap:12px !important;
  white-space:nowrap !important;
  box-shadow:none !important;
}

.empresa-page .zz-card__badge-label{
  font-size:12px !important;
  font-weight:800 !important;
  letter-spacing:.08em !important;
  color:#64748b !important;
  text-transform:uppercase !important;
}

.empresa-page .zz-card__badge-value{
  font-size:18px !important;
  font-weight:800 !important;
  color:#1f3d8f !important;
  line-height:1 !important;
}

#form-empresa .empresa-field input:not([type="hidden"]),
#form-empresa .empresa-field select,
#form-empresa .empresa-field textarea{
  height:38px !important;
  min-height:38px !important;
  border-radius:var(--zz-radius-botao, 6px) !important;
  border:1px solid #bccbe0 !important;
  padding:0 14px !important;
  color:#21436a;
  font-size:14px;
  outline:none;
  box-sizing:border-box;
}

#form-empresa .empresa-field textarea{
  padding:8px 14px !important;
  height:auto !important;
}

#form-empresa .empresa-field input[readonly],
#form-empresa .empresa-field input[disabled],
#form-empresa .empresa-field select[disabled]{
  background:#f7f9fc;
  color:#5f7596;
}

#form-empresa .empresa-label{
  margin-bottom:2px !important;
  font-size:12px;
  font-weight:700;
  color:#0f2d63;
}

#form-empresa .empresa-form-grid{
  gap:8px 10px !important;
}

.empresa-page .zz-btn,
.empresa-page .zz-btn-nav,
.empresa-page .zz-btn-dark,
.empresa-page .zz-btn-secondary,
.empresa-page .zz-btn-danger,
.empresa-page .zz-btn-primary,
.empresa-page #btnEditar,
.empresa-page .cp-picker-btn{
  border-radius:var(--zz-radius-botao, 6px) !important;
}

.empresa-page .zz-modal,
.empresa-page .zz-modal__close,
.empresa-page .zz-modal input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]),
.empresa-page .zz-modal select,
.empresa-page .zz-modal textarea,
.empresa-page .zz-modal .zz-input,
.empresa-page .zz-modal .zz-select,
.empresa-page .zz-modal .zz-btn,
.empresa-page .zz-modal .zz-pill,
.empresa-page .zz-modal__table-wrap,
.empresa-page .zz-modal .zz-table,
.empresa-page .result-select,
.empresa-page .result-select select{
  border-radius:var(--zz-radius-botao, 6px) !important;
}

/* =========================
   TIPO DOCUMENTO - PADRÃO GLOBAL EM loja.css
   Ajuste cirúrgico: CSS removido do TipoDocumento.html/TipoDocumento.py
   e centralizado aqui para todas as abas da tela.
   ========================= */
.tipo-documento-page .zz-card__head-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}

.tipo-documento-page .zz-card__badge{
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:0 14px;
  min-height:38px;
  border:1px solid #bccbe0;
  border-radius:var(--zz-radius-codigo, 6px);
  background:#fff;
  font-weight:700;
  color:#64748b;
  white-space:nowrap;
  box-shadow:none;
}

.tipo-documento-page .zz-card__badge-label{
  font-size:12px;
  font-weight:800;
  letter-spacing:.08em;
  color:#64748b;
  text-transform:uppercase;
}

.tipo-documento-page .zz-card__badge-value{
  font-size:18px;
  font-weight:800;
  color:#1f3d8f;
  line-height:1;
}

@media (max-width:900px){
  .tipo-documento-page .zz-card__head-row{
    flex-direction:column;
    align-items:flex-start;
  }
}

#maskTipoDocumento .zz-table th,
  #maskTipoDocumento .zz-table td{
    padding-top: 9px;
    padding-bottom: 9px;
  }

  #maskTipoDocumento .zz-modal{
    width:min(1180px, 96vw);
  }

  #maskTipoDocumento .zz-modal__table-wrap{
    max-height: 44vh;
    overflow: auto;
  }

  .tdoc-tabs{
    display:flex;
    align-items:flex-end;
    gap:8px;
    margin:2px 0 14px;
    flex-wrap:wrap;
  }

  .tdoc-tab{
    appearance:none;
    border:1px solid #c7d5ea;
    border-bottom:none;
    border-radius:var(--zz-radius-botao, 6px) var(--zz-radius-botao, 6px) 0 0;
    background:#f3f7fd;
    color:#1f3d8f;
    font-weight:700;
    font-size:14px;
    padding:10px 18px;
    cursor:pointer;
    line-height:1;
    min-height:38px;
  }

  .tdoc-tab.is-active{
    background:#fff;
    color:#0f2d63;
    box-shadow:0 -1px 0 #fff inset;
  }

  .tdoc-pane{
    display:none;
  }

  .tdoc-pane.is-active{
    display:block;
  }

  .tdoc-fill-box{
    min-height:420px;
    border:1px solid var(--zz-line);
    border-radius:var(--zz-radius-botao, 6px);
    background:#fff;
    display:flex;
    flex-direction:column;
    overflow:hidden;
  }

  .tdoc-fill-area{
    flex:1 1 auto;
    min-height:0;
    padding:16px;
    display:flex;
    flex-direction:column;
    gap:14px;
  }

  .tdoc-subtitle{
    font-size:15px;
    font-weight:800;
    color:#163766;
    margin:0;
  }

  .tdoc-grid-two{
    display:grid;
    grid-template-columns:repeat(12, minmax(0,1fr));
    gap:8px 10px;
  }

  .tdoc-field{
    display:flex;
    flex-direction:column;
    gap:4px;
  }

  .tdoc-field label{
    margin-bottom:2px;
    font-size:12px;
    font-weight:700;
    color:#0f2d63;
  }

  .tdoc-field input,
  .tdoc-field select{
    width:100%;
    height:38px;
    min-height:38px;
    padding:0 14px;
    border:1px solid #bccbe0;
    border-radius:var(--zz-radius-botao, 6px);
    background:#fff;
    color:#21436a;
    font-size:14px;
    outline:none;
    box-sizing:border-box;
  }

  .tdoc-field input:focus,
  .tdoc-field select:focus{
    border-color:#5b88da;
    box-shadow:0 0 0 2px rgba(91,136,218,.12);
  }
  .tdoc-span-3{grid-column:span 3;}
  .tdoc-span-4{grid-column:span 4;}
  .tdoc-span-5{grid-column:span 5;}
  .tdoc-span-6{grid-column:span 6;}
  .tdoc-span-8{grid-column:span 8;}
  .tdoc-span-12{grid-column:span 12;}

  .tdoc-toolbar{
    display:flex;
    gap:10px;
    align-items:end;
    flex-wrap:wrap;
  }

  .tdoc-table-wrap{
    flex:1 1 auto;
    min-height:240px;
    border:1px solid var(--zz-line);
    border-radius:var(--zz-radius-botao, 6px);
    overflow:auto;
    background:#fff;
  }

  .tdoc-empty{
    padding:18px;
    text-align:center;
    color:#64748b;
  }

  .tdoc-pill{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:44px;
    padding:0 14px;
    border:1px solid var(--zz-line);
    border-radius:var(--zz-radius-botao, 6px);
    font-weight:800;
    color:#1f3d8f;
    background:#f8fbff;
  }


  /* =========================
     TIPO DOCUMENTO - padrão global em todas as abas
     Ajuste cirúrgico: somente visual, sem alterar fluxo/lógica.
     ========================= */
  #form-tipo-documento{
    --zz-radius-codigo:6px;
    --zz-radius-botao:6px;
  }

  #form-tipo-documento .empresa-field input:not([type="hidden"]),
  #form-tipo-documento .empresa-field select,
  #form-tipo-documento .tdoc-field input:not([type="hidden"]),
  #form-tipo-documento .tdoc-field select{
    height:38px !important;
    min-height:38px !important;
    border-radius:var(--zz-radius-botao, 6px) !important;
    border:1px solid #bccbe0 !important;
    padding:0 14px !important;
    color:#21436a;
    font-size:14px;
    outline:none;
    box-sizing:border-box;
  }

  #form-tipo-documento .empresa-label,
  #form-tipo-documento .tdoc-field label{
    margin-bottom:2px !important;
    font-size:12px;
    font-weight:700;
    color:#0f2d63;
  }

  #form-tipo-documento .empresa-form-grid,
  #form-tipo-documento .tdoc-grid-two{
    gap:8px 10px !important;
  }

  #form-tipo-documento .tdoc-tab,
  #form-tipo-documento .zz-btn,
  #form-tipo-documento .tdoc-pill,
  #form-tipo-documento .tdoc-fill-box,
  #form-tipo-documento .tdoc-table-wrap,
  #form-tipo-documento .zz-table{
    border-radius:var(--zz-radius-botao, 6px) !important;
  }

  #form-tipo-documento .tdoc-tab{
    border-top-left-radius:var(--zz-radius-botao, 6px) !important;
    border-top-right-radius:var(--zz-radius-botao, 6px) !important;
    border-bottom-left-radius:0 !important;
    border-bottom-right-radius:0 !important;
  }

  #maskTipoDocumento .zz-modal,
  #maskTipoDocumento .zz-modal__close,
  #maskTipoDocumento .zz-modal__table-wrap,
  #maskTipoDocumento .zz-table,
  #maskTipoDocumento .zz-pill,
  #maskTipoDocumento .zz-btn,
  #maskTipoDocumento input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]),
  #maskTipoDocumento select,
  #maskTipoDocumento textarea{
    border-radius:var(--zz-radius-botao, 6px) !important;
  }

  #maskTipoDocumento input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]),
  #maskTipoDocumento select,
  #maskTipoDocumento textarea{
    height:38px !important;
    min-height:38px !important;
    border:1px solid #bccbe0 !important;
    padding:0 14px !important;
    color:#21436a;
    font-size:14px;
    outline:none;
    box-sizing:border-box;
  }

  @media (max-width: 900px){
    #maskTipoDocumento .zz-modal{
      width:min(98vw, 98vw);
    }
    #maskTipoDocumento .zz-modal__table-wrap{
      max-height: 40vh;
    }
    .tdoc-grid-two{
      grid-template-columns:repeat(1, minmax(0,1fr));
    }
    .tdoc-span-3,
    .tdoc-span-4,
    .tdoc-span-5,
    .tdoc-span-6,
    .tdoc-span-8,
    .tdoc-span-12{
      grid-column:span 1;
    }
  }

/* =========================
   CEP - PADRÃO GLOBAL EM loja.css
   Ajuste cirúrgico: aplicado sobre o loja.css atual enviado pelo usuário.
   Mantém a tela e a lógica, ajustando somente cantos/contornos dos campos,
   badge, botões, modal e grid do CEP.
   ========================= */
.cep-page{
  --zz-radius-codigo:6px;
  --zz-radius-botao:6px;
}

.cep-page .zz-card{
  border-radius:var(--zz-radius-botao, 6px) !important;
}

.cep-page .cep-head-row{
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:12px !important;
}

.cep-page .cep-badge,
#maskCep .cep-badge{
  min-height:38px !important;
  padding:0 14px !important;
  border:1px solid #bccbe0 !important;
  border-radius:var(--zz-radius-codigo, 6px) !important;
  background:#fff !important;
  color:#64748b !important;
  gap:12px !important;
  white-space:nowrap !important;
  box-shadow:none !important;
}

.cep-page .cep-badge-label{
  font-size:12px !important;
  font-weight:800 !important;
  letter-spacing:.08em !important;
  color:#64748b !important;
  text-transform:uppercase !important;
}

.cep-page .cep-badge-value{
  font-size:18px !important;
  font-weight:800 !important;
  color:#1f3d8f !important;
  line-height:1 !important;
}

.cep-page .cep-field input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]),
.cep-page .cep-field select,
#maskCep .cep-field input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]),
#maskCep .cep-field select{
  height:38px !important;
  min-height:38px !important;
  border-radius:var(--zz-radius-botao, 6px) !important;
  border:1px solid #bccbe0 !important;
  padding:0 14px !important;
  background:#fff !important;
  color:#21436a !important;
  font-size:14px !important;
  outline:none !important;
  box-sizing:border-box !important;
}

.cep-page .cep-field input:focus,
.cep-page .cep-field select:focus,
#maskCep .cep-field input:focus,
#maskCep .cep-field select:focus{
  border-color:#5b88da !important;
  box-shadow:0 0 0 2px rgba(91,136,218,.12) !important;
}

.cep-page .cep-field input[readonly],
.cep-page .cep-field input[disabled],
.cep-page .cep-field select[disabled],
#maskCep .cep-field input[readonly],
#maskCep .cep-field input[disabled],
#maskCep .cep-field select[disabled]{
  background:#f7f9fc !important;
  color:#5f7596 !important;
}

.cep-page .cep-field label,
#maskCep .cep-field label{
  margin-bottom:2px !important;
  font-size:12px !important;
  font-weight:700 !important;
  color:#0f2d63 !important;
}

.cep-page .cep-grid,
#maskCep .cep-grid{
  gap:8px 10px !important;
}

.cep-page .cep-inline{
  gap:6px !important;
}

.cep-page #btnViaCep,
.cep-page .zz-btn,
.cep-page .zz-btn-nav,
.cep-page .zz-btn-dark,
.cep-page .zz-btn-secondary,
.cep-page .zz-btn-danger,
.cep-page .zz-btn-primary,
#maskCep .zz-btn,
#maskCep .zz-btn-nav,
#maskCep .zz-btn-dark,
#maskCep .zz-btn-secondary,
#maskCep .zz-btn-danger,
#maskCep .zz-btn-primary,
#maskCep .zz-modal__close{
  border-radius:var(--zz-radius-botao, 6px) !important;
}

.cep-page .cep-table-wrap,
.cep-page .zz-table,
#maskCep .cep-table-wrap,
#maskCep .zz-table,
#maskCep .zz-modal,
#maskCep .zz-modal__table-wrap{
  border-radius:var(--zz-radius-botao, 6px) !important;
  border-color:#bccbe0 !important;
}

#maskCep .zz-modal{
  width:min(980px, 96vw) !important;
}

#maskCep #pillCount{
  font-size:18px !important;
  font-weight:800 !important;
  color:#1f3d8f !important;
}

@media(max-width:900px){
  .cep-page .cep-head-row{
    flex-direction:column !important;
    align-items:flex-start !important;
  }
}

/* =========================
   CEP - CORREÇÃO FINAL DE ALTURAS
   Ajuste cirúrgico: iguala a altura dos campos, botão Buscar e badge Registros,
   inclusive sobrescrevendo o height inline do Cep.html.
   ========================= */
:root{
  --zz-cep-altura-campo:38px;
}

.cep-page #btnViaCep,
.cep-page .cep-inline input:not([type="hidden"]),
.cep-page .cep-field input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]),
.cep-page .cep-field select,
.cep-page .cep-badge,
#maskCep .cep-field input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]),
#maskCep .cep-field select,
#maskCep .cep-badge{
  height:var(--zz-cep-altura-campo) !important;
  min-height:var(--zz-cep-altura-campo) !important;
  max-height:var(--zz-cep-altura-campo) !important;
  box-sizing:border-box !important;
}

.cep-page #btnViaCep,
#maskCep .cep-badge{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  padding-top:0 !important;
  padding-bottom:0 !important;
  line-height:1 !important;
}

#maskCep .cep-grid{
  align-items:end !important;
}

#maskCep .cep-field{
  display:flex !important;
  flex-direction:column !important;
  justify-content:flex-end !important;
  gap:4px !important;
}

#maskCep .cep-field label{
  display:block !important;
  height:14px !important;
  min-height:14px !important;
  line-height:14px !important;
  margin:0 !important;
}

#maskCep .cep-badge{
  width:100% !important;
  margin:0 !important;
}

#maskCep #pillCount{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:100% !important;
  height:100% !important;
  line-height:1 !important;
}

/* =========================
   ADICIONAR USUÁRIO - PADRÃO GLOBAL EM loja.css
   Ajuste cirúrgico: aplicado somente no formulário /add_user.
   Mantém HTML e lógica, ajustando altura, contorno e cantos dos campos e botões.
   ========================= */
form[action="/add_user"].zz-card{
  --zz-radius-codigo:6px;
  --zz-radius-botao:6px;
  border-radius:var(--zz-radius-botao, 6px) !important;
}

form[action="/add_user"] .zz-card__header{
  border-bottom-color:#d6e7f8 !important;
}

form[action="/add_user"] .zz-form-grid{
  gap:8px 10px !important;
}

form[action="/add_user"] .zz-field label{
  margin-bottom:2px !important;
  font-size:12px !important;
  font-weight:700 !important;
  color:#0f2d63 !important;
}

form[action="/add_user"] .zz-input,
form[action="/add_user"] input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]),
form[action="/add_user"] select,
form[action="/add_user"] textarea{
  height:38px !important;
  min-height:38px !important;
  border-radius:var(--zz-radius-botao, 6px) !important;
  border:1px solid #bccbe0 !important;
  padding:0 14px !important;
  background:#fff !important;
  color:#21436a !important;
  font-size:14px !important;
  outline:none !important;
  box-sizing:border-box !important;
}

form[action="/add_user"] .zz-input:focus,
form[action="/add_user"] input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]):focus,
form[action="/add_user"] select:focus,
form[action="/add_user"] textarea:focus{
  border-color:#5b88da !important;
  box-shadow:0 0 0 2px rgba(91,136,218,.12) !important;
}

form[action="/add_user"] .zz-hint{
  padding-top:4px !important;
  font-size:12px !important;
  color:#64748b !important;
}

form[action="/add_user"] .zz-actions{
  padding-top:12px !important;
  align-items:flex-end !important;
}

form[action="/add_user"] .zz-btn,
form[action="/add_user"] .zz-btn-nav,
form[action="/add_user"] .zz-btn-primary,
form[action="/add_user"] .zz-btn-secondary,
form[action="/add_user"] .zz-btn-danger,
form[action="/add_user"] .zz-btn-dark{
  height:38px !important;
  min-height:38px !important;
  border-radius:var(--zz-radius-botao, 6px) !important;
}


/* =========================
   AUTENTICAÇÃO - RESET SENHA USUÁRIO
   Ajuste cirúrgico: aplicado somente no formulário /resetar_senha_usuario
   renderizado pela tela /solicitar_reset_senha. Mantém HTML e lógica.
   ========================= */
form[action="/resetar_senha_usuario"].zz-card{
  --zz-radius-codigo:6px;
  --zz-radius-botao:6px;
  border-radius:var(--zz-radius-botao, 6px) !important;
}

form[action="/resetar_senha_usuario"] .zz-card__header{
  border-bottom-color:#d6e7f8 !important;
}

form[action="/resetar_senha_usuario"] .zz-form-grid{
  gap:8px 10px !important;
}

form[action="/resetar_senha_usuario"] .zz-field label{
  margin-bottom:2px !important;
  font-size:12px !important;
  font-weight:700 !important;
  color:#0f2d63 !important;
}

form[action="/resetar_senha_usuario"] .zz-input,
form[action="/resetar_senha_usuario"] input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]),
form[action="/resetar_senha_usuario"] select,
form[action="/resetar_senha_usuario"] textarea{
  height:38px !important;
  min-height:38px !important;
  max-height:38px !important;
  border-radius:var(--zz-radius-botao, 6px) !important;
  border:1px solid #bccbe0 !important;
  padding:0 14px !important;
  background:#fff !important;
  color:#21436a !important;
  font-size:14px !important;
  outline:none !important;
  box-sizing:border-box !important;
}

form[action="/resetar_senha_usuario"] .zz-input:focus,
form[action="/resetar_senha_usuario"] input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]):focus,
form[action="/resetar_senha_usuario"] select:focus,
form[action="/resetar_senha_usuario"] textarea:focus{
  border-color:#5b88da !important;
  box-shadow:0 0 0 2px rgba(91,136,218,.12) !important;
}

form[action="/resetar_senha_usuario"] .zz-hint{
  padding-top:4px !important;
  font-size:12px !important;
  color:#64748b !important;
}

form[action="/resetar_senha_usuario"] .zz-actions{
  padding-top:12px !important;
  align-items:flex-end !important;
}

form[action="/resetar_senha_usuario"] .zz-btn,
form[action="/resetar_senha_usuario"] .zz-btn-nav,
form[action="/resetar_senha_usuario"] .zz-btn-primary,
form[action="/resetar_senha_usuario"] .zz-btn-secondary,
form[action="/resetar_senha_usuario"] .zz-btn-danger,
form[action="/resetar_senha_usuario"] .zz-btn-dark{
  height:38px !important;
  min-height:38px !important;
  max-height:38px !important;
  border-radius:var(--zz-radius-botao, 6px) !important;
}


/* =========================
   LOCALIZAÇÃO - PADRÃO GLOBAL EM loja.css
   Ajuste cirúrgico: aplicado sobre o último loja.css validado.
   Mantém a lógica da tela e ajusta somente visual/cantos/alturas.
   ========================= */
.zz-card__head-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}

#form-localizacao{
  --zz-radius-codigo:6px;
  --zz-radius-botao:6px;
}

#form-localizacao .empresa-field input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]),
#form-localizacao .empresa-field select,
#form-localizacao .zz-field input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]),
#form-localizacao .zz-field select{
  height:38px !important;
  min-height:38px !important;
  border-radius:var(--zz-radius-botao, 6px) !important;
  border:1px solid #bccbe0 !important;
  padding:0 14px !important;
  background:#fff !important;
  color:#21436a !important;
  font-size:14px !important;
  outline:none !important;
  box-sizing:border-box !important;
}

#form-localizacao .empresa-field input:focus,
#form-localizacao .empresa-field select:focus,
#form-localizacao .zz-field input:focus,
#form-localizacao .zz-field select:focus{
  border-color:#5b88da !important;
  box-shadow:0 0 0 2px rgba(91,136,218,.12) !important;
}

#form-localizacao .empresa-field input[readonly],
#form-localizacao .empresa-field input[disabled],
#form-localizacao .empresa-field select[disabled],
#form-localizacao .zz-field input[readonly],
#form-localizacao .zz-field input[disabled],
#form-localizacao .zz-field select[disabled]{
  background:#f7f9fc !important;
  color:#5f7596 !important;
}

#form-localizacao .empresa-label,
#form-localizacao .zz-field label{
  margin-bottom:2px !important;
  font-size:12px !important;
  font-weight:700 !important;
  color:#0f2d63 !important;
}

#form-localizacao .empresa-form-grid{
  gap:8px 10px !important;
}

#form-localizacao .zz-btn,
#form-localizacao .zz-btn-nav,
#form-localizacao .zz-btn-dark,
#form-localizacao .zz-btn-secondary,
#form-localizacao .zz-btn-danger,
#form-localizacao .zz-btn-primary{
  border-radius:var(--zz-radius-botao, 6px) !important;
}

#form-localizacao input[type="checkbox"],
#maskConsultaLocalizacao input[type="checkbox"]{
  width:16px !important;
  height:16px !important;
  min-height:16px !important;
  border-radius:3px !important;
  vertical-align:middle;
}

#maskConsultaLocalizacao .zz-modal{
  width:min(1100px, calc(100vw - 32px)) !important;
  border-radius:var(--zz-radius-botao, 6px) !important;
}

#maskConsultaLocalizacao .zz-modal__close,
#maskConsultaLocalizacao .zz-btn,
#maskConsultaLocalizacao .zz-btn-nav,
#maskConsultaLocalizacao .zz-btn-secondary,
#maskConsultaLocalizacao .zz-btn-primary,
#maskConsultaLocalizacao .zz-btn-danger,
#maskConsultaLocalizacao .zz-pill,
#maskConsultaLocalizacao #pillCount,
#maskConsultaLocalizacao #paginf{
  border-radius:var(--zz-radius-botao, 6px) !important;
}

#maskConsultaLocalizacao .zz-modal__row{
  grid-template-columns:260px minmax(0,1fr) 140px 140px !important;
  gap:10px 12px !important;
  align-items:end !important;
}

#maskConsultaLocalizacao .zz-field{
  min-width:0 !important;
}

#maskConsultaLocalizacao .zz-field label{
  margin-bottom:2px !important;
  font-size:12px !important;
  font-weight:700 !important;
  color:#0f2d63 !important;
}

#maskConsultaLocalizacao input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]),
#maskConsultaLocalizacao select,
#maskConsultaLocalizacao .zz-input,
#maskConsultaLocalizacao .zz-select{
  height:38px !important;
  min-height:38px !important;
  border-radius:var(--zz-radius-botao, 6px) !important;
  border:1px solid #bccbe0 !important;
  padding:0 14px !important;
  background:#fff !important;
  color:#21436a !important;
  font-size:14px !important;
  outline:none !important;
  box-sizing:border-box !important;
}

#maskConsultaLocalizacao #pillCount,
#maskConsultaLocalizacao #paginf{
  height:38px !important;
  min-height:38px !important;
  padding:0 14px !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  border:1px solid #bccbe0 !important;
  background:#f8fbff !important;
  color:#0f2d63 !important;
  font-size:16px !important;
  font-weight:800 !important;
  line-height:1 !important;
}

#maskConsultaLocalizacao #btnConsultaAnterior,
#maskConsultaLocalizacao #btnConsultaProxima{
  height:38px !important;
  min-height:38px !important;
}

#maskConsultaLocalizacao .zz-table,
#maskConsultaLocalizacao .zz-modal__table-wrap{
  border-radius:var(--zz-radius-botao, 6px) !important;
  border-color:#bccbe0 !important;
}

#maskConsultaLocalizacao .zz-actions{
  margin-top:0 !important;
  padding-top:12px !important;
  padding-bottom:0 !important;
  align-items:center !important;
}

#maskConsultaLocalizacao .zz-actions-right{
  align-items:center !important;
  gap:8px !important;
}

@media (max-width:900px){
  .zz-card__head-row{
    flex-direction:column;
    align-items:flex-start;
  }

  #maskConsultaLocalizacao .zz-modal__row{
    grid-template-columns:1fr !important;
  }
}

/* =========================
   GRUPO PRODUTOS - PADRÃO GLOBAL EM loja.css
   Ajuste cirúrgico: aplicado somente na tela GrupoProdutos.
   Mantém HTML/Python/lógica e ajusta cantos, alturas, badge, campos, botões, modais e grid.
   ========================= */
.grupo-produtos-page{
  --zz-radius-codigo:6px;
  --zz-radius-botao:6px;
}

.grupo-produtos-page .zz-card,
.grupo-produtos-page .grupo-produtos-card{
  border-radius:var(--zz-radius-botao, 6px) !important;
}

.grupo-produtos-page .zz-card__header{
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:12px !important;
}

.grupo-produtos-page #gpBadgeCodigo{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:10px !important;
  height:38px !important;
  min-height:38px !important;
  padding:0 14px !important;
  border:1px solid #bccbe0 !important;
  border-radius:var(--zz-radius-codigo, 6px) !important;
  background:#fff !important;
  color:#64748b !important;
  font-size:12px !important;
  font-weight:800 !important;
  letter-spacing:.08em !important;
  text-transform:uppercase !important;
  white-space:nowrap !important;
  box-shadow:none !important;
}

.grupo-produtos-page #gpBadgeCodigoValor{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  color:#1f3d8f !important;
  font-size:18px !important;
  font-weight:800 !important;
  letter-spacing:0 !important;
  text-transform:none !important;
  line-height:1 !important;
}

.grupo-produtos-page .gp-shell{
  border-radius:var(--zz-radius-botao, 6px) !important;
  border-color:#bccbe0 !important;
}

#formGrupoProdutos .gp-form-grid{
  gap:8px 10px !important;
}

#formGrupoProdutos .zz-field label{
  margin-bottom:2px !important;
  font-size:12px !important;
  font-weight:700 !important;
  color:#0f2d63 !important;
}

#formGrupoProdutos input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]),
#formGrupoProdutos select,
#formGrupoProdutos .zz-input{
  height:38px !important;
  min-height:38px !important;
  border-radius:var(--zz-radius-botao, 6px) !important;
  border:1px solid #bccbe0 !important;
  padding:0 14px !important;
  background:#fff !important;
  color:#21436a !important;
  font-size:14px !important;
  outline:none !important;
  box-sizing:border-box !important;
}

#formGrupoProdutos textarea,
#formGrupoProdutos textarea.zz-input{
  min-height:88px !important;
  height:auto !important;
  border-radius:var(--zz-radius-botao, 6px) !important;
  border:1px solid #bccbe0 !important;
  padding:8px 14px !important;
  background:#fff !important;
  color:#21436a !important;
  font-size:14px !important;
  outline:none !important;
  box-sizing:border-box !important;
}

#formGrupoProdutos input:focus,
#formGrupoProdutos select:focus,
#formGrupoProdutos textarea:focus{
  border-color:#5b88da !important;
  box-shadow:0 0 0 2px rgba(91,136,218,.12) !important;
}

#formGrupoProdutos input[readonly],
#formGrupoProdutos input[disabled],
#formGrupoProdutos select[disabled],
#formGrupoProdutos textarea[readonly],
#formGrupoProdutos textarea[disabled]{
  background:#f7f9fc !important;
  color:#5f7596 !important;
}

#formGrupoProdutos input[type="checkbox"],
#maskConsultaGrupo input[type="checkbox"],
#maskMensagemGrupo input[type="checkbox"]{
  width:16px !important;
  height:16px !important;
  min-height:16px !important;
  border-radius:3px !important;
  vertical-align:middle;
}

#formGrupoProdutos .gp-status-wrap{
  min-height:38px !important;
  padding-top:4px !important;
  align-items:center !important;
}

#formGrupoProdutos .zz-actions{
  padding-top:12px !important;
  padding-bottom:0 !important;
  align-items:flex-end !important;
}

.grupo-produtos-page .zz-btn,
.grupo-produtos-page .zz-btn-nav,
.grupo-produtos-page .zz-btn-dark,
.grupo-produtos-page .zz-btn-secondary,
.grupo-produtos-page .zz-btn-danger,
.grupo-produtos-page .zz-btn-primary,
#maskConsultaGrupo .zz-btn,
#maskConsultaGrupo .zz-btn-nav,
#maskConsultaGrupo .zz-btn-dark,
#maskConsultaGrupo .zz-btn-secondary,
#maskConsultaGrupo .zz-btn-danger,
#maskConsultaGrupo .zz-btn-primary,
#maskMensagemGrupo .zz-btn,
#maskMensagemGrupo .zz-btn-primary,
#maskMensagemGrupo .zz-btn-secondary,
#maskMensagemGrupo .zz-btn-danger{
  border-radius:var(--zz-radius-botao, 6px) !important;
}

#maskConsultaGrupo .zz-modal,
#maskMensagemGrupo .zz-modal,
#maskConsultaGrupo .zz-modal__close,
#maskMensagemGrupo .zz-modal__close,
#maskConsultaGrupo .zz-pill,
#maskMensagemGrupo .zz-pill{
  border-radius:var(--zz-radius-botao, 6px) !important;
}

#maskConsultaGrupo .zz-field label,
#maskMensagemGrupo .zz-field label{
  margin-bottom:2px !important;
  font-size:12px !important;
  font-weight:700 !important;
  color:#0f2d63 !important;
}

#maskConsultaGrupo input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]),
#maskConsultaGrupo select,
#maskConsultaGrupo textarea,
#maskConsultaGrupo .zz-input,
#maskConsultaGrupo .zz-select,
#maskMensagemGrupo input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]),
#maskMensagemGrupo select,
#maskMensagemGrupo textarea,
#maskMensagemGrupo .zz-input,
#maskMensagemGrupo .zz-select{
  height:38px !important;
  min-height:38px !important;
  border-radius:var(--zz-radius-botao, 6px) !important;
  border:1px solid #bccbe0 !important;
  padding:0 14px !important;
  background:#fff !important;
  color:#21436a !important;
  font-size:14px !important;
  outline:none !important;
  box-sizing:border-box !important;
}

#maskConsultaGrupo textarea,
#maskMensagemGrupo textarea{
  height:auto !important;
  padding:8px 14px !important;
}

#maskConsultaGrupo .gp-consulta-table-wrap,
#maskConsultaGrupo .zz-table,
#maskMensagemGrupo .zz-table,
#maskConsultaGrupo .zz-modal__table-wrap,
#maskMensagemGrupo .zz-modal__table-wrap{
  border-radius:var(--zz-radius-botao, 6px) !important;
  border-color:#bccbe0 !important;
}

#maskConsultaGrupo #consultaGrupoInfo{
  min-height:38px !important;
  display:flex !important;
  align-items:center !important;
  color:#64748b !important;
  font-size:13px !important;
  font-weight:800 !important;
  line-height:1 !important;
}

@media (max-width:900px){
  .grupo-produtos-page .zz-card__header{
    flex-direction:column !important;
    align-items:flex-start !important;
  }
}


/* =========================
   FECHAMENTO ESTOQUE
   Ajuste cirúrgico: estilos isolados da nova tela.
   ========================= */
.zz-wrap.fechamento-page{
  max-width:1380px;
  margin:16px auto 8px;
  padding:0 18px 8px;
}

.fechamento-card .zz-card__body{
  padding:14px 18px 12px;
}

.fechamento-head-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}

.fechamento-badge{
  min-height:38px !important;
  padding:0 14px !important;
  border:1px solid #bccbe0 !important;
  border-radius:6px !important;
  background:#fff !important;
  gap:12px !important;
  white-space:nowrap;
  box-shadow:none !important;
}

.fechamento-filtros{
  display:grid;
  grid-template-columns:minmax(220px, 1.2fr) minmax(220px, 1.2fr) 160px auto;
  gap:10px;
  align-items:end;
  margin-bottom:12px;
}

.fechamento-field label{
  margin-bottom:2px !important;
  font-size:12px;
  font-weight:700;
  color:#0f2d63;
}

.fechamento-field .zz-input,
.fechamento-field .zz-select,
.fechamento-filtros .zz-input,
.fechamento-filtros .zz-select{
  height:38px !important;
  min-height:38px !important;
  border-radius:6px !important;
  border:1px solid #bccbe0 !important;
  padding:0 14px !important;
  color:#21436a;
  font-size:14px;
  outline:none;
  box-sizing:border-box;
}

.fechamento-botoes{
  display:flex;
  align-items:end;
  gap:8px;
  justify-content:flex-end;
  flex-wrap:wrap;
}

.fechamento-botoes .zz-btn,
.fechamento-actions .zz-btn{
  height:38px !important;
  min-height:38px !important;
  border-radius:6px !important;
}

.fechamento-alert{
  margin:8px 0 12px;
  padding:10px 12px;
  border-radius:6px;
  border:1px solid #cbd5e1;
  background:#f8fafc;
  color:#17324d;
  font-size:13px;
  font-weight:800;
  white-space:pre-line;
}

.fechamento-alert-info{
  border-color:#bfdbfe;
  background:#eff6ff;
  color:#1d4ed8;
}

.fechamento-alert-success{
  border-color:#abefc6;
  background:#ecfdf3;
  color:#067647;
}

.fechamento-alert-warning{
  border-color:#fed7aa;
  background:#fff7ed;
  color:#9a3412;
}

.fechamento-alert-error{
  border-color:#fecdd3;
  background:#fff1f2;
  color:#b42318;
}

.fechamento-resumo-grid{
  display:grid;
  grid-template-columns:repeat(7, minmax(120px, 1fr));
  gap:8px;
  margin-bottom:12px;
}

.fechamento-resumo-card{
  min-height:72px;
  border:1px solid #d8e2f0;
  border-radius:6px;
  background:#fbfdff;
  padding:10px 12px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:5px;
}

.fechamento-resumo-label{
  font-size:11px;
  font-weight:900;
  color:#64748b;
  text-transform:uppercase;
  letter-spacing:.04em;
}

.fechamento-resumo-card strong{
  color:#17324d;
  font-size:17px;
  line-height:1.1;
}

.fechamento-table-panel{
  border:1px solid #d8e2f0;
  border-radius:6px;
  background:#fff;
  overflow:hidden;
}

.fechamento-table-title{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:10px 12px;
  border-bottom:1px solid #d8e2f0;
  background:#f8fafc;
  color:#17324d;
}

.fechamento-table-title span{
  color:#64748b;
  font-size:12px;
  font-weight:700;
}

.fechamento-table-wrap{
  width:100%;
  min-height:360px;
  max-height:calc(100vh - 430px);
  overflow:auto;
}

.fechamento-table{
  width:100%;
  min-width:1120px;
  border-collapse:separate;
  border-spacing:0;
}

.fechamento-table th,
.fechamento-table td{
  padding:8px 10px;
  border-bottom:1px solid #e5edf7;
  font-size:12px;
  line-height:1.2;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

.fechamento-table th{
  position:sticky;
  top:0;
  z-index:2;
  background:#f8fafc;
  color:#0f2563;
  font-weight:900;
  text-align:left;
}

.fechamento-table tbody tr:hover{
  background:#f9fbff;
}

.fechamento-right{
  text-align:right !important;
}

.fechamento-empty{
  text-align:center !important;
  color:#64748b;
  padding:24px 10px !important;
  font-weight:700;
}

.fechamento-new-chip{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  margin-left:8px;
  padding:2px 6px;
  border-radius:999px;
  background:#e0f2fe;
  color:#075985;
  font-size:10px;
  font-weight:900;
  vertical-align:middle;
}

.fechamento-actions{
  margin-top:12px !important;
  padding-top:12px !important;
}

@media (max-width: 1180px){
  .fechamento-filtros{
    grid-template-columns:repeat(2, minmax(0, 1fr));
  }
  .fechamento-botoes{
    justify-content:flex-start;
  }
  .fechamento-resumo-grid{
    grid-template-columns:repeat(3, minmax(120px, 1fr));
  }
}

@media (max-width: 760px){
  .zz-wrap.fechamento-page{
    padding:0 10px 8px;
  }
  .fechamento-head-row{
    flex-direction:column;
    align-items:flex-start;
  }
  .fechamento-filtros{
    grid-template-columns:1fr;
  }
  .fechamento-resumo-grid{
    grid-template-columns:1fr;
  }
  .fechamento-table-wrap{
    max-height:none;
  }
}

/* =========================
   FECHAMENTO ESTOQUE - AJUSTE FINAL GRID/CALENDÁRIO
   Ajuste cirúrgico: grid ocupa o espaço livre do card e calendário mantém layout próprio.
   ========================= */
body.fechamento-estoque-page .fechamento-card .zz-card__body{
  flex:1 1 auto !important;
  min-height:0 !important;
  overflow:hidden !important;
  display:flex !important;
  flex-direction:column !important;
}

body.fechamento-estoque-page .fechamento-table-panel{
  flex:1 1 auto !important;
  height:auto !important;
  min-height:0 !important;
  max-height:none !important;
  display:flex !important;
  flex-direction:column !important;
  overflow:hidden !important;
}

body.fechamento-estoque-page .fechamento-table-wrap{
  flex:1 1 auto !important;
  min-height:0 !important;
  max-height:none !important;
  overflow:auto !important;
  resize:none !important;
}

body.fechamento-estoque-page .zzsap-calendar-popup{
  width:225px !important;
  max-width:calc(100vw - 14px) !important;
  overflow:hidden !important;
  resize:none !important;
  box-sizing:border-box !important;
}

body.fechamento-estoque-page .zzsap-calendar-popup *,
body.fechamento-estoque-page .zzsap-calendar-popup *::before,
body.fechamento-estoque-page .zzsap-calendar-popup *::after{
  box-sizing:border-box !important;
}

body.fechamento-estoque-page .zzsap-calendar-popup .zzsap-calendar-grid{
  display:table !important;
  width:100% !important;
  min-width:0 !important;
  max-width:100% !important;
  table-layout:fixed !important;
  border-collapse:separate !important;
  border-spacing:0 !important;
  border:0 !important;
  margin:0 !important;
  padding:0 !important;
  overflow:visible !important;
}

body.fechamento-estoque-page .zzsap-calendar-popup .zzsap-calendar-grid thead{
  display:table-header-group !important;
}

body.fechamento-estoque-page .zzsap-calendar-popup .zzsap-calendar-grid tbody{
  display:table-row-group !important;
}

body.fechamento-estoque-page .zzsap-calendar-popup .zzsap-calendar-grid tr{
  display:table-row !important;
}

body.fechamento-estoque-page .zzsap-calendar-popup .zzsap-calendar-grid th,
body.fechamento-estoque-page .zzsap-calendar-popup .zzsap-calendar-grid td{
  display:table-cell !important;
  width:14.2857% !important;
  min-width:0 !important;
  max-width:none !important;
  height:24px !important;
  padding:0 !important;
  border:0 !important;
  position:static !important;
  float:none !important;
  text-align:center !important;
  vertical-align:middle !important;
  white-space:nowrap !important;
  overflow:hidden !important;
  line-height:24px !important;
}

/* =========================
   FECHAMENTO ESTOQUE - FIX FINAL CALENDÁRIO ZZSAP
   Mantém o CalendarioLoja.py e isola a tabela interna do calendário
   das regras de grid/tabela da tela de fechamento.
   ========================= */
body.fechamento-estoque-page .zzsap-calendar-popup{
  width:225px !important;
  max-width:calc(100vw - 14px) !important;
  overflow:visible !important;
  resize:none !important;
  box-sizing:border-box !important;
  z-index:99999 !important;
}

body.fechamento-estoque-page .zzsap-calendar-popup .zzsap-calendar-grid{
  display:grid !important;
  grid-template-columns:repeat(7, minmax(0, 1fr)) !important;
  width:100% !important;
  min-width:0 !important;
  max-width:100% !important;
  border:0 !important;
  margin:0 !important;
  padding:0 !important;
  table-layout:auto !important;
  border-collapse:separate !important;
  border-spacing:0 !important;
  overflow:visible !important;
}

body.fechamento-estoque-page .zzsap-calendar-popup .zzsap-calendar-grid thead,
body.fechamento-estoque-page .zzsap-calendar-popup .zzsap-calendar-grid tbody,
body.fechamento-estoque-page .zzsap-calendar-popup .zzsap-calendar-grid tr{
  display:contents !important;
}

body.fechamento-estoque-page .zzsap-calendar-popup .zzsap-calendar-grid th,
body.fechamento-estoque-page .zzsap-calendar-popup .zzsap-calendar-grid td{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:auto !important;
  min-width:0 !important;
  max-width:none !important;
  height:24px !important;
  min-height:24px !important;
  padding:0 !important;
  margin:0 !important;
  border:0 !important;
  position:static !important;
  float:none !important;
  text-align:center !important;
  vertical-align:middle !important;
  white-space:nowrap !important;
  overflow:visible !important;
  text-overflow:clip !important;
  line-height:1 !important;
}

body.fechamento-estoque-page .zzsap-calendar-popup .zzsap-calendar-grid th{
  background:#eef5fb !important;
  color:#102a46 !important;
  font-size:11px !important;
  font-weight:800 !important;
}

body.fechamento-estoque-page .zzsap-calendar-popup .zzsap-calendar-grid td{
  color:#102a46 !important;
  font-size:11px !important;
  font-weight:500 !important;
  border-radius:7px !important;
}

body.fechamento-estoque-page .zzsap-calendar-popup .zzsap-calendar-day{
  cursor:pointer !important;
}



/* =========================
   FECHAMENTO ESTOQUE - CAMPO MÊS/ANO SEM ÍCONE INTERNO
   Ajuste cirúrgico: mantém o calendário padrão funcionando no foco/click,
   remove apenas o ícone pequeno dentro do input.
   ========================= */
body.fechamento-estoque-page #periodoData.zzsap-date,
body.fechamento-estoque-page .fechamento-field #periodoData.zzsap-date{
  background-image:none !important;
  padding-left:14px !important;
}

/* =========================
   PADRÃO GLOBAL - CONTAINER DE ABAS
   Uso inicial: Nota Fiscal Eletrônica.
   Objetivo: ao trocar de aba, o grid/container interno mantém largura,
   altura, margem e borda iguais. O card externo da tela não é alterado.
   ========================= */
:root{
  --zz-tab-panel-height: var(--estoque-aba-altura, 462px);
  --zz-tab-panel-padding: 10px 12px 12px;
  --zz-tab-panel-border-color: #bccbe0;
  --zz-tab-panel-radius: var(--zz-radius-botao, 6px);
}

.zz-tab-panel{
  width:100%;
  max-width:100%;
  box-sizing:border-box;
}

.zz-tab-panel-box{
  width:100% !important;
  max-width:100% !important;
  min-height:var(--zz-tab-panel-height) !important;
  height:var(--zz-tab-panel-height) !important;
  max-height:var(--zz-tab-panel-height) !important;
  margin:0 !important;
  padding:var(--zz-tab-panel-padding) !important;
  border:1px solid var(--zz-tab-panel-border-color) !important;
  border-radius:var(--zz-tab-panel-radius) !important;
  background:#fff;
  box-sizing:border-box !important;
  overflow:hidden !important;
  display:flex !important;
  flex-direction:column !important;
}

.zz-tab-panel-fill{
  width:100% !important;
  max-width:100% !important;
  flex:1 1 auto !important;
  min-height:0 !important;
  height:100% !important;
  box-sizing:border-box !important;
}

.zz-tab-panel-scroll{
  width:100% !important;
  max-width:100% !important;
  flex:1 1 auto !important;
  min-height:0 !important;
  box-sizing:border-box !important;
  overflow:auto !important;
}

.zz-tab-panel-box > .zz-tab-panel-scroll,
.zz-tab-panel-box > .estoque-table-wrap.zz-tab-panel-scroll{
  margin:0 !important;
  border:0 !important;
  border-radius:0 !important;
  background:transparent;
}

.zz-tab-panel-box .zz-tab-panel-scroll > table,
.zz-tab-panel-box table.estoque-table{
  width:100%;
}

@media (max-width: 820px){
  .zz-tab-panel-box{
    min-height:auto !important;
    height:auto !important;
    max-height:none !important;
  }
}



/* =========================
   NOTA - PADRÃO GLOBAL DE ABAS APLICADO NA TELA
   Regra: o grid/container interno das abas não muda ao trocar de aba.
   O card externo da tela continua intocado.
   ========================= */
body.nota-page{
  --zz-tab-panel-height: var(--estoque-aba-altura, 462px);
  --zz-tab-panel-padding: 10px 12px 12px;
}

body.nota-page .aba-conteudo.zz-tab-panel{
  width:100% !important;
  max-width:100% !important;
  margin:0 !important;
  padding:0 !important;
  box-sizing:border-box !important;
}

body.nota-page .aba-conteudo.zz-tab-panel > .zz-tab-panel-box{
  width:100% !important;
  max-width:100% !important;
  min-width:0 !important;
  margin:0 !important;
  box-sizing:border-box !important;
}

/* Remove diferenças herdadas de .estoque-fill-wrap nas abas Totais/Duplicatas/NFe. */
body.nota-page #aba-totais .estoque-fill-wrap.zz-tab-panel-fill,
body.nota-page #aba-duplicatas .estoque-fill-wrap.zz-tab-panel-fill,
body.nota-page #aba-nfe .estoque-fill-wrap.zz-tab-panel-fill{
  width:100% !important;
  max-width:100% !important;
  min-width:0 !important;
  margin:0 !important;
  padding:0 !important;
  border:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  box-shadow:none !important;
}

body.nota-page #aba-totais .estoque-fill-area.zz-tab-panel-fill,
body.nota-page #aba-duplicatas .estoque-fill-area.zz-tab-panel-fill,
body.nota-page #aba-nfe .estoque-fill-area.zz-tab-panel-fill{
  width:100% !important;
  max-width:100% !important;
  min-width:0 !important;
  margin:0 !important;
  padding:0 !important;
  box-sizing:border-box !important;
}

body.nota-page #aba-duplicatas .estoque-duplicatas-wrap,
body.nota-page #aba-nfe .estoque-duplicatas-wrap{
  width:100% !important;
  max-width:100% !important;
  min-width:0 !important;
  height:100% !important;
  max-height:100% !important;
  overflow:auto !important;
  box-sizing:border-box !important;
}

body.nota-page #aba-totais .nota-totais-fill-area{
  width:100% !important;
  max-width:100% !important;
  min-width:0 !important;
  height:100% !important;
  max-height:100% !important;
  box-sizing:border-box !important;
}

body.nota-page #aba-totais .nota-transporte-card{
  width:100% !important;
  max-width:100% !important;
  min-width:0 !important;
  box-sizing:border-box !important;
}

/* =========================
   NOTA - PADRÃO REAL DO CONTAINER INTERNO DAS ABAS
   Regra global iniciada pela tela Nota:
   - somente o container interno da aba é padronizado;
   - o card externo da tela não é alterado;
   - ao trocar de aba, largura, margem e altura do grid interno não mudam.
   ========================= */
body.nota-page{
  --zz-nota-tab-panel-height: var(--estoque-aba-altura, 462px);
  --zz-nota-tab-panel-padding: 10px 12px 12px;
}

body.nota-page .estoque-tabs{
  width:100% !important;
  max-width:100% !important;
  margin-left:0 !important;
  margin-right:0 !important;
  box-sizing:border-box !important;
}

body.nota-page .aba-conteudo.zz-tab-panel{
  width:100% !important;
  max-width:100% !important;
  min-width:0 !important;
  margin:0 !important;
  padding:0 !important;
  box-sizing:border-box !important;
}

body.nota-page .aba-conteudo.zz-tab-panel > .zz-tab-panel-box,
body.nota-page .aba-conteudo.zz-tab-panel > .nota-tab-panel-box,
body.nota-page #aba-estoque > .zz-tab-panel-box,
body.nota-page #aba-itens > .zz-tab-panel-box,
body.nota-page #aba-totais > .zz-tab-panel-box,
body.nota-page #aba-duplicatas > .zz-tab-panel-box,
body.nota-page #aba-nfe > .zz-tab-panel-box{
  display:flex !important;
  flex-direction:column !important;
  width:100% !important;
  max-width:100% !important;
  min-width:0 !important;
  min-height:var(--zz-nota-tab-panel-height) !important;
  height:var(--zz-nota-tab-panel-height) !important;
  max-height:var(--zz-nota-tab-panel-height) !important;
  margin:0 !important;
  padding:var(--zz-nota-tab-panel-padding) !important;
  box-sizing:border-box !important;
  border:1px solid #bccbe0 !important;
  border-radius:6px !important;
  background:#fff !important;
  overflow:hidden !important;
  box-shadow:none !important;
}

body.nota-page .nota-totais-layout,
body.nota-page .nota-aba-table-scroll{
  flex:1 1 auto !important;
  width:100% !important;
  max-width:100% !important;
  min-width:0 !important;
  min-height:0 !important;
  height:100% !important;
  max-height:100% !important;
  margin:0 !important;
  padding:0 !important;
  box-sizing:border-box !important;
  overflow:auto !important;
  border:0 !important;
  border-radius:0 !important;
  background:transparent !important;
}

body.nota-page .nota-totais-layout{
  display:flex !important;
  flex-direction:column !important;
  align-items:stretch !important;
}

body.nota-page .nota-totais-layout .estoque-totais-painel{
  flex:0 0 auto !important;
  width:100% !important;
  max-width:100% !important;
  min-width:0 !important;
  margin:0 !important;
  box-sizing:border-box !important;
}

body.nota-page .nota-totais-layout .nota-transporte-card{
  flex:1 1 auto !important;
  width:100% !important;
  max-width:100% !important;
  min-width:0 !important;
  margin:6px 0 0 !important;
  box-sizing:border-box !important;
  overflow:hidden !important;
}

body.nota-page .nota-aba-table-scroll .estoque-table{
  width:100% !important;
  min-width:100% !important;
  margin:0 !important;
}

@media (max-width: 820px){
  body.nota-page .aba-conteudo.zz-tab-panel > .zz-tab-panel-box,
  body.nota-page .aba-conteudo.zz-tab-panel > .nota-tab-panel-box{
    min-height:auto !important;
    height:auto !important;
    max-height:none !important;
  }
}

/* =========================
   NOTA - PADRÃO FINAL DE ABAS INTERNAS (v18)
   Regra: todas as abas da Nota usam a mesma largura do bloco de abas.
   O card externo NÃO é alterado.
   ========================= */
body.nota-page .zz-card__body{
  align-items:stretch !important;
}

body.nota-page .zz-card__body > .estoque-tabs,
body.nota-page .zz-card__body > .aba-conteudo.zz-tab-panel{
  width:var(--zz-nota-tab-ref-width, 100%) !important;
  max-width:var(--zz-nota-tab-ref-width, 100%) !important;
  min-width:var(--zz-nota-tab-ref-width, 0) !important;
  margin-left:0 !important;
  margin-right:0 !important;
  align-self:flex-start !important;
  box-sizing:border-box !important;
}

body.nota-page .zz-card__body > .aba-conteudo.zz-tab-panel.ativa{
  display:block !important;
}

body.nota-page .zz-card__body > .aba-conteudo.zz-tab-panel > .zz-tab-panel-box,
body.nota-page .zz-card__body > .aba-conteudo.zz-tab-panel > .nota-tab-panel-box,
body.nota-page .zz-card__body > .aba-conteudo.zz-tab-panel > .estoque-box{
  width:100% !important;
  min-width:100% !important;
  max-width:100% !important;
  margin-left:0 !important;
  margin-right:0 !important;
  box-sizing:border-box !important;
}

body.nota-page #aba-totais .nota-totais-layout,
body.nota-page #aba-duplicatas .nota-aba-table-scroll,
body.nota-page #aba-nfe .nota-aba-table-scroll{
  width:100% !important;
  max-width:100% !important;
  min-width:0 !important;
  margin-left:0 !important;
  margin-right:0 !important;
  box-sizing:border-box !important;
}


/* =========================
   NOTA - PADRÃO FINAL DO GRID INTERNO DAS ABAS (v19)
   Regra: todas as abas usam a mesma largura e a mesma altura disponível
   até perto dos botões. O card externo não é alterado.
   ========================= */
body.nota-page .zz-card__body > .aba-conteudo.zz-tab-panel{
  width:var(--zz-nota-tab-ref-width, 100%) !important;
  min-width:var(--zz-nota-tab-ref-width, 0) !important;
  max-width:var(--zz-nota-tab-ref-width, 100%) !important;
  height:var(--zz-nota-tab-panel-height, var(--estoque-aba-altura, 462px)) !important;
  min-height:var(--zz-nota-tab-panel-height, var(--estoque-aba-altura, 462px)) !important;
  max-height:var(--zz-nota-tab-panel-height, var(--estoque-aba-altura, 462px)) !important;
  margin:0 !important;
  padding:0 !important;
  box-sizing:border-box !important;
  align-self:flex-start !important;
}

body.nota-page .zz-card__body > .aba-conteudo.zz-tab-panel > .zz-tab-panel-box,
body.nota-page .zz-card__body > .aba-conteudo.zz-tab-panel > .nota-tab-panel-box,
body.nota-page .zz-card__body > .aba-conteudo.zz-tab-panel > .estoque-box{
  width:100% !important;
  min-width:100% !important;
  max-width:100% !important;
  height:100% !important;
  min-height:100% !important;
  max-height:100% !important;
  margin:0 !important;
  padding:var(--zz-nota-tab-panel-padding, 10px 12px 12px) !important;
  border:1px solid #bccbe0 !important;
  border-radius:6px !important;
  background:#fff !important;
  overflow:hidden !important;
  box-sizing:border-box !important;
  display:flex !important;
  flex-direction:column !important;
  box-shadow:none !important;
}

body.nota-page #aba-estoque .estoque-main-box .estoque-form-grid{
  flex:1 1 auto !important;
  height:100% !important;
  min-height:0 !important;
  align-content:start !important;
}

body.nota-page #aba-itens .estoque-itens-box{
  gap:6px !important;
}

body.nota-page #aba-itens .estoque-itens-editor-layout{
  flex:0 0 auto !important;
  height:auto !important;
  min-height:0 !important;
  max-height:none !important;
}

body.nota-page #aba-itens .estoque-table-wrap.itens-grid{
  flex:1 1 auto !important;
  height:auto !important;
  min-height:0 !important;
  max-height:none !important;
  width:100% !important;
  max-width:100% !important;
}

body.nota-page #aba-itens .estoque-grid-meta{
  flex:0 0 auto !important;
  margin-top:2px !important;
}

body.nota-page #aba-totais .nota-totais-layout,
body.nota-page #aba-duplicatas .nota-aba-table-scroll,
body.nota-page #aba-nfe .nota-aba-table-scroll{
  flex:1 1 auto !important;
  width:100% !important;
  min-width:0 !important;
  max-width:100% !important;
  height:100% !important;
  min-height:0 !important;
  max-height:100% !important;
  margin:0 !important;
  padding:0 !important;
  box-sizing:border-box !important;
  overflow:auto !important;
  border:0 !important;
  border-radius:0 !important;
  background:transparent !important;
}

body.nota-page #aba-totais .nota-totais-layout{
  display:flex !important;
  flex-direction:column !important;
}

body.nota-page #aba-totais .estoque-totais-painel{
  flex:0 0 auto !important;
}

body.nota-page #aba-totais .nota-transporte-card{
  flex:1 1 auto !important;
  min-height:0 !important;
  overflow:hidden !important;
}


/* =========================
   CLIENTES - PADRÃO GLOBAL DE ABAS (modelo Nota)
   Regra: card externo não muda; container interno das abas mantém
   mesma largura, margem e altura em todas as abas.
   ========================= */
body.tela-clientes{
  --zz-clientes-tab-panel-height: var(--zz-tab-panel-height, 462px);
  --zz-clientes-tab-ref-width: 100%;
}

body.tela-clientes .clientes-tabs{
  width:var(--zz-clientes-tab-ref-width, 100%) !important;
  max-width:var(--zz-clientes-tab-ref-width, 100%) !important;
  min-width:var(--zz-clientes-tab-ref-width, 0) !important;
  margin-left:0 !important;
  margin-right:0 !important;
  box-sizing:border-box !important;
}

body.tela-clientes .clientes-pane.zz-tab-panel{
  width:var(--zz-clientes-tab-ref-width, 100%) !important;
  max-width:var(--zz-clientes-tab-ref-width, 100%) !important;
  min-width:var(--zz-clientes-tab-ref-width, 0) !important;
  height:var(--zz-clientes-tab-panel-height, 462px) !important;
  min-height:var(--zz-clientes-tab-panel-height, 462px) !important;
  max-height:var(--zz-clientes-tab-panel-height, 462px) !important;
  margin:0 !important;
  padding:0 !important;
  box-sizing:border-box !important;
  align-self:flex-start !important;
}

body.tela-clientes .clientes-pane.zz-tab-panel.is-active{
  display:block !important;
}

body.tela-clientes .clientes-pane.zz-tab-panel > .clientes-tab-panel-box,
body.tela-clientes .clientes-pane.zz-tab-panel > .zz-tab-panel-box{
  width:100% !important;
  max-width:100% !important;
  min-width:100% !important;
  height:100% !important;
  min-height:100% !important;
  max-height:100% !important;
  margin:0 !important;
  padding:10px 12px 12px !important;
  border:1px solid #bccbe0 !important;
  border-radius:6px !important;
  background:#fff !important;
  box-sizing:border-box !important;
  overflow:hidden !important;
  box-shadow:none !important;
}

body.tela-clientes #pane-cliente-cadastro > .clientes-contorno-box.zz-tab-panel-box{
  display:grid !important;
  align-content:start !important;
  overflow:auto !important;
}

body.tela-clientes .clientes-fill-box.zz-tab-panel-box{
  display:flex !important;
  flex-direction:column !important;
}

body.tela-clientes .clientes-fill-area{
  flex:1 1 auto !important;
  min-height:0 !important;
  height:100% !important;
  padding:0 !important;
  box-sizing:border-box !important;
  overflow:hidden !important;
}

body.tela-clientes .clientes-table-wrap.zz-tab-panel-scroll{
  flex:1 1 auto !important;
  min-height:0 !important;
  max-height:none !important;
  width:100% !important;
  max-width:100% !important;
  overflow:auto !important;
  box-sizing:border-box !important;
}

body.tela-clientes .clientes-tipo-cadastro-box{
  visibility:visible !important;
  pointer-events:auto !important;
}

body.tela-clientes #form-cliente .clientes-tipo-cadastro-wrap{
  min-height:38px !important;
  height:38px !important;
  padding:0 6px !important;
  border:1px solid #bccbe0;
  border-radius:6px;
  background:#fff;
  gap:8px !important;
  overflow:hidden;
}

body.tela-clientes #form-cliente .clientes-tipo-cadastro-wrap input[type="checkbox"]{
  appearance:auto !important;
  -webkit-appearance:checkbox !important;
  width:18px !important;
  min-width:18px !important;
  max-width:18px !important;
  height:18px !important;
  min-height:18px !important;
  max-height:18px !important;
  padding:0 !important;
  margin:0 !important;
  border-radius:3px !important;
  cursor:pointer;
  flex:0 0 auto !important;
}

body.tela-clientes #form-cliente .clientes-tipo-cadastro-wrap label{
  margin:0 !important;
  cursor:pointer;
  user-select:none;
}

/* =========================
   NOTA - pesquisa de transportadora por cliente marcado
   ========================= */
body.nota-page .nota-transporte-picker{
  display:grid;
  grid-template-columns:minmax(0, 1fr) 38px;
  gap:4px;
  align-items:end;
  width:100%;
}

body.nota-page .nota-transporte-picker-btn{
  min-width:38px !important;
  width:38px !important;
  height:30px !important;
  min-height:30px !important;
  padding:0 !important;
  border-radius:6px !important;
  font-size:14px !important;
  line-height:1 !important;
}
