/* ===== GESTOR LAYOUT ===== */
/*
 * gestor.css só é carregado nas páginas autenticadas do Gestor. O viewport
 * pertence ao shell do painel; a rolagem deve acontecer em .gestor-content
 * ou no scroller interno de cada módulo, nunca em <html>/<body>.
 *
 * Os containers do shell usam overflow: clip (não hidden): hidden ainda é
 * rolável por foco/scrollIntoView — focar um input escondido deslocava o
 * conteúdo inteiro; clip torna o box de fato não-rolável.
 */
html {
  width: 100%;
  height: 100vh;
  height: 100dvh;
  max-height: 100dvh;
  overflow: clip;
  overscroll-behavior: none;
}

.gestor-body {
  /*
   * Cor visual única do Gestor. Os aliases legados continuam disponíveis
   * somente para componentes ainda não migrados, sem herdar a cor da unidade.
   */
  --ss-button-primary-bg: #5c6687;
  --ss-button-secondary-bg: #878bb4;
  --ss-action-bg: var(--ss-button-primary-bg);
  --ss-action-bg-hover: color-mix(in srgb, var(--ss-action-bg) 86%, #000);
  --ss-action-focus: color-mix(in srgb, var(--ss-action-bg) 22%, transparent);
  --ss-primary: var(--ss-action-bg);
  --ss-primary-dark: var(--ss-action-bg-hover);
  --cor-unidade: var(--ss-action-bg);
  --cor-unidade-clara: color-mix(in srgb, var(--ss-action-bg) 50%, transparent);
  --ss-secondary-action-bg: #8b80b6;
  --ss-secondary-action-hover: #7d72a7;
  --ss-success-action-bg: #08b84f;
  --ss-success-action-hover: #069f44;
  --ss-modal-header-bg: #313548;
  --ss-sidebar-bg: color-mix(in srgb, var(--ss-modal-header-bg) 90%, #fff);
  --ss-sidebar-font-size: 12px;
  --ss-workspace-frame-bg: #ededed;
  --ss-workspace-surface-bg: #fff;
  --ss-cards-listas-bg: #f7f9fc;
  --ss-cards-listas-border: #cbd5e1;
  --ss-workspace-radius: 12px;
  --ss-workspace-gap: 14px;
  --ss-button-height: 27px;
  --ss-button-radius: 15px;
  --ss-button-neutral-bg: #eee;
  --ss-button-font-size: 12px;
  --ss-button-action-min-width: 85px;
  --ss-modal-primary-btn-bg: var(--ss-button-primary-bg);
  --ss-modal-secondary-btn-bg: var(--ss-button-secondary-bg);
  --ss-table-head-footer-bg: #b8bec9;
  --ss-table-head-footer-color: #263142;
  --ss-table-head-footer-border: #9199a7;
  --ss-table-striped-bg: color-mix(in srgb, var(--ss-sidebar-bg) 7%, #fff);
  --ss-table-hover-bg: color-mix(in srgb, var(--ss-sidebar-bg) 12%, #fff);
  --ss-step-number-bg: #0011bc;
  --ss-step-number-color: #fff;
  /*
   * Fonte única do visual dos controles convencionais do Gestor.
   * Exceções funcionais devem declarar data-ss-control-visual="custom".
   */
  --ss-control-height: 27px;
  --ss-control-padding: 0.16rem 0.32rem;
  --ss-control-border: rgb(242, 242, 242);
  --ss-control-border-bottom: #b5b5b5;
  --ss-control-border-bottom-width: 1px;
  --ss-control-focus: #000099;
  --ss-control-radius: 0;
  --ss-control-background: #fff;
  --ss-control-color: #000;
  --ss-control-font: var(--ss-font);
  --ss-control-font-size: 13px;
  width: 100%;
  height: 100vh;
  height: 100dvh;
  min-height: 0;
  overflow: clip;
  background: var(--ss-light);
}

/* Estado global de campos sem edição no Gestor. */
.gestor-body input:disabled:not([type="checkbox"]):not([type="radio"]):not([type="button"]):not([type="submit"]):not([type="reset"]):not([data-ss-control-visual="custom"]),
.gestor-body input[readonly]:not([type="checkbox"]):not([type="radio"]):not([type="button"]):not([type="submit"]):not([type="reset"]):not([data-ss-control-visual="custom"]),
.gestor-body textarea:disabled:not([data-ss-control-visual="custom"]),
.gestor-body textarea[readonly]:not([data-ss-control-visual="custom"]),
.gestor-body select:disabled:not([data-ss-control-visual="custom"]) {
  background-color: #f2f2f2 !important;
  color: #6b7280 !important;
  opacity: 1;
}

/* QR Code e Configurações migrados do gestor legado */
.qr-single-panel{max-width:920px}.qr-preview-card{display:grid;grid-template-columns:minmax(220px,320px) 1fr;gap:2rem;align-items:center}.qr-preview-card img{display:block;width:100%;aspect-ratio:1;object-fit:contain;border:1px solid #e5e7eb;border-radius:18px;padding:.75rem;background:#fff}.qr-preview-card h2,.config-card h2,.integration-card h2{margin:.65rem 0 .35rem;font-size:1.05rem}.qr-preview-card p,.config-card-head p,.integration-card p{margin:0;color:#64748b}.qr-public-link{display:block;margin-top:1rem;overflow-wrap:anywhere}.qr-praca-section{margin-bottom:1rem}.qr-praca-head{display:flex;justify-content:space-between;align-items:end;gap:1rem;margin-bottom:1rem}.qr-praca-head small{color:#64748b;text-transform:uppercase;font-weight:700}.qr-praca-head h2{font-size:1.05rem;margin:.15rem 0}.qr-praca-head>span{color:#64748b;font-size:.84rem}.qr-mesas-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:.85rem}.qr-mesa-card{display:flex;flex-direction:column;align-items:center;gap:.65rem;padding:1rem;border:1px solid #e5e7eb;border-radius:16px;background:#fff}.qr-mesa-card img{width:130px;max-width:100%;aspect-ratio:1;object-fit:contain}
.config-grid{display:grid;gap:1rem}.config-card-head{display:flex;align-items:flex-start;gap:.8rem;margin-bottom:1.1rem}.config-card-head>span,.permissao-icon{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:12px;background:#eef2ff;color:var(--ss-action-bg,#4e73df);flex:0 0 auto}.config-card-head h2{margin:0}.config-card-head p{font-size:.85rem}.config-card label,.integration-card label{display:grid;gap:.35rem;color:#334155;font-size:.84rem;font-weight:600}.config-switch-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem 1.25rem;margin-top:1rem}.config-switch-grid .form-check{display:flex;align-items:center;gap:.55rem;margin:0;min-height:30px}.config-switch-grid .form-check-input{flex:0 0 auto;margin:0}.config-subtitle{font-size:.86rem;margin:1.25rem 0 .5rem;color:#475569}.config-dias{display:flex;flex-wrap:wrap;gap:.55rem}.config-dias label{position:relative}.config-dias input{position:absolute;opacity:0;pointer-events:none}.config-dias span{display:inline-flex;align-items:center;justify-content:center;width:48px;height:38px;border:1px solid #cbd5e1;border-radius:10px;background:#fff;font-weight:700;cursor:pointer}.config-dias input:checked+span{background:var(--ss-action-bg,#4e73df);border-color:var(--ss-action-bg,#4e73df);color:#fff}.permissoes-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:.85rem}.permissao-card{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1rem}.permissao-card>div:first-child{display:flex;align-items:center;gap:.75rem;min-width:0}.permissao-card strong,.permissao-card small{display:block}.permissao-card small{color:#64748b}.permissao-actions{display:flex;gap:.4rem}.permissao-tree ul{list-style:none;margin:.4rem 0;padding-left:1.35rem}.permissao-tree>ul{padding-left:0}.permissao-tree li{margin:.35rem 0}.permissao-tree label{display:inline-flex;align-items:center;gap:.35rem}.whatsapp-message-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem}.whatsapp-message-grid label{padding:.8rem;border:1px solid #e5e7eb;border-radius:14px}.whatsapp-message-grid small{display:block;color:#64748b;font-weight:400;margin:.2rem 0 .5rem}
.integracoes-nav{display:flex;flex-wrap:nowrap;gap:.4rem;overflow-x:auto;padding:.25rem 0 .75rem;margin-bottom:.5rem}.integracoes-nav .nav-link{white-space:nowrap;border:1px solid #dbe3ef;background:#fff;color:#475569}.integracoes-nav .nav-link.active{background:var(--ss-action-bg,#4e73df);border-color:var(--ss-action-bg,#4e73df);color:#fff}.integracoes-content>.tab-pane{padding:.5rem 0}.integration-card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.integration-card-wide{grid-column:1/-1}.integration-head{display:flex;align-items:center;gap:.75rem;margin-bottom:1rem}.integration-head h2{margin:0}.integration-head small{color:#64748b}.integration-logo{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:13px;background:#eef2ff;color:#334155;font-weight:800}.integration-logo.is-whatsapp{background:#dcfce7;color:#15803d}.integration-logo.is-ifood{background:#fee2e2;color:#b91c1c}.integration-logo.is-mp{background:#dbeafe;color:#1d4ed8}.integration-logo.is-meta{background:#dbeafe;color:#1877f2}.integration-logo.is-google{background:#f8fafc;color:#4285f4;border:1px solid #e5e7eb}.integration-logo.is-anota{background:#fef3c7;color:#92400e}.integration-status{margin-left:auto;padding:.25rem .6rem;border-radius:999px;background:#f1f5f9;color:#64748b;font-size:.74rem;font-weight:700}.integration-status.is-on{background:#dcfce7;color:#15803d}.integration-card form{display:grid;gap:.8rem;margin-top:1rem}.integration-details{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem;margin:0}.integration-details div{padding:.6rem;border:1px solid #e5e7eb;border-radius:10px}.integration-details dt{font-size:.75rem;color:#64748b}.integration-details dd{margin:0;overflow-wrap:anywhere}.integration-actions{display:flex;flex-wrap:wrap;gap:.55rem;margin-top:.25rem}.integration-payment-list{display:grid;gap:.55rem}.integration-payment-row{display:grid;grid-template-columns:minmax(180px,1fr) minmax(180px,260px) auto;align-items:center;gap:.75rem;padding:.7rem;border:1px solid #e5e7eb;border-radius:12px}.integration-payment-row.is-mp-row{grid-template-columns:minmax(160px,1fr) 150px 130px auto}.integration-payment-row strong,.integration-payment-row small{display:block}.integration-payment-row small{color:#64748b}
@media(max-width:767.98px){.qr-preview-card{grid-template-columns:1fr;text-align:center}.qr-preview-card>a{width:min(100%,280px);margin:auto}.config-switch-grid,.whatsapp-message-grid,.integration-card-grid{grid-template-columns:1fr}.integration-card-wide{grid-column:auto}.integration-payment-row,.integration-payment-row.is-mp-row{grid-template-columns:1fr;align-items:start}.integration-payment-row .form-switch{justify-self:start}.integration-details{grid-template-columns:1fr}.qr-mesas-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.qr-mesa-card{padding:.75rem}.qr-mesa-card img{width:110px}}
@media print{.gestor-sidebar,.gestor-topbar,.unidades-page-head,.qr-mesa-card .btn{display:none!important}.gestor-main,.gestor-content{margin:0!important;padding:0!important}.qr-mesas-grid{grid-template-columns:repeat(4,1fr)}.qr-praca-section{box-shadow:none!important;border:0!important;break-inside:avoid}.qr-mesa-card{break-inside:avoid}}

@media print {
  html,
  .gestor-body,
  .gestor-layout,
  .gestor-main,
  .gestor-content {
    height: auto !important;
    max-height: none !important;
    overflow: visible !important;
  }
}

.gestor-layout {
  display: flex;
  width: 100%;
  height: 100%;
  min-height: 0;
  position: relative;
  overflow: clip;
}

/* Sidebar */
.gestor-sidebar {
  width: var(--ss-sidebar-width, 220px);
  position: fixed;
  top: 0; left: 0; bottom: 0;
  z-index: 1040;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  transition: transform 0.25s ease;
  border-right: 1px solid rgba(0,0,0,0.16);
  background: var(--ss-sidebar-bg);
  box-shadow: none;
  font-family: var(--ss-font);
  font-size: var(--ss-sidebar-font-size);
  line-height: 1.42857143;
}

.sidebar-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1rem 1.25rem;
  border-bottom: 1px solid rgba(255,255,255,0.12);
}

.sidebar-header-brand {
  justify-content: center;
  padding: 0.85rem 1rem;
  position: relative;
  min-height: 84px;
}

.sidebar-brand-logo-action {
  width: 58px !important;
  height: 58px !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 50%;
  background: transparent !important;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 58px;
  color: #fff;
  line-height: 0;
  text-decoration: none;
  overflow: hidden;
}
.sidebar-brand-logo {
  width: 52px !important;
  height: 52px !important;
  min-width: 52px;
  max-width: 52px;
  border-radius: 50%;
  background: #fff;
  border: 2px solid #d1d5db;
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 1.35rem;
  color: #000;
  overflow: hidden !important;
  flex: 0 0 52px;
  box-shadow: 0 4px 12px rgba(15,23,42,0.12);
  transition: transform 0.15s, box-shadow 0.15s;
}
.sidebar-brand-logo-action:hover .sidebar-brand-logo,
.sidebar-brand-logo-action:focus-visible .sidebar-brand-logo {
  transform: scale(1.04);
  box-shadow: 0 0 0 3px rgba(15,23,42,0.1);
}
.sidebar-brand-logo-action:focus-visible { outline: 2px solid rgba(255,255,255,0.85); outline-offset: 4px; }
.sidebar-brand-logo img {
  display: block;
  width: 100% !important;
  height: 100% !important;
  max-width: 100% !important;
  max-height: 100% !important;
  border-radius: 50% !important;
  object-fit: cover !important;
}

.btn-close-sidebar {
  background: none;
  border: none;
  color: #fff;
  font-size: 1.1rem;
  cursor: pointer;
  position: absolute;
  right: 0.85rem;
  top: 0.85rem;
}

.sidebar-search {
  position: relative;
  flex: 0 0 auto;
  padding: 0.55rem 0.8rem 0.4rem;
  border-bottom: 1px solid rgba(255,255,255,0.12);
  background: var(--ss-sidebar-bg);
}

.sidebar-search i {
  position: absolute;
  left: 1.15rem;
  top: 50%;
  transform: translateY(-44%);
  color: rgba(255,255,255,0.9);
  font-size: 0.9rem;
  pointer-events: none;
}

.sidebar-search-input {
  width: 100%;
  height: 34px;
  padding: 0.35rem 0.65rem 0.35rem 2rem;
  border: 1px solid rgba(255,255,255,0.26);
  border-radius: 7px;
  background: rgba(255,255,255,0.08);
  color: #fff;
  font: inherit;
  outline: 0;
}

.sidebar-search-input::placeholder {
  color: rgba(255,255,255,0.66);
}

.sidebar-search-input:focus {
  border-color: rgba(255,255,255,0.62);
  background: rgba(255,255,255,0.12);
  box-shadow: 0 0 0 2px rgba(255,255,255,0.08);
}

.sidebar-nav {
  flex: 1;
  overflow-y: auto;
  padding: 0.8rem 0.55rem;
  background: var(--ss-sidebar-bg);
}

.sidebar-section-label {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  width: calc(100% - 0.5rem);
  text-transform: none;
  font-size: var(--ss-sidebar-font-size);
  font-weight: 400;
  letter-spacing: 0;
  color: #fff;
  padding: 0.58rem 0.75rem;
  margin: 0.15rem 0.25rem;
  border: 0;
  border-radius: 0.4rem;
  background: transparent;
  text-shadow: none;
  cursor: pointer;
  text-align: left;
}
.sidebar-section-label,
.sidebar-section-label span,
.sidebar-section-label i,
.sidebar-link,
.sidebar-link span,
.sidebar-link i {
  color: #fff !important;
  opacity: 1 !important;
  -webkit-text-fill-color: #fff !important;
}
.sidebar-section-label i { font-size: 0.9rem; }
.sidebar-section-label.active { color: #fff; }
.sidebar-section-label:hover {
  background: rgba(255,255,255,0.09);
}
.sidebar-section-label .sidebar-collapse-icon {
  margin-left: auto;
  width: auto;
  flex: 0 0 auto;
  font-size: 0.78rem;
  opacity: 0.85;
  transition: transform 0.16s ease;
}
.sidebar-section-label.is-open .sidebar-collapse-icon {
  transform: rotate(180deg);
}
.sidebar-submenu {
  margin: 0.2rem 0 0.65rem 0;
  padding: 0.1rem 0 0.1rem 2.55rem;
}
.sidebar-submenu[hidden] { display: none !important; }
.sidebar-sublink {
  min-height: 36px;
  padding: 0.43rem 0.65rem !important;
  margin: 0;
  border-radius: 0;
  font-size: var(--ss-sidebar-font-size);
  font-weight: 400;
  color: rgba(255,255,255,0.78) !important;
  -webkit-text-fill-color: rgba(255,255,255,0.78) !important;
  background: transparent !important;
  box-shadow: none !important;
}
.sidebar-sublink i { display: none; }

/* Cabeçalho de subgrupo dentro de um submenu (ex.: "Financeiro"/"Vendas"/"Estoque" dentro de Relatórios) */
.sidebar-subgroup-label {
  display: block;
  padding: 0.5rem 0.65rem 0.15rem;
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  color: rgba(255,255,255,0.5);
}
.sidebar-subgroup-label:first-child { padding-top: 0.1rem; }
.sidebar-subsublink { padding-left: 1rem !important; }

/* Itens de menu que só fazem sentido no desktop (grids largos, ex.: Análise de Preços) */
@media (max-width: 991.98px) {
  .sidebar-link-desktop { display: none !important; }
}
.sidebar-sublink span {
  color: rgba(255,255,255,0.78) !important;
  -webkit-text-fill-color: rgba(255,255,255,0.78) !important;
}
.sidebar-sublink:hover,
.sidebar-sublink.active {
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
  background: rgba(255,255,255,0.12) !important;
}
.sidebar-sublink:hover span,
.sidebar-sublink.active span {
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
}

.sidebar-link {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  padding: 0.58rem 0.75rem;
  color: #fff;
  border-radius: 0.4rem;
  margin: 0.15rem 0.25rem;
  font-size: var(--ss-sidebar-font-size);
  font-weight: 400;
  transition: all 0.15s;
}
.sidebar-link i { font-size: 1.05rem; width: 1.4rem; text-align: center; }
.sidebar-link:hover {
  background: rgba(255,255,255,0.1);
  color: #fff;
}
.sidebar-link.active {
  background: rgba(255,255,255,0.18);
  color: #fff !important;
  box-shadow: none;
}
.sidebar-link.active span,
.sidebar-link.active i {
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
}
.sidebar-link.disabled {
  opacity: 0.5;
  pointer-events: none;
}
.sidebar-link .badge { font-size: 0.6rem; }

@media (min-width: 992px) {
  .gestor-sidebar {
    width: var(--ss-sidebar-collapsed-width, 64px) !important;
    transition: width 0.18s ease, box-shadow 0.18s ease;
  }

  .gestor-sidebar:is(:hover, :has(:focus-visible)) {
    width: var(--ss-sidebar-width, 220px) !important;
    box-shadow: 10px 0 24px rgba(15,23,42,0.16);
  }

  .gestor-main {
    margin-left: var(--ss-sidebar-collapsed-width, 64px) !important;
    transition: none;
  }

  .sidebar-header {
    padding-left: 3px !important;
    padding-right: 3px !important;
  }

  .gestor-sidebar:is(:hover, :has(:focus-visible)) .sidebar-header {
    padding-left: 0.85rem !important;
    padding-right: 0.85rem !important;
  }

  .sidebar-search {
    padding-left: 0.65rem;
    padding-right: 0.65rem;
  }

  .sidebar-search i {
    left: 50%;
    transform: translate(-50%, -44%);
    transition: left 0.18s ease, transform 0.18s ease;
  }

  .sidebar-search-input {
    opacity: 0;
    pointer-events: none;
    visibility: hidden;
  }

  .gestor-sidebar:is(:hover, :has(:focus-visible)) .sidebar-search {
    padding-left: 0.8rem;
    padding-right: 0.8rem;
  }

  .gestor-sidebar:is(:hover, :has(:focus-visible)) .sidebar-search i {
    left: 1.15rem;
    transform: translateY(-44%);
  }

  .gestor-sidebar:is(:hover, :has(:focus-visible)) .sidebar-search-input {
    opacity: 1;
    pointer-events: auto;
    visibility: visible;
  }

  .sidebar-nav {
    overflow-x: hidden;
    padding-left: 0.3rem;
    padding-right: 0.3rem;
    transition: padding 0.18s ease;
  }

  .gestor-sidebar:is(:hover, :has(:focus-visible)) .sidebar-nav {
    padding-left: 0.55rem;
    padding-right: 0.55rem;
  }

  .sidebar-link,
  .sidebar-section-label {
    justify-content: center;
    gap: 0;
    padding-left: 0.55rem !important;
    padding-right: 0.55rem !important;
    white-space: nowrap;
  }

  .gestor-sidebar:is(:hover, :has(:focus-visible)) .sidebar-link,
  .gestor-sidebar:is(:hover, :has(:focus-visible)) .sidebar-section-label {
    justify-content: flex-start;
    gap: 0.65rem;
    padding-left: 0.75rem !important;
    padding-right: 0.75rem !important;
  }

  .gestor-sidebar:not(:hover):not(:has(:focus-visible)) .sidebar-submenu {
    display: none !important;
  }

  .gestor-sidebar:is(:hover, :has(:focus-visible)) .sidebar-submenu.is-open:not([hidden]) {
    display: block !important;
  }

  .sidebar-sublink {
    padding-left: 0.65rem !important;
    padding-right: 0.65rem !important;
  }

  .sidebar-link i,
  .sidebar-section-label i {
    flex: 0 0 1.4rem;
    width: 1.4rem;
    text-align: center;
  }

  .sidebar-link span,
  .sidebar-section-label span {
    display: inline-block;
    max-width: 0;
    overflow: hidden;
    opacity: 0 !important;
    visibility: hidden;
    white-space: nowrap;
  }

  .sidebar-section-label .sidebar-collapse-icon {
    display: none;
  }

  .gestor-sidebar:is(:hover, :has(:focus-visible)) .sidebar-link span,
  .gestor-sidebar:is(:hover, :has(:focus-visible)) .sidebar-section-label span {
    max-width: 155px;
    opacity: 1 !important;
    visibility: visible;
    text-overflow: ellipsis;
  }

  .gestor-sidebar:is(:hover, :has(:focus-visible)) .sidebar-section-label .sidebar-collapse-icon {
    display: inline-block;
  }
}

.sidebar-backdrop {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.5);
  z-index: 1035;
}
.sidebar-backdrop.show { display: block; }

/* Main */
.gestor-main {
  flex: 1;
  margin-left: var(--ss-sidebar-width, 220px);
  display: flex;
  flex-direction: column;
  height: 100vh;
  height: 100dvh;
  min-width: 0;
  min-height: 0;
}

/* Topbar */
.gestor-topbar {
  height: 66px;
  background: #fff;
  border-bottom: 1px solid #e3e6f0;
  display: flex;
  align-items: center;
  padding: 0 1rem;
  gap: 0.75rem;
  position: sticky;
  top: 0;
  z-index: 1020;
  box-shadow: 0 4px 18px rgba(15,23,42,0.05);
}
.gestor-topbar::before { content: none; display: none; }

.topbar-title {
  font-weight: 600;
  color: #1f2937;
  align-items: center;
}

.topbar-context {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  min-width: 0;
}

.topbar-menu-btn,
.topbar-user-btn {
  background: #fff;
  border-color: #e5e7eb;
  color: #374151;
}

.topbar-menu-btn:hover,
.topbar-menu-btn:focus,
.topbar-user-btn:hover,
.topbar-user-btn:focus,
.topbar-user-btn.show {
  background: #fff !important;
  border-color: #d1d5db !important;
  color: #374151 !important;
}

.topbar-unidade-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  min-height: 38px;
  max-width: min(420px, 52vw);
  background: #fff;
  color: #111827 !important;
  border: 1px solid rgba(17,24,39,0.14);
  padding: 0.32rem 0.68rem 0.32rem 0.38rem;
  border-radius: 999px;
  cursor: pointer;
  box-shadow: 0 8px 22px rgba(15,23,42,0.08);
  transition: transform 0.15s ease, box-shadow 0.15s ease, border-color 0.15s ease;
}
.topbar-unidade-chip:hover {
  background: #fff !important;
  border-color: rgba(17,24,39,0.14) !important;
  color: #111827 !important;
  box-shadow: 0 8px 22px rgba(15,23,42,0.08);
}
.topbar-unidade-icon {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: var(--cor-unidade, #2d3142);
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  overflow: hidden;
  font-size: 0.86rem;
}
.topbar-unidade-icon img {
  display: block;
  width: 28px;
  height: 28px;
  max-width: 28px;
  max-height: 28px;
  object-fit: cover;
  border-radius: 50%;
}
.topbar-unidade-text {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  min-width: 0;
  line-height: 1.05;
}
.topbar-unidade-name {
  max-width: 310px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  font-size: 0.86rem;
  font-weight: 700;
}
.topbar-unidade-arrow { opacity: 0.65; flex: 0 0 auto; color: #374151; }

.topbar-actions {
  align-items: center;
  display: flex;
  gap: 0.5rem;
  min-width: 0;
  flex-wrap: nowrap;
  white-space: nowrap;
}

.topbar-actions > .dropdown {
  align-items: center;
  display: flex;
}

.gestor-body .dropdown-menu .dropdown-item,
.gestor-body .dropdown-menu .dropdown-item-text {
  font-size: var(--ss-sidebar-font-size) !important;
}

.topbar-action-btn,
.topbar-profile-btn {
  align-items: center;
  border: 1px solid #e5e7eb;
  border-radius: 999px;
  gap: 0.45rem;
  height: 38px;
  justify-content: center;
  line-height: 1;
  margin: 0;
  min-height: 38px;
  padding: 0.25rem 0.72rem 0.25rem 0.3rem;
  vertical-align: middle;
  white-space: nowrap;
}

/* Os botões globais usam 27px; os avatares precisam caber dentro dessa altura. */
.gestor-body .topbar-action-btn,
.gestor-body .topbar-profile-btn {
  height: 27px;
  min-height: 27px;
  gap: 0.3rem;
  padding: 0.12rem 0.55rem 0.12rem 0.22rem;
  font-size: 0.72rem;
}

.topbar-action-btn > span:not(.avatar-circle),
.topbar-profile-btn > span:not(.avatar-circle) {
  line-height: 1;
}

.topbar-profile-btn.dropdown-toggle::after {
  margin-left: 0.05rem;
  vertical-align: 0.1em;
}

.topbar-relatorios-menu {
  max-height: 70vh;
  overflow-y: auto;
  min-width: 220px;
}
.topbar-relatorios-menu .dropdown-header {
  font-size: 0.7rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.03em;
}
.topbar-relatorios-menu .dropdown-item {
  font-size: var(--ss-sidebar-font-size);
}

.topbar-avisos-icon {
  position: relative;
}
.topbar-avisos-badge {
  position: absolute;
  top: -2px;
  right: -2px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 16px;
  height: 16px;
  padding: 0 3px;
  border: 2px solid #fff;
  border-radius: 999px;
  background: #ef4444;
  color: #fff;
  font-size: 9px;
  font-weight: 900;
  line-height: 1;
  box-shadow: 0 2px 5px rgba(127, 29, 29, 0.32);
}

.avisos-painel {
  --bs-offcanvas-width: min(420px, calc(100vw - 24px));
  top: 12px !important;
  right: 12px !important;
  bottom: 12px !important;
  height: auto !important;
  overflow: hidden;
  border: 1px solid #e2e8f0;
  border-radius: 14px;
  box-shadow: 0 16px 40px rgba(15, 23, 42, 0.18);
}
.avisos-painel .offcanvas-header {
  padding: 0.9rem 1rem;
  border-bottom: 1px solid #eef1f5;
}
.avisos-painel .btn-close {
  opacity: 0.85;
}
.avisos-painel .btn-close:hover {
  opacity: 1;
}
.avisos-painel .offcanvas-body {
  display: grid;
  align-content: start;
  gap: 0.5rem;
  padding: 0.75rem;
  overflow-x: hidden;
}
.avisos-item {
  display: flex;
  align-items: flex-start;
  gap: 0.7rem;
  padding: 0.75rem;
  border: 1px solid #e5e7eb;
  border-radius: 10px;
  color: inherit;
  text-decoration: none;
  transition: border-color 0.12s, box-shadow 0.12s;
}
.avisos-item:hover {
  border-color: #cbd5e1;
  box-shadow: 0 3px 10px rgba(15, 23, 42, 0.08);
  color: inherit;
}
.avisos-item-icone {
  display: grid;
  flex: 0 0 38px;
  width: 38px;
  height: 38px;
  place-items: center;
  border-radius: 10px;
  background: #fef3c7;
  color: #b45309;
  font-size: 0.95rem;
}
.avisos-item.is-danger .avisos-item-icone {
  background: #fee2e2;
  color: #b91c1c;
}
.avisos-item.is-info .avisos-item-icone {
  background: #e0f2fe;
  color: #0369a1;
}
.avisos-item-texto {
  display: grid;
  gap: 2px;
  min-width: 0;
}
.avisos-item-numero {
  color: #dc2626;
  font-weight: 900;
}
.avisos-item-linha-ponto {
  display: inline-block;
  width: 7px;
  height: 7px;
  margin-right: 5px;
  border-radius: 50%;
  background: #94a3b8;
  vertical-align: middle;
}
.avisos-item-linha-ponto.is-danger {
  background: #dc2626;
}
.avisos-item-linha-ponto.is-warning {
  background: #eab308;
}
.avisos-item-linha-ponto.is-info {
  background: #0369a1;
}
.avisos-item-nota {
  margin: 1px 0 3px;
  color: #b45309;
  font-size: 0.72rem;
  font-weight: 700;
}
.avisos-item-destaque {
  margin: 2px 0 5px;
  padding: 7px 10px;
  border: 1px solid #fecaca;
  border-radius: 8px;
  background: linear-gradient(135deg, #fef2f2, #fee2e2);
  color: #991b1b;
  font-size: 0.78rem;
  font-weight: 700;
  line-height: 1.4;
}
.avisos-item-destaque-valor {
  font-size: 1rem;
  font-weight: 900;
  color: #dc2626;
}
.avisos-item-ranking {
  margin: 1px 0 4px;
}
.avisos-item-ranking > small {
  display: block;
  margin-bottom: 2px;
  color: #64748b;
  font-size: 0.68rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.02em;
}
.avisos-item-ranking > ol {
  display: grid;
  gap: 2px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.avisos-item-ranking li {
  display: flex;
  align-items: center;
  gap: 6px;
  min-width: 0;
  padding: 3px 6px;
  border-radius: 6px;
  background: #f8fafc;
}
.avisos-ranking-posicao {
  display: grid;
  flex: 0 0 16px;
  width: 16px;
  height: 16px;
  place-items: center;
  border-radius: 50%;
  background: #e2e8f0;
  color: #475569;
  font-size: 0.62rem;
  font-weight: 800;
}
.avisos-ranking-nome {
  flex: 1 1 auto;
  min-width: 0;
  overflow: hidden;
  color: #334155;
  font-size: 0.72rem;
  font-weight: 600;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.avisos-ranking-valor {
  flex: 0 0 auto;
  color: #dc2626;
  font-size: 0.74rem;
  font-weight: 800;
}
.avisos-vazio {
  padding: 1.5rem 1rem;
  color: #94a3b8;
  font-size: 0.8rem;
  text-align: center;
}

/* Central de operação: prioridade, impacto e ação precisam ser lidos nessa ordem. */
.avisos-painel {
  --bs-offcanvas-width: min(430px, calc(100vw - 24px));
}
.avisos-painel .offcanvas-header {
  align-items: flex-start;
  background: #fff;
  max-width: 100%;
  min-width: 0;
  overflow: hidden;
}
.avisos-painel-titulo h5 {
  margin: 0;
  color: #172033;
  font-size: 1.05rem;
  font-weight: 850;
}
.avisos-painel-titulo h5 i {
  color: #dc2626;
}
.avisos-painel-titulo small {
  display: block;
  margin-top: 2px;
  color: #64748b;
  font-size: 0.73rem;
}
.avisos-painel .offcanvas-body {
  display: block;
  padding: 0.75rem;
  background: #f8fafc;
}
.avisos-resumo {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  margin-bottom: 0.55rem;
  padding: 0.6rem 0.7rem;
  border: 1px solid #dbe3ee;
  border-radius: 10px;
  background: #fff;
}
.avisos-resumo > div {
  min-width: 0;
}
.avisos-resumo > div > span {
  display: block;
  color: #334155;
  font-size: 0.74rem;
  font-weight: 800;
}
.avisos-resumo-niveis {
  display: flex;
  flex-wrap: wrap;
  gap: 0.28rem 0.7rem;
  margin-top: 3px;
  font-size: 0.72rem;
}
.avisos-resumo-niveis .is-critica {
  color: #b91c1c;
}
.avisos-resumo-niveis .is-alta {
  color: #b45309;
}
.avisos-resumo-niveis .is-atencao {
  color: #0369a1;
}
.avisos-resumo small {
  display: block;
  margin-top: 3px;
  color: #94a3b8;
  font-size: 0.66rem;
}
.avisos-atualizar {
  display: inline-grid;
  flex: 0 0 auto;
  min-width: 32px;
  min-height: 32px;
  place-items: center;
  padding: 0.35rem 0.6rem;
  border: 1px solid #cbd5e1;
  border-radius: 8px;
  background: #fff;
  color: #475569;
  font-size: 0.72rem;
  font-weight: 800;
}
.avisos-atualizar:hover {
  border-color: #94a3b8;
  color: #0f172a;
}
.avisos-lista {
  display: grid;
  gap: 0.5rem;
}
.avisos-item {
  position: relative;
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr) auto;
  align-items: center;
  gap: 0.75rem;
  padding: 0.78rem 0.82rem;
  border: 1px solid #dbe3ee;
  border-left-width: 4px;
  border-radius: 11px;
  background: #fff;
  box-shadow: 0 2px 7px rgba(15, 23, 42, 0.04);
}
.avisos-item:hover {
  border-color: #cbd5e1;
  box-shadow: 0 4px 12px rgba(15, 23, 42, 0.08);
}
.avisos-item.is-urgencia-critica {
  border-left-color: #dc2626;
  background: #fffafa;
}
.avisos-item.is-urgencia-alta {
  border-left-color: #f59e0b;
  background: #fffdf8;
}
.avisos-item.is-urgencia-atencao {
  border-left-color: #0284c7;
  background: #fafdff;
}
.avisos-item-mensagem {
  display: block;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  color: #263247;
  font-size: 0.84rem;
  font-weight: 780;
  line-height: 1.38;
  overflow-wrap: anywhere;
  white-space: normal !important;
}
.avisos-item-conteudo {
  display: grid;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  gap: 0.38rem;
  overflow: hidden;
  white-space: normal !important;
}
.avisos-item-badge-financeiro {
  display: block;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  padding: 0.3rem 0.48rem;
  border: 1px solid #fecaca;
  border-radius: 6px;
  background: #fee2e2;
  color: #991b1b;
  font-size: 0.68rem;
  font-weight: 750;
  line-height: 1.25;
  overflow-wrap: anywhere;
  white-space: normal !important;
  word-break: normal;
}
.avisos-item-badge-financeiro strong {
  margin: 0 0.18rem;
  color: #dc2626;
  font-size: 0.76rem;
  font-weight: 950;
}
.avisos-item-mensagem .avisos-item-numero {
  color: #dc2626;
  font-size: 0.98rem;
  font-weight: 950;
}
.avisos-item > i {
  color: #315fcb;
  font-size: 0.72rem;
}
.avisos-item .avisos-item-icone {
  width: 34px;
  height: 34px;
  flex-basis: 34px;
}
.avisos-item .avisos-item-icone.is-ifood {
  background: transparent;
}
.avisos-item .avisos-item-icone.is-ifood img {
  display: block;
  width: 32px;
  height: auto;
}
.avisos-item.is-urgencia-critica .avisos-item-icone {
  background: #fee2e2;
  color: #b91c1c;
}
.avisos-item.is-urgencia-alta .avisos-item-icone {
  background: #fef3c7;
  color: #b45309;
}
.avisos-item.is-urgencia-atencao .avisos-item-icone {
  background: #e0f2fe;
  color: #0369a1;
}
.avisos-item.is-urgencia-critica .avisos-item-icone.is-ifood,
.avisos-item.is-urgencia-alta .avisos-item-icone.is-ifood,
.avisos-item.is-urgencia-atencao .avisos-item-icone.is-ifood {
  background: transparent;
}
.avisos-item-texto {
  display: grid;
  gap: 0.25rem;
}
.avisos-item-cabecalho {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.5rem;
}
.avisos-item-cabecalho > strong {
  color: #172033;
  font-size: 0.84rem;
  line-height: 1.25;
}
.avisos-item-urgencia {
  flex: 0 0 auto;
  padding: 3px 6px;
  border-radius: 999px;
  font-size: 0.59rem;
  font-weight: 900;
  letter-spacing: 0.035em;
  line-height: 1;
}
.avisos-item-urgencia.is-critica {
  background: #fee2e2;
  color: #b91c1c;
}
.avisos-item-urgencia.is-alta {
  background: #fef3c7;
  color: #92400e;
}
.avisos-item-urgencia.is-atencao {
  background: #e0f2fe;
  color: #0369a1;
}
.avisos-item-impacto {
  color: #334155;
  font-size: 0.72rem;
  font-weight: 650;
  line-height: 1.35;
}
.avisos-item-linhas {
  display: grid;
  gap: 0.18rem;
  padding-top: 0.05rem;
}
.avisos-item-linhas > span {
  color: #526075;
  font-size: 0.72rem;
  font-weight: 650;
  line-height: 1.32;
  overflow-wrap: anywhere;
}
.avisos-item-nota {
  margin: 0;
  padding: 0.42rem 0.5rem;
  border-radius: 6px;
  background: #f8fafc;
  color: #64748b;
  font-size: 0.67rem;
  font-weight: 600;
  line-height: 1.35;
}
.avisos-item-destaque {
  margin: 0;
}
.avisos-item-acao {
  display: inline-flex;
  align-items: center;
  justify-content: flex-start;
  gap: 0.55rem;
  width: max-content;
  max-width: 100%;
  margin-top: 0.08rem;
  padding: 0.34rem 0.5rem;
  border-radius: 6px;
  background: #eef3ff;
  color: #315fcb;
  font-size: 0.68rem;
  font-weight: 850;
  line-height: 1.2;
  text-decoration: none;
}
.avisos-item-acao:hover {
  background: #dfe8ff;
  color: #244da8;
}
.avisos-item-acao i {
  flex: 0 0 auto;
  font-size: 0.65rem;
}
.avisos-erro {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 0.5rem;
  margin-bottom: 0.65rem;
  padding: 0.65rem 0.7rem;
  border: 1px solid #fecaca;
  border-radius: 9px;
  background: #fef2f2;
  color: #991b1b;
  font-size: 0.7rem;
  font-weight: 700;
  line-height: 1.35;
}
.avisos-erro button {
  padding: 0.32rem 0.48rem;
  border: 1px solid #fca5a5;
  border-radius: 6px;
  background: #fff;
  color: #991b1b;
  font-size: 0.66rem;
  font-weight: 850;
}
.avisos-vazio {
  display: grid;
  justify-items: center;
  gap: 0.35rem;
  padding: 2.25rem 1rem;
  border: 1px dashed #cbd5e1;
  border-radius: 10px;
  background: #effaf4;
  border-color: #bfe7d2;
}
.avisos-vazio > i {
  margin-bottom: 0.2rem;
  color: #16a34a;
  font-size: 1.5rem;
}
.avisos-vazio > strong {
  color: #334155;
  font-size: 0.83rem;
}
.avisos-vazio > span {
  color: #64748b;
  font-size: 0.72rem;
}
.avisos-vazio .avisos-atualizar {
  margin-top: 0.4rem;
}
@media (max-width: 575.98px) {
  .avisos-painel {
    --bs-offcanvas-width: calc(100vw - 12px);
    top: 6px !important;
    right: 6px !important;
    bottom: 6px !important;
  }
  .avisos-item {
    grid-template-columns: 34px minmax(0, 1fr) auto;
    gap: 0.65rem;
    padding: 0.72rem;
  }
  .avisos-item-icone {
    width: 34px;
    height: 34px;
    flex-basis: 34px;
  }
  .avisos-erro {
    grid-template-columns: auto 1fr;
  }
  .avisos-erro button {
    grid-column: 1 / -1;
  }
}

/* Configuração isolada dos provedores SmartTEF (sem efeitos nas telas de venda). */
.smarttef-page .config-standard-body{display:grid;gap:14px}.smarttef-scope-note{display:flex;align-items:flex-start;gap:9px;margin:0;font-size:.79rem}.smarttef-scope-note>i{margin-top:2px}.smarttef-provider-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.smarttef-provider-card.nav-link{display:grid;grid-template-columns:42px minmax(0,1fr);grid-template-rows:auto auto;align-items:center;gap:2px 10px;min-width:0;padding:11px;border:1px solid #dfe7f2;border-radius:13px;background:#fff;color:#1f2937;text-align:left;box-shadow:none}.smarttef-provider-card.nav-link:hover{border-color:#aebbd0;background:#f9fbff}.smarttef-provider-card.nav-link.active{border-color:#5d6b92;background:#f4f6ff;color:#172033;box-shadow:0 0 0 2px rgba(93,107,146,.1)}.smarttef-brand{display:grid;place-items:center;width:42px;height:42px;border-radius:12px;background:#edf2f7;color:#334155;font-size:.76rem;font-weight:900;letter-spacing:-.02em}.smarttef-provider-card .smarttef-brand{grid-row:1/3}.smarttef-brand.is-itau{background:#ff7a00;color:#fff}.smarttef-brand.is-mp{background:#dff4ff;color:#008ad6}.smarttef-brand.is-pagbank{background:#b9ff39;color:#172400}.smarttef-brand.is-stone{background:#00a868;color:#fff}.smarttef-brand.is-cielo{background:#e7f7fb;color:#0099bd}.smarttef-brand.is-rede{background:#ff7a1a;color:#fff}.smarttef-provider-copy{display:grid;min-width:0}.smarttef-provider-copy strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.79rem}.smarttef-provider-copy small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#78869b;font-size:.65rem}.smarttef-provider-state{display:flex;align-items:center;gap:5px;color:#94a3b8;font-size:.62rem;font-weight:800;text-transform:uppercase}.smarttef-provider-state i{font-size:.42rem}.smarttef-provider-state.is-ready{color:#2563eb}.smarttef-provider-state.is-active{color:#15803d}.smarttef-provider-content{min-width:0}.smarttef-provider-content>.tab-pane{outline:0}.smarttef-connection-row{margin-top:11px}.smarttef-connection-row .integration-channel-copy>i{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:#eef3fa;color:#52617b}.smarttef-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.smarttef-terminal-block{padding:12px;border:1px solid #e3eaf3;border-radius:13px;background:#f9fbfe}.smarttef-terminal-head{margin-bottom:10px}.smarttef-terminal-search{display:grid;grid-template-columns:minmax(0,1fr) max-content;align-items:end;gap:8px}.smarttef-terminal-details{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin-top:9px}.smarttef-terminal-details>span{display:grid;gap:2px;padding:8px 10px;border:1px solid #e3eaf3;border-radius:10px;background:#fff}.smarttef-terminal-details small{color:#7b8799;font-size:.63rem;font-weight:700;text-transform:uppercase}.smarttef-terminal-details strong{overflow-wrap:anywhere;color:#334155;font-size:.72rem}.smarttef-terminal-details strong.is-pdv{color:#15803d}.smarttef-terminal-details strong.is-standalone{color:#b45309}.smarttef-form-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:11px;border-top:1px solid #e7edf5}.smarttef-awaiting{display:flex;align-items:flex-start;gap:8px;margin-top:12px;padding:9px;border:1px solid #e2e8f0;border-radius:10px;background:#f8fafc;color:#64748b;font-size:.67rem;line-height:1.45}.smarttef-awaiting i{margin-top:2px;color:#94a3b8}
@media(max-width:1100px){.smarttef-provider-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.smarttef-provider-grid,.smarttef-form-grid,.smarttef-terminal-details{grid-template-columns:1fr}.smarttef-terminal-search{grid-template-columns:1fr}.smarttef-terminal-search .btn{width:100%}.smarttef-form-actions{align-items:stretch;flex-direction:column}.smarttef-form-actions .integration-actions,.smarttef-form-actions .integration-actions .btn{width:100%}}
@media(max-width:430px){.smarttef-provider-grid{grid-template-columns:1fr}.smarttef-provider-card.nav-link{grid-template-columns:38px minmax(0,1fr)}.smarttef-provider-card .smarttef-brand{width:38px;height:38px}.smarttef-page .config-standard-body{gap:10px}}

.topbar-print-client-btn,
.topbar-caixa-btn,
.topbar-whatsapp-btn,
.topbar-install-btn,
.topbar-admin-voltar-btn,
.topbar-relatorios-btn {
  font-size: 0.86rem;
  font-weight: 800;
}

.topbar-print-client-btn:hover,
.topbar-print-client-btn:focus,
.topbar-caixa-btn:hover,
.topbar-caixa-btn:focus,
.topbar-whatsapp-btn:hover,
.topbar-whatsapp-btn:focus,
.topbar-install-btn:hover,
.topbar-install-btn:focus,
.topbar-admin-voltar-btn:hover,
.topbar-admin-voltar-btn:focus,
.topbar-relatorios-btn:hover,
.topbar-relatorios-btn:focus {
  background: #fff;
  border-color: #d1d5db;
  color: #111827;
  outline: 0;
}

.topbar-print-client-icon,
.topbar-caixa-icon,
.topbar-whatsapp-icon,
.topbar-install-icon,
.topbar-admin-voltar-icon,
.topbar-avisos-icon,
.topbar-profile-avatar {
  align-items: center;
  background: #64748b;
  border-radius: 50% !important;
  color: #fff;
  display: inline-flex;
  flex: 0 0 28px;
  height: 28px !important;
  justify-content: center;
  line-height: 1;
  max-height: 28px;
  max-width: 28px;
  min-height: 28px;
  min-width: 28px;
  margin: 0 !important;
  padding: 0;
  width: 28px !important;
}

.topbar-relatorios-icon {
  align-items: center;
  background: #64748b !important;
  border-radius: 50% !important;
  color: #fff;
  display: inline-flex;
  flex: 0 0 28px;
  height: 28px !important;
  justify-content: center;
  line-height: 1;
  max-height: 28px;
  max-width: 28px;
  min-height: 28px;
  min-width: 28px;
  margin: 0 !important;
  padding: 0;
  width: 28px !important;
}

.gestor-body .topbar-print-client-icon,
.gestor-body .topbar-caixa-icon,
.gestor-body .topbar-whatsapp-icon,
.gestor-body .topbar-install-icon,
.gestor-body .topbar-admin-voltar-icon,
.gestor-body .topbar-avisos-icon,
.gestor-body .topbar-profile-avatar {
  width: 20px !important;
  min-width: 20px;
  max-width: 20px;
  height: 20px !important;
  min-height: 20px;
  max-height: 20px;
  flex-basis: 20px;
  font-size: 0.65rem;
}

.gestor-body .topbar-relatorios-icon {
  width: 16px !important;
  min-width: 16px !important;
  max-width: 16px !important;
  height: 16px !important;
  min-height: 16px !important;
  max-height: 16px !important;
  flex: 0 0 16px !important;
  font-size: 0 !important;
}

.gestor-body .topbar-relatorios-btn .topbar-relatorios-icon i {
  font-size: 0.48rem !important;
  line-height: 1 !important;
}

.topbar-print-client-icon i,
.topbar-caixa-icon i,
.topbar-whatsapp-icon i,
.topbar-install-icon i,
.topbar-admin-voltar-icon i,
.topbar-avisos-icon i,
.topbar-relatorios-icon i {
  font-size: 0.62rem;
  line-height: 1;
}

.topbar-caixa-btn--aberto .topbar-caixa-icon {
  background: #16a34a !important;
}

.topbar-install-icon {
  background: #4f628d !important;
}

.topbar-admin-voltar-btn {
  color: #7c2d12 !important;
}

.topbar-admin-voltar-icon {
  background: #9a3412 !important;
}

#modalInstalarGestor .modal-footer .btn-success {
  --bs-btn-bg: var(--ss-success-action-bg);
  --bs-btn-border-color: var(--ss-success-action-bg);
  --bs-btn-hover-bg: var(--ss-success-action-hover);
  --bs-btn-hover-border-color: var(--ss-success-action-hover);
  --bs-btn-active-bg: var(--ss-success-action-hover);
  --bs-btn-active-border-color: var(--ss-success-action-hover);
  background: var(--ss-success-action-bg) !important;
  border-color: var(--ss-success-action-bg) !important;
  color: #fff !important;
}

#modalInstalarGestor .modal-footer .btn-success:hover,
#modalInstalarGestor .modal-footer .btn-success:focus {
  background: var(--ss-success-action-hover) !important;
  border-color: var(--ss-success-action-hover) !important;
  opacity: 1;
}

.topbar-caixa-btn--aberto {
  color: #166534 !important;
}

.topbar-caixa-btn--fechado .topbar-caixa-icon {
  background: #dc2626 !important;
}

.topbar-caixa-btn--fechado {
  color: #991b1b !important;
}

.topbar-whatsapp-btn--connected .topbar-whatsapp-icon {
  background: #16a34a !important;
}

.topbar-whatsapp-btn--connected {
  color: #166534 !important;
}

.topbar-whatsapp-btn--connecting .topbar-whatsapp-icon {
  background: #f59e0b !important;
}

.topbar-whatsapp-btn--connecting {
  color: #92400e !important;
}

.topbar-whatsapp-btn--disconnected .topbar-whatsapp-icon {
  background: #dc2626 !important;
}

.topbar-whatsapp-btn--disconnected {
  color: #991b1b !important;
}

.topbar-whatsapp-btn--checking .topbar-whatsapp-icon {
  background: #64748b !important;
}

.topbar-whatsapp-btn--checking {
  color: #475569 !important;
}

.topbar-whatsapp-btn--unavailable .topbar-whatsapp-icon {
  background: #7c3aed !important;
}

.topbar-whatsapp-btn--unavailable {
  color: #6d28d9 !important;
}

.topbar-whatsapp-menu {
  width: min(320px, calc(100vw - 1rem));
  padding: 0.45rem;
  border: 1px solid #dbe3e9;
  border-radius: 0.7rem;
  box-shadow: 0 14px 34px rgba(15, 23, 42, 0.16);
  white-space: normal;
}

.topbar-whatsapp-menu .dropdown-divider {
  margin: 0.35rem 0;
}

.topbar-whatsapp-menu-head {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  padding: 0.45rem 0.55rem;
}

.topbar-whatsapp-menu-head > span:last-child,
.topbar-whatsapp-menu-item > span,
.topbar-whatsapp-switch-copy {
  display: flex;
  flex: 1 1 auto;
  min-width: 0;
  flex-direction: column;
}

.topbar-whatsapp-menu-head strong,
.topbar-whatsapp-menu-item strong,
.topbar-whatsapp-switch-copy strong {
  color: #172033;
  font-size: 0.76rem;
  font-weight: 750;
  line-height: 1.2;
}

.topbar-whatsapp-menu-head small,
.topbar-whatsapp-menu-item small,
.topbar-whatsapp-switch-copy small {
  margin-top: 0.13rem;
  color: #667085;
  font-size: 0.66rem;
  line-height: 1.25;
}

.topbar-whatsapp-status-icon,
.topbar-whatsapp-menu-icon,
.topbar-whatsapp-menu-item > i {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  flex: 0 0 28px;
  border-radius: 0.48rem;
  background: #f1f5f9;
  color: #64748b;
  font-size: 0.76rem;
}

.topbar-whatsapp-status-icon.is-connected {
  background: #dcfce7;
  color: #15803d;
}

.topbar-whatsapp-status-icon.is-connecting {
  background: #fef3c7;
  color: #b45309;
}

.topbar-whatsapp-status-icon.is-disconnected {
  background: #fee2e2;
  color: #b91c1c;
}

.topbar-whatsapp-status-icon.is-unavailable {
  background: #ede9fe;
  color: #6d28d9;
}

.topbar-whatsapp-menu-item {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  min-height: 42px;
  padding: 0.42rem 0.5rem;
  border: 0;
  border-radius: 0.5rem;
  white-space: normal;
}

.topbar-whatsapp-menu-item:hover,
.topbar-whatsapp-menu-item:focus {
  background: #f5f8fa;
}

.topbar-whatsapp-menu-item.is-danger > i {
  background: #fff1f2;
  color: #be123c;
}

.topbar-whatsapp-menu-item.is-danger strong {
  color: #b42318;
}

.topbar-whatsapp-switch-row {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  min-height: 42px;
  padding: 0.42rem 0.5rem;
}

.topbar-whatsapp-switch {
  flex: 0 0 auto;
}

.topbar-whatsapp-switch input:disabled + span:first-of-type {
  opacity: 0.55;
  cursor: wait;
}

.topbar-whatsapp-menu [disabled] {
  cursor: wait;
  opacity: 0.65;
}

.topbar-print-client-btn--online .topbar-print-client-icon {
  background: #16a34a !important;
}

.topbar-print-client-btn--online {
  color: #166534 !important;
}

.topbar-print-client-btn--offline .topbar-print-client-icon,
.topbar-print-client-btn--unlinked .topbar-print-client-icon {
  background: #dc2626 !important;
}

.topbar-print-client-btn--offline,
.topbar-print-client-btn--unlinked {
  color: #991b1b !important;
}

.topbar-print-client-btn--checking .topbar-print-client-icon {
  background: #64748b !important;
}

.topbar-print-client-btn--checking {
  color: #475569;
}

/* No desktop, os estados ficam em ícones; o balão global vive fora do topbar. */
@media (min-width: 768px) and (hover: hover) and (pointer: fine) {
  .gestor-body :is(
    .topbar-admin-voltar-btn,
    .topbar-caixa-btn,
    .topbar-whatsapp-btn,
    .topbar-print-client-btn
  ) {
    box-sizing: border-box;
    flex: 0 0 27px;
    gap: 0;
    justify-content: center !important;
    max-width: 27px;
    min-width: 27px;
    overflow: visible;
    padding: 0 !important;
    position: relative;
    transition: background-color 0.22s ease, border-color 0.22s ease, color 0.22s ease;
    width: 27px;
  }

  .gestor-body .topbar-whatsapp-dropdown {
    flex: 0 0 27px;
    height: 27px;
    isolation: isolate;
    max-width: 27px;
    min-width: 27px;
    position: relative;
    width: 27px;
  }

  .gestor-body .topbar-whatsapp-btn.dropdown-toggle::after {
    display: none !important;
  }

  .gestor-body :is(
    .topbar-admin-voltar-text,
    .topbar-caixa-text,
    .topbar-whatsapp-text,
    .topbar-print-client-text
  ) {
    display: none !important;
  }
}

/* Bootstrap anexa estes balões diretamente ao body, acima de qualquer módulo. */
.ss-action-balloon {
  --bs-tooltip-bg: #1f2937;
  --bs-tooltip-color: #fff;
  --bs-tooltip-max-width: 280px;
  --bs-tooltip-opacity: 1;
  --bs-tooltip-padding-x: 8px;
  --bs-tooltip-padding-y: 6px;
  --bs-tooltip-zindex: 2147483647;
  pointer-events: none !important;
  z-index: 2147483647 !important;
}

.ss-action-balloon .tooltip-inner {
  border-radius: 6px;
  box-shadow: 0 6px 16px rgba(15, 23, 42, 0.3);
  font-size: 0.68rem;
  font-weight: 650;
  white-space: nowrap;
}

.gestor-body .form-label {
  margin: 0 0 0.35rem;
  color: #111827;
  font-size: 0.875rem;
  font-weight: 400;
}

.gestor-body :is(.form-control, .form-select, .ss-control):not([data-ss-control-visual="custom"]):not(.form-control-color),
.gestor-body .input-group-text:not([data-ss-control-visual="custom"]) {
  height: var(--ss-control-height) !important;
  min-height: var(--ss-control-height) !important;
  padding: var(--ss-control-padding) !important;
  border: 1px solid var(--ss-control-border) !important;
  border-bottom: var(--ss-control-border-bottom-width) solid var(--ss-control-border-bottom) !important;
  border-radius: var(--ss-control-radius) !important;
  background-color: var(--ss-control-background) !important;
  color: var(--ss-control-color) !important;
  font-family: var(--ss-control-font) !important;
  font-size: var(--ss-control-font-size) !important;
  line-height: 1.25;
  box-shadow: none !important;
}

.gestor-body :is(.form-control, .form-select, .ss-control):not([data-ss-control-visual="custom"]):not(.form-control-color):is(:invalid, :required) {
  border: 1px solid var(--ss-control-border) !important;
  border-bottom: var(--ss-control-border-bottom-width) solid var(--ss-control-border-bottom) !important;
  box-shadow: none !important;
}

.gestor-body :is(.form-control-sm, .form-select-sm):not([data-ss-control-visual="custom"]):not(.form-control-color) {
  height: var(--ss-control-height) !important;
  min-height: var(--ss-control-height) !important;
  padding: var(--ss-control-padding) !important;
  font-size: var(--ss-control-font-size) !important;
}

/* Todo select convencional do Gestor reserva uma faixa exclusiva para a seta.
   O padding compacto global não pode permitir que opções longas passem sob o ícone. */
.gestor-body select.form-select:not([multiple]):not([size]):not([data-ss-control-visual="custom"]) {
  padding-right: 2rem !important;
  overflow: hidden;
  background-position: right .55rem center !important;
  background-size: 12px 9px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.gestor-body input[type="date"].form-control:not([data-ss-control-visual="custom"]),
.gestor-body input[type="time"].form-control:not([data-ss-control-visual="custom"]) {
  height: var(--ss-control-height) !important;
  min-height: var(--ss-control-height) !important;
  line-height: 1.25;
}

.gestor-body textarea.form-control:not([data-ss-control-visual="custom"]) {
  height: auto !important;
  min-height: 68px !important;
  resize: vertical;
}

.gestor-body :is(.form-control, .form-select, .ss-control):not([data-ss-control-visual="custom"]):not(.form-control-color):focus {
  outline: 0;
  box-shadow: none !important;
  border-bottom: 2px solid var(--ss-control-focus) !important;
}

.gestor-body :is(.form-control, .form-select, .ss-control):not([data-ss-control-visual="custom"]):not(.form-control-color).is-invalid {
  border-bottom-color: #dc3545 !important;
}

/*
 * Busca com ícone dentro do campo.
 * O controle global usa padding com !important; sobrescrever a variável no
 * contêiner preserva o espaço do ícone em todas as páginas atuais e oferece
 * .ss-search-field como padrão para novas telas.
 */
.gestor-body :is(.ss-search-field, .produtos-busca, .unidades-busca) {
  --ss-control-padding: 0.16rem 0.5rem 0.16rem 2.25rem;
  position: relative;
}

.gestor-body :is(.ss-search-field, .produtos-busca, .unidades-busca) > i:first-child {
  position: absolute;
  z-index: 2;
  top: 50%;
  left: 0.7rem;
  display: inline-flex;
  width: 1rem;
  align-items: center;
  justify-content: center;
  transform: translateY(-50%);
  color: #64748b;
  font-size: 0.78rem;
  line-height: 1;
  pointer-events: none;
}

.gestor-body .btn {
  height: var(--ss-button-height);
  min-height: var(--ss-button-height);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.25rem;
  border-radius: var(--ss-button-radius);
  font-size: var(--ss-button-font-size);
  font-weight: 600;
  line-height: 1.2;
}

.gestor-body .btn-sm {
  padding: 0.16rem 0.65rem;
  font-size: var(--ss-button-font-size);
}

.gestor-body .input-group > .btn {
  border-radius: 0 !important;
}

/*
 * Lookup global: mantém código + lupa unidos e separa visualmente o nome
 * selecionado com o mesmo gap usado pelo editor de Produto.
 */
.gestor-body [data-lookup].input-group > [data-lookup-search] + [data-lookup-name] {
  margin-left: 0.42rem !important;
}

.gestor-body .btn-primary {
  --bs-btn-bg: var(--ss-button-primary-bg);
  --bs-btn-border-color: var(--ss-button-primary-bg);
  --bs-btn-hover-bg: var(--ss-button-primary-bg);
  --bs-btn-hover-border-color: var(--ss-button-primary-bg);
  --bs-btn-active-bg: var(--ss-button-primary-bg);
  --bs-btn-active-border-color: var(--ss-button-primary-bg);
  --bs-btn-disabled-bg: var(--ss-button-primary-bg);
  --bs-btn-disabled-border-color: var(--ss-button-primary-bg);
  border-color: var(--ss-button-primary-bg);
  background: var(--ss-button-primary-bg);
  color: #fff;
}

.gestor-body .btn-secondary {
  --bs-btn-bg: var(--ss-button-secondary-bg);
  --bs-btn-border-color: var(--ss-button-secondary-bg);
  --bs-btn-hover-bg: var(--ss-button-secondary-bg);
  --bs-btn-hover-border-color: var(--ss-button-secondary-bg);
  --bs-btn-active-bg: var(--ss-button-secondary-bg);
  --bs-btn-active-border-color: var(--ss-button-secondary-bg);
  --bs-btn-disabled-bg: var(--ss-button-secondary-bg);
  --bs-btn-disabled-border-color: var(--ss-button-secondary-bg);
  border-color: var(--ss-button-secondary-bg);
  background: var(--ss-button-secondary-bg);
  color: #fff;
}

.gestor-body .btn-light {
  --bs-btn-bg: var(--ss-button-neutral-bg);
  --bs-btn-border-color: var(--ss-button-neutral-bg);
  --bs-btn-hover-bg: var(--ss-button-neutral-bg);
  --bs-btn-hover-border-color: var(--ss-button-neutral-bg);
  --bs-btn-active-bg: var(--ss-button-neutral-bg);
  --bs-btn-active-border-color: var(--ss-button-neutral-bg);
  border-color: var(--ss-button-neutral-bg);
  background: var(--ss-button-neutral-bg);
  color: #333;
}

.gestor-body :is(button, input)[type="submit"].btn {
  min-width: var(--ss-button-action-min-width);
  border: 0;
}

.gestor-body :is(.btn-primary, .btn-secondary, .btn-light):hover {
  opacity: .7;
}

/* Admin · Planos: as opções usam a largura inteira e redistribuem as colunas
   automaticamente, sem deixar cartões estreitos ou espaços mortos. */
.plano-catalogo-tree {
  display: grid;
  gap: .6rem;
}

.plano-catalogo-solto {
  padding: .15rem 0;
}

.plano-catalogo-modulo {
  padding: .6rem .75rem;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
}

.plano-catalogo-operacoes {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(180px, 100%), 1fr));
  gap: .4rem .9rem;
  margin-top: .45rem;
  padding-left: 1.6rem;
}

.plano-catalogo-operacao {
  width: 100%;
  min-width: 0;
}

.plano-catalogo-grupo {
  margin: 0;
}

.plano-catalogo-grupo > summary {
  padding: .3rem 0;
  cursor: pointer;
  font-weight: 800;
}

.plano-catalogo-grupo-conteudo {
  display: grid;
  gap: .5rem;
  margin-top: .4rem;
  padding-left: .5rem;
}

@media (max-width: 575.98px) {
  .plano-catalogo-operacoes,
  .plano-catalogo-grupo-conteudo {
    padding-left: 0;
  }
}

.modal-unidade-preview {
  display: flex;
  align-items: center;
  gap: 0.8rem;
  padding: 0.85rem;
  margin-bottom: 1rem;
  border: 1px solid #edf0f5;
  border-radius: 0.9rem;
  background: #f8fafc;
}
.modal-unidade-logo {
  width: 52px;
  height: 52px;
  border-radius: 50%;
  background: #fff;
  border: 2px solid #dbe3ef;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--cor-unidade, #2d3142);
  font-size: 1.45rem;
  overflow: hidden;
  flex: 0 0 auto;
}
.modal-unidade-logo img { width: 100%; height: 100%; object-fit: cover; }
.modal-unidade-preview-text { min-width: 0; display: flex; flex-direction: column; }
.modal-unidade-preview-text strong {
  color: #111827;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.modal-unidade-preview-text small { color: #6b7280; }

.modal-backdrop.show {
  opacity: .55;
}

.modal .modal-content {
  border: 1px solid #313548;
  border-radius: 10px;
  overflow: hidden;
  box-shadow: 0 16px 38px rgba(45, 49, 66, .12);
  background: #fff !important;
}

.modal .modal-header,
.modal-header-unidade {
  height: auto;
  min-height: 30px;
  padding: 4px 12px;
  border: 0;
  border-radius: 10px 10px 0 0;
  background: #313548 !important;
  color: #fff;
  justify-content: center;
  position: relative;
}

.modal .modal-title {
  margin: 0 auto;
  color: #fff !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  line-height: 1.25;
  text-align: center;
}

.modal .modal-header small,
.modal .modal-header > span {
  color: rgba(255, 255, 255, .72) !important;
}

.modal .modal-header .btn-close {
  position: absolute;
  top: 50%;
  right: 10px;
  transform: translateY(-50%);
  width: auto;
  height: auto;
  padding: 0;
  margin: 0;
  background: none;
  border: 0;
  opacity: 1;
  color: #fff;
  filter: none;
  font-size: 0;
  box-shadow: none;
}

.modal .modal-header .btn-close::before {
  content: "×";
  color: #fff;
  font-size: 28px;
  font-weight: 700;
  line-height: 1;
}

.modal .modal-header .btn-close:focus {
  box-shadow: none;
}

.modal .modal-body {
  background: #fff !important;
  padding: 20px;
}

.modal .modal-footer {
  min-height: 38px;
  height: auto !important;
  gap: 8px;
  padding: 5px 9px 4px !important;
  border: 0;
  border-top: 1px solid #e8ecf2;
  background: #f8fafc;
}

.modal .modal-footer .btn {
  min-width: var(--ss-button-action-min-width);
  height: var(--ss-button-height);
  border: 0;
  border-radius: var(--ss-button-radius);
  font-weight: 600;
}

.modal .modal-footer .btn-light,
.modal .modal-footer .btn-secondary {
  --bs-btn-bg: var(--ss-modal-secondary-btn-bg);
  --bs-btn-border-color: var(--ss-modal-secondary-btn-bg);
  --bs-btn-hover-bg: var(--ss-modal-secondary-btn-bg);
  --bs-btn-hover-border-color: var(--ss-modal-secondary-btn-bg);
  --bs-btn-active-bg: var(--ss-modal-secondary-btn-bg);
  --bs-btn-active-border-color: var(--ss-modal-secondary-btn-bg);
  background: var(--ss-modal-secondary-btn-bg) !important;
  border-color: var(--ss-modal-secondary-btn-bg) !important;
  color: #fff !important;
}

.modal .modal-footer .btn-light:hover,
.modal .modal-footer .btn-secondary:hover {
  opacity: .7;
}

.modal .modal-footer .btn-primary,
.modal .modal-footer .btn-success {
  --bs-btn-bg: var(--ss-modal-primary-btn-bg);
  --bs-btn-border-color: var(--ss-modal-primary-btn-bg);
  --bs-btn-hover-bg: var(--ss-modal-primary-btn-bg);
  --bs-btn-hover-border-color: var(--ss-modal-primary-btn-bg);
  --bs-btn-active-bg: var(--ss-modal-primary-btn-bg);
  --bs-btn-active-border-color: var(--ss-modal-primary-btn-bg);
  --bs-btn-disabled-bg: var(--ss-modal-primary-btn-bg);
  --bs-btn-disabled-border-color: var(--ss-modal-primary-btn-bg);
  background: var(--ss-modal-primary-btn-bg) !important;
  border-color: var(--ss-modal-primary-btn-bg) !important;
  color: #fff !important;
}

.modal .modal-footer .btn-primary:hover,
.modal .modal-footer .btn-success:hover {
  opacity: .7;
}

/* Ações fora de modal que devem manter exatamente a mesma linguagem dos
   rodapés dos modais (login, licença e outros acessos de entrada). */
.gestor-body .ss-modal-actions {
  display: flex;
  min-height: 38px;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  padding-top: 10px;
}

.gestor-body .ss-modal-actions .btn {
  flex: 0 0 auto;
  min-width: var(--ss-button-action-min-width);
  height: var(--ss-button-height);
  border: 0;
  border-radius: var(--ss-button-radius);
  font-weight: 600;
}

.gestor-body .ss-modal-actions .btn-light,
.gestor-body .ss-modal-actions .btn-secondary {
  --bs-btn-bg: var(--ss-modal-secondary-btn-bg);
  --bs-btn-border-color: var(--ss-modal-secondary-btn-bg);
  --bs-btn-hover-bg: var(--ss-modal-secondary-btn-bg);
  --bs-btn-hover-border-color: var(--ss-modal-secondary-btn-bg);
  --bs-btn-active-bg: var(--ss-modal-secondary-btn-bg);
  --bs-btn-active-border-color: var(--ss-modal-secondary-btn-bg);
  --bs-btn-disabled-bg: var(--ss-modal-secondary-btn-bg);
  --bs-btn-disabled-border-color: var(--ss-modal-secondary-btn-bg);
  background: var(--ss-modal-secondary-btn-bg) !important;
  border-color: var(--ss-modal-secondary-btn-bg) !important;
  color: #fff !important;
}

.gestor-body .ss-modal-actions .btn-primary,
.gestor-body .ss-modal-actions .btn-success {
  --bs-btn-bg: var(--ss-modal-primary-btn-bg);
  --bs-btn-border-color: var(--ss-modal-primary-btn-bg);
  --bs-btn-hover-bg: var(--ss-modal-primary-btn-bg);
  --bs-btn-hover-border-color: var(--ss-modal-primary-btn-bg);
  --bs-btn-active-bg: var(--ss-modal-primary-btn-bg);
  --bs-btn-active-border-color: var(--ss-modal-primary-btn-bg);
  --bs-btn-disabled-bg: var(--ss-modal-primary-btn-bg);
  --bs-btn-disabled-border-color: var(--ss-modal-primary-btn-bg);
  background: var(--ss-modal-primary-btn-bg) !important;
  border-color: var(--ss-modal-primary-btn-bg) !important;
  color: #fff !important;
}

.gestor-body .ss-modal-actions .btn:hover {
  opacity: .7;
}

.gestor-body .ss-login-actions {
  margin: 0;
}

.gestor-body.ss-access-page {
  background:
    radial-gradient(circle at 50% 28%, rgba(135, 139, 180, .12), transparent 34%),
    #eef1f6;
}

.ss-access-wrapper {
  max-width: 440px;
}

.ss-entry-card {
  padding: 0;
  overflow: hidden;
  border: 0;
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 16px 38px rgba(45, 49, 66, .12) !important;
}

.ss-entry-card-header {
  display: flex;
  height: auto;
  min-height: 30px;
  align-items: center;
  justify-content: center;
  padding: 4px 12px;
  border: 0;
  border-radius: 10px 10px 0 0;
  background: #313548;
  color: #fff;
}

.ss-entry-card-header h1 {
  margin: 0;
  color: #fff;
  font-size: 13px;
  font-weight: 600;
  line-height: 1;
}

.ss-entry-card-header i {
  margin-right: 5px;
  font-size: 12px;
}

.ss-entry-card-body {
  padding: 24px 28px 20px;
}

.ss-entry-card-footer.ss-modal-actions {
  min-height: 48px;
  margin: 0;
  padding: 10px 18px;
  border-top: 1px solid #e8ecf2;
  background: #f8fafc;
}

.ss-access-card {
  max-width: 440px;
}

.ss-login-card {
  padding: 0;
}

.ss-login-card-body {
  padding: 22px 30px 18px;
}

.ss-login-brand {
  margin-bottom: 20px;
}

.ss-login-brand .login-logo-img {
  display: block;
  max-width: 150px;
  margin: 0 auto 10px;
}

.ss-login-signup {
  margin-top: 16px;
  padding-top: 13px;
  border-top: 1px solid #edf0f5;
}

.ss-login-signup a {
  font-size: 11px;
  font-weight: 600;
}

.ss-access-summary {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  text-align: left;
}

.ss-access-summary-text {
  min-width: 0;
  flex: 1 1 auto;
}

.ss-access-symbol {
  --ss-access-accent: #ea580c;
  display: flex;
  width: 48px;
  height: 48px;
  flex: 0 0 48px;
  align-items: center;
  justify-content: center;
  border-radius: 12px;
  background: color-mix(in srgb, var(--ss-access-accent) 11%, #fff);
  color: var(--ss-access-accent);
  font-size: 21px;
}

.ss-access-symbol.is-danger {
  --ss-access-accent: #dc2626;
}

.ss-license-status {
  display: inline-flex;
  margin-bottom: 5px;
  align-items: center;
  gap: 5px;
  color: #9a3412;
  font-size: 10px;
  font-weight: 700;
  line-height: 1;
  text-transform: uppercase;
}

.ss-license-status i {
  font-size: 6px;
}

.ss-license-status.is-blocked {
  color: #b91c1c;
}

.ss-access-title {
  margin: 0;
  color: #182033;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.35;
}

.ss-access-copy {
  margin: 6px 0 0;
  color: #64748b;
  font-size: 12px;
  line-height: 1.45;
}

.ss-access-deadline {
  display: flex;
  margin: 18px 0 0 62px;
  padding: 9px 12px;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  border: 1px solid #e5e9f0;
  border-radius: 8px;
  background: #f8fafc;
  color: #64748b;
  font-size: 11px;
  text-align: left;
}

.ss-access-deadline i {
  margin-right: 5px;
  color: var(--ss-button-secondary-bg);
}

.ss-access-deadline.is-danger i {
  color: #dc2626;
}

.ss-access-deadline strong {
  color: #273047;
  font-size: 12px;
}

@media (max-width: 575.98px) {
  .ss-entry-card-body {
    padding: 20px 18px 18px;
  }

  .gestor-body .ss-modal-actions {
    flex-wrap: wrap;
  }

  .ss-access-deadline {
    margin-left: 0;
  }
}

@media (max-width: 575.98px) {
  .modal .modal-dialog.modal-fullscreen-sm-down {
    width: 100vw;
    max-width: none;
    height: 100dvh;
    min-height: 0;
    max-height: 100dvh;
    margin: 0;
  }

  .modal .modal-dialog.modal-fullscreen-sm-down .modal-content {
    height: 100%;
    min-height: 0;
    max-height: 100dvh;
    border: 0;
    border-radius: 0;
  }

  .modal .modal-dialog.modal-fullscreen-sm-down .modal-header,
  .modal .modal-dialog.modal-fullscreen-sm-down .modal-footer {
    border-radius: 0;
  }

  .modal .modal-dialog.modal-fullscreen-sm-down .modal-body {
    flex: 1 1 auto;
    min-height: 0;
    max-height: none;
    overflow-y: auto;
    overscroll-behavior-y: contain;
    -webkit-overflow-scrolling: touch;
  }

  .modal .modal-dialog.modal-fullscreen-sm-down.modal-dialog-scrollable .modal-content {
    max-height: 100dvh;
  }
}

.ss-toast-container {
  z-index: 2080;
  top: 20px !important;
  width: min(390px, calc(100vw - 24px));
  pointer-events: none;
}

.ss-toast {
  width: 100%;
  overflow: hidden;
  border: 1px solid color-mix(in srgb, var(--ss-toast-accent, var(--ss-action-bg)) 38%, #dfe5ee);
  border-left: 5px solid var(--ss-toast-accent, var(--ss-action-bg));
  border-radius: 8px;
  background:
    linear-gradient(90deg, color-mix(in srgb, var(--ss-toast-accent, var(--ss-action-bg)) 8%, #fff), #fff 46%);
  color: #111827;
  box-shadow: 0 16px 40px rgba(15, 23, 42, 0.22), 0 0 0 1px rgba(255, 255, 255, 0.75) inset;
  pointer-events: auto;
}

.ss-toast + .ss-toast {
  margin-top: 10px;
}

.ss-toast .toast-header {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 12px 6px;
  border: 0;
  background: transparent;
  color: #111827;
}

.ss-toast-icon {
  width: 22px;
  height: 22px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 22px;
  border-radius: 999px;
  background: var(--ss-toast-accent, var(--ss-action-bg));
  color: #fff;
  font-size: 0.86rem;
  box-shadow: 0 6px 14px color-mix(in srgb, var(--ss-toast-accent, var(--ss-action-bg)) 24%, transparent);
}

.ss-toast-title {
  min-width: 0;
  flex: 1 1 auto;
  overflow: hidden;
  color: #111827;
  font-size: 0.92rem;
  font-weight: 800;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.ss-toast .btn-close {
  width: 0.75rem;
  height: 0.75rem;
  margin: 0;
  padding: 0.55rem;
  box-shadow: none;
}

.ss-toast .toast-body {
  padding: 0 12px 9px 42px;
  color: #4b5563;
  font-size: 0.88rem;
  line-height: 1.35;
  white-space: pre-line;
}

.ss-toast-progress {
  height: 4px;
  margin: 0 12px 10px 42px;
  overflow: hidden;
  border-radius: 999px;
  background: color-mix(in srgb, var(--ss-toast-accent, var(--ss-action-bg)) 16%, #eef2f7);
}

.ss-toast-progress span {
  display: block;
  width: 100%;
  height: 100%;
  border-radius: inherit;
  background: var(--ss-toast-accent, var(--ss-action-bg));
  transform-origin: left center;
  animation: ss-toast-progress var(--ss-toast-duration, 3000ms) linear forwards;
}

@keyframes ss-toast-progress {
  from { transform: scaleX(1); }
  to { transform: scaleX(0); }
}

.ss-toast--success { --ss-toast-accent: #08b84f; }
.ss-toast--error { --ss-toast-accent: #e11d48; }
.ss-toast--warning { --ss-toast-accent: #d97706; }
.ss-toast--info { --ss-toast-accent: #2563eb; }

@media (max-width: 767.98px) {
  .ss-toast-container {
    top: 12px !important;
    right: 12px !important;
    left: 12px !important;
    width: auto;
    padding: 0 !important;
  }
}

.modal .alert:not([data-ss-inline-alert]) {
  display: none !important;
}

.gestor-body .nav-tabs,
.gestor-body .nav-pills {
  gap: 0.85rem;
  flex-wrap: wrap;
  border-bottom: 1px solid #dfe5ee;
}

.gestor-body .nav-tabs .nav-link,
.gestor-body .nav-pills .nav-link {
  margin-bottom: -1px;
  padding: 0.55rem 0 0.62rem;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: #4b5563;
  box-shadow: none !important;
  font-weight: 800;
}

.gestor-body .nav-tabs .nav-link:hover,
.gestor-body .nav-pills .nav-link:hover {
  color: #111827;
}

.gestor-body .nav-tabs .nav-link.active,
.gestor-body .nav-tabs .nav-link.show,
.gestor-body .nav-pills .nav-link.active,
.gestor-body .nav-pills .nav-link.show {
  color: #111827 !important;
  border-bottom: 2px solid var(--ss-action-bg) !important;
}

.ss-galeria-modal .modal-dialog {
  max-width: min(1140px, calc(100vw - 32px));
}

.ss-galeria-content {
  min-height: min(90vh, 900px);
  max-height: 90vh;
}

.ss-galeria-modal .modal-body {
  display: flex;
  flex-direction: column;
  min-height: 0;
  padding: 20px;
}

.ss-galeria-toolbar {
  position: sticky;
  z-index: 5;
  top: 0;
  display: flex;
  align-items: center;
  gap: 12px;
  margin-top: -10px;
  margin-bottom: 14px;
  padding: 10px 0 12px;
  border-bottom: 1px solid #eef2f7;
  background: #fff;
  box-shadow: 0 5px 8px rgba(15, 23, 42, 0.04);
}

.ss-galeria-search {
  flex: 1 1 auto;
  min-width: min(100%, 280px);
  margin: 0;
}

.ss-galeria-counter {
  min-width: 92px;
  color: #6b7280;
  font-size: 0.86rem;
  text-align: right;
  white-space: nowrap;
}

.ss-galeria-load-counter {
  min-height: 28px;
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  gap: 6px;
  padding: 3px 9px;
  border: 1px solid #dbe3f0;
  border-radius: 999px;
  background: #f8fafc;
  color: #475569;
  font-size: 0.72rem;
  font-weight: 800;
  white-space: nowrap;
}

.ss-galeria-load-counter.is-waiting {
  border-color: #fde68a;
  background: #fffbeb;
  color: #92400e;
}

.ss-galeria-load-counter .spinner-border {
  width: 0.8rem;
  height: 0.8rem;
}

.ss-galeria-load-counter[hidden] {
  display: none !important;
}

.ss-galeria-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
  gap: 12px;
  align-items: start;
}

.ss-galeria-card {
  position: relative;
  min-width: 0;
  aspect-ratio: 1 / 1;
  overflow: hidden;
  border: 1px solid #dfe5ee;
  border-radius: 8px;
  background: #fff;
}

.ss-galeria-card:not(.ss-galeria-upload-card):not(.is-image-loading):not(.is-page-loading)::after {
  position: absolute;
  z-index: 1;
  right: 0;
  bottom: 0;
  left: 0;
  height: 58px;
  background: linear-gradient(to top, rgba(15, 23, 42, 0.68), rgba(15, 23, 42, 0));
  content: '';
  pointer-events: none;
}

.ss-galeria-card.is-image-loading,
.ss-galeria-card.is-page-loading {
  border-color: #dbe3f0;
  background: #f1f5f9;
}

.ss-galeria-card-preview {
  position: relative;
  display: block;
  width: 100%;
  height: 100%;
  padding: 0;
  overflow: hidden;
  border: 0;
  background: #f1f5f9;
  cursor: zoom-in;
}

.ss-galeria-card-preview:focus-visible {
  outline: 2px solid var(--ss-action-bg);
  outline-offset: -3px;
}

.ss-galeria-card-preview img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  padding: 4px;
}

.ss-galeria-image-loading {
  position: absolute;
  z-index: 1;
  inset: 0;
  display: grid;
  place-items: center;
  background: #f1f5f9;
  color: var(--ss-action-bg);
  pointer-events: none;
}

.ss-galeria-image-loading .spinner-border {
  width: 1.45rem;
  height: 1.45rem;
}

.ss-galeria-card-actions {
  position: absolute;
  z-index: 2;
  right: 7px;
  bottom: 7px;
  left: 7px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 6px;
}

.ss-galeria-card-actions.has-single-action {
  grid-template-columns: 1fr;
}

.ss-galeria-card-actions .btn {
  min-width: 0;
  min-height: 32px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  border: 0;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.94);
  color: #0f172a;
  font-size: 0.78rem;
  font-weight: 700;
  box-shadow: 0 2px 8px rgba(15, 23, 42, 0.18);
}

.ss-galeria-card-actions .btn:hover,
.ss-galeria-card-actions .btn:focus {
  background: #e9eef5;
  color: #0f172a;
}

.ss-galeria-card-actions .btn[disabled] {
  opacity: 0.55;
}

.ss-galeria-card-actions .ss-galeria-delete {
  color: #b00020;
}

.ss-galeria-upload-card {
  border-style: dashed;
  border-color: #aebbd0;
  background: #f8fafc;
}

.ss-galeria-upload-trigger {
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 16px;
  border: 0;
  background: transparent;
  color: #27324a;
  cursor: pointer;
}

.ss-galeria-upload-trigger:hover,
.ss-galeria-upload-trigger:focus-visible {
  background: #eef2f7;
}

.ss-galeria-upload-trigger:focus-visible {
  outline: 2px solid var(--ss-action-bg);
  outline-offset: -3px;
}

.ss-galeria-upload-trigger:disabled {
  cursor: wait;
  opacity: 1;
}

.ss-galeria-upload-trigger > i {
  width: 44px;
  height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: var(--ss-action-bg);
  color: #fff;
  font-size: 1.35rem;
}

.ss-galeria-upload-trigger .spinner-border {
  width: 2rem;
  height: 2rem;
  color: var(--ss-action-bg);
}

.ss-galeria-upload-trigger strong {
  font-size: 0.82rem;
}

.ss-galeria-upload-trigger small {
  color: #64748b;
  font-size: 0.7rem;
}

.ss-galeria-loading,
.ss-galeria-empty {
  width: 100%;
  min-height: 110px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  margin-top: 12px;
  border: 1px dashed #d3d9e6;
  border-radius: 8px;
  color: #6b7280;
}

.ss-galeria-empty {
  flex-direction: column;
  text-align: center;
}

.ss-galeria-empty[hidden],
.ss-galeria-loading[hidden] {
  display: none !important;
}

.ss-galeria-feedback {
  border-radius: 999px;
}

.ss-galeria-scroll-sentinel {
  min-height: 1px;
  display: grid;
  place-items: center;
  color: var(--ss-action-bg);
}

.ss-galeria-scroll-sentinel.is-loading {
  min-height: 36px;
}

.ss-galeria-scroll-sentinel .spinner-border {
  display: none;
}

.ss-galeria-scroll-sentinel.is-loading .spinner-border {
  display: inline-block;
}

.ss-galeria-scroll-sentinel[hidden] {
  display: none !important;
}

.ss-galeria-feedback {
  margin-top: 12px;
  padding: 8px 12px;
  background: #edf7ee;
  color: #17663a;
  font-size: 0.86rem;
  font-weight: 600;
}

.ss-galeria-feedback.is-error {
  background: #fff1f2;
  color: #b00020;
}

@media (max-width: 767.98px) {
  .ss-galeria-modal .modal-dialog {
    max-width: calc(100vw - 16px);
    margin-left: 8px;
    margin-right: 8px;
  }
  .ss-galeria-content {
    min-height: 92vh;
    max-height: 92vh;
  }
  .ss-galeria-modal .modal-body {
    padding: 16px;
  }
  .ss-galeria-toolbar {
    align-items: stretch;
    flex-direction: column;
  }
  .ss-galeria-counter {
    min-width: 0;
    text-align: left;
  }
  .ss-galeria-grid {
    grid-template-columns: repeat(auto-fill, minmax(126px, 1fr));
    gap: 12px;
  }
}

.ss-label {
  margin: 0 0 0.35rem;
  color: #111827;
  font-size: 0.875rem;
  font-weight: 400;
}

.ss-form-grid {
  display: grid;
  grid-template-columns: 90px repeat(11, minmax(0, 1fr));
  gap: 1rem 1.5rem;
}

.ss-col-1 { grid-column: span 1; }
.ss-col-2 { grid-column: span 2; }
.ss-col-3 { grid-column: span 3; }
.ss-col-4 { grid-column: span 4; }
.ss-col-5 { grid-column: span 5; }
.ss-col-6 { grid-column: span 6; }
.ss-col-7 { grid-column: span 7; }
.ss-col-8 { grid-column: span 8; }
.ss-col-9 { grid-column: span 9; }
.ss-col-10 { grid-column: span 10; }
.ss-col-11 { grid-column: span 11; }
.ss-col-12 { grid-column: span 12; }

.ss-field {
  min-width: 0;
}

.ss-field > .form-control,
.ss-field > .form-select,
.ss-field > .ss-btn {
  width: 100%;
}

.ss-section-title {
  margin: 0 0 0.65rem;
  color: #111827;
  font-size: 0.9rem;
  font-weight: 700;
}

.ss-muted {
  color: #7b7d8f;
  font-size: 0.84rem;
}

.ss-panel {
  border: 1px solid #dfe5ee;
  border-radius: 12px;
  background: #f8fafc;
}

.ss-panel-pad {
  padding: 1.05rem 1.2rem;
}

.ss-btn {
  min-height: 27px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.25rem;
  padding: 0.16rem 0.65rem;
  border: 0;
  border-radius: 999px;
  background: var(--ss-action-bg);
  color: #fff;
  font-size: 0.86rem;
  font-weight: 600;
  line-height: 1.2;
  text-decoration: none;
  white-space: nowrap;
}

.ss-btn:hover,
.ss-btn:focus {
  background: var(--ss-action-bg-hover);
  color: #fff;
}

.ss-btn-success {
  background: var(--ss-success-action-bg);
}

.ss-btn-success:hover,
.ss-btn-success:focus {
  background: var(--ss-success-action-hover);
}

.ss-btn-danger {
  width: 30px;
  height: 30px;
  padding: 0;
  background: #f00446;
}

.ss-btn-danger:hover,
.ss-btn-danger:focus {
  background: #cf003a;
}

.ss-switch {
  /* position: relative ancora o input escondido (absolute) dentro do label;
     sem isso o input fica fora do scroller e o foco rola o shell inteiro. */
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  margin: 0;
  color: #111827;
  font-size: 0.88rem;
  cursor: pointer;
  vertical-align: middle;
}

.ss-switch input {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}

.ss-switch span:first-of-type {
  width: 28px;
  height: 16px;
  display: inline-flex;
  align-items: center;
  flex: 0 0 28px;
  border: 1px solid #bfc4d6;
  border-radius: 999px;
  background: #f4f5f8;
  padding: 1px;
  transition: background 0.14s ease, border-color 0.14s ease;
}

.ss-switch span:first-of-type::before {
  content: "";
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: #a9a5bf;
  transition: transform 0.14s ease, background 0.14s ease;
}

.ss-switch input:checked + span:first-of-type {
  border-color: var(--ss-action-bg);
  background: var(--ss-action-bg);
}

.ss-switch input:checked + span:first-of-type::before {
  transform: translateX(12px);
  background: #fff;
}

/* Foco de teclado inequívoco para controles sem caixa de texto. */
.gestor-body :is(.form-check-input, input[type="checkbox"], input[type="radio"]):focus {
  border-color: var(--ss-control-focus, var(--ss-action-bg)) !important;
  outline: 3px solid color-mix(in srgb, var(--ss-control-focus, var(--ss-action-bg)) 32%, transparent);
  outline-offset: 2px;
  box-shadow: 0 0 0 2px #fff !important;
}

.gestor-body .ss-switch input:focus + span:first-of-type {
  border-color: var(--ss-control-focus, var(--ss-action-bg));
  outline: 3px solid color-mix(in srgb, var(--ss-control-focus, var(--ss-action-bg)) 32%, transparent);
  outline-offset: 2px;
  box-shadow: 0 0 0 2px #fff;
}

.gestor-body .ss-switch:has(input:focus) .ss-switch-text,
.gestor-body .form-check:has(input:focus) .form-check-label {
  color: var(--ss-control-focus, var(--ss-action-bg));
  font-weight: 700;
}

.gestor-body [data-bs-toggle="collapse"]:focus {
  outline: 3px solid color-mix(in srgb, var(--ss-control-focus, var(--ss-action-bg)) 34%, transparent) !important;
  outline-offset: 2px;
}

.ss-switch-text {
  white-space: nowrap;
}

/* Ícone de ajuda global: "?" que abre um tooltip do Bootstrap (data-bs-toggle="tooltip").
   Use em qualquer label: <span class="ss-help" tabindex="0" data-bs-toggle="tooltip"
   data-bs-placement="top" title="Texto de ajuda">?</span>. O gestor.js já inicializa
   qualquer [data-bs-toggle="tooltip"] da página, então nenhum JS extra é necessário. */
.ss-help {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 14px;
  height: 14px;
  margin-left: .3rem;
  border: 1px solid #cbd5e1;
  border-radius: 50%;
  background: #f1f5f9;
  color: #64748b;
  font-size: .58rem;
  font-weight: 800;
  line-height: 1;
  cursor: help;
  vertical-align: middle;
  user-select: none;
}

.ss-help:hover,
.ss-help:focus-visible {
  background: var(--ss-action-bg, #ea1d2c);
  border-color: var(--ss-action-bg, #ea1d2c);
  color: #fff;
  outline: none;
}

.ss-table-wrap {
  width: 100%;
  overflow: auto;
  border: 1px solid #d9dde6;
  border-radius: 12px;
  background: #fff;
}

.ss-table {
  width: 100%;
  border-collapse: collapse;
  color: #111827;
}

.ss-table th {
  height: 36px;
  padding: 0.45rem 0.5rem;
  background: #f1f1f2;
  border-bottom: 1px solid #d9dde6;
  color: #111827;
  font-size: 0.88rem;
  font-weight: 700;
  text-align: left;
  white-space: nowrap;
}

.ss-table td {
  min-height: 46px;
  padding: 0.45rem 0.5rem;
  border-bottom: 1px solid #d9dde6;
  vertical-align: middle;
}

.ss-table tbody tr:nth-child(even) {
  background: #f0f0f0;
}

.ss-table tbody tr:last-child td {
  border-bottom: 0;
}

.ss-table-empty {
  height: 132px;
  color: #88879a;
  text-align: center;
}

.ss-segment {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
}

.ss-segment button {
  width: 32px;
  height: 29px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid #d6ddeb;
  border-radius: 7px;
  background: #fff;
  color: #4f5c72;
}

.ss-segment button.active {
  background: var(--ss-action-bg);
  border-color: var(--ss-action-bg);
  color: #fff;
}

.avatar-circle {
  width: 32px; height: 32px;
  border-radius: 50%;
  background: var(--ss-primary);
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-weight: 600;
  font-size: 0.9rem;
}

#btnToggleSidebar { display: none; }

/* Content */
.gestor-content {
  flex: 1;
  display: flex;
  min-width: 0;
  min-height: 0;
  overflow: auto;
}

/*
 * Moldura única dos módulos do Gestor, inspirada no painel do sistema legado.
 * PDV, KDS e mapa mantêm seus shells operacionais próprios por dependerem de
 * fullscreen e dimensionamento específico.
 */
.gestor-body .gestor-content:not(.pdv-content):not(.kds-content):not(.roteirizacao-content) {
  box-sizing: border-box;
  padding: var(--ss-workspace-gap) !important;
  background: var(--ss-workspace-frame-bg) !important;
}

.gestor-body .gestor-content:not(.pdv-content):not(.kds-content):not(.roteirizacao-content) > :first-child {
  flex: 1 1 auto;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  min-height: 0;
  border-radius: var(--ss-workspace-radius);
  background: var(--ss-workspace-surface-bg) !important;
}

.gestor-body .gestor-content :is(
  .unidades-lista,
  .produtos-panel,
  .vendas-workspace
) {
  box-shadow: none !important;
}

.gestor-body .gestor-content :is(
  .unidades-lista-toolbar,
  .produtos-panel-toolbar
) {
  background: var(--ss-workspace-surface-bg) !important;
}

/* Padrão único das áreas de cards-listas de Cadastros e Meu Catálogo. */
.gestor-body .gestor-content :is(
  .unidades-lista,
  .unidades-cards,
  .cadastro-cards,
  .catalogo-cards,
  .taxas-entrega-cards,
  .perfis-cards,
  .usuarios-cards,
  .historicos-cards,
  .produtos-panel,
  .produtos-table-wrap,
  .produtos-cards-scroll,
  .integracao-delivery-cards
) {
  background: var(--ss-cards-listas-bg);
}

/* Borda única dos cards de listagem de Cadastros e Meu Catálogo. */
.gestor-body .gestor-content :is(
  .unidades-cards,
  .cadastro-cards,
  .catalogo-cards,
  .taxas-entrega-cards,
  .perfis-cards,
  .usuarios-cards,
  .historicos-cards,
  .historico-categorias-cards,
  .produtos-cards-categorias,
  .produto-categoria-grid,
  .ficha-tecnica-opcoes-grid
) :is(
  .unidade-card,
  .fornecedor-card,
  .catalogo-card,
  .produto-categoria-card,
  .produto-card,
  .taxa-entrega-card,
  .perfil-card,
  .usuario-card,
  .historico-card,
  .historico-categoria-card,
  .ficha-tecnica-item-card
) {
  border-color: var(--ss-cards-listas-border);
}

@media (max-width: 575.98px) {
  .gestor-body .gestor-content:not(.pdv-content):not(.kds-content):not(.roteirizacao-content) {
    --ss-workspace-gap: 8px;
    --ss-workspace-radius: 8px;
  }
}

@media print {
  .gestor-body .gestor-content:not(.pdv-content):not(.kds-content):not(.roteirizacao-content) {
    padding: 0 !important;
    background: #fff !important;
  }

  .gestor-body .gestor-content:not(.pdv-content):not(.kds-content):not(.roteirizacao-content) > :first-child {
    border-radius: 0;
  }
}

/*
 * Estes módulos já possuem uma área interna limitada e rolável. Manter o
 * overflow também em .gestor-content cria dois scrolls e deixa o conteúdo
 * interno aumentar/deslocar o shell quando a lista fica longa.
 */
.gestor-content:has(> .unidades-page:not(.menufiscal-page) > .unidades-lista) {
  overflow: clip;
  overscroll-behavior-y: none;
}

.gestor-content:has(> .unidades-page:not(.menufiscal-page) > .unidades-lista) .unidades-lista,
.gestor-content:has(> .unidades-page:not(.menufiscal-page) > .unidades-lista) .config-standard-body,
.gestor-content:has(> .unidades-page:not(.menufiscal-page) > .unidades-lista) .qr-workspace-body,
.gestor-content:has(> .unidades-page:not(.menufiscal-page) > .unidades-lista) .marketing-single-body,
.gestor-content:has(> .unidades-page:not(.menufiscal-page) > .unidades-lista) .promocoes-workspace-body,
.gestor-content:has(> .unidades-page:not(.menufiscal-page) > .unidades-lista) .cashback-workspace-body {
  overscroll-behavior-y: contain;
}

/* Responsive */
@media (max-width: 991.98px) {
  .gestor-body {
    width: 100%;
    height: 100vh;
    height: 100dvh;
    min-height: 0;
    overflow: clip;
  }
  .gestor-layout,
  .gestor-main {
    width: 100%;
    height: 100%;
    min-height: 0;
    overflow: clip;
  }
  .gestor-sidebar { transform: translateX(-100%); }
  .gestor-sidebar.show { transform: translateX(0); }
  .gestor-main { margin-left: 0; }
  #btnToggleSidebar { display: inline-flex; }

  /* Menu Fiscal tem filtros extensos antes da grade; nele o único scroller é
     o conteúdo do módulo, pois não há altura restante segura para a grade. */
  .gestor-content:has(> .unidades-page.menufiscal-page) {
    overflow: clip;
  }

  .unidades-page.menufiscal-page {
    flex: 1 1 auto;
    height: 100%;
    max-height: 100%;
    min-height: 0;
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior-y: contain;
  }
}

@media (max-width: 575.98px) {
  .gestor-topbar {
    --ss-topbar-mobile-control-size: 36px;
    --ss-topbar-mobile-icon-size: 26px;
    height: 60px;
    padding-inline: 0.65rem;
    gap: 0.5rem;
  }
  .topbar-context { gap: 0.45rem; }
  .topbar-menu-btn,
  .topbar-unidade-chip {
    align-items: center;
    border-radius: 12px;
    display: inline-flex;
    flex: 0 0 var(--ss-topbar-mobile-control-size);
    height: var(--ss-topbar-mobile-control-size);
    justify-content: center;
    max-width: var(--ss-topbar-mobile-control-size);
    min-height: var(--ss-topbar-mobile-control-size);
    min-width: var(--ss-topbar-mobile-control-size);
    padding: 0;
    box-shadow: none;
    width: var(--ss-topbar-mobile-control-size);
  }
  .topbar-menu-btn { font-size: 0.82rem; }
  .topbar-unidade-icon,
  .topbar-unidade-icon img {
    display: inline-flex;
    flex: 0 0 var(--ss-topbar-mobile-icon-size);
    height: var(--ss-topbar-mobile-icon-size);
    max-height: var(--ss-topbar-mobile-icon-size);
    max-width: var(--ss-topbar-mobile-icon-size);
    min-height: var(--ss-topbar-mobile-icon-size);
    min-width: var(--ss-topbar-mobile-icon-size);
    width: var(--ss-topbar-mobile-icon-size);
  }
  .topbar-unidade-text,
  .topbar-unidade-arrow { display: none; }
  .topbar-actions { gap: 0.3rem; }
  .topbar-actions > .dropdown { flex: 0 0 auto; }
  .gestor-body .topbar-action-btn,
  .gestor-body .topbar-profile-btn {
    border-radius: 12px;
    flex: 0 0 var(--ss-topbar-mobile-control-size);
    gap: 0;
    height: var(--ss-topbar-mobile-control-size);
    max-height: var(--ss-topbar-mobile-control-size);
    max-width: var(--ss-topbar-mobile-control-size);
    min-height: var(--ss-topbar-mobile-control-size);
    min-width: var(--ss-topbar-mobile-control-size);
    padding: 0 !important;
    width: var(--ss-topbar-mobile-control-size);
  }
  .gestor-body :is(
    .topbar-print-client-icon,
    .topbar-caixa-icon,
    .topbar-whatsapp-icon,
    .topbar-install-icon,
    .topbar-admin-voltar-icon,
    .topbar-avisos-icon,
    .topbar-relatorios-icon,
    .topbar-profile-avatar
  ) {
    flex: 0 0 var(--ss-topbar-mobile-icon-size) !important;
    font-size: 0.76rem !important;
    height: var(--ss-topbar-mobile-icon-size) !important;
    max-height: var(--ss-topbar-mobile-icon-size) !important;
    max-width: var(--ss-topbar-mobile-icon-size) !important;
    min-height: var(--ss-topbar-mobile-icon-size) !important;
    min-width: var(--ss-topbar-mobile-icon-size) !important;
    width: var(--ss-topbar-mobile-icon-size) !important;
  }
  .gestor-body :is(
    .topbar-print-client-icon,
    .topbar-caixa-icon,
    .topbar-whatsapp-icon,
    .topbar-install-icon,
    .topbar-admin-voltar-icon,
    .topbar-avisos-icon,
    .topbar-relatorios-icon
  ) i,
  .gestor-body .topbar-relatorios-btn .topbar-relatorios-icon i {
    font-size: 0.74rem !important;
    line-height: 1 !important;
  }
  .topbar-profile-btn.dropdown-toggle::after,
  .topbar-relatorios-btn.dropdown-toggle::after {
    display: none;
  }
  .topbar-avisos-badge {
    right: -5px;
    top: -5px;
  }
}

@media (max-width: 400px) {
  .gestor-topbar {
    --ss-topbar-mobile-control-size: 30px;
    --ss-topbar-mobile-icon-size: 22px;
    height: 56px;
    padding-inline: 0.45rem;
    gap: 0.3rem;
  }
  .topbar-context { gap: 0.3rem; }
  .topbar-actions { gap: 0.18rem; }
  .topbar-menu-btn { font-size: 0.75rem; }
}

/* Unidades */
.unidades-page {
  flex: 1;
  display: flex;
  flex-direction: column;
  min-height: 0;
  padding: 1.35rem;
  color: #111827;
}

.unidades-page-head {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1rem;
}

.unidades-title-block {
  flex: 1 1 auto;
  min-width: 0;
}

.unidades-kicker {
  display: block;
  color: var(--cor-unidade, #2d3142);
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  margin-bottom: 0.15rem;
}

.unidades-title-block h1 {
  margin: 0;
  font-size: 1.55rem;
  font-weight: 800;
  letter-spacing: 0;
}

.ss-title-row {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  flex-wrap: wrap;
  min-width: 0;
}

.ss-title-badges {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  flex-wrap: wrap;
  min-width: 0;
}

.ss-title-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.28rem;
  max-width: 260px;
  min-height: 24px;
  padding: 0.2rem 0.5rem;
  border: 1px solid #dfe5ee;
  border-radius: 999px;
  background: #fff;
  color: #475569;
  font-size: .75rem;
  font-weight: 800;
  line-height: 1;
  white-space: nowrap;
}

.ss-title-badge span {
  overflow: hidden;
  text-overflow: ellipsis;
}

.ss-title-badge strong {
  min-width: 0;
  overflow: hidden;
  color: #111827;
  font-weight: 900;
  text-overflow: ellipsis;
}

.unidades-actions {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  flex-wrap: wrap;
  justify-content: flex-end;
}

/* Shell compartilhado dos módulos publicados em Ferramentas. */
.ferramentas-page {
  width: 100%;
}

.ferramentas-filtros,
.ferramentas-panel {
  flex: 0 0 auto;
  border: 1px solid #dfe5ee;
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 10px 28px rgba(15,23,42,0.07);
}

.ferramentas-filtros {
  padding: 0.85rem;
  background: #f8fafc;
}

.ferramentas-resumo-card {
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  background: #fff;
  padding: 0.85rem 1rem;
  box-shadow: 0 8px 22px rgba(15,23,42,0.06);
}

.ferramentas-grade {
  width: 100%;
  min-width: 0;
  border: 1px solid #dfe5ee;
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 10px 28px rgba(15,23,42,0.07);
}

/* Busca global reutilizada pelos módulos do gestor. */
.busca-global-dialog {
  max-width: min(800px, calc(100vw - 16px));
}

.busca-global-body {
  min-height: 0;
}

.busca-global-toolbar {
  margin-bottom: 0.5rem;
}

.busca-global-toolbar .form-label {
  margin-bottom: 0.2rem;
  color: #111827;
  font-size: 0.84rem;
  font-weight: 400;
}

.busca-global-grid {
  --ss-grid-height: 350px;
  --ag-font-size: 0.84rem;
  width: 100%;
  height: 350px;
  min-height: 350px;
  max-height: 350px;
  border: 1px solid #d9e2ef;
  border-radius: 10px;
  overflow: hidden;
}

.busca-global-grid .ag-row {
  cursor: pointer;
}

.busca-global-grid .ag-header-cell-text {
  font-size: 0.82rem;
}

.busca-global-grid .ag-cell {
  font-size: 0.84rem;
}

.busca-global-produto-nome{display:flex;height:100%;min-width:0;align-items:center;gap:7px}
.busca-global-produto-thumb{display:grid;box-sizing:border-box;width:26px;min-width:26px;height:26px;place-items:center;padding:0;overflow:hidden;border:1px solid #d7deea;border-radius:5px;background:#f5f7fa;color:#9aa5b4;font-size:.7rem;line-height:1}
button.busca-global-produto-thumb,
button.busca-global-produto-thumb>img{cursor:zoom-in}
button.busca-global-produto-thumb:hover,button.busca-global-produto-thumb:focus-visible{border-color:#60a5fa;outline:2px solid rgba(59,130,246,.2);outline-offset:1px}
.busca-global-produto-thumb img{display:block;width:100%;height:100%;object-fit:cover}
.busca-global-produto-thumb.is-empty{cursor:default}
.busca-global-produto-texto{display:flex;min-width:0;align-items:center;gap:7px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.busca-global-produto-texto small{flex:0 0 auto;color:#dc3545;font-size:.6rem;font-weight:750}
.busca-global-cliente-nome{display:flex;height:100%;min-width:0;align-items:center;gap:6px;overflow:hidden}
.busca-global-cliente-texto{overflow:hidden;min-width:0;text-overflow:ellipsis;white-space:nowrap}
.busca-global-vinculo-badge{display:inline-flex;flex:0 0 auto;align-items:center;min-height:18px;padding:1px 6px;border:1px solid #bfdbfe;border-radius:999px;background:#eff6ff;color:#1d4ed8;font-size:.62rem;font-weight:800;line-height:1.15;white-space:nowrap}
.busca-global-vinculo-badge.is-fornecedor{border-color:#fde68a;background:#fffbeb;color:#a16207}
.busca-global-vinculo-badge.is-vendedor{border-color:#c4b5fd;background:#f5f3ff;color:#6d28d9}
.busca-global-vinculo-badge.is-transportador,.busca-global-vinculo-badge.is-entregador{border-color:#a7f3d0;background:#ecfdf5;color:#047857}
.busca-global-vinculo-badge.is-ff{border-color:#86efac;background:#dcfce7;color:#15803d}
.busca-global-ultima-compra{display:flex;overflow:hidden;align-items:center;gap:5px;min-width:0;max-width:100%;color:#334155;font-size:.78rem;font-weight:700;white-space:nowrap}
.busca-global-ultima-compra-valor{flex:0 0 auto;white-space:nowrap}
.busca-global-ultima-compra small{overflow:hidden;flex:0 1 auto;min-width:0;color:#8a94a3;font-size:.72rem;font-weight:600;text-overflow:ellipsis;white-space:nowrap}
.busca-global-ultima-compra.is-alta{color:#dc2626}
.busca-global-ultima-compra.is-baixa{color:#16a34a}
.busca-global-ultima-compra.is-estavel{color:#334155}
.busca-global-ultima-compra.is-vazio{color:#94a3b8}
.busca-global-variacao{display:inline-flex;align-items:center;gap:4px;font-size:.78rem;font-weight:700}
.busca-global-variacao.is-alta{color:#dc2626}
.busca-global-variacao.is-baixa{color:#16a34a}
.busca-global-variacao.is-estavel{color:#334155}
.busca-global-variacao.is-vazio{color:#94a3b8}

.busca-global-grid .ag-row.ss-busca-row-focus {
  box-shadow: inset 0 0 0 2px var(--bs-primary);
}

.busca-global-crud-actions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.4rem;
}

.busca-global-crud-actions[hidden] {
  display: none !important;
}

@media (max-width: 575.98px) {
  #modalBuscaGlobal .modal-footer {
    align-items: stretch;
    flex-wrap: wrap;
  }

  .busca-global-crud-actions {
    flex: 1 0 100%;
    margin-right: 0 !important;
  }

  .busca-global-grid {
    --ss-grid-height: 350px;
    height: 350px;
    min-height: 350px;
    max-height: 350px;
  }
}

.unidades-metricas {
  flex: 0 0 auto;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.75rem;
  margin-bottom: 1rem;
}

.clientes-page .unidades-metricas {
  grid-template-columns: repeat(6, minmax(0, 1fr));
}

.unidades-metrica {
  min-height: 76px;
  border: 1px solid #e5e7eb;
  background: #fff;
  border-radius: 8px;
  padding: 0.85rem 1rem;
  box-shadow: 0 8px 22px rgba(15,23,42,0.06);
}

.unidades-metrica span {
  display: block;
  font-size: 0.76rem;
  font-weight: 700;
  color: #64748b;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.unidades-metrica strong {
  display: block;
  margin-top: 0.2rem;
  font-size: 1.55rem;
  line-height: 1;
}

.unidades-lista {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  min-height: 0;
  border: 1px solid #dfe5ee;
  border-radius: 8px;
  box-shadow: 0 10px 28px rgba(15,23,42,0.07);
  overflow: hidden;
}

.unidades-lista-toolbar {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.85rem;
  border-bottom: 1px solid #e7ebf2;
  background: #f8fafc;
}

.unidades-busca {
  position: relative;
  flex: 1 1 320px;
  max-width: 520px;
}

.unidades-busca i {
  position: absolute;
  top: 50%;
  left: 0.7rem;
  transform: translateY(-50%);
  color: #64748b;
  pointer-events: none;
}

.unidades-busca .form-control {
  padding-left: 2rem;
}

.unidades-cards {
  flex: 1 1 auto;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(310px, 1fr));
  grid-auto-rows: max-content;
  gap: 0.85rem;
  align-content: start;
  padding: 0.85rem;
  overflow-y: auto;
}

.unidade-card {
  display: flex;
  flex-direction: column;
  background: #fff;
  border: 1px solid #dfe5ee;
  border-radius: 10px;
  overflow: hidden;
  box-shadow: 0 4px 12px rgba(15,23,42,0.06);
  transition: box-shadow 0.15s ease, transform 0.15s ease;
}

.unidade-card.is-clicavel {
  cursor: pointer;
}

.unidade-card.is-clicavel:hover {
  box-shadow: 0 10px 24px rgba(15,23,42,0.12);
  transform: translateY(-2px);
}

.unidade-card-capa {
  position: relative;
  height: 96px;
  background: linear-gradient(135deg, var(--unidade-cor, #2d3142), #64748b);
}

.unidade-card-capa img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.unidade-card-logo {
  position: absolute;
  left: 0.85rem;
  bottom: -21px;
  width: 52px;
  height: 52px;
  flex: 0 0 52px;
}

.unidade-card-img-editar {
  position: absolute;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 26px;
  height: 26px;
  padding: 0;
  border: none;
  border-radius: 50%;
  background: rgba(255,255,255,0.92);
  color: #334155;
  font-size: .75rem;
  cursor: pointer;
  box-shadow: 0 2px 6px rgba(15,23,42,0.25);
  z-index: 2;
}

.unidade-card-img-editar:hover,
.unidade-card-img-editar:focus {
  background: #fff;
  color: #1d4ed8;
}

.unidade-card-img-editar--capa {
  top: 0.5rem;
  right: 0.5rem;
}

.unidade-card-img-editar--logo {
  width: 22px;
  height: 22px;
  left: calc(0.85rem + 36px);
  bottom: -26px;
  font-size: .75rem;
}

.unidade-card-body {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  padding: 1.7rem 0.85rem 0.6rem;
}

.unidade-card-nome {
  font-size: 0.95rem;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.unidade-card-meta {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  flex-wrap: wrap;
}

.unidade-card-meta small {
  color: #64748b;
  font-size: 0.8rem;
  overflow: hidden;
  text-overflow: ellipsis;
}

.unidade-card-atalhos {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  padding: 0 0.85rem 0.6rem;
}

.unidade-atalho-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  min-height: 30px;
  padding: 0.25rem 0.7rem;
  border: 1px solid #dfe5ee;
  border-radius: 999px;
  background: #f8fafc;
  color: #334155;
  font-size: 0.78rem;
  font-weight: 700;
  white-space: nowrap;
  cursor: pointer;
}

.unidade-atalho-btn--icon {
  min-height: 28px;
  padding: 0.2rem 0.45rem;
}

.unidade-atalho-btn:hover,
.unidade-atalho-btn:focus {
  background: #eef2ff;
  border-color: #c7d2fe;
  color: #3730a3;
}

.unidade-card-foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  margin-top: auto;
  padding: 0.6rem 0.85rem 0.75rem;
  border-top: 1px solid #eef1f6;
}

.unidade-card-foot--actions-only {
  justify-content: flex-end;
}

.unidade-card-horario {
  display: flex;
  align-items: center;
  gap: 0.45rem;
}

.unidade-card-horario > span {
  color: #64748b;
  font-size: 0.78rem;
  font-weight: 700;
}

.unidade-card-acoes {
  display: inline-flex;
  gap: 0.3rem;
}

@media (max-width: 575.98px) {
  .unidades-page {
    flex: 1 1 auto;
    min-height: 0;
    width: 100%;
    overflow: hidden;
  }

  .unidades-lista {
    flex: 1 1 auto;
    min-height: 0;
    overflow: hidden;
  }

  .unidades-cards {
    flex: 1 1 auto;
    grid-auto-rows: max-content;
    align-items: start;
    min-height: 0;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
  }

  .unidade-card {
    align-self: start;
    height: auto;
    min-height: max-content;
  }

  .unidade-card-capa {
    height: 130px;
  }

  .unidade-card-foot {
    flex-wrap: wrap;
    row-gap: 0.5rem;
    padding-bottom: 0.85rem;
  }

  .unidade-card-horario {
    flex-wrap: wrap;
  }

  .unidade-card-acoes {
    margin-left: auto;
  }
}

.unidades-table-wrap {
  width: 100%;
  overflow-x: auto;
}

.unidades-tabs {
  position: sticky;
  top: -22px;
  z-index: 6;
  display: flex;
  flex-wrap: nowrap;
  gap: 0.2rem;
  margin: -22px -20px 0;
  padding: 12px 20px 0;
  overflow-x: auto;
  overflow-y: hidden;
  background: #fff;
  scrollbar-width: thin;
  scrollbar-color: #cbd5e1 transparent;
}

.unidades-tabs[hidden] {
  display: none !important;
}

.unidades-tabs .nav-item {
  flex: 0 0 auto;
}

.unidades-tabs .nav-link {
  min-height: 38px;
  display: inline-flex;
  align-items: center;
  gap: 0.38rem;
  padding-inline: 0.72rem;
  font-size: 0.8rem;
  white-space: nowrap;
}

.unidades-tabs .nav-link i {
  font-size: 0.9rem;
}

.unidades-tab-content {
  padding-top: 1rem;
}

#modalUnidadeCadastro .ss-form-grid {
  grid-template-columns: repeat(12, minmax(0, 1fr));
}

.unidade-tab-intro {
  display: flex;
  align-items: flex-start;
  gap: 0.8rem;
  margin-bottom: 1rem;
  padding: 0.85rem 1rem;
  border: 1px solid #dbe7f5;
  border-radius: 12px;
  background: #f4f8fd;
}

.unidade-tab-intro-icon {
  width: 38px;
  height: 38px;
  flex: 0 0 38px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 10px;
  background: color-mix(in srgb, var(--cor-unidade, #2d3142) 12%, #fff);
  color: var(--cor-unidade, #2d3142);
  font-size: 1.05rem;
}

.unidade-tab-intro > div {
  min-width: 0;
  display: grid;
  gap: 0.18rem;
}

.unidade-tab-intro strong {
  color: #0f172a;
  font-size: 0.92rem;
}

.unidade-tab-intro > div > span {
  color: #64748b;
  font-size: 0.82rem;
  line-height: 1.45;
}

.unidade-config-card {
  margin-bottom: 1rem;
  border-color: #e2e8f0;
  background: #fff;
  box-shadow: 0 8px 22px rgba(15, 23, 42, 0.045);
}

.unidade-config-card:last-child {
  margin-bottom: 0;
}

.unidade-config-card-head {
  display: flex;
  align-items: flex-start;
  gap: 0.7rem;
  margin-bottom: 0.9rem;
}

.unidade-config-card-head > div {
  min-width: 0;
}

.unidade-config-card-head h6,
.unidade-config-card-head p {
  margin: 0;
}

.unidade-config-card-head h6 {
  color: #0f172a;
  font-size: 0.9rem;
  font-weight: 800;
}

.unidade-config-card-head p {
  margin-top: 0.16rem;
  color: #64748b;
  font-size: 0.79rem;
  line-height: 1.4;
}

.unidade-step {
  width: 28px;
  height: 28px;
  flex: 0 0 28px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: var(--ss-step-number-bg);
  color: var(--ss-step-number-color);
  font-size: 0.74rem;
  font-weight: 800;
}

.unidade-avancado-card {
  background: #f8fafc;
}

.unidade-simple-note {
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
  margin-bottom: 0.85rem;
  padding: 0.65rem 0.75rem;
  border-radius: 8px;
  background: #eef6ff;
  color: #475569;
  font-size: 0.78rem;
  line-height: 1.45;
}

.unidade-simple-note > i {
  margin-top: 0.08rem;
  color: #2563eb;
}

.unidade-simple-note--warning {
  border: 1px solid #fde68a;
  background: #fffbeb;
  color: #854d0e;
}

.unidade-simple-note--warning > i {
  color: #d97706;
}

.unidades-inner-grid {
  width: 100%;
}

.unidade-pix-grid {
  margin-top: 0;
}

.unidade-pedido-minimo-grid {
  margin-bottom: 0.85rem;
}

.unidade-plataformas-pagamento-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.65rem;
}

.unidade-plataforma-pagamento-switch {
  min-height: 52px;
  padding: 0.65rem 0.75rem;
  border: 1px solid #dbe3ee;
  border-radius: 9px;
  background: #f8fafc;
}

.unidade-plataforma-pagamento-switch .ss-switch-text {
  display: grid;
  min-width: 0;
  white-space: normal;
}

.unidade-plataforma-pagamento-switch .ss-switch-text strong {
  color: #0f172a;
  font-size: 0.82rem;
}

.unidade-plataforma-pagamento-switch .ss-switch-text small {
  color: #64748b;
  font-size: 0.72rem;
}

@media (max-width: 640px) {
  .unidade-plataformas-pagamento-grid { grid-template-columns: 1fr; }
}

.unidades-pagamentos-grid {
  width: 100%;
  overflow: hidden;
}

.ss-grid-input,
.ss-grid-select {
  width: 100%;
  height: 27px;
  min-height: 27px;
  max-height: 27px;
  padding: 0.16rem 0.32rem;
  font-size: 1rem;
  line-height: 1.25;
}

.ss-grid-input--valor {
  text-align: right;
  font-variant-numeric: tabular-nums;
}

.ss-grid-switch {
  justify-content: center;
  width: 100%;
}

.unidade-ambientes-form {
  align-items: end;
  margin-bottom: 0.65rem;
}

.unidade-add-field {
  align-self: end;
}

.unidade-ambientes-help {
  margin: 0 0 0.65rem;
}

.unidades-ambientes-grid {
  height: 190px;
}

.unidade-atendimentos-cards {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 0.48rem;
}

.unidade-atendimento-card {
  min-width: 0;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  border: 1px solid #dfe6ef;
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 3px 10px rgba(15, 23, 42, 0.055);
  transition: opacity 0.18s ease, filter 0.18s ease, box-shadow 0.18s ease;
}

.unidade-atendimento-card.is-inativo {
  opacity: 0.55;
  filter: saturate(0.35);
  box-shadow: none;
}

.unidade-atendimento-card-head {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 0.6rem;
  padding: 0.62rem 0.7rem;
  border-bottom: 1px solid #eef2f7;
}

.unidade-atendimento-card-icone {
  width: 34px;
  height: 34px;
  flex: 0 0 34px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 9px;
  background: color-mix(in srgb, var(--cor-unidade, #2d3142) 14%, #fff);
  color: var(--cor-unidade, #2d3142);
  font-size: 0.92rem;
}

.unidade-atendimento-card-head > div {
  min-width: 0;
  display: grid;
  gap: 0.08rem;
}

.unidade-atendimento-card-head strong {
  color: #0f172a;
  font-size: 0.86rem;
  font-weight: 800;
}

.unidade-atendimento-card-head small {
  overflow: hidden;
  color: #64748b;
  font-size: 0.72rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.unidade-atendimento-card-campos {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.35rem;
  padding: 0.45rem;
}

.unidade-atendimento-campo {
  min-width: 0;
  display: grid;
  align-content: start;
  gap: 0.28rem;
  padding: 0.42rem 0.48rem;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  background: #f8fafc;
}

.unidade-atendimento-campo > span {
  color: #64748b;
  font-size: 0.7rem;
  font-weight: 800;
}

.unidade-atendimento-campo > span > i {
  width: 0.8rem;
  color: var(--cor-unidade, #2d3142);
  text-align: center;
}

.unidade-atendimento-campo.is-indisponivel strong {
  min-height: 31px;
  display: flex;
  align-items: center;
  color: #94a3b8;
  font-size: 0.75rem;
  font-weight: 600;
}

.unidade-atendimento-controle {
  min-width: 0;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: 0.42rem;
}

.unidade-atendimento-controle .ss-switch {
  margin: 0;
}

.unidade-atendimentos-cards .atendimento-preco-select {
  width: 100%;
  min-width: 0;
  margin: 0;
}

.unidade-atendimento-card-opcoes {
  min-height: 43px;
  display: grid;
  align-content: center;
  gap: 0.25rem;
  margin-top: auto;
  padding: 0.5rem 0.7rem;
  border-top: 1px solid #eef2f7;
  background: #fbfdff;
}

.unidade-atendimento-card-opcoes .ss-switch {
  margin: 0 !important;
}

.unidade-atendimento-opcoes-titulo {
  color: #64748b;
  font-size: 0.7rem;
  font-weight: 800;
}

.unidade-atendimento-opcoes-titulo > i {
  color: var(--cor-unidade, #2d3142);
}

.unidade-atendimento-card-opcoes small {
  color: #94a3b8;
  font-size: 0.72rem;
}

@media (min-width: 992px) {
  .unidade-atendimento-card {
    display: grid;
    grid-template-columns: minmax(160px, 0.75fr) minmax(0, 2.55fr) minmax(145px, 0.7fr);
    align-items: stretch;
  }

  .unidade-atendimento-card-head {
    padding: 0.48rem 0.58rem;
    border-right: 1px solid #eef2f7;
    border-bottom: 0;
  }

  .unidade-atendimento-card-campos {
    align-items: stretch;
  }

  .unidade-atendimento-campo {
    align-content: center;
    min-height: 57px;
    padding: 0.34rem 0.4rem;
  }

  .unidade-atendimento-card-opcoes {
    align-self: stretch;
    margin: 0;
    padding: 0.38rem 0.52rem;
    border-top: 0;
    border-left: 1px solid #eef2f7;
  }
}

.unidade-fiscal-grid {
  gap: 0.85rem 1.35rem;
  align-items: start;
}

.unidade-fiscal-safe-note {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  margin: -0.15rem 0 1rem;
  padding: 0.8rem 0.95rem;
  border: 1px solid #bbf7d0;
  border-radius: 10px;
  background: #f0fdf4;
  color: #166534;
}

.unidade-fiscal-safe-note > i {
  margin-top: 0.05rem;
  font-size: 1.05rem;
}

.unidade-fiscal-safe-note > div {
  display: grid;
  gap: 0.12rem;
}

.unidade-fiscal-safe-note strong {
  font-size: 0.82rem;
}

.unidade-fiscal-safe-note span {
  font-size: 0.77rem;
  line-height: 1.45;
}

.unidade-fiscal-card {
  border-left: 3px solid color-mix(in srgb, var(--cor-unidade, #2d3142) 65%, #fff);
}

.config-page .unidade-config-card {
  border-left: 3px solid color-mix(in srgb, var(--cor-unidade, #2d3142) 65%, #fff);
}

.unidade-test-email {
  align-self: end;
}

.unidade-fiscal-divider {
  margin-top: 0.1rem;
}

.unidade-fiscal-divider .ss-section-title {
  margin-bottom: 0;
}

.unidade-certificado-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(320px, 40%);
  gap: 0.9rem 2rem;
  align-items: start;
}

.unidade-certificado-field,
.unidade-certificado-senha {
  align-self: start;
}

.ss-cep-loading {
  cursor: progress;
}

.unidade-certificado-line {
  min-height: 28px;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.45rem;
  margin-bottom: 0.55rem;
}

.unidade-certificado-line .form-label {
  margin: 0;
}

.certificado-validade-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  max-width: 100%;
  min-height: 24px;
  padding: 0.26rem 0.55rem;
  border: 1px solid #6ee7b7;
  border-radius: 999px;
  background: #d1fae5;
  color: #047857;
  font-size: .75rem;
  font-weight: 700;
  white-space: nowrap;
}

.certificado-validade-badge--alerta {
  border-color: #fde68a;
  background: #fef3c7;
  color: #92400e;
}

.certificado-validade-badge--expirado {
  border-color: #fecaca;
  background: #fee2e2;
  color: #b91c1c;
}

.certificado-validade-badge--indisponivel {
  border-color: #d1d5db;
  background: #f3f4f6;
  color: #4b5563;
}

.certificado-upload {
  position: relative;
  width: 100%;
  max-width: 640px;
}

.certificado-upload-label {
  width: 100%;
  min-height: 64px;
  display: grid;
  grid-template-columns: 40px 1fr auto;
  align-items: center;
  gap: 0.75rem;
  padding: 0.75rem 0.85rem;
  border: 1px dashed #bfc7dc;
  border-radius: 8px;
  background: #f8fafc;
  color: #283044;
  text-align: left;
  cursor: pointer;
}

.certificado-upload-icon {
  width: 34px;
  height: 34px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: #eef2ff;
  color: #665fbe;
}

.certificado-upload-text {
  min-width: 0;
  display: grid;
  gap: 0.12rem;
}

.certificado-upload-text strong {
  font-size: 0.82rem;
}

.certificado-upload-text small {
  color: #6b7280;
  font-size: .75rem;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.certificado-upload-action {
  min-height: 28px;
  padding-inline: 0.7rem;
  background: var(--cor-unidade);
}

.certificado-file-input {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}

.certificado-acoes {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.45rem;
  margin-top: 0.2rem;
}

.certificado-acoes[hidden],
.certificado-upload[hidden],
.certificado-validade-badge[hidden],
.unidade-certificado-remocao[hidden] {
  display: none !important;
}

.unidade-certificado-remocao {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.65rem;
  margin-top: 0.65rem;
  padding: 0.65rem 0.75rem;
  border: 1px solid #fecaca;
  border-radius: 8px;
  background: #fff1f2;
  color: #b91c1c;
  font-size: 0.77rem;
}

.unidade-certificado-remocao span {
  display: inline-flex;
  align-items: flex-start;
  gap: 0.4rem;
}

.unidade-certificado-remocao .btn {
  flex: 0 0 auto;
}

.unidade-fiscal-tabs {
  display: flex;
  margin-top: 0.1rem;
}

.unidade-fiscal-tabs .nav-link {
  min-width: 150px;
  display: inline-flex;
  align-items: baseline;
  justify-content: center;
  gap: 0.35rem;
  font-weight: 800;
}

.unidade-fiscal-tabs .nav-link small {
  color: inherit;
  font-size: 0.67rem;
  font-weight: 500;
  opacity: 0.75;
}

.unidade-fiscal-servicos {
  margin-top: 0.1rem;
}

.unidade-fiscal-tab-content {
  padding-top: 0.85rem;
}

.unidade-fiscal-switch {
  flex: 0 0 auto;
}

.unidade-fiscal-tab-content > .tab-pane {
  padding: 0.9rem;
  border: 1px solid #e2e8f0;
  border-radius: 10px;
  background: #f8fafc;
}

.unidade-fiscal-service-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1rem;
}

.unidade-fiscal-service-head > div {
  min-width: 0;
  display: grid;
  gap: 0.15rem;
}

.unidade-fiscal-service-head strong {
  color: #0f172a;
  font-size: 0.85rem;
}

.unidade-fiscal-service-head > div > span {
  color: #64748b;
  font-size: 0.76rem;
}

.unidade-fiscal-service-grid {
  align-items: end;
}

.unidade-fiscal-status-action {
  align-self: end;
}

.unidade-fiscal-status-action .btn {
  min-height: 31px;
}

.unidade-mesas-form {
  align-items: end;
  margin-bottom: 0.55rem;
}

.unidade-mesas-actions {
  display: inline-flex;
  align-items: end;
  gap: 0.45rem;
}

.unidade-mesas-add .unidade-mesas-help {
  margin: 0.2rem 0 0.75rem;
}

.unidade-avancado {
  margin-top: 0.6rem;
}

.unidade-avancado summary {
  font-size: 0.8rem;
  font-weight: 600;
  color: #64748b;
  cursor: pointer;
}

.unidade-avancado summary:hover {
  color: #334155;
}

.unidade-avancado > .ss-field {
  margin-top: 0.5rem;
  max-width: 320px;
}

.unidade-avancado > .ss-form-grid,
.unidade-avancado > .ss-panel,
.unidade-avancado > .unidades-form-grid {
  margin-top: 0.6rem;
}

.unidade-tab-help {
  margin: 0.2rem 0 0.85rem;
  font-size: 0.83rem;
}

.unidade-horarios-add {
  margin-bottom: 0.75rem;
}

.unidade-mesas-lista {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  margin-top: 0.85rem;
}

.unidade-mesa-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.55rem 0.85rem;
  border: 1px solid #dfe5ee;
  border-radius: 8px;
  background: #fff;
}

.unidade-mesa-item-info {
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
  min-width: 0;
}

.unidade-mesa-item-info strong {
  font-size: 0.9rem;
}

.unidade-mesa-item-info span {
  color: #64748b;
  font-size: 0.8rem;
}

.unidades-horarios-grid {
  --ss-grid-height: 450px;
}

.unidades-grid-actions,
.usuarios-grid-actions {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
  width: 100%;
  min-height: 100%;
}

.unidades-atendimentos-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.75rem;
}

.unidades-atendimento-row {
  display: grid;
  grid-template-columns: 110px repeat(6, minmax(110px, 1fr));
  align-items: center;
  gap: 0.5rem;
  padding: 0.75rem;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  background: #f8fafc;
}

.unidades-atendimento-row strong {
  color: #0f172a;
  font-size: 0.8rem;
}

.unidades-table {
  width: 100%;
  border-collapse: collapse;
  min-width: 980px;
}

.unidades-table th,
.unidades-table td {
  padding: 0.82rem 0.9rem;
  vertical-align: middle;
  border-bottom: 1px solid #edf0f5;
}

.unidades-table th {
  background: #fbfcfe;
  color: #475569;
  font-size: .75rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.unidades-table tbody tr:hover {
  background: #fafcff;
}

.unidades-name-cell {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  min-height: 48px;
  min-width: 250px;
  padding: 3px 0;
}

.unidades-avatar {
  width: 42px;
  height: 42px;
  flex: 0 0 42px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  background: var(--unidade-avatar-cor, var(--cor-unidade, #2d3142));
  color: #fff;
  box-shadow: 0 0 0 3px #fff, 0 7px 16px rgba(15,23,42,0.18);
}

.unidades-avatar img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  border-radius: 50%;
}

.unidades-name-info {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 0.12rem;
}

.unidades-name-info strong {
  max-width: 320px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 0.94rem;
}

.unidades-name-info span {
  display: flex;
  align-items: center;
  gap: 0.35rem;
  flex-wrap: wrap;
}

.unidades-tipo {
  display: inline-flex;
  align-items: center;
  min-height: 20px;
  padding: 0 0.45rem;
  border-radius: 999px;
  background: #e9f7ef;
  color: #166534;
  font-size: .75rem;
  font-weight: 800;
  text-transform: uppercase;
}

.unidades-tipo.is-matriz {
  background: #eef2ff;
  color: #3730a3;
}

.unidades-name-info small,
.unidades-muted {
  color: #64748b;
  font-size: 0.82rem;
}

.unidades-status {
  min-width: 122px;
  min-height: 32px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
  border: 1px solid transparent;
  border-radius: 999px;
  padding: 0.25rem 0.65rem;
  font-size: 0.78rem;
  font-weight: 800;
  white-space: nowrap;
  background: #fff;
  cursor: pointer;
}

.unidades-status:disabled {
  opacity: 0.72;
  cursor: not-allowed;
}

.unidades-status:not(:disabled):hover,
.unidades-status:not(:disabled):focus {
  filter: brightness(0.98);
  box-shadow: 0 0 0 3px rgba(79, 70, 229, 0.08);
}

.unidades-status--success { color: #166534; background: #ecfdf3; border-color: #bbf7d0; }
.unidades-status--warning { color: #92400e; background: #fffbeb; border-color: #fde68a; }
.unidades-status--danger { color: #991b1b; background: #fef2f2; border-color: #fecaca; }
.unidades-status--primary { color: #1d4ed8; background: #eff6ff; border-color: #bfdbfe; }

.cadastro-module-metricas {
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
}

.cadastro-ag-grid {
  flex: 1 1 auto;
  width: 100%;
  --ss-grid-height: 100%;
}

.cadastro-inner-grid {
  width: 100%;
  --ss-grid-height: 360px;
  border: 1px solid #dfe5ee;
  border-radius: 8px;
  overflow: hidden;
}

.cadastro-categorias-grid {
  margin-top: 1rem;
}

.cadastro-categorias-actions {
  display: flex;
  align-items: end;
}

.cadastro-friendly-form .ss-form-grid {
  grid-template-columns: repeat(12, minmax(0, 1fr));
}

.cadastro-friendly-form .unidade-config-card {
  border-color: #e2e8f0;
  background: #fff;
}

.cadastro-cards {
  flex: 1 1 auto;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  grid-auto-rows: max-content;
  gap: 0.85rem;
  align-content: start;
  min-height: 0;
  padding: 0.85rem;
  overflow-y: auto;
}

.catalogo-cards {
  flex: 1 1 auto;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 320px), 1fr));
  grid-auto-rows: max-content;
  gap: 0.85rem;
  align-content: start;
  min-height: 0;
  padding: 0.85rem;
  overflow-y: auto;
}

.catalogo-cards--compact {
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 255px), 1fr));
  gap: 0.65rem;
  padding: 0.65rem;
}

.catalogo-cards.catalogo-categorias-grupos {
  grid-template-columns: minmax(0, 1fr);
  gap: 0.85rem;
  padding: 0.85rem;
}

.cards-lista-novo-cadastro-row {
  display: flex;
  align-items: center;
  justify-content: flex-start;
}

.cards-lista-novo-cadastro {
  min-width: 0;
}

.catalogo-categorias-grupo-grid {
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 255px), 1fr));
}

.catalogo-categorias-grupo-vazio {
  grid-column: 1 / -1;
  min-height: 66px;
}

.catalogo-categoria-cardapios-input-group {
  flex-wrap: nowrap;
  align-items: stretch;
}

.catalogo-categoria-cardapios-control {
  flex: 1 1 auto;
  min-width: 0;
}

.catalogo-categoria-cardapios-control .ss-tags-select-control {
  border-top-right-radius: 0 !important;
  border-bottom-right-radius: 0 !important;
}

.catalogo-categoria-cardapios-input-group > .btn {
  flex: 0 0 30px;
  width: 30px;
  height: var(--ss-control-height);
  min-height: var(--ss-control-height);
  padding: 0;
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
  font-size: 0.72rem;
}

.catalogo-card {
  min-width: 0;
  display: flex;
  flex-direction: column;
  border: 1px solid #dfe5ee;
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 6px 18px rgba(15, 23, 42, 0.06);
  overflow: hidden;
  transition: border-color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease;
}

.catalogo-card.is-clicavel {
  cursor: pointer;
}

.catalogo-card.is-clicavel:hover {
  border-color: color-mix(in srgb, var(--cor-unidade, #2d3142) 35%, #dfe5ee);
  box-shadow: 0 10px 24px rgba(15, 23, 42, 0.1);
  transform: translateY(-1px);
}

.catalogo-card.is-dragging {
  opacity: 0.58;
  box-shadow: 0 12px 28px rgba(15, 23, 42, 0.16);
}

.catalogo-card--compact .catalogo-card-head {
  min-height: 62px;
  gap: 0.55rem;
  padding: 0.6rem 0.65rem;
}

.catalogo-card--compact .catalogo-card-icon {
  width: 36px;
  height: 36px;
  border-radius: 9px;
  font-size: 0.95rem;
}

.catalogo-card--compact .catalogo-card-identidade strong {
  font-size: 0.86rem;
}

.catalogo-card--compact .catalogo-card-identidade span {
  font-size: .75rem;
}

.catalogo-card--compact.catalogo-card--impressora .catalogo-card-head {
  min-height: 86px;
}

.impressora-card-meta {
  display: grid;
  justify-items: start;
  gap: 0.2rem;
  min-width: 0;
  max-width: 100%;
}

.catalogo-card-identidade .impressora-card-meta-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.28rem;
  max-width: 100%;
  min-height: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: #64748b;
  font-size: 0.68rem;
  font-weight: 700;
  line-height: 1.2;
}

.impressora-card-meta-badge i {
  flex: 0 0 auto;
  color: #94a3b8;
  font-size: 0.62rem;
}

.catalogo-card-identidade .impressora-card-meta-badge > span {
  min-width: 0;
  overflow: hidden;
  color: inherit;
  font-size: inherit;
  font-weight: inherit;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.catalogo-card--compact .catalogo-card-badge {
  min-height: 21px;
  padding: 0.1rem 0.4rem;
  font-size: .75rem;
}

.catalogo-card--compact .catalogo-card-foot {
  min-height: 42px;
  justify-content: flex-end;
  padding: 0.42rem 0.65rem;
}

.catalogo-card--compact.catalogo-card--impressora .catalogo-card-foot {
  justify-content: space-between;
}

.impressora-card-vinculos {
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;
  min-width: 0;
}

.impressora-card-vinculo {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  min-width: 0;
  color: #64748b;
  font-size: 0.68rem;
  font-weight: 700;
  white-space: nowrap;
}

.impressora-card-vinculo i {
  color: #94a3b8;
  font-size: 0.64rem;
}

.catalogo-card--categoria .catalogo-card-foot {
  justify-content: space-between;
}

.catalogo-card--compact .catalogo-card-actions .btn,
.catalogo-card--compact .catalogo-card-move {
  width: 30px;
  min-width: 30px;
  height: 28px;
  min-height: 28px;
  padding: 0;
}

.catalogo-card-move {
  cursor: grab;
  touch-action: none;
  user-select: none;
  -webkit-user-select: none;
}

.catalogo-card-move:active {
  cursor: grabbing;
}

.catalogo-card-badge--simple {
  width: max-content;
  min-height: 18px !important;
  padding: 0.05rem 0.35rem !important;
  border-color: #e2e8f0;
  background: #f8fafc;
  font-size: 0.61rem !important;
  font-weight: 700;
}

.catalogo-card-head {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 0.75rem;
  padding: 0.85rem;
  border-bottom: 1px solid #eef2f7;
}

.catalogo-card-icon {
  width: 44px;
  height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 11px;
  background: color-mix(in srgb, var(--cor-unidade, #2d3142) 10%, #fff);
  color: var(--cor-unidade, #2d3142);
  font-size: 1.15rem;
}

.catalogo-card-identidade {
  min-width: 0;
  display: grid;
  gap: 0.2rem;
}

.catalogo-card-identidade strong,
.catalogo-card-identidade span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.catalogo-card-identidade strong {
  color: #0f172a;
  font-size: 0.94rem;
  font-weight: 800;
}

.catalogo-card-identidade span {
  color: #64748b;
  font-size: 0.75rem;
}

.catalogo-card-badge {
  min-height: 24px;
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  padding: 0.15rem 0.5rem;
  border: 1px solid #dbeafe;
  border-radius: 999px;
  background: #eff6ff;
  color: #1d4ed8;
  font-size: .75rem;
  font-weight: 800;
  white-space: nowrap;
}

.catalogo-card-badge.is-muted {
  border-color: #e2e8f0;
  background: #f8fafc;
  color: #64748b;
}

.catalogo-card-badge.is-success {
  border-color: #bbf7d0;
  background: #f0fdf4;
  color: #15803d;
}

.catalogo-card-badge.is-danger {
  border-color: #fecaca;
  background: #fef2f2;
  color: #b91c1c;
}

.catalogo-card-body {
  display: grid;
  gap: 0.7rem;
  padding: 0.8rem 0.85rem;
}

.catalogo-card-descricao {
  min-height: 2.55em;
  margin: 0;
  color: #64748b;
  font-size: 0.76rem;
  line-height: 1.4;
}

.catalogo-card-metricas {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.5rem;
}

.catalogo-card-metrica {
  min-width: 0;
  display: grid;
  gap: 0.12rem;
  padding: 0.55rem 0.6rem;
  border: 1px solid #e7ebf2;
  border-radius: 9px;
  background: #fbfcfe;
}

.catalogo-card-metrica span {
  overflow: hidden;
  color: #64748b;
  font-size: .75rem;
  font-weight: 700;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.catalogo-card-metrica strong {
  overflow: hidden;
  color: #172033;
  font-size: 0.82rem;
  font-weight: 800;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.catalogo-card-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
}

.catalogo-card-foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.65rem;
  margin-top: auto;
  padding: 0.65rem 0.85rem;
  border-top: 1px solid #eef2f7;
  background: #fbfcfe;
}

.catalogo-card-foot small {
  color: #64748b;
  font-size: .75rem;
}

.catalogo-card-actions {
  flex: 0 0 auto;
  display: inline-flex;
  gap: 0.35rem;
}

.catalogo-cards-vazio {
  grid-column: 1 / -1;
}

.catalogo-friendly-form .modal-body {
  display: grid;
  grid-auto-rows: max-content;
  align-content: start;
  align-items: start;
  gap: 1rem;
}

.catalogo-friendly-form .unidade-tab-intro {
  margin-bottom: 0;
}

.catalogo-friendly-form .unidade-config-card {
  margin: 0;
  border-color: #e2e8f0;
  background: #fff;
}

.catalogo-friendly-form .tab-pane > .unidade-config-card {
  margin-top: 0.85rem;
}

.fornecedor-card {
  min-width: 0;
  display: flex;
  flex-direction: column;
  border: 1px solid #dfe5ee;
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 6px 18px rgba(15, 23, 42, 0.06);
  overflow: hidden;
}

.fornecedor-card-head {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 0.75rem;
  padding: 0.85rem;
  border-bottom: 1px solid #eef2f7;
}

.fornecedor-card .cadastro-lista-foto {
  position: relative;
  width: 58px;
  height: 58px;
  border-radius: 50%;
}

.fornecedor-card-foto-editar {
  position: absolute;
  right: 2px;
  bottom: 2px;
  width: 22px;
  height: 22px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.94);
  color: #334155;
  font-size: .75rem;
  line-height: 1;
  box-shadow: 0 2px 6px rgba(15, 23, 42, 0.25);
  pointer-events: none;
}

.fornecedor-card-identidade {
  min-width: 0;
  display: grid;
  gap: 0.2rem;
}

.fornecedor-card-identidade strong,
.fornecedor-card-identidade span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.fornecedor-card-identidade strong {
  color: #0f172a;
  font-size: 0.94rem;
  font-weight: 800;
}

.fornecedor-card-identidade span {
  color: #64748b;
  font-size: 0.76rem;
}

.fornecedor-card-identidade span i {
  margin-right: 0.18rem;
  color: #16a34a;
}

.fornecedor-card-body {
  display: grid;
  gap: 0.7rem;
  padding: 0.8rem 0.85rem;
}

.fornecedor-card-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 0.28rem;
}

.fornecedor-card-tags > span {
  min-height: 22px;
  display: inline-flex;
  align-items: center;
  padding: 0.1rem 0.4rem;
  border: 1px solid #dbeafe;
  border-radius: 999px;
  background: #eff6ff;
  color: #1d4ed8;
  font-size: .68rem;
  font-weight: 800;
}

.fornecedor-card-tags > span.is-muted {
  border-color: #e2e8f0;
  background: #f8fafc;
  color: #64748b;
}

.fornecedor-card-unidades {
  min-width: 0;
  display: flex;
  align-items: flex-start;
  gap: 0.45rem;
  color: #475569;
  font-size: 0.76rem;
  line-height: 1.4;
}

.fornecedor-card-unidades i {
  flex: 0 0 auto;
  color: var(--cor-unidade, #2d3142);
}

.fornecedor-card-foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.65rem;
  margin-top: auto;
  padding: 0.65rem 0.85rem;
  border-top: 1px solid #eef2f7;
  background: #fbfcfe;
}

.fornecedor-card-foot small {
  color: #64748b;
  font-size: .75rem;
}

.fornecedor-card-actions {
  flex: 0 0 auto;
  display: inline-flex;
  gap: 0.35rem;
}

.fornecedor-cards-vazio {
  grid-column: 1 / -1;
}

.cadastro-tags {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  flex-wrap: wrap;
}

.cadastro-tags span {
  display: inline-flex;
  align-items: center;
  min-height: 22px;
  padding: 0.1rem 0.45rem;
  border: 1px solid #dbe3ef;
  border-radius: 999px;
  background: #f8fafc;
  color: #334155;
  font-size: .75rem;
  font-weight: 700;
}

.cadastro-grid-switch {
  justify-content: center;
  width: 100%;
}

.cadastro-lista-foto {
  display: inline-grid;
  width: 38px;
  height: 38px;
  place-items: center;
  padding: 0;
  overflow: hidden;
  border: 1px solid #d7deea;
  border-radius: 6px;
  background: #f8fafc;
  vertical-align: middle;
}

button.cadastro-lista-foto {
  cursor: pointer;
}

button.cadastro-lista-foto:hover {
  border-color: var(--ss-primary, #4f46e5);
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--ss-primary, #4f46e5) 18%, transparent);
}

.cadastro-lista-foto img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.cadastro-switch-field {
  min-height: 31px;
}

.fornecedor-geral-form {
  display: grid;
  gap: 1rem;
}

.fornecedor-identidade-layout {
  display: grid;
  grid-template-columns: 150px minmax(0, 1fr);
  gap: 1rem;
  align-items: start;
}

.fornecedor-foto-field .form-label {
  display: block;
}

.fornecedor-foto-preview {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 120px;
  height: 120px;
  margin: 0 auto 0.35rem;
  padding: 0;
  overflow: hidden;
  border: 2px dashed #dfe1e6;
  border-radius: 8px;
  background: #fff;
  color: #9b96aa;
}

.fornecedor-foto-field {
  text-align: center;
}

.fornecedor-foto-field > small {
  display: block;
}

.fornecedor-foto-preview img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.fornecedor-foto-preview i {
  position: absolute;
  font-size: 2rem;
}

.fornecedor-foto-preview img:not([hidden]) + i {
  width: 34px;
  height: 34px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: rgba(17, 24, 39, 0.58);
  color: #fff;
  font-size: 1rem;
}

.fornecedor-status-principal {
  margin-top: 0.8rem;
  min-height: 31px;
}

.fornecedor-comissoes-details {
  margin-top: 0.9rem;
  padding-top: 0.75rem;
  border-top: 1px solid #eef2f7;
}

.fornecedor-comissoes-details .unidade-simple-note {
  margin-top: 0.75rem;
}

.fornecedor-perfis-grid,
.fornecedor-comissoes-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 0.75rem;
}

.fornecedor-contato-grid {
  padding-top: 0.25rem;
}

.taxas-entrega-lista {
  overflow: hidden;
}

.produtos-panel-toolbar.taxas-entrega-toolbar {
  align-items: center;
  justify-content: flex-start;
  flex-direction: row;
  flex-wrap: nowrap;
}

.taxas-entrega-toolbar .produtos-busca {
  flex: 0 1 520px;
  min-width: 210px;
  width: min(100%, 520px);
}

.taxas-raio-filtro {
  min-height: 32px;
  display: inline-flex;
  align-items: center;
  flex: 0 0 auto;
  gap: 0.35rem;
  margin: 0;
  padding: 0.18rem 0.42rem;
  border: 1px solid #dbe3ed;
  border-radius: 8px;
  background: #f8fafc;
  color: #64748b;
  font-size: 0.7rem;
  font-weight: 800;
  white-space: nowrap;
}

.taxas-raio-filtro > i {
  color: var(--cor-unidade, #2d3142);
}

.taxas-raio-filtro .form-control {
  width: 66px;
  min-height: 25px;
  height: 25px;
  padding: 0.12rem 0.3rem;
  border-color: #dbe3ed;
  font-size: 0.7rem;
  text-align: center;
}

.taxas-raio-contador {
  flex: 0 0 auto;
  color: #64748b;
  font-size: 0.7rem;
  font-weight: 800;
  white-space: nowrap;
}

.taxas-tipo-frete {
  min-width: 0;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  flex: 0 0 auto;
  gap: 0.7rem;
  margin: 0;
  padding: 0;
  border: 0;
  color: #334155;
  white-space: nowrap;
}

.taxas-tipo-frete legend {
  width: auto;
  margin: 0;
  color: #64748b;
  font-size: .75rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.035em;
}

.taxas-tipo-frete label {
  display: inline-flex;
  align-items: center;
  gap: 0.28rem;
  margin: 0;
  font-size: 0.78rem;
  font-weight: 700;
  cursor: pointer;
}

.taxas-tipo-frete input {
  width: 0.95rem;
  height: 0.95rem;
  margin: 0;
  accent-color: var(--cor-unidade, #2d3142);
}

.taxas-tipo-frete input:disabled,
.taxas-tipo-frete input:disabled + span {
  cursor: not-allowed;
  opacity: 0.62;
}

.taxas-massa-aviso {
  width: fit-content;
  max-width: 100%;
  display: inline-flex;
  align-items: flex-start;
  gap: 0.45rem;
  margin-bottom: 0.75rem;
  padding: 0.42rem 0.7rem;
  border: 1px solid #bfdbfe;
  border-radius: 999px;
  background: #eff6ff;
  color: #1d4ed8;
  font-size: 0.74rem;
  font-weight: 750;
  line-height: 1.35;
  white-space: normal;
}

.taxas-massa-aviso i {
  flex: 0 0 auto;
  margin-top: 0.12rem;
}

.taxas-massa-aviso span {
  min-width: 0;
  overflow-wrap: anywhere;
}

.taxas-massa-campos {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.75rem;
}

.taxas-massa-confirmacao[hidden],
.taxas-massa-campos[hidden] {
  display: none;
}

.taxas-massa-resumo {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  margin-bottom: 0.65rem;
  color: #334155;
}

.taxas-massa-resumo strong {
  color: #0f172a;
  font-size: 0.9rem;
}

.taxas-massa-resumo span {
  font-size: 0.78rem;
}

.taxas-massa-tabela-wrap {
  max-height: min(52vh, 440px);
  border: 1px solid #dbe3ee;
  border-radius: 0.7rem;
}

.taxas-massa-tabela {
  min-width: 620px;
  margin: 0;
}

.taxas-massa-tabela thead th {
  position: sticky;
  top: 0;
  z-index: 1;
  padding: 0.58rem 0.7rem;
  border-bottom-color: #cbd5e1;
  background: #f1f5f9;
  color: #475569;
  font-size: 0.72rem;
  font-weight: 800;
  text-transform: uppercase;
}

.taxas-massa-tabela tbody td {
  padding: 0.55rem 0.7rem;
  color: #334155;
  font-size: 0.8rem;
}

.taxas-massa-bairro {
  color: #0f172a !important;
  font-weight: 800;
}

.taxas-massa-novo-valor {
  color: #15803d !important;
  font-weight: 800;
}

.taxas-massa-global-raio,
.taxas-massa-global-bloco {
  min-width: 0;
  border: 1px solid #e2e8f0;
  border-radius: 10px;
  background: #fff;
}

.taxas-massa-global-raio {
  display: grid;
  grid-template-columns: minmax(260px, 1fr) auto;
  align-items: center;
  gap: 0.8rem;
  margin-bottom: 0.6rem;
  padding: 0.58rem 0.65rem;
}

.taxas-massa-global-section-copy {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.taxas-massa-global-section-copy > span {
  width: 28px;
  height: 28px;
  flex: 0 0 28px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 8px;
  background: color-mix(in srgb, var(--cor-unidade, #2d3142) 10%, #fff);
  color: var(--cor-unidade, #2d3142);
}

.taxas-massa-global-section-copy > div {
  min-width: 0;
  display: grid;
  gap: 0.08rem;
}

.taxas-massa-global-section-copy strong {
  color: #0f172a;
  font-size: 0.76rem;
  font-weight: 800;
}

.taxas-massa-global-section-copy small {
  color: #64748b;
  font-size: 0.75rem;
  line-height: 1.3;
}

.taxas-massa-global-raio-campos {
  display: grid;
  grid-template-columns: repeat(2, 124px);
  gap: 0.45rem;
}

.taxas-massa-global-raio-campos .ss-field,
.taxas-massa-global-regra .ss-field,
.taxas-massa-global-valor {
  min-width: 0;
  margin: 0;
}

.taxas-massa-global-raio-campos .form-label,
.taxas-massa-global-regra .form-label,
.taxas-massa-global-valor .form-label {
  margin-bottom: 0.16rem;
  color: #475569;
  font-size: 0.62rem;
  font-weight: 850;
}

.taxas-massa-global-km-input {
  position: relative;
}

.taxas-massa-global-km-input .form-control {
  padding-right: 2rem;
}

.taxas-massa-global-km-input > span {
  position: absolute;
  top: 50%;
  right: 0.48rem;
  color: #64748b;
  font-size: 0.65rem;
  font-weight: 800;
  transform: translateY(-50%);
  pointer-events: none;
}

.taxas-massa-global-opcoes {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  align-items: stretch;
  gap: 0.55rem;
}

.taxas-massa-global-bloco {
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

.taxas-massa-global-bloco > header {
  min-height: 70px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: start;
  gap: 0.5rem;
  padding: 0.55rem;
  border-bottom: 1px solid #eef2f7;
  background: #f8fafc;
}

.taxas-massa-global-incluir {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  margin: 0;
  color: #475569;
  font-size: 0.75rem;
  font-weight: 700;
  cursor: pointer;
  white-space: nowrap;
}

.taxas-massa-global-incluir input {
  width: 0.92rem;
  height: 0.92rem;
  margin: 0;
  accent-color: var(--cor-unidade, #2d3142);
}

.taxas-massa-global-bloco-body,
.taxas-massa-global-regra {
  display: grid;
  align-items: end;
  gap: 0.5rem;
  padding: 0.58rem;
}

.taxas-massa-global-bloco-body {
  grid-template-columns: auto minmax(0, 1fr);
}

.taxas-massa-global-regra {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.taxas-massa-global-regra > .taxas-massa-global-switch {
  grid-column: 1 / -1;
}

.taxas-massa-global-switch {
  align-self: center;
  min-height: 28px;
  margin: 0;
  white-space: nowrap;
}

.taxas-massa-global-bloco .promocoes-input-prefix,
.taxas-massa-global-bloco .promocoes-input-suffix {
  width: 100%;
}

.taxas-massa-global-explicacao {
  display: flex;
  align-items: flex-start;
  gap: 0.35rem;
  margin: auto 0.58rem 0.58rem;
  padding: 0.4rem 0.45rem;
  border-radius: 7px;
  background: #eef6ff;
  color: #1d4ed8;
  font-size: 0.62rem;
  font-weight: 700;
  line-height: 1.35;
}

.taxas-massa-global-explicacao i {
  margin-top: 0.1rem;
}

.taxas-massa-global-bloco.is-disabled > :not(header),
.taxas-massa-global-bloco.is-disabled > header .taxas-massa-global-section-copy {
  opacity: 0.48;
}

.taxas-massa-global-bloco input:disabled,
.taxas-massa-global-bloco .form-control:disabled {
  cursor: not-allowed;
}

.taxas-massa-global-tabela {
  min-width: 900px;
}

.taxas-massa-global-tabela tbody td:nth-child(n + 3) {
  min-width: 180px;
  font-size: 0.72rem;
}

@media (max-width: 991.98px) {
  .taxas-massa-global-opcoes {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .taxas-massa-global-bloco:last-child {
    grid-column: 1 / -1;
  }
}

@media (max-width: 767.98px) {
  .taxas-massa-global-raio {
    grid-template-columns: 1fr;
  }

  .taxas-massa-global-raio-campos {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .taxas-massa-global-opcoes {
    grid-template-columns: 1fr;
  }

  .taxas-massa-global-bloco:last-child {
    grid-column: auto;
  }
}

.taxas-entrega-workspace {
  flex: 1 1 auto;
  min-width: 0;
  min-height: 0;
  overflow: hidden;
}

.taxas-entrega-list-pane {
  width: 100%;
  height: 100%;
  min-width: 0;
  min-height: 0;
  overflow-y: auto;
  background: #f8fafc;
  -webkit-overflow-scrolling: touch;
}

.taxa-entrega-editor-topo:empty {
  display: none;
}

.taxa-entrega-editor-topo {
  padding: 0.75rem 0.75rem 0;
  background: #f8fafc;
}

.taxa-inline-editor {
  width: 100%;
  overflow: hidden;
  border: 1px solid #cbd5e1;
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 8px 22px rgba(15, 23, 42, 0.1);
}

.taxa-inline-editor[hidden] {
  display: none !important;
}

.taxa-inline-editor-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.7rem 0.8rem;
  border-bottom: 1px solid #dfe5ee;
  background: #f8fafc;
}

.taxa-inline-editor-head > div {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 0.6rem;
}

.taxa-inline-editor-head > div > i {
  width: 32px;
  height: 32px;
  flex: 0 0 32px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 8px;
  background: var(--cor-unidade, #2d3142);
  color: #fff;
}

.taxa-inline-editor-head span {
  min-width: 0;
  display: grid;
  gap: 0.08rem;
}

.taxa-inline-editor-head strong {
  color: #0f172a;
  font-size: 0.86rem;
}

.taxa-inline-editor-head small {
  color: #64748b;
  font-size: 0.7rem;
}

.taxa-inline-editor-body {
  padding: 0.8rem;
}

.taxa-inline-editor-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 0.5rem;
  padding: 0.65rem 0.8rem;
  border-top: 1px solid #dfe5ee;
  background: #f8fafc;
}

.taxa-inline-editor .taxa-editor-layout {
  grid-template-columns: minmax(0, 1fr);
  align-items: start;
}

.taxa-config-unificada-grid {
  display: grid;
  grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
  align-items: start;
  gap: 0.85rem;
}

.taxa-config-unificada-grid .taxa-nome-local {
  margin-top: 0;
}

.taxa-config-unificada-grid .taxa-raio-origem {
  margin-top: 0.75rem;
}

@media (max-width: 767.98px) {
  .taxa-inline-editor .taxa-editor-layout {
    grid-template-columns: 1fr;
  }

  .taxa-config-unificada-grid {
    grid-template-columns: 1fr;
  }
}

.taxas-entrega-cards {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  grid-auto-rows: max-content;
  gap: 0.7rem;
  align-content: start;
  align-items: start;
  min-height: 0;
  padding: 0.75rem;
}

.taxas-entrega-mapa-geral-card {
  display: none;
}

.taxa-entrega-card {
  align-self: start;
  height: auto;
  min-height: max-content;
  min-width: 0;
  border-radius: 9px;
  box-shadow: 0 3px 10px rgba(15, 23, 42, 0.055);
}

.taxa-entrega-card.is-editando {
  display: block;
  padding: 0;
  border-color: var(--taxa-cor, #94a3b8);
}

.taxa-entrega-card.is-editando > :not(.taxa-inline-editor) {
  display: none;
}

.taxa-entrega-card.is-editando > .taxa-inline-editor {
  border: 0;
  border-radius: inherit;
  box-shadow: none;
}

.taxa-card-head {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  padding: 0.68rem 0.75rem;
  border-bottom: 1px solid #eef2f7;
}

.taxa-card-icone {
  width: 36px;
  height: 36px;
  flex: 0 0 36px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 10px;
  background: color-mix(in srgb, var(--taxa-cor, var(--cor-unidade, #2d3142)) 14%, #fff);
  color: var(--taxa-cor, var(--cor-unidade, #2d3142));
  font-size: 1rem;
}

.taxa-card-identidade {
  min-width: 0;
  display: grid;
  gap: 0.2rem;
}

.taxa-card-identidade > strong {
  overflow: hidden;
  color: #0f172a;
  font-size: 0.92rem;
  font-weight: 800;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.taxa-card-identidade > span {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 0.35rem;
  color: #64748b;
  font-size: 0.76rem;
}

.taxa-card-identidade > span > i {
  color: var(--taxa-cor, var(--cor-unidade, #2d3142));
}

.taxa-card-identidade > span > span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.taxa-card-metricas {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.4rem;
  padding: 0.62rem 0.75rem;
}

.taxa-card-metrica {
  min-width: 0;
  display: grid;
  gap: 0.18rem;
  padding: 0.45rem 0.5rem;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  background: #f8fafc;
}

.taxa-card-metrica > span {
  color: #64748b;
  font-size: .75rem;
  font-weight: 700;
  white-space: nowrap;
}

.taxa-card-metrica > strong {
  overflow: hidden;
  color: #1e293b;
  font-size: 0.76rem;
  font-variant-numeric: tabular-nums;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.taxa-card-metrica.is-destaque {
  border-color: #bbf7d0;
  background: #f0fdf4;
}

.taxa-card-metrica.is-destaque > strong {
  color: #166534;
}

.taxa-card-foot small {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 0.35rem;
  color: #64748b;
  font-size: .75rem;
}

.taxa-card-foot small span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.taxa-card-foot {
  justify-content: flex-end;
  padding: 0.5rem 0.75rem 0.58rem;
}

.taxa-entrega-card.is-mapa-ativo {
  border-color: color-mix(in srgb, var(--taxa-cor, var(--cor-unidade, #2d3142)) 58%, #fff);
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--taxa-cor, var(--cor-unidade, #2d3142)) 14%, transparent), 0 8px 20px rgba(15, 23, 42, 0.1);
}

@media (min-width: 1200px) {
  .taxas-entrega-workspace {
    display: grid;
    grid-template-columns: minmax(500px, .95fr) minmax(390px, 1.05fr);
  }

  .taxas-entrega-list-pane {
    border-right: 1px solid #dfe5ee;
  }

  .taxas-entrega-cards {
    gap: 0.45rem;
    padding: 0.65rem;
  }

  .taxa-entrega-card {
    display: grid;
    grid-template-columns: minmax(155px, .88fr) minmax(250px, 1.12fr) auto;
    align-items: stretch;
    min-height: 68px;
  }

  .taxa-card-head {
    min-width: 0;
    padding: 0.52rem 0.6rem;
    border-right: 1px solid #eef2f7;
    border-bottom: 0;
  }

  .taxa-card-icone {
    width: 32px;
    height: 32px;
    flex-basis: 32px;
    border-radius: 9px;
    font-size: 0.88rem;
  }

  .taxa-card-identidade > strong {
    font-size: 0.82rem;
  }

  .taxa-card-identidade > span {
    font-size: 0.7rem;
  }

  .taxa-card-metricas {
    align-items: center;
    gap: 0.3rem;
    padding: 0.46rem;
  }

  .taxa-card-metrica {
    align-content: center;
    min-height: 48px;
    padding: 0.32rem 0.38rem;
    border-radius: 7px;
  }

  .taxa-card-metrica > span,
  .taxa-card-metrica > strong {
    font-size: 0.68rem;
  }

  .taxa-card-foot {
    align-items: center;
    align-self: stretch;
    margin: 0;
    padding: 0.5rem;
    border-top: 0;
    border-left: 1px solid #eef2f7;
  }

  .taxa-card-foot .unidade-card-acoes {
    flex-wrap: nowrap;
  }

  .taxas-entrega-mapa-geral-card {
    --taxas-mapa-ink: #102044;
    min-width: 0;
    min-height: 0;
    display: flex;
    flex-direction: column;
    background: #fff;
  }

  .taxas-entrega-mapa-geral-head {
    min-height: 55px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.65rem 0.75rem;
    border-bottom: 1px solid #dfe5ee;
  }

  .taxas-entrega-mapa-geral-head > div {
    min-width: 0;
    display: grid;
    gap: 0.12rem;
  }

  .taxas-entrega-mapa-geral-head strong {
    color: #0f172a;
    font-size: 0.84rem;
  }

  .taxas-entrega-mapa-geral-head span {
    overflow: hidden;
    color: #64748b;
    font-size: 0.72rem;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .taxas-entrega-mapa-geral-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    flex: 0 0 auto;
    padding: 0.32rem 0.5rem;
    border-radius: 999px;
    background: #eef2ff;
    color: #475569 !important;
    font-weight: 800;
  }

  .taxas-entrega-mapa-geral-wrap {
    position: relative;
    flex: 1 1 auto;
    min-height: 390px;
    overflow: hidden;
    background: var(--ss-light, #f8f9fc);
  }

  .taxas-entrega-mapa-geral {
    position: absolute;
    inset: 0;
    z-index: 1;
  }

  .taxas-entrega-mapa-geral .leaflet-control-zoom a {
    color: var(--taxas-mapa-ink);
  }

  .taxas-entrega-mapa-geral-status {
    height: 25px;
    display: flex;
    flex: 0 0 25px;
    align-items: center;
    padding: 0 11px;
    overflow: hidden;
    border-top: 1px solid #dbe3f0;
    background: #fff;
    color: #475569;
    font-size: 0.75rem;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .taxas-entrega-mapa-geral-status.is-ok {
    color: #166534;
  }

  .taxa-mapa-geral-popup {
    min-width: 200px;
  }

  .taxa-mapa-geral-popup strong {
    color: #0f172a;
    font-size: 0.82rem;
  }

  .taxa-mapa-geral-popup span {
    display: block;
    margin-top: 3px;
    color: #64748b;
    font-size: 0.75rem;
  }

  .taxa-mapa-geral-popup b {
    display: block;
    margin-top: 3px;
    color: #166534;
    font-size: 0.76rem;
  }

}

.taxas-entrega-cards-vazio {
  grid-column: 1 / -1;
}

.perfis-cards-panel {
  overflow: hidden;
}

.perfis-cards {
  flex: 1 1 auto;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 360px), 1fr));
  grid-auto-rows: max-content;
  align-content: start;
  align-items: start;
  gap: 0.7rem;
  min-height: 0;
  padding: 0.75rem;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}

.perfil-card {
  align-self: start;
  height: auto;
  min-width: 0;
  min-height: max-content;
  border-radius: 9px;
  box-shadow: 0 3px 10px rgba(15, 23, 42, 0.055);
}

.perfil-card-head {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  padding: 0.7rem 0.75rem;
  border-bottom: 1px solid #eef2f7;
}

.perfil-card-icone {
  width: 38px;
  height: 38px;
  flex: 0 0 38px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 10px;
  background: color-mix(in srgb, var(--cor-unidade, #2d3142) 12%, #fff);
  color: var(--cor-unidade, #2d3142);
  font-size: 1rem;
}

.perfil-card-identidade {
  min-width: 0;
  display: grid;
  gap: 0.15rem;
}

.perfil-card-identidade strong {
  overflow: hidden;
  color: #0f172a;
  font-size: 0.92rem;
  font-weight: 800;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.perfil-card-identidade span {
  color: #64748b;
  font-size: .75rem;
}

.perfil-card-body {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.45rem;
  padding: 0.65rem 0.75rem;
}

.perfil-card-info {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 0.45rem;
  padding: 0.5rem;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  background: #f8fafc;
}

.perfil-card-info > i {
  flex: 0 0 auto;
  color: var(--cor-unidade, #2d3142);
}

.perfil-card-info > div {
  min-width: 0;
  display: grid;
  gap: 0.1rem;
}

.perfil-card-info span {
  color: #64748b;
  font-size: .75rem;
  font-weight: 700;
}

.perfil-card-info strong {
  overflow: hidden;
  color: #1e293b;
  font-size: .75rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.perfil-card-foot {
  gap: 0.75rem;
  padding: 0.55rem 0.75rem 0.62rem;
}

.perfil-card-toggles {
  display: inline-flex;
  align-items: center;
  gap: 0.8rem;
}

.perfil-card-switch {
  gap: 0.32rem;
  margin: 0;
}

.perfil-card-switch .ss-switch-text {
  color: #475569;
  font-size: 0.7rem;
  font-weight: 700;
}

.perfis-cards-vazio {
  grid-column: 1 / -1;
}

.perfil-editor-intro {
  margin-bottom: 1rem;
}

.perfil-editor-layout {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.9rem;
}

.perfil-config-card {
  min-width: 0;
  margin: 0;
}

.perfil-identificacao-grid,
.perfil-operacao-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.7rem;
}

.perfil-identificacao-grid > .ss-field:only-child {
  grid-column: 1 / -1;
}

.perfil-recursos-card {
  grid-column: 1 / -1;
}

.perfil-switches-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.65rem;
}

.perfil-switches-grid .cadastro-switch-field {
  min-height: 42px;
  margin: 0;
  padding: 0.55rem 0.65rem;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  background: #f8fafc;
}

.perfil-switches-grid .cadastro-switch-field.is-disabled {
  background: #f1f5f9;
  opacity: 0.62;
  cursor: not-allowed;
}

.perfil-fiscal-avisos {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  margin-top: 0.65rem;
}

.perfil-fiscal-avisos span {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.35rem 0.55rem;
  border: 1px solid #fde68a;
  border-radius: 999px;
  background: #fffbeb;
  color: #92400e;
  font-size: .75rem;
  font-weight: 700;
}

.perfil-fiscal-avisos span[hidden] {
  display: none;
}

.perfil-fiscal-divider {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  margin: 0.9rem 0 0.7rem;
  color: #64748b;
  font-size: .75rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.perfil-fiscal-divider::after {
  content: '';
  flex: 1 1 auto;
  height: 1px;
  background: #e2e8f0;
}

.perfil-fiscal-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.7rem;
}

@media (max-width: 991.98px) {
  .perfil-editor-layout {
    grid-template-columns: 1fr;
  }

  .perfil-recursos-card {
    grid-column: auto;
  }

  .perfil-switches-grid,
  .perfil-fiscal-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.taxa-editor-layout {
  display: grid;
  grid-template-columns: minmax(280px, 34%) minmax(0, 1fr);
  gap: 1rem;
}

.taxa-config-card {
  margin: 0;
}

.taxa-nome-local {
  margin-top: 0.75rem;
}

.taxa-bairro-autocomplete {
  min-width: 0;
}

.taxa-bairro-resultados {
  max-height: 238px;
  display: grid;
  gap: 0.2rem;
  margin-top: 0.35rem;
  overflow-y: auto;
  padding: 0.3rem;
  border: 1px solid #cbd5e1;
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 10px 24px rgba(15, 23, 42, 0.12);
}

.taxa-bairro-resultados[hidden] {
  display: none;
}

.taxa-bairro-opcao {
  min-width: 0;
  display: grid;
  gap: 0.12rem;
  padding: 0.48rem 0.55rem;
  border: 0;
  border-radius: 6px;
  background: transparent;
  color: #1e293b;
  text-align: left;
}

.taxa-bairro-opcao:hover,
.taxa-bairro-opcao:focus-visible,
.taxa-bairro-opcao.is-active {
  background: #eef2ff;
  outline: none;
}

.taxa-bairro-opcao strong {
  overflow: hidden;
  color: #0f172a;
  font-size: 0.78rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.taxa-bairro-opcao small {
  color: #64748b;
  font-size: 0.68rem;
}

.taxa-bairro-vazio {
  padding: 0.55rem;
  color: #64748b;
  font-size: 0.74rem;
  text-align: center;
}

.taxa-raio-origem {
  min-height: 76px;
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.8rem;
  border: 1px solid color-mix(in srgb, var(--cor-unidade, #2d3142) 24%, #dbe3ee);
  border-radius: 9px;
  background: color-mix(in srgb, var(--cor-unidade, #2d3142) 6%, #fff);
}

.taxa-raio-origem-icone {
  width: 42px;
  height: 42px;
  flex: 0 0 42px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: var(--cor-unidade, #2d3142);
  color: #fff;
  font-size: 1rem;
}

.taxa-raio-origem > div {
  min-width: 0;
  display: grid;
  gap: 0.2rem;
}

.taxa-raio-origem strong {
  color: #172033;
  font-size: 0.84rem;
}

.taxa-raio-origem span:not(.taxa-raio-origem-icone) {
  color: #64748b;
  font-size: .75rem;
  line-height: 1.35;
}

.taxa-mapa-card {
  min-width: 0;
}

.taxa-localidade-grid,
.taxa-valores-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.7rem;
}

.taxa-valores-grid.is-por-bairro {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.taxa-zerar-campo {
  align-content: end;
  min-height: 31px;
  padding-bottom: 4px;
}

.taxa-mapa-wrap {
  min-width: 0;
}

.taxa-mapa-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-bottom: 0.65rem;
}

.taxa-mapa-canvas {
  width: 100%;
  height: 460px;
  min-height: 460px;
  overflow: hidden;
  border: 1px solid #dbe3f1;
  border-radius: 8px;
  background: #eef3fb;
}

.taxa-entrega-mapa-bairro-label {
  background: rgba(255, 255, 255, 0.96);
  border: 2px solid #dc2626;
  border-radius: 999px;
  box-shadow: 0 8px 18px rgba(15, 23, 42, 0.16);
  color: #b91c1c;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.04em;
  padding: 6px 10px;
  text-transform: uppercase;
}

.taxa-entrega-mapa-bairro-label.leaflet-tooltip-top:before {
  border-top-color: #dc2626;
}

.taxa-entrega-mapa-bairro-label.leaflet-tooltip-bottom:before {
  border-bottom-color: #dc2626;
}

.taxa-entrega-mapa-bairro-label.leaflet-tooltip-left:before {
  border-left-color: #dc2626;
}

.taxa-entrega-mapa-bairro-label.leaflet-tooltip-right:before {
  border-right-color: #dc2626;
}

.taxa-entrega-mapa-origem-label,
.taxa-entrega-mapa-raio-label,
.taxa-entrega-mapa-ajuste-label {
  border-radius: 999px;
  box-shadow: 0 8px 18px rgba(15, 23, 42, 0.16);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.035em;
  padding: 5px 9px;
}

.taxa-entrega-mapa-origem-label {
  background: var(--cor-unidade, #2d3142);
  border: 2px solid #fff;
  color: #fff;
}

.taxa-entrega-mapa-raio-label {
  background: rgba(255, 255, 255, 0.96);
  border: 2px solid var(--cor-unidade, #2d3142);
  color: var(--cor-unidade, #2d3142);
}

.taxa-entrega-mapa-ajuste-label {
  background: #fff7ed;
  border: 2px solid #f97316;
  color: #9a3412;
}

.taxa-mapa-raio-handle-wrap {
  background: transparent;
  border: 0;
}

.taxa-mapa-raio-handle {
  width: 34px;
  height: 34px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 3px solid #fff;
  border-radius: 50%;
  background: #f97316;
  box-shadow: 0 5px 14px rgba(15, 23, 42, 0.3);
  color: #fff;
  cursor: grab;
  font-size: 0.9rem;
}

.taxa-mapa-raio-handle:active {
  cursor: grabbing;
  transform: scale(1.08);
}

.taxa-mapa-legenda {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem 0.9rem;
  margin-top: 0.6rem;
  padding: 0.6rem 0.7rem;
  border: 1px solid #dbe3ee;
  border-radius: 8px;
  background: #f8fafc;
}

.taxa-mapa-legenda[hidden] {
  display: none;
}

.taxa-mapa-legenda span {
  display: inline-flex;
  align-items: center;
  gap: 0.28rem;
  color: #64748b;
  font-size: .75rem;
}

.taxa-mapa-legenda i {
  color: var(--cor-unidade, #2d3142);
}

.taxa-mapa-legenda strong {
  color: #334155;
}

.taxa-mapa-legenda b {
  color: #0f172a;
  font-weight: 800;
}

.taxa-mapa-status {
  margin-top: 0.55rem;
  color: #64748b;
  font-size: 0.76rem;
}

.taxa-mapa-google {
  display: inline-block;
  margin-top: 0.35rem;
  color: #2563eb;
  font-size: 0.76rem;
  font-weight: 700;
}

.taxa-mapa-google[hidden] {
  display: none;
}

@media (max-width: 991.98px) {
  .taxa-editor-layout {
    grid-template-columns: 1fr;
  }

  .taxa-mapa-canvas {
    height: 360px;
    min-height: 360px;
  }
}

/* Cadastro unificado: modo pizza novo (tabelas produtos_pizza_*). */
.produto-pizza-config {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.8rem 1.25rem;
  margin-bottom: 0.9rem;
  padding: 0.75rem 0.9rem;
  border: 1px solid #dfe5ee;
  border-radius: 9px;
  background: #fff;
}

.produto-pizza-regra {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  margin-left: auto;
  font-size: 0.82rem;
  font-weight: 700;
  color: #334155;
}

.produto-pizza-regra select {
  min-width: 180px;
}

.produto-pizza-card {
  margin-bottom: 0.85rem;
  padding: 0.75rem;
  border: 1px solid #d9e0ea;
  border-radius: 9px;
  background: #fff;
}

.produto-pizza-card-head,
.produto-pizza-section-title,
.produto-pizza-categoria-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
}

.produto-pizza-collapsible > summary {
  cursor: pointer;
  list-style: none;
}

.produto-pizza-collapsible > summary::-webkit-details-marker {
  display: none;
}

.produto-pizza-collapsible > summary strong {
  display: block;
  color: #172033;
  font-size: 0.9rem;
  font-weight: 800;
}

.produto-pizza-collapsible > summary small {
  display: block;
  margin-top: 0.15rem;
  color: #64748b;
  font-size: 0.75rem;
  font-weight: 400;
}

.produto-pizza-chevron {
  flex: 0 0 auto;
  transition: transform 0.18s ease;
}

.produto-pizza-collapsible:not([open]) .produto-pizza-chevron {
  transform: rotate(-90deg);
}

.produto-pizza-collapse-body {
  padding-top: 0.65rem;
}

.produto-pizza-card-head,
.produto-pizza-section-title {
  margin-bottom: 0.65rem;
}

.produto-pizza-card h6,
.produto-pizza-section-title h6 {
  margin: 0;
  color: #172033;
  font-size: 0.9rem;
  font-weight: 800;
}

.produto-pizza-card p,
.produto-pizza-section-title p {
  margin: 0.15rem 0 0;
  color: #64748b;
  font-size: 0.75rem;
}

.produto-pizza-categorias {
  display: grid;
  gap: 0.8rem;
}

.produto-pizza-categoria-head {
  justify-content: flex-start;
  gap: 0.4rem;
  margin: -0.75rem -0.75rem 0;
  padding: 0.6rem 0.75rem;
  border-bottom: 1px solid #e2e8f0;
  border-radius: 9px 9px 0 0;
  background: #f7f8fc;
}

.produto-pizza-categoria-head > .form-control {
  flex: 1 1 0;
  width: 100%;
  min-width: 0;
  max-width: none;
  font-weight: 800;
}

.produto-pizza-categoria-controls {
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: flex-end;
  gap: 0.8rem;
  margin-left: auto;
}

.produto-pizza-table-wrap {
  border: 1px solid #e2e8f0;
  border-radius: 7px;
}

.produto-pizza-table {
  min-width: 760px;
  margin: 0;
  font-size: 0.78rem;
}

.produto-pizza-table > :not(caption) > * > * {
  padding: 0.38rem;
  border-color: #e8edf4;
  vertical-align: middle;
}

.produto-pizza-table thead th {
  white-space: nowrap;
  background: #f8fafc;
  color: #64748b;
  font-size: .75rem;
  font-weight: 800;
}

.produto-pizza-table td .form-control {
  min-width: 105px;
}

.produto-pizza-sabores-table td:nth-child(3) .form-control {
  min-width: 180px;
}

.produto-pizza-sabores-table td:nth-child(4) .form-control {
  min-width: 230px;
}

.produto-pizza-drag-col {
  width: 24px;
  color: #94a3b8;
  text-align: center;
}

.produto-pizza-drag-handle {
  display: inline-grid;
  width: 24px;
  height: 30px;
  place-items: center;
  padding: 0;
  border: 0;
  background: transparent;
  color: #94a3b8;
  cursor: grab;
  touch-action: none;
}

.produto-pizza-drag-handle:active {
  cursor: grabbing;
}

[data-pizza-drop-type].is-pizza-dragging {
  opacity: 0.45;
}

tr[data-pizza-drop-type].is-pizza-drag-over > td {
  border-top: 2px solid var(--ss-primary, #4f46e5);
}

.produto-pizza-categoria.is-pizza-drag-over {
  outline: 2px solid var(--ss-primary, #4f46e5);
  outline-offset: 2px;
}

.produto-pizza-money {
  width: 108px;
  text-align: right;
}

.produto-pizza-max {
  width: 92px;
}

.produto-pizza-row-actions {
  display: flex;
  justify-content: flex-end;
  gap: 0.2rem;
  white-space: nowrap;
}

.produto-pizza-icon {
  width: 28px;
  height: 28px;
  padding: 0;
  border: 1px solid #dbe2eb;
  border-radius: 50%;
  background: #fff;
  color: #4f46e5;
}

.produto-pizza-icon:hover:not(:disabled) {
  border-color: #4f46e5;
  background: #eef2ff;
}

.produto-pizza-icon:disabled {
  opacity: 0.35;
}

.produto-pizza-icon--danger {
  color: #dc2626;
}

.produto-pizza-foto {
  display: grid;
  width: 38px;
  height: 38px;
  place-items: center;
  padding: 0;
  overflow: hidden;
  border: 1px solid #dbe2eb;
  border-radius: 6px;
  background: #f8fafc;
  color: #64748b;
}

.produto-pizza-foto img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.produto-pizza-add-row {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  margin-top: 0.65rem;
}

.produto-pizza-add-row .form-control {
  max-width: 220px;
}

.produto-pizza-add-sabor {
  margin-top: 0.6rem;
}

.produto-pizza-empty {
  padding: 1rem !important;
  color: #64748b;
  text-align: center;
}

.produto-pizza-empty--cards {
  margin-bottom: 0.85rem;
  border: 1px dashed #cbd5e1;
  border-radius: 9px;
  background: #f8fafc;
}

.produto-pizza-empty--compact {
  padding: 0.75rem !important;
  border: 1px dashed #cbd5e1;
  border-radius: 8px;
  background: #f8fafc;
}

.produto-pizza-sabores-lista {
  display: grid;
  gap: 0.75rem;
}

.produto-pizza-sabor-card {
  min-width: 0;
  overflow: visible;
  border: 1px solid #dce3ed;
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 4px 14px rgba(15, 23, 42, 0.04);
}

.produto-pizza-sabor-head {
  display: grid;
  grid-template-columns: 28px 44px minmax(180px, 1fr) auto;
  gap: 0.55rem;
  align-items: center;
  padding: 0.7rem;
  border-bottom: 1px solid #e7ebf1;
  border-radius: 10px 10px 0 0;
  background: #f8fafc;
}

.produto-pizza-sabor-head .produto-pizza-foto {
  width: 44px;
  height: 44px;
  border-radius: 9px;
}

.produto-pizza-sabor-title {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 0.2rem;
}

.produto-pizza-sabor-title > span,
.produto-pizza-sabor-descricao > span,
.produto-pizza-precos-grid label > span,
.produto-pizza-ficha-search > span,
.produto-pizza-ficha-add label > span,
.produto-pizza-ficha-qtd-inline label > span,
.produto-pizza-ficha-qtds label > span {
  color: #64748b;
  font-size: .75rem;
  font-weight: 800;
  letter-spacing: 0.025em;
  text-transform: uppercase;
}

.produto-pizza-sabor-title .form-control {
  font-weight: 800;
}

.produto-pizza-sabor-actions {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}

.produto-pizza-sabor-descricao,
.produto-pizza-sabor-precos {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 0.35rem;
  margin: 0;
  padding: 0.7rem 0.8rem 0;
}

.produto-pizza-sabor-precos > b {
  color: #334155;
  font-size: 0.75rem;
}

.produto-pizza-precos-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(132px, 1fr));
  gap: 0.5rem;
}

.produto-pizza-precos-grid label {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 0.25rem;
}

.produto-pizza-precos-grid .produto-pizza-money {
  width: 100%;
  min-width: 0;
}

.produto-pizza-ficha-inline {
  margin: 0.8rem;
  border: 1px solid #d7deea;
  border-radius: 9px;
  background: #fbfdff;
}

.produto-pizza-ficha-inline > summary {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto 18px;
  gap: 0.65rem;
  align-items: center;
  min-height: 54px;
  padding: 0.65rem 0.75rem;
  cursor: pointer;
  list-style: none;
}

.produto-pizza-ficha-inline > summary::-webkit-details-marker {
  display: none;
}

.produto-pizza-ficha-inline > summary > span:first-child {
  display: flex;
  min-width: 0;
  align-items: center;
  gap: 0.6rem;
}

.produto-pizza-ficha-inline > summary > span:first-child > i {
  display: grid;
  flex: 0 0 34px;
  width: 34px;
  height: 34px;
  place-items: center;
  border-radius: 9px;
  background: #eef2ff;
  color: #4f46e5;
  font-size: 1rem;
}

.produto-pizza-ficha-inline > summary strong,
.produto-pizza-ficha-inline > summary small {
  display: block;
}

.produto-pizza-ficha-inline > summary strong {
  color: #172033;
  font-size: 0.82rem;
}

.produto-pizza-ficha-inline > summary small {
  margin-top: 0.12rem;
  color: #64748b;
  font-size: .75rem;
  font-weight: 400;
}

.produto-pizza-ficha-inline:not([open]) .produto-pizza-chevron {
  transform: rotate(-90deg);
}

.produto-pizza-ficha-count {
  padding: 0.28rem 0.55rem;
  border-radius: 999px;
  background: #eef2ff;
  color: #4338ca;
  font-size: .75rem;
  font-weight: 800;
  white-space: nowrap;
}

.produto-pizza-ficha-body {
  padding: 0.75rem;
  border-top: 1px solid #e2e8f0;
}

.produto-pizza-ficha-add,
.produto-pizza-ficha-item {
  display: grid;
  grid-template-columns: minmax(220px, 1fr) minmax(240px, 34%) 104px;
  gap: 0.55rem;
  align-items: end;
}

.produto-pizza-ficha-add {
  margin-bottom: 0.7rem;
}

.produto-pizza-ficha-add label,
.produto-pizza-ficha-add .produto-pizza-ficha-search {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 0.25rem;
  margin: 0;
}

.produto-pizza-ficha-add .produto-pizza-ficha-search {
  width: 100%;
}

.produto-pizza-ficha-qtd-inline,
.produto-pizza-ficha-qtds {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(72px, 1fr));
  gap: 0.45rem;
  width: 100%;
  min-width: 0;
  padding-bottom: 1px;
}

.produto-pizza-ficha-qtd-inline label,
.produto-pizza-ficha-qtds label {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 0.22rem;
  margin: 0;
}

.produto-pizza-ficha-add > .btn {
  width: 100%;
  white-space: nowrap;
}

.produto-pizza-ficha-search {
  position: relative;
}

.produto-pizza-ficha-search-results {
  position: absolute;
  z-index: 1090;
  top: calc(100% + 3px);
  right: 0;
  left: 0;
  max-height: 220px;
  overflow: auto;
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 14px 32px rgba(15, 23, 42, 0.18);
}

.produto-pizza-ficha-search-results:empty {
  display: none;
}

.produto-pizza-ficha-search-results button {
  display: flex;
  width: 100%;
  flex-direction: column;
  gap: 0.05rem;
  padding: 0.55rem 0.65rem;
  border: 0;
  border-bottom: 1px solid #eef2f7;
  background: #fff;
  color: #172033;
  text-align: left;
}

.produto-pizza-ficha-search-results button:hover,
.produto-pizza-ficha-search-results button:focus {
  background: #f1f5f9;
}

.produto-pizza-ficha-search-results button strong { font-size: 0.78rem; }
.produto-pizza-ficha-search-results button small { color: #64748b; font-size: 0.68rem; }

.produto-pizza-ficha-search-empty {
  padding: 0.7rem;
  color: #64748b;
  font-size: 0.75rem;
  font-weight: 700;
}

.produto-pizza-ficha-alert {
  margin: 0 0 0.7rem;
  padding: 0.55rem 0.7rem;
  font-size: 0.75rem;
}

.produto-pizza-ficha-lista {
  display: grid;
  gap: 0.55rem;
}

.produto-pizza-ficha-item {
  padding: 0.65rem;
  border: 1px solid #e1e7ef;
  border-radius: 8px;
  background: #fff;
}

.produto-pizza-ficha-item-head {
  display: flex;
  min-width: 0;
  align-items: center;
  gap: 0.75rem;
  align-self: center;
}

.produto-pizza-ficha-item-head > div {
  display: flex;
  min-width: 0;
  flex-direction: column;
}

.produto-pizza-ficha-item-head strong { color: #172033; font-size: 0.8rem; }
.produto-pizza-ficha-item-head small { color: #64748b; font-size: .75rem; }

.produto-pizza-ficha-qtds {
  margin-top: 0;
}

.produto-pizza-ficha-item > .produto-pizza-icon {
  justify-self: end;
  margin-bottom: 1px;
}

.produto-pizza-ficha-totais {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  margin-top: 0.7rem;
  padding-top: 0.7rem;
  border-top: 1px solid #e2e8f0;
  color: #334155;
  font-size: 0.75rem;
}

.produto-pizza-ficha-totais > div {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 0.4rem;
}

.produto-pizza-ficha-totais span {
  display: flex;
  flex-direction: column;
  padding: 0.35rem 0.55rem;
  border-radius: 7px;
  background: #eef2ff;
  color: #4338ca;
}

.produto-pizza-ficha-totais span small { font-size: .75rem; }
.produto-pizza-ficha-totais span strong { font-size: .75rem; }

@media (max-width: 767.98px) {
  .produto-pizza-ficha-item {
    grid-template-columns: minmax(0, 1fr) 36px;
  }

  .produto-pizza-ficha-item-head {
    grid-column: 1;
  }

  .produto-pizza-ficha-qtds {
    grid-column: 1 / -1;
    grid-row: 2;
  }

  .produto-pizza-ficha-add {
    grid-template-columns: minmax(0, 1fr);
  }

  .produto-pizza-ficha-add .produto-pizza-ficha-search,
  .produto-pizza-ficha-qtd-inline {
    width: 100%;
  }

  .produto-pizza-ficha-add > .btn {
    width: 100%;
  }

  .produto-pizza-config {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.7rem;
  }
  .produto-pizza-regra {
    width: 100%;
    margin-left: 0;
    align-items: stretch;
    flex-direction: column;
  }
  .produto-pizza-regra select { width: 100%; }
  .produto-pizza-section-title {
    align-items: stretch;
    flex-direction: column;
  }
  .produto-pizza-section-title .btn { width: 100%; }
  .produto-pizza-categoria-head {
    align-items: flex-start;
    flex-wrap: wrap;
  }
  .produto-pizza-categoria-head > .form-control {
    flex: 1 1 70%;
  }
  .produto-pizza-categoria-controls {
    margin-left: auto;
  }
  .produto-pizza-sabor-head {
    grid-template-columns: 24px 44px minmax(0, 1fr);
  }
  .produto-pizza-sabor-actions {
    grid-column: 2 / -1;
    justify-content: space-between;
  }
  .produto-pizza-ficha-add {
    grid-template-columns: minmax(0, 1fr);
  }
  .produto-pizza-ficha-add .btn { grid-column: 1 / -1; width: 100%; }
  .produto-pizza-ficha-totais {
    align-items: flex-start;
    flex-direction: column;
  }
  .produto-pizza-ficha-totais > div { justify-content: flex-start; }
  .produto-pizza-table-wrap {
    overflow: visible;
    border: 0;
  }
  .produto-pizza-table,
  .produto-pizza-table tbody {
    display: block;
    width: 100%;
    min-width: 0;
  }
  .produto-pizza-table thead { display: none; }
  .produto-pizza-table tbody tr {
    position: relative;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.55rem;
    margin-bottom: 0.6rem;
    padding: 0.65rem;
    border: 1px solid #e2e8f0;
    border-radius: 9px;
    background: #fff;
  }
  .produto-pizza-table tbody td {
    display: flex;
    min-width: 0;
    flex-direction: column;
    gap: 0.22rem;
    padding: 0 !important;
    border: 0;
  }
  .produto-pizza-table tbody td::before {
    content: attr(data-label);
    color: #64748b;
    font-size: .75rem;
    font-weight: 800;
    letter-spacing: 0.025em;
    text-transform: uppercase;
  }
  .produto-pizza-table tbody td:nth-child(2) {
    grid-column: 1 / -1;
    padding-right: 72px !important;
  }
  .produto-pizza-table tbody .produto-pizza-drag-col {
    position: absolute;
    z-index: 1;
    top: 6px;
    right: 42px;
    width: 28px;
  }
  .produto-pizza-table tbody td:last-child {
    position: absolute;
    z-index: 1;
    top: 8px;
    right: 8px;
    width: 30px;
  }
  .produto-pizza-table tbody .produto-pizza-money,
  .produto-pizza-table tbody .produto-pizza-max,
  .produto-pizza-table tbody td .form-control {
    width: 100%;
    min-width: 0;
  }
  .produto-pizza-table .produto-pizza-empty {
    position: static;
    display: block;
    grid-column: 1 / -1 !important;
    width: 100%;
  }
}

@media (max-width: 479.98px) {
  .produto-pizza-card { padding: 0.6rem; }
  .produto-pizza-categoria-head { margin: -0.6rem -0.6rem 0; padding: 0.55rem 0.6rem; }
  .produto-pizza-categoria-head > .form-control { flex-basis: calc(100% - 36px); }
  .produto-pizza-categoria-controls { width: 100%; justify-content: space-between; }
  .produto-pizza-sabor-head { grid-template-columns: 24px 40px minmax(0, 1fr); padding: 0.6rem; }
  .produto-pizza-sabor-head .produto-pizza-foto { width: 40px; height: 40px; }
  .produto-pizza-sabor-descricao,
  .produto-pizza-sabor-precos { padding: 0.65rem 0.65rem 0; }
  .produto-pizza-precos-grid,
  .produto-pizza-ficha-qtds,
  .produto-pizza-ficha-add { grid-template-columns: 1fr; }
  .produto-pizza-ficha-inline { margin: 0.65rem; }
  .produto-pizza-ficha-inline > summary { grid-template-columns: minmax(0, 1fr) 16px; }
  .produto-pizza-ficha-count { display: none; }
  .produto-pizza-ficha-add .btn { grid-column: auto; }
  .produto-pizza-add-row { align-items: stretch; flex-direction: column; }
  .produto-pizza-add-row .form-control,
  .produto-pizza-add-row .btn { width: 100%; max-width: none; }
  .produto-pizza-table tbody tr { grid-template-columns: 1fr; }
  .produto-pizza-table tbody td:nth-child(2) { grid-column: 1; }
}

/* QR Code e Configurações — mesmo shell visual dos módulos já aprovados. */
.qr-config-page,
.config-page {
  width: 100%;
  min-width: 0;
}

.qr-config-page > .ss-panel,
.config-page .config-card,
.config-page .integration-card,
.config-page .permissao-card {
  border-color: #e2e8f0;
  border-radius: 10px;
  background: #fff;
  box-shadow: none;
}

.qr-config-page .qr-single-panel {
  width: 100%;
  max-width: 900px;
  margin: 0;
}

.qr-config-page .qr-preview-card {
  display: grid;
  grid-template-columns: 220px minmax(0, 1fr);
  align-items: center;
  gap: 1.25rem;
}

.qr-config-page .qr-preview-card > a {
  display: block;
  width: 220px;
  max-width: 100%;
}

.qr-config-page .qr-preview-card img {
  display: block !important;
  width: 220px !important;
  height: 220px !important;
  max-width: 100% !important;
  object-fit: contain !important;
  padding: 0.5rem;
  border: 1px solid #e2e8f0;
  border-radius: 10px;
  background: #fff;
}

.qr-config-page .qr-preview-card h2 {
  margin: 0.55rem 0 0.25rem;
  color: #0f172a;
  font-size: 1rem;
  font-weight: 800;
}

.qr-config-page .qr-preview-card p,
.qr-config-page .qr-public-link {
  font-size: 0.82rem;
  line-height: 1.45;
}

.qr-config-page .qr-praca-section {
  width: 100%;
  margin: 0 0 0.8rem;
  padding: 0.8rem;
}

.qr-config-page .qr-praca-head {
  align-items: center;
  margin-bottom: 0.7rem;
  padding-bottom: 0.55rem;
  border-bottom: 1px solid #e2e8f0;
}

.qr-config-page .qr-praca-head h2 {
  font-size: 0.92rem;
  font-weight: 800;
}

.qr-config-page .qr-mesas-grid {
  display: grid !important;
  grid-template-columns: repeat(auto-fill, minmax(145px, 1fr)) !important;
  gap: 0.65rem !important;
}

.qr-config-page .qr-mesa-card {
  min-width: 0;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: flex-start;
  gap: 0.5rem !important;
  padding: 0.65rem !important;
  border: 1px solid #e2e8f0 !important;
  border-radius: 9px !important;
  background: #f8fafc !important;
  text-align: center;
  overflow: hidden;
}

.qr-config-page .qr-mesa-card strong {
  font-size: 0.78rem;
  font-weight: 800;
}

.qr-config-page .qr-mesa-card img {
  display: block !important;
  width: 112px !important;
  height: 112px !important;
  min-width: 112px !important;
  max-width: 112px !important;
  min-height: 112px !important;
  max-height: 112px !important;
  flex: 0 0 112px !important;
  object-fit: contain !important;
  padding: 0 !important;
  margin: 0 auto !important;
}

.qr-config-page .qr-mesa-card .btn {
  min-height: 27px;
  padding: 0.22rem 0.58rem;
  border-radius: 999px;
  font-size: 0.72rem;
}

.config-page .config-grid {
  width: 100%;
  max-width: 1180px;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.8rem;
  align-items: start;
}

.config-page .config-card {
  min-width: 0;
  margin: 0;
  padding: 0.8rem;
}

.config-page .config-card:nth-child(2),
.config-page .config-card:nth-child(3) {
  grid-row: span 2;
}

.config-page .config-card-head {
  gap: 0.65rem;
  margin-bottom: 0.75rem;
  padding-bottom: 0.6rem;
  border-bottom: 1px solid #e2e8f0;
}

.config-page .config-card-head > span,
.config-page .permissao-icon,
.config-page .integration-logo {
  width: 32px;
  height: 32px;
  flex: 0 0 32px;
  border-radius: 9px;
}

.config-page .config-card-head h2,
.config-page .integration-head h2 {
  margin: 0;
  color: #0f172a;
  font-size: 0.88rem;
  font-weight: 800;
}

.config-page .config-card-head p,
.config-page .integration-head small,
.config-page .integration-card > p {
  font-size: 0.75rem;
  line-height: 1.4;
}

.config-page .config-card label,
.config-page .integration-card label {
  margin: 0;
  color: #475569;
  font-size: 0.76rem;
  font-weight: 700;
}

.config-page .config-switch-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.45rem 0.75rem;
  margin-top: 0.75rem;
}

.config-page .config-switch-grid .form-check {
  min-width: 0;
  min-height: 28px;
  padding: 0.38rem 0.48rem 0.38rem 2.35rem;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  background: #f8fafc;
  font-size: 0.72rem;
}

.config-page .config-dias span {
  width: 42px;
  height: 32px;
  border-radius: 7px;
  font-size: 0.78rem;
}

.config-page .permissoes-cards {
  width: 100%;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 0.65rem;
}

.config-page .permissao-card {
  min-width: 0;
  margin: 0;
  padding: 0.75rem;
}

.config-page .whatsapp-message-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.55rem;
}

.config-page .whatsapp-message-grid label {
  min-width: 0;
  padding: 0.6rem;
  border-radius: 9px;
  background: #f8fafc;
}

.config-page .integracoes-nav {
  width: 100%;
  margin: 0 0 0.7rem;
  padding: 0.3rem;
  border: 1px solid #e2e8f0;
  border-radius: 9px;
  background: #f8fafc;
}

.config-page .integracoes-nav .nav-link {
  min-height: 30px;
  padding: 0.3rem 0.65rem;
  border: 0;
  border-radius: 7px;
  font-size: 0.75rem;
  font-weight: 700;
}

.config-page .integration-card-grid {
  gap: 0.75rem;
}

.config-page .integration-card {
  min-width: 0;
  margin: 0;
  padding: 0.8rem;
}

.config-page .integration-head {
  gap: 0.6rem;
  margin-bottom: 0.7rem;
  padding-bottom: 0.55rem;
  border-bottom: 1px solid #e2e8f0;
}

.config-page .integration-payment-row,
.config-page .integration-payment-row.is-mp-row {
  gap: 0.55rem;
  padding: 0.55rem;
  border-radius: 8px;
  background: #f8fafc;
}

@media (max-width: 991.98px) {
  .config-page .config-grid,
  .config-page .integration-card-grid {
    grid-template-columns: 1fr;
  }

  .config-page .config-card:nth-child(2),
  .config-page .config-card:nth-child(3) {
    grid-row: auto;
  }
}

@media (max-width: 575.98px) {
  .qr-config-page,
  .config-page {
    padding: 0.8rem;
  }

  .qr-config-page .qr-preview-card {
    grid-template-columns: 1fr;
    text-align: center;
  }

  .qr-config-page .qr-preview-card > a,
  .qr-config-page .qr-preview-card img {
    width: 190px !important;
    height: 190px !important;
    margin: 0 auto;
  }

  .qr-config-page .qr-mesas-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 0.5rem !important;
  }

  .qr-config-page .qr-mesa-card img {
    width: 96px !important;
    height: 96px !important;
    min-width: 96px !important;
    max-width: 96px !important;
    min-height: 96px !important;
    max-height: 96px !important;
    flex-basis: 96px !important;
  }

  .config-page .config-switch-grid,
  .config-page .whatsapp-message-grid {
    grid-template-columns: 1fr;
  }

  .config-page .integration-payment-row,
  .config-page .integration-payment-row.is-mp-row {
    grid-template-columns: 1fr;
  }
}

/* Layout compacto de pizzas alinhado ao cadastro clássico do Gestor. */
.produto-pizza-config {
  gap: 0.65rem 0.85rem;
  margin-bottom: 0.8rem;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  font-size: 0.78rem;
}

.produto-pizza-check {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  min-height: 31px;
  margin: 0;
  padding-left: 0;
  white-space: nowrap;
}

.produto-pizza-check .form-check-input,
.produto-pizza-check .form-check-label {
  position: static;
  float: none;
  margin: 0;
}

.produto-pizza-regra {
  gap: 0.4rem;
  margin-left: 0;
  color: #202938;
  font-size: 0.78rem;
  font-weight: 500;
  white-space: nowrap;
}

.produto-pizza-regra select {
  width: auto;
  min-width: 180px;
}

.produto-pizza-card {
  overflow: hidden;
  margin-bottom: 0.55rem;
  padding: 0;
  border-color: #cfd5de;
  border-radius: 6px;
  box-shadow: none;
}

.produto-pizza-card-head,
.produto-pizza-categoria-head {
  min-height: 38px;
  margin: 0;
  padding: 0.48rem 0.65rem;
  border-bottom: 1px solid #dce1e8;
  border-radius: 0;
  background: #f6f7fa;
}

.produto-pizza-card-head > span,
.produto-pizza-categoria-head {
  justify-content: flex-start;
}

.produto-pizza-card-head > span {
  display: inline-flex;
  align-items: center;
  gap: 0.38rem;
}

.produto-pizza-card-head .produto-pizza-chevron,
.produto-pizza-categoria-head .produto-pizza-chevron {
  font-size: .75rem;
}

.produto-pizza-collapsible > summary strong {
  color: #101827;
  font-size: 0.78rem;
}

.produto-pizza-collapse-body {
  padding: 0.5rem 0.55rem 0.55rem;
}

.produto-pizza-table-wrap {
  overflow-x: auto;
  border: 0;
  border-radius: 0;
}

.produto-pizza-table {
  margin: 0 0 0.45rem;
  color: #172033;
  font-size: .75rem;
}

.produto-pizza-table > :not(caption) > * > * {
  padding: 0.2rem 0.28rem;
  border-color: #dfe4ec;
}

.produto-pizza-table thead th {
  padding-top: 0.24rem;
  padding-bottom: 0.24rem;
  background: #fff;
  color: #64748b;
  font-size: .75rem;
  font-weight: 500;
}

.produto-pizza-tamanhos-table {
  width: 100%;
  min-width: 560px;
}

.produto-pizza-tamanhos-table th:nth-child(1),
.produto-pizza-tamanhos-table td:nth-child(1) { width: 30px; }
.produto-pizza-tamanhos-table th:nth-child(3),
.produto-pizza-tamanhos-table td:nth-child(3) { width: 110px; }
.produto-pizza-tamanhos-table th:nth-child(4),
.produto-pizza-tamanhos-table td:nth-child(4) { width: 110px; }
.produto-pizza-tamanhos-table th:nth-child(5),
.produto-pizza-tamanhos-table td:nth-child(5) { width: 36px; }

.produto-pizza-check-col {
  width: 30px;
  text-align: center;
}

.produto-pizza-check-col .form-check-input {
  float: none;
  margin: 0;
}

.produto-pizza-tamanhos-table td:nth-child(2) .form-control {
  max-width: 120px;
}

.produto-pizza-money,
.produto-pizza-max {
  width: 100%;
  min-width: 0;
  text-align: center;
}

.produto-pizza-categorias {
  gap: 0.55rem;
}

.produto-pizza-categoria-head > .form-control {
  flex: 1 1 auto;
  min-width: 90px;
  max-width: 360px;
  height: 28px;
  padding: 0.15rem 0.25rem;
  border: 0;
  background: transparent;
  color: #111827;
  font-size: 0.76rem;
  font-weight: 800;
  text-transform: uppercase;
  box-shadow: none;
}

.produto-pizza-categoria-controls {
  gap: 0.25rem;
  margin-left: auto;
}

.produto-pizza-sabores-table {
  width: 100%;
  min-width: 760px;
  table-layout: auto;
  border-collapse: collapse;
}

.produto-pizza-sabores-table .produto-pizza-drag-col { width: 24px; }
.produto-pizza-sabores-table .produto-pizza-foto-col { width: 46px; text-align: center; }
.produto-pizza-sabores-table .produto-pizza-sabor-nome-col { min-width: 150px; }
.produto-pizza-sabores-table .produto-pizza-sabor-descricao-col { min-width: 190px; }
.produto-pizza-sabores-table .produto-pizza-sabor-preco-col,
.produto-pizza-sabores-table td[data-label$="(R$)"] { width: 124px; min-width: 118px; }
.produto-pizza-sabores-table .produto-pizza-sabor-acoes-col { width: 96px; min-width: 96px; }

.produto-pizza-sabores-table .produto-pizza-foto {
  width: 38px;
  height: 38px;
  margin: 0 auto;
  border-radius: 4px;
  background: #f1f1f1;
}

.produto-pizza-sabores-table .produto-pizza-row-actions {
  justify-content: center;
}

.produto-pizza-sabor-row.is-inactive {
  background: #f1f3f5;
}

.produto-pizza-icon {
  width: 27px;
  height: 27px;
  border-color: #d7e0ec;
  font-size: 0.72rem;
}

.produto-pizza-icon--ficha {
  border-color: #b9d5ff;
  background: #f2f7ff;
  color: #1677ff;
}

.produto-pizza-icon--warning {
  border-color: #f3d28b;
  background: #fffaf0;
  color: #d58a00;
}

.produto-pizza-icon--danger {
  border-color: #ffc5c5;
  background: #fff6f6;
  color: #e11d2e;
}

.produto-pizza-ficha-row > td {
  padding: 0.35rem !important;
  background: #f8fafc;
}

.produto-pizza-ficha-row .produto-pizza-ficha-inline {
  margin: 0;
}

.produto-pizza-add-row {
  margin-top: 0.35rem;
}

.produto-pizza-add-row .form-control {
  max-width: 120px;
}

.produto-pizza-add-row--sabor {
  flex-wrap: wrap;
}

.produto-pizza-add-row--sabor .produto-pizza-novo-sabor-nome { max-width: 170px; }
.produto-pizza-add-row--sabor .produto-pizza-novo-sabor-descricao { max-width: 250px; }
.produto-pizza-add-row--categoria { margin: 0.35rem 0 0.75rem; }
.produto-pizza-add-row--categoria .form-control { max-width: 200px; }

@media (max-width: 767.98px) {
  .produto-pizza-config {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.35rem 0.75rem;
  }

  .produto-pizza-regra {
    grid-column: 1 / -1;
    width: 100%;
    align-items: center;
    flex-direction: row;
  }

  .produto-pizza-regra select {
    flex: 1 1 auto;
    width: 100%;
    min-width: 0;
  }

  .produto-pizza-card-head,
  .produto-pizza-categoria-head {
    margin: 0;
  }

  .produto-pizza-categoria-head {
    align-items: center;
    flex-wrap: nowrap;
  }

  .produto-pizza-categoria-head > .form-control {
    flex-basis: auto;
  }

  .produto-pizza-tamanhos-table tbody .produto-pizza-check-col {
    position: absolute;
    z-index: 1;
    top: 13px;
    right: 49px;
    display: block;
    width: 22px;
  }

  .produto-pizza-tamanhos-table tbody .produto-pizza-check-col::before {
    display: none;
  }

  .produto-pizza-tamanhos-table tbody td:nth-child(2) {
    padding-right: 78px !important;
  }

  .produto-pizza-sabores-table {
    min-width: 0;
  }

  .produto-pizza-sabores-table tbody .produto-pizza-sabor-row {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    min-height: 58px;
    padding-top: 0.65rem;
  }

  .produto-pizza-sabores-table tbody .produto-pizza-sabor-row > td:nth-child(2) {
    grid-column: auto;
    padding: 0 !important;
  }

  .produto-pizza-sabores-table tbody .produto-pizza-drag-col {
    top: 8px;
    right: 8px;
  }

  .produto-pizza-sabores-table tbody .produto-pizza-foto-col {
    position: absolute;
    top: 9px;
    left: 9px;
    width: 40px;
  }

  .produto-pizza-sabores-table tbody .produto-pizza-foto-col::before {
    display: none;
  }

  .produto-pizza-sabores-table tbody .produto-pizza-sabor-nome-col {
    grid-column: 1 / -1;
    min-height: 40px;
    padding-right: 35px !important;
    padding-left: 48px !important;
  }

  .produto-pizza-sabores-table tbody .produto-pizza-sabor-descricao-col,
  .produto-pizza-sabores-table tbody .produto-pizza-sabor-acoes-col {
    grid-column: 1 / -1;
  }

  .produto-pizza-sabores-table tbody .produto-pizza-sabor-acoes-col {
    position: static;
    width: auto;
  }

  .produto-pizza-sabores-table tbody .produto-pizza-sabor-acoes-col .produto-pizza-row-actions {
    justify-content: flex-end;
  }

  .produto-pizza-sabores-table tbody .produto-pizza-ficha-row {
    display: block;
    padding: 0 !important;
  }

  .produto-pizza-sabores-table tbody .produto-pizza-ficha-row > td {
    position: static;
    display: block;
    width: 100%;
  }

  .produto-pizza-sabores-table tbody .produto-pizza-ficha-row > td::before {
    display: none;
  }
}

@media (max-width: 479.98px) {
  .produto-pizza-ficha-qtd-inline,
  .produto-pizza-ficha-qtds { grid-template-columns: repeat(auto-fit, minmax(72px, 1fr)); }

  .produto-pizza-config { grid-template-columns: 1fr; }
  .produto-pizza-regra { grid-column: auto; align-items: stretch; flex-direction: column; }
  .produto-pizza-categoria-head { margin: 0; padding: 0.45rem 0.5rem; }
  .produto-pizza-categoria-head > .form-control { flex-basis: auto; }
  .produto-pizza-categoria-controls { width: auto; }
  .produto-pizza-add-row--sabor,
  .produto-pizza-add-row--categoria { align-items: stretch; flex-direction: column; }
  .produto-pizza-add-row--sabor .form-control,
  .produto-pizza-add-row--categoria .form-control,
  .produto-pizza-add-row--sabor .btn,
  .produto-pizza-add-row--categoria .btn { width: 100%; max-width: none; }
}

@media (max-width: 575.98px) {
  .produtos-panel-toolbar.taxas-entrega-toolbar {
    align-items: stretch;
    flex-direction: column;
  }

  .taxas-entrega-toolbar .produtos-busca {
    min-width: 0;
    max-width: none;
    width: 100%;
  }

  .taxas-raio-filtro {
    width: 100%;
  }

  .taxas-raio-filtro .form-control {
    width: auto;
    min-width: 68px;
    flex: 1 1 auto;
  }

  .taxas-massa-global-raio {
    align-items: stretch;
    flex-direction: column;
  }

  .taxas-massa-global-raio-campos,
  .taxas-massa-global-opcoes,
  .taxas-massa-global-regra {
    grid-template-columns: 1fr;
  }

  .taxas-massa-global-bloco:first-child {
    grid-column: auto;
  }

  .taxas-massa-global-bloco > header {
    align-items: flex-start;
    flex-direction: column;
  }

  .taxas-massa-global-bloco-body {
    grid-template-columns: 1fr;
  }

  .taxas-tipo-frete {
    justify-content: flex-start;
    gap: 0.5rem 0.75rem;
    flex-wrap: wrap;
  }

  .taxas-tipo-frete legend {
    flex-basis: 100%;
  }

  .taxa-localidade-grid {
    grid-template-columns: 1fr;
  }

  .taxa-valores-grid,
  .taxa-valores-grid.is-por-bairro {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .taxas-massa-campos {
    grid-template-columns: 1fr;
  }

  .taxas-entrega-cards {
    grid-template-columns: 1fr;
    grid-auto-rows: max-content;
    align-items: start;
    gap: 0.6rem;
    padding: 0.6rem;
  }

  .taxa-entrega-card {
    align-self: start;
    height: auto;
    min-height: max-content;
  }

  .taxa-card-metricas {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.3rem;
    padding: 0.55rem 0.6rem;
  }

  .taxa-card-metrica {
    padding: 0.4rem 0.32rem;
  }

  .taxa-card-metrica > span {
    font-size: .75rem;
  }

  .taxa-card-metrica > strong {
    font-size: .75rem;
  }

  .taxa-card-foot {
    flex-wrap: nowrap;
    padding: 0.48rem 0.6rem 0.55rem;
  }

  .taxa-card-foot .unidade-card-acoes {
    margin-left: auto;
  }

  .perfis-cards {
    grid-template-columns: 1fr;
    gap: 0.6rem;
    padding: 0.6rem;
  }

  .perfil-card-body {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    padding: 0.55rem 0.6rem;
  }

  .perfil-card-info {
    padding: 0.42rem;
  }

  .perfil-card-foot {
    flex-wrap: nowrap;
    gap: 0.5rem;
    padding: 0.5rem 0.6rem 0.55rem;
  }

  .perfil-card-toggles {
    gap: 0.55rem;
  }

  .perfil-card-foot .unidade-card-acoes {
    margin-left: auto;
  }

  .perfil-identificacao-grid,
  .perfil-operacao-grid {
    grid-template-columns: 1fr;
  }

  .perfil-switches-grid,
  .perfil-fiscal-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .cadastro-friendly-form .modal-body {
    padding: 12px;
  }

  .cadastro-friendly-form .ss-form-grid > .ss-field {
    grid-column: 1 / -1;
  }

  .cadastro-friendly-form .modal-footer {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.55rem;
  }

  .cadastro-friendly-form .modal-footer .btn {
    width: 100%;
    margin: 0;
  }

  .cadastro-cards {
    flex: 1 1 auto;
    grid-template-columns: 1fr;
    grid-auto-rows: max-content;
    align-items: start;
    min-height: 0;
    gap: 0.9rem;
    padding: 0.8rem;
    overflow-y: auto;
    background: #f1f5f9;
    -webkit-overflow-scrolling: touch;
  }

  .fornecedor-card {
    align-self: start;
    height: auto;
    min-height: max-content;
    border-color: #dfe5ee;
    border-radius: 10px;
    box-shadow: 0 4px 12px rgba(15, 23, 42, 0.06);
  }

  .fornecedores-funcionarios-content {
    overflow: hidden;
  }

  .fornecedores-funcionarios-page {
    flex: 1 1 auto;
    min-height: 0;
    overflow: hidden;
  }

  .fornecedores-funcionarios-panel {
    flex: 1 1 auto;
    min-height: 0;
    overflow: hidden;
  }

  .fornecedor-card-head {
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: 0.7rem;
    padding: 0.9rem;
    border-bottom: 0;
  }

  .fornecedor-card-head > .clientes-status {
    grid-column: auto;
    justify-self: end;
    min-width: 0;
    min-height: 30px;
    padding-inline: 0.6rem;
  }

  .fornecedor-card .cadastro-lista-foto {
    width: 64px;
    height: 64px;
    border: 1px solid #dfe5ee;
    box-shadow: none;
  }

  .fornecedor-card-identidade {
    gap: 0.28rem;
  }

  .fornecedor-card-identidade strong {
    font-size: 1rem;
    line-height: 1.2;
  }

  .fornecedor-card-identidade span {
    font-size: 0.82rem;
  }

  .fornecedor-card-body {
    gap: 0.75rem;
    padding: 0.8rem 0.9rem 0.9rem;
    border-top: 1px solid #e2e8f0;
    background: #f8fafc;
  }

  .fornecedor-card-tags {
    gap: 0.4rem;
  }

  .fornecedor-card-tags > span {
    min-height: 28px;
    padding: 0.2rem 0.65rem;
    font-size: 0.76rem;
  }

  .fornecedor-card-unidades {
    align-items: center;
    min-height: 30px;
    padding: 0.4rem 0.55rem;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    background: #fff;
    color: #334155;
    font-size: 0.8rem;
  }

  .fornecedor-identidade-layout {
    grid-template-columns: 1fr;
  }

  .fornecedor-card-foot {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    row-gap: 0.5rem;
    padding: 0.6rem 0.85rem 0.85rem;
    background: #fff;
  }

  .fornecedor-card-foot > small {
    display: block;
  }

  .fornecedor-card-actions {
    display: inline-flex;
    width: auto;
    margin-left: auto;
    gap: 0.3rem;
  }
}

@media (max-width: 767.98px) {
  .fornecedor-perfis-grid,
  .fornecedor-comissoes-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  #modalCadastroCrud .modal-smart-cards--commissions .modal-smart-fields--commissions,
  #modalFornecedorFuncionarioCadastro .modal-smart-cards--commissions .modal-smart-fields--commissions {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  #modalCadastroCrud .modal-smart-cards--commissions .modal-smart-total,
  #modalFornecedorFuncionarioCadastro .modal-smart-cards--commissions .modal-smart-total {
    grid-column: 1 / -1;
  }
}

@media (max-width: 479.98px) {
  .fornecedor-perfis-grid {
    grid-template-columns: 1fr;
  }

  .fornecedor-comissoes-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .fornecedor-comissoes-grid .fornecedor-comissao--comissao {
    grid-column: 1 / -1;
  }
}

@media (max-width: 575.98px) {
  #modalCadastroCrud .fornecedor-tab-fields--credito > .ss-field,
  #modalCadastroCrud .fornecedor-tab-fields--endereco > .fornecedor-field--endereco_cep,
  #modalCadastroCrud .fornecedor-tab-fields--endereco > .fornecedor-field--endereco_numero,
  #modalFornecedorFuncionarioCadastro .fornecedor-tab-fields--credito > .ss-field,
  #modalFornecedorFuncionarioCadastro .fornecedor-tab-fields--endereco > .fornecedor-field--endereco_cep,
  #modalFornecedorFuncionarioCadastro .fornecedor-tab-fields--endereco > .fornecedor-field--endereco_numero {
    grid-column: span 6;
  }
}

.usuarios-ag-grid {
  flex: 1 1 auto;
  width: 100%;
  --ss-grid-height: 100%;
}

.usuarios-cards {
  flex: 1 1 auto;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(310px, 1fr));
  grid-auto-rows: max-content;
  gap: 0.85rem;
  align-content: start;
  min-height: 0;
  padding: 0.85rem;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}

.usuario-card {
  min-width: 0;
}

.usuario-card-head {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.85rem;
  border-bottom: 1px solid #eef2f7;
}

.usuario-card-avatar {
  width: 52px;
  height: 52px;
  flex: 0 0 52px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: var(--cor-unidade, #2d3142);
  color: #fff;
  font-size: 0.9rem;
  font-weight: 800;
}

.usuario-card-identidade {
  min-width: 0;
  display: grid;
  gap: 0.22rem;
}

.usuario-card-identidade > strong {
  overflow: hidden;
  color: #0f172a;
  font-size: 0.95rem;
  font-weight: 800;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.usuario-card-identidade > span {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 0.35rem;
  color: #64748b;
  font-size: 0.78rem;
}

.usuario-card-identidade > span > span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.usuario-card-body {
  display: grid;
  gap: 0.65rem;
  padding: 0.8rem 0.85rem;
}

.usuario-card-permissao {
  width: fit-content;
  min-height: 24px;
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.15rem 0.55rem;
  border: 1px solid #dbeafe;
  border-radius: 999px;
  background: #eff6ff;
  color: #1d4ed8;
  font-size: .75rem;
  font-weight: 800;
}

.usuario-card-permissao.is-master {
  border-color: #bbf7d0;
  background: #ecfdf3;
  color: #166534;
}

.usuario-card-info {
  min-width: 0;
  display: flex;
  align-items: flex-start;
  gap: 0.45rem;
  color: #475569;
  font-size: 0.78rem;
  line-height: 1.4;
}

.usuario-card-info i {
  flex: 0 0 auto;
  color: var(--cor-unidade, #2d3142);
}

.usuario-card-info .fa-whatsapp {
  color: #16a34a;
}

.usuario-card-foot small {
  color: #64748b;
  font-size: .75rem;
}

.usuarios-cards-vazio {
  grid-column: 1 / -1;
}

@media (max-width: 575.98px) {
  .usuarios-cards {
    grid-template-columns: 1fr;
    grid-auto-rows: max-content;
    align-items: start;
    padding: 0.8rem;
  }

  .usuario-card {
    align-self: start;
    height: auto;
    min-height: max-content;
  }

  .usuario-card-foot {
    flex-wrap: wrap;
    row-gap: 0.5rem;
  }

  .usuario-card-foot .unidade-card-acoes {
    margin-left: auto;
  }
}

.historicos-cards {
  flex: 1 1 auto;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  grid-auto-rows: max-content;
  gap: 0.85rem;
  align-content: start;
  min-height: 0;
  padding: 0.85rem;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}

.historico-categoria-grupo > .historico-categoria-grid {
  grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
}

.produto-categoria-card-title > .historico-categoria-grupo-icone.is-receita {
  color: #16a34a;
}

.produto-categoria-card-title > .historico-categoria-grupo-icone.is-despesa {
  color: #dc2626;
}

.historico-card {
  min-width: 0;
  border-radius: 8px;
}

.historico-card-head {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  min-height: 62px;
  padding: 0.55rem 0.65rem;
}

.historico-card-icone {
  width: 36px;
  height: 36px;
  flex: 0 0 36px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid transparent;
  border-radius: 50%;
  font-size: 0.88rem;
}

.historico-card-icone.is-receita {
  border-color: #bbf7d0;
  background: #ecfdf3;
  color: #166534;
}

.historico-card-icone.is-despesa {
  border-color: #fecaca;
  background: #fef2f2;
  color: #991b1b;
}

.historico-card-identidade {
  flex: 1 1 auto;
  min-width: 0;
  display: grid;
  gap: 0.2rem;
}

.historico-card-identidade strong {
  overflow: hidden;
  color: #0f172a;
  font-size: 0.86rem;
  font-weight: 800;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.historico-card-identidade span {
  color: #64748b;
  font-size: .75rem;
  line-height: 1.2;
}

.historico-card-acoes {
  flex: 0 0 auto;
  margin-left: auto;
}

.historico-card-acoes .btn {
  width: 30px;
  min-width: 30px;
  height: 30px;
  min-height: 30px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
}

.historico-card-body {
  display: grid;
  gap: 0.65rem;
  padding: 0.8rem 0.85rem;
}

.historico-card-natureza {
  width: fit-content;
  min-height: 25px;
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.15rem 0.55rem;
  border: 1px solid transparent;
  border-radius: 999px;
  font-size: .75rem;
  font-weight: 800;
}

.historico-card-natureza.is-receita {
  border-color: #bbf7d0;
  background: #ecfdf3;
  color: #166534;
}

.historico-card-natureza.is-despesa {
  border-color: #fecaca;
  background: #fef2f2;
  color: #991b1b;
}

.historico-card-categoria {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 0.45rem;
  color: #475569;
  font-size: 0.8rem;
}

.historico-card-categoria i {
  flex: 0 0 auto;
  color: var(--cor-unidade, #2d3142);
}

.historico-card-categoria span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.historico-card-foot small {
  color: #64748b;
  font-size: .75rem;
}

.historicos-cards-vazio {
  grid-column: 1 / -1;
}

.historico-categorias-modal-content .modal-body {
  display: flex;
  flex-direction: column;
  min-height: 0;
}

.historico-categorias-intro,
.historico-categoria-form-card {
  flex: 0 0 auto;
}

.historico-categoria-form-card {
  margin-bottom: 0.85rem;
}

.historico-categorias-cards {
  flex: 1 1 auto;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  grid-auto-rows: max-content;
  gap: 0.65rem;
  align-content: start;
  min-height: 180px;
  max-height: 420px;
  padding: 0.75rem;
  overflow-y: auto;
  border: 1px solid #dfe5ee;
  border-radius: 8px;
  background: #f8fafc;
  -webkit-overflow-scrolling: touch;
}

.historico-categoria-card {
  min-width: 0;
  min-height: 68px;
  display: flex;
  align-items: center;
  gap: 0.65rem;
  padding: 0.7rem;
  border: 1px solid #dfe5ee;
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 4px 12px rgba(15, 23, 42, 0.05);
}

.historico-categoria-icone {
  width: 38px;
  height: 38px;
  flex: 0 0 38px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: #eef2ff;
  color: #3730a3;
}

.historico-categoria-info {
  min-width: 0;
  display: grid;
  gap: 0.2rem;
}

.historico-categoria-info strong {
  overflow: hidden;
  color: #0f172a;
  font-size: 0.82rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.historico-categoria-tipo {
  width: fit-content;
  color: #1d4ed8;
  font-size: .75rem;
  font-weight: 700;
}

.historico-categoria-tipo.is-padrao {
  color: #64748b;
}

.historico-categoria-acoes {
  flex: 0 0 auto;
  margin-left: auto;
}

@media (max-width: 575.98px) {
  .historicos-cards {
    grid-template-columns: 1fr;
    grid-auto-rows: max-content;
    align-items: start;
    gap: 0.55rem;
    padding: 0.65rem;
  }

  .historico-card {
    align-self: start;
    height: auto;
    min-height: max-content;
  }

  .historico-card-foot {
    flex-wrap: wrap;
    row-gap: 0.5rem;
  }

  .historico-card-foot .unidade-card-acoes {
    margin-left: auto;
  }

  .historico-categorias-modal-content .modal-body {
    padding: 12px;
  }

  .historico-categorias-cards {
    grid-template-columns: 1fr;
    min-height: 0;
    max-height: none;
  }
}

.usuarios-form-section + .usuarios-form-section {
  margin-top: 1.25rem;
  padding-top: 1rem;
  border-top: 1px solid #dfe5ee;
}

.usuarios-form-section-title {
  margin: 0 0 0.85rem;
  color: #111827;
  font-size: 0.82rem;
  font-weight: 800;
}

.usuarios-config-card,
.historico-config-card {
  margin-bottom: 0.85rem;
}

.usuarios-form-section .form-label {
  margin-bottom: 0.25rem;
  color: #111827;
  font-size: 0.82rem;
  font-weight: 500;
}

.usuarios-acessos-cards {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.75rem;
  align-items: start;
}

.usuarios-acesso-card {
  min-width: 0;
  overflow: hidden;
  border: 1px solid #dbe3ee;
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 4px 12px rgba(15, 23, 42, 0.04);
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.usuarios-acesso-card.is-active {
  border-color: #aab8f5;
  box-shadow: 0 5px 14px rgba(18, 35, 190, 0.08);
}

.usuarios-acesso-card-head {
  min-width: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.75rem;
  background: #f8fafc;
  border-bottom: 1px solid #e7edf5;
}

.usuarios-acesso-identidade {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 0.6rem;
}

.usuarios-acesso-icone {
  width: 34px;
  height: 34px;
  flex: 0 0 34px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 9px;
  background: #e8edff;
  color: var(--ss-action-bg, #1223be);
}

.usuarios-acesso-identidade > div {
  min-width: 0;
  display: grid;
  gap: 0.08rem;
}

.usuarios-acesso-identidade small {
  color: #64748b;
  font-size: .75rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.usuarios-acesso-identidade strong {
  overflow: hidden;
  color: #0f172a;
  font-size: 0.84rem;
  font-weight: 800;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.usuarios-acesso-estado {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  gap: 0.45rem;
}

.usuarios-acesso-estado > span {
  color: #64748b;
  font-size: .75rem;
  font-weight: 700;
}

.usuarios-acesso-card.is-active .usuarios-acesso-estado > span {
  color: #1223be;
}

.usuarios-acesso-switch {
  flex: 0 0 auto;
}

.usuarios-acesso-perfis {
  display: grid;
  gap: 0.45rem;
  padding: 0.7rem 0.75rem 0.75rem;
}

.usuarios-acesso-perfis-titulo {
  color: #64748b;
  font-size: .75rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.usuarios-acesso-perfil {
  min-width: 0;
  min-height: 38px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.5rem 0.6rem;
  border: 1px solid #e3e8f0;
  border-radius: 9px;
  background: #fff;
}

.usuarios-acesso-perfil.is-active {
  border-color: #c5cef8;
  background: #f7f8ff;
}

.usuarios-acesso-perfil > span {
  min-width: 0;
  overflow-wrap: anywhere;
  color: #1e293b;
  font-size: 0.78rem;
  font-weight: 700;
}

.usuarios-acesso-sem-perfis {
  margin: 0;
  padding: 0.6rem;
  border: 1px dashed #d9e0ea;
  border-radius: 9px;
  color: #64748b;
  font-size: .75rem;
  text-align: center;
}

.usuarios-acessos-vazio {
  grid-column: 1 / -1;
  min-height: 90px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  padding: 1rem;
  border: 1px dashed #d7dee9;
  border-radius: 12px;
  color: #64748b;
  font-size: 0.8rem;
}

@media (max-width: 767.98px) {
  .usuarios-acessos-cards {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 575.98px) {
  .usuarios-acesso-card-head {
    align-items: flex-start;
    padding: 0.7rem;
  }

  .usuarios-acesso-estado {
    align-items: flex-end;
    flex-direction: column-reverse;
    gap: 0.2rem;
  }

  .usuarios-acesso-perfis {
    padding: 0.65rem;
  }

  .usuarios-acesso-perfil {
    min-height: 42px;
  }
}

.usuarios-autofill-fake {
  position: absolute;
  left: -9999px;
  top: -9999px;
  opacity: 0;
  pointer-events: none;
}

.unidades-btn-icon,
.btn.unidades-btn-icon {
  width: 30px;
  min-width: 30px;
  height: 30px;
  min-height: 30px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  flex: 0 0 30px;
  border-radius: 999px;
  border-color: #facc15;
  background: #facc15;
  color: #111827;
  line-height: 1;
  box-shadow: none;
}

.unidades-btn-icon i {
  font-size: 0.92rem;
  line-height: 1;
}

.unidades-btn-icon:hover,
.unidades-btn-icon:focus {
  border-color: #eab308;
  background: #eab308;
  color: #111827;
}

.unidades-btn-icon.unidades-btn-danger,
.btn.unidades-btn-icon.unidades-btn-danger {
  border-color: #f00446;
  background: #f00446;
  color: #fff;
}

.unidades-btn-icon.unidades-btn-danger:hover,
.unidades-btn-icon.unidades-btn-danger:focus,
.btn.unidades-btn-icon.unidades-btn-danger:hover,
.btn.unidades-btn-icon.unidades-btn-danger:focus {
  color: #fff;
  background: #cf003a;
  border-color: #cf003a;
}

.unidades-btn-icon.unidades-btn-copy,
.btn.unidades-btn-icon.unidades-btn-copy {
  border-color: #111827;
  background: #fff;
  color: #111827;
}

.unidades-btn-icon.unidades-btn-copy:hover,
.unidades-btn-icon.unidades-btn-copy:focus,
.btn.unidades-btn-icon.unidades-btn-copy:hover,
.btn.unidades-btn-icon.unidades-btn-copy:focus {
  border-color: #111827;
  background: #f3f4f6;
  color: #111827;
}

.unidades-vazio {
  min-height: 180px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.6rem;
  color: #64748b;
  font-weight: 600;
}

.unidades-vazio i {
  font-size: 1.4rem;
  color: var(--cor-unidade, #2d3142);
}

/* Clientes */
#modalClienteCadastro .ss-form-grid,
#modalClienteEndereco .ss-form-grid {
  grid-template-columns: repeat(12, minmax(0, 1fr));
}

.clientes-config-card,
.clientes-endereco-card {
  background: #fff;
}

.clientes-documentos-card {
  margin-bottom: 1rem;
}

.clientes-documentos-card[open] .unidade-simple-note {
  margin-top: 0.8rem;
}

.clientes-status-field {
  align-self: start;
}

.clientes-enderecos-help {
  margin: 0 0 0.7rem;
}

.clientes-endereco-intro {
  margin-bottom: 1rem;
}

.clientes-ag-grid {
  flex: 1 1 auto;
  width: 100%;
}

.clientes-inner-grid {
  width: 100%;
}

.clientes-unidades-grid {
  --ss-grid-height: 330px;
}

.clientes-enderecos-grid {
  --ss-grid-height: 230px;
}

.clientes-section-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem;
  margin: 0 0 0.6rem;
}

.clientes-section-head .ss-section-title,
.clientes-section-head .unidade-config-card-head {
  margin-bottom: 0;
}

.clientes-switch-field {
  min-height: 31px;
  align-items: center;
}

.clientes-name-cell {
  display: flex;
  align-items: center;
  gap: 0.7rem;
  min-height: 40px;
  min-width: 230px;
  padding: 3px 0;
}

.clientes-avatar {
  width: 34px;
  height: 34px;
  flex: 0 0 34px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--cor-unidade, #2d3142);
  color: #fff;
  font-size: 0.86rem;
  font-weight: 800;
}

.clientes-name-info {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
}

.clientes-name-info strong {
  max-width: 320px;
  overflow: hidden;
  color: #111827;
  font-size: 0.92rem;
  font-weight: 800;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.clientes-name-info small {
  color: #64748b;
  font-size: 0.78rem;
}

.clientes-status {
  min-width: 84px;
  min-height: 28px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.3rem;
  border: 1px solid transparent;
  border-radius: 999px;
  padding: 0.18rem 0.55rem;
  font-size: 0.76rem;
  font-weight: 800;
  white-space: nowrap;
}

.clientes-status--success {
  border-color: #bbf7d0;
  background: #ecfdf3;
  color: #166534;
}

.clientes-status--danger {
  border-color: #fecaca;
  background: #fef2f2;
  color: #991b1b;
}

@media (max-width: 767.98px) {
  #modalClienteCadastro .ss-form-grid > .ss-field,
  #modalClienteEndereco .ss-form-grid > .ss-field {
    grid-column: 1 / -1;
  }

  .clientes-section-head {
    align-items: stretch;
    flex-direction: column;
  }

  .clientes-section-head .btn {
    width: 100%;
  }
}

@media (max-width: 575.98px) {
  #modalClienteCadastro .modal-body,
  #modalClienteEndereco .modal-body {
    padding: 12px;
  }

  #modalClienteCadastro .modal-footer,
  #modalClienteEndereco .modal-footer {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.55rem;
  }

  #modalClienteCadastro .modal-footer .btn,
  #modalClienteEndereco .modal-footer .btn {
    width: 100%;
    margin: 0;
  }

  .clientes-config-card,
  .clientes-endereco-card,
  .clientes-documentos-card {
    margin-bottom: 0.75rem;
    padding: 0.85rem;
    border-radius: 10px;
    box-shadow: none;
  }
}

.unidades-form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.85rem;
}

.unidades-field-wide {
  grid-column: span 2;
}

.unidades-field .form-label {
  margin-bottom: 0.25rem;
  font-size: 0.78rem;
  font-weight: 800;
  color: #334155;
}

.unidades-color-input {
  min-width: 100%;
  height: 34px;
  padding: 0.2rem;
}

.unidades-form-section {
  margin-top: 1rem;
  padding-top: 1rem;
  border-top: 1px solid #edf0f5;
}

.unidades-form-section h6 {
  margin: 0 0 0.75rem;
  font-size: 0.82rem;
  font-weight: 900;
  color: #0f172a;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.unidades-check {
  display: flex;
  align-items: flex-start;
  gap: 0.6rem;
  margin-top: 1rem;
  padding: 0.8rem;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  background: #f8fafc;
}

.unidades-check input {
  margin-top: 0.2rem;
}

.unidades-check span {
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
}

.unidades-check small {
  color: #64748b;
}

.unidade-mapa-layout {
  display: grid;
  grid-template-columns: minmax(260px, 360px) minmax(0, 1fr);
  gap: 1rem;
}

.unidade-mapa-card {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
  padding: 1rem;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  background: #f8fafc;
}

.unidade-mapa-card strong {
  color: #0f172a;
  font-size: 0.9rem;
}

.unidade-mapa-card span {
  color: #64748b;
  font-size: 0.82rem;
}

.unidade-mapa-campos {
  grid-template-columns: 1fr;
}

.unidade-mapa-campos .unidades-field-wide {
  grid-column: span 1;
}

.unidade-mapa-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
}

.unidade-mapa-status {
  min-height: 38px;
  padding: 0.65rem 0.75rem;
  border: 1px solid #dbe4f0;
  border-radius: 8px;
  background: #fff;
  color: #475569;
  font-size: 0.82rem;
}

.unidade-mapa-link {
  color: var(--ss-action-bg);
  font-size: 0.82rem;
  font-weight: 800;
  text-decoration: none;
}

.unidade-mapa-link:hover {
  color: var(--cor-unidade, #2d3142);
  text-decoration: underline;
}

.unidade-mapa-canvas {
  width: 100%;
  min-height: 390px;
  border: 1px solid #dfe5ee;
  border-radius: 8px;
  overflow: hidden;
  background: #eef2f7;
}

.unidade-mapa-canvas .leaflet-container,
.leaflet-container.unidade-mapa-canvas {
  font-family: var(--ss-font);
}

.unidade-imagens-tab {
  display: grid;
  grid-template-columns: minmax(230px, 0.75fr) minmax(0, 1.75fr);
  gap: 0.85rem;
  align-items: stretch;
}

.unidade-imagem-card {
  min-width: 0;
}

.unidade-logo-preview,
.unidade-capa-preview {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 0;
  background: transparent;
  overflow: hidden;
  color: var(--ss-action-bg);
}

.unidade-logo-preview {
  width: 166px;
  height: 166px;
  margin: 1.8rem auto 0.8rem;
  border-radius: 50%;
  background: #f3f4f8;
}

.unidade-capa-preview {
  width: 100%;
  height: 180px;
  border: 2px dashed #dedee5;
  border-radius: 0;
  background: #fff;
}

.unidade-logo-preview img,
.unidade-capa-preview img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.unidade-logo-preview i,
.unidade-capa-preview i {
  position: absolute;
  width: 42px;
  height: 42px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: rgba(118,111,149,0.78);
  color: #fff;
  font-size: 1.35rem;
}

.unidade-capa-preview img {
  width: min(460px, 100%);
}

.unidade-imagens-help {
  margin-top: 0.65rem;
  color: #111827;
  font-size: 0.88rem;
}

.unidade-aparencia-layout {
  display: grid;
  grid-template-columns: minmax(360px, 58%) minmax(260px, 1fr);
  gap: 2rem;
  align-items: start;
}

.unidade-aparencia-controls {
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
}

.unidade-color-wrap {
  height: 28px;
  display: grid;
  grid-template-columns: 40px 1fr;
  align-items: center;
  border: 1px solid #d6ddeb;
  border-radius: 7px;
  overflow: hidden;
  background: #fff;
}

.unidade-color-wrap input {
  width: 40px;
  height: 30px;
  padding: 0;
  border: 0;
  background: transparent;
}

.unidade-color-wrap span {
  padding: 0 0.65rem;
  color: #111827;
  font-size: 1rem;
}

.unidade-aparencia-switch {
  margin: 0.35rem 0 0.5rem;
}

.unidade-tipografia-panel h6 {
  margin: 0 0 0.95rem;
  color: #283044;
  font-size: 0.9rem;
  font-weight: 800;
}

.unidade-tipografia-grid {
  gap: 0.6rem 1.5rem;
}

.unidade-tipografia-grid .ss-field:nth-child(2),
.unidade-tipografia-grid .ss-field:nth-child(4) {
  border-bottom: 1px solid #d9dde6;
  padding-bottom: 0.5rem;
}

.unidade-traco-field {
  align-self: end;
  padding-bottom: 0.2rem;
}

.unidade-app-preview-wrap {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.25rem;
}

.unidade-app-preview-wrap > strong {
  color: #64748b;
  font-size: 0.8rem;
  letter-spacing: 0.08em;
}

.unidade-app-preview-wrap > small {
  color: #9aa1b2;
  font-size: .75rem;
}

.unidade-app-preview {
  position: relative;
  width: 276px;
  height: 492px;
  padding: 8px;
  border: 6px solid #241b33;
  border-radius: 34px;
  background: #eef2fb;
  overflow: hidden;
  box-shadow: 0 24px 42px rgba(15,23,42,0.18);
}

.app-phone-top {
  position: absolute;
  top: 8px;
  left: 18px;
  right: 18px;
  z-index: 4;
  display: flex;
  align-items: center;
  justify-content: space-between;
  color: #fff;
  font-size: .75rem;
}

.app-cover-preview {
  height: 82px;
  margin: -8px -8px 0;
  background: linear-gradient(135deg, #c7d2fe, #e5e7eb);
  background-size: cover;
  background-position: center;
}

.app-store-card {
  position: relative;
  min-height: 102px;
  margin: -24px 10px 10px;
  padding: 38px 10px 10px;
  border-radius: 0 0 14px 14px;
  background: #fff;
  text-align: center;
  box-shadow: 0 8px 18px rgba(15,23,42,0.08);
}

.app-avatar-preview {
  position: absolute;
  top: -23px;
  left: 50%;
  width: 46px;
  height: 46px;
  transform: translateX(-50%);
  border: 3px solid #fff;
  border-radius: 50%;
  background: var(--cor-unidade, #2d3142);
  background-size: cover;
  background-position: center;
}

.app-store-card strong {
  display: block;
  color: #111827;
  font-size: 0.76rem;
}

.app-store-card small {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.25rem;
  color: #6b7280;
  font-size: .75rem;
}

.app-store-card small span {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #ff0050;
}

.app-icon-row {
  display: flex;
  justify-content: center;
  gap: 0.55rem;
  margin-top: 0.55rem;
}

.app-icon-row i,
.app-icon-row b {
  width: 24px;
  height: 24px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: #edf1fa;
  color: #475569;
  font-size: .75rem;
  font-style: normal;
}

.app-icon-row b {
  background: var(--ss-action-bg);
  color: #fff;
}

.app-category-select {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  width: 210px;
  height: 25px;
  padding: 0 0.5rem;
  border: 1px solid #ccd5e7;
  border-radius: 7px;
  background: #fff;
  color: #607089;
  font-size: 0.58rem;
}

.app-search-dot {
  position: absolute;
  top: 188px;
  right: 15px;
  width: 24px;
  height: 24px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: var(--ss-action-bg);
  color: #fff;
  font-size: .75rem;
}

.unidade-app-preview h6 {
  margin: 0.75rem 0 0.45rem;
  color: #1f2937;
  font-size: .75rem;
  font-weight: 800;
}

.app-products-mini {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0.4rem;
}

.app-products-mini span {
  min-height: 78px;
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  padding: 0.45rem;
  border-radius: 7px;
  background: #fff;
  box-shadow: 0 6px 12px rgba(15,23,42,0.08);
}

.app-products-mini i {
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: -0.45rem -0.45rem 0.25rem;
  border-radius: 7px 7px 0 0;
  background: #d8deec;
  color: #8b97ad;
}

.app-products-mini b,
.app-list-mini b {
  color: #111827;
  font-size: .75rem;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.app-products-mini em,
.app-list-mini em {
  color: var(--ss-action-bg);
  font-size: .75rem;
  font-style: normal;
  font-weight: 800;
}

.app-list-mini {
  min-height: 55px;
  display: grid;
  grid-template-columns: 1fr 44px;
  gap: 0.45rem;
  align-items: center;
  padding: 0.45rem;
  border-radius: 9px;
  background: #fff;
}

.app-list-mini div {
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
}

.app-list-mini small {
  color: #7b8192;
  font-size: .75rem;
}

.app-list-mini > i {
  height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 7px;
  background: #d8deec;
  color: #8b97ad;
}

.app-bottom-nav {
  position: absolute;
  left: 8px;
  right: 8px;
  bottom: 8px;
  height: 46px;
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  align-items: center;
  border-top: 1px solid #e4e8f2;
  background: #fff;
}

.app-bottom-nav span {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.12rem;
  color: #8b97ad;
  font-size: .75rem;
}

.app-bottom-nav span:first-child {
  color: var(--ss-action-bg);
}

/* Padrão único para todas as grades AG Grid do gestor. */
.ag-theme-quartz {
  --ag-font-family: var(--ss-font);
  --ag-font-size: 12px;
  --ag-cell-horizontal-border: none;
  --ag-header-column-separator-display: none;
  --ag-pinned-column-border: none;
  --ag-row-border-color: #d9dde6;
  --ag-row-border-style: solid;
  --ag-row-border-width: 1px;
  --ag-list-item-height: 30px;
  --ag-odd-row-background-color: var(--ss-table-striped-bg);
  --ag-even-row-background-color: #ffffff;
  --ag-row-hover-color: var(--ss-table-hover-bg);
  --ag-header-background-color: var(--ss-table-head-footer-bg);
  --ag-header-foreground-color: var(--ss-table-head-footer-color);
  --ag-wrapper-border-radius: 8px;
}

.ag-theme-quartz.ssapps-ag-grid {
  width: 100%;
}

/* O tema oficial força 150px no autoHeight; damos folga (maior que --ag-row-height, ~40px) pro overlay "sem registros" não ficar colado nas bordas. */
.ag-theme-quartz .ag-layout-auto-height .ag-center-cols-container,
.ag-theme-quartz .ag-layout-auto-height .ag-center-cols-viewport,
.ag-theme-quartz .ag-layout-print .ag-center-cols-container,
.ag-theme-quartz .ag-layout-print .ag-center-cols-viewport {
  min-height: 48px !important;
}

.ag-theme-quartz.ssapps-ag-grid-auto {
  height: auto !important;
}

.ag-theme-quartz.ssapps-ag-grid-normal {
  height: var(--ss-grid-height, calc(100vh - 330px));
}

.ag-theme-quartz .ag-root-wrapper {
  border: 1px solid #d9dde6;
  border-radius: 8px;
  overflow: hidden;
}

.ag-theme-quartz .ag-header {
  background: var(--ss-table-head-footer-bg);
  border-bottom: 1px solid var(--ss-table-head-footer-border);
}

.ag-theme-quartz .ag-header-cell,
.ag-theme-quartz .ag-header-group-cell,
.ag-theme-quartz .ag-cell {
  border-left: 0 !important;
  border-right: 0 !important;
}

.ag-theme-quartz .ag-header-cell::after,
.ag-theme-quartz .ag-header-group-cell::after {
  display: none !important;
}

.ag-theme-quartz .ag-header-cell-text {
  color: var(--ss-table-head-footer-color);
  font-weight: 800;
}

.ag-theme-quartz .ag-header .ag-icon {
  color: color-mix(in srgb, var(--ss-table-head-footer-color) 82%, transparent);
}

.ag-theme-quartz .ag-row {
  border-bottom: 1px solid #d9dde6 !important;
}

/* striped rows - aplicado via rowClassRules nativo do AG Grid */
.ag-theme-quartz .ag-row.ssapps-ag-row-odd {
  background-color: var(--ss-table-striped-bg) !important;
}

.ag-theme-quartz .ag-row.ssapps-ag-row-even {
  background-color: #ffffff !important;
}

.ag-theme-quartz .ag-row.ssapps-ag-row-odd.ag-row-hover,
.ag-theme-quartz .ag-row.ssapps-ag-row-odd:hover {
  background-color: var(--ss-table-hover-bg) !important;
}

.ag-theme-quartz .ag-row.ssapps-ag-row-even.ag-row-hover,
.ag-theme-quartz .ag-row.ssapps-ag-row-even:hover {
  background-color: var(--ss-table-hover-bg) !important;
}

/* linhas de grupo (árvore) - mesmo tom do cabeçalho, sempre acima do zebrado */
.ag-theme-quartz .ag-row.ag-row-group {
  background-color: var(--ss-table-striped-bg) !important;
}

.ag-theme-quartz .ag-row.ag-row-group.ag-row-hover,
.ag-theme-quartz .ag-row.ag-row-group:hover {
  background-color: var(--ss-table-hover-bg) !important;
}

/* rodapé (linhas fixas/agregação) - mesmo tom do cabeçalho, texto em negrito */
.ag-theme-quartz .ag-row-pinned,
.ag-theme-quartz .ag-floating-bottom-container .ag-row {
  background-color: var(--ss-table-head-footer-bg) !important;
  color: var(--ss-table-head-footer-color);
  font-weight: 800 !important;
}

.ag-theme-quartz .ag-row-pinned .ag-cell,
.ag-theme-quartz .ag-floating-bottom-container .ag-cell {
  color: var(--ss-table-head-footer-color);
}

.ag-theme-quartz .ag-cell {
  line-height: normal;
}

.ag-theme-quartz .ag-cell.ssapps-ag-cell-vcenter {
  display: flex;
  align-items: center;
}

.ag-theme-quartz .ag-cell.ssapps-ag-cell-vcenter > .ag-cell-wrapper,
.ag-theme-quartz .ag-cell.ssapps-ag-cell-vcenter > .ag-cell-value {
  width: 100%;
}

.ag-theme-quartz .ag-cell-wrapper {
  align-items: center;
}

.ag-theme-quartz .ss-actions-cell {
  display: flex;
  align-items: center;
  justify-content: center;
}

.ag-theme-quartz .ss-actions-header .ag-header-cell-label {
  justify-content: center;
}

.ag-theme-quartz .ag-row-group .ag-cell,
.ag-theme-quartz .ag-group-value,
.ag-theme-quartz .ag-group-child-count {
  font-weight: 800;
}

.ag-theme-quartz .ag-status-bar {
  border-top: 1px solid var(--ss-table-head-footer-border);
  background: var(--ss-table-head-footer-bg);
  color: var(--ss-table-head-footer-color);
  font-size: 0.76rem;
}

.impressoras-driver-status-wrap {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
}

.impressoras-driver-status {
  align-items: center;
  border: 1px solid #d9dde6;
  border-radius: 8px;
  display: flex;
  font-size: 0.78rem;
  font-weight: 700;
  gap: 0.35rem;
  line-height: 1.2;
  min-height: 31px;
  padding: 0.38rem 0.62rem;
}

.impressoras-driver-status a {
  color: inherit;
  text-decoration: underline;
}

.impressoras-driver-status--secondary {
  background: #f8fafc;
  color: #475569;
}

.impressoras-driver-status--success {
  background: #dcfce7;
  border-color: #86efac;
  color: #166534;
}

.impressoras-driver-status--warning {
  background: #fef3c7;
  border-color: #facc15;
  color: #854d0e;
}

.impressoras-driver-status--danger {
  background: #fee2e2;
  border-color: #fca5a5;
  color: #991b1b;
}

.impressoras-routing-alert {
  align-items: center;
  background: #f8fafc;
  border: 1px solid #d9dde6;
  border-radius: 8px;
  color: #475569;
  display: flex;
  gap: 0.75rem;
  margin-bottom: 0.9rem;
  padding: 0.7rem 0.85rem;
}

.impressoras-routing-alert > i {
  color: var(--cor-unidade, #4e73df);
  font-size: 1.2rem;
}

.impressoras-routing-alert strong,
.impressoras-routing-alert span {
  display: block;
}

.impressoras-clientes-grid {
  display: grid;
  gap: 0.75rem;
  grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
}

.impressoras-cliente-card {
  align-items: center;
  background: #ffffff;
  border: 1px solid #d9dde6;
  border-radius: 8px;
  box-shadow: 0 1px 5px rgba(15, 23, 42, 0.08);
  cursor: pointer;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  min-height: 172px;
  padding: 0.85rem;
  text-align: center;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.impressoras-cliente-card:focus,
.impressoras-cliente-card.is-selected {
  border-color: var(--cor-unidade, #4e73df);
  box-shadow: 0 0 0 2px rgba(78, 115, 223, 0.14);
  outline: 0;
}

.impressoras-cliente-card > i {
  color: #64748b;
  font-size: 1.75rem;
}

.impressoras-cliente-card.is-selected > i {
  color: var(--cor-unidade, #4e73df);
}

.impressoras-cliente-card strong {
  color: #111827;
  font-size: 0.92rem;
  line-height: 1.25;
  overflow-wrap: anywhere;
}

.impressoras-cliente-badge {
  border-radius: 999px;
  font-size: .75rem;
  font-weight: 800;
  padding: 0.16rem 0.48rem;
  text-transform: uppercase;
}

.impressoras-cliente-badge.is-online {
  background: #dcfce7;
  color: #166534;
}

.impressoras-cliente-badge.is-offline {
  background: #e2e8f0;
  color: #475569;
}

.impressoras-driver-download {
  margin-top: 1rem;
}

.impressoras-device-combo {
  position: relative;
}

.impressoras-device-combo .form-control {
  padding-right: 2.25rem;
}

.impressoras-device-toggle {
  align-items: center;
  background: transparent;
  border: 0;
  bottom: 1px;
  color: #475569;
  display: flex;
  justify-content: center;
  position: absolute;
  right: 1px;
  top: 1px;
  width: 2rem;
}

.impressoras-device-menu {
  background: #ffffff;
  border: 1px solid #d9dde6;
  border-radius: 8px;
  box-shadow: 0 12px 28px rgba(15, 23, 42, 0.12);
  display: none;
  left: 0;
  max-height: 210px;
  overflow: auto;
  padding: 0.25rem;
  position: absolute;
  right: 0;
  top: calc(100% + 4px);
  z-index: 1085;
}

.impressoras-device-menu.show {
  display: block;
}

.impressoras-device-option {
  background: transparent;
  border: 0;
  border-radius: 6px;
  color: #111827;
  display: block;
  font-size: 0.84rem;
  padding: 0.45rem 0.55rem;
  text-align: left;
  width: 100%;
}

.impressoras-device-option:hover {
  background: #eef2ff;
}

.impressoras-device-option strong,
.impressoras-device-option small {
  display: block;
}

.impressoras-device-option small {
  color: #64748b;
  font-size: .75rem;
  margin-top: 0.1rem;
}

.impressoras-device-option.is-empty {
  color: #64748b;
  cursor: default;
}

@media (max-width: 991.98px) {
  .unidades-page {
    padding: 1rem;
  }

  .unidades-page-head {
    align-items: flex-start;
    flex-direction: column;
  }

  .unidades-actions {
    width: 100%;
    justify-content: flex-start;
  }

  .unidades-metricas {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .clientes-page .unidades-metricas {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .unidades-atendimento-row {
    grid-template-columns: 1fr 1fr;
  }

  .unidade-mapa-layout {
    grid-template-columns: 1fr;
  }

  .unidade-aparencia-layout {
    grid-template-columns: 1fr;
  }

  .unidade-imagens-tab {
    grid-template-columns: 1fr;
  }

  .unidade-certificado-layout {
    grid-template-columns: 1fr;
    gap: 0.8rem;
  }
}

@media (max-width: 767.98px) {
  #modalUnidadeCadastro .ss-form-grid > .ss-field {
    grid-column: 1 / -1;
  }

  /* Da mesa nº / Até a mesa nº lado a lado no smartphone (metade das 12 colunas cada). */
  #modalUnidadeCadastro .unidade-mesas-form > .ss-field.ss-col-3 {
    grid-column: span 6;
  }

  .unidade-fiscal-service-head {
    align-items: stretch;
    flex-direction: column;
  }
}

@media (max-width: 575.98px) {
  .unidade-atendimento-card-campos {
    grid-template-columns: minmax(0, 1fr);
  }

  .unidade-atendimento-card-opcoes.is-empty {
    display: none;
  }

  #modalUnidadeCadastro .modal-body {
    padding: 12px;
  }

  #modalUnidadeCadastro .modal-footer {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.55rem;
  }

  #modalUnidadeCadastro .modal-footer .btn {
    width: 100%;
    margin: 0;
  }

  .unidades-tabs {
    top: -12px;
    margin: -12px -12px 0;
    padding: 9px 12px 0;
  }

  .unidades-tabs .nav-link {
    min-height: 42px;
    padding-inline: 0.7rem;
  }

  .unidades-tab-content {
    padding-top: 0.75rem;
  }

  .unidade-tab-intro {
    gap: 0.65rem;
    margin-bottom: 0.75rem;
    padding: 0.75rem;
  }

  .unidade-tab-intro-icon {
    width: 34px;
    height: 34px;
    flex-basis: 34px;
  }

  .unidade-config-card,
  .unidade-mesas-add {
    margin-bottom: 0.75rem;
    padding: 0.85rem;
    border-radius: 10px;
    box-shadow: none;
  }

  .unidade-config-card-head {
    margin-bottom: 0.75rem;
  }

  #modalUnidadeCadastro .ss-form-grid {
    gap: 0.75rem;
  }

  .unidade-mapa-card {
    padding: 0.85rem;
  }

  .unidade-mapa-actions .btn {
    flex: 1 1 100%;
  }

  .unidade-mapa-canvas {
    min-height: 280px;
  }

  .unidade-logo-preview {
    width: 132px;
    height: 132px;
    margin-top: 0.8rem;
  }

  .unidade-capa-preview {
    height: 135px;
  }

  .unidade-app-preview {
    width: min(276px, 100%);
  }

  .unidade-add-field,
  .unidade-mesas-actions {
    width: 100%;
  }

  .unidade-mesa-item {
    align-items: stretch;
    flex-direction: column;
  }

  .unidade-mesa-item > .btn {
    align-self: flex-end;
  }

  .unidade-horarios-add .btn,
  .unidade-fiscal-status-action .btn {
    width: 100%;
  }

  .unidade-fiscal-safe-note {
    padding: 0.75rem;
  }

  .unidade-fiscal-card {
    border-left-width: 1px;
  }

  .unidade-fiscal-tabs {
    width: 100%;
  }

  .unidade-fiscal-tabs .nav-item {
    flex: 1 1 50%;
  }

  .unidade-fiscal-tabs .nav-link {
    width: 100%;
    min-width: 0;
    padding-inline: 0.35rem;
  }

  .unidade-fiscal-tab-content > .tab-pane {
    padding: 0.75rem;
  }

  .unidade-certificado-remocao {
    align-items: stretch;
    flex-direction: column;
  }

  .unidade-certificado-remocao .btn {
    width: 100%;
  }

  .unidades-metricas,
  .unidades-form-grid {
    grid-template-columns: 1fr;
  }

  .clientes-page .unidades-metricas {
    grid-template-columns: 1fr;
  }

  .unidades-field-wide {
    grid-column: span 1;
  }

  .unidades-lista-toolbar {
    align-items: stretch;
    flex-direction: column;
  }

  .unidades-busca {
    max-width: none;
    width: 100%;
    flex: 1 1 auto;
  }

  .certificado-upload-label {
    grid-template-columns: 34px 1fr;
  }

  .certificado-upload-action {
    grid-column: 1 / -1;
    width: 100%;
  }
}

.gestor-sidebar .sidebar-nav {
  scrollbar-width: thin !important;
  scrollbar-color: var(--ss-sidebar-bg) var(--ss-sidebar-bg) !important;
}

.gestor-sidebar .sidebar-nav::-webkit-scrollbar {
  width: 7px !important;
}

.gestor-sidebar .sidebar-nav::-webkit-scrollbar-track {
  background: var(--ss-sidebar-bg) !important;
}

.gestor-sidebar .sidebar-nav::-webkit-scrollbar-thumb {
  background: var(--ss-sidebar-bg) !important;
  background-color: var(--ss-sidebar-bg) !important;
  border: 0 !important;
  border-radius: 8px !important;
}

.gestor-sidebar.sidebar-scrollbar-hover .sidebar-nav,
.gestor-sidebar:hover .sidebar-nav,
.gestor-sidebar:focus-within .sidebar-nav,
.gestor-sidebar.show .sidebar-nav,
.gestor-sidebar .sidebar-nav:hover,
.gestor-sidebar .sidebar-nav:focus-within {
  scrollbar-color: rgba(255,255,255,0.58) var(--ss-sidebar-bg) !important;
}

.gestor-sidebar.sidebar-scrollbar-hover .sidebar-nav::-webkit-scrollbar-thumb,
.gestor-sidebar:hover .sidebar-nav::-webkit-scrollbar-thumb,
.gestor-sidebar:focus-within .sidebar-nav::-webkit-scrollbar-thumb,
.gestor-sidebar.show .sidebar-nav::-webkit-scrollbar-thumb,
.gestor-sidebar .sidebar-nav:hover::-webkit-scrollbar-thumb,
.gestor-sidebar .sidebar-nav:focus-within::-webkit-scrollbar-thumb,
.gestor-sidebar .sidebar-nav::-webkit-scrollbar-thumb:hover {
  background: rgba(255,255,255,0.58) !important;
  background-color: rgba(255,255,255,0.58) !important;
  border: 0 !important;
}

/* Produtos */
.produtos-content {
  overflow: hidden;
}

.produtos-page {
  flex: 1;
  display: flex;
  flex-direction: column;
  min-height: 0;
  padding: 1.35rem;
  color: #111827;
  overflow: hidden;
  box-sizing: border-box;
}

.produtos-head {
  flex: 0 0 auto;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 0.8rem;
  margin-bottom: 0.8rem;
}

.produtos-title {
  display: inline-flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.35rem;
  min-width: 0;
  color: var(--cor-unidade, #2d3142);
}

.produtos-title h1 {
  margin: 0;
  font-size: 1.1rem;
  font-weight: 800;
  letter-spacing: 0;
}

.produtos-actions {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  flex-wrap: wrap;
  justify-content: flex-end;
}

.produtos-importar-dropdown {
  display: inline-flex;
}

.produtos-importar-menu {
  min-width: 14rem;
  padding: 0.35rem;
}

.produtos-importar-menu .dropdown-item {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  min-height: 2.15rem;
  padding: 0.45rem 0.6rem;
  border-radius: 0.4rem;
  font-size: 0.86rem;
}

.produtos-importar-menu .dropdown-item > i {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 2.25rem;
  width: 2.25rem;
  color: #334155;
  font-size: 1rem;
}

.produtos-importar-ifood-logo {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 2.25rem;
  width: 2.25rem;
  height: 1.45rem;
}

.produtos-importar-ifood-logo img {
  display: block;
  width: 2.25rem;
  height: auto;
}

.produtos-modal-ifood-icon {
  width: 2rem;
  height: auto;
  margin-right: 0.25rem;
}

.produtos-importacao-status {
  padding: 0.7rem 0.8rem;
  border: 1px solid #dbe4ee;
  border-radius: 0.65rem;
  background: #fff;
  color: #475569;
  font-size: 0.86rem;
}

.produtos-importacao-status.is-loading {
  border-color: #bfdbfe;
  background: #eff6ff;
  color: #1d4ed8;
}

.produtos-importacao-status.is-success {
  border-color: #bbf7d0;
  background: #f0fdf4;
  color: #166534;
}

.produtos-importacao-status.is-warning {
  border-color: #fde68a;
  background: #fffbeb;
  color: #92400e;
}

.produtos-importacao-status.is-error {
  border-color: #fecaca;
  background: #fef2f2;
  color: #b91c1c;
}

.produtos-importacao-preview .produtos-importacao-produto > span {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  min-width: 0;
}

.produtos-importacao-preview .produtos-importacao-produto small {
  color: #64748b;
  font-size: .75rem;
  line-height: 1.35;
  white-space: normal;
}

.produtos-importacao-preview .produtos-importacao-produto > b {
  flex: 0 0 auto;
  color: #0f172a;
  font-size: 0.78rem;
}

.produtos-transferencia-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.8rem;
}

.produtos-transferencia-grid > section {
  display: grid;
  gap: 0.65rem;
  padding: 0.9rem;
  border: 1px solid #e2e8f0;
  border-radius: 0.75rem;
  background: #fff;
}

.produtos-transferencia-grid h6 {
  margin: 0;
  color: #1e293b;
  font-weight: 800;
}

.produtos-transferencia-resumo-lista {
  display: grid;
  gap: 0.25rem;
  max-height: 12rem;
  margin-top: 0.6rem;
  overflow: auto;
}

.produtos-transferencia-resumo-lista > span {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  padding-top: 0.3rem;
  border-top: 1px solid currentColor;
}

.produtos-arquivo-toolbar {
  display: grid;
  grid-template-columns: minmax(12rem, 0.75fr) minmax(18rem, 1.5fr) minmax(14rem, 0.9fr);
  gap: 0.8rem;
  padding: 0.9rem;
  border: 1px solid #e2e8f0;
  border-radius: 0.75rem;
  background: #fff;
}

.produtos-arquivo-campo {
  grid-column: auto;
}

.produtos-arquivo-toolbar--arquivo {
  grid-template-columns: minmax(18rem, 1.5fr) minmax(14rem, 0.9fr);
}

.produtos-importacao-modal .modal-body {
  display: flex;
  flex-direction: column;
  gap: 0.9rem;
  min-height: 360px;
}

.produtos-importacao-unidades {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.8rem;
  padding: 0.9rem;
  border: 1px solid #e2e8f0;
  border-radius: 0.75rem;
  background: #fff;
}

.produtos-importacao-unidades--cardapio,
.produtos-importacao-unidades--catalogo {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.produtos-importacao-unidades .ss-field {
  min-width: 0;
}

.produtos-importacao-unidades .form-label {
  display: block;
  margin-bottom: 0.35rem;
  color: #1e293b;
  font-weight: 800;
}

.produtos-importacao-unidades .form-label small {
  color: #64748b;
  font-weight: 600;
}

.produtos-importacao-unidade-fixa {
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-height: 3.65rem;
  padding: 0.55rem 0.7rem;
  border: 1px solid #dbe4ef;
  border-radius: 0.55rem;
  background: #f8fafc;
}

.produtos-importacao-unidade-fixa .form-label {
  margin-bottom: 0.15rem;
  color: #64748b;
  font-size: 0.72rem;
  text-transform: uppercase;
}

.produtos-importacao-unidade-fixa strong {
  overflow-wrap: anywhere;
  color: #0f172a;
  font-size: 0.9rem;
}

.produtos-importacao-unidade-fixa > small {
  color: #64748b;
  font-size: .75rem;
}

.produtos-importacao-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.7rem 0.85rem;
  border: 1px solid #e2e8f0;
  border-radius: 0.75rem;
  background: #fff;
}

.produtos-importacao-toolbar[hidden] {
  display: none;
}

.produtos-importacao-toolbar > div:first-child {
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.produtos-importacao-toolbar small {
  color: #64748b;
}

.produtos-importacao-lista {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  gap: 0.65rem;
  min-height: 180px;
}

.produtos-importacao-vazio {
  display: grid;
  flex: 1 1 auto;
  min-height: 180px;
  place-items: center;
  align-content: center;
  gap: 0.55rem;
  padding: 1.25rem;
  border: 1px dashed #cbd5e1;
  border-radius: 0.75rem;
  background: #fff;
  color: #64748b;
  text-align: center;
  font-weight: 700;
}

.produtos-importacao-vazio i {
  color: var(--cor-unidade, #2d3142);
  font-size: 1.65rem;
}

.produtos-importacao-grupo {
  overflow: visible;
  border: 1px solid #dbe4ef;
  border-radius: 0.75rem;
  background: #fff;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
}

.produtos-importacao-grupo-cabecalho {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 0.65rem;
  min-height: 2.8rem;
  padding: 0.7rem 0.85rem;
  border-bottom: 1px solid #dbe4ef;
  border-radius: 0.75rem 0.75rem 0 0;
  background: #f1f5f9;
}

.produtos-importacao-grupo-cabecalho label {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  min-width: 0;
  margin: 0;
}

.produtos-importacao-grupo-cabecalho strong {
  overflow-wrap: anywhere;
  line-height: 1.3;
}

.produtos-importacao-grupo-cabecalho > span {
  color: #64748b;
  font-size: 0.78rem;
  font-weight: 700;
  white-space: nowrap;
}

.produtos-importacao-produtos {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
  padding: 0.65rem;
}

.produtos-importacao-produto {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 0.65rem;
  min-width: 0;
  margin: 0;
  min-height: 2.65rem;
  padding: 0.55rem 0.65rem;
  border: 1px solid #e2e8f0;
  border-radius: 0.55rem;
  background: #fff;
  color: #334155;
  font-size: 0.82rem;
  cursor: pointer;
}

.produtos-importacao-produto:hover {
  border-color: #cbd5e1;
  background: #f8fafc;
}

.produtos-importacao-produto span {
  min-width: 0;
  overflow-wrap: anywhere;
  white-space: normal;
}

.produtos-importacao-produto .form-check-input,
.produtos-importacao-categoria-check {
  flex: 0 0 auto;
  margin: 0.12rem 0 0;
}

.produtos-importacao-sem-itens {
  grid-column: 1 / -1;
  color: #64748b;
  font-size: 0.82rem;
}

@media (max-width: 767.98px) {
  .produtos-importacao-modal .modal-body {
    min-height: 0;
    padding: 0.75rem;
  }

  .produtos-importacao-unidades,
  .produtos-importacao-unidades--cardapio,
  .produtos-importacao-unidades--catalogo {
    grid-template-columns: minmax(0, 1fr);
    padding: 0.75rem;
  }

  .produtos-importacao-toolbar {
    align-items: stretch;
    flex-direction: column;
  }

  .produtos-importacao-toolbar .btn-group {
    align-self: stretch;
  }

  .produtos-importacao-toolbar .btn-group .btn {
    flex: 1 1 50%;
  }

  .produtos-importacao-produtos {
    padding: 0.5rem;
  }

  .produtos-importacao-produto {
    grid-template-columns: auto minmax(0, 1fr) auto;
    min-height: 2.8rem;
    padding: 0.55rem;
  }
}

.produtos-busca {
  position: relative;
  flex: 1 1 320px;
  max-width: 520px;
}

.produtos-busca i {
  position: absolute;
  left: 0.65rem;
  top: 50%;
  transform: translateY(-50%);
  color: #64748b;
  pointer-events: none;
}

.produtos-busca .form-control {
  padding-left: 2rem;
}

.produtos-toolbar-filtros {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  flex: 1 1 auto;
  min-width: 0;
}

.produtos-toolbar-filtros .produtos-busca {
  flex: 1 1 320px;
}

.produtos-cardapio-filtro {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  flex: 0 1 340px;
  min-width: 220px;
  margin: 0;
  color: #475569;
  font-size: 0.82rem;
  font-weight: 800;
}

.produtos-cardapio-filtro span {
  white-space: nowrap;
}

.produtos-cardapio-filtro .form-select {
  min-width: 0;
}

.produtos-tabs {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  gap: 1rem;
  overflow-x: auto;
  margin-bottom: 0.75rem;
  border-bottom: 1px solid #dfe5ee;
}

.produtos-tab {
  appearance: none;
  border: 0;
  background: transparent;
  color: var(--cor-unidade, #2d3142);
  font-size: 0.9rem;
  font-weight: 800;
  padding: 0.75rem 0 0.65rem;
  white-space: nowrap;
}

.produtos-tab.is-active {
  color: #111827;
  box-shadow: inset 0 -2px 0 #111827;
}

.produtos-tab:disabled {
  color: #6b7280;
  opacity: 0.65;
  cursor: not-allowed;
}

.produtos-summary {
  flex: 0 0 auto;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.75rem;
  margin-bottom: 0.75rem;
}

.produtos-summary > div {
  min-height: 64px;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  background: #fff;
  padding: 0.75rem 0.9rem;
}

.produtos-summary span {
  display: block;
  font-size: .75rem;
  font-weight: 800;
  color: #64748b;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.produtos-summary strong {
  display: block;
  margin-top: 0.12rem;
  font-size: 1.35rem;
  line-height: 1;
}

.produtos-panel {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  min-height: 0;
  border: 1px solid #dfe5ee;
  border-radius: 8px;
  box-shadow: 0 10px 28px rgba(15,23,42,0.07);
  overflow: hidden;
}

.produtos-panel-toolbar {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.7rem 0.85rem;
  border-bottom: 1px solid #dfe5ee;
  background: #f8fafc;
}

.produtos-toolbar-actions {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: 0.45rem;
  flex: 0 0 auto;
  flex-wrap: wrap;
}

.massa-filtro-url {
  align-items: center;
  background: #eef3ff;
  border: 1px solid #d9e4ff;
  border-radius: 999px;
  color: #38569a;
  display: inline-flex;
  flex: 0 0 auto;
  font-size: 0.7rem;
  font-weight: 700;
  gap: 6px;
  padding: 4px 6px 4px 10px;
}
.massa-filtro-url button {
  align-items: center;
  background: none;
  border: 0;
  border-radius: 999px;
  color: #38569a;
  display: inline-flex;
  height: 18px;
  justify-content: center;
  padding: 0;
  width: 18px;
}
.massa-filtro-url button:hover { background: #d9e4ff; }

.massa-toolbar {
  justify-content: flex-start;
  flex-wrap: nowrap;
  gap: .38rem;
  padding-block: .42rem;
  overflow-x: auto;
}

.massa-toolbar .produtos-busca {
  flex: 1 1 260px;
  max-width: 320px;
}

.massa-filtros-rapidos {
  display: inline-flex;
  align-items: center;
  flex: 0 1 auto;
  flex-wrap: wrap;
  gap: 0.42rem;
}

.massa-filtro-grupo {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  color: #475569;
  font-size: 0.68rem;
  font-weight: 700;
  white-space: nowrap;
}

.massa-filtro-grupo .form-select {
  min-width: 92px;
  width: auto;
  min-height: 27px;
  height: 27px;
  padding-block: .1rem;
  font-size: .72rem;
}

.massa-filtro-categoria .form-select { width: 150px; max-width: 150px; }
.massa-filtro-impressora .form-select { min-width: 150px; }
.massa-toolbar .produtos-busca,
.massa-toolbar .produtos-busca .form-control { min-height: 27px; height: 27px; }
.massa-toolbar .produtos-busca .form-control { font-size: .72rem; }
.massa-toolbar #btnMassaRecarregar { min-height: 27px; height: 27px; padding-block: .1rem; font-size: .72rem; }

.massa-toolbar .produtos-toolbar-actions { margin-left: auto; }
.massa-toolbar .produtos-toolbar-actions > .text-muted { display: none !important; }

@media (max-width: 900px) {
  .massa-toolbar {
    flex-wrap: nowrap;
    gap: 0.4rem;
    overflow-x: auto;
    scrollbar-width: thin;
  }

  .massa-toolbar .produtos-busca {
    flex: 0 1 190px;
    min-width: 145px;
    max-width: 190px;
  }

  .massa-filtros-rapidos {
    flex: 0 0 auto;
    flex-wrap: nowrap;
    gap: 0.3rem;
  }

  .massa-filtro-grupo > span { display: none; }
  .massa-filtro-grupo .form-select { min-width: 78px; width: 78px; padding-left: 0.45rem; padding-right: 1.5rem; }
  .massa-filtro-impressora .form-select { min-width: 118px; width: 118px; }
  .massa-toolbar .produtos-toolbar-actions { flex-wrap: nowrap; margin-left: 0; }
  .massa-toolbar #btnMassaRecarregar { white-space: nowrap; }
}

@media (min-width: 901px) and (max-width: 1200px) {
  .massa-toolbar {
    flex-wrap: nowrap;
    gap: 0.45rem;
    overflow-x: auto;
  }

  .massa-toolbar .produtos-busca { flex: 1 1 220px; min-width: 180px; max-width: 320px; }
  .massa-filtros-rapidos { flex-wrap: nowrap; gap: 0.4rem; }
  .massa-filtro-grupo > span { display: none; }
  .massa-filtro-grupo .form-select { min-width: 92px; width: 92px; }
  .massa-filtro-impressora .form-select { min-width: 145px; width: 145px; }
  .massa-toolbar .produtos-toolbar-actions { flex-wrap: nowrap; margin-left: auto; }
}

.produtos-table-wrap {
  flex: 1 1 auto;
  display: flex;
  min-height: 0;
  overflow: hidden;
  box-sizing: border-box;
  padding: 0.75rem 0.85rem 0.85rem;
}

.produtos-categorias-grid.ag-theme-quartz.ssapps-ag-grid-normal {
  --ss-grid-height: 100%;
  flex: 1 1 auto;
  height: 100%;
}

.produtos-table-wrap > .produtos-categorias-grid.ag-theme-quartz.ssapps-ag-grid-normal {
  height: auto;
}

.massa-page .massa-panel,
.massa-table-wrap {
  min-height: 320px;
}

.massa-operacional-table {
  flex: 1 1 auto;
  height: 100%;
  min-height: 320px;
  max-height: 100%;
}

.massa-operacional-table .ss-table-cell.is-center .ss-table-cell-content {
  display: flex;
  justify-content: center;
}

.massa-table-select {
  width: 100%;
  min-width: 0;
}

.massa-table-switch {
  display: flex;
  justify-content: center;
}

.massa-produto {
  display: flex;
  align-items: center;
  gap: .55rem;
  min-width: 0;
}

.massa-produto-thumb.ssapps-image-thumbnail {
  display: grid;
  width: 36px;
  height: 36px;
  flex: 0 0 36px;
  place-items: center;
  padding: 0;
  overflow: hidden;
  border: 1px solid #e2e8f0;
  border-radius: 7px;
  background: #f8fafc;
  color: #94a3b8;
  cursor: zoom-in;
}

.massa-produto-thumb.ssapps-image-thumbnail img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.massa-produto-thumb.ssapps-image-thumbnail:hover,
.massa-produto-thumb.ssapps-image-thumbnail:focus-visible {
  border-color: #60a5fa;
  outline: 2px solid rgba(59, 130, 246, .2);
  outline-offset: 1px;
}

.massa-produto-body {
  display: flex;
  min-width: 0;
  flex-direction: column;
}

.massa-produto-body strong,
.massa-produto-body small {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.massa-produto-grupo { margin: 0 !important; padding-block: .12rem; }
.massa-product-actions { display: grid; }
.massa-produto-linha { display: flex; min-width: 0; align-items: center; gap: .35rem; }
.massa-produto-expandir { display: grid; width: 22px; height: 28px; flex: 0 0 22px; place-items: center; padding: 0; border: 0; background: transparent; color: #536b78; font-size: .65rem; }
.massa-produto-expandir:hover { color: #1d4ed8; }
.massa-produto-expandir.is-empty { pointer-events: none; }
.massa-complemento-produto { padding-left: 1.35rem; }
.massa-sem-complementos { padding-left: 1.35rem; color: #94a3b8; font-size: .75rem; font-style: italic; }
.massa-complemento-grupo-chip { display: inline-flex; align-items: center; min-height: 25px; padding: .15rem .5rem; border: 1px solid #d9e3f1; border-radius: 999px; background: #f3f6fb; color: #52698e; font-size: .7rem; font-weight: 700; }
.massa-complemento-preco { color: #273142; font-size: .76rem; white-space: nowrap; }

.massa-produto-body strong {
  color: #111827;
  font-size: .78rem;
}

.massa-produto-body small {
  color: #64748b;
  font-size: .75rem;
}

.massa-category-bulk {
  display: flex;
  align-items: end;
  gap: .35rem;
}

.massa-category-bulk-field {
  display: grid;
  width: 135px;
  min-width: 0;
  margin: 0;
}

.massa-category-bulk-field .form-select {
  min-height: 27px;
  padding-block: .1rem;
  border-color: #d7deea !important;
  border-bottom-color: #aeb8c8 !important;
  background-color: #eef2ff !important;
  color: #273142 !important;
  font-size: .61rem;
  font-weight: 700;
}

.massa-category-bulk-field .form-select:disabled {
  border-color: #d8deeb !important;
  border-bottom-color: #aeb9cc !important;
  background-color: #e9edf5 !important;
  color: #64748b !important;
}

.massa-operacional-table :is([data-massa-campo], [data-massa-lote-campo]):focus {
  border-color: #2563eb !important;
  border-bottom-color: #2563eb !important;
  box-shadow: none !important;
}

.massa-operacional-table :is([data-massa-campo], [data-massa-lote-campo]).massa-ultimo-alterado:not(:focus) {
  border-color: #16a34a !important;
  border-bottom-color: #16a34a !important;
  box-shadow: none !important;
}

@media (min-width: 769px) {
  .massa-operacional-table .ss-table-row:has(.massa-complemento-produto) > .ss-table-cell:first-child {
    padding-left: 4.1rem;
  }

  .massa-operacional-table .ss-table-row:has(.massa-complemento-produto) > .ss-table-cell:first-child::before {
    left: 2.55rem;
    width: 1rem;
  }

  .massa-operacional-table .ss-table-row:has(.massa-complemento-produto):not(:last-child) > .ss-table-cell:first-child::after {
    left: 2.55rem;
  }

  .massa-operacional-table .ss-table-row:has(.massa-complemento-produto) {
    background: #fbfcff !important;
  }

  .massa-operacional-table .ss-table-row:has(.massa-complemento-produto) .massa-complemento-produto {
    padding-left: 0;
  }

  .massa-operacional-table .ss-table-group-node--depth-1 > .ss-table-group {
    display: grid;
    grid-template-columns: var(--ss-table-template);
  }

  .massa-operacional-table .ss-table-group-node--depth-1 > .ss-table-group > .ss-table-group-toggle {
    width: auto;
    grid-column: 1 / 5;
  }

  .massa-operacional-table .ss-table-group-node--depth-1 > .ss-table-group > .ss-table-group-actions,
  .massa-operacional-table .ss-table-group-node--depth-1 > .ss-table-group > .ss-table-group-actions > .massa-category-bulk {
    display: contents;
  }

  .massa-operacional-table .massa-category-bulk-field {
    box-sizing: border-box;
    width: auto;
    padding: .25rem .55rem;
  }

  .massa-operacional-table .ss-table-group-node--depth-1 > .ss-table-group,
  .massa-operacional-table .ss-table-group-node--depth-1 > .ss-table-group-toggle {
    min-height: 32px;
  }

  .massa-operacional-table .ss-table-group-node--depth-1 .massa-category-bulk-field {
    padding-block: .15rem;
  }

  .massa-operacional-table .ss-table-group-node--depth-1 .massa-category-bulk-field .form-select {
    min-height: 25px;
    height: 25px;
  }

  .massa-operacional-table .ss-table-group-node--depth-2 > .ss-table-group {
    display: grid;
    grid-template-columns: var(--ss-table-template);
    min-height: 48px;
    background: #fff;
  }

  .massa-operacional-table .ss-table-group-node--depth-2 > .ss-table-group > .ss-table-group-toggle {
    width: auto;
    grid-column: 1;
    justify-content: flex-start;
    padding-block: .3rem;
  }

  .massa-operacional-table .ss-table-group-node--depth-2 > .ss-table-group > .ss-table-group-actions {
    display: block;
    width: auto;
    align-self: stretch;
    grid-column: 2 / -1;
    padding: 0;
  }

  .massa-operacional-table .ss-table-group-node--depth-2 .massa-product-actions {
    height: 100%;
    grid-template-columns: repeat(3, 76px) 140px 160px 180px 180px 180px;
  }

  .massa-operacional-table .massa-product-actions > :is(label, select) {
    box-sizing: border-box;
    align-self: stretch;
    margin: 0 !important;
    padding: .45rem .55rem;
    border-left: 1px solid #e2e8f0;
  }

  .massa-operacional-table .massa-product-actions > label {
    align-items: center;
  }

  .massa-operacional-table .massa-product-actions > select {
    width: calc(100% - .9rem);
    align-self: center;
    height: 31px;
    margin-inline: .45rem !important;
    padding: .2rem 1.65rem .2rem .45rem;
  }

  .massa-operacional-table .ss-table-group-node--depth-2 > .ss-table-group .ss-table-group-count {
    margin-left: .35rem;
  }

  .massa-operacional-table .ss-table-group-node--depth-2 > .ss-table-group-children .ss-table-row {
    background: #f9fbfe;
  }
}

@media (max-width: 768px) {
  .massa-page,
  .massa-page .massa-panel,
  .massa-table-wrap,
  .massa-operacional-table {
    min-height: 0;
  }

  .massa-table-wrap {
    padding: .55rem;
    overflow: visible;
  }

  .massa-category-bulk {
    display: grid;
    width: 100%;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .massa-category-bulk-field {
    width: auto;
  }
}

.analise-precos-toolbar {
  justify-content: flex-start;
  flex-wrap: wrap;
}

.analise-precos-toolbar .produtos-busca {
  min-width: 240px;
}

.analise-precos-toolbar .produtos-filtro-select {
  flex: 0 1 220px;
  min-width: 170px;
}

.analise-precos-toolbar .produtos-toolbar-actions {
  margin-left: auto;
}

.analise-precos-visoes {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  margin: 0.55rem 0.85rem 0;
  padding: 0.25rem;
  border: 1px solid #dbe3ee;
  border-radius: 8px;
  background: #eef2f7;
}

.analise-precos-visao {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
  min-height: 30px;
  padding: 0.3rem 0.65rem;
  border: 0;
  border-radius: 6px;
  background: transparent;
  color: #64748b;
  font-size: 0.72rem;
  font-weight: 800;
}

.analise-precos-visao:hover {
  color: #1e40af;
}

.analise-precos-visao.is-active {
  background: #fff;
  color: #1d4ed8;
  box-shadow: 0 1px 3px rgba(15, 23, 42, 0.14);
}

.analise-precos-resumos {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  align-items: stretch;
  gap: 0.6rem;
  margin: 0.65rem 0.85rem 0;
}

.analise-precos-resumos > [hidden] {
  display: none !important;
}

.analise-precos-resumos > .analise-precos-margens,
.analise-precos-resumos > .analise-precos-ifood-resumo {
  min-width: 0;
  height: 100%;
  margin: 0;
  padding: 0.65rem 0.7rem;
}

.analise-precos-margens {
  flex: 0 0 auto;
  margin: 0.75rem 0.85rem 0;
  padding: 0.8rem;
  border: 1px solid #fecaca;
  border-radius: 8px;
  background: #fff7f7;
}

.analise-precos-margens-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.6rem;
}

.analise-precos-margens-head h6 {
  margin: 0;
  color: #991b1b;
  font-size: 0.82rem;
  font-weight: 800;
}

.analise-precos-margens-head p {
  max-width: 620px;
  margin: 0.2rem 0 0;
  color: #64748b;
  font-size: 0.69rem;
  line-height: 1.3;
}

.analise-precos-margens-stats {
  display: flex;
  align-items: flex-end;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 0.3rem;
}

.analise-precos-margem-campo {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  margin: 0;
  color: #475569;
  font-size: .69rem;
  font-weight: 800;
}

.analise-precos-margem-campo input {
  width: 74px;
  min-height: 28px;
  padding-top: 0.2rem;
  padding-bottom: 0.2rem;
}

.analise-precos-filtro-reajuste {
  display: inline-flex;
  align-items: center;
  gap: .38rem;
  min-height: 28px;
  margin: 0;
  padding: .2rem .45rem .2rem .38rem;
  border: 1px solid #cbd5e1;
  border-radius: 7px;
  background: #fff;
  color: #334155;
  font-size: .68rem;
  font-weight: 800;
  white-space: nowrap;
}

.analise-precos-filtro-reajuste:has(.form-check-input:checked) {
  border-color: #93c5fd;
  background: #eff6ff;
  color: #1d4ed8;
}

.analise-precos-filtro-reajuste .form-check-input {
  float: none;
  flex: 0 0 auto;
  margin: 0;
}

.analise-precos-margem-badge {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 0.25rem 0.45rem;
  border: 1px solid #cbd5e1;
  border-radius: 7px;
  background: #fff;
  color: #334155;
  font-size: .68rem;
  font-weight: 800;
  white-space: nowrap;
}

.analise-precos-margem-badge.is-danger {
  border-color: #fecaca;
  background: #fee2e2;
  color: #991b1b;
}

.analise-precos-margem-badge.is-warning {
  border-color: #fde68a;
  background: #fef3c7;
  color: #92400e;
}

.analise-precos-margens-list {
  display: grid;
  grid-template-columns: repeat(6, minmax(120px, 1fr));
  gap: 0.3rem;
  margin-top: 0.45rem;
}

.analise-precos-margem-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.35rem;
  min-width: 0;
  padding: 0.3rem 0.45rem;
  border: 1px solid #fecaca;
  border-radius: 7px;
  background: #fff;
  color: #7f1d1d;
  font-size: .68rem;
}

.analise-precos-margem-item strong {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.analise-precos-margem-item span {
  flex: 0 0 auto;
  font-weight: 800;
}

.analise-precos-margem-vazio {
  grid-column: 1 / -1;
  color: #64748b;
  font-size: 0.76rem;
}

.analise-precos-ifood-resumo {
  flex: 0 0 auto;
  margin: 0.65rem 0.85rem 0;
  padding: 0.8rem;
  border: 1px solid #bfdbfe;
  border-radius: 8px;
  background: #f8fbff;
}

.analise-precos-ifood-resumo.is-warning {
  border-color: #fde68a;
  background: #fffbeb;
}

.analise-precos-ifood-resumo-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.6rem;
}

.analise-precos-ifood-acoes {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: .4rem;
}

.analise-precos-ifood-kicker {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  color: #2563eb;
  font-size: .65rem;
  font-weight: 900;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.analise-precos-ifood-resumo h6 {
  margin: .15rem 0 0;
  color: #0f172a;
  font-size: .8rem;
  font-weight: 850;
}

.analise-precos-ifood-resumo p {
  max-width: 820px;
  margin: .2rem 0 0;
  color: #64748b;
  font-size: .69rem;
  line-height: 1.3;
}

.analise-precos-ifood-stats {
  display: grid;
  gap: .38rem;
  margin-top: .45rem;
}

.analise-precos-ifood-chips {
  display: flex;
  flex-wrap: wrap;
  gap: .3rem;
}

.analise-precos-ifood-kpis {
  display: grid;
  grid-template-columns: repeat(3, minmax(175px, 1fr));
  gap: .35rem;
  overflow-x: auto;
  padding-bottom: 1px;
}

.analise-precos-ifood-kpis:empty {
  display: none;
}

.analise-precos-ifood-stats span {
  display: inline-flex;
  align-items: center;
  gap: .3rem;
  min-height: 28px;
  padding: .22rem .42rem;
  border: 1px solid #cbd5e1;
  border-radius: 7px;
  background: #fff;
  color: #475569;
  font-size: .68rem;
  font-weight: 750;
}

.analise-precos-ifood-stats .is-danger {
  border-color: #fecaca;
  color: #b91c1c;
}

.analise-precos-ifood-stats .is-success {
  border-color: #bbf7d0;
  color: #15803d;
}

.analise-precos-ifood-stats .is-info {
  border-color: #bfdbfe;
  color: #1d4ed8;
}

.analise-precos-ifood-stats .is-warning {
  border-color: #fde68a;
  color: #a16207;
}

.analise-precos-ifood-impacto {
  display: grid !important;
  align-content: center;
  gap: .08rem !important;
  min-width: 175px;
  min-height: 45px !important;
  white-space: nowrap;
}

.analise-precos-ifood-impacto small,
.analise-precos-ifood-impacto em {
  display: block;
  font-size: .57rem;
  font-style: normal;
  font-weight: 650;
  line-height: 1.15;
}

.analise-precos-ifood-impacto small {
  color: #64748b;
}

.analise-precos-ifood-impacto strong {
  font-size: .82rem;
  line-height: 1.1;
}

.analise-precos-ifood-impacto em {
  color: #94a3b8;
}

.analise-precos-ifood-impacto.is-loading strong {
  animation: analise-precos-pulse 1.15s ease-in-out infinite;
}

@keyframes analise-precos-pulse {
  50% { opacity: .35; }
}

.analise-precos-table-wrap {
  display: flex;
  min-height: 300px;
}

.analise-precos-table {
  flex: 1 1 auto;
  height: 100%;
  min-height: 300px;
  max-height: 100%;
}

.analise-precos-table .ss-table-cell.is-number .ss-table-cell-content {
  display: flex;
  justify-content: flex-end;
  text-align: right;
}

.analise-precos-table .ss-table-cell.is-center .ss-table-cell-content {
  display: flex;
  justify-content: center;
}

.analise-precos-table .ss-grid-input {
  width: 100%;
  min-width: 0;
}

.analise-precos-produto {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  min-width: 0;
}

.analise-precos-produto-thumb.ssapps-image-thumbnail {
  display: grid;
  width: 36px;
  height: 36px;
  flex: 0 0 36px;
  place-items: center;
  padding: 0;
  overflow: hidden;
  border: 1px solid #e2e8f0;
  border-radius: 7px;
  background: #f8fafc;
  color: #94a3b8;
  cursor: zoom-in;
}

.analise-precos-produto-thumb.ssapps-image-thumbnail img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.analise-precos-produto-thumb.ssapps-image-thumbnail:hover,
.analise-precos-produto-thumb.ssapps-image-thumbnail:focus-visible {
  border-color: #60a5fa;
  outline: 2px solid rgba(59, 130, 246, 0.2);
  outline-offset: 1px;
}

.analise-precos-produto-body {
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.analise-precos-produto-body strong,
.analise-precos-produto-body small {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.analise-precos-produto-body strong {
  color: #111827;
  font-size: 0.78rem;
}

.analise-precos-produto-body small {
  color: #64748b;
  font-size: .75rem;
}

.analise-precos-valor {
  width: 100%;
  text-align: right;
  font-variant-numeric: tabular-nums;
}

.analise-precos-valor.is-muted {
  color: #94a3b8;
}

.analise-precos-valor.is-danger {
  color: #b91c1c;
  font-weight: 700;
}

.analise-precos-valor.is-success {
  color: #15803d;
  font-weight: 700;
}

.analise-precos-ifood-diferenca {
  display: inline-flex;
  justify-content: flex-end;
  white-space: nowrap;
}

.analise-precos-margem-status {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 58px;
  padding: 0.24rem 0.42rem;
  border-radius: 999px;
  font-size: .75rem;
  font-weight: 800;
}

.analise-precos-margem-status.is-success {
  background: #dcfce7;
  color: #166534;
}

.analise-precos-margem-status.is-warning {
  background: #fef3c7;
  color: #92400e;
}

.analise-precos-margem-status.is-danger {
  background: #fee2e2;
  color: #991b1b;
}

.analise-precos-margem-status.is-muted {
  background: #f1f5f9;
  color: #64748b;
}

@media (max-width: 1199.98px) {
  .analise-precos-margens-head {
    flex-direction: column;
  }

  .analise-precos-margens-stats {
    justify-content: flex-start;
  }

  .analise-precos-margens-list {
    grid-template-columns: repeat(3, minmax(130px, 1fr));
  }
}

@media (max-width: 767.98px) {
  .analise-precos-ifood-resumo-head {
    flex-direction: column;
  }

  .analise-precos-ifood-acoes {
    justify-content: flex-start;
    width: 100%;
  }

  .analise-precos-toolbar .produtos-busca,
  .analise-precos-toolbar .produtos-filtro-select {
    flex: 1 1 100%;
    max-width: none;
    width: 100%;
  }

  .analise-precos-toolbar .produtos-toolbar-actions {
    width: 100%;
    margin-left: 0;
  }

  .analise-precos-visoes {
    display: flex;
  }

  .analise-precos-visao {
    flex: 1 1 0;
  }

  .analise-precos-margens-list {
    grid-template-columns: 1fr;
  }
}

.produtos-categorias-grid .ag-row.produtos-cardapio-row .ag-cell {
  background: #fff !important;
  font-weight: 800;
}

.produtos-categorias-grid .ag-row.produtos-cardapio-row {
  background: #fff !important;
}

.produtos-cardapio-title,
.produtos-categoria-name {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  min-width: 0;
}

.produtos-cardapio-title i {
  font-size: 0.84rem;
}

.produtos-categoria-name {
  font-weight: 600;
}

.produtos-categoria-drag {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 18px;
  width: 18px;
  height: 24px;
  margin-right: 0.1rem;
  color: #64748b;
  cursor: grab;
  user-select: none;
}

.produtos-categoria-drag:active {
  cursor: grabbing;
}

.produtos-categoria-drag i {
  font-size: 1rem;
  line-height: 1;
}

.produtos-categoria-vazia {
  color: #64748b;
  font-style: italic;
  font-weight: 500;
}

.produtos-categorias-grid .ag-row.produtos-categoria-placeholder .ag-cell {
  background: #f8fafc;
}

.produtos-categorias-grid .ag-details-row {
  padding: 8px 14px 10px 48px;
  background: #f5f7fb;
}

.produtos-categorias-grid .ag-details-grid {
  overflow: visible;
  height: auto !important;
  border: 1px solid #aeb9c9;
  border-radius: 6px;
  background: #fff;
  box-shadow: 0 3px 10px rgba(15, 23, 42, 0.12);
}

.produtos-categorias-grid .ag-details-grid .ag-header-cell-text {
  font-size: .75rem;
  font-weight: 800;
}

.produtos-detail-name {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  width: 100%;
  min-width: 0;
  height: 100%;
}

.produtos-detail-drag {
  margin-right: -0.15rem;
}

.produtos-detail-image {
  flex: 0 0 34px;
  width: 34px;
  height: 34px;
  border: 1px solid #d7deea;
  border-radius: 5px;
  object-fit: cover;
  background: #f8fafc;
}

.produtos-detail-image-action {
  display: inline-grid;
  flex: 0 0 36px;
  width: 36px;
  height: 36px;
  place-items: center;
  padding: 0;
  border: 0;
  border-radius: 6px;
  background: transparent;
}

button.produtos-detail-image-action {
  cursor: pointer;
}

button.produtos-detail-image-action:hover .produtos-detail-image {
  border-color: var(--ss-primary, #4f46e5);
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--ss-primary, #4f46e5) 18%, transparent);
}

.produtos-detail-name-body {
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-width: 0;
  line-height: 1.15;
}

.produtos-detail-name-body strong,
.produtos-detail-name-body small {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.produtos-detail-name-body strong {
  font-size: 0.82rem;
  font-weight: 700;
}

.produtos-detail-name-body small {
  margin-top: 0.16rem;
  color: #64748b;
  font-size: .75rem;
}

.produtos-detail-dias {
  color: #475569;
  font-size: 0.75rem;
  white-space: nowrap;
}

.produtos-detail-pdv {
  width: 100%;
  height: 28px;
  border: 1px solid #cbd5e1;
  border-radius: 5px;
  padding: 0 0.45rem;
  background: #fff;
  color: #111827;
  font-size: 0.78rem;
}

.produtos-detail-pdv:focus {
  border-color: var(--cor-unidade, #4b00c8);
  outline: 2px solid color-mix(in srgb, var(--cor-unidade, #4b00c8) 16%, transparent);
}

.produtos-detail-pdv:disabled {
  background: #f1f5f9;
  color: #64748b;
}

.produtos-detail-switch {
  margin: 0;
}

.produto-cadastro-modal .modal-dialog {
  max-width: min(1000px, calc(100vw - 32px));
}

.produto-cadastro-modal .modal-content {
  height: min(840px, calc(100dvh - 32px));
}

.produto-cadastro-modal .modal-body {
  min-height: 0;
  padding: 0;
  overflow: hidden;
}

.produtos-cadastro-tabs {
  flex: 0 0 auto;
  padding: 0 1rem;
  overflow-x: auto;
  flex-wrap: nowrap;
  background: #fff;
  border-bottom: 1px solid #d7deea;
}

.produtos-cadastro-tabs .nav-link {
  white-space: nowrap;
  border-radius: 0;
  font-size: 0.78rem;
  font-weight: 700;
  color: #4f46e5;
  border: 0;
  border-bottom: 2px solid transparent;
  min-height: 42px;
}

.produtos-cadastro-tabs .nav-link.active {
  color: #050816;
  border-bottom-color: #050816;
  background: transparent;
}

.produtos-cadastro-content {
  height: calc(100% - 42px);
  min-height: 0;
  background: #fff;
}

.produtos-cadastro-content > .tab-pane {
  height: 100%;
  padding: 1rem;
  overflow: auto;
}

.produtos-cadastro-grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 0.55rem 0.7rem;
  align-items: end;
}

.produto-cad-id {
  grid-column: 1 / span 2;
  grid-row: 1;
}

.produto-cad-nome {
  grid-column: 3 / span 4;
  grid-row: 1;
}

.produto-cad-serve {
  grid-column: 7 / span 3;
  grid-row: 1;
}

.produto-cad-preparo {
  grid-column: 10 / span 3;
  grid-row: 1;
}

.produto-cad-descricao {
  grid-column: 1 / -1;
  grid-row: 2;
}

.produto-cad-categoria {
  grid-column: 1 / span 3;
  grid-row: 3;
}

.produto-cad-tipo {
  grid-column: 4 / span 2;
  grid-row: 3;
}

.produto-cad-unidade {
  grid-column: 6 / span 2;
  grid-row: 3;
}

.produto-cad-ref {
  grid-column: 8 / span 2;
  grid-row: 3;
}

.produto-cad-codigo {
  grid-column: 10 / span 3;
  grid-row: 3;
}

.produto-cad-estoque {
  grid-column: 1 / span 2;
  grid-row: 4;
}

.produto-cad-estoque-min {
  grid-column: 1 / span 2;
  grid-row: 4;
}

.produto-cad-estoque-max {
  grid-column: 3 / span 2;
  grid-row: 4;
}

.produto-cad-custo {
  grid-column: 5 / span 2;
  grid-row: 4;
}

.produto-cad-ean {
  grid-column: 7 / span 6;
  grid-row: 4;
}

.produto-cad-estoque:not([hidden]) ~ .produto-cad-estoque-min {
  grid-column: 3 / span 2;
}

.produto-cad-estoque:not([hidden]) ~ .produto-cad-estoque-max {
  grid-column: 5 / span 2;
}

.produto-cad-estoque:not([hidden]) ~ .produto-cad-custo {
  grid-column: 7 / span 2;
}

.produto-cad-estoque:not([hidden]) ~ .produto-cad-ean {
  grid-column: 9 / span 4;
}

.produto-cad-action-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 34px;
  width: 34px;
  padding: 0;
}

.produtos-cadastro-switches {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.65rem 1.25rem;
  margin-top: 0.9rem;
  padding: 0.7rem 0;
  border-top: 1px solid #e2e8f0;
  border-bottom: 1px solid #e2e8f0;
}

.produtos-cadastro-switch {
  margin: 0;
}

.produtos-precos-table input {
  min-width: 86px;
}

.produto-programacao-table th:nth-child(5),
.produto-programacao-table td:nth-child(5) {
  width: 132px;
}

.produto-programacao-preco {
  width: 120px;
  max-width: 120px;
}

.produtos-imagens-layout {
  display: grid;
  grid-template-columns: 300px minmax(0, 1fr);
  gap: 1rem;
  align-items: stretch;
}

.produto-foto-card {
  min-width: 0;
  border: 1px solid #dbe3ef;
  border-radius: 8px;
  background: #fff;
  padding: 1rem;
}

.produto-foto-card-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem;
  margin-bottom: 0.9rem;
}

.produto-foto-card-head h6 {
  margin: 0 0 0.15rem;
  color: #111827;
  font-size: 0.95rem;
  font-weight: 800;
}

.produto-foto-card-head span {
  color: #64748b;
  font-size: 0.75rem;
}

.produtos-icon-btn.produtos-muted {
  background: #eef2f7;
  color: #64748b;
}

.produtos-icon-btn.produtos-muted:hover,
.produtos-icon-btn.produtos-muted:focus {
  color: #111827;
}

.produto-imagem-destaque {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 190px;
  aspect-ratio: 1;
  margin: 0 auto;
  overflow: hidden;
  border: 1px dashed #a8b3c7;
  border-radius: 50%;
  padding: 0;
  background: #f8fafc;
  color: #4b5563;
  box-shadow: 0 10px 24px rgba(15, 23, 42, 0.09);
}

.produto-imagem-destaque img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.produto-imagem-destaque.is-empty img {
  display: none;
}

.produto-imagem-empty {
  display: none;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
  text-align: center;
  font-size: 0.78rem;
}

.produto-imagem-empty i {
  font-size: 2rem;
}

.produto-imagem-destaque.is-empty .produto-imagem-empty {
  display: flex;
}

.produto-imagem-overlay {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.45rem;
  background: rgba(15, 23, 42, 0.58);
  color: #fff;
  opacity: 0;
  transition: opacity 0.15s ease;
  font-size: 0.78rem;
}

.produto-imagem-destaque:hover .produto-imagem-overlay,
.produto-imagem-destaque:focus .produto-imagem-overlay {
  opacity: 1;
}

.produto-imagem-destaque.is-empty .produto-imagem-overlay {
  display: none;
}

.produto-galeria-actions {
  display: flex;
  align-items: center;
  gap: 0.55rem;
}

.produto-galeria-contador {
  display: inline-flex;
  align-items: center;
  min-height: 26px;
  padding: 0 0.55rem;
  border-radius: 999px;
  background: #eef2f7;
  color: #334155;
  font-size: .75rem;
  font-weight: 800;
}

.produto-galeria-drop {
  min-height: 254px;
  border: 2px dashed #cfd8ea;
  border-radius: 8px;
  background: #fff;
  padding: 0.9rem;
  cursor: pointer;
  transition: border-color 0.15s ease, background-color 0.15s ease;
}

.produto-galeria-drop:hover,
.produto-galeria-drop:focus {
  border-color: #8da2c8;
  outline: none;
}

.produto-galeria-empty {
  min-height: 210px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.55rem;
  color: #374151;
  text-align: center;
}

.produto-galeria-empty[hidden] {
  display: none;
}

.produto-galeria-empty i {
  font-size: 2.2rem;
  color: #64748b;
}

.produtos-galeria-lista {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(118px, 1fr));
  gap: 0.8rem;
}

.produtos-galeria-item {
  position: relative;
  aspect-ratio: 1;
  overflow: hidden;
  border: 1px solid #d7deea;
  border-radius: 8px;
  background: #f8fafc;
  box-shadow: 0 8px 18px rgba(15, 23, 42, 0.08);
}

.produtos-galeria-item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.produtos-galeria-item .produtos-icon-btn {
  position: absolute;
  top: 6px;
  right: 6px;
}

.produto-complementos-box {
  min-height: 100%;
}

.produto-complementos-pane {
  overflow: visible;
}

.produto-complementos-toolbar {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 0.9rem;
  margin-bottom: 1rem;
  overflow: visible;
}

.produto-complementos-toolbar__search {
  flex: 1 1 auto;
  max-width: 360px;
}

.produto-complementos-toolbar__search label {
  margin-bottom: 0.35rem;
  color: #111827;
  font-size: 0.82rem;
  font-weight: 600;
}

.produto-complementos-toolbar__side {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 0.65rem;
  flex-wrap: wrap;
}

.produto-complementos-busca-wrap {
  position: relative;
  overflow: visible;
}

.produto-complementos-busca-resultados {
  display: none;
  position: absolute;
  z-index: 30;
  top: calc(100% + 4px);
  left: 0;
  min-width: min(460px, calc(100vw - 48px));
  max-height: 280px;
  overflow-y: auto;
  border: 1px solid #c9d7ef;
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 14px 30px rgba(15, 23, 42, 0.16);
}

.produto-complementos-busca-resultados.is-open {
  display: block;
}

.produto-complementos-resultado {
  width: 100%;
  display: block;
  padding: 0.65rem 0.85rem;
  border: 0;
  border-bottom: 1px solid #edf2f7;
  background: transparent;
  color: #111827;
  font-size: 0.78rem;
  line-height: 1.35;
  text-align: left;
}

.produto-complementos-resultado:last-child {
  border-bottom: 0;
}

.produto-complementos-resultado:hover,
.produto-complementos-resultado:focus {
  background: #eef5ff;
  outline: none;
}

.produto-complementos-resultado__head,
.produto-complementos-selecionado__title-row {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  min-width: 0;
}

.produto-complementos-impacto-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  min-height: 22px;
  padding: 0.15rem 0.55rem;
  border: 1px solid #86efac;
  border-radius: 999px;
  background: #dcfce7;
  color: #166534;
  font-size: 0.68rem;
  font-weight: 800;
  line-height: 1.15;
  white-space: nowrap;
}

.produto-complementos-impacto-badge:hover,
.produto-complementos-impacto-badge:focus {
  border-color: #22c55e;
  background: #bbf7d0;
  color: #14532d;
  outline: none;
}

.produto-complementos-impacto-intro {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  padding: 0.85rem 1rem;
  border: 1px solid #bbf7d0;
  border-radius: 10px;
  background: #f0fdf4;
}

.produto-complementos-impacto-intro > span,
.produto-complementos-impacto-intro > small {
  color: #4b5563;
  font-size: 0.76rem;
}

.produto-complementos-impacto-intro > strong {
  color: #14532d;
  font-size: 0.95rem;
}

.produto-complementos-impacto-lista {
  display: grid;
  gap: 0.45rem;
  max-height: 290px;
  margin-top: 0.85rem;
  overflow-y: auto;
}

.produto-complementos-impacto-produto {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.65rem 0.8rem;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  background: #fff;
}

.produto-complementos-impacto-produto > span {
  min-width: 0;
  color: #1f2937;
  font-size: 0.78rem;
  font-weight: 700;
}

.produto-complementos-impacto-produto > small {
  flex: 0 0 auto;
  color: #166534;
  font-size: 0.68rem;
  font-weight: 800;
}

.produto-complementos-impacto-escolha {
  display: grid;
  gap: 0.55rem;
  margin: 1rem 0 0;
  padding: 0;
  border: 0;
}

.produto-complementos-impacto-escolha--grupo {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin: 0 0 0.85rem;
  padding: 0.8rem;
  border: 1px solid #dbe3ef;
  border-radius: 10px;
  background: #f8fafc;
}

.produto-complementos-impacto-escolha--grupo legend {
  grid-column: 1 / -1;
}

@media (max-width: 720px) {
  .produto-complementos-impacto-escolha--grupo {
    grid-template-columns: 1fr;
  }
}

.produto-complementos-impacto-escolha legend {
  margin-bottom: 0.1rem;
  color: #111827;
  font-size: 0.8rem;
  font-weight: 800;
}

.produto-complementos-impacto-opcao {
  display: flex;
  align-items: flex-start;
  gap: 0.7rem;
  padding: 0.75rem 0.85rem;
  border: 1px solid #dbe3ef;
  border-radius: 9px;
  background: #fff;
  cursor: pointer;
}

.produto-complementos-impacto-opcao:has(input:checked) {
  border-color: #22c55e;
  background: #f0fdf4;
}

.produto-complementos-impacto-opcao input {
  margin-top: 0.18rem;
  accent-color: #16a34a;
}

.produto-complementos-impacto-opcao > span {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
}

.produto-complementos-impacto-opcao strong {
  color: #111827;
  font-size: 0.78rem;
}

.produto-complementos-impacto-opcao small {
  color: #64748b;
  font-size: 0.72rem;
}

.produto-complementos-resultado__titulo {
  color: #111827;
  font-weight: 800;
}

.produto-complementos-resultado__meta,
.produto-complementos-selecionado__meta,
.produto-complementos-item__meta {
  color: #64748b;
  font-size: .75rem;
}

.produto-complementos-resultado__meta,
.produto-complementos-selecionado__meta {
  margin-top: 0.2rem;
}

.produto-complementos-resultado-empty {
  padding: 0.75rem 0.85rem;
  color: #64748b;
  font-size: 0.76rem;
  font-weight: 700;
}

.produto-complementos-resumo {
  color: #3d00c6;
  font-size: 0.75rem;
  font-weight: 800;
  white-space: nowrap;
}

.produto-complementos-ghostbtn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
  min-height: 30px;
  padding: 0 0.75rem;
  border: 1px solid #dbe3ef;
  border-radius: 8px;
  background: #fff;
  color: #334155;
  font-size: 0.76rem;
  font-weight: 800;
  line-height: 1.2;
  white-space: nowrap;
}

.produto-complementos-ghostbtn:hover:not(:disabled),
.produto-complementos-ghostbtn:focus:not(:disabled) {
  border-color: #9fb4d9;
  background: #f8fbff;
  color: #0b3ea8;
}

.produto-complementos-ghostbtn:disabled {
  opacity: 0.72;
  cursor: not-allowed;
}

.produto-complementos-ghostbtn--round {
  width: 30px;
  min-width: 30px;
  height: 30px;
  min-height: 30px;
  padding: 0;
  border-radius: 50%;
}

.produto-complementos-selecionados {
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
}

.produto-complementos-selecionado {
  position: relative;
  z-index: 0;
  width: 100%;
  overflow: hidden;
  border: 1px solid #dbe3ef;
  border-radius: 8px;
  background: #fff;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.produto-complementos-selecionado.is-autocomplete-open {
  z-index: 1200;
  overflow: visible;
}

.produto-complementos-selecionado:hover {
  border-color: #9fb4d9;
}

.produto-complementos-selecionado.is-expanded {
  border-color: #4c00ff;
  box-shadow: inset 0 0 0 1px rgba(76, 0, 255, 0.08);
}

.produto-complementos-selecionado.is-dragging {
  opacity: 0.58;
}

.produto-complementos-selecionado.is-drag-over {
  border-color: #4c00ff;
  background: #f7f4ff;
}

.produto-complementos-selecionado__header {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.75rem;
}

.produto-complementos-selecionado__handle,
.produto-complementos-item__handle {
  flex: 0 0 18px;
  color: #94a3b8;
  font-size: 1rem;
  line-height: 1;
  text-align: center;
  cursor: grab;
}

.produto-complementos-selecionado__handle:active,
.produto-complementos-item__handle:active {
  cursor: grabbing;
}

.produto-complementos-selecionado__body {
  flex: 1 1 auto;
  min-width: 0;
  border: 0;
  background: transparent;
  padding: 0;
  text-align: left;
}

.produto-complementos-selecionado__editbox {
  flex: 1 1 auto;
  min-width: 0;
}

.produto-complementos-selecionado__actions {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  order: 3;
  margin-left: auto;
}

.produto-complementos-selecionado__body,
.produto-complementos-selecionado__editbox {
  order: 2;
}

.produto-complementos-inline-autocomplete {
  position: relative;
  flex: 1 1 260px;
  min-width: 180px;
}

.produto-complementos-inline-autocomplete .produto-complementos-inline-control--nome,
.produto-complementos-inline-autocomplete .produto-complementos-item__control--nome {
  width: 100%;
  min-width: 0;
}

.produto-complementos-inline-resultados {
  display: none;
  position: absolute;
  z-index: 1220;
  top: calc(100% + 4px);
  left: 0;
  right: 0;
  max-height: 220px;
  overflow-y: auto;
  border: 1px solid #c9d7ef;
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 12px 24px rgba(15, 23, 42, 0.16);
}

.produto-complementos-inline-resultados.is-open {
  display: block;
}

.produto-complementos-inline-head,
.produto-complementos-item__editbox {
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
  min-width: 0;
}

.produto-complementos-inline-head__row,
.produto-complementos-item__row {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  flex-wrap: wrap;
  min-width: 0;
}

.produto-complementos-inline-head__row--regras {
  padding-top: 0.15rem;
}

.produto-complementos-grupo-switch {
  margin: 0 0.35rem 0 0;
  white-space: nowrap;
}

.produto-complementos-inline-head__label--cobranca {
  width: auto;
  min-width: 0;
  margin-left: 0.35rem;
  text-align: left;
}

.produto-complementos-inline-head__label,
.produto-complementos-item__label {
  color: #64748b;
  font-size: .75rem;
  font-weight: 800;
  min-width: 42px;
  text-align: right;
}

.produto-complementos-inline-head__count {
  color: #64748b;
  font-size: .75rem;
  font-weight: 800;
}

.produto-complementos-inline-control--nome,
.produto-complementos-item__control--nome,
.produto-complementos-item__control--descricao {
  flex: 1 1 260px;
  min-width: 180px;
}

.produto-complementos-inline-select {
  min-width: 165px;
}

.produto-complementos-inline-control--mini {
  width: 54px;
  text-align: center;
}

.produto-complementos-item__control--money {
  width: 86px;
  text-align: right;
}

.produto-complementos-item__control--pdv {
  width: 68px;
}

.produto-complementos-selecionado__titulo {
  color: #111827;
  font-size: 0.82rem;
  font-weight: 900;
  line-height: 1.35;
}

.produto-complementos-selecionado__edit,
.produto-complementos-selecionado__toggle,
.produto-complementos-selecionado__remove {
  flex: 0 0 auto;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.78rem;
}

.produto-complementos-selecionado__edit {
  border: 1px solid #dbe3ef;
  background: #fff;
  color: #334155;
}

.produto-complementos-selecionado__edit:disabled {
  opacity: 0.68;
  cursor: not-allowed;
}

.produto-complementos-selecionado__toggle {
  border: 0;
  background: #e8f0ff;
  color: #3d00c6;
  transition: transform 0.15s ease, background-color 0.15s ease;
}

.produto-complementos-selecionado.is-expanded .produto-complementos-selecionado__toggle {
  transform: rotate(180deg);
  background: #dbeafe;
}

.produto-complementos-selecionado__remove,
.produto-complementos-item__remove {
  border: 1px solid #fecaca;
  background: #fff5f5;
  color: #e11d48;
}

.produto-complementos-selecionado__remove:hover {
  background: #fee2e2;
  border-color: #fca5a5;
}

.produto-complementos-grupo__body {
  padding: 0.75rem;
  border-top: 1px solid #e5edf8;
  background: #fff;
}

.produto-complementos-grupo__toolbar {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem;
  margin-bottom: 0.75rem;
}

.produto-complementos-grupo__actions {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  flex-wrap: wrap;
}

.produto-complementos-grupo__search {
  width: 240px;
  max-width: 100%;
}

.produto-complementos-itens {
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
}

.produto-complementos-item {
  position: relative;
  z-index: 0;
  display: flex;
  align-items: center;
  gap: 0.75rem;
  border: 1px solid #e7edf6;
  border-radius: 8px;
  background: #fbfdff;
  padding: 0.65rem 0.75rem;
}

.produto-complementos-item.is-autocomplete-open {
  z-index: 1210;
}

.produto-complementos-item__thumb {
  flex: 0 0 44px;
  width: 44px;
  height: 44px;
  overflow: hidden;
  border-radius: 8px;
  background: #e2e8f0;
  display: flex;
  align-items: center;
  justify-content: center;
}

.produto-complementos-item__thumb img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}

.produto-complementos-item__thumb-fallback {
  color: #64748b;
  font-size: 1.2rem;
  font-weight: 800;
}

.produto-complementos-item__body {
  flex: 1 1 auto;
  min-width: 0;
}

.produto-complementos-item__title {
  color: #111827;
  font-size: 0.82rem;
  font-weight: 900;
  line-height: 1.35;
}

.produto-complementos-item__actions {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  gap: 0.4rem;
  order: 4;
  margin-left: auto;
}

.produto-complementos-item-ficha {
  border-color: #bfdbfe;
  background: #eff6ff;
  color: #1d4ed8;
}

.produto-complementos-item-ficha:hover,
.produto-complementos-item-ficha:focus,
.produto-complementos-item-ficha.is-active {
  border-color: #93c5fd;
  background: #dbeafe;
  color: #1e3a8a;
}

.produto-complementos-item.is-editing {
  align-items: flex-start;
}

.produto-complementos-item__thumb {
  order: 1;
}

.produto-complementos-item__body,
.produto-complementos-item__editbox {
  order: 2;
}

.produto-complementos-item__ordem {
  order: 5;
}

.produto-complementos-item.is-dragging {
  opacity: 0.58;
}

.produto-complementos-item.is-drag-over {
  border-color: #4c00ff;
  background: #f7f4ff;
}

.produto-complementos-item__switch {
  margin-left: 0.35rem;
}

.produto-complementos-item.is-ficha-open {
  flex-wrap: wrap;
  border-color: #93c5fd;
  background: #fff;
}

.produto-complementos-ficha {
  order: 6;
  flex: 1 0 100%;
  width: 100%;
  margin-top: 0.15rem;
  padding-top: 0.8rem;
  border-top: 1px solid #dbeafe;
}

.produto-complementos-ficha__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  margin-bottom: 0.75rem;
}

.produto-complementos-ficha__head > div {
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.produto-complementos-ficha__head strong {
  color: #111827;
  font-size: 0.82rem;
  font-weight: 900;
}

.produto-complementos-ficha__head small {
  color: #64748b;
  font-size: .75rem;
}

.produto-complementos-ficha__head > span {
  flex: 0 0 auto;
  padding: 0.38rem 0.65rem;
  border-radius: 999px;
  background: #eef4ff;
  color: #0b3ea8;
  font-size: .75rem;
  font-weight: 900;
}

.produto-complementos-ficha__form {
  display: grid;
  grid-template-columns: minmax(220px, 1fr) 86px 94px 94px 34px;
  align-items: end;
  gap: 0.55rem;
  padding: 0.75rem;
  border: 1px solid #dbe3ef;
  border-radius: 8px;
  background: #f8fafc;
}

.produto-complementos-ficha__form label {
  position: relative;
  min-width: 0;
}

.produto-complementos-ficha__form label > span {
  display: block;
  margin-bottom: 0.2rem;
  color: #64748b;
  font-size: .75rem;
  font-weight: 800;
}

.produto-complementos-ficha-add {
  width: 34px;
  height: 30px;
  padding: 0;
}

.produto-complementos-ficha__resultados {
  display: none;
  position: absolute;
  z-index: 1240;
  top: calc(100% + 4px);
  left: 0;
  right: 0;
  max-height: 220px;
  overflow-y: auto;
  border: 1px solid #c9d7ef;
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 12px 24px rgba(15, 23, 42, 0.16);
}

.produto-complementos-ficha__resultados.is-open {
  display: block;
}

.produto-complementos-ficha__resultado {
  display: flex;
  width: 100%;
  flex-direction: column;
  align-items: flex-start;
  padding: 0.55rem 0.65rem;
  border: 0;
  border-bottom: 1px solid #edf2f7;
  background: #fff;
  text-align: left;
}

.produto-complementos-ficha__resultado:hover,
.produto-complementos-ficha__resultado:focus {
  background: #eef5ff;
  outline: none;
}

.produto-complementos-ficha__resultado strong {
  color: #111827;
  font-size: 0.76rem;
}

.produto-complementos-ficha__resultado small,
.produto-complementos-ficha__empty {
  color: #64748b;
  font-size: .75rem;
}

.produto-complementos-ficha__empty {
  padding: 0.7rem;
  text-align: center;
}

.produto-complementos-ficha__linhas {
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
  margin-top: 0.65rem;
}

.produto-complementos-ficha__linha {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto 30px;
  align-items: center;
  gap: 0.75rem;
  padding: 0.55rem 0.65rem;
  border: 1px solid #e7edf6;
  border-radius: 8px;
  background: #fbfdff;
}

.produto-complementos-ficha__linha > div:first-child {
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.produto-complementos-ficha__linha strong {
  color: #111827;
  font-size: 0.76rem;
}

.produto-complementos-ficha__linha small,
.produto-complementos-ficha__metricas span {
  color: #64748b;
  font-size: .75rem;
}

.produto-complementos-ficha__metricas {
  display: flex;
  gap: 0.75rem;
}

.produto-complementos-ficha__metricas strong {
  margin-left: 0.2rem;
  color: #334155;
  font-size: .75rem;
}

.produto-complementos-item-resultados {
  margin: -0.2rem 0 0.75rem 0;
  overflow: hidden;
  border: 1px solid #c9d7ef;
  border-radius: 8px;
  background: #fff;
}

.produto-complementos-item__ordem {
  flex: 0 0 auto;
  min-width: 24px;
  text-align: right;
  color: #94a3b8;
  font-size: 0.75rem;
  font-weight: 800;
}

.produto-complementos-empty {
  border: 1px dashed #cfd8ea;
  border-radius: 8px;
  background: #fbfdff;
  padding: 1rem;
  color: #64748b;
  font-size: 0.78rem;
  font-weight: 700;
  text-align: center;
}

.produtos-dias-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.75rem;
}

.produtos-dia-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  min-height: 58px;
  border: 1px solid #d7deea;
  border-radius: 6px;
  padding: 0.75rem;
  background: #fff;
  font-weight: 700;
}

.produto-atendimentos-head {
  display: grid;
  gap: 0.2rem;
  margin: 1.15rem 0 0.65rem;
  padding-top: 1rem;
  border-top: 1px solid #e2e8f0;
}

.produto-atendimentos-head > strong {
  color: #172033;
  font-size: 0.9rem;
}

.produto-atendimentos-head > small {
  color: #64748b;
  font-size: 0.76rem;
}

.produto-atendimentos-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.8rem;
}

.produto-atendimento-grupo {
  overflow: hidden;
  border: 1px solid #d7deea;
  border-radius: 8px;
  background: #fff;
}

.produto-atendimento-grupo > header {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  min-height: 42px;
  padding: 0.65rem 0.8rem;
  border-bottom: 1px solid #e2e8f0;
  background: #f8fafc;
  color: #1e3a72;
  font-size: 0.78rem;
}

.produto-atendimento-grupo > div {
  display: grid;
}

.produto-atendimento-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.8rem;
  min-height: 54px;
  padding: 0.55rem 0.75rem;
  border-bottom: 1px solid #edf1f6;
}

.produto-atendimento-item:last-child {
  border-bottom: 0;
}

.produto-atendimento-item > span:first-child {
  display: grid;
  gap: 0.05rem;
  min-width: 0;
}

.produto-atendimento-item strong {
  color: #27364f;
  font-size: 0.78rem;
}

.produto-atendimento-item small {
  color: #718096;
  font-size: .75rem;
}

.produto-promocao-escopos {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.55rem;
  margin-top: 0.45rem;
}

.produto-promocao-escopo-grupo {
  overflow: hidden;
  border: 1px solid #d7deea;
  border-radius: 7px;
  background: #fff;
}

.produto-promocao-escopo-grupo > header {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  min-height: 30px;
  padding: 0.35rem 0.55rem;
  border-bottom: 1px solid #e6ebf2;
  background: #f8fafc;
  color: #1e3a72;
  font-size: 0.7rem;
}

.produto-promocao-escopo-grupo > div {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.produto-promocao-escopo-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.35rem;
  min-width: 0;
  min-height: 36px;
  padding: 0.3rem 0.45rem;
  border-right: 1px solid #edf1f6;
  border-bottom: 1px solid #edf1f6;
  color: #34435b;
  font-size: 0.7rem;
  font-weight: 750;
}

.produto-promocao-escopo-item:nth-child(3n) { border-right: 0; }
.produto-promocao-escopo-item:nth-last-child(-n + 3) { border-bottom: 0; }
.produto-promocao-escopo-item .ss-switch { flex: 0 0 auto; }
.produto-promocao-escopo-item .ss-switch > span:first-of-type {
  width: 28px;
  height: 16px;
}

.produtos-config-unidade-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 0.8rem;
}

.produtos-config-unidade-head > div {
  display: flex;
  flex-direction: column;
}

.produtos-config-unidade-head span {
  color: #64748b;
  font-size: .75rem;
}

.produtos-grupo-fiscal {
  max-width: 420px;
  margin-bottom: 0.8rem;
}

.produto-tab-panel {
  min-height: 100%;
  border: 1px solid #d7deea;
  border-radius: 12px;
  background: #f8fbff;
  padding: 1rem;
}

.produto-tab-panel-head {
  margin-bottom: 1rem;
}

.produto-tab-panel h6,
.produto-tab-panel-head h6,
.produto-ficha-form-card h6,
.produto-ficha-section-head h6,
.produto-combo-head h6 {
  margin: 0 0 0.35rem;
  color: #111827;
  font-size: 0.92rem;
  font-weight: 900;
}

.produto-tab-panel p,
.produto-tab-panel-head p,
.produto-ficha-section-head p,
.produto-combo-head p,
.produto-combo-grid small {
  margin: 0;
  color: #64748b;
  font-size: 0.75rem;
}

.produtos-modal-grid {
  width: 100%;
  --ag-border-color: #dfe5ee;
  --ag-odd-row-background-color: #fff;
  --ag-row-border-color: #eef2f7;
}

.produtos-modal-grid .ag-root-wrapper {
  border-radius: 8px;
}

.produto-editor-cards {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.8rem;
}

.produto-editor-cards--ambientes {
  grid-template-columns: minmax(0, 1fr);
  gap: 0.65rem;
}

.produto-operacao-unidade {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(18rem, 0.8fr);
  align-items: end;
  gap: 0.85rem;
  border: 1px solid #d8e1ef;
  border-radius: 10px;
  background: #f8faff;
  padding: 0.7rem 0.8rem;
}

.produto-operacao-unidade__identidade {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 0.1rem 0.8rem;
  min-width: 0;
}

.produto-operacao-unidade__identidade > .produto-editor-card__eyebrow { grid-column: 1; }
.produto-operacao-unidade__identidade > strong {
  grid-column: 1;
  overflow: hidden;
  color: #172033;
  font-size: 0.88rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.produto-operacao-unidade__identidade > .ss-switch {
  grid-column: 2;
  grid-row: 1 / span 2;
}

.produto-operacao-unidade__fiscal,
.produto-ambiente-card__config > label {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 0.25rem;
}

.produto-operacao-unidade__fiscal > span,
.produto-ambiente-card__config > label > span {
  color: #64748b;
  font-size: 0.66rem;
  font-weight: 800;
  letter-spacing: 0.025em;
  text-transform: uppercase;
}

.produto-ambientes-lista {
  display: grid;
  gap: 0.65rem;
}

.produto-ambiente-card {
  overflow: hidden;
  padding: 0;
  box-shadow: none;
}

.produto-ambiente-card__topo {
  display: flex;
  align-items: center;
  border-bottom: 1px solid #e2e8f0;
  background: #fbfcfe;
  padding: 0.6rem 0.75rem;
}

.produto-ambiente-card__identidade {
  display: flex;
  min-width: 0;
  align-items: center;
  gap: 0.6rem;
}

.produto-ambiente-card__identidade > span:last-child {
  display: flex;
  min-width: 0;
  flex-direction: column;
}

.produto-ambiente-card__identidade small {
  color: #64748b;
  font-size: 0.64rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.produto-ambiente-card__identidade strong {
  overflow: hidden;
  color: #172033;
  font-size: 0.84rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.produto-ambiente-card__icone {
  display: inline-flex;
  width: 2rem;
  height: 2rem;
  flex: 0 0 2rem;
  align-items: center;
  justify-content: center;
  border-radius: 8px;
  background: #e9eeff;
  color: #465a99;
}

.produto-ambiente-card__config {
  display: grid;
  grid-template-columns: minmax(10rem, 0.7fr) repeat(2, minmax(13rem, 1fr));
  gap: 0.65rem;
  padding: 0.7rem 0.75rem 0.8rem;
}

.produto-editor-card {
  min-width: 0;
  border: 1px solid #d7deea;
  border-radius: 12px;
  background: #fff;
  padding: 0.9rem;
  box-shadow: 0 4px 14px rgba(15, 23, 42, 0.04);
}

.produto-editor-card__head,
.produto-editor-card__actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
}

.produto-editor-card__head > div:first-child {
  display: flex;
  min-width: 0;
  flex-direction: column;
}

.produto-editor-card__head strong,
.produto-editor-card__head small {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.produto-editor-card__head small {
  color: #64748b;
  font-size: 0.72rem;
}

.produto-editor-card__eyebrow,
.produto-editor-card__fields label > span,
.produto-editor-metrics span {
  color: #64748b;
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.025em;
  text-transform: uppercase;
}

.produto-editor-card__fields {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.65rem;
  margin-top: 0.8rem;
}

.produto-editor-card__fields--precos {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.produto-editor-card__fields--programacao {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.produto-editor-card__atendimentos {
  margin-top: 0.7rem;
}

.produto-editor-card__fields label {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 0.25rem;
}

@media (max-width: 720px) {
  .produto-operacao-unidade {
    grid-template-columns: minmax(0, 1fr);
  }
  .produto-ambiente-card__config { grid-template-columns: minmax(0, 1fr); }
}

.produto-editor-metrics {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.55rem;
  margin-top: 0.8rem;
}

.produto-editor-metrics > div {
  display: flex;
  min-width: 0;
  flex-direction: column;
  border-radius: 8px;
  background: #f8fafc;
  padding: 0.55rem 0.65rem;
}

.produto-editor-metrics strong { font-size: 0.84rem; }
.produto-editor-metrics--single { grid-template-columns: minmax(0, 1fr); }

.produto-editor-empty {
  grid-column: 1 / -1;
  border: 1px dashed #cbd5e1;
  border-radius: 10px;
  background: #f8fafc;
  padding: 1.25rem;
  color: #64748b;
  font-size: 0.82rem;
  font-weight: 700;
  text-align: center;
}

.ss-tags-select {
  position: relative;
  min-width: 0;
  max-width: 100%;
  width: 100%;
}

/* Fechado, o controle deve ficar idêntico a um <select class="form-select"> comum
   (mesmo box flat/underline de var(--ss-control-*) em .ss-control) — só o essencial
   de layout fica aqui; altura/borda/fundo/fonte vêm da regra global de .ss-control. */
.ss-tags-select-control {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.4rem;
  width: 100%;
  max-width: 100%;
  overflow: hidden;
  appearance: none;
  -webkit-appearance: none;
  text-align: left;
  cursor: pointer;
}

.ss-tags-select.is-open .ss-tags-select-control {
  border-bottom: 2px solid var(--ss-control-focus, #000099) !important;
}

.ss-tags-select-control:disabled {
  cursor: default;
}

.ss-tags-select-value {
  flex: 1 1 auto;
  min-width: 0;
  overflow: hidden;
  color: inherit;
  font: inherit;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.ss-tags-select-value[data-empty="true"] {
  color: #6b7280;
}

.ss-tags-select-arrow {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 14px;
  color: #6b7280;
  font-size: 0.68rem;
  pointer-events: none;
  transition: transform 0.16s ease;
}

.ss-tags-select.is-open .ss-tags-select-arrow {
  transform: rotate(180deg);
}

/* position:fixed + anexado a document.body (ver criarDropdownFlutuante em gestor.js): top/left/
   width vêm inline via JS a cada abertura, calculados do control (getBoundingClientRect) — assim
   o dropdown nunca é cortado por overflow:hidden de um ancestral (ex. .modal .modal-content),
   igual a um <select> nativo. Não depender de posição relativa ao pai (.ss-tags-select). */
.ss-tags-select-dropdown {
  position: fixed;
  min-width: 0;
  max-width: 100%;
  box-sizing: border-box;
  z-index: 1085;
  max-height: 280px;
  flex-direction: column;
  overflow: hidden;
  border: 1px solid #d7deea;
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 16px 34px rgba(15, 23, 42, 0.16);
}

.ss-tags-select-dropdown[hidden] {
  display: none;
}

.ss-tags-select-dropdown:not([hidden]) {
  display: flex;
}

.ss-tags-select-search {
  flex: 0 0 auto;
  padding: 0.4rem;
  border-bottom: 1px solid #eef1f6;
}

.ss-tags-select-input {
  width: 100%;
  height: 30px;
  padding: 0 0.55rem;
  border: 1px solid #d7deea;
  border-radius: 6px;
  outline: 0;
  background: #fff;
  color: #172033;
  font-size: 0.8rem;
}

.ss-tags-select-input:focus {
  border-color: var(--cor-unidade, #2d3142);
}

.ss-tags-select-input::placeholder {
  color: #94a3b8;
}

.ss-tags-select-list {
  flex: 1 1 auto;
  padding: 0.25rem;
  overflow: auto;
}

.ss-tags-select-option {
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
  width: 100%;
  margin: 0;
  padding: 0.48rem 0.52rem;
  border-radius: 7px;
  color: #172033;
  cursor: pointer;
}

.ss-tags-select-option:hover,
.ss-tags-select-option:focus-within {
  background: #f4f7fb;
}

.ss-tags-select-option input {
  flex: 0 0 auto;
  width: 16px;
  height: 16px;
  margin-top: 0.1rem;
  accent-color: var(--cor-unidade, #2d3142);
}

.ss-tags-select-option-main {
  display: flex;
  min-width: 0;
  flex: 1 1 auto;
  flex-direction: column;
  gap: 0.12rem;
}

.ss-tags-select-option-title {
  overflow: hidden;
  color: #111827;
  font-size: 0.82rem;
  font-weight: 800;
  line-height: 1.25;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.ss-tags-select-option-meta {
  overflow: hidden;
  color: #64748b;
  font-size: 0.73rem;
  line-height: 1.25;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.ss-tags-select-empty {
  padding: 0.8rem;
  color: #64748b;
  font-size: 0.82rem;
  font-weight: 700;
  text-align: center;
}

.produto-config-grid,
.produto-ficha-grid {
  background: #fff;
}

.produto-grid-unidade,
.produto-grid-nome {
  display: flex;
  align-items: flex-start;
  justify-content: center;
  flex-direction: column;
  min-width: 0;
  height: 100%;
}

.produto-grid-unidade small {
  color: #64748b;
  font-size: .75rem;
}

.produto-grid-nome {
  align-items: center;
  justify-content: flex-start;
  flex-direction: row;
  gap: 0.45rem;
}

.produto-ficha-box {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.produto-ficha-form-card,
.produto-ficha-section {
  border: 1px solid #d7deea;
  border-radius: 12px;
  background: #fff;
  padding: 0.9rem;
}

.produto-ficha-form-grid {
  display: grid;
  grid-template-columns: minmax(240px, 1fr) 110px minmax(150px, 0.45fr) minmax(150px, 0.45fr) 36px;
  gap: 0.75rem;
  align-items: end;
  margin-top: 0.75rem;
}

.produto-ficha-add-btn {
  width: 36px;
  height: 31px;
  padding: 0;
}

.produto-ficha-section-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 0.8rem;
}

.produto-ficha-resumo {
  display: inline-flex;
  align-items: center;
  min-height: 36px;
  padding: 0 0.8rem;
  border-radius: 999px;
  background: #eef2ff;
  color: #3d00c6;
  font-weight: 900;
}

.produto-combo-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1rem;
}

.produto-combo-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1rem;
  margin-bottom: 1.2rem;
}

.produto-combo-dias > .form-label {
  font-weight: 800;
}

.produto-combo-canais {
  margin-bottom: 1.2rem;
}

.produto-combo-canais .produtos-dias-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.produto-combo-canais .produtos-dia-item > span:first-child {
  display: grid;
  gap: 0.15rem;
}

.produto-combo-canais .produtos-dia-item small {
  color: #64748b;
  font-size: 0.72rem;
  font-weight: 600;
}

.produto-cadastro-section.is-combo-inativo .produto-combo-grid,
.produto-cadastro-section.is-combo-inativo .produto-combo-dias {
  opacity: 0.58;
}

.produtos-ficha-adicionar {
  display: grid;
  grid-template-columns: minmax(260px, 1fr) 150px 34px;
  gap: 0.5rem;
  max-width: 720px;
  margin-bottom: 0.8rem;
}

.produtos-ficha-adicionar .btn {
  width: 34px;
  height: 31px;
  padding: 0;
}

.produtos-ficha-total {
  margin-top: 0.75rem;
  text-align: right;
  font-weight: 800;
}

@media (max-width: 1100px) {
  .produtos-cadastro-grid {
    grid-template-columns: repeat(12, minmax(0, 1fr));
  }
  .produtos-dias-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .produto-ficha-form-grid {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1fr) 36px;
  }
  .produto-ficha-produto-field {
    grid-column: 1 / -1;
  }
  .produto-combo-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 700px) {
  .produto-cadastro-modal .modal-dialog {
    max-width: calc(100vw - 16px);
    margin: 8px;
  }
  .produto-cadastro-modal .modal-content {
    height: calc(100dvh - 16px);
  }
  .produtos-cadastro-grid,
  .produtos-imagens-layout,
  .produtos-dias-grid,
  .produto-atendimentos-grid,
  .produto-promocao-escopos,
  .produtos-ficha-adicionar {
    grid-template-columns: 1fr;
  }
  .produto-promocao-escopo-grupo > div {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .produto-promocao-escopo-item:nth-child(3n) { border-right: 1px solid #edf1f6; }
  .produto-promocao-escopo-item:nth-child(2n) { border-right: 0; }
  .produto-promocao-escopo-item:nth-last-child(-n + 3) { border-bottom: 1px solid #edf1f6; }
  .produto-promocao-escopo-item:nth-last-child(-n + 2) { border-bottom: 0; }
  .produto-combo-canais .produtos-dias-grid {
    grid-template-columns: 1fr;
  }
  .produtos-cadastro-grid > .ss-field {
    grid-column: 1 / -1 !important;
    grid-row: auto;
  }
  .produto-complementos-toolbar,
  .produto-complementos-toolbar__side {
    align-items: stretch;
    flex-direction: column;
  }
  .produto-complementos-toolbar__search {
    max-width: none;
  }
  .produto-complementos-selecionado__header,
  .produto-complementos-item {
    align-items: flex-start;
  }
  .produto-complementos-item.is-editing {
    display: grid;
    grid-template-columns: 18px 44px minmax(0, 1fr);
    gap: 0.55rem;
    padding: 0.6rem;
  }
  .produto-complementos-item.is-editing .produto-complementos-item__handle {
    grid-column: 1;
    grid-row: 1;
  }
  .produto-complementos-item.is-editing .produto-complementos-item__thumb {
    grid-column: 2;
    grid-row: 1;
  }
  .produto-complementos-item.is-editing .produto-complementos-item__actions {
    grid-column: 3;
    grid-row: 1;
    justify-self: end;
    margin-left: 0;
  }
  .produto-complementos-item.is-editing .produto-complementos-item__editbox {
    grid-column: 2 / -1;
    grid-row: 2;
    width: 100%;
  }
  .produto-complementos-item.is-editing .produto-complementos-item__row {
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr);
    align-items: center;
    gap: 0.35rem 0.5rem;
  }
  .produto-complementos-inline-head__row--regras {
    align-items: center;
  }
  .produto-complementos-inline-head__label--cobranca {
    flex: 1 1 150px;
    margin-left: 0;
  }
  .produto-complementos-item.is-editing .produto-complementos-item__label {
    min-width: 0;
    text-align: right;
  }
  .produto-complementos-item.is-editing .produto-complementos-inline-autocomplete,
  .produto-complementos-item.is-editing .produto-complementos-item__control {
    width: 100%;
    min-width: 0;
  }
  .produto-complementos-item.is-editing .produto-complementos-item__switch {
    grid-column: 2;
    margin: 0.15rem 0 0;
  }
  .produto-complementos-item.is-editing .produto-complementos-item__ordem {
    position: absolute;
    right: 0.55rem;
    bottom: 0.35rem;
  }
  .produto-complementos-item.is-editing .produto-complementos-ficha {
    grid-column: 1 / -1;
    grid-row: 3;
  }
  .produto-complementos-item__actions {
    flex-wrap: wrap;
    justify-content: flex-end;
  }
  .produto-complementos-ficha__head {
    align-items: flex-start;
    flex-direction: column;
  }
  .produto-complementos-ficha__form {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  }
  .produto-complementos-ficha__produto {
    grid-column: 1 / -1;
  }
  .produto-complementos-ficha-add {
    grid-column: 1 / -1;
    width: 100%;
  }
  .produto-complementos-ficha__linha {
    grid-template-columns: minmax(0, 1fr) 30px;
  }
  .produto-complementos-ficha__metricas {
    grid-column: 1;
    flex-wrap: wrap;
  }
  .produto-complementos-ficha__linha > button {
    grid-column: 2;
    grid-row: 1 / span 2;
  }
  .produto-ficha-section-head,
  .produto-combo-head {
    flex-direction: column;
  }
  .produto-imagem-destaque {
    width: min(200px, 100%);
  }
  .produto-editor-cards,
  .produto-editor-card__fields:not(.produto-editor-card__fields--precos):not(.produto-editor-card__fields--programacao) {
    grid-template-columns: 1fr;
  }
  .produto-editor-card__head {
    align-items: flex-start;
  }
  .produto-editor-card__actions {
    flex: 0 0 auto;
  }
}

.produtos-col-small {
  display: flex;
  justify-content: center;
  text-align: center;
  white-space: nowrap;
}

.produtos-col-actions,
.produtos-grid-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 0.35rem;
  white-space: nowrap;
}

.produtos-badge,
.produtos-mini-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.28rem;
  height: 1.28rem;
  padding: 0 0.35rem;
  border-radius: 999px;
  background: #8a8fa1;
  color: #fff;
  font-size: .75rem;
  font-weight: 800;
}

.produtos-mini-badge {
  height: 1.1rem;
  min-width: 0;
  margin-left: 0.35rem;
  background: #e5ecff;
  color: #1d4ed8;
}

.produtos-pdv-badge {
  gap: 0.3rem;
  min-width: 4.6rem;
  height: 1.55rem;
  border: 1px solid transparent;
  font-size: .75rem;
}

.produtos-pdv-badge--ativo {
  background: #dcfce7;
  border-color: #86efac;
  color: #166534;
}

.produtos-pdv-badge--pausado {
  background: #fffbeb;
  border-color: #facc15;
  color: #92400e;
}

.produtos-icon-btn {
  width: 28px;
  height: 28px;
  border: 0;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-left: 0.25rem;
  background: #f5c400;
  color: #111827;
}

.produtos-icon-btn.produtos-danger {
  background: #f3043a;
  color: #fff;
}

.produtos-icon-btn:disabled {
  opacity: 0.45;
  cursor: not-allowed;
}

.produtos-grid-switch,
.produtos-mini-switch {
  margin: 0;
  justify-content: center;
}

.produtos-empty {
  padding: 1.8rem !important;
  text-align: center;
  color: #64748b;
  font-weight: 600;
}

.produtos-empty-error {
  color: #b91c1c;
}

.produtos-categoria-form-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.3fr) minmax(0, 1.5fr) 130px;
  grid-template-areas:
    "nome desc mult"
    "atendimento atendimento visible";
  gap: 0.85rem;
  align-items: end;
}

.produtos-field-nome {
  grid-area: nome;
}

.produtos-field-ordem,
.produtos-field-hidden {
  display: none;
}

.produtos-field-desc {
  grid-area: desc;
}

.produtos-field-mult {
  grid-area: mult;
}

.produtos-field-atendimento {
  grid-area: atendimento;
}

.produtos-field-atendimento .produtos-segmented {
  flex-wrap: nowrap;
}

.produtos-field-atendimento .produtos-segmented span {
  white-space: nowrap;
}

.produtos-field-visible {
  grid-area: visible;
  align-self: end;
  min-width: 68px;
}

.produtos-modal-section-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
  margin-top: 1rem;
}

.produtos-modal-section-row .produtos-modal-section {
  min-width: 0;
  margin-top: 0;
}

@media (max-width: 991.98px) {
  .produtos-modal-section-row {
    grid-template-columns: minmax(0, 1fr);
  }
}

.produtos-segmented {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
}

.produtos-segmented label {
  margin: 0;
  position: relative;
  cursor: pointer;
}

.produtos-segmented input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.produtos-segmented span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 32px;
  padding: 0 0.75rem;
  border: 1px solid #d7dce4;
  border-radius: 999px;
  background: #fff;
  color: #334155;
  font-size: 0.78rem;
  font-weight: 700;
}

.produtos-segmented .is-active span {
  border-color: var(--cor-unidade, #2d3142);
  background: #eef3ff;
  color: var(--cor-unidade, #2d3142);
}

.produtos-modal-section {
  margin-top: 1rem;
}

.produtos-modal-section-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  margin-bottom: 0.45rem;
}

.produtos-modal-section-head strong {
  font-size: 0.9rem;
}

.produtos-modal-section-head span {
  color: #64748b;
  font-size: 0.78rem;
}

.produtos-modal-section-head--stacked {
  align-items: flex-start;
  flex-direction: column;
  justify-content: flex-start;
  gap: 0.12rem;
}

.produtos-mini-table-wrap {
  border: 1px solid #dfe5ee;
  border-radius: 8px;
  overflow: hidden;
}

.produtos-mini-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.84rem;
}

.produtos-mini-table th,
.produtos-mini-table td {
  padding: 0.48rem 0.6rem;
  border-bottom: 1px solid #eef2f7;
  vertical-align: middle;
}

.produtos-mini-table th {
  background: #f8fafc;
  font-weight: 800;
}

.produtos-mini-table tr:last-child td {
  border-bottom: 0;
}

@media (max-width: 991.98px) {
  .produtos-head {
    grid-template-columns: minmax(0, 1fr);
  }
  .produtos-actions {
    justify-content: flex-start;
  }
  .produtos-transferencia-grid,
  .produtos-arquivo-toolbar {
    grid-template-columns: minmax(0, 1fr);
  }
  .produtos-arquivo-campo {
    grid-column: 1;
  }
  .produtos-panel-toolbar {
    align-items: stretch;
    flex-direction: column;
  }
  .produtos-panel-toolbar > .produtos-busca {
    flex: 0 0 auto;
  }
  .produtos-toolbar-filtros {
    align-items: stretch;
    flex-wrap: wrap;
    width: 100%;
  }
  .produtos-busca,
  .produtos-cardapio-filtro,
  .produtos-toolbar-actions {
    max-width: none;
    width: 100%;
  }
  .produtos-cardapio-filtro {
    min-width: 0;
  }
  .produtos-toolbar-actions {
    justify-content: flex-start;
  }
  .produtos-summary {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .produtos-categoria-form-grid {
    grid-template-columns: minmax(0, 1fr) minmax(110px, 0.35fr);
    grid-template-areas:
      "nome nome"
      "desc desc"
      "atendimento atendimento"
      "mult visible";
  }
  .produtos-field-atendimento .produtos-segmented {
    flex-wrap: wrap;
  }
  .produtos-modal-section-row {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 575.98px) {
  .produtos-page {
    padding: 0.85rem;
  }
  .produtos-summary {
    grid-template-columns: 1fr;
  }
}

/* Produtos em cards, agrupados por categoria */
.produtos-card-filtros {
  flex-wrap: wrap;
}

.produtos-card-filtros .produtos-busca {
  flex: 1 1 330px;
  min-width: 240px;
}

.produtos-filtro-select {
  flex: 0 1 190px;
  min-width: 160px;
  margin: 0;
}

.produtos-filtro-select > span {
  display: block;
  margin-bottom: 0.18rem;
  color: #64748b;
  font-size: 0.65rem;
  font-weight: 800;
  line-height: 1;
  text-transform: uppercase;
}

.ficha-tecnica-toolbar .produtos-filtro-select {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  flex: 0 0 auto;
}
.ficha-tecnica-toolbar .produtos-filtro-select > span {
  margin-bottom: 0;
  white-space: nowrap;
}
.ficha-tecnica-filtro-status {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  flex: 0 0 auto;
  margin: 0;
}
.ficha-tecnica-filtro-status > span {
  color: #64748b;
  font-size: 0.65rem;
  font-weight: 800;
  line-height: 1;
  text-transform: uppercase;
  white-space: nowrap;
}
.ficha-tecnica-filtro-status-opcoes {
  display: inline-flex;
  align-items: stretch;
  padding: 0.18rem;
  border: 1px solid #dbe3ed;
  border-radius: 9px;
  background: #f1f5f9;
}
.ficha-tecnica-filtro-status-opcoes label {
  position: relative;
  margin: 0;
  cursor: pointer;
}
.ficha-tecnica-filtro-status-opcoes input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}
.ficha-tecnica-filtro-status-opcoes label > span {
  min-height: 29px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.35rem 0.58rem;
  border-radius: 7px;
  color: #64748b;
  font-size: 0.72rem;
  font-weight: 800;
  white-space: nowrap;
  transition: background-color 0.15s ease, color 0.15s ease, box-shadow 0.15s ease;
}
.ficha-tecnica-filtro-status-opcoes input:checked + span {
  background: #fff;
  color: var(--cor-unidade, #2d3142);
  box-shadow: 0 1px 3px rgba(15, 23, 42, 0.14);
}
.ficha-tecnica-filtro-status-opcoes input:focus-visible + span {
  outline: 3px solid color-mix(in srgb, var(--cor-unidade, #2d3142) 24%, transparent);
  outline-offset: 1px;
}
@media (max-width: 991.98px) {
  .ficha-tecnica-filtro-status {
    width: 100%;
    align-items: flex-start;
    flex-direction: column;
  }
  .ficha-tecnica-filtro-status-opcoes {
    width: 100%;
  }
  .ficha-tecnica-filtro-status-opcoes label {
    flex: 1 1 0;
  }
  .ficha-tecnica-filtro-status-opcoes label > span {
    width: 100%;
  }
}
@media (max-width: 575.98px) {
  .ficha-tecnica-filtro-status-opcoes {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .ficha-tecnica-filtro-status-opcoes label > span {
    padding-inline: 0.35rem;
    white-space: normal;
    text-align: center;
  }
}

.produtos-resultado-contador {
  min-width: max-content;
  color: #64748b;
  font-size: .75rem;
  font-weight: 800;
}

.produtos-cards-scroll {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  overscroll-behavior: contain;
  padding: 0.85rem;
}

.produtos-cards-categorias {
  display: grid;
  gap: 0.85rem;
}

.produto-categoria-card {
  min-width: 0;
  overflow: hidden;
  border: 1px solid #dfe5ee;
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 4px 14px rgba(15, 23, 42, 0.05);
}

.produto-categoria-card > summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  min-height: 54px;
  padding: 0.65rem 0.8rem;
  border-bottom: 1px solid transparent;
  background: #fff;
  cursor: pointer;
  list-style: none;
}

.produto-categoria-card[open] > summary {
  border-bottom-color: #e8edf4;
  background: #fbfcfe;
}

.produto-categoria-card > summary::-webkit-details-marker,
.produto-cadastro-section > summary::-webkit-details-marker {
  display: none;
}

.produto-categoria-card-title {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 0.65rem;
}

.produto-categoria-card-title > i {
  color: var(--cor-unidade, #2d3142);
  font-size: 1rem;
}

.produto-categoria-card-title > span {
  min-width: 0;
  display: grid;
}

.produto-categoria-card-title strong,
.produto-categoria-card-title small {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.produto-categoria-card-title strong {
  color: #0f172a;
  font-size: 0.92rem;
  font-weight: 900;
}

.produto-categoria-card-title small {
  color: #64748b;
  font-size: .75rem;
}

.produto-categoria-card-title b {
  min-width: 28px;
  padding: 0.18rem 0.4rem;
  border-radius: 999px;
  background: #eef2f7;
  color: #334155;
  font-size: .75rem;
  text-align: center;
}

.produto-categoria-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(285px, 1fr));
  gap: 0.7rem;
  padding: 0.75rem;
  background: #f8fafc;
}

.ficha-tecnica-pizzas-subgrupos,
.ficha-tecnica-subgrupos {
  display: grid;
  gap: .65rem;
  padding: .7rem;
  border-top: 1px solid #dfe6ef;
  background: #eef2f7;
}
.ficha-tecnica-subgrupos > .ficha-tecnica-nova { margin: 0; }
.ficha-tecnica-subgrupo {
  --ficha-subgrupo-cor: #475569;
  overflow: hidden;
  border: 1px solid #d6dee9;
  border-left: 4px solid var(--ficha-subgrupo-cor);
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 2px 7px rgba(15, 23, 42, .055);
}
.ficha-tecnica-subgrupo--categoria { --ficha-subgrupo-cor: #2563eb; }
.ficha-tecnica-subgrupo--pizza { --ficha-subgrupo-cor: #d97706; }
.ficha-tecnica-subgrupo--borda { --ficha-subgrupo-cor: #7c3aed; }
.ficha-tecnica-subgrupo--massa { --ficha-subgrupo-cor: #db2777; }
.ficha-tecnica-subgrupo > summary { list-style: none; cursor: pointer; }
.ficha-tecnica-subgrupo > summary::-webkit-details-marker { display: none; }
.ficha-tecnica-subgrupo-head {
  display: flex;
  align-items: center;
  gap: .65rem;
  min-height: 50px;
  padding: .55rem .7rem;
  background: color-mix(in srgb, var(--ficha-subgrupo-cor) 5%, #fff);
}
.ficha-tecnica-subgrupo-head:hover {
  background: color-mix(in srgb, var(--ficha-subgrupo-cor) 9%, #fff);
}
.ficha-tecnica-subgrupo[open] > .ficha-tecnica-subgrupo-head {
  border-bottom: 1px solid color-mix(in srgb, var(--ficha-subgrupo-cor) 18%, #dfe6ef);
  background: color-mix(in srgb, var(--ficha-subgrupo-cor) 11%, #fff);
}
.ficha-tecnica-subgrupo--categoria {
  border-color: #d6dee9;
  border-left-width: 1px;
}
.ficha-tecnica-subgrupo--categoria > .ficha-tecnica-subgrupo-head,
.ficha-tecnica-subgrupo--categoria[open] > .ficha-tecnica-subgrupo-head {
  border-bottom-color: #dfe6ef;
  background: #fff;
}
.ficha-tecnica-subgrupo--categoria > .ficha-tecnica-subgrupo-head:hover {
  background: #f8fafc;
}
.ficha-tecnica-subgrupo--produto-contexto {
  --ficha-subgrupo-cor: #475569;
  border-color: #d6dee9;
  border-left-width: 1px;
}
.ficha-tecnica-subgrupo--produto-contexto > .ficha-tecnica-subgrupo-head,
.ficha-tecnica-subgrupo--produto-contexto[open] > .ficha-tecnica-subgrupo-head {
  border-bottom-color: #dfe6ef;
  background: #fff;
}
.ficha-tecnica-subgrupo--produto-contexto > .ficha-tecnica-subgrupo-head:hover {
  background: #f8fafc;
}
.ficha-tecnica-produto-partes {
  display: grid;
  gap: .65rem;
  padding: .7rem;
  background: #f8fafc;
}
.ficha-tecnica-produto-parte {
  --ficha-parte-cor: #475569;
  overflow: hidden;
  border: 1px solid #dfe6ef;
  border-radius: 9px;
  background: #fff;
}
.ficha-tecnica-produto-parte.is-pizza { --ficha-parte-cor: #d97706; }
.ficha-tecnica-produto-parte.is-borda { --ficha-parte-cor: #7c3aed; }
.ficha-tecnica-produto-parte.is-massa { --ficha-parte-cor: #db2777; }
.ficha-tecnica-produto-parte > summary {
  display: flex;
  align-items: center;
  gap: .5rem;
  min-height: 38px;
  padding: .45rem .65rem;
  border-bottom: 1px solid #e7ecf3;
  background: #fff;
  cursor: pointer;
  list-style: none;
}
.ficha-tecnica-produto-parte > summary::-webkit-details-marker { display: none; }
.ficha-tecnica-produto-parte:not([open]) > summary { border-bottom: 0; }
.ficha-tecnica-produto-parte > summary:hover { background: #f8fafc; }
.ficha-tecnica-produto-parte > summary > i:first-child {
  color: var(--ficha-parte-cor);
  font-size: .82rem;
}
.ficha-tecnica-produto-parte > summary > strong {
  flex: 1 1 auto;
  color: #0f172a;
  font-size: .78rem;
  font-weight: 850;
}
.ficha-tecnica-produto-parte > summary > b {
  min-width: 24px;
  margin-left: auto;
  padding: .12rem .35rem;
  border-radius: 999px;
  background: #eef2f7;
  color: #475569;
  font-size: .66rem;
  text-align: center;
}
.ficha-tecnica-produto-parte > summary .ficha-tecnica-chevron {
  color: #7b8ba3;
  font-size: .7rem;
  transition: transform .16s ease;
}
.ficha-tecnica-produto-parte[open] > summary .ficha-tecnica-chevron { transform: rotate(180deg); }
.ficha-tecnica-produto-parte > .ficha-tecnica-opcoes-grid {
  border: 0;
}
.ficha-tecnica-subgrupo-head > i:first-child {
  display: inline-flex;
  flex: 0 0 30px;
  width: 30px;
  height: 30px;
  align-items: center;
  justify-content: center;
  border-radius: 8px;
  background: var(--ficha-subgrupo-cor);
  color: #fff;
  font-size: .78rem;
  box-shadow: 0 2px 5px color-mix(in srgb, var(--ficha-subgrupo-cor) 24%, transparent);
}
.ficha-tecnica-subgrupo-head > div { display: grid; overflow: hidden; flex: 0 1 auto; min-width: 0; }
.ficha-tecnica-subgrupo-head strong { overflow: hidden; color: #0f172a; font-size: .84rem; font-weight: 850; text-overflow: ellipsis; white-space: nowrap; }
.ficha-tecnica-subgrupo-head small { overflow: hidden; color: #64748b; font-size: .7rem; text-overflow: ellipsis; white-space: nowrap; }
.ficha-tecnica-subgrupo-head b {
  flex: 0 0 auto;
  min-width: 27px;
  padding: .16rem .4rem;
  border: 1px solid color-mix(in srgb, var(--ficha-subgrupo-cor) 18%, transparent);
  border-radius: 999px;
  background: color-mix(in srgb, var(--ficha-subgrupo-cor) 10%, #fff);
  color: var(--ficha-subgrupo-cor);
  font-size: .7rem;
  text-align: center;
}
.ficha-tecnica-subgrupo > .ficha-tecnica-opcoes-grid {
  border: 0;
  background: #f8fafc;
}

.ficha-tecnica-grupo-acoes { display: flex; flex: 0 0 auto; align-items: center; gap: .5rem; }
.ficha-tecnica-chevron {
  flex: 0 0 auto;
  margin-left: .3rem;
  color: #94a3b8;
  font-size: .8rem;
  transition: transform 0.18s ease;
}
.ficha-tecnica-subgrupo-head .ficha-tecnica-chevron { margin-left: auto; }
.ficha-tecnica-grupo[open] > summary .ficha-tecnica-chevron,
.ficha-tecnica-subgrupo[open] > summary .ficha-tecnica-chevron {
  transform: rotate(180deg);
}

@media (max-width: 575.98px) {
  .ficha-tecnica-subgrupos {
    gap: .5rem;
    padding: .5rem;
  }
  .ficha-tecnica-subgrupo {
    border-left-width: 3px;
    border-radius: 8px;
  }
  .ficha-tecnica-subgrupo-head {
    gap: .5rem;
    padding: .5rem;
  }
  .ficha-tecnica-subgrupo-head > i:first-child {
    flex-basis: 28px;
    width: 28px;
    height: 28px;
  }
}

.produto-card {
  min-width: 0;
  display: grid;
  grid-template-columns: 70px minmax(0, 1fr);
  grid-template-areas: "media body" "footer footer";
  border: 1px solid #dfe5ee;
  border-radius: 11px;
  background: #fff;
  box-shadow: 0 4px 12px rgba(15, 23, 42, 0.05);
  overflow: hidden;
  transition: border-color 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease;
}

.produto-card:hover {
  border-color: color-mix(in srgb, var(--cor-unidade, #2d3142) 30%, #dfe5ee);
  box-shadow: 0 9px 22px rgba(15, 23, 42, 0.09);
  transform: translateY(-1px);
}

.produto-card.is-dragging {
  opacity: 0.55;
  transform: scale(0.985);
}

.produto-card-media {
  grid-area: media;
  width: 54px;
  height: 54px;
  align-self: start;
  margin: 0.6rem 0 0.5rem 0.6rem;
  padding: 0;
  overflow: hidden;
  border: 1px solid #e2e8f0;
  border-radius: 9px;
  background: #f1f5f9;
}

button.produto-card-media {
  cursor: pointer;
}

.produto-card-media img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}

.produto-card-body {
  grid-area: body;
  min-width: 0;
  display: grid;
  align-content: start;
  gap: 0.3rem;
  padding: 0.55rem 0.72rem 0.45rem 0.35rem;
}

.produto-card-title {
  min-width: 0;
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.5rem;
}

.produto-card-title strong {
  min-width: 0;
  overflow: hidden;
  color: #0f172a;
  font-size: 0.88rem;
  font-weight: 900;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.produto-card-title small {
  flex: 0 0 auto;
  color: #94a3b8;
  font-size: .75rem;
}

.produto-card-statuses {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 0.3rem;
  flex-wrap: wrap;
}

.produto-card-price {
  display: flex;
  align-items: baseline;
  gap: 0.42rem;
}

.produto-card-price strong {
  color: #111827;
  font-size: 0.82rem;
  font-weight: 900;
}

.produto-card-price small {
  color: #64748b;
  font-size: .75rem;
}

.produto-card-status {
  display: inline-flex;
  align-items: center;
  gap: 0.2rem;
  color: #64748b;
  font-size: .75rem;
  font-weight: 800;
}

.produto-card-status.is-active { color: #15803d; }
.produto-card-status.is-paused { color: #94a3b8; }

.produto-card-footer {
  grid-area: footer;
  min-height: 34px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  padding: 0.35rem 0.55rem;
  border-top: 1px solid #eef2f7;
  background: #fbfcfe;
}

.produto-card-actions {
  margin-left: auto;
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
}

.produto-card-drag {
  width: 30px;
  height: 28px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  border: 0;
  background: transparent;
  color: #64748b;
  cursor: grab;
  touch-action: none;
  user-select: none;
  -webkit-user-select: none;
}

.produto-card-drag:active { cursor: grabbing; }

.produtos-cards-empty {
  display: grid;
  place-items: center;
  gap: 0.35rem;
  min-height: 240px;
}

.produtos-cards-empty i { font-size: 1.5rem; }

/* Cadastro progressivo de produto */
.produto-cadastro-modal .modal-body {
  display: flex;
  flex-direction: column;
}

.impressora-cadastro-modal .modal-body {
  display: flex;
  flex-direction: column;
}

.impressora-cadastro-sections .ss-form-grid {
  margin: 0;
}

.produto-cadastro-sections {
  flex: 1 1 auto;
  height: auto;
  min-height: 0;
  display: grid;
  /* max-content: linhas nunca encolhem abaixo do conteúdo (details tem overflow hidden, que zera o mínimo automático e deixava o grid esmagar a seção aberta) */
  grid-auto-rows: max-content;
  align-content: start;
  gap: 0.75rem;
  padding: 0.85rem;
  overflow-y: auto;
}

.produto-cadastro-section {
  min-width: 0;
  overflow: hidden;
  border: 1px solid #dfe5ee;
  border-radius: 11px;
  background: #fff;
  box-shadow: 0 3px 10px rgba(15, 23, 42, 0.04);
}

.produto-cadastro-section > summary {
  min-height: 58px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.8rem;
  padding: 0.65rem 0.8rem;
  cursor: pointer;
  list-style: none;
}

.produto-cadastro-section[open] > summary {
  border-bottom: 1px solid #e8edf4;
  background: #fbfcfe;
}

.produto-cadastro-section > summary > span:first-child {
  min-width: 0;
  flex: 1 1 auto;
  display: flex;
  align-items: center;
  gap: 0.7rem;
}

.produto-cadastro-section > summary > span:first-child > i {
  width: 34px;
  height: 34px;
  flex: 0 0 34px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 9px;
  background: color-mix(in srgb, var(--cor-unidade, #2d3142) 10%, #fff);
  color: var(--cor-unidade, #2d3142);
}

.produto-cadastro-section > summary > span:first-child > span {
  min-width: 0;
  display: grid;
}

.produto-cadastro-section > summary strong {
  color: #0f172a;
  font-size: 0.84rem;
  font-weight: 900;
}

.produto-cadastro-section > summary small {
  overflow: hidden;
  color: #64748b;
  font-size: .75rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.produto-section-summary {
  flex: 0 0 auto;
  padding: 0.2rem 0.5rem;
  border: 1px solid #dfe5ee;
  border-radius: 999px;
  background: #fff;
  color: #475569;
  font-size: .75rem;
  font-weight: 800;
  white-space: nowrap;
}

.produto-section-chevron {
  width: 28px;
  height: 28px;
  flex: 0 0 28px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid #dfe5ee;
  border-radius: 50%;
  background: #fff;
  color: #475569;
  font-size: 0.78rem;
  transition: transform 0.2s ease;
}

.produto-cadastro-section > summary:hover .produto-section-chevron {
  border-color: var(--cor-unidade, #2d3142);
  color: var(--cor-unidade, #2d3142);
}

.produto-cadastro-section[open] > summary .produto-section-chevron {
  transform: rotate(180deg);
}

.produto-cadastro-section-body {
  min-width: 0;
  padding: 0.9rem;
}

/* O mesmo editor progressivo de Produtos aplicado aos modais de Cadastros e Meu Catálogo. */
.ss-progressive-modal .modal-body > .unidade-tab-intro,
.ss-progressive-modal .modal-body > .alert {
  margin: 0.85rem 0.85rem 0;
}

.ss-progressive-modal .modal-body {
  width: 100%;
  align-items: stretch;
  /* !important: única barra de rolagem (a das seções). Sem isso, em <576px o body vira um segundo scroller
     pelo ".modal .modal-dialog.modal-fullscreen-sm-down .modal-body { overflow-y: auto }" (0,4,0) e ganha
     moldura de 12px pelos blocos por ID (#modalUnidadeCadastro/#modalClienteCadastro .modal-body). */
  padding: 0 !important;
  overflow: hidden !important;
}

.ss-progressive-modal .ss-modal-sections {
  width: 100%;
  max-width: none;
}

.ss-modal-section-pane {
  display: block !important;
  opacity: 1 !important;
}

.ss-modal-sections--nested {
  margin-top: 0.8rem;
  padding: 0;
  overflow: visible;
  background: transparent;
}

.ss-modal-sections--nested > .ss-modal-section {
  box-shadow: none;
}

.ss-modal-section[hidden] {
  display: none !important;
}

/* Cards inteligentes usados somente nos editores em modal. */
.modal-smart-cards {
  min-width: 0;
}

.modal-smart-grid {
  display: grid;
  /* auto-fill: grupo com 1 opção mantém o card na largura padrão (auto-fit esticava na linha inteira). */
  grid-template-columns: repeat(auto-fill, minmax(230px, 1fr));
  gap: 0.55rem;
}

.modal-smart-cards--finance .modal-smart-grid {
  grid-template-columns: minmax(0, 1fr);
}

.modal-smart-cards--schedules .modal-smart-grid {
  grid-template-columns: minmax(0, 1fr);
}

/* Em Unidades, pagamentos viram linhas alinhadas somente no desktop. */
@media (min-width: 992px) {
  .modal-smart-cards--payments .modal-smart-grid {
    grid-template-columns: minmax(0, 1fr);
    gap: .38rem;
  }

  .modal-smart-cards--payments .modal-smart-card {
    display: grid;
    grid-template-columns: minmax(180px, .95fr) minmax(330px, 1.15fr) minmax(310px, 1.1fr);
    align-items: stretch;
  }

  .modal-smart-cards--payments .modal-smart-card > header {
    min-height: 58px;
    border-right: 1px solid #edf1f6;
    border-bottom: 0;
  }

  .modal-smart-cards--payments .modal-smart-fields--payment {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    align-items: end;
    padding: .45rem .55rem;
    border-right: 1px solid #edf1f6;
  }

  .modal-smart-cards--payments .modal-smart-toggles {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    align-content: center;
    gap: .32rem;
    padding: .55rem;
  }

  .modal-smart-cards--payments .modal-smart-toggle {
    width: 100%;
    justify-content: center;
    padding-inline: .3rem;
    white-space: nowrap;
  }
}

.modal-smart-group + .modal-smart-group {
  margin-top: 0.6rem;
}

.modal-smart-group-head {
  min-height: 28px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  margin-bottom: 0.35rem;
  padding: 0 0.15rem;
}

.modal-smart-group-head > span {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  color: #1e293b;
}

.modal-smart-group-head > span i {
  color: var(--cor-unidade, #2d3142);
}

.modal-smart-group-head small {
  padding: 0.18rem 0.48rem;
  border-radius: 999px;
  background: #eef2f7;
  color: #64748b;
  font-size: .75rem;
  font-weight: 800;
}

.modal-smart-card {
  min-width: 0;
  overflow: hidden;
  border: 1px solid #dfe5ee;
  border-radius: 11px;
  background: #fff;
  box-shadow: 0 4px 13px rgba(15, 23, 42, 0.05);
}

.modal-smart-card > header {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 0.5rem;
  min-height: 38px;
  padding: 0.4rem 0.55rem;
  border-bottom: 1px solid #edf1f6;
  background: #fbfcfe;
}

.modal-smart-card > header > div {
  min-width: 0;
  flex: 1 1 auto;
  display: grid;
}

.modal-smart-card > header strong,
.modal-smart-card > header small {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.modal-smart-card > header strong {
  color: #0f172a;
  font-size: 0.78rem;
  font-weight: 900;
}

.modal-smart-card > header small {
  color: #64748b;
  font-size: 0.65rem;
}

.modal-smart-icon {
  width: 26px;
  height: 26px;
  flex: 0 0 26px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 7px;
  background: color-mix(in srgb, var(--cor-unidade, #2d3142) 10%, #fff);
  color: var(--cor-unidade, #2d3142);
  font-size: 0.8rem;
}

.modal-smart-badge {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  padding: 0.18rem 0.48rem;
  border: 1px solid #e2e8f0;
  border-radius: 999px;
  background: #f8fafc;
  color: #64748b;
  font-size: 0.64rem;
  font-weight: 900;
}

.modal-smart-badge.is-active {
  border-color: #bbf7d0;
  background: #ecfdf3;
  color: #166534;
}

.modal-smart-badge.is-locked {
  border-color: #fde68a;
  background: #fffbeb;
  color: #92400e;
}

.modal-smart-fields {
  display: grid;
  gap: 0.45rem;
  padding: 0.5rem 0.55rem;
}

.modal-smart-fields--two {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.modal-smart-fields--payment {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.modal-smart-fields--actions {
  grid-template-columns: minmax(0, 1fr) 130px 34px;
  align-items: end;
}

.modal-smart-fields--schedule {
  grid-template-columns: minmax(120px, 1fr) repeat(2, minmax(105px, 0.75fr)) auto 34px;
  align-items: end;
}

.modal-smart-fields--finance {
  grid-template-columns: repeat(6, minmax(0, 1fr));
}

.modal-smart-fields--commissions {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.modal-smart-fields label {
  min-width: 0;
  margin: 0;
}

.modal-smart-fields label > span:first-child {
  display: block;
  margin-bottom: 0.25rem;
  color: #475569;
  font-size: 0.68rem;
  font-weight: 800;
}

.modal-smart-fields label > span small {
  color: #94a3b8;
  font-size: 0.62rem;
}

.modal-smart-toggles {
  display: flex;
  align-items: center;
  gap: 0.3rem;
  flex-wrap: wrap;
  padding: 0 0.55rem 0.55rem;
}

.modal-smart-toggle {
  position: relative;
  min-height: 26px;
  display: inline-flex;
  align-items: center;
  gap: 0.32rem;
  margin: 0;
  padding: 0.16rem 0.45rem;
  border: 1px solid #cbd5e1;
  border-radius: 999px;
  background: #fff;
  color: #64748b;
  cursor: pointer;
  font-size: .75rem;
  font-weight: 800;
}

.modal-smart-toggle input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.modal-smart-toggle > span {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #cbd5e1;
}

.modal-smart-toggle:has(input:checked) {
  border-color: #4ade80;
  background: #dcfce7;
  color: #15803d;
}

.modal-smart-toggle:has(input:checked) > span {
  background: #22c55e;
}

.modal-smart-toggle b {
  font: inherit;
}

.modal-smart-delete {
  width: 34px;
  height: 31px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
}

.modal-smart-delete:not(:disabled),
.modal-smart-danger {
  color: #b91c1c;
}

/* O status dos horários usa switch tanto no desktop quanto no celular. */
.modal-smart-card--schedule .modal-smart-toggle {
  min-height: 31px;
  gap: 0.38rem;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: #475569;
}

.modal-smart-card--schedule .modal-smart-toggle > span {
  width: 28px;
  height: 16px;
  display: inline-flex;
  align-items: center;
  flex: 0 0 28px;
  padding: 1px;
  border: 1px solid #bfc4d6;
  border-radius: 999px;
  background: #f4f5f8;
  transition: background 0.14s ease, border-color 0.14s ease;
}

.modal-smart-card--schedule .modal-smart-toggle > span::before {
  content: "";
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: #a9a5bf;
  transition: transform 0.14s ease, background 0.14s ease;
}

.modal-smart-card--schedule .modal-smart-toggle:has(input:checked) {
  border: 0;
  background: transparent;
  color: #15803d;
}

.modal-smart-card--schedule .modal-smart-toggle:has(input:checked) > span {
  border-color: #22c55e;
  background: #22c55e;
}

.modal-smart-card--schedule .modal-smart-toggle:has(input:checked) > span::before {
  transform: translateX(12px);
  background: #fff;
}

/* No desktop os campos ocupam a própria linha do card.
   O cabeçalho continua visível no celular para preservar a leitura compacta. */
@media (min-width: 768px) {
  .modal-smart-card--schedule > header {
    display: none;
  }

  .modal-smart-card--schedule .modal-smart-fields--schedule {
    grid-template-columns: minmax(160px, 1.35fr) repeat(2, minmax(130px, 1fr)) auto 34px;
    padding: 0.55rem;
  }
}

.modal-smart-total {
  min-height: 55px;
  display: grid;
  align-content: center;
  padding: 0.45rem 0.55rem;
  border: 1px solid #dbeafe;
  border-radius: 8px;
  background: #eff6ff;
}

.modal-smart-total span {
  color: #64748b;
  font-size: .75rem;
  font-weight: 800;
}

.modal-smart-total strong {
  color: #1d4ed8;
  font-size: 0.84rem;
}

.modal-smart-card > footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.6rem;
  padding: 0.55rem 0.72rem;
  background: #fff;
  color: #64748b;
  font-size: 0.68rem;
}

.modal-smart-card > footer > div {
  display: inline-flex;
  gap: 0.35rem;
}

.modal-smart-empty {
  min-height: 120px;
  display: grid;
  place-items: center;
  align-content: center;
  gap: 0.4rem;
  padding: 1rem;
  border: 1px dashed #cbd5e1;
  border-radius: 10px;
  background: #f8fafc;
  color: #64748b;
  text-align: center;
}

.modal-smart-empty i {
  font-size: 1.35rem;
}

@media (max-width: 767.98px) {
  .modal-smart-grid,
  .modal-smart-fields--commissions {
    grid-template-columns: minmax(0, 1fr);
  }

  .modal-smart-fields--finance {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .modal-smart-fields--actions,
  .modal-smart-fields--schedule {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  }

  .modal-smart-fields--actions > label:first-child,
  .modal-smart-fields--schedule > label:first-child {
    grid-column: 1 / -1;
  }

  .modal-smart-delete {
    width: 100%;
  }

  .modal-smart-card > footer {
    align-items: stretch;
    flex-direction: column;
  }

  .modal-smart-card > footer > div .btn {
    flex: 1 1 50%;
  }
}

.produto-cadastro-subsection {
  margin-top: 0.8rem;
  overflow: hidden;
  border: 1px solid #e2e8f0;
  border-radius: 9px;
  background: #fbfcfe;
}

.produto-cadastro-subsection > summary {
  min-height: 46px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.7rem;
  padding: 0.55rem 0.7rem;
  cursor: pointer;
  list-style: none;
}

.produto-cadastro-subsection > summary::-webkit-details-marker { display: none; }

.produto-cadastro-subsection > summary > span {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 0.55rem;
}

.produto-cadastro-subsection > summary > span > span {
  min-width: 0;
  display: grid;
}

.produto-cadastro-subsection > summary strong {
  color: #334155;
  font-size: 0.76rem;
  font-weight: 900;
}

.produto-cadastro-subsection > summary small {
  color: #64748b;
  font-size: .75rem;
}

.produto-cadastro-subsection[open] > summary {
  border-bottom: 1px solid #e2e8f0;
}

.produtos-cadastro-grid-advanced {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(165px, 1fr));
  gap: 0.65rem;
  padding: 0.75rem;
  background: #fff;
}

.produtos-cadastro-grid-advanced > .ss-field {
  grid-column: auto !important;
  grid-row: auto !important;
}

.produtos-cadastro-switches--advanced {
  margin-top: 0;
  padding: 0.7rem 0.75rem;
  border-bottom: 0;
  background: #fff;
}

@media (max-width: 991.98px) {
  .produtos-card-filtros .produtos-busca {
    flex-basis: 100%;
    width: 100%;
  }
  .produtos-filtro-select {
    flex: 1 1 180px;
  }
  .produto-categoria-grid {
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  }
  .produto-categoria-novo {
    width: 34px;
    min-width: 34px;
    height: 32px;
    flex: 0 0 34px;
    overflow: hidden;
    padding: 0;
  }
  .produto-categoria-novo i {
    margin: 0 !important;
    font-size: 0.85rem;
  }
  .produto-categoria-novo .produto-categoria-novo-label {
    display: none;
  }
}

@media (max-width: 575.98px) {
  .produtos-panel-toolbar {
    padding: 0.65rem;
  }
  .produtos-filtro-select {
    flex-basis: calc(50% - 0.35rem);
    min-width: 0;
  }
  .produtos-filtro-select:last-child {
    flex-basis: 100%;
  }
  .produtos-toolbar-actions {
    display: grid;
    grid-template-columns: 1fr repeat(3, auto);
    align-items: center;
  }
  .produtos-cards-scroll {
    padding: 0.6rem;
  }
  .produto-categoria-card > summary {
    padding: 0.55rem 0.65rem;
  }
  .produto-categoria-grid {
    grid-template-columns: 1fr;
    padding: 0.55rem;
  }
  .produto-card {
    grid-template-columns: 66px minmax(0, 1fr);
  }
  .produto-card-media {
    width: 52px;
    height: 52px;
    margin: 0.6rem 0 0.5rem 0.6rem;
  }
  .produto-cadastro-sections {
    height: auto;
    padding: 0.6rem;
  }
  .produto-cadastro-section > summary {
    min-height: 54px;
    padding: 0.55rem 0.65rem;
  }
  .produto-cadastro-section > summary small {
    max-width: 190px;
  }
  .produto-section-summary {
    display: none;
  }
  .produto-cadastro-section-body {
    padding: 0.7rem;
  }
}

/* Listagens em cards: a altura de cada item acompanha o próprio conteúdo em qualquer viewport. */
.unidades-cards,
.cadastro-cards,
.catalogo-cards,
.taxas-entrega-cards,
.perfis-cards,
.usuarios-cards,
.historicos-cards,
.historico-categorias-cards,
.produtos-cards-categorias,
.produto-categoria-grid,
.ss-galeria-grid,
.impressoras-clientes-grid,
.etq-model-list {
  grid-auto-rows: max-content;
  align-items: start;
}

.unidade-card,
.fornecedor-card,
.catalogo-card,
.produto-categoria-card,
.produto-card,
.ss-galeria-card,
.historico-categoria-card,
.impressoras-cliente-card,
.etq-model-card {
  align-self: start;
  height: auto;
}

.unidade-card,
.fornecedor-card,
.catalogo-card,
.produto-categoria-card,
.produto-card,
.ss-galeria-card,
.etq-model-card {
  min-height: max-content;
}

/* Fornecedores: todos os cards da mesma linha acompanham a altura do maior. */
.cadastro-cards.fornecedor-cards {
  grid-auto-rows: auto;
  align-items: stretch;
}

.fornecedor-cards > .fornecedor-card {
  align-self: stretch;
  height: 100%;
}

/* SSAppsPdf — visualizador global de relatórios PDF em modal fullscreen */

/* Marketing — cards e formulários responsivos no mesmo padrão de Cadastros. */
.marketing-list-panel {
  overflow: hidden;
}

.marketing-cards {
  flex: 1 1 auto;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 350px), 1fr));
  grid-auto-rows: max-content;
  align-content: start;
  align-items: start;
  gap: 0.75rem;
  min-height: 0;
  padding: 0.75rem;
  overflow-y: auto;
  background: #f8fafc;
  -webkit-overflow-scrolling: touch;
}

.marketing-card {
  align-self: start;
  min-width: 0;
  min-height: max-content;
  height: auto;
  overflow: hidden;
  border: 1px solid #e2e8f0;
  border-radius: 10px;
  background: #fff;
  color: #111827;
  box-shadow: 0 4px 14px rgba(15, 23, 42, 0.055);
  transition: border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}

.marketing-card.is-clicavel {
  cursor: pointer;
}

.marketing-card.is-clicavel:hover {
  border-color: color-mix(in srgb, var(--cor-unidade, #2d3142) 32%, #dbe4ef);
  box-shadow: 0 10px 24px rgba(15, 23, 42, 0.09);
  transform: translateY(-1px);
}

.marketing-card-head {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  min-width: 0;
  padding: 0.7rem 0.75rem;
  border-bottom: 1px solid #eef2f7;
}

.marketing-card-media {
  width: 42px;
  height: 42px;
  flex: 0 0 42px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  border: 1px solid #dbe5f0;
  border-radius: 10px;
  background: color-mix(in srgb, var(--cor-unidade, #2d3142) 10%, #fff) no-repeat center;
  background-size: cover;
  color: var(--cor-unidade, #2d3142);
  font-size: 1.05rem;
}

.marketing-card-identidade {
  min-width: 0;
  display: grid;
  gap: 0.14rem;
}

.marketing-card-identidade strong {
  overflow: hidden;
  color: #0f172a;
  font-size: 0.92rem;
  font-weight: 800;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.marketing-card-identidade span,
.marketing-card-caption {
  min-width: 0;
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  color: #64748b;
  font-size: .75rem;
  font-weight: 700;
}

.marketing-card-description {
  display: -webkit-box;
  margin: 0;
  padding: 0.65rem 0.75rem 0.2rem;
  overflow: hidden;
  color: #475569;
  font-size: 0.76rem;
  line-height: 1.42;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
}

.marketing-card-body {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.45rem;
  padding: 0.65rem 0.75rem;
}

.marketing-card-info {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 0.45rem;
  padding: 0.5rem;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  background: #f8fafc;
}

.marketing-card-info > i {
  flex: 0 0 auto;
  color: var(--cor-unidade, #2d3142);
}

.marketing-card-info > div {
  min-width: 0;
  display: grid;
  gap: 0.08rem;
}

.marketing-card-info span {
  color: #64748b;
  font-size: .75rem;
  font-weight: 700;
}

.marketing-card-info strong {
  overflow: hidden;
  color: #1e293b;
  font-size: .75rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.marketing-card-info.is-highlight {
  border-color: #bbf7d0;
  background: #f0fdf4;
}

.marketing-card-info.is-highlight > i,
.marketing-card-info.is-highlight strong {
  color: #166534;
}

.marketing-card-foot {
  gap: 0.6rem;
  padding: 0.52rem 0.75rem 0.62rem;
}

.campanha-card .marketing-card-foot {
  justify-content: flex-end;
}

.campanha-card-destino {
  grid-column: 1 / -1;
  width: 100%;
}

.marketing-cards-vazio {
  grid-column: 1 / -1;
}

.marketing-cards-vazio i {
  color: var(--cor-unidade, #2d3142);
  font-size: 1.4rem;
}

.marketing-status {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  min-height: 22px;
  padding: 0.18rem 0.45rem;
  border-radius: 999px;
  font-size: .75rem;
  font-weight: 800;
}

.marketing-status.is-active {
  background: #dcfce7;
  color: #166534;
}

.marketing-status.is-inactive {
  background: #f1f5f9;
  color: #64748b;
}

.marketing-card-info-template.is-approved {
  border-color: #bbf7d0;
  background: #f0fdf4;
}

.marketing-card-info-template.is-rejected {
  border-color: #fecaca;
  background: #fef2f2;
}

.banner-card-preview {
  position: relative;
  height: 118px;
  overflow: hidden;
  border-bottom: 1px solid #e2e8f0;
  background: #eef2f7;
}

.banner-card-preview-desktop {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #eef2f7 no-repeat center;
  background-size: cover;
  color: #94a3b8;
  font-size: 1.45rem;
}

.banner-card-preview-mobile {
  position: absolute;
  right: 0.65rem;
  bottom: 0.5rem;
  width: 52px;
  height: 82px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 3px solid #fff;
  border-radius: 10px;
  background: #fff no-repeat center;
  background-size: cover;
  color: #64748b;
  box-shadow: 0 6px 18px rgba(15, 23, 42, 0.22);
}

.banner-card .marketing-card-head {
  border-top: 0;
}

.cupom-card-head {
  background: linear-gradient(135deg, color-mix(in srgb, var(--cor-unidade, #2d3142) 9%, #fff), #fff);
}

.cupom-card-icon {
  border-style: dashed;
  font-size: 1.2rem;
}

.cupom-card-codigo {
  display: block;
  overflow: hidden;
  letter-spacing: 0.045em;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.cupom-card > .marketing-card-description {
  display: block;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.cupom-card-status {
  width: max-content;
  gap: 0.28rem;
  margin-top: 0.1rem;
  color: #b91c1c;
  background: #fee2e2;
}

.cupom-card.is-esgotado {
  border-color: #fecaca;
}

.cupom-card.is-esgotado .cupom-card-head {
  background: linear-gradient(135deg, #fff1f2, #fff);
}

.cupom-card.is-esgotado .cupom-card-desconto {
  background: #64748b;
}

.cupom-card-desconto {
  margin-left: auto;
  padding: 0.34rem 0.5rem;
  border-radius: 8px;
  background: var(--cor-unidade, #2d3142);
  color: #fff;
  font-size: 0.75rem;
  font-weight: 900;
  white-space: nowrap;
}

.cupom-card-body {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.cupom-card-body > .marketing-card-info:last-child {
  grid-column: 1 / -1;
}

.cupom-card .marketing-card-info > div {
  overflow: hidden;
}

.cupom-card .marketing-card-info span,
.cupom-card .marketing-card-info strong,
.cupom-card .marketing-card-caption {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.cupom-card-beneficio {
  grid-column: 1 / -1;
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 0.55rem;
  padding: 0.58rem 0.65rem;
  border: 1px solid #bfdbfe;
  border-radius: 9px;
  background: #eff6ff;
}

.cupom-card-beneficio.is-entrega {
  border-color: #a7f3d0;
  background: #ecfdf5;
}

.cupom-card-beneficio-icon {
  width: 34px;
  height: 34px;
  flex: 0 0 34px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 9px;
  background: #dbeafe;
  color: #1d4ed8;
  font-size: 1rem;
}

.cupom-card-beneficio.is-entrega .cupom-card-beneficio-icon {
  background: #d1fae5;
  color: #047857;
}

.cupom-card-beneficio > div {
  min-width: 0;
  display: grid;
  gap: 0.08rem;
}

.cupom-card-beneficio > div > span {
  display: block;
  overflow: hidden;
  color: #475569;
  font-size: .75rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.035em;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.cupom-card-beneficio strong {
  overflow: hidden;
  color: #1e3a8a;
  font-size: 0.76rem;
  font-weight: 900;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.cupom-card-beneficio.is-entrega strong {
  color: #065f46;
}

.marketing-editor-intro {
  margin-bottom: 1rem;
}

.marketing-editor-layout {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.9rem;
}

.banner-editor-layout {
  grid-template-columns: minmax(0, 1fr);
}

.banner-editor-layout .marketing-editor-wide {
  grid-column: auto;
}

.banner-destino-autocomplete {
  position: relative;
}

.banner-destino-autocomplete > i {
  position: absolute;
  z-index: 2;
  top: 50%;
  left: 0.6rem;
  color: #64748b;
  font-size: 0.82rem;
  pointer-events: none;
  transform: translateY(-50%);
}

.banner-destino-autocomplete > .form-control {
  width: 100%;
  padding-left: 1.9rem;
}

.banner-destino-resultados {
  position: absolute;
  z-index: 1080;
  top: calc(100% + 0.3rem);
  right: 0;
  left: 0;
  max-height: 220px;
  overflow-y: auto;
  padding: 0.3rem;
  border: 1px solid #dbe3ee;
  border-radius: 9px;
  background: #fff;
  box-shadow: 0 12px 28px rgba(15, 23, 42, 0.16);
}

.banner-destino-opcao {
  width: 100%;
  padding: 0.48rem 0.55rem;
  border: 0;
  border-radius: 6px;
  background: transparent;
  color: #1e293b;
  font-size: 0.82rem;
  text-align: left;
}

.banner-destino-opcao:hover,
.banner-destino-opcao:focus,
.banner-destino-opcao.is-active {
  background: #eef2f7;
  outline: none;
}

.banner-destino-vazio {
  display: block;
  padding: 0.55rem;
  color: #64748b;
  font-size: 0.78rem;
  text-align: center;
}

.marketing-config-card {
  min-width: 0;
  margin: 0;
}

.marketing-editor-wide {
  grid-column: 1 / -1;
}

.marketing-fields-grid,
.banner-artes-grid,
.marketing-social-grid,
.marketing-tracking-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.7rem;
}

.marketing-field-full {
  grid-column: 1 / -1;
}

.marketing-image-picker {
  min-height: 164px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0.75rem;
  border: 1px dashed #b8c5d6;
  border-radius: 10px;
  background: #f8fafc no-repeat center;
  background-size: contain;
  color: #64748b;
  cursor: pointer;
  transition: border-color 160ms ease, background-color 160ms ease;
}

.marketing-image-picker:hover,
.marketing-image-picker:focus-visible {
  border-color: var(--cor-unidade, #2d3142);
  background-color: #fff;
  outline: none;
}

.marketing-image-picker > span {
  display: grid;
  justify-items: center;
  gap: 0.22rem;
  text-align: center;
}

.marketing-image-picker > span > i {
  color: var(--cor-unidade, #2d3142);
  font-size: 1.35rem;
}

.marketing-image-picker > span > strong {
  color: #334155;
  font-size: 0.82rem;
}

.marketing-image-picker > span > small {
  color: #64748b;
  font-size: .75rem;
}

.marketing-inline-actions {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  flex-wrap: wrap;
}

.marketing-inline-actions select {
  flex: 1 1 220px;
  min-width: 0;
}

.marketing-week-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.55rem;
}

.marketing-switch-box {
  min-height: 42px;
  margin: 0;
  padding: 0.55rem 0.65rem;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  background: #f8fafc;
}

.marketing-choice-group {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.55rem;
}

.marketing-choice-group label {
  position: relative;
  margin: 0;
  cursor: pointer;
}

.marketing-choice-group input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.marketing-choice-group span {
  min-height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
  padding: 0.55rem 0.7rem;
  border: 1px solid #dbe3ed;
  border-radius: 9px;
  background: #f8fafc;
  color: #475569;
  font-size: 0.78rem;
  font-weight: 800;
}

.marketing-choice-group input:checked + span {
  border-color: var(--cor-unidade, #2d3142);
  background: color-mix(in srgb, var(--cor-unidade, #2d3142) 9%, #fff);
  color: var(--cor-unidade, #2d3142);
  box-shadow: inset 0 0 0 1px var(--cor-unidade, #2d3142);
}

.cupom-group-label,
.cupom-benefit-field legend {
  margin: 0 0 0.45rem;
  color: #334155;
  font-size: 0.78rem;
  font-weight: 900;
}

.cupom-editor-layout .marketing-field-full {
  grid-column: 1 / -1;
}

.cupom-benefit-field {
  min-width: 0;
  margin: 0.15rem 0 0;
  padding: 0.75rem;
  border: 1px solid #dbe3ed;
  border-radius: 10px;
  background: #fff;
}

.cupom-benefit-field legend {
  width: auto;
  float: none;
  padding: 0;
}

.cupom-benefit-group {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 0.5rem;
}

.cupom-benefit-group label {
  position: relative;
  margin: 0;
  cursor: pointer;
}

.cupom-benefit-group input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.cupom-benefit-option {
  min-height: 64px;
  display: flex;
  align-items: center;
  gap: 0.6rem;
  padding: 0.62rem;
  border: 1px solid #dbe3ed;
  border-radius: 10px;
  background: #f8fafc;
  transition: border-color 150ms ease, background-color 150ms ease, box-shadow 150ms ease;
}

.cupom-benefit-icon {
  width: 38px;
  height: 38px;
  flex: 0 0 38px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 10px;
  background: #e2e8f0;
  color: #475569;
  font-size: 1.05rem;
}

.cupom-benefit-copy {
  min-width: 0;
  display: grid;
  gap: 0.13rem;
}

.cupom-benefit-copy strong {
  color: #1e293b;
  font-size: 0.82rem;
  font-weight: 900;
}

.cupom-benefit-copy small,
.cupom-field-help {
  color: #64748b;
  font-size: .75rem;
  line-height: 1.35;
}

.cupom-benefit-tag {
  margin-left: auto;
  padding: 0.18rem 0.38rem;
  border-radius: 999px;
  background: #e2e8f0;
  color: #475569;
  font-size: .75rem;
  font-weight: 900;
  white-space: nowrap;
}

.cupom-benefit-group input:checked + .cupom-benefit-option {
  border-color: var(--cor-unidade, #2d3142);
  background: color-mix(in srgb, var(--cor-unidade, #2d3142) 7%, #fff);
  box-shadow: inset 0 0 0 1px var(--cor-unidade, #2d3142);
}

.cupom-benefit-group input:checked + .cupom-benefit-option .cupom-benefit-icon {
  background: var(--cor-unidade, #2d3142);
  color: #fff;
}

.cupom-benefit-group input:focus-visible + .cupom-benefit-option,
.marketing-choice-group input:focus-visible + span {
  outline: 3px solid color-mix(in srgb, var(--cor-unidade, #2d3142) 24%, transparent);
  outline-offset: 2px;
}

.cupom-benefit-summary {
  display: flex;
  align-items: flex-start;
  gap: 0.35rem;
  margin: 0.55rem 0 0;
  color: #475569;
  font-size: .75rem;
  line-height: 1.4;
}

.cupom-benefit-summary i {
  margin-top: 0.05rem;
  color: var(--cor-unidade, #2d3142);
}

.cupom-field-help {
  display: block;
  margin-top: 0.28rem;
}

.cupom-free-shipping {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  min-height: 58px;
  align-items: center;
  box-sizing: border-box;
}

.cupom-free-shipping .ss-switch-text {
  min-width: 0;
  flex: 1 1 auto;
  display: grid;
  gap: 0.1rem;
  white-space: normal;
  overflow-wrap: anywhere;
}

.cupom-free-shipping .ss-switch-text strong {
  color: #1e293b;
  font-size: 0.76rem;
  font-weight: 900;
}

.cupom-free-shipping .ss-switch-text small {
  display: block;
  color: #64748b;
  font-size: 0.66rem;
  line-height: 1.3;
  white-space: normal;
}

.marketing-config-shell {
  overflow: hidden;
  background: #f8fafc;
}

.marketing-config-shell > .unidades-tabs {
  position: relative;
  top: auto;
  margin: 0;
  padding: 0.7rem 0.85rem 0;
  border-bottom: 1px solid #e2e8f0;
  background: #fff;
}

.marketing-config-shell > .tab-content {
  min-height: 0;
  padding: 0.85rem;
  overflow-y: auto;
}

.marketing-unit-panel {
  max-width: 1180px;
  margin: 0 auto;
}

.marketing-config-fields {
  row-gap: 0.85rem;
}

.marketing-social-grid,
.marketing-tracking-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.marketing-unit-avatar {
  width: 38px;
  height: 38px;
  object-fit: cover;
  border-radius: 10px;
}

.marketing-shopping-shell {
  display: block;
  padding: 0.85rem;
  overflow-y: auto;
}

.marketing-shopping-intro {
  max-width: 1180px;
  margin: 0 auto 0.85rem;
}

.marketing-shopping-cards {
  width: 100%;
  max-width: 1180px;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 430px), 1fr));
  gap: 0.75rem;
  margin: 0 auto;
}

.marketing-shopping-card-head {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  margin-bottom: 0.75rem;
}

.marketing-shopping-card-head > span,
.promocao-taxa-card-head > span {
  width: 38px;
  height: 38px;
  flex: 0 0 38px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 10px;
  background: color-mix(in srgb, var(--cor-unidade, #2d3142) 10%, #fff);
  color: var(--cor-unidade, #2d3142);
}

.marketing-shopping-card-head > div,
.promocao-taxa-card-head > div {
  min-width: 0;
  display: grid;
}

.marketing-shopping-card-head strong,
.promocao-taxa-card-head strong {
  color: #0f172a;
  font-size: 0.88rem;
  font-weight: 800;
}

.marketing-shopping-card-head small,
.promocao-taxa-card-head small {
  color: #64748b;
  font-size: .75rem;
}

.marketing-shopping-url {
  display: flex;
  gap: 0.5rem;
}

.marketing-shopping-url input {
  min-width: 0;
}

.promocoes-taxas-cards {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 400px), 1fr));
  gap: 0.7rem;
}

.promocao-taxa-card {
  min-width: 0;
  overflow: hidden;
  border: 1px solid #e2e8f0;
  border-radius: 10px;
  background: #fff;
}

.promocao-taxa-card-head {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  padding: 0.65rem 0.7rem;
  border-bottom: 1px solid #eef2f7;
  background: #f8fafc;
}

.promocao-taxa-rules {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.55rem;
  padding: 0.65rem;
}

.promocao-taxa-rule {
  min-width: 0;
  padding: 0.55rem;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  background: #f8fafc;
}

.promocao-taxa-rule-fields {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.45rem;
  margin-top: 0.5rem;
}

/* Descontos — mesma estrutura compacta e guiada usada em Cashback. */
.promocoes-workspace {
  min-height: 0;
}

.promocoes-workspace-body {
  flex: 1 1 auto;
  min-height: 0;
  padding: 0.8rem;
  overflow-y: auto;
  background: #f8fafc;
}

.promocoes-panel,
.promocoes-config-main {
  min-width: 0;
}

.promocoes-intro {
  margin-bottom: 0.75rem;
}

.promocoes-config-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 300px;
  gap: 0.8rem;
  align-items: start;
}

.promocoes-config-main {
  display: grid;
  gap: 0.7rem;
}

.promocoes-config-card {
  margin: 0;
  padding: 0.8rem;
  box-shadow: none;
}

.promocoes-config-card .unidade-config-card-head {
  margin-bottom: 0.65rem;
}

.promocoes-regra-list {
  display: grid;
  gap: 0.5rem;
}

.promocoes-regra-row {
  min-width: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.8rem;
  padding: 0.58rem 0.65rem;
  border: 1px solid #e2e8f0;
  border-radius: 9px;
  background: #f8fafc;
}

.promocoes-regra-copy {
  min-width: 190px;
  display: flex;
  align-items: center;
  gap: 0.55rem;
}

.promocoes-regra-copy > div {
  min-width: 0;
  display: grid;
  gap: 0.08rem;
}

.promocoes-regra-copy strong {
  color: #0f172a;
  font-size: 0.76rem;
  font-weight: 900;
}

.promocoes-regra-copy small {
  color: #64748b;
  font-size: .75rem;
  line-height: 1.3;
}

.promocoes-regra-icon {
  width: 32px;
  height: 32px;
  flex: 0 0 32px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 8px;
  background: color-mix(in srgb, var(--cor-unidade, #2d3142) 10%, #fff);
  color: var(--cor-unidade, #2d3142);
}

.promocoes-regra-controls {
  min-width: 0;
  display: grid;
  grid-template-columns: auto 128px 100px;
  align-items: end;
  gap: 0.48rem;
}

.promocoes-regra-switch {
  min-height: 31px;
  align-self: end;
  padding: 0 0.15rem 0.22rem 0;
}

.promocoes-compact-field {
  min-width: 0;
  margin: 0;
}

.promocoes-compact-field .form-label {
  display: block;
  margin-bottom: 0.18rem;
  color: #475569;
  font-size: 0.62rem;
  font-weight: 800;
}

.promocoes-input-prefix,
.promocoes-input-suffix {
  position: relative;
  min-width: 0;
}

/* O controle global (.gestor-body .form-control) aplica padding com !important;
   sobrescrever a variável no contêiner é o que garante o espaço do prefixo/sufixo
   (mesmo padrão usado em .ss-search-field), senão o ícone fica em cima do texto. */
.gestor-body .promocoes-input-prefix {
  --ss-control-padding: 0.16rem 0.5rem 0.16rem 1.8rem;
}

.gestor-body .promocoes-input-suffix {
  --ss-control-padding: 0.16rem 1.65rem 0.16rem 0.5rem;
}

.promocoes-input-prefix .form-control {
  padding-left: 1.8rem;
}

.promocoes-input-suffix .form-control {
  padding-right: 1.65rem;
}

.promocoes-input-prefix > span,
.promocoes-input-suffix > span {
  position: absolute;
  z-index: 1;
  top: 50%;
  color: #64748b;
  font-size: 0.68rem;
  font-weight: 900;
  pointer-events: none;
  transform: translateY(-50%);
}

.promocoes-input-prefix > span {
  left: 0.48rem;
}

.promocoes-input-suffix > span {
  right: 0.52rem;
}

.promocoes-taxas-toolbar {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin-bottom: 0.55rem;
}

.promocoes-taxas-busca {
  min-width: 180px;
  flex: 1 1 260px;
}

.promocoes-taxas-filtros {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  gap: 0.2rem;
  padding: 0.2rem;
  border: 1px solid #dbe3ed;
  border-radius: 9px;
  background: #f1f5f9;
}

.promocoes-taxas-filtros button {
  min-height: 27px;
  padding: 0.25rem 0.52rem;
  border: 0;
  border-radius: 7px;
  background: transparent;
  color: #64748b;
  font-size: 0.66rem;
  font-weight: 800;
  line-height: 1;
}

.promocoes-taxas-filtros button:hover,
.promocoes-taxas-filtros button:focus-visible {
  color: #1e293b;
  background: #fff;
  outline: none;
}

.promocoes-taxas-filtros button.is-active {
  background: var(--cor-unidade, #2d3142);
  color: #fff;
  box-shadow: 0 2px 5px rgba(15, 23, 42, 0.14);
}

.promocoes-taxas-contador {
  min-width: 42px;
  color: #64748b;
  font-size: .75rem;
  font-weight: 800;
  text-align: right;
  white-space: nowrap;
}

.promocoes-taxas-list {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  align-items: start;
  gap: 0.6rem;
}

.promocoes-taxas-list .promocao-taxa-card--lista {
  display: grid;
  grid-template-columns: minmax(190px, 0.62fr) minmax(0, 2fr);
  align-items: stretch;
  border: 1px solid #cbd5e1;
  background: #fff;
  box-shadow: 0 3px 9px rgba(15, 23, 42, 0.13);
}

.promocoes-taxas-list .promocao-taxa-card-head {
  padding: 0.5rem 0.6rem;
  border-right: 0;
  border-bottom: 0;
  background: transparent;
}

.promocoes-taxas-list .promocao-taxa-card-head > span {
  width: 28px;
  height: 28px;
  flex-basis: 28px;
  border-radius: 8px;
}

.promocoes-taxas-list .promocao-taxa-card-head strong {
  font-size: 0.76rem;
}

.promocoes-taxas-list .promocao-taxa-card-head small {
  font-size: .75rem;
}

.promocoes-taxas-list .promocao-taxa-rules {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: stretch;
  gap: 0.4rem;
  padding: 0.4rem;
}

.promocoes-regra-compacta {
  padding: 0.38rem;
}

.promocoes-regra-compacta .promocao-taxa-rule-fields {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.4rem;
  margin-top: 0.38rem;
}

.promocoes-taxas-list .promocoes-regra-compacta {
  display: grid;
  grid-template-columns: minmax(104px, auto) repeat(2, minmax(0, 1fr));
  align-items: end;
  gap: 0.32rem;
}

.promocoes-taxas-list .promocoes-regra-compacta > .promocoes-regra-switch {
  align-self: center;
  margin: 0;
  white-space: nowrap;
}

.promocoes-taxas-list .promocoes-regra-compacta .promocao-taxa-rule-fields {
  display: contents;
}

.promocoes-summary-card {
  width: 100%;
}

/* Marketing — workspace único da unidade ativa, alinhado ao padrão de Descontos. */
.marketing-single-workspace {
  min-height: 0;
}

.marketing-single-body {
  flex: 1 1 auto;
  min-height: 0;
  padding: 0.8rem;
  overflow-y: auto;
  background: #f8fafc;
}

.marketing-single-intro {
  margin-bottom: 0.75rem;
}

.marketing-single-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 300px;
  gap: 0.8rem;
  align-items: start;
}

.marketing-single-main {
  min-width: 0;
  display: grid;
  gap: 0.7rem;
}

.marketing-single-card {
  min-width: 0;
  margin: 0;
  padding: 0.8rem;
  box-shadow: none;
}

.marketing-single-card .unidade-config-card-head {
  margin-bottom: 0.65rem;
}

.marketing-single-summary {
  width: 100%;
}

.marketing-channel-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.5rem;
}

.marketing-channel-field {
  min-width: 0;
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr);
  align-items: center;
  gap: 0.18rem 0.55rem;
  margin: 0;
  padding: 0.58rem;
  border: 1px solid #e2e8f0;
  border-radius: 9px;
  background: #f8fafc;
}

.marketing-channel-field.is-wide {
  grid-column: 1 / -1;
}

.marketing-channel-field > .form-control {
  grid-column: 1 / -1;
  margin-top: 0.28rem;
}

.marketing-channel-icon {
  width: 34px;
  height: 34px;
  flex: 0 0 34px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 9px;
  background: color-mix(in srgb, var(--cor-unidade, #2d3142) 10%, #fff);
  color: var(--cor-unidade, #2d3142);
  font-size: 0.95rem;
}

.marketing-channel-copy {
  min-width: 0;
  display: grid;
  gap: 0.06rem;
}

.marketing-channel-copy strong {
  color: #0f172a;
  font-size: 0.75rem;
  font-weight: 900;
}

.marketing-channel-copy small {
  color: #64748b;
  font-size: .75rem;
  line-height: 1.3;
}

.marketing-tracking-list {
  display: grid;
  gap: 0.5rem;
}

.marketing-tracking-field {
  min-width: 0;
  display: grid;
  grid-template-columns: 34px minmax(170px, 0.7fr) minmax(220px, 1fr);
  align-items: center;
  gap: 0.55rem;
  margin: 0;
  padding: 0.58rem;
  border: 1px solid #e2e8f0;
  border-radius: 9px;
  background: #f8fafc;
}

.marketing-tracking-input {
  min-width: 0;
  display: grid;
  gap: 0.18rem;
}

.marketing-tracking-input > span {
  color: #475569;
  font-size: 0.62rem;
  font-weight: 800;
}

.marketing-feed-url {
  min-width: 0;
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr) auto auto;
  align-items: center;
  gap: 0.5rem;
  padding: 0.62rem;
  border: 1px solid #dbe3ed;
  border-radius: 9px;
  background: #f8fafc;
}

.marketing-feed-url-icon {
  width: 34px;
  height: 34px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 9px;
  background: color-mix(in srgb, var(--cor-unidade, #2d3142) 10%, #fff);
  color: var(--cor-unidade, #2d3142);
}

.marketing-feed-url .form-control {
  min-width: 0;
}

/* Cashback — configuração simples e guiada da unidade ativa. */
.cashback-panel {
  min-width: 0;
}

.cashback-workspace {
  min-height: 0;
}

.cashback-workspace-body {
  flex: 1 1 auto;
  min-height: 0;
  padding: 0.8rem;
  overflow-y: auto;
  background: #f8fafc;
}

.cashback-intro {
  margin-bottom: 0.75rem;
}

.cashback-config-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 330px;
  gap: 0.8rem;
  align-items: start;
}

.cashback-config-main {
  min-width: 0;
  display: grid;
  gap: 0.7rem;
}

.cashback-config-main .unidade-config-card {
  margin: 0;
  box-shadow: none;
}

.cashback-ativacao-card {
  padding: 0.72rem 0.8rem;
}

.cashback-ativacao-row,
.cashback-ativacao-copy,
.cashback-ativacao-control {
  display: flex;
  align-items: center;
}

.cashback-ativacao-row {
  justify-content: space-between;
  gap: 1rem;
}

.cashback-ativacao-copy {
  min-width: 0;
  gap: 0.6rem;
}

.cashback-ativacao-copy > div {
  min-width: 0;
  display: grid;
  gap: 0.08rem;
}

.cashback-ativacao-copy strong {
  color: #0f172a;
  font-size: 0.86rem;
  font-weight: 800;
}

.cashback-ativacao-copy small {
  color: #64748b;
  font-size: .75rem;
}

.cashback-section-icon {
  width: 34px;
  height: 34px;
  flex: 0 0 34px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 9px;
  background: color-mix(in srgb, var(--cor-unidade, #2d3142) 10%, #fff);
  color: var(--cor-unidade, #2d3142);
}

.cashback-ativacao-control {
  flex: 0 0 auto;
  gap: 0.7rem;
}

.cashback-minimo-inline {
  display: grid;
  grid-template-columns: auto 118px;
  align-items: center;
  gap: 0.45rem;
}

.cashback-minimo-inline > label {
  display: grid;
  gap: 0.02rem;
  margin: 0;
  color: #334155;
  font-size: .75rem;
  font-weight: 800;
  line-height: 1.15;
}

.cashback-minimo-inline > label small {
  color: #64748b;
  font-size: .75rem;
  font-weight: 600;
}

.cashback-ativacao-control .ss-switch {
  margin: 0;
}

.cashback-status-badge {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 0.2rem 0.52rem;
  border-radius: 999px;
  background: #f1f5f9;
  color: #64748b;
  font-size: .75rem;
  font-weight: 800;
}

.cashback-status-badge.is-active {
  background: #dcfce7;
  color: #166534;
}

.cashback-regra-card,
.cashback-valores-card {
  padding: 0.8rem;
}

.cashback-regra-card .unidade-config-card-head,
.cashback-valores-card .unidade-config-card-head {
  margin-bottom: 0.65rem;
}

.cashback-mode-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.55rem;
}

.cashback-mode-card {
  position: relative;
  min-width: 0;
  min-height: 142px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.28rem;
  margin: 0;
  padding: 0.72rem;
  border: 1px solid #dbe3ed;
  border-radius: 10px;
  background: #fff;
  cursor: pointer;
  transition: border-color 150ms ease, background-color 150ms ease, box-shadow 150ms ease;
}

.cashback-mode-card:hover {
  border-color: #aab8c8;
}

.cashback-mode-card.is-selected {
  border-color: var(--cor-unidade, #2d3142);
  background: color-mix(in srgb, var(--cor-unidade, #2d3142) 5%, #fff);
  box-shadow: inset 0 0 0 1px var(--cor-unidade, #2d3142);
}

.cashback-mode-card > input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.cashback-mode-check {
  position: absolute;
  top: 0.55rem;
  right: 0.55rem;
  width: 20px;
  height: 20px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid #cbd5e1;
  border-radius: 50%;
  background: #fff;
  color: transparent;
  font-size: .75rem;
}

.cashback-mode-card.is-selected .cashback-mode-check {
  border-color: var(--cor-unidade, #2d3142);
  background: var(--cor-unidade, #2d3142);
  color: #fff;
}

.cashback-mode-icon {
  width: 32px;
  height: 32px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 0.1rem;
  border-radius: 8px;
  background: #f1f5f9;
  color: #475569;
}

.cashback-mode-card.is-selected .cashback-mode-icon {
  background: color-mix(in srgb, var(--cor-unidade, #2d3142) 12%, #fff);
  color: var(--cor-unidade, #2d3142);
}

.cashback-mode-card strong {
  color: #0f172a;
  font-size: 0.78rem;
  font-weight: 800;
}

.cashback-mode-card small {
  color: #64748b;
  font-size: .75rem;
  line-height: 1.35;
}

.cashback-mode-card em {
  margin-top: auto;
  color: #166534;
  font-size: .75rem;
  font-style: normal;
  font-weight: 800;
}

.cashback-values-grid {
  display: grid;
  grid-template-columns: minmax(0, 220px);
  gap: 0.7rem;
}

.cashback-values-grid .ss-field > small {
  display: block;
  margin-top: 0.26rem;
  color: #64748b;
  font-size: 0.66rem;
  line-height: 1.35;
}

.cashback-input-affix {
  position: relative;
}

.cashback-input-affix .form-control {
  padding-right: 2rem;
}

.cashback-input-affix > span {
  position: absolute;
  top: 50%;
  right: 0.6rem;
  transform: translateY(-50%);
  color: #64748b;
  font-size: 0.82rem;
  font-weight: 800;
  pointer-events: none;
}

.cashback-input-prefix {
  position: relative;
}

.cashback-input-prefix .form-control {
  padding-left: 2rem;
}

.cashback-input-prefix > span {
  position: absolute;
  z-index: 1;
  top: 50%;
  left: 0.55rem;
  transform: translateY(-50%);
  color: #64748b;
  font-size: 0.72rem;
  font-weight: 800;
  pointer-events: none;
}

.cashback-produtos-action {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.7rem;
  margin-top: 0.65rem;
  padding: 0.6rem;
  border: 1px solid #dbeafe;
  border-radius: 9px;
  background: #eff6ff;
}

.cashback-produtos-action[hidden] {
  display: none;
}

.cashback-produtos-action > div {
  min-width: 0;
  display: flex;
  align-items: flex-start;
  gap: 0.45rem;
  color: #1d4ed8;
}

.cashback-produtos-action > div > span {
  min-width: 0;
  display: grid;
  gap: 0.08rem;
}

.cashback-produtos-action strong {
  color: #1e3a8a;
  font-size: .75rem;
}

.cashback-produtos-action small {
  color: #475569;
  font-size: .75rem;
  line-height: 1.35;
}

.cashback-produtos-action .btn {
  flex: 0 0 auto;
}

.cashback-summary-card {
  position: sticky;
  top: 0.7rem;
  min-width: 0;
  overflow: hidden;
  border: 1px solid #dbe3ed;
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 8px 22px rgba(15, 23, 42, 0.06);
}

.cashback-summary-head {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  padding: 0.75rem;
  border-bottom: 1px solid #e2e8f0;
  background: linear-gradient(135deg, color-mix(in srgb, var(--cor-unidade, #2d3142) 8%, #fff), #fff);
}

.cashback-summary-head > span {
  width: 38px;
  height: 38px;
  flex: 0 0 38px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 10px;
  background: var(--cor-unidade, #2d3142);
  color: #fff;
}

.cashback-summary-head > div {
  min-width: 0;
  display: grid;
  gap: 0.06rem;
}

.cashback-summary-head small {
  color: #64748b;
  font-size: 0.63rem;
  font-weight: 700;
  text-transform: uppercase;
}

.cashback-summary-head strong {
  color: #0f172a;
  font-size: 0.85rem;
  font-weight: 900;
}

.cashback-summary-status {
  display: flex;
  align-items: center;
  gap: 0.36rem;
  margin: 0.7rem 0.75rem 0;
  padding: 0.45rem 0.55rem;
  border-radius: 8px;
  background: #f1f5f9;
  color: #64748b;
  font-size: 0.7rem;
  font-weight: 800;
}

.cashback-summary-status.is-active {
  background: #dcfce7;
  color: #166534;
}

.cashback-summary-list {
  display: grid;
  gap: 0;
  margin: 0.55rem 0.75rem 0;
}

.cashback-summary-list > div {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.48rem 0;
  border-bottom: 1px solid #eef2f7;
}

.cashback-summary-list dt,
.cashback-summary-list dd {
  margin: 0;
  font-size: 0.68rem;
}

.cashback-summary-list dt {
  color: #64748b;
}

.cashback-summary-list dd {
  max-width: 58%;
  color: #0f172a;
  font-weight: 800;
  text-align: right;
}

.cashback-example {
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
  margin: 0.65rem 0.75rem;
  padding: 0.62rem;
  border-radius: 9px;
  background: #f8fafc;
}

.cashback-example-icon {
  width: 28px;
  height: 28px;
  flex: 0 0 28px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 8px;
  background: #e2e8f0;
  color: #334155;
}

.cashback-example > div {
  min-width: 0;
  display: grid;
  gap: 0.1rem;
}

.cashback-example small {
  color: #64748b;
  font-size: .75rem;
}

.cashback-example strong {
  color: #334155;
  font-size: .75rem;
  line-height: 1.4;
}

.cashback-tip {
  display: flex;
  align-items: flex-start;
  gap: 0.45rem;
  padding: 0.65rem 0.75rem;
  border-top: 1px solid #f1e4b7;
  background: #fffbeb;
  color: #92400e;
  font-size: .75rem;
  line-height: 1.4;
}

.cashback-tip > span {
  display: grid;
  gap: 0.06rem;
}

.cashback-tip strong {
  color: #78350f;
}

.cashback-produtos-modal .modal-body {
  min-height: 0;
  display: flex;
  flex-direction: column;
  gap: 0.7rem;
  overflow: hidden;
}

.cashback-produtos-intro {
  flex: 0 0 auto;
  margin: 0;
}

.cashback-produtos-shell {
  flex: 1 1 auto;
  min-height: 390px;
}

.cashback-produtos-toolbar {
  justify-content: flex-start;
  padding: 0.65rem;
}

.cashback-produtos-toolbar .unidades-busca {
  flex: 0 1 340px;
  max-width: 340px;
}

.cashback-selecionar-todos {
  flex: 0 0 auto;
  white-space: nowrap;
}

.cashback-produtos-contador {
  flex: 0 0 auto;
  margin-left: auto;
  color: #64748b;
  font-size: .75rem;
  font-weight: 800;
  white-space: nowrap;
}

.cashback-produtos-cards {
  flex: 1 1 auto;
  min-height: 0;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 320px), 1fr));
  grid-auto-rows: max-content;
  align-content: start;
  gap: 0.6rem;
  padding: 0.65rem;
  overflow-y: auto;
}

.cashback-produtos-cards > .unidades-vazio {
  grid-column: 1 / -1;
}

.cashback-produto-card {
  min-width: 0;
  overflow: hidden;
  border: 1px solid #dbe3ed;
  border-radius: 10px;
  background: #fff;
  transition: border-color 150ms ease, box-shadow 150ms ease;
}

.cashback-produto-card.is-active {
  border-color: color-mix(in srgb, var(--cor-unidade, #2d3142) 55%, #dbe3ed);
  box-shadow: inset 3px 0 0 var(--cor-unidade, #2d3142);
}

.cashback-produto-card-head {
  min-width: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.65rem;
  padding: 0.62rem 0.68rem;
}

.cashback-produto-identidade {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.cashback-produto-identidade > span {
  width: 32px;
  height: 32px;
  flex: 0 0 32px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 8px;
  background: #f1f5f9;
  color: #475569;
}

.cashback-produto-card.is-active .cashback-produto-identidade > span {
  background: color-mix(in srgb, var(--cor-unidade, #2d3142) 10%, #fff);
  color: var(--cor-unidade, #2d3142);
}

.cashback-produto-identidade > div {
  min-width: 0;
  display: grid;
  gap: 0.08rem;
}

.cashback-produto-identidade strong {
  overflow: hidden;
  color: #0f172a;
  font-size: 0.76rem;
  font-weight: 800;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.cashback-produto-identidade small {
  overflow: hidden;
  color: #64748b;
  font-size: .75rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.cashback-produto-switch {
  flex: 0 0 auto;
  margin: 0;
}

.cashback-produto-switch .ss-switch-text {
  font-size: 0.66rem;
}

.cashback-produto-card-body {
  padding: 0.55rem 0.68rem 0.65rem;
  border-top: 1px solid #eef2f7;
  background: #f8fafc;
}

.cashback-produto-card-body .form-label {
  margin-bottom: 0.2rem;
  font-size: 0.68rem;
}

.cashback-produto-card-body .cashback-input-affix {
  max-width: 145px;
}

.cashback-produto-regra-info {
  display: flex;
  align-items: center;
  gap: 0.35rem;
  color: #64748b;
  font-size: .75rem;
}

@media (max-width: 991.98px) {
  .cashback-config-layout,
  .promocoes-config-layout,
  .marketing-single-layout {
    grid-template-columns: 1fr;
  }

  .cashback-summary-card,
  .promocoes-summary-card,
  .marketing-single-summary {
    position: static;
  }
}

@media (max-width: 767.98px) {
  .cashback-mode-grid {
    grid-template-columns: 1fr;
  }

  .cashback-mode-card {
    min-height: 0;
  }

  .promocoes-regra-row {
    align-items: stretch;
    flex-direction: column;
    gap: 0.55rem;
  }

  .promocoes-regra-copy {
    min-width: 0;
  }

  .promocoes-regra-controls {
    width: 100%;
    grid-template-columns: auto minmax(0, 1fr) minmax(0, 1fr);
  }

  .promocoes-taxas-list .promocao-taxa-card--lista {
    grid-template-columns: 1fr;
  }

  .promocoes-taxas-list .promocao-taxa-card-head {
    border-right: 0;
    border-bottom: 1px solid #eef2f7;
  }

  .promocoes-taxas-toolbar {
    align-items: stretch;
    flex-wrap: wrap;
  }

  .promocoes-taxas-busca {
    flex-basis: 100%;
    width: 100%;
  }

  .promocoes-raio-filtro {
    flex: 1 1 150px;
    width: auto;
  }

  .promocoes-taxas-filtros {
    flex: 1 1 auto;
  }

  .promocoes-taxas-filtros button {
    flex: 1 1 0;
  }

  .marketing-channel-grid {
    grid-template-columns: 1fr;
  }

  .marketing-channel-field.is-wide {
    grid-column: auto;
  }

  .marketing-tracking-field {
    grid-template-columns: 34px minmax(0, 1fr);
  }

  .marketing-tracking-input {
    grid-column: 1 / -1;
  }

  .marketing-feed-url {
    grid-template-columns: 34px minmax(0, 1fr);
  }

  .marketing-feed-url .btn {
    grid-column: auto;
  }
}

@media (max-width: 575.98px) {
  .cashback-workspace-body,
  .promocoes-workspace-body,
  .marketing-single-body {
    padding: 0.6rem;
  }

  .cashback-intro,
  .promocoes-intro,
  .marketing-single-intro {
    margin-bottom: 0.6rem;
  }

  .cashback-ativacao-row,
  .cashback-produtos-action {
    align-items: stretch;
    flex-direction: column;
  }

  .cashback-ativacao-control {
    flex-wrap: wrap;
    justify-content: space-between;
  }

  .cashback-minimo-inline {
    width: 100%;
    grid-template-columns: minmax(0, 1fr) 118px;
  }

  .cashback-values-grid {
    grid-template-columns: 1fr;
  }

  .cashback-produtos-action .btn {
    width: 100%;
  }

  .promocoes-regra-controls {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .promocoes-regra-switch {
    grid-column: 1 / -1;
    padding-bottom: 0;
  }

  .marketing-feed-url {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  }

  .marketing-feed-url-icon,
  .marketing-feed-url .form-control {
    grid-column: 1 / -1;
  }

  .marketing-feed-url .btn {
    width: 100%;
  }

  .cashback-produtos-modal .modal-body {
    padding: 0.65rem;
  }

  .cashback-produtos-shell {
    min-height: 0;
  }

  .cashback-produtos-toolbar {
    align-items: stretch;
    flex-direction: column;
  }

  .cashback-produtos-toolbar .unidades-busca {
    width: 100%;
    flex: 1 1 auto;
    max-width: none;
  }

  .cashback-selecionar-todos {
    width: 100%;
  }

  .cashback-produtos-contador {
    margin-left: 0;
    white-space: normal;
  }

  .cashback-produtos-cards {
    grid-template-columns: 1fr;
  }
}

.campanha-envio-friendly-form .modal-body {
  display: grid;
  align-content: start;
  gap: 0.85rem;
}

.campanha-envio-friendly-form .marketing-editor-intro {
  margin-bottom: 0;
}

.campanha-envio-friendly-form .marketing-config-card {
  margin: 0;
}

.campanha-envio-filtros {
  padding: 0.72rem 0.8rem;
}

.campanha-envio-filtros .unidade-config-card-head {
  margin-bottom: 0.52rem;
}

.campanha-envio-filtros .ss-form-grid {
  grid-template-columns: 1.25fr 1.25fr 0.9fr 0.9fr 1.25fr 0.65fr;
  gap: 0.5rem;
  align-items: end;
}

.campanha-envio-filtros.is-com-template .ss-form-grid {
  grid-template-columns: 1.15fr 1.1fr 1fr 0.8fr 0.8fr 1.1fr 0.65fr;
}

.campanha-envio-filtros .ss-form-grid > .ss-field {
  grid-column: auto;
}

.campanha-envio-filtros .form-label {
  margin-bottom: 0.2rem;
  font-size: 0.78rem;
}

.campanha-historico-friendly-form .campanha-envio-historico {
  margin: 0;
}

.campanha-envio-section-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.7rem;
  margin-bottom: 0.7rem;
}

.campanha-envio-section-head .unidade-config-card-head {
  margin-bottom: 0;
}

.campanha-selecionar-todos {
  margin: 0 0 0.65rem;
}

.campanha-contatos-cards {
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 310px), 1fr));
  max-height: 360px;
  padding: 0;
  background: transparent;
}

.campanha-contato-card {
  min-width: 0;
  display: flex;
  align-items: flex-start;
  gap: 0.65rem;
  padding: 0.65rem;
  border: 1px solid #e2e8f0;
  border-radius: 9px;
  background: #fff;
  cursor: pointer;
}

.campanha-contato-card.is-selected {
  border-color: var(--cor-unidade, #2d3142);
  background: color-mix(in srgb, var(--cor-unidade, #2d3142) 6%, #fff);
  box-shadow: inset 0 0 0 1px var(--cor-unidade, #2d3142);
}

.campanha-contato-card.is-disabled {
  opacity: 0.58;
  cursor: not-allowed;
}

.campanha-contato-card > input {
  flex: 0 0 auto;
  margin-top: 0.18rem;
}

.campanha-contato-conteudo {
  min-width: 0;
  flex: 1 1 auto;
  display: grid;
  gap: 0.42rem;
}

.campanha-contato-head {
  min-width: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
}

.campanha-contato-head strong {
  overflow: hidden;
  color: #0f172a;
  font-size: 0.8rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.campanha-janela-badge {
  flex: 0 0 auto;
  padding: 0.18rem 0.38rem;
  border-radius: 999px;
  background: #fef3c7;
  color: #92400e;
  font-size: .75rem;
  font-weight: 800;
}

.campanha-janela-badge.is-dentro {
  background: #dcfce7;
  color: #166534;
}

.campanha-contato-dados {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.28rem 0.55rem;
}

.campanha-contato-dados span {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 0.28rem;
  overflow: hidden;
  color: #64748b;
  font-size: .75rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.campanha-paginacao {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.55rem;
  margin-top: 0.65rem;
}

.campanha-historico-cards {
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 330px), 1fr));
  max-height: 390px;
  padding: 0;
  background: transparent;
}

.campanha-historico-card {
  min-width: 0;
  overflow: hidden;
  border: 1px solid #e2e8f0;
  border-radius: 9px;
  background: #fff;
}

.campanha-historico-card-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.55rem;
  padding: 0.62rem 0.7rem;
  border-bottom: 1px solid #eef2f7;
}

.campanha-historico-card-head > div {
  min-width: 0;
  display: grid;
  gap: 0.12rem;
}

.campanha-historico-card-head strong {
  overflow: hidden;
  color: #0f172a;
  font-size: 0.78rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.campanha-historico-card-head > div > span {
  color: #64748b;
  font-size: .75rem;
}

.campanha-historico-dados {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.4rem;
  padding: 0.6rem 0.7rem;
}

.campanha-historico-dados > span {
  min-width: 0;
  display: grid;
  gap: 0.08rem;
  padding: 0.4rem;
  border-radius: 7px;
  background: #f8fafc;
}

.campanha-historico-dados i {
  color: var(--cor-unidade, #2d3142);
}

.campanha-historico-dados small {
  color: #64748b;
  font-size: .75rem;
  font-weight: 700;
}

.campanha-historico-dados strong {
  overflow: hidden;
  color: #334155;
  font-size: .75rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.campanha-historico-detalhe {
  margin: 0 0.7rem 0.55rem;
  padding: 0.48rem 0.55rem;
  border-radius: 7px;
  background: #f8fafc;
  color: #64748b;
  font-size: .75rem;
  line-height: 1.4;
}

.campanha-envio-historico .campanha-envio-section-head {
  align-items: center;
}

.campanha-historico-actions {
  flex-wrap: nowrap;
  margin-left: auto;
}

.campanha-historico-actions select {
  width: 210px;
  flex: 0 0 210px;
}

.campanha-historico-actions .btn {
  flex: 0 0 auto;
  white-space: nowrap;
}

@media (max-width: 991.98px) {
  .marketing-editor-layout,
  .marketing-social-grid,
  .marketing-tracking-grid {
    grid-template-columns: 1fr;
  }

  .marketing-editor-wide,
  .marketing-field-full {
    grid-column: auto;
  }

  .marketing-week-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .campanha-envio-filtros .ss-form-grid,
  .campanha-envio-filtros.is-com-template .ss-form-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .campanha-envio-friendly-form .ss-form-grid > .ss-field {
    grid-column: auto;
  }

  .campanha-envio-historico .campanha-envio-section-head {
    align-items: stretch;
    flex-direction: column;
  }

  .campanha-historico-actions {
    width: 100%;
    display: grid;
    grid-template-columns: minmax(180px, 1fr) auto auto;
    margin-left: 0;
  }
}

@media (max-width: 575.98px) {
  .marketing-cards {
    grid-template-columns: 1fr;
    gap: 0.6rem;
    padding: 0.6rem;
  }

  .marketing-card-body,
  .cupom-card-body {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    padding: 0.55rem 0.6rem;
  }

  .marketing-card-foot {
    flex-wrap: nowrap;
    padding: 0.5rem 0.6rem 0.55rem;
  }

  .marketing-card-foot .unidade-card-acoes {
    margin-left: auto;
  }

  .marketing-friendly-form .modal-body {
    padding: 12px;
  }

  .marketing-friendly-form .modal-footer {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.55rem;
    width: 100%;
  }

  .marketing-fields-grid,
  .banner-artes-grid,
  .marketing-choice-group,
  .promocao-taxa-rules,
  .promocao-taxa-rule-fields {
    grid-template-columns: 1fr;
  }

  .promocoes-taxas-list .promocoes-regra-compacta {
    grid-template-columns: minmax(104px, auto) repeat(2, minmax(0, 1fr));
  }

  .promocoes-taxas-list .promocoes-regra-compacta > .promocoes-regra-switch {
    grid-column: auto;
  }

  .promocoes-taxas-list .promocao-taxa-rules {
    grid-template-columns: 1fr;
  }

  .promocoes-taxas-list .promocoes-regra-compacta .promocao-taxa-rule-fields {
    display: contents;
  }

  .marketing-week-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .marketing-image-picker {
    min-height: 145px;
  }

  .marketing-config-shell > .tab-content,
  .marketing-shopping-shell {
    padding: 0.6rem;
  }

  .marketing-shopping-url,
  .campanha-envio-section-head,
  .campanha-historico-actions {
    align-items: stretch;
    flex-direction: column;
  }

  .campanha-historico-actions {
    display: flex;
  }

  .marketing-shopping-url .btn,
  .campanha-historico-actions .btn,
  .campanha-historico-actions select {
    width: 100%;
    flex-basis: auto;
  }

  .campanha-envio-friendly-form .ss-form-grid > .ss-field {
    grid-column: 1 / -1;
  }

  .campanha-envio-filtros .ss-form-grid,
  .campanha-envio-filtros.is-com-template .ss-form-grid {
    grid-template-columns: 1fr;
  }

  .campanha-contatos-cards,
  .campanha-historico-cards {
    grid-template-columns: 1fr;
    max-height: none;
  }

  .campanha-contato-dados {
    grid-template-columns: 1fr;
  }

  .campanha-historico-dados {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

/* Integração Delivery — vínculos em cards, sem grade. */
.integracao-delivery-page,
.integracao-delivery-panel {
  min-height: 0;
}

.integracao-delivery-panel {
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

.delivery-platform-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  padding: 0.55rem 0.85rem;
  border-bottom: 1px solid #e7ebf2;
  background: #fff;
}

.delivery-platform-tab {
  width: auto;
  min-width: 190px;
  max-width: 235px;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: 0.5rem;
  padding: 0.38rem 0.55rem;
  border: 1px solid #dfe5ee;
  border-radius: 9px;
  background: #f8fafc;
  color: #334155;
  text-align: left;
}

.delivery-platform-tab[hidden] { display: none !important; }

.delivery-platform-tab.is-active {
  border-color: color-mix(in srgb, var(--cor-unidade, #2d3142) 45%, #dfe5ee);
  background: color-mix(in srgb, var(--cor-unidade, #2d3142) 7%, #fff);
  box-shadow: 0 2px 7px rgba(15, 23, 42, 0.07);
}

.delivery-platform-tab > span:last-child {
  min-width: 0;
  display: grid;
  gap: 0.1rem;
}

.delivery-platform-tab strong,
.delivery-platform-tab small {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.delivery-platform-tab strong { font-size: 0.82rem; }
.delivery-platform-tab small { color: #64748b; font-size: 0.66rem; }

.delivery-platform-icon {
  width: 28px;
  height: 28px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 8px;
  color: #fff;
  font-size: .75rem;
  font-weight: 900;
}

.delivery-platform-icon--ifood { background: #ea1d2c; }
.delivery-platform-icon--anotaai { background: #0876c9; }

.delivery-platform-icon img {
  width: 22px;
  height: 22px;
  display: block;
  object-fit: contain;
}

.delivery-platform-icon--ifood img {
  width: 23px;
  height: auto;
}

.integracao-delivery-toolbar {
  flex-wrap: wrap;
}

.delivery-toolbar-main {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 0.5rem;
  flex: 1 1 auto;
}

.delivery-toolbar-main .produtos-busca {
  flex: 1 1 420px;
  max-width: 560px;
}

.delivery-vinculo-switch {
  flex: 0 0 auto;
  min-height: 31px;
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  margin: 0;
  padding: 0.3rem 0.65rem 0.3rem 2.65rem;
  border: 1px solid #dfe5ee;
  border-radius: 999px;
  background: #fff;
  white-space: nowrap;
}

.delivery-vinculo-switch .form-check-input {
  margin-top: 0;
  margin-left: -2rem;
  cursor: pointer;
}

.delivery-vinculo-switch .form-check-label {
  color: #475569;
  font-size: 0.72rem;
  font-weight: 800;
  cursor: pointer;
}

.delivery-context-note {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  padding: 0.55rem 0.85rem;
  border-bottom: 1px solid #e7ebf2;
  background: #f8fafc;
  color: #64748b;
  font-size: .75rem;
}

.integracao-delivery-cards {
  flex: 1 1 auto;
  min-height: 0;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 330px), 1fr));
  grid-auto-rows: max-content;
  align-content: start;
  gap: 0.8rem;
  padding: 0.85rem;
  overflow-y: auto;
}

.delivery-link-card {
  min-width: 0;
  align-self: start;
  display: flex;
  flex-direction: column;
  border: 1px solid #3b82f6;
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 0 0 2px rgba(59, 130, 246, .18), 0 7px 18px rgba(15, 23, 42, .08);
  overflow: visible;
  transition: border-color .16s ease, box-shadow .16s ease;
}

.delivery-link-card:hover,
.delivery-link-card:focus-within,
.delivery-link-card.is-active {
  border-color: #3b82f6;
  box-shadow: 0 0 0 2px rgba(59, 130, 246, .18), 0 7px 18px rgba(15, 23, 42, .08);
}

.delivery-link-card.is-blocked { background: #fbfcfe; }

.delivery-link-card-head {
  min-width: 0;
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr) auto;
  align-items: center;
  gap: 0.65rem;
  padding: 0.55rem 0.6rem;
  border-bottom: 1px solid #eef2f7;
  border-radius: 11px 11px 0 0;
}

.delivery-link-card-media {
  display: grid;
  width: 42px;
  height: 42px;
  padding: 0;
  overflow: hidden;
  place-items: center;
  border: 1px solid #e2e8f0;
  border-radius: 9px;
  background: #f1f5f9;
  color: #94a3b8;
}

.delivery-link-card-media.ssapps-image-thumbnail:not(.is-empty) { cursor: zoom-in; }

.delivery-link-card-media img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}

.delivery-link-card-media.ssapps-image-thumbnail:hover,
.delivery-link-card-media.ssapps-image-thumbnail:focus-visible,
.delivery-complemento-media.ssapps-image-thumbnail:hover,
.delivery-complemento-media.ssapps-image-thumbnail:focus-visible {
  border-color: #60a5fa;
  outline: 2px solid rgba(59, 130, 246, .2);
  outline-offset: 1px;
}

.delivery-link-card-identidade {
  min-width: 0;
  display: grid;
  gap: 0.16rem;
}

.delivery-link-card-identidade strong,
.delivery-link-card-identidade span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.delivery-link-card-identidade strong { color: #0f172a; font-size: 0.82rem; font-weight: 900; }
.delivery-link-card-identidade span { color: #64748b; font-size: .75rem; }

.delivery-link-card-body {
  display: grid;
  gap: 0.5rem;
  padding: 0.55rem 0.6rem;
}

.delivery-item-tag {
  display: inline-flex;
  align-items: center;
  max-width: 100%;
  min-height: 21px;
  padding: 0.12rem 0.42rem;
  border: 1px solid #e2e8f0;
  border-radius: 999px;
  background: #f8fafc;
  color: #475569;
  font-size: .75rem;
  font-weight: 800;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.delivery-link-ids {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.45rem;
}

.delivery-link-ids.is-compact {
  margin: 0.5rem 0;
}

.delivery-link-id {
  min-width: 0;
  display: grid;
  gap: 0.1rem;
  padding: 0.45rem 0.52rem;
  border: 1px solid #e7ebf2;
  border-radius: 8px;
  background: #fbfcfe;
}

.delivery-link-id span { color: #64748b; font-size: .75rem; font-weight: 700; }
.delivery-link-id strong { overflow: hidden; color: #172033; font-size: .75rem; text-overflow: ellipsis; white-space: nowrap; }

.delivery-local-field { min-width: 0; }
.delivery-local-field .form-label { margin-bottom: 0.28rem; color: #475569; font-size: 0.66rem; font-weight: 800; }
.delivery-local-input-wrap { position: relative; }
.delivery-local-input-wrap > input { padding-left: 0.55rem; }
.delivery-local-input-group { flex-wrap: nowrap; }
.delivery-local-input-group > .form-control { min-width: 0; }
.delivery-local-cadastro-btn {
  width: 34px;
  flex: 0 0 34px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
}

.delivery-local-resultados {
  position: absolute;
  z-index: 80;
  top: calc(100% + 4px);
  right: 0;
  left: 0;
  max-height: 230px;
  overflow-y: auto;
  border: 1px solid #cbd5e1;
  border-radius: 9px;
  background: #fff;
  box-shadow: 0 12px 28px rgba(15, 23, 42, 0.16);
}

.delivery-local-opcao {
  width: 100%;
  display: grid;
  gap: 0.08rem;
  padding: 0.52rem 0.62rem;
  border: 0;
  border-bottom: 1px solid #eef2f7;
  background: #fff;
  color: #172033;
  text-align: left;
}

.delivery-local-opcao:hover { background: #f8fafc; }
.delivery-local-opcao strong { font-size: .75rem; }
.delivery-local-opcao small { color: #64748b; font-size: .75rem; }
.delivery-local-sem-resultado { display: block; padding: 0.65rem; color: #64748b; font-size: .75rem; }

.delivery-complementos-aviso {
  grid-column: 1 / -1;
  display: flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.38rem 0.5rem;
  border: 1px solid #fde68a;
  border-radius: 7px;
  background: #fffbeb;
  color: #92400e;
  font-size: .75rem;
}

.delivery-link-card-foot {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 0.6rem;
  margin-top: auto;
  padding: 0.48rem 0.6rem;
  border-top: 1px solid #eef2f7;
  border-radius: 0 0 11px 11px;
  background: #fbfcfe;
}

.delivery-link-card.has-delivery-items .delivery-link-card-foot { border-radius: 0; }

.delivery-link-card-foot small { color: #64748b; font-size: .75rem; font-weight: 800; }

.delivery-link-card-options {
  min-width: 0;
  display: grid;
  gap: 0.5rem;
  padding: 0.55rem 0.6rem 0.65rem;
  border-top: 1px solid #dfe5ee;
  border-radius: 0 0 11px 11px;
  background: #f8fafc;
}

.delivery-link-card-options-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
}

.delivery-link-card-options-head strong {
  color: #334155;
  font-size: .72rem;
  font-weight: 900;
}

.delivery-link-card-options-head span {
  color: #64748b;
  font-size: .68rem;
  font-weight: 800;
}

.delivery-link-card-options-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr));
  align-items: start;
  gap: 0.5rem;
}

.delivery-complemento-grupo {
  overflow: visible;
  border: 1px solid #dfe5ee;
  border-radius: 8px;
  background: #fff;
}

.delivery-complemento-grupo-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  padding: 0.36rem 0.46rem;
  border-bottom: 1px solid #eef2f7;
  background: #fbfcfe;
}

.delivery-complemento-grupo-head strong { overflow: hidden; color: #334155; font-size: .75rem; font-weight: 900; text-overflow: ellipsis; white-space: nowrap; }
.delivery-complemento-grupo-head span { color: #64748b; font-size: .75rem; font-weight: 800; }

.delivery-complemento-lista {
  display: grid;
}

.delivery-complemento {
  min-width: 0;
  padding: 0.58rem;
  border-bottom: 1px solid #eef2f7;
}

.delivery-complemento:last-child { border-bottom: 0; }
.delivery-complemento.is-blocked { background: #fbfcfe; }

.delivery-complemento-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.5rem;
}

.delivery-complemento-resumo {
  display: flex;
  min-width: 0;
  align-items: center;
  gap: .48rem;
}

.delivery-complemento-media.ssapps-image-thumbnail {
  display: grid;
  width: 30px;
  height: 30px;
  flex: 0 0 30px;
  padding: 0;
  overflow: hidden;
  place-items: center;
  border: 1px solid #dbe3ef;
  border-radius: 7px;
  background: #f1f5f9;
  color: #94a3b8;
}

.delivery-complemento-media.ssapps-image-thumbnail:not(.is-empty) { cursor: zoom-in; }

.delivery-complemento-media.ssapps-image-thumbnail img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.delivery-complemento-identidade {
  min-width: 0;
  display: grid;
  gap: 0.08rem;
}

.delivery-complemento-identidade strong,
.delivery-complemento-identidade small {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.delivery-complemento-identidade strong { color: #172033; font-size: .75rem; font-weight: 850; }
.delivery-complemento-identidade small { color: #64748b; font-size: .75rem; }

.delivery-complemento-editor {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: end;
  gap: 0.42rem;
}

.delivery-complemento-editor > .btn {
  align-self: end;
}

.delivery-link-card-options .delivery-complemento {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  align-items: center;
  gap: 0.45rem;
  padding: 0.42rem 0.48rem;
}

.delivery-link-card-options .delivery-complemento-editor {
  margin-top: 0;
  align-items: center;
}

@media (min-width: 768px) {
  .delivery-link-card-options .delivery-complemento {
    grid-template-columns: minmax(160px, 0.75fr) minmax(250px, 1.25fr);
  }
}

@media (min-width: 992px) {
  .integracao-delivery-cards {
    grid-template-columns: minmax(0, 1fr);
    gap: 0.55rem;
  }

  .delivery-link-card {
    display: grid;
    grid-template-columns: minmax(220px, 0.9fr) minmax(320px, 1.4fr) auto;
    align-items: stretch;
  }

  .delivery-link-card-head {
    grid-template-columns: 42px minmax(0, 1fr);
    border-right: 1px solid #eef2f7;
    border-bottom: 0;
    border-radius: 11px 0 0 11px;
  }

  .delivery-link-card.has-delivery-items .delivery-link-card-head { border-radius: 11px 0 0 0; }

  .delivery-link-card-body {
    align-content: center;
    border-right: 1px solid #eef2f7;
  }

  .delivery-link-card-body .delivery-local-field {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
    gap: 0.55rem;
  }

  .delivery-link-card-body .delivery-local-field .form-label {
    margin: 0;
    white-space: nowrap;
  }

  .delivery-link-card-foot {
    justify-content: flex-end;
    margin-top: 0;
    border-top: 0;
    border-radius: 0 11px 11px 0;
    white-space: nowrap;
  }

  .delivery-link-card.has-delivery-items .delivery-link-card-foot { border-radius: 0 11px 0 0; }

  .delivery-link-card-options { grid-column: 1 / -1; }
}

@media (max-width: 767.98px) {
  .delivery-toolbar-main { flex-wrap: wrap; width: 100%; }
  .delivery-toolbar-main .produtos-busca { flex-basis: 100%; max-width: none; }
}

@media (max-width: 479.98px) {
  .delivery-platform-tab { width: 100%; max-width: none; }
  .delivery-vinculo-switch { width: 100%; }
  .integracao-delivery-cards { padding: 0.6rem; }
  .delivery-link-card-head { grid-template-columns: 44px minmax(0, 1fr); }
  .delivery-link-card-head > .catalogo-card-badge { grid-column: 2; justify-self: start; }
  .delivery-complemento-editor { grid-template-columns: 1fr; }
  .delivery-complemento-editor > .btn { justify-self: end; }
}
/* Central de fichas técnicas: reaproveita os cards expansíveis de Produtos. */
.ficha-tecnica-page,
.ficha-tecnica-panel {
  min-height: 0;
}

.ficha-tecnica-opcoes-grid {
  grid-template-columns: 1fr;
}

.ficha-tecnica-item-card {
  min-width: 0;
  overflow: hidden;
  border: 1px solid #dfe5ee;
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 3px 10px rgba(15, 23, 42, 0.045);
}

.ficha-tecnica-item-card > summary {
  display: grid;
  grid-template-columns: minmax(190px, 1fr) auto;
  align-items: center;
  gap: 0.8rem;
  min-height: 66px;
  padding: 0.65rem 0.75rem;
  cursor: pointer;
  list-style: none;
}

.ficha-tecnica-item-card > summary::-webkit-details-marker {
  display: none;
}

.ficha-tecnica-item-card[open] > summary {
  border-bottom: 1px solid #e8edf4;
  background: #fbfcfe;
}

.ficha-tecnica-item-title {
  display: flex;
  min-width: 0;
  align-items: center;
  gap: 0.65rem;
}

.ficha-tecnica-item-imagem {
  position: relative;
  display: grid;
  flex: 0 0 42px;
  width: 42px;
  height: 42px;
  overflow: hidden;
  place-items: center;
  border-radius: 9px;
  background: color-mix(in srgb, var(--cor-unidade, #2d3142) 10%, #fff);
  color: var(--cor-unidade, #2d3142);
}

.ficha-tecnica-item-imagem.ssapps-image-thumbnail {
  padding: 0;
  border: 1px solid transparent;
}

.ficha-tecnica-item-imagem.ssapps-image-thumbnail:not(.is-empty) { cursor: zoom-in; }

.ficha-tecnica-item-imagem.ssapps-image-thumbnail:hover,
.ficha-tecnica-item-imagem.ssapps-image-thumbnail:focus-visible {
  border-color: #60a5fa;
  outline: 2px solid rgba(59, 130, 246, .2);
  outline-offset: 1px;
}

.ficha-tecnica-item-imagem img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}

.ficha-tecnica-item-imagem.has-image > i {
  display: none;
}

.ficha-tecnica-item-imagem.is-empty > i {
  display: grid;
}

.ficha-tecnica-item-title > span:last-child {
  display: grid;
  min-width: 0;
}

.ficha-tecnica-item-title strong,
.ficha-tecnica-item-title small {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.ficha-tecnica-item-title strong {
  color: #0f172a;
  font-size: 0.82rem;
  font-weight: 850;
}

.ficha-tecnica-item-title small {
  color: #64748b;
  font-size: .75rem;
}

.ficha-tecnica-item-resumo {
  display: grid;
  grid-template-columns: max-content minmax(75px, auto) 14px;
  flex: 0 0 auto;
  align-items: center;
  gap: 0.6rem;
  color: #475569;
}

.ficha-tecnica-item-resumo b {
  padding: 0.22rem 0.48rem;
  border-radius: 999px;
  background: #eef2f7;
  font-size: .75rem;
}

.ficha-tecnica-item-resumo strong {
  min-width: 75px;
  color: #172033;
  font-size: 0.76rem;
  text-align: right;
}

.ficha-tecnica-item-resumo-tamanhos { display: flex; flex-wrap: nowrap; gap: .3rem; }
.ficha-tecnica-item-resumo .ficha-tecnica-item-resumo-tamanhos > span { display: grid; min-width: 60px; padding: .2rem .38rem; border-radius: 6px; background: #eef2ff; text-align: center; }
.ficha-tecnica-item-resumo .ficha-tecnica-item-resumo-tamanhos small { color: #6366f1; font-size: .6rem; line-height: 1.15; }
.ficha-tecnica-item-resumo .ficha-tecnica-item-resumo-tamanhos strong { min-width: 0; color: #4338ca; font-size: .68rem; text-align: center; }

.ficha-tecnica-item-resumo > i {
  font-size: .75rem;
  transition: transform 0.18s ease;
}

.ficha-tecnica-item-card[open] .ficha-tecnica-item-resumo > i {
  transform: rotate(180deg);
}

.ficha-tecnica-item-body {
  padding: 0.65rem;
  background: #f8fafc;
}

.ficha-tecnica-opcoes {
  display: grid;
  gap: 0.45rem;
}

.ficha-tecnica-opcao {
  display: grid;
  grid-template-columns: minmax(210px, 1fr) minmax(220px, auto) 145px;
  gap: 0.65rem;
  align-items: center;
  padding: 0.55rem 0.65rem;
  border: 1px solid #e1e7ef;
  border-radius: 8px;
  background: #fff;
}

.ficha-tecnica-opcao-nome {
  display: flex;
  min-width: 0;
  align-items: center;
  gap: 0.55rem;
}

.ficha-tecnica-opcao-nome > i {
  color: var(--cor-unidade, #2d3142);
}

.ficha-tecnica-opcao-nome > span,
.ficha-tecnica-valores {
  display: grid;
  min-width: 0;
}

.ficha-tecnica-opcao-nome strong,
.ficha-tecnica-opcao-nome small {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.ficha-tecnica-opcao-nome strong { color: #172033; font-size: 0.76rem; }
.ficha-tecnica-opcao-nome small,
.ficha-tecnica-valores span,
.ficha-tecnica-valores small { color: #64748b; font-size: .75rem; }

.ficha-tecnica-quantidades {
  display: flex;
  min-width: 0;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 0.35rem;
}

.ficha-tecnica-quantidades > span {
  display: grid;
  min-width: 76px;
  padding: 0.28rem 0.42rem;
  border-radius: 7px;
  background: #eef2ff;
  color: #4338ca;
  text-align: center;
}

.ficha-tecnica-quantidades small { font-size: .75rem; }
.ficha-tecnica-quantidades strong { font-size: .75rem; }

.ficha-tecnica-valores {
  justify-items: end;
}

.ficha-tecnica-valores strong {
  color: #172033;
  font-size: 0.76rem;
}

.ficha-tecnica-item-actions {
  display: flex;
  justify-content: flex-end;
  margin-top: 0.6rem;
}

@media (max-width: 767.98px) {
  .ficha-tecnica-item-card > summary {
    grid-template-columns: minmax(0, 1fr);
    gap: .55rem;
  }
  .ficha-tecnica-item-resumo {
    width: 100%;
    grid-template-columns: max-content minmax(0, 1fr) 14px;
    padding-left: calc(42px + .65rem);
  }
  .ficha-tecnica-item-resumo-tamanhos {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(54px, 1fr));
    width: 100%;
  }
  .ficha-tecnica-item-resumo .ficha-tecnica-item-resumo-tamanhos > span {
    min-width: 0;
  }
  .ficha-tecnica-opcao {
    grid-template-columns: minmax(0, 1fr) auto;
  }
  .ficha-tecnica-quantidades {
    grid-column: 1 / -1;
    grid-row: 2;
    justify-content: flex-start;
  }
  .ficha-tecnica-valores {
    justify-items: end;
  }
}

@media (max-width: 479.98px) {
  .ficha-tecnica-item-card > summary {
    padding: .6rem;
  }
  .ficha-tecnica-item-resumo {
    padding-left: 0;
    gap: .4rem;
  }
  .ficha-tecnica-opcao {
    grid-template-columns: 1fr;
  }
  .ficha-tecnica-quantidades,
  .ficha-tecnica-valores {
    grid-column: 1;
    grid-row: auto;
    justify-content: flex-start;
    justify-items: start;
  }
  .ficha-tecnica-editar {
    width: 100%;
  }
}

/* Editor inline da ficha técnica (na própria tela, sem abrir Produtos). */
.ficha-tecnica-editor {
  display: grid;
  min-width: 0;
  gap: 0.6rem;
}

.ficha-tecnica-editor-busca {
  position: relative;
  display: flex;
  align-items: center;
}

.ficha-tecnica-editor-busca > i {
  position: absolute;
  z-index: 2;
  left: 0.7rem;
  display: inline-flex;
  width: 1rem;
  align-items: center;
  justify-content: center;
  color: #94a3b8;
  font-size: 0.75rem;
  pointer-events: none;
}

.ficha-tecnica-editor-busca > input.form-control {
  width: 100%;
  min-width: 0;
  padding-left: 2.25rem !important;
}

.ficha-tecnica-editor-resultados {
  position: absolute;
  z-index: 30;
  top: calc(100% + 4px);
  right: 0;
  left: 0;
  display: grid;
  overflow: auto;
  max-height: 260px;
  border: 1px solid #dbe2ec;
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 10px 24px rgba(15, 23, 42, 0.14);
}

.ficha-tecnica-editor-resultados:empty {
  display: none;
}

.ficha-tecnica-editor-resultados > button {
  display: grid;
  padding: 0.45rem 0.6rem;
  border: 0;
  border-bottom: 1px solid #eef2f7;
  background: transparent;
  text-align: left;
}

.ficha-tecnica-editor-resultados > button:last-child {
  border-bottom: 0;
}

.ficha-tecnica-editor-resultados > button:hover {
  background: #f1f5f9;
}

.ficha-tecnica-editor-resultados > button strong {
  overflow: hidden;
  color: #172033;
  font-size: 0.76rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.ficha-tecnica-editor-resultados > button small,
.ficha-tecnica-editor-resultado-vazio {
  color: #64748b;
  font-size: 0.65rem;
}

.ficha-tecnica-editor-resultado-vazio {
  padding: 0.5rem 0.6rem;
}

.ficha-tecnica-editor-linhas {
  display: grid;
  gap: 0.45rem;
  padding: 0.6rem;
  border: 1px solid #cfd9e6;
  border-radius: 10px;
  background: #e7edf5;
}

.ficha-tecnica-editor-linha {
  display: grid;
  min-width: 0;
  grid-template-columns: minmax(190px, 1fr) minmax(92px, auto) 36px;
  gap: 0.65rem;
  align-items: center;
  padding: 0.6rem;
  border: 1px solid #cbd6e4;
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 2px 6px rgba(15, 23, 42, 0.07);
}

.ficha-tecnica-editor-linha-nome {
  display: grid;
  min-width: 0;
}

.ficha-tecnica-editor-linha-nome strong,
.ficha-tecnica-editor-linha-nome small {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.ficha-tecnica-editor-linha-nome strong { color: #172033; font-size: 0.78rem; }
.ficha-tecnica-editor-linha-nome small { color: #64748b; font-size: .75rem; }

.ficha-tecnica-editor-linha-qtds {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 0.4rem;
}

.ficha-tecnica-editor-linha-qtds label {
  display: grid;
  width: 92px;
  gap: 0.1rem;
}

.ficha-tecnica-editor-linha-qtds label span {
  overflow: hidden;
  color: #64748b;
  font-size: .75rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.ficha-tecnica-editor-linha-qtds input {
  min-width: 0;
  text-align: center;
}

.ficha-tecnica-editor-linha > .btn {
  width: 36px;
  height: 36px;
  padding: 0;
}

.ficha-tecnica-editor-footer {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.6rem;
  padding-top: 0.65rem;
  border-top: 1px solid #e2e8f0;
}

.ficha-tecnica-editor-totais {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
}

.ficha-tecnica-editor-totais > span {
  display: grid;
  min-width: 90px;
  padding: 0.28rem 0.5rem;
  border-radius: 7px;
  background: #eef2ff;
  color: #4338ca;
  text-align: center;
}

.ficha-tecnica-editor-totais small { font-size: .75rem; }
.ficha-tecnica-editor-totais strong { font-size: .75rem; }

.ficha-tecnica-editor-acoes {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 0.45rem;
}

.ficha-tecnica-grupo--embalagens > summary .produto-categoria-card-title > i {
  background: #0f766e;
  color: #fff;
}

.ficha-tecnica-subgrupo--embalagens {
  --ficha-subgrupo-cor: #0f766e;
}

.ficha-tecnica-embalagens-aviso {
  margin: 0;
  font-size: .75rem;
}

.ficha-tecnica-embalagem-opcao .ficha-tecnica-item-imagem {
  flex-basis: 38px;
  width: 38px;
  height: 38px;
}

.ficha-tecnica-embalagem-editor-produto {
  display: flex;
  min-width: 0;
  align-items: center;
  gap: .55rem;
}

.ficha-tecnica-embalagem-editor-produto > span:not(.ficha-tecnica-item-imagem) {
  display: grid;
  min-width: 0;
  flex: 1 1 auto;
}

.ficha-tecnica-editor-linha .ficha-tecnica-embalagem-editor-produto > .ficha-tecnica-item-imagem {
  width: 42px;
  min-width: 42px;
  max-width: 42px;
  height: 42px;
  flex: 0 0 42px;
  justify-self: start;
}

.ficha-tecnica-editor-buscar,
.ficha-tecnica-editor-importar {
  white-space: nowrap;
}

.ficha-tecnica-editor-alerta {
  margin: 0;
  padding: 0.5rem 0.65rem;
  font-size: .75rem;
}

.ficha-tecnica-nova {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  padding: 0.6rem;
  border: 1px dashed #c7d2e0;
  border-radius: 10px;
  background: #fff;
}

.ficha-tecnica-nova .ficha-tecnica-editor-busca {
  flex: 1 1 auto;
}

@media (max-width: 767.98px) {
  .ficha-tecnica-editor-linha {
    grid-template-columns: minmax(0, 1fr) 36px;
  }
  .ficha-tecnica-editor-linha-qtds {
    display: grid;
    grid-column: 1 / -1;
    grid-row: 2;
    grid-template-columns: repeat(auto-fit, minmax(78px, 1fr));
    justify-content: flex-start;
  }
  .ficha-tecnica-editor-linha-qtds label {
    width: auto;
  }
  .ficha-tecnica-editor-totais {
    width: 100%;
  }
  .ficha-tecnica-editor-totais > span {
    flex: 1 1 90px;
  }
  .ficha-tecnica-editor-acoes {
    width: 100%;
  }
  .ficha-tecnica-editor-acoes .btn {
    flex: 1 1 auto;
  }
}

@media (max-width: 479.98px) {
  .ficha-tecnica-item-body {
    padding: 0.5rem;
  }
  .ficha-tecnica-editor-linha {
    gap: 0.5rem;
    padding: 0.5rem;
  }
  .ficha-tecnica-editor-linha-nome small {
    white-space: normal;
  }
  .ficha-tecnica-editor-footer {
    align-items: stretch;
  }
  .ficha-tecnica-embalagem-editor-produto {
    align-items: flex-start;
  }
  .ficha-tecnica-embalagem-editor-produto > .ficha-tecnica-item-imagem {
    margin-top: .1rem;
  }
}

/* Novos módulos — shell idêntico ao padrão visual de Descontos. */
.qr-workspace,
.config-standard-workspace {
  min-height: 0;
}

/* Configurações da unidade em páginas próprias (sem comportamento visual de modal). */
.unidade-config-workspace {
  display: grid;
  grid-template-rows: minmax(0, 1fr);
  gap: 0;
  overflow: hidden;
}

.unidade-config-mount {
  min-height: 180px;
  padding: 0.8rem;
  overflow-y: auto;
  overflow-anchor: none;
  overscroll-behavior-y: contain;
  scrollbar-gutter: stable;
  background: #f4f6fa;
}

.unidade-config-loading {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.55rem;
  min-height: 150px;
  color: #64748b;
  font-size: 0.8rem;
}

.unidade-config-page-module {
  position: static;
  inset: auto;
  width: 100%;
  height: auto;
  overflow: visible;
  background: transparent;
  outline: 0;
}

.unidade-config-page-module .modal-dialog {
  display: block;
  width: 100%;
  max-width: none;
  height: auto;
  min-height: 0;
  margin: 0;
  align-items: initial;
  transform: none;
  pointer-events: auto;
}

.unidade-config-page-module .modal-content {
  height: auto;
  max-height: none;
  overflow: visible;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.unidade-config-page-module .modal-header,
.unidade-config-page-module .unidades-tabs,
.unidade-config-page-module .modal-footer [data-bs-dismiss="modal"] {
  display: none !important;
}

.unidade-config-page-module.ss-progressive-modal .modal-body {
  display: block;
  padding: 0 !important;
  overflow: visible !important;
  background: transparent !important;
}

.unidade-config-page-module .ss-modal-sections:not(.ss-modal-sections--nested) {
  display: block;
  width: 100%;
  padding: 0;
  overflow: visible;
  background: transparent;
}

.unidade-config-page-module .ss-modal-sections:not(.ss-modal-sections--nested) > .ss-modal-section {
  overflow: visible;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.unidade-config-page-module .ss-modal-sections:not(.ss-modal-sections--nested) > .ss-modal-section > summary {
  display: none;
}

.unidade-config-page-module .ss-modal-sections:not(.ss-modal-sections--nested) > .ss-modal-section > .produto-cadastro-section-body {
  padding: 0;
}

.unidade-config-page-module .modal-footer {
  position: sticky;
  bottom: 0;
  z-index: 4;
  justify-content: flex-end;
  margin-top: 0.8rem;
  padding: 0.65rem;
  border: 1px solid #dfe5ee;
  border-radius: 11px;
  background: rgba(255, 255, 255, 0.96);
  box-shadow: 0 -4px 14px rgba(15, 23, 42, 0.06);
  backdrop-filter: blur(8px);
}

.unidade-config-page-module .modal-footer .btn-primary {
  min-width: 110px;
}

.qr-workspace-body,
.config-standard-body {
  flex: 1 1 auto;
  min-height: 0;
  padding: 0.8rem;
  overflow-y: auto;
  background: #f8fafc;
}

.qr-intro,
.config-standard-intro {
  margin-bottom: 0.75rem;
}

.qr-config-layout,
.config-standard-layout,
.integration-standard-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 300px;
  gap: 0.8rem;
  align-items: start;
}

.qr-config-main,
.config-standard-main,
.integration-standard-main {
  min-width: 0;
  display: grid;
  gap: 0.7rem;
}

.qr-config-card,
.config-standard-card {
  min-width: 0;
  margin: 0;
  padding: 0.8rem;
  box-shadow: none;
}

.qr-config-card .unidade-config-card-head,
.config-standard-card .unidade-config-card-head {
  margin-bottom: 0.65rem;
}

.qr-summary-card,
.config-summary-card {
  width: 100%;
  position: sticky;
  top: 0;
}

.unidade-config-workspace > .config-standard-body {
  overflow-anchor: none;
  overscroll-behavior-y: contain;
  scrollbar-gutter: stable;
}

.unidade-config-page-layout .unidade-config-mount {
  min-width: 0;
  padding: 0;
  overflow: visible;
  background: transparent;
}

.qr-link-row {
  min-width: 0;
  display: grid;
  grid-template-columns: 132px minmax(0, 1fr);
  align-items: center;
  gap: 0.8rem;
  padding: 0.65rem;
  border: 1px solid #e2e8f0;
  border-radius: 9px;
  background: #f8fafc;
}

.qr-link-image,
.qr-link-image img {
  display: block;
  width: 132px;
  height: 132px;
  max-width: 100%;
}

.qr-link-image img {
  padding: 0.3rem;
  border-radius: 8px;
  background: #fff;
  object-fit: contain;
}

.qr-link-copy {
  min-width: 0;
  display: grid;
  gap: 0.35rem;
}

.qr-link-copy > a {
  color: var(--cor-unidade, #2d3142);
  font-size: 0.78rem;
  font-weight: 800;
  overflow-wrap: anywhere;
}

.qr-link-copy small {
  color: #64748b;
  font-size: .75rem;
}

.qr-link-type {
  width: fit-content;
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  padding: 0.22rem 0.45rem;
  border-radius: 999px;
  background: color-mix(in srgb, var(--cor-unidade, #2d3142) 10%, #fff);
  color: var(--cor-unidade, #2d3142);
  font-size: .75rem;
  font-weight: 900;
}

.config-fields-grid,
.integration-form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.6rem;
}

.config-field-full {
  grid-column: 1 / -1;
}

.config-standard-card .form-label,
.integration-form-grid .form-label {
  margin-bottom: 0.18rem;
  color: #475569;
  font-size: 0.65rem;
  font-weight: 800;
}

.config-option-list,
.whatsapp-message-list,
.integration-channel-list {
  display: grid;
  gap: 0.5rem;
}

.config-option-row,
.integration-channel-row {
  min-width: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.7rem;
  padding: 0.58rem 0.65rem;
  border: 1px solid #e2e8f0;
  border-radius: 9px;
  background: #f8fafc;
}

.config-option-copy,
.integration-channel-copy {
  min-width: 190px;
  display: flex;
  align-items: center;
  gap: 0.55rem;
}

.config-option-copy > span,
.integration-channel-copy > span {
  width: 32px;
  height: 32px;
  flex: 0 0 32px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 8px;
  background: color-mix(in srgb, var(--cor-unidade, #2d3142) 10%, #fff);
  color: var(--cor-unidade, #2d3142);
}

.config-option-copy > div,
.integration-channel-copy > div {
  min-width: 0;
  display: grid;
  gap: 0.08rem;
}

.config-option-copy strong,
.integration-channel-copy strong {
  color: #0f172a;
  font-size: 0.76rem;
  font-weight: 900;
}

.config-option-copy small,
.integration-channel-copy small {
  color: #64748b;
  font-size: 0.64rem;
  line-height: 1.3;
}

.config-time-field {
  width: 94px;
  flex: 0 0 94px;
}

.config-compact-switches {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.45rem;
  margin-top: 0.6rem;
}

.config-switch-box {
  min-width: 0;
  min-height: 38px;
  padding: 0.5rem 0.58rem;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  background: #f8fafc;
  font-size: 0.72rem;
}

.robo-config-switches {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.robo-config-mode {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  margin-top: 0.55rem;
  padding: 0.55rem 0.65rem;
  border: 1px solid #dbe4ee;
  border-radius: 8px;
  background: #f8fafc;
}

.robo-config-mode > i {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  flex: 0 0 28px;
  border-radius: 7px;
  background: #e2e8f0;
  color: #475569;
}

.robo-config-mode > span {
  display: flex;
  min-width: 0;
  flex-direction: column;
}

.robo-config-mode strong {
  color: #172033;
  font-size: 0.72rem;
  line-height: 1.2;
}

.robo-config-mode small {
  margin-top: 0.12rem;
  color: #64748b;
  font-size: 0.64rem;
  line-height: 1.3;
}

.robo-config-mode.is-ia {
  border-color: #bfdbfe;
  background: #eff6ff;
}

.robo-config-mode.is-ia > i {
  background: #dbeafe;
  color: #1d4ed8;
}

[data-robo-basico-only].is-muted {
  opacity: 0.58;
}

.config-subgroup {
  margin-top: 0.65rem;
  padding-top: 0.6rem;
  border-top: 1px solid #e2e8f0;
}

.config-subgroup > strong {
  color: #475569;
  font-size: .75rem;
  font-weight: 900;
}

.config-caixa-whatsapp {
  display: grid;
  gap: 0.65rem;
  padding: 0.7rem;
  border: 1px solid #dbe4ee;
  border-radius: 10px;
  background: #f8fafc;
}

.config-caixa-whatsapp-head {
  min-width: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.8rem;
}

.config-caixa-whatsapp-head > .ss-switch {
  flex: 0 0 auto;
}

.config-caixa-whatsapp-controls {
  display: grid;
  grid-template-columns: minmax(260px, 520px) auto;
  align-items: end;
  gap: 0.65rem;
  padding-top: 0.65rem;
  border-top: 1px solid #e2e8f0;
}

.config-caixa-whatsapp-password {
  min-width: 0;
  margin: 0;
}

.config-caixa-whatsapp-password > small {
  display: block;
  margin-top: 0.22rem;
  font-size: 0.64rem;
}

.config-caixa-whatsapp-remove {
  width: fit-content;
  min-height: 31px;
  margin-bottom: 1.08rem;
  padding: 0.42rem 0.58rem;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  background: #fff;
  color: #475569;
  font-size: 0.69rem;
  white-space: nowrap;
}

.config-caixa-whatsapp-note {
  display: flex;
  align-items: flex-start;
  gap: 0.42rem;
  padding: 0.5rem 0.58rem;
  border-radius: 8px;
  background: color-mix(in srgb, var(--cor-unidade, #2d3142) 6%, #fff);
  color: #64748b;
  font-size: 0.65rem;
  line-height: 1.35;
}

.config-caixa-whatsapp-note i {
  margin-top: 0.08rem;
  color: var(--cor-unidade, #2d3142);
}

.permissoes-toolbar {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  margin-bottom: 0.55rem;
}

.permissoes-toolbar .unidades-busca {
  flex: 1 1 280px;
}

.permissoes-toolbar > span {
  color: #64748b;
  font-size: .75rem;
  font-weight: 800;
  white-space: nowrap;
}

.permissoes-list {
  display: grid;
  gap: 0.5rem;
}

.permissao-row {
  min-width: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.65rem;
  padding: 0.58rem 0.65rem;
  border: 1px solid #e2e8f0;
  border-radius: 9px;
  background: #f8fafc;
}

.permissao-row-copy {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 0.55rem;
}

.permissao-row-copy > div {
  min-width: 0;
  display: grid;
  gap: 0.08rem;
}

.permissao-row-copy strong {
  color: #0f172a;
  font-size: 0.76rem;
  font-weight: 900;
}

.permissao-row-copy small {
  color: #64748b;
  font-size: .75rem;
}

.permissao-tree {
  padding: 0.45rem 0;
  color: #1f2937;
}

.permissao-tree .permissao-tree-list,
.permissao-tree .permissao-tree-children {
  margin: 0;
  padding: 0;
  list-style: none;
}

.permissao-tree .permissao-tree-children {
  margin-left: 0.62rem;
  padding-left: 1rem;
  border-left: 1px solid #dbe3ed;
}

.permissao-tree .permissao-tree-node {
  margin: 0;
  padding: 0;
}

.permissao-tree-row {
  display: flex;
  align-items: center;
  min-height: 28px;
  gap: 0.38rem;
  padding: 0.12rem 0;
}

.permissao-tree-toggle,
.permissao-tree-toggle-spacer {
  width: 1rem;
  height: 1.65rem;
  flex: 0 0 1rem;
}

.permissao-tree-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  border: 0;
  background: transparent;
  color: #3b6ea8;
  cursor: pointer;
}

.permissao-tree-toggle i {
  font-size: 0.72rem;
  transition: transform 0.15s ease;
}

.permissao-tree-toggle[aria-expanded="true"] i {
  transform: rotate(90deg);
}

.permissao-tree-row input[type="checkbox"] {
  width: 14px;
  height: 14px;
  flex: 0 0 14px;
  margin: 0;
  accent-color: var(--cor-unidade, var(--ss-action-bg, #4e73df));
  cursor: pointer;
}

.permissao-tree-row input[type="checkbox"]:disabled {
  cursor: not-allowed;
}

.permissao-tree-row label {
  min-width: 0;
  margin: 0;
  color: #263244;
  font-size: 0.77rem;
  line-height: 1.35;
  cursor: pointer;
}

.permissao-tree-node[data-level="0"] > .permissao-tree-row label {
  color: #111827;
  font-weight: 800;
}

.permissao-tree-node[data-level="1"] > .permissao-tree-row label {
  font-weight: 650;
}

.permissao-tree-node[data-level="2"] > .permissao-tree-row label {
  color: #56657a;
}

.permissao-tree-toggle:focus-visible,
.permissao-tree-row input[type="checkbox"]:focus-visible {
  outline: 2px solid var(--cor-unidade, var(--ss-action-bg, #4e73df));
  outline-offset: 2px;
}

.whatsapp-message-row {
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(190px, 0.7fr) minmax(260px, 1.3fr);
  align-items: center;
  gap: 0.65rem;
  padding: 0.58rem 0.65rem;
  border: 1px solid #e2e8f0;
  border-radius: 9px;
  background: #f8fafc;
}

.whatsapp-message-row > span {
  min-width: 0;
  display: grid;
  gap: 0.08rem;
}

.whatsapp-message-row strong {
  color: #0f172a;
  font-size: .75rem;
  font-weight: 900;
}

.whatsapp-message-row small {
  color: #64748b;
  font-size: .75rem;
  line-height: 1.3;
}

.integracoes-page .integracoes-nav {
  margin: 0 0 0.75rem;
  padding: 0.25rem;
  border: 1px solid #dbe3ed;
  border-radius: 9px;
  background: #f1f5f9;
}

.integracoes-page .integracoes-nav .nav-link {
  min-height: 29px;
  padding: 0.28rem 0.6rem;
  border: 0;
  border-radius: 7px;
  background: transparent;
  color: #64748b;
  font-size: 0.7rem;
  font-weight: 800;
}

.integracoes-page .integracoes-nav .nav-link.active {
  background: var(--cor-unidade, #2d3142);
  color: #fff;
}

.integration-standard-main form {
  margin: 0;
}

.integration-details {
  margin-bottom: 0.65rem;
}

.integration-payment-list {
  display: grid;
  gap: 0.45rem;
}

.integration-payment-row {
  display: grid;
  grid-template-columns: minmax(170px, 1fr) minmax(170px, 240px) auto;
  align-items: center;
  gap: 0.5rem;
  padding: 0.5rem 0.58rem;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  background: #f8fafc;
}

.integration-payment-row.is-mp-row {
  grid-template-columns: minmax(150px, 1fr) 130px 115px auto;
}

.ifood-setup-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
}

.ifood-setup-actions .btn { align-items: center; display: inline-flex; gap: .2rem; justify-content: center; }
.ifood-setup-actions .badge { font-size: .58rem; margin-left: .15rem; }

.ifood-wizard { display: grid; gap: .6rem; }
.ifood-wizard-intro,
.ifood-modal-help { color: #64748b; font-size: .72rem; margin: 0 0 .25rem; }
#mdIfoodCustos { --ifood-accent: #ea1d2c; --ifood-accent-dark: #c81725; }
#mdIfoodCustos .modal-dialog { --bs-modal-width: 900px; max-width: min(calc(100vw - 2rem), 900px); }
#mdIfoodCustos .modal-content { border: 1px solid #313548; border-radius: 10px; overflow: hidden; box-shadow: 0 16px 38px rgba(45, 49, 66, .12); }
#mdIfoodCustos form { display: flex; max-height: calc(100dvh - 2rem); flex-direction: column; }
#mdIfoodCustos .modal-header { min-height: 30px; padding: 4px 12px; }
#mdIfoodCustos .modal-title { font-size: 13px; font-weight: 600; }
#mdIfoodCustos .modal-body { padding: 20px; overflow-y: auto; background: #fff; }
#mdIfoodCustos .modal-footer { min-height: 38px; gap: 8px; padding: 5px 9px 4px; background: #f8fafc; border-top-color: #e8ecf2; }
#mdIfoodCustos .modal-footer .btn { min-width: 94px; }
.ifood-cost-intro { align-items: center; display: grid; gap: .65rem; grid-template-columns: auto minmax(0, 1fr); margin-bottom: .65rem; }
#mdIfoodCustos .ifood-modal-help { margin: 0; padding: 0; color: #64748b; font-size: .66rem; line-height: 1.35; }
.ifood-cost-global-status { align-items: center; background: #eef3ff; border: 1px solid #d9e4ff; border-radius: 999px; color: #315fcb; display: inline-flex; font-size: .65rem; font-weight: 800; gap: .4rem; margin: 0; padding: .38rem .6rem; white-space: nowrap; }
.ifood-cost-global-status.is-ready { background: #eaf8f1; border-color: #cdebdc; color: #16865a; }
.ifood-cost-global-status.is-error { background: #fff0ef; border-color: #f3d2cf; color: #c63f32; }

#mdIfoodCustos .ifood-cost-layout { align-items: start; display: grid; gap: .7rem; grid-template-columns: minmax(0, 1fr) 285px; margin-top: .7rem; }
.ifood-cost-form-sections { display: grid; gap: .6rem; min-width: 0; }
.ifood-cost-section { overflow: hidden; background: #fff; border: 1px solid #e2e8f0; border-radius: 10px; box-shadow: 0 1px 2px rgba(15, 23, 42, .025); }
.ifood-cost-section-title { align-items: center; display: flex; gap: .45rem; min-height: 34px; padding: .42rem .6rem; background: #fbfcfe; border-bottom: 1px solid #edf1f5; color: #334155; font-size: .67rem; font-weight: 850; }
.ifood-cost-section-title i { align-items: center; background: #fff0f1; border-radius: 7px; color: var(--ifood-accent); display: inline-flex; font-size: .64rem; height: 22px; justify-content: center; width: 22px; }
.ifood-cost-grid { display: grid; gap: .55rem .7rem; grid-template-columns: repeat(2, minmax(0, 1fr)); padding: .6rem; }
#mdIfoodCustos .ifood-cost-grid > label,
#mdIfoodCustos .ifood-cost-grid > .ss-field {
  align-content: start;
  display: grid;
  gap: .22rem;
  margin: 0;
  min-width: 0;
}
#mdIfoodCustos .ifood-cost-grid .form-label {
  align-items: center;
  display: inline-flex;
  gap: .28rem;
  margin: 0;
  min-width: 0;
  color: #475569;
  font-size: .63rem;
  font-weight: 800;
  line-height: 1.25;
}
#mdIfoodCustos .ifood-cost-grid .promocoes-input-suffix,
#mdIfoodCustos .ifood-cost-grid .promocoes-input-prefix,
#mdIfoodCustos .ifood-cost-grid > label > input.form-control {
  max-width: none;
  width: 100%;
}
#mdIfoodCustos .ifood-cost-grid > label > select.form-select {
  max-width: none;
  width: 100%;
}
#mdIfoodCustos .ifood-cost-grid .form-control,
#mdIfoodCustos .ifood-cost-grid .form-select { border-color: #d8e0ea; background-color: #fff; }
#mdIfoodCustos .ifood-cost-grid .form-control:focus,
#mdIfoodCustos .ifood-cost-grid .form-select:focus { border-color: rgba(234, 29, 44, .52); box-shadow: 0 0 0 2px rgba(234, 29, 44, .1); }
.ifood-wizard-step { align-items: start; background: #fff; border: 1px solid #e2e8f0; border-radius: 10px; display: grid; gap: .65rem; grid-template-columns: 28px minmax(0, 1fr); padding: .7rem; }
.ifood-wizard-step > b { align-items: center; background: #fff0f1; border-radius: 50%; color: #ea1d2c; display: flex; font-size: .7rem; height: 28px; justify-content: center; }
.ifood-wizard-step > div { display: grid; }
.ifood-wizard-step strong { color: #172033; font-size: .76rem; }
.ifood-wizard-step small { color: #64748b; font-size: .64rem; }
.ifood-wizard-step .btn { width: fit-content; }
.ifood-user-code { align-items: center; background: #f8fafc; border: 1px dashed #cbd5e1; border-radius: 8px; display: grid; gap: .45rem; grid-template-columns: auto auto auto 1fr; margin-top: .55rem; padding: .5rem; width: fit-content; }
.ifood-user-code > span { color: #64748b; font-size: .62rem; font-weight: 800; text-transform: uppercase; }
.ifood-user-code > strong { font-size: .92rem; letter-spacing: .08em; }
.ifood-user-code > small { white-space: nowrap; }
.ifood-loja-select { display: grid; gap: .4rem; grid-template-columns: minmax(0, 1fr) auto auto; }
.ifood-planos { display: grid; gap: 3px; grid-template-columns: repeat(3, minmax(0, 1fr)); padding: 3px; background: #e9edf2; border-radius: 9px; }
.ifood-planos button { align-items: center; background: transparent; border: 0; border-radius: 7px; color: #64748b; display: flex; font-size: .66rem; font-weight: 800; gap: .35rem; justify-content: center; min-height: 31px; padding: .35rem .55rem; text-align: center; }
.ifood-planos button:not(:disabled):hover { background: rgba(255, 255, 255, .65); color: #334155; }
.ifood-planos button.is-active { background: #fff; border: 0; color: var(--ifood-accent-dark); box-shadow: 0 1px 3px rgba(15, 23, 42, .12); }
.ifood-field-antecipacao { grid-column: auto; }
.ifood-antecipacao-row { align-items: center; display: grid; gap: .5rem; grid-template-columns: minmax(0, 1fr) auto; }
.ifood-antecipacao-row .promocoes-input-suffix { max-width: none; min-width: 0; }
.ifood-antecipacao-row .ss-switch { flex: 0 0 auto; white-space: nowrap; }
/* Campo dormente não participa do cálculo atual e fica fora do formulário visual.
   O JS volta a exibi-lo quando o preenchimento manual realmente for necessário. */
#mdIfoodCustos .ifood-cost-grid [data-ifood-campo-dormente] { display: none; }
.ifood-campo-nota { color: #94a3b8; font-size: .56rem; font-style: italic; line-height: 1.2; }
.ifood-cost-summary { position: sticky; top: 0; overflow: hidden; background: #fff; border: 1px solid #e2e8f0; border-radius: 10px; box-shadow: 0 3px 12px rgba(15, 23, 42, .05); }
.ifood-cost-summary-title { align-items: center; display: flex; gap: .45rem; min-height: 42px; padding: .55rem .65rem; border-bottom: 1px solid #edf1f5; color: #1e293b; font-size: .7rem; font-weight: 850; }
.ifood-cost-summary-title i { color: var(--ifood-accent); }
.ifood-cost-total { background: #fff6f6; border-bottom: 1px solid #f7dadd; display: grid; gap: .12rem .4rem; grid-template-columns: 1fr auto; margin: 0; padding: .65rem; }
.ifood-cost-total span { color: #7f1d1d; font-size: .64rem; font-weight: 800; }
.ifood-cost-total strong { color: var(--ifood-accent-dark); font-size: .95rem; line-height: 1; }
.ifood-cost-total small { color: #9f5e64; font-size: .56rem; grid-column: 1 / -1; line-height: 1.3; }
.ifood-cost-simulation { display: grid; gap: 0; margin: 0; padding: .4rem .65rem .65rem; }
.ifood-cost-simulation > div { align-items: center; display: grid; gap: .45rem; grid-template-columns: minmax(0, 1fr) auto; min-height: 45px; padding: .38rem 0; border-bottom: 1px solid #eef2f6; }
.ifood-cost-simulation > div > span { color: #64748b; font-size: .61rem; font-weight: 750; }
.ifood-cost-simulation > div > strong { color: #172033; font-size: .78rem; white-space: nowrap; }
.ifood-cost-simulation .ifood-simulation-price .promocoes-input-suffix { width: 106px; }
.ifood-cost-simulation > div.is-primary { min-height: 68px; margin-top: .48rem; padding: .55rem .6rem; background: linear-gradient(135deg, #fff4f5, #fffafa); border: 1px solid #f3c7cb; border-radius: 8px; }
.ifood-cost-simulation > div.is-primary > span { color: #9f1239; }
.ifood-cost-simulation > div.is-primary strong { color: var(--ifood-accent-dark); font-size: 1rem; }
.ifood-cost-simulation > small { margin-top: .5rem; padding: .48rem .52rem; background: #f8fafc; border-radius: 7px; color: #64748b; font-size: .56rem; line-height: 1.35; }

@media (max-width: 879.98px) {
  #mdIfoodCustos .ifood-cost-layout { grid-template-columns: 1fr; }
  .ifood-cost-summary { position: static; }
}

@media (max-width: 991.98px) {
  .qr-config-layout,
  .config-standard-layout,
  .integration-standard-layout {
    grid-template-columns: 1fr;
  }

  .qr-summary-card,
  .config-summary-card {
    position: static;
  }
}

@media (max-width: 767.98px) {
  .config-fields-grid,
  .integration-form-grid,
  .config-compact-switches {
    grid-template-columns: 1fr;
  }

  .config-field-full {
    grid-column: auto;
  }

  #mdIfoodCustos .modal-dialog { max-width: none; margin: 0; }
  #mdIfoodCustos .modal-content { height: 100dvh; border-radius: 0; }
  #mdIfoodCustos form { height: 100dvh; max-height: none; }
  #mdIfoodCustos .modal-body { padding: .65rem; }
  .ifood-cost-intro { align-items: start; grid-template-columns: 1fr; gap: .35rem; }
  .ifood-cost-global-status { white-space: normal; }
  .ifood-planos { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .ifood-planos button { font-size: .58rem; gap: .22rem; padding-inline: .25rem; }
  .ifood-cost-grid { grid-template-columns: 1fr; }
  .ifood-loja-select { grid-template-columns: 1fr; }
  .ifood-user-code { grid-template-columns: auto auto auto; width: 100%; }
  .ifood-user-code > small { grid-column: 1 / -1; }

  .config-option-row,
  .integration-channel-row {
    align-items: flex-start;
    flex-wrap: wrap;
  }

  .config-option-copy,
  .integration-channel-copy {
    min-width: 0;
    flex: 1 1 220px;
  }

  .config-caixa-whatsapp-head {
    align-items: flex-start;
  }

  .config-caixa-whatsapp-controls {
    grid-template-columns: 1fr;
  }

  .config-caixa-whatsapp-remove {
    width: 100%;
    margin: 0;
  }

  .config-time-field {
    width: calc(50% - 0.35rem);
    flex-basis: calc(50% - 0.35rem);
  }

  .whatsapp-message-row {
    grid-template-columns: 1fr;
  }

  .integration-payment-row,
  .integration-payment-row.is-mp-row {
    grid-template-columns: 1fr;
    align-items: start;
  }
}

@media (max-width: 575.98px) {
  .qr-workspace-body,
  .config-standard-body {
    padding: 0.6rem;
  }

  .qr-link-row {
    grid-template-columns: 1fr;
    text-align: center;
  }

  .qr-link-image,
  .qr-link-image img {
    width: 118px;
    height: 118px;
    margin: 0 auto;
  }

  .qr-link-type {
    margin: 0 auto;
  }

  .permissoes-toolbar {
    align-items: stretch;
    flex-direction: column;
  }

  .permissao-row {
    align-items: flex-start;
  }
}

/* Ajustes pontuais solicitados para Geral e QR Code. */
@media (min-width: 992px) {
  .config-identification-grid {
    grid-template-columns: minmax(180px, 1fr) minmax(180px, 1fr) minmax(260px, 1.25fr);
    align-items: end;
  }

  .config-couvert-row {
    display: grid;
    grid-template-columns: minmax(260px, 1fr) auto auto;
    align-items: end;
    column-gap: 0.65rem;
  }

  .config-couvert-row .config-option-copy {
    align-self: center;
  }

  .config-time-fields {
    display: grid;
    grid-template-columns: repeat(2, 94px);
    gap: 0.45rem;
  }

  .config-couvert-switch {
    min-width: 74px;
    align-self: center;
    justify-self: end;
    justify-content: flex-end;
  }
}

.qr-download-one {
  width: fit-content;
  min-height: 27px;
  padding: 0.22rem 0.58rem;
  border-radius: 999px;
  font-size: 0.7rem;
}

@media (max-width: 991.98px) {
  .config-time-fields {
    display: grid;
    grid-template-columns: repeat(2, minmax(90px, 1fr));
    gap: 0.45rem;
    width: 100%;
  }

  .config-time-field {
    width: auto;
  }
}

@media (max-width: 575.98px) {
  .config-time-fields {
    grid-template-columns: 1fr 1fr;
  }

  .config-couvert-switch {
    margin-left: auto;
  }
}

/* Mercado Pago: identifica claramente valores e estado de cada forma. */
.integration-mp-field {
  min-width: 0;
  margin: 0;
}

.integration-mp-field .form-label {
  display: block;
  margin-bottom: 0.18rem;
  color: #475569;
  font-size: 0.62rem;
  font-weight: 800;
  line-height: 1.1;
}

.integration-mp-field .promocoes-input-prefix,
.integration-mp-field .promocoes-input-suffix {
  min-width: 0;
}

.integration-mp-field .form-control {
  min-width: 0;
}

.integration-mp-switch {
  align-self: end;
  justify-self: end;
  justify-content: flex-end;
  min-height: 31px;
  padding-bottom: 0.12rem;
}

.integration-payment-channel-switches {
  display: flex;
  align-items: flex-end;
  justify-content: flex-end;
  gap: 0.55rem;
}

@media (max-width: 767.98px) {
  .integration-payment-channel-switches {
    justify-content: flex-start;
  }

  .integration-mp-switch {
    justify-self: start;
    justify-content: flex-start;
  }
}

/* Pontuação: configuração e catálogo compactos. */
.pontuacao-mode-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.pontuacao-compact-section {
  padding-top: 0.7rem;
  padding-bottom: 0.7rem;
}

.pontuacao-compact-section .unidade-config-card-head {
  margin-bottom: 0.55rem;
}

.pontuacao-values-grid.pontuacao-conversion-row {
  display: flex;
  align-items: end;
  gap: 0.65rem;
}

.pontuacao-conversion-row .ss-field {
  flex: 0 1 220px;
  margin: 0;
}

.pontuacao-conversion-row .form-label {
  margin-bottom: 0.2rem;
  font-size: 0.68rem;
}

.pontuacao-conversion-row .cashback-input-affix,
.pontuacao-conversion-row .cashback-input-prefix {
  height: var(--ss-control-height);
}

.pontuacao-products-compactbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.52rem 0.6rem;
  border: 1px solid #dbeafe;
  border-radius: 9px;
  background: #f8fbff;
}

.pontuacao-compact-metrics {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 0.45rem;
  flex-wrap: wrap;
}

.pontuacao-compact-metrics > span {
  display: inline-flex;
  align-items: center;
  gap: 0.28rem;
  min-height: 28px;
  padding: 0.28rem 0.5rem;
  border: 1px solid #e2e8f0;
  border-radius: 999px;
  background: #fff;
  color: #64748b;
  white-space: nowrap;
}

.pontuacao-compact-metrics i {
  color: var(--ss-primary);
  font-size: .75rem;
}

.pontuacao-compact-metrics strong {
  color: #0f172a;
  font-size: .75rem;
}

.pontuacao-compact-metrics small {
  font-size: .75rem;
}

.pontuacao-products-compactbar .btn {
  flex: 0 0 auto;
  white-space: nowrap;
}

.pontuacao-produtos-toolbar {
  display: flex;
  align-items: center;
  gap: 0.65rem;
}

.pontuacao-produtos-toolbar-main {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 0.5rem;
  flex: 1 1 auto;
}

.pontuacao-produtos-toolbar .unidades-busca {
  width: min(310px, 100%);
  flex: 0 1 310px;
}

.pontuacao-produtos-filtros {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 0.25rem;
  overflow-x: auto;
  scrollbar-width: none;
}

.pontuacao-produtos-filtros::-webkit-scrollbar {
  display: none;
}

.pontuacao-produtos-filtros button {
  min-height: 29px;
  padding: 0.28rem 0.55rem;
  border: 1px solid #dbe3ed;
  border-radius: 999px;
  background: #fff;
  color: #475569;
  font-size: 0.65rem;
  font-weight: 750;
  line-height: 1;
  white-space: nowrap;
}

.pontuacao-produtos-filtros button:hover,
.pontuacao-produtos-filtros button.is-active {
  border-color: var(--ss-primary);
  background: color-mix(in srgb, var(--ss-primary) 9%, #fff);
  color: var(--ss-primary);
}

.pontuacao-produtos-cards {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.45rem;
  padding: 0.5rem;
}

.pontuacao-produto-card {
  min-width: 0;
  border-radius: 9px;
}

.pontuacao-produto-card .cashback-produto-card-head {
  gap: 0.4rem;
  padding: 0.42rem 0.5rem 0.36rem;
}

.pontuacao-produto-card .cashback-produto-identidade {
  gap: 0.4rem;
}

.pontuacao-produto-card .cashback-produto-identidade > span {
  width: 26px;
  height: 26px;
  flex-basis: 26px;
  border-radius: 7px;
  font-size: .75rem;
}

.pontuacao-produto-card .cashback-produto-identidade strong {
  font-size: .75rem;
}

.pontuacao-produto-card .cashback-produto-identidade small {
  font-size: .75rem;
}

.pontuacao-produto-rules {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.28rem;
  padding: 0 0.45rem 0.42rem;
}

.pontuacao-produto-rule {
  min-width: 0;
  min-height: 34px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.4rem;
  padding: 0.25rem 0.32rem;
  border: 1px solid #e5eaf1;
  border-radius: 7px;
  background: #f8fafc;
}

.pontuacao-produto-rule[hidden] {
  display: none !important;
}

.pontuacao-produto-rule.is-resgate {
  background: #fffaf1;
  border-color: #f6e4bc;
}

.pontuacao-produto-switch {
  min-width: 0;
  flex: 1 1 auto;
  margin: 0;
}

.pontuacao-produto-switch .ss-switch-text {
  overflow: hidden;
  color: #334155;
  font-size: 0.64rem;
  font-weight: 750;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.pontuacao-produto-rule-field {
  width: 102px;
  flex: 0 0 102px;
}

.pontuacao-produto-rule-field .cashback-input-affix,
.pontuacao-produto-rule-field .cashback-input-prefix {
  height: var(--ss-control-height);
}

.pontuacao-produto-rule-field .form-control {
  padding: 0.15rem 2.85rem 0.15rem 0.4rem;
}

.pontuacao-produto-rule-field .cashback-input-affix > span {
  right: 0.38rem;
  min-width: 0;
  font-size: 0.55rem;
}

@media (max-width: 1199.98px) {
  .pontuacao-produtos-cards {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 991.98px) {
  .pontuacao-produtos-toolbar,
  .pontuacao-produtos-toolbar-main {
    align-items: stretch;
  }

  .pontuacao-produtos-toolbar-main {
    flex-direction: column;
  }

  .pontuacao-produtos-toolbar .unidades-busca {
    width: 100%;
    max-width: none;
    flex-basis: auto;
  }
}

@media (max-width: 767.98px) {
  .pontuacao-mode-grid,
  .pontuacao-produtos-cards {
    grid-template-columns: 1fr;
  }

  .pontuacao-values-grid.pontuacao-conversion-row {
    align-items: stretch;
    flex-direction: column;
  }

  .pontuacao-conversion-row .ss-field {
    width: 100%;
    flex-basis: auto;
  }

  .pontuacao-products-compactbar {
    align-items: stretch;
    flex-direction: column;
  }

  .pontuacao-products-compactbar .btn {
    width: 100%;
  }

  .pontuacao-produtos-toolbar {
    flex-direction: column;
  }

  .pontuacao-produtos-toolbar .cashback-produtos-contador {
    width: 100%;
    margin-left: 0;
  }
}

/* =================== Aceite de pedidos — modal global (Novo pedido) ===================
   Renderizado em todas as telas do gestor por pedidos-aceite-global.js.
   Mantém os mesmos IDs/campos do módulo Vendas; visual modernizado. */
.vendas-inline-loading{display:flex;align-items:center;justify-content:center;gap:7px;min-height:120px;color:#64748b;font-size:.75rem}
.vendas-aceite-dialog{--bs-modal-width:880px}
.vendas-aceite-dialog .modal-content{border:1px solid #313548;border-radius:10px;overflow:hidden;box-shadow:0 16px 38px rgba(45,49,66,.12)}
.vendas-aceite-body{display:grid;align-content:start;gap:12px;min-height:300px;padding:16px}
.vendas-aceite-plataforma{display:flex;align-items:center;justify-content:center;gap:8px;width:max-content;max-width:100%;margin:0 auto;padding:5px 14px;border:1px solid #dbe6f5;border-radius:999px;background:#fff;color:var(--cor-unidade);font-size:.85rem;font-weight:850;box-shadow:0 1px 2px rgba(15,23,42,.05)}
.vendas-aceite-dados{display:grid;grid-template-columns:minmax(70px,.55fr) minmax(105px,.85fr) minmax(150px,1.35fr) minmax(115px,.9fr) minmax(175px,1.45fr);gap:10px;padding:14px;border:1px solid #e2e8f0;border-radius:14px;background:#fff;box-shadow:0 1px 3px rgba(15,23,42,.05)}
.vendas-aceite-campo{display:grid;align-content:start;gap:3px;min-width:0}
.vendas-aceite-campo.is-wide{grid-column:span 2}.vendas-aceite-campo.is-full{grid-column:1/-1}
.vendas-aceite-campo span{color:#64748b;font-size:.75rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase}
.vendas-aceite-campo input.form-control[readonly]{cursor:default}
.vendas-aceite-totais{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}
.vendas-aceite-total{display:grid;gap:4px;padding:10px 12px;border:1px solid #dbe2ea;border-radius:11px;background:#fff;box-shadow:0 1px 3px rgba(15,23,42,.06)}
.vendas-aceite-total span{color:#64748b;font-size:.75rem;font-weight:800;letter-spacing:.03em;text-transform:uppercase}
.vendas-aceite-total strong{font-size:1rem;font-weight:800;white-space:nowrap;color:#1e293b}
.vendas-aceite-total.is-grand{border-color:#6ee7a0;border-width:1.5px;background:linear-gradient(180deg,#f0fdf4,#ecfdf3);box-shadow:0 2px 6px rgba(21,128,61,.14)}
.vendas-aceite-total.is-grand strong{color:#15803d;font-size:1.18rem}
.vendas-aceite-itens{min-height:205px;max-height:355px;overflow:auto;border:1px solid #e2e8f0;border-radius:14px;background:#fff;box-shadow:0 1px 3px rgba(15,23,42,.05);scrollbar-gutter:stable}
.vendas-aceite-item{display:grid;grid-template-columns:64px minmax(0,1fr) 60px 96px 104px;align-items:center;gap:8px;padding:11px 12px;border-bottom:1px solid #eef2f7;color:#334155;font-size:.82rem}
.vendas-aceite-item:last-child{border-bottom:0}
.vendas-aceite-item:not(.is-head):hover{background:#f8fbff}
.vendas-aceite-item>span:not(:nth-child(2)),.vendas-aceite-item>strong{text-align:right;white-space:nowrap}
.vendas-aceite-item.is-head{position:sticky;top:0;z-index:1;align-items:center;padding-top:8px;padding-bottom:8px;background:#f1f5fa;color:#475569;font-size:.75rem;font-weight:850;letter-spacing:.04em;text-transform:uppercase}
.vendas-aceite-item-main{display:flex;align-items:center;gap:9px;min-width:0}
.vendas-aceite-item-thumb{width:46px;height:46px;flex:0 0 46px;border-radius:9px;object-fit:cover;background:#f1f5f9;border:1px solid #e2e8f0}
.vendas-aceite-item-thumb.ssapps-image-thumbnail{display:grid;place-items:center;padding:0;overflow:hidden;color:#a8b0bd;cursor:zoom-in}.vendas-aceite-item-thumb.ssapps-image-thumbnail img{display:block;width:100%;height:100%;object-fit:cover}.vendas-aceite-item-thumb.ssapps-image-thumbnail:hover,.vendas-aceite-item-thumb.ssapps-image-thumbnail:focus-visible{border-color:#60a5fa;outline:2px solid rgba(59,130,246,.2);outline-offset:1px}
.vendas-aceite-item-thumb-empty{display:grid;place-items:center;color:#a8b0bd;font-size:1.05rem}
.vendas-aceite-item-copy{display:grid;gap:4px;min-width:0}
.vendas-aceite-item-copy>b{overflow-wrap:anywhere;font-size:.92rem;font-weight:800;color:#0f172a}
.vendas-aceite-item-copy small{color:#475569;font-size:.8rem;font-weight:500;line-height:1.5;overflow-wrap:anywhere}
.vendas-aceite-item-copy em{color:#8a5c00;font-size:.78rem;font-style:normal}
.vendas-aceite-item.is-mapeamento-pendente{background:#fffbeb}
.vendas-aceite-vinculo{display:grid;gap:5px;margin-top:4px;padding:9px;border:1px solid #f6c453;border-radius:9px;background:#fffdf5}
.vendas-aceite-vinculo>span{color:#92400e;font-size:.75rem;font-weight:850}
.vendas-aceite-vinculo .form-select{width:100%;min-width:0;border-color:#e7b84b;background-color:#fff;color:#1e293b;font-size:.8rem}
.vendas-aceite-vinculo small{color:#7c5b18;font-size:.72rem;line-height:1.35}
.vendas-aceite-opcoes-remotas{display:grid;gap:7px;margin-top:2px}
.vendas-aceite-opcao-remota{display:grid;gap:4px;padding:6px 0;border-top:1px dashed #e2e8f0;color:#475569;font-size:.78rem;line-height:1.4}
.vendas-aceite-opcao-remota:first-child{border-top:0}
.vendas-aceite-vinculo-opcao{margin-top:2px}
.vendas-aceite-vinculo-opcao[hidden]{display:none!important}
.vendas-aceite-vinculo.is-bloqueado{border-color:#f3a6aa;background:#fff6f6}
.vendas-aceite-vinculo.is-bloqueado>span,.vendas-aceite-vinculo.is-bloqueado small{color:#9f1239}
.vendas-aceite-vazio{padding:28px;color:#7b8798;font-size:.75rem;text-align:center}
.vendas-aceite-erro{display:flex;align-items:flex-start;gap:8px;padding:12px;border:1px solid #fecaca;border-radius:10px;background:#fef2f2;color:#991b1b;font-size:.75rem}
@media(max-width:767.98px){
  .vendas-aceite-dialog .modal-content{height:100dvh;border-radius:0}
  .vendas-aceite-body{min-height:0;padding:10px;overflow:auto}
  .vendas-aceite-dados{grid-template-columns:repeat(2,minmax(0,1fr));padding:10px}
  .vendas-aceite-campo.is-wide,.vendas-aceite-campo.is-cliente,.vendas-aceite-campo.is-pagamento{grid-column:1/-1}
  .vendas-aceite-totais{grid-template-columns:repeat(2,minmax(0,1fr))}
  .vendas-aceite-total.is-grand{grid-column:1/-1}
  .vendas-aceite-itens{min-height:160px;max-height:none;flex:1 1 auto}
  .vendas-aceite-item{grid-template-columns:48px minmax(0,1fr) 42px 84px}
  .vendas-aceite-item>*:nth-child(4){display:none}
}

/* Badge global de pedidos aguardando aceite (menu lateral, fora do módulo Vendas) */
.sidebar-link{position:relative}
.sidebar-link>span:not(.aceites-global-badge){min-width:0;flex:1 1 auto}
.sidebar-link .aceites-global-badge{position:static;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;min-width:20px;max-width:none;height:20px;margin-left:auto;padding:0 6px;border:2px solid rgba(255,255,255,.72);border-radius:999px;background:#ef4444;color:#fff!important;-webkit-text-fill-color:#fff!important;font-size:10px;font-weight:900;line-height:1;opacity:1!important;visibility:visible;box-shadow:0 2px 5px rgba(127,29,29,.32);cursor:pointer}
@media(min-width:992px){
  .gestor-sidebar:not(:hover):not(:has(:focus-visible)) .sidebar-link .aceites-global-badge{position:absolute;top:2px;right:2px;width:16px;min-width:16px;height:16px;margin:0;padding:0;border-width:1px;font-size:9px}
}

/* Helper global de ampliação de imagens */
body.ssapps-image-lightbox-open{overflow:hidden}
.ssapps-image-lightbox[hidden]{display:none!important}
.ssapps-image-lightbox{position:fixed;inset:0;z-index:100000;display:grid;place-items:center;padding:20px;background:rgba(15,23,42,.82);backdrop-filter:blur(2px)}
.ssapps-image-lightbox-dialog{position:relative;display:grid;box-sizing:border-box;width:max-content;max-width:min(92vw,1100px);max-height:92dvh;place-items:center;padding:12px;border:1px solid rgba(255,255,255,.3);border-radius:12px;background:#fff;box-shadow:0 28px 80px rgba(0,0,0,.45)}
.ssapps-image-lightbox-image{display:block;width:auto;height:auto;max-width:calc(min(92vw,1100px) - 26px);max-height:calc(92dvh - 64px);border-radius:7px;object-fit:contain}
.ssapps-image-lightbox-close{position:absolute;top:-14px;right:-14px;z-index:1;display:grid;width:34px;height:34px;place-items:center;padding:0;border:2px solid #fff;border-radius:50%;background:#253047;color:#fff;box-shadow:0 3px 10px rgba(0,0,0,.3)}
.ssapps-image-lightbox-close:hover,.ssapps-image-lightbox-close:focus-visible{background:#111827;outline:3px solid rgba(147,197,253,.7);outline-offset:2px}
.ssapps-image-lightbox-caption{box-sizing:border-box;width:100%;max-width:100%;margin:8px 0 0;overflow-wrap:anywhere;color:#334155;font-size:.78rem;font-weight:700;text-align:center}
@media(max-width:767.98px){
  .ssapps-image-lightbox{padding:12px}.ssapps-image-lightbox-dialog{max-width:96vw;max-height:94dvh;padding:8px}.ssapps-image-lightbox-image{max-width:calc(96vw - 18px);max-height:calc(94dvh - 54px)}.ssapps-image-lightbox-close{top:7px;right:7px}
}

/* =================== Imprimir conta — modal global ===================
   Mesmos estilos do módulo Vendas; replicados aqui porque o modal agora
   está disponível em todas as telas do gestor. */
.vendas-imprimir-conta-dialog{--bs-modal-width:560px}
.vendas-imprimir-conta-body{display:grid;align-content:start;gap:12px}
.vendas-imprimir-secao,.vendas-imprimir-valores,.vendas-imprimir-operacao{padding:0;border:0;background:#fff}
.vendas-imprimir-secao.is-service{min-height:28px;display:flex;align-items:center}
.vendas-imprimir-switch-copy{display:grid;line-height:1.2;white-space:normal}.vendas-imprimir-switch-copy small{color:#64748b;font-size:.75rem}
.vendas-imprimir-valores{grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;align-items:end}.vendas-imprimir-valores .ss-field,.vendas-imprimir-operacao .ss-field{min-width:0}
.vendas-imprimir-operacao{grid-template-columns:minmax(0,1fr) 100px 100px;gap:12px;align-items:end}.vendas-imprimir-vendedor-lookup{flex-wrap:nowrap}.vendas-imprimir-vendedor-codigo{flex:0 0 70px!important;max-width:70px}.vendas-imprimir-vendedor-lookup [data-lookup-name]{min-width:0}
.vendas-imprimir-secao.is-pix{display:grid;gap:5px;margin-top:1px;padding:6px 8px;border:1px solid #dbe3ef;border-radius:7px;background:#f8fafc}
.vendas-imprimir-pix-status{display:grid;grid-template-columns:22px minmax(0,1fr) auto;align-items:center;gap:6px;padding:5px 7px;border-radius:6px;background:#fff}.vendas-imprimir-pix-status>i{display:grid;width:21px;height:21px;place-items:center;border-radius:50%;background:#eef2f7;color:#64748b;font-size:.75rem}.vendas-imprimir-pix-status>span{display:grid;min-width:0}.vendas-imprimir-pix-status strong{font-size:.75rem}.vendas-imprimir-pix-status small{overflow:hidden;color:#64748b;font-size:.75rem;text-overflow:ellipsis;white-space:nowrap}.vendas-imprimir-pix-status>b{font-size:.75rem;white-space:nowrap}.vendas-imprimir-pix-status.is-paid{background:#f0fdf4}.vendas-imprimir-pix-status.is-paid>i{background:#dcfce7;color:#15803d}.vendas-imprimir-pix-status.is-pending{background:#fffbeb}.vendas-imprimir-pix-status.is-pending>i{background:#fef3c7;color:#b45309}.vendas-imprimir-pix-status.is-muted{opacity:.8}
.vendas-imprimir-regra{display:flex;align-items:flex-start;gap:6px;padding:5px 7px;border:1px solid #fde68a;border-radius:6px;background:#fffbeb;color:#92400e;font-size:.75rem;line-height:1.3}
@media(max-width:767.98px){
  .vendas-imprimir-conta-dialog .modal-content{height:100dvh}.vendas-imprimir-valores{grid-template-columns:repeat(2,minmax(0,1fr))}.vendas-imprimir-valores .ss-field:last-child{grid-column:1/-1}.vendas-imprimir-operacao{grid-template-columns:1fr 1fr}.vendas-imprimir-vendedor-field{grid-column:1/-1}.vendas-imprimir-pix-status{grid-template-columns:22px minmax(0,1fr)}.vendas-imprimir-pix-status>b{grid-column:2}
}

/* =================== Início (dashboard) — visual do Financeiro =================== */
.inicio-dashboard{border:1px solid #e3e8f0;border-radius:12px}
.inicio-dashboard-kpi-cadastros .financeiro-kpi-icon{background:#eef6ff;color:#2870a8}
.inicio-graficos-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.inicio-graficos-grid.is-sem-financeiro{grid-template-columns:minmax(0,1fr)}
.inicio-chart-vendas{grid-column:1/-1;min-height:320px}
.inicio-chart-vendas-canvas{height:250px}
.inicio-chart-financeiro header{gap:10px}
.inicio-chart-financeiro header>div{min-width:0}
.inicio-chart-financeiro #selGraficoFinanceiro{flex:0 1 190px;max-width:190px;font-size:.7rem}
.dashboard-grafico-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:12px;padding-top:12px;border-top:1px solid #eef1f5}
.dashboard-grafico-stats>div{min-width:0;text-align:center}
.dashboard-grafico-stats span{display:block;overflow:hidden;color:#94a3b8;font-size:.64rem;font-weight:700;letter-spacing:.03em;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap}
.dashboard-grafico-stats strong{display:block;overflow:hidden;color:#172033;font-size:.82rem;text-overflow:ellipsis;white-space:nowrap}
@media(max-width:767.98px){.inicio-graficos-grid{grid-template-columns:minmax(0,1fr)}.inicio-chart-vendas{grid-column:auto}.inicio-dashboard{border-left:0;border-right:0;border-radius:0}.inicio-chart-financeiro #selGraficoFinanceiro{max-width:150px}}

.config-custo-automatico-status{display:block;margin-top:4px;color:#0369a1;font-size:.75rem;font-weight:600}

/* =================== Consultor IA — botão e janela flutuantes =================== */
.consultor-fab{position:fixed;right:20px;bottom:20px;z-index:1055;display:grid;width:56px;height:56px;place-items:center;border:0;border-radius:50%;background:linear-gradient(135deg,#4f46e5,#7c3aed);color:#fff;font-size:1.25rem;box-shadow:0 10px 26px rgba(79,70,229,.35);cursor:grab;transition:transform .15s ease;touch-action:none}
.consultor-fab:hover{transform:scale(1.06)}
.consultor-fab-arrastando{cursor:grabbing;transition:none}
.consultor-fab-arrastando:hover{transform:none}
.consultor-janela{position:fixed;right:20px;bottom:20px;z-index:1056;display:flex;width:min(440px,calc(100vw - 24px));height:min(680px,calc(100vh - 60px));flex-direction:column;overflow:hidden;border:1px solid #e2e8f0;border-radius:18px;background:#fff;box-shadow:0 24px 60px rgba(15,23,42,.3)}
.consultor-janela-head{display:flex;align-items:center;justify-content:space-between;flex:0 0 auto;padding:.9rem 1.1rem;background:linear-gradient(135deg,#4f46e5,#7c3aed);color:#fff;font-size:1.02rem;font-weight:700}
.consultor-mensagens{display:flex;flex-direction:column;flex:1 1 auto;gap:.7rem;padding:1rem;overflow-y:auto;background:#f8fafc;scrollbar-width:thin;scrollbar-color:#cbd5e1 transparent}
.consultor-mensagens::-webkit-scrollbar{width:8px}
.consultor-mensagens::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:8px}
.consultor-mensagem{display:flex}
.consultor-mensagem.is-model{justify-content:flex-start}
.consultor-mensagem.is-user{justify-content:flex-end}
.consultor-bolha{max-width:86%;overflow-wrap:anywhere;padding:.65rem .9rem;border-radius:14px;font-size:.95rem;line-height:1.55;white-space:pre-wrap}
.consultor-mensagem.is-model .consultor-bolha{border:1px solid #e2e8f0;border-bottom-left-radius:4px;background:#fff;color:#1f2937;box-shadow:0 1px 2px rgba(15,23,42,.04)}
.consultor-mensagem.is-user .consultor-bolha{border-bottom-right-radius:4px;background:#4f46e5;color:#fff}
.consultor-meta{display:block;margin-top:.48rem;padding-top:.35rem;border-top:1px solid rgba(100,116,139,.16);color:#64748b;font-size:.7rem;font-weight:500;line-height:1.2;white-space:normal}
.consultor-mensagem.is-user .consultor-meta{border-top-color:rgba(255,255,255,.22);color:rgba(255,255,255,.78);text-align:right}
.consultor-lista{margin:.3rem 0;padding-left:1.2rem}
.consultor-lista li{margin-bottom:.2rem}
.consultor-pdf-btn{display:flex;align-items:center;gap:.5rem;margin-top:.6rem;padding:.55rem .7rem;width:100%;border:1px solid rgba(0,0,0,.08);border-radius:10px;background:#fef2f2;color:#b91c1c;font-size:.86rem;font-weight:600;cursor:pointer;transition:background .15s ease}
.consultor-pdf-btn:hover{background:#fee2e2}
.consultor-mensagem.is-user .consultor-pdf-btn{background:rgba(255,255,255,.15);color:#fff;border-color:rgba(255,255,255,.25)}
.consultor-opcoes{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.6rem}
.consultor-opcao-btn{padding:.4rem .8rem;border:1px solid #c7d2fe;border-radius:999px;background:#eef2ff;color:#4338ca;font-size:.84rem;font-weight:600;cursor:pointer;transition:background .15s ease}
.consultor-opcao-btn:hover{background:#e0e7ff}
.consultor-form{display:flex;flex:0 0 auto;gap:.5rem;padding:.8rem;border-top:1px solid #e2e8f0;background:#fff}
.consultor-form input{flex:1 1 auto;min-width:0;font-size:.92rem;padding-top:.55rem;padding-bottom:.55rem}
.consultor-form button{width:42px;flex:0 0 auto}
.consultor-pensando{display:flex;align-items:center;gap:.5rem;min-width:154px;white-space:normal}
.consultor-pensando-label{color:#475569;font-size:.86rem;font-weight:650}
.consultor-pensando-tempo{margin-left:auto;color:#64748b;font-size:.76rem;font-variant-numeric:tabular-nums}
.consultor-digitando{display:inline-flex;align-items:center;gap:3px}
.consultor-digitando>span{width:5px;height:5px;border-radius:50%;background:#94a3b8;animation:consultorPiscar 1.2s ease-in-out infinite}
.consultor-digitando>span:nth-child(2){animation-delay:.15s}
.consultor-digitando>span:nth-child(3){animation-delay:.3s}
@keyframes consultorPiscar{0%,80%,100%{opacity:.3}40%{opacity:1}}
@media(max-width:480px){
  .consultor-janela{right:10px;bottom:10px;left:10px;width:auto}
  .consultor-fab{right:16px;bottom:16px}
}
.jornada-acesso {
  margin-top: 14px;
}

.unidade-raio-appvendedores {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(180px, 240px);
  align-items: end;
  gap: 14px;
  margin-top: 16px;
  padding: 14px;
  border: 1px solid color-mix(in srgb, var(--cor-unidade, #2457d6) 24%, #dfe3ea);
  border-radius: 12px;
  background: color-mix(in srgb, var(--cor-unidade, #2457d6) 5%, white);
}

.unidade-raio-appvendedores > div,
.unidade-raio-appvendedores > label {
  display: grid;
  gap: 4px;
}

.unidade-raio-appvendedores span {
  color: #667085;
  font-size: .78rem;
}

.unidade-raio-appvendedores label > span:first-child {
  font-weight: 700;
}

.jornada-acesso[hidden] {
  display: none !important;
}

.jornada-dias-grade {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin-top: 10px;
}

.jornada-dia {
  min-width: 0;
  overflow: hidden;
  border: 1px solid #dce2eb;
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 1px 2px rgba(16, 24, 40, .04);
  transition: border-color .16s ease, box-shadow .16s ease;
}

.jornada-dia:not(.is-folga) {
  border-color: color-mix(in srgb, var(--cor-unidade, #2457d6) 28%, #dce2eb);
}

.jornada-dia-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 9px 11px;
  border-bottom: 1px solid #e7eaf0;
  background: #f8fafc;
}

.jornada-dia:not(.is-folga) .jornada-dia-head {
  background: color-mix(in srgb, var(--cor-unidade, #2457d6) 5%, #fff);
}

.jornada-dia-head > div {
  display: flex;
  align-items: baseline;
  gap: 7px;
  min-width: 0;
}

.jornada-dia-head strong {
  overflow: hidden;
  color: #273142;
  font-size: .84rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.jornada-dia-head > small {
  flex: 0 0 auto;
  padding: 3px 8px;
  border-radius: 999px;
  background: color-mix(in srgb, var(--cor-unidade, #2457d6) 11%, #fff);
  color: var(--cor-unidade, #2457d6);
  font-size: .66rem;
  font-weight: 800;
}

.jornada-dia.is-folga .jornada-dia-head > small {
  background: #eef1f5;
  color: #667085;
}

.jornada-dia-turnos {
  display: grid;
}

.jornada-turno-linha {
  display: grid;
  grid-template-columns: minmax(148px, .8fr) minmax(200px, 1.2fr);
  align-items: center;
  gap: 12px;
  padding: 10px 11px;
  transition: background .16s ease, opacity .16s ease;
}

.jornada-turno-linha + .jornada-turno-linha {
  border-top: 1px dashed #e2e6ed;
}

.jornada-turno-linha.is-inactive {
  background: #fafbfc;
}

.jornada-turno-config,
.jornada-turno-switch {
  min-width: 0;
}

.jornada-turno-switch {
  display: flex;
  align-items: center;
  gap: 9px;
  margin: 0;
  cursor: pointer;
}

.jornada-turno-texto {
  display: grid;
  gap: 1px;
  min-width: 0;
  line-height: 1.15;
}

.jornada-turno-texto strong {
  color: #344054;
  font-size: .77rem;
  font-weight: 800;
}

.jornada-turno-texto small {
  overflow: hidden;
  color: #667085;
  font-size: .66rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.jornada-turno-linha.is-inactive .jornada-turno-texto,
.jornada-turno-linha.is-inactive .jornada-horarios {
  opacity: .58;
}

.jornada-horarios {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 6px;
  min-width: 0;
}

.jornada-horarios label {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: 5px;
  min-width: 0;
  margin: 0;
}

.jornada-horarios label > span {
  color: #667085;
  font-size: .66rem;
  font-weight: 700;
}

.jornada-horarios input[type="time"] {
  min-width: 0;
  height: 32px;
  padding-right: 4px;
  padding-left: 7px;
  border-color: #d9dee7;
  border-radius: 7px;
  background: #fff;
  font-size: .76rem;
  font-variant-numeric: tabular-nums;
}

.jornada-horarios input[type="time"]:disabled {
  background: #eef1f5;
  cursor: not-allowed;
}

.jornada-horarios > i {
  color: #98a2b3;
  font-size: .68rem;
}

@media (max-width: 767.98px) {
  .unidade-raio-appvendedores {
    grid-template-columns: 1fr;
  }

  .jornada-dias-grade {
    grid-template-columns: 1fr;
  }

  .jornada-turno-linha {
    grid-template-columns: minmax(132px, .7fr) minmax(190px, 1.3fr);
  }
}

@media (max-width: 479.98px) {
  .jornada-dia-head,
  .jornada-turno-linha {
    padding-right: 9px;
    padding-left: 9px;
  }

  .jornada-turno-linha {
    grid-template-columns: 1fr;
    gap: 8px;
  }

  .jornada-horarios {
    padding-left: 40px;
  }

  .jornada-horarios label {
    grid-template-columns: 1fr;
    gap: 2px;
  }
}

/* Fornecedores e funcionários: mantém as comissões por unidade legíveis. */
#modalFornecedorFuncionarioCadastro .modal-smart-cards--commissions .modal-smart-grid {
  grid-template-columns: repeat(auto-fit, minmax(440px, 1fr));
  gap: 0.85rem;
}

#modalFornecedorFuncionarioCadastro .modal-smart-cards--commissions .modal-smart-card > header {
  min-height: 52px;
  gap: 0.65rem;
  padding: 0.65rem 0.75rem;
}

#modalFornecedorFuncionarioCadastro .modal-smart-cards--commissions .modal-smart-icon {
  width: 30px;
  height: 30px;
  flex-basis: 30px;
}

#modalFornecedorFuncionarioCadastro .modal-smart-cards--commissions .modal-smart-card > header strong {
  font-size: 0.84rem;
}

#modalFornecedorFuncionarioCadastro .modal-smart-cards--commissions .modal-smart-card > header small {
  font-size: 0.7rem;
}

.fornecedor-comissao-regra {
  display: grid;
  gap: 0.2rem;
  padding: 0.65rem 0.75rem;
  border-bottom: 1px solid #e5eaf1;
  background: #f8fafc;
}

.fornecedor-comissao-regra .form-check {
  min-height: 22px;
  margin: 0;
}

.fornecedor-comissao-regra .form-check-input {
  cursor: pointer;
}

.fornecedor-comissao-regra .form-check-label {
  color: #1e293b;
  cursor: pointer;
  font-size: 0.76rem;
  font-weight: 800;
}

.fornecedor-comissao-regra > small {
  padding-left: 2.4rem;
  color: #64748b;
  font-size: 0.68rem;
}

#modalFornecedorFuncionarioCadastro .modal-smart-cards--commissions .modal-smart-fields--commissions {
  grid-template-columns: repeat(3, minmax(120px, 1fr));
  align-items: end;
  gap: 0.75rem;
  padding: 0.75rem;
}

#modalFornecedorFuncionarioCadastro .modal-smart-cards--commissions .modal-smart-fields--commissions.is-inherited {
  background: #fbfcfe;
}

#modalFornecedorFuncionarioCadastro .modal-smart-cards--commissions .modal-smart-fields--commissions input {
  width: 100%;
  min-height: 34px;
  padding: 0.35rem 0.45rem;
}

#modalFornecedorFuncionarioCadastro .modal-smart-cards--commissions .modal-smart-fields--commissions input:disabled {
  border-color: #e2e8f0;
  background: #f1f5f9;
  color: #94a3b8;
  opacity: 1;
}

#modalFornecedorFuncionarioCadastro .modal-smart-cards--commissions .modal-smart-total {
  grid-column: span 2;
  min-height: 59px;
  padding: 0.55rem 0.7rem;
}

@media (max-width: 767.98px) {
  #modalFornecedorFuncionarioCadastro .modal-smart-cards--commissions .modal-smart-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  #modalFornecedorFuncionarioCadastro .modal-smart-cards--commissions .modal-smart-fields--commissions {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.65rem;
  }

  #modalFornecedorFuncionarioCadastro .modal-smart-cards--commissions .modal-smart-total {
    grid-column: 1 / -1;
  }
}
/* Jogos / Roleta */
.jogos-page{display:grid;gap:14px}.jogos-catalogo{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.jogo-card{position:relative;display:flex;align-items:center;gap:14px;min-height:116px;padding:18px;border:1px solid #dbe3ef;border-radius:16px;background:#fff;box-shadow:0 8px 24px rgba(15,23,42,.04)}.jogo-card.is-selected{border-color:color-mix(in srgb,var(--ss-action-bg) 30%,#dbe3ef);box-shadow:inset 4px 0 var(--ss-action-bg),0 8px 24px rgba(15,23,42,.05)}.jogo-card.is-coming{opacity:.66}.jogo-card-icon{display:grid;place-items:center;width:58px;height:58px;border-radius:18px;background:color-mix(in srgb,var(--ss-action-bg) 12%,#fff);color:var(--ss-action-bg);font-size:27px;flex:0 0 auto}.jogo-card-copy{min-width:0}.jogo-card-copy>span{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:var(--ss-action-bg)}.jogo-card-copy h2{margin:2px 0 4px;font-size:18px}.jogo-card-copy p{margin:0;color:#64748b;font-size:12px}.jogo-status{position:absolute;right:14px;top:14px;padding:4px 9px;border-radius:999px;background:#f1f5f9;color:#64748b;font-size:10px;font-weight:800}.jogo-status.is-on{background:#dcfce7;color:#15803d}.jogos-workspace{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(300px,.7fr);gap:14px;align-items:start}.roleta-config{display:grid;gap:12px}.roleta-ativacao{display:flex;align-items:center;justify-content:space-between;gap:18px}.roleta-ativacao>div{display:flex;align-items:center;gap:11px}.roleta-ativacao strong,.roleta-ativacao small{display:block}.roleta-ativacao small{margin-top:2px;color:#64748b;font-size:11px}.roleta-section-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:#eef2ff;color:var(--ss-action-bg)}.roleta-card-head,.roleta-card-head>div{display:flex;align-items:center;justify-content:space-between;gap:10px}.roleta-card-head>div>span:last-child strong,.roleta-card-head>div>span:last-child small{display:block}.roleta-card-head small{font-size:11px;color:#64748b}.roleta-premios-list{display:grid;gap:8px;margin-top:13px}.roleta-premio-row{display:grid;grid-template-columns:8px minmax(150px,1fr) 130px 110px 34px;gap:8px;align-items:end;padding:10px;border:1px solid #e4e9f1;border-radius:12px;background:#f8fafc}.roleta-premio-cor{width:8px;height:38px;border-radius:8px;align-self:end}.roleta-premio-row label{display:grid;gap:3px;min-width:0}.roleta-premio-row label>span{font-size:9px;font-weight:800;text-transform:uppercase;color:#64748b}.roleta-premio-row input,.roleta-premio-row select{width:100%;height:34px;border:1px solid #cbd5e1;border-radius:8px;background:#fff;padding:0 9px;font-size:12px}.roleta-premio-row label>div{display:flex}.roleta-premio-row label>div input{border-radius:8px 0 0 8px}.roleta-premio-row label>div b{display:grid;place-items:center;min-width:28px;border:1px solid #cbd5e1;border-left:0;border-radius:0 8px 8px 0;background:#fff;color:#64748b;font-size:11px}.roleta-premio-row button[data-remover]{width:30px;height:34px;border:0;border-radius:8px;background:#fee2e2;color:#dc2626}.roleta-premio-valor.is-hidden{visibility:hidden}.roleta-chance-total{display:flex;justify-content:flex-end;gap:8px;margin-top:10px;font-size:11px;color:#64748b}.roleta-chance-total strong{color:#dc2626}.roleta-chance-total.is-valid strong{color:#15803d}.roleta-security-note{display:flex;gap:10px;padding:12px 14px;border:1px solid #bfdbfe;border-radius:12px;background:#eff6ff;color:#1e40af}.roleta-security-note>i{margin-top:2px}.roleta-security-note strong,.roleta-security-note small{display:block}.roleta-security-note small{margin-top:2px;font-size:11px;color:#3b5998}.roleta-preview-card{position:sticky;top:76px;display:grid;gap:14px;padding:18px;border:1px solid #dbe3ef;border-radius:16px;background:#fff;box-shadow:0 10px 30px rgba(15,23,42,.06)}.roleta-preview-head span,.roleta-preview-head strong,.roleta-preview-head small{display:block}.roleta-preview-head span{font-size:10px;font-weight:800;text-transform:uppercase;color:var(--ss-action-bg)}.roleta-preview-head strong{font-size:16px}.roleta-preview-head small{font-size:11px;color:#64748b}.roleta-preview-stage{position:relative;display:grid;place-items:center;padding:12px}.roleta-pointer{position:absolute;z-index:2;top:-1px;color:#111827;font-size:30px;filter:drop-shadow(0 2px 1px #fff)}.roleta-wheel-container{position:relative;width:min(260px,68vw);aspect-ratio:1;border:8px solid #fff;border-radius:50%;box-shadow:0 0 0 4px #1f2937,0 12px 28px rgba(15,23,42,.2);overflow:hidden}.roleta-wheel-container canvas{display:block}.roleta-wheel-hub{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:grid;place-items:center;width:42%;aspect-ratio:1;border:5px solid rgba(255,255,255,.8);border-radius:50%;background:#fff;text-align:center;box-shadow:0 5px 18px rgba(15,23,42,.18);padding:8px;pointer-events:none}.roleta-wheel-hub i{color:var(--ss-action-bg);font-size:22px}.roleta-wheel-hub span{font-size:10px;font-weight:800;line-height:1.2}.ss-confete-camada{position:fixed;inset:0;pointer-events:none;z-index:9999;overflow:hidden}.ss-confete{position:absolute;top:-14px;width:8px;height:14px;border-radius:2px;opacity:.95;animation-name:ss-confete-cair;animation-timing-function:cubic-bezier(.35,.6,.4,1);animation-fill-mode:forwards}@keyframes ss-confete-cair{0%{transform:translate(0,0) rotate(0deg);opacity:1}100%{transform:translate(var(--drift,0px),108vh) rotate(var(--rot,360deg));opacity:.25}}.roleta-preview-legenda{display:flex;flex-wrap:wrap;gap:6px}.roleta-preview-legenda span{display:flex;align-items:center;gap:5px;padding:4px 7px;border-radius:999px;background:#f8fafc;font-size:9px;color:#475569}.roleta-preview-legenda i{width:8px;height:8px;border-radius:50%}.roleta-metricas{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:0}.roleta-metricas div{padding:9px;border-radius:10px;background:#f8fafc}.roleta-metricas dt{font-size:9px;text-transform:uppercase;color:#64748b}.roleta-metricas dd{margin:1px 0 0;font-size:11px;font-weight:800}.roleta-preview-card>.btn{width:100%}
@media(max-width:1050px){.jogos-workspace{grid-template-columns:1fr}.roleta-preview-card{position:static}.roleta-premio-row{grid-template-columns:8px 1fr 90px}.roleta-premio-row .roleta-premio-chance{grid-column:3/4}.roleta-premio-row button[data-remover]{grid-column:3/4;justify-self:end}.roleta-preview-card{max-width:620px}}
@media(max-width:700px){.jogos-catalogo{grid-template-columns:1fr}.roleta-ativacao{align-items:flex-start}.roleta-premio-row{grid-template-columns:8px 1fr 72px}.roleta-card-head{align-items:flex-start;flex-direction:column}.roleta-premio-row label:nth-of-type(1){grid-column:2/4}.roleta-premio-row .roleta-premio-valor{grid-column:2/3}.roleta-premio-row .roleta-premio-chance{grid-column:2/3}.roleta-premio-row button[data-remover]{grid-column:3/4}.roleta-ativacao>div{align-items:flex-start}}
/* Carregamento localizado dos gráficos: mantém o painel utilizável enquanto os dados chegam. */
.ss-chart-loading-host {
  position: relative !important;
  isolation: isolate;
}

.ss-chart-loading-host.is-chart-loading canvas {
  opacity: .22;
  transition: opacity .16s ease;
}

.ss-chart-loading-overlay {
  position: absolute;
  inset: 0;
  z-index: 8;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: .65rem;
  min-height: 116px;
  border-radius: inherit;
  background: linear-gradient(145deg, rgba(255,255,255,.9), rgba(244,247,252,.82));
  color: #53627a;
  backdrop-filter: blur(1.5px);
}

.ss-chart-loading-overlay[hidden] {
  display: none !important;
}

.ss-chart-loading-spinner {
  width: 30px;
  height: 30px;
  border: 3px solid rgba(49, 87, 213, .18);
  border-top-color: #3157d5;
  border-radius: 50%;
  animation: ssChartLoadingSpin .72s linear infinite;
  box-shadow: 0 0 0 5px rgba(49, 87, 213, .05);
}

.ss-chart-loading-text {
  font-size: .73rem;
  font-weight: 750;
  letter-spacing: .01em;
}

@keyframes ssChartLoadingSpin {
  to { transform: rotate(360deg); }
}

@media (prefers-reduced-motion: reduce) {
  .ss-chart-loading-spinner { animation-duration: 1.8s; }
  .ss-chart-loading-host.is-chart-loading canvas { transition: none; }
}
/* Programação de preços e combos por quantidade */
.catalogo-promocoes-toolbar {
  display: grid;
  grid-template-columns: minmax(260px, 1fr) minmax(180px, 240px) minmax(150px, 200px) auto;
  gap: 8px;
  align-items: center;
}

.catalogo-promocoes-status-switch {
  display: flex;
  min-height: 32px;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 4px 9px;
  border: 1px solid #d9e2ef;
  border-radius: 7px;
  background: #fff;
  color: #334155;
  font-size: 12px;
  font-weight: 700;
}

.catalogo-promocoes-ajuda {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 14px;
  border-bottom: 1px solid var(--ss-border, #d9e1ee);
  color: #66738a;
  font-size: 12px;
}

.catalogo-promocoes-table-wrap { min-height: 0; }
.catalogo-promocoes-table .ss-table-row { min-height: 58px; }

.catalogo-promocoes-cards-scroll {
  min-height: 0;
}

.catalogo-promocao-produtos-grid {
  grid-template-columns: 1fr;
}

.catalogo-promocao-item-card > summary {
  min-height: 62px;
}

.catalogo-promocao-item-resumo {
  grid-template-columns: minmax(0, auto) max-content 14px;
}

.catalogo-promocao-item-resumo-info {
  display: flex;
  min-width: 0;
  align-items: center;
  justify-content: flex-end;
  gap: .55rem;
}

.catalogo-promocao-combo-ativo-resumo {
  margin: 0;
  white-space: nowrap;
}

.catalogo-promocao-combo-ativo-acao {
  padding: 2px;
  border: 0;
  border-radius: 7px;
  background: transparent;
}

.catalogo-promocao-combo-ativo-acao:focus-visible {
  outline: 2px solid var(--ss-control-focus, var(--ss-action-bg));
  outline-offset: 2px;
}

.catalogo-promocao-adicionar-resumo {
  min-height: 30px;
  white-space: nowrap;
}

.catalogo-promocao-item-status {
  color: #8b5a19;
  background: #fff8e9 !important;
}

.catalogo-promocao-item-status.is-active {
  color: #13744a;
  background: #eefaf4 !important;
}

.catalogo-promocao-item-body {
  padding: .7rem;
}

.catalogo-promocao-inline-editor {
  display: grid;
  gap: 10px;
}

.catalogo-promocao-inline-head,
.catalogo-promocao-inline-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.catalogo-promocao-inline-head > div {
  display: grid;
  gap: 2px;
}

.catalogo-promocao-inline-head small {
  color: #6e7b91;
  font-size: 11px;
}

.catalogo-promocao-inline-footer {
  justify-content: flex-end;
  padding-top: 10px;
  border-top: 1px solid #e0e7f0;
}

.catalogo-promocao-produto {
  display: flex;
  align-items: center;
  min-width: 0;
  gap: 9px;
}

.catalogo-promocao-produto img,
.catalogo-promocao-produto-placeholder {
  width: 40px;
  height: 40px;
  flex: 0 0 40px;
  border-radius: 8px;
  border: 1px solid #dbe3ef;
  object-fit: cover;
  background: #f2f5f9;
}

.catalogo-promocao-produto-placeholder {
  display: grid;
  place-items: center;
  color: #8491a7;
}

.catalogo-promocao-produto > span:last-child,
.catalogo-promocao-resumo,
.catalogo-promocao-atendimentos {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 2px;
}

.catalogo-promocao-produto strong {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.catalogo-promocao-produto small,
.catalogo-promocao-resumo small,
.catalogo-promocao-atendimentos small { color: #748199; }

.catalogo-promocao-status {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  color: #7c8799;
  font-weight: 700;
  font-size: 12px;
}

.catalogo-promocao-status.is-active { color: #168552; }
.catalogo-promocao-atendimentos { text-align: center; }
.catalogo-promocao-atendimentos strong { color: #27364c; }

.catalogo-promocao-periodos {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
}

.catalogo-promocao-periodos span {
  padding: 3px 6px;
  border: 1px solid #dce4f0;
  border-radius: 6px;
  background: #f7f9fc;
  font-size: 11px;
}

.catalogo-promocao-periodos small { align-self: center; color: #68758b; }
.catalogo-promocoes-modal .modal-body { padding: 12px; background: #f7f9fc; }

.catalogo-promocao-modal-produto,
.catalogo-promocao-combo-head,
.catalogo-promocao-bloco,
.catalogo-programacao-regra {
  padding: 12px;
  border: 1px solid #d9e2ef;
  border-radius: 10px;
  background: #fff;
}

.catalogo-promocao-modal-produto { margin-bottom: 10px; }
.catalogo-promocao-modal-produto--actions,
.catalogo-promocao-combo-head,
.catalogo-programacao-regra > header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.catalogo-promocao-combo-head { margin-bottom: 10px; }
.catalogo-promocao-combo-head > div,
.catalogo-programacao-regra > header > div:first-child {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.catalogo-promocao-combo-head small { color: #6e7b91; }

.catalogo-promocao-form-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(130px, 1fr));
  gap: 10px;
  padding: 12px;
  margin-bottom: 10px;
  border: 1px solid #d9e2ef;
  border-radius: 10px;
  background: #fff;
}

.catalogo-promocao-form-grid label,
.catalogo-promocao-regra-escopos {
  display: flex;
  flex-direction: column;
  gap: 4px;
  font-size: 12px;
  font-weight: 600;
  color: #334155;
}

.catalogo-promocao-bloco { margin-top: 10px; }
.catalogo-promocao-bloco-title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 8px;
}

.catalogo-promocao-bloco-title small { color: #78859a; }
.catalogo-promocao-opcao-longa {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.catalogo-promocao-opcao-longa > span:first-child {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.catalogo-promocao-opcao-longa small { color: #748199; }

.catalogo-promocao-dias {
  display: grid;
  grid-template-columns: repeat(7, minmax(74px, 1fr));
  gap: 6px;
}

.catalogo-promocao-dias > label,
.catalogo-promocao-escopos section > div > label {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 7px;
  min-height: 34px;
  padding: 5px 8px;
  border: 1px solid #e0e6f0;
  border-radius: 7px;
  background: #fbfcfe;
  font-size: 12px;
  font-weight: 600;
}

.catalogo-promocao-escopos {
  display: grid;
  grid-template-columns: minmax(0, 3fr) minmax(0, 5fr);
  gap: 8px;
}

.catalogo-promocao-escopos section {
  overflow: hidden;
  border: 1px solid #dfe6f1;
  border-radius: 8px;
}

.catalogo-promocao-escopos section > header {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 6px 8px;
  background: #f0f4fa;
  color: #2c4772;
  font-size: 11px;
}

.catalogo-promocao-escopos section > div {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(105px, 1fr));
  gap: 5px;
  padding: 6px;
}

.catalogo-programacoes-lista {
  display: grid;
  gap: 10px;
}

.catalogo-programacao-regra { padding: 0; }
.catalogo-programacao-regra > summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  min-height: 48px;
  padding: 9px 12px;
  cursor: pointer;
  list-style: none;
  background: #fbfcfe;
}

.catalogo-programacao-regra > summary::-webkit-details-marker { display: none; }
.catalogo-programacao-regra[open] > summary { border-bottom: 1px solid #dfe6f1; background: #f4f7fb; }
.catalogo-programacao-resumo-main,
.catalogo-programacao-resumo-meta {
  display: flex;
  align-items: center;
  min-width: 0;
  gap: 8px;
}

.catalogo-programacao-resumo-main { flex: 1 1 auto; }
.catalogo-programacao-resumo-main > i { color: #718198; font-size: 11px; transition: transform .16s ease; }
.catalogo-programacao-regra[open] .catalogo-programacao-resumo-main > i { transform: rotate(180deg); }
.catalogo-programacao-resumo-main strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.catalogo-programacao-resumo-meta { flex: 0 0 auto; }
.catalogo-programacao-resumo-meta > span {
  padding: 3px 7px;
  border: 1px solid #dce4ef;
  border-radius: 999px;
  color: #5f6e84;
  background: #fff;
  font-size: 11px;
  font-weight: 700;
  white-space: nowrap;
}

.catalogo-programacao-resumo-status { color: #8b5a19 !important; background: #fff8e9 !important; border-color: #efd9ac !important; }
.catalogo-programacao-resumo-status.is-active { color: #13744a !important; background: #eefaf4 !important; border-color: #bde6d0 !important; }
.catalogo-programacao-regra-body { padding: 10px; }
.catalogo-programacao-resumo-switch {
  flex: 0 0 auto;
  min-height: 28px;
  margin: 0;
  padding: 2px 5px;
  border: 1px solid #dce4ef;
  border-radius: 7px;
  background: #fff;
  color: #475569;
  font-size: 11px;
  font-weight: 700;
  white-space: nowrap;
}
.catalogo-programacao-resumo-excluir {
  min-height: 28px;
  padding: 3px 8px;
  white-space: nowrap;
}
.catalogo-promocao-form-grid--programacao { grid-template-columns: minmax(180px, 1.35fr) repeat(4, minmax(120px, 1fr)); }
.catalogo-programacao-regra-escopos { margin-top: 8px; }
.catalogo-programacao-regra.is-disabled { border-color: #e2dfd7; }

/* Hierarquia visual das centrais de promoções: categoria > produto > configuração. */
.catalogo-promocoes-cards-scroll {
  background: #f8fafc;
}

.catalogo-promocao-produtos-grid {
  gap: .6rem;
  padding: .65rem;
  background: #f5f7fa;
}

.catalogo-promocao-item-card {
  border-color: #d2dcea;
  border-left: 3px solid #91a5c2;
  border-radius: 9px;
  box-shadow: 0 2px 8px rgba(35, 55, 85, .04);
}

.catalogo-promocao-item-card > summary {
  background: #fff;
}

.catalogo-promocao-item-card[open] {
  border-color: #d2dcea;
  border-left-color: #91a5c2;
  box-shadow: 0 4px 12px rgba(35, 55, 85, .06);
}

.catalogo-promocao-item-card[open] > summary {
  border-bottom-color: #d5deeb;
  background: #fff;
}

.catalogo-promocao-produto-imagem {
  width: 46px;
  height: 46px;
  flex-basis: 46px;
  border: 1px solid #cad6e7;
  background: #e8eef7;
}

.catalogo-promocao-produto-imagem:not(.is-empty) {
  cursor: zoom-in;
}

.catalogo-promocao-produto-imagem.ssapps-image-thumbnail {
  border: 1px solid #cad6e7;
}

.catalogo-promocao-produto-imagem:hover {
  border-color: #3157a4;
  box-shadow: 0 0 0 3px rgba(49, 87, 164, .14);
}

.catalogo-promocao-item-body {
  border-top: 1px solid #d5deeb;
  background: #fff;
}

.catalogo-promocao-inline-editor {
  gap: 8px;
  padding: 0;
}

.catalogo-promocao-inline-head {
  padding: 7px 9px;
  border: 1px solid #d9e2ed;
  border-radius: 7px;
  background: #fff;
}

.catalogo-promocao-secao {
  --promocao-secao-cor: #8295b1;
  border-color: #d9e2ed !important;
  border-left: 3px solid var(--promocao-secao-cor) !important;
  background: #fff !important;
}

.catalogo-promocao-secao--dias { --promocao-secao-cor: #9886ac; }
.catalogo-promocao-secao--escopos { --promocao-secao-cor: #759687; }

.catalogo-promocao-secao > .catalogo-promocao-bloco-title > strong,
.catalogo-promocao-secao--principal > div > strong {
  color: #334155;
}

.catalogo-promocao-inline-editor .catalogo-promocao-combo-head {
  min-height: 42px;
  padding: 7px 9px;
  margin-bottom: 0;
  border-color: #d9e2ed;
  border-left: 3px solid #8295b1;
  border-radius: 7px;
  background: #fff;
}

.catalogo-promocao-inline-editor > .catalogo-promocao-form-grid {
  padding: 8px 9px;
  margin-bottom: 0;
  border-color: #d9e2ed;
  border-radius: 7px;
  background: #fff;
}

.catalogo-promocao-form-grid--combo {
  grid-template-columns: minmax(120px, 1fr) minmax(120px, 1fr) minmax(115px, .85fr) minmax(115px, .85fr) minmax(230px, 1.25fr);
  align-items: end;
}

.catalogo-promocao-distribuicao-inline {
  min-width: 0;
}

.catalogo-promocao-switch-campo {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  min-height: 31px;
  padding: 4px 7px;
  border: 1px solid #dfe5ee;
  background: #f8fafc;
}

.catalogo-promocao-switch-campo > strong {
  overflow: hidden;
  color: #475569;
  font-size: 11px;
  font-weight: 650;
  line-height: 1.15;
  text-overflow: ellipsis;
}

.catalogo-promocao-inline-editor > .catalogo-promocao-bloco {
  padding: 8px 9px;
  margin-top: 0;
  border-radius: 7px;
}

.catalogo-promocao-inline-editor .catalogo-promocao-bloco-title {
  margin-bottom: 6px;
}

.catalogo-promocao-dias > label {
  min-height: 30px;
  padding: 3px 7px;
  border-color: #e0e5ed;
  background: #fff;
}

.catalogo-promocao-escopos section:first-child {
  border-color: #bfd6ee;
}

.catalogo-promocao-escopos section:first-child > header {
  background: #f3f7fb;
  color: #4d657e;
}

.catalogo-promocao-escopos section:last-child {
  border-color: #d5c6ea;
}

.catalogo-promocao-escopos section:last-child > header {
  background: #f7f4fa;
  color: #695b78;
}

.catalogo-programacao-regra {
  overflow: hidden;
  border: 1px solid #d9e2ed;
  border-radius: 9px;
  background: #fff;
  box-shadow: 0 2px 7px rgba(36, 52, 75, .08);
}

.catalogo-programacao-regra > summary {
  background: #fff;
}

.catalogo-programacao-regra[open] > summary {
  background: #f8fafc;
}

.catalogo-programacao-regra-body {
  background: #fff;
}

.catalogo-promocao-inline-footer {
  margin-top: 2px;
  padding: 10px 2px 0;
}

@media (max-width: 900px) {
  .catalogo-promocoes-toolbar { grid-template-columns: 1fr 1fr; }
  .catalogo-promocoes-toolbar .produtos-busca { grid-column: 1 / -1; }
  .catalogo-promocao-form-grid { grid-template-columns: repeat(2, minmax(130px, 1fr)); }
  .catalogo-promocao-form-grid--programacao { grid-template-columns: repeat(2, minmax(130px, 1fr)); }
  .catalogo-promocao-form-grid--combo { grid-template-columns: repeat(2, minmax(150px, 1fr)); }
  .catalogo-promocao-distribuicao-inline { grid-column: 1 / -1; }
  .catalogo-promocao-dias { grid-template-columns: repeat(4, minmax(74px, 1fr)); }
  .catalogo-programacao-regra > summary { align-items: flex-start; flex-direction: column; }
  .catalogo-programacao-resumo-meta { flex-wrap: wrap; }
  .catalogo-promocao-item-resumo { grid-template-columns: minmax(0, 1fr) max-content 14px; }
  .catalogo-promocao-item-resumo-info { justify-content: flex-start; }
}

@media (max-width: 600px) {
  .catalogo-promocoes-toolbar,
  .catalogo-promocao-form-grid,
  .catalogo-promocao-escopos { grid-template-columns: 1fr; }
  .catalogo-promocoes-toolbar .produtos-busca { grid-column: auto; }
  .catalogo-promocao-dias { grid-template-columns: repeat(2, minmax(74px, 1fr)); }
  .catalogo-promocao-form-grid--combo { grid-template-columns: 1fr; }
  .catalogo-promocao-distribuicao-inline { grid-column: auto; }
  .catalogo-promocao-item-resumo { grid-template-columns: minmax(0, 1fr) 14px; }
  .catalogo-promocao-adicionar-resumo { grid-column: 1 / -1; grid-row: 2; width: 100%; }
  .catalogo-promocao-modal-produto--actions,
  .catalogo-promocao-combo-head,
  .catalogo-promocao-inline-head { align-items: flex-start; flex-direction: column; }
  .catalogo-promocao-inline-head .btn { width: 100%; }
}

/* Suite nativa de gestao de campanhas Meta Ads. */
.meta-ads-page{display:grid;gap:14px;max-width:1600px;margin:0 auto}.meta-ads-head{display:flex;align-items:flex-end;justify-content:space-between;gap:18px}.meta-ads-head h1{display:flex;align-items:center;gap:9px;margin:3px 0 2px;font-size:1.45rem;color:#111827}.meta-ads-head h1 i{color:#0866ff}.meta-ads-head p{margin:0;color:#64748b;font-size:.84rem}.meta-ads-head-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:7px}.meta-connection-banner{display:flex;align-items:center;gap:12px;padding:12px 14px;border:1px solid #dbe5f3;border-radius:14px;background:#fff}.meta-connection-banner>div{display:grid;min-width:0}.meta-connection-banner small{color:#64748b}.meta-connection-banner .integration-status{margin-left:auto}.meta-connection-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:11px;background:#dbeafe;color:#0866ff;font-size:1.2rem}.meta-connection-banner.is-expirado{border-color:#fed7aa;background:#fffaf3}.meta-connection-banner.is-expirado .meta-connection-icon{background:#ffedd5;color:#c2410c}.meta-connection-banner.is-desconectado,.meta-connection-banner.is-nao_configurado{background:#f8fafc}.meta-ads-setup-alert{margin:0;font-size:.82rem}.meta-ads-toolbar{display:grid;grid-template-columns:max-content 138px 138px minmax(230px,1fr) max-content;align-items:end;gap:10px;padding:12px}.meta-ads-toolbar label{display:grid;gap:4px;color:#64748b;font-size:.72rem;font-weight:700}.meta-period-presets{display:flex;gap:5px;align-items:center}.meta-metrics-grid{display:grid;grid-template-columns:repeat(7,minmax(125px,1fr));gap:10px}.meta-metric-card{display:flex;align-items:center;gap:10px;padding:13px;min-width:0}.meta-metric-card>span{display:grid;place-items:center;width:34px;height:34px;flex:0 0 34px;border-radius:10px;background:#eef4ff;color:#2563eb}.meta-metric-card>div{display:grid;min-width:0}.meta-metric-card small{color:#64748b;font-size:.68rem;font-weight:700;text-transform:uppercase}.meta-metric-card strong{overflow:hidden;text-overflow:ellipsis;color:#0f172a;font-size:1.03rem}.meta-dashboard-grid{display:grid;grid-template-columns:minmax(0,2.25fr) minmax(250px,.75fr);gap:12px}.meta-chart-panel,.meta-account-panel,.meta-campaigns-panel,.meta-google-card{padding:15px}.meta-panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.meta-panel-head small{display:block;color:#64748b;font-size:.69rem;font-weight:700;text-transform:uppercase}.meta-panel-head h2{margin:1px 0 0;color:#172033;font-size:1rem}.meta-panel-head>span{color:#64748b;font-size:.75rem}.meta-chart-wrap{position:relative;height:280px}.meta-empty-overlay{position:absolute;inset:0;display:grid;place-items:center;color:#94a3b8;font-size:.82rem;background:#fff}.meta-account-panel .meta-panel-head>i{font-size:1.45rem;color:#0866ff}.meta-account-panel dl{display:grid;gap:8px;margin:0}.meta-account-panel dl div{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 0;border-bottom:1px solid #eef2f7}.meta-account-panel dt{color:#64748b;font-size:.75rem}.meta-account-panel dd{margin:0;color:#1e293b;font-size:.78rem;font-weight:700;text-align:right;overflow-wrap:anywhere}.meta-account-note{display:block;margin-top:12px;color:#94a3b8;font-size:.7rem;line-height:1.45}.meta-campaign-list{display:grid;gap:9px}.meta-campaign-card{border:1px solid #e3eaf4;border-radius:13px;background:#fff;overflow:hidden}.meta-campaign-main,.meta-campaign-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 13px}.meta-campaign-title{display:flex;align-items:center;gap:9px;min-width:0}.meta-campaign-title>div{display:grid;min-width:0}.meta-campaign-title strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#172033;font-size:.86rem}.meta-campaign-title small{color:#64748b;font-size:.69rem}.meta-status-dot{width:9px;height:9px;flex:0 0 9px;border-radius:50%;background:#94a3b8}.meta-status-dot.is-active{background:#16a34a;box-shadow:0 0 0 4px #dcfce7}.meta-status-dot.is-paused,.meta-status-dot.is-campaign_paused{background:#f59e0b}.meta-status-pill{padding:4px 8px;border-radius:999px;background:#f1f5f9;color:#64748b;font-size:.67rem;font-weight:800;white-space:nowrap}.meta-status-pill.is-active{background:#dcfce7;color:#15803d}.meta-status-pill.is-paused{background:#fff7ed;color:#c2410c}.meta-campaign-stats{display:grid;grid-template-columns:repeat(6,minmax(90px,1fr));border-block:1px solid #eef2f7;background:#f8fafc}.meta-campaign-stats span{display:grid;gap:2px;padding:9px 13px;border-right:1px solid #eef2f7}.meta-campaign-stats span:last-child{border-right:0}.meta-campaign-stats small{color:#64748b;font-size:.65rem}.meta-campaign-stats strong{font-size:.78rem;color:#1e293b}.meta-campaign-footer{padding-block:8px}.meta-campaign-footer>span{color:#64748b;font-size:.69rem}.meta-campaign-empty{display:flex;align-items:center;justify-content:center;gap:9px;min-height:120px;border:1px dashed #dbe3ef;border-radius:12px;color:#94a3b8;font-size:.82rem}.meta-google-card{max-width:520px}.modal-header-unidade>div small{display:block;color:rgba(255,255,255,.72);font-size:.66rem;text-transform:uppercase}.modal-header-unidade>div h5{margin:0}.meta-campaign-builder{display:grid;gap:12px}.meta-campaign-builder>section{padding:13px;border:1px solid #e3eaf4;border-radius:13px;background:#f9fbfe}.meta-campaign-builder h6{display:flex;align-items:center;gap:8px;margin:0 0 12px;color:#1e293b}.meta-campaign-builder h6>span{display:grid;place-items:center;width:25px;height:25px;border-radius:8px;background:#2563eb;color:#fff;font-size:.72rem}.meta-creative-grid{display:grid;grid-template-columns:minmax(220px,330px) minmax(0,1fr);gap:13px}.meta-creative-image{display:grid;place-items:center;min-height:210px;border:1px dashed #93a4ba;border-radius:12px;background:#fff center/cover no-repeat;color:#64748b}.meta-creative-image span{display:grid;justify-items:center;gap:7px;padding:12px;border-radius:10px;background:rgba(255,255,255,.9)}.meta-creative-image i{font-size:1.4rem}.meta-creative-image.has-image span{display:none}
@media(max-width:1250px){.meta-metrics-grid{grid-template-columns:repeat(4,minmax(125px,1fr))}.meta-campaign-stats{grid-template-columns:repeat(3,1fr)}.meta-campaign-stats span:nth-child(3){border-right:0}}
@media(max-width:900px){.meta-ads-head{align-items:flex-start;flex-direction:column}.meta-ads-head-actions{justify-content:flex-start}.meta-ads-toolbar{grid-template-columns:1fr 1fr}.meta-period-presets,.meta-account-field{grid-column:1/-1}.meta-dashboard-grid{grid-template-columns:1fr}.meta-metrics-grid{grid-template-columns:repeat(2,minmax(120px,1fr))}.meta-creative-grid{grid-template-columns:1fr}.meta-creative-image{min-height:240px}}
@media(max-width:600px){.meta-ads-head-actions,.meta-ads-head-actions .btn{width:100%}.meta-connection-banner{align-items:flex-start;flex-wrap:wrap}.meta-connection-banner .integration-status{margin-left:0}.meta-ads-toolbar{grid-template-columns:1fr}.meta-period-presets,.meta-account-field{grid-column:auto}.meta-period-presets{display:grid;grid-template-columns:repeat(3,1fr)}.meta-metrics-grid{grid-template-columns:1fr 1fr}.meta-campaign-main,.meta-campaign-footer{align-items:flex-start;flex-direction:column}.meta-campaign-stats{grid-template-columns:repeat(2,1fr)}.meta-campaign-stats span,.meta-campaign-stats span:nth-child(3){border-right:1px solid #eef2f7}.meta-campaign-stats span:nth-child(even){border-right:0}.meta-campaign-footer .btn{width:100%}.meta-chart-wrap{height:240px}}

/* Meta Ads e Google Ads seguem a mesma moldura, margens e paddings dos demais módulos de Divulgação. */
.ads-suite-page.meta-ads-page,
.campanhas-suite-page.google-campanhas-page {
  display: flex;
  flex-direction: column;
  gap: 0;
  max-width: none;
  margin: 0;
  overflow-x: hidden;
  overflow-y: auto;
}

.ads-suite-content,
.campanhas-suite-content {
  display: grid;
  gap: 0.875rem;
  min-width: 0;
}

.ads-suite-head-actions,
.campanhas-suite-head-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 0.45rem;
}

.google-connection-icon {
  background: #e8f0fe;
  color: #4285f4;
}

.google-account-panel .meta-panel-head > i {
  color: #4285f4;
}

.meta-connection-banner.is-restrito {
  border-color: #facc15;
  background: #fffbeb;
}

.meta-connection-banner.is-restrito .google-connection-icon {
  background: #fef3c7;
  color: #a16207;
}

@media (max-width: 991.98px) {
  .ads-suite-head-actions,
  .campanhas-suite-head-actions {
    justify-content: flex-start;
  }
}

@media (max-width: 575.98px) {
  .ads-suite-page.meta-ads-page,
  .campanhas-suite-page.google-campanhas-page {
    overflow-y: auto;
  }

  .ads-suite-head-actions,
  .ads-suite-head-actions .btn,
  .campanhas-suite-head-actions,
  .campanhas-suite-head-actions .btn {
    width: 100%;
  }
}
