/**
 * GetMenu × Front Dashboard — marca laranja + tokens claro/escuro
 * Remapeia Primary/Warning para #f58220; texto/fundo via vars (data-hs-theme).
 */
:root {
  --gm-orange: #f58220;
  --gm-orange-hover: #e36437;
  --gm-orange-deep: #c45518;
  --gm-orange-rgb: 245, 130, 32;
  --gm-nav-text: #1e2022;
  --gm-nav-hover-bg: rgba(189, 197, 209, 0.35);
  --gm-muted: #677788;
  --gm-muted-soft: #8c98a4;
  --gm-title: #1e2022;
  --gm-segment-bg: #f9fafc;
  --gm-segment-active-bg: #fff;
  --gm-row-hover: rgba(231, 234, 243, 0.7);
  --gm-row-border: rgba(231, 234, 243, 0.7);
  --gm-surface: #fff;
  --gm-bandeira-border: rgba(33, 50, 91, 0.1);
  --gm-skel-bg: #e7eaf3;

  /* Primary = laranja (mata vestígios azuis #377dff do Front) */
  --bs-primary: #f58220;
  --bs-primary-rgb: 245, 130, 32;
  --bs-link-color: #f58220;
  --bs-link-hover-color: #e36437;
  --bs-nav-link-hover-color: var(--gm-title);

  --bs-warning: #f58220;
  --bs-warning-rgb: 245, 130, 32;
  --bs-warning-text-emphasis: #9a3d0a;
  --bs-warning-bg-subtle: #fff1e6;
  --bs-warning-border-subtle: #ffd4a8;
}

html[data-hs-theme="dark"] {
  --gm-nav-text: #fff;
  --gm-nav-hover-bg: rgba(255, 255, 255, 0.06);
  --gm-muted: #91989e;
  --gm-muted-soft: #8c98a4;
  --gm-title: #fff;
  --gm-segment-bg: #2a2d30;
  --gm-segment-active-bg: #25282a;
  --gm-row-hover: rgba(255, 255, 255, 0.06);
  --gm-row-border: rgba(255, 255, 255, 0.08);
  --gm-surface: #25282a;
  --gm-bandeira-border: rgba(255, 255, 255, 0.12);
  --gm-skel-bg: rgba(255, 255, 255, 0.14);
  --bs-nav-link-hover-color: #fff;
  --bs-warning-text-emphasis: #ffd4a8;
  --bs-warning-bg-subtle: rgba(245, 130, 32, 0.16);
  --bs-warning-border-subtle: rgba(245, 130, 32, 0.35);
}

/* Links — remove azul do Front; herdam tokens */
a {
  color: var(--bs-link-color);
}
a:hover,
a:focus {
  color: var(--bs-link-hover-color);
}
a:hover .text-inherit,
a:focus .text-inherit,
a:hover .text-dark,
a:focus .text-dark,
a:hover .text-body,
a:focus .text-body {
  color: var(--gm-title) !important;
}

.navbar-vertical-aside .navbar-brand-logo,
.navbar-brand .navbar-brand-logo,
img.navbar-brand-logo {
  width: 100% !important;
  min-width: 10rem !important;
  max-width: 11rem !important;
  height: auto !important;
  max-height: none !important;
}

.navbar-vertical-aside .navbar-brand-logo-mini,
.navbar-brand .navbar-brand-logo-mini,
img.navbar-brand-logo-mini {
  width: 1.75rem !important;
  height: auto !important;
  max-width: 1.75rem !important;
  object-fit: contain;
  display: none;
}

/* Sidebar retraída: força favicon (mini) e esconde logo larga */
body.navbar-vertical-aside-mini-mode .navbar-vertical-aside .navbar-brand-logo {
  display: none !important;
}
body.navbar-vertical-aside-mini-mode .navbar-vertical-aside .navbar-brand-logo-mini {
  display: block !important;
  width: 1.75rem !important;
  max-width: 1.75rem !important;
  min-width: 0 !important;
  margin-left: auto;
  margin-right: auto;
}
body.navbar-vertical-aside-mini-mode .navbar-vertical-aside .navbar-brand {
  display: flex;
  justify-content: center;
  align-items: center;
  padding-left: 0.5rem;
  padding-right: 0.5rem;
}

/* Botões de ação */
.btn-primary {
  --bs-btn-color: #fff;
  --bs-btn-bg: var(--gm-orange);
  --bs-btn-border-color: var(--gm-orange);
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: var(--gm-orange-hover);
  --bs-btn-hover-border-color: var(--gm-orange-hover);
  --bs-btn-focus-shadow-rgb: var(--gm-orange-rgb);
  --bs-btn-active-color: #fff;
  --bs-btn-active-bg: var(--gm-orange-deep);
  --bs-btn-active-border-color: var(--gm-orange-deep);
  color: #fff !important;
  background-color: var(--gm-orange) !important;
  border-color: var(--gm-orange) !important;
}

.btn-primary:hover,
.btn-primary:focus,
.btn-primary:active {
  color: #fff !important;
  background-color: var(--gm-orange-hover) !important;
  border-color: var(--gm-orange-hover) !important;
}

.btn-warning {
  --bs-btn-color: #fff;
  --bs-btn-bg: var(--gm-orange);
  --bs-btn-border-color: var(--gm-orange);
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: var(--gm-orange-hover);
  --bs-btn-hover-border-color: var(--gm-orange-hover);
  --bs-btn-focus-shadow-rgb: var(--gm-orange-rgb);
  --bs-btn-active-color: #fff;
  --bs-btn-active-bg: var(--gm-orange-deep);
  --bs-btn-active-border-color: var(--gm-orange-deep);
  --bs-btn-disabled-color: #fff;
  --bs-btn-disabled-bg: #f5a85a;
  --bs-btn-disabled-border-color: #f5a85a;
  color: #fff !important;
  background-color: var(--gm-orange) !important;
  border-color: var(--gm-orange) !important;
}

.btn-warning:hover,
.btn-warning:focus {
  color: #fff !important;
  background-color: var(--gm-orange-hover) !important;
  border-color: var(--gm-orange-hover) !important;
}

.btn-outline-warning {
  --bs-btn-color: var(--gm-orange);
  --bs-btn-border-color: var(--gm-orange);
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: var(--gm-orange);
  --bs-btn-hover-border-color: var(--gm-orange);
  --bs-btn-active-color: #fff;
  --bs-btn-active-bg: var(--gm-orange-hover);
  --bs-btn-active-border-color: var(--gm-orange-hover);
  color: var(--gm-orange) !important;
  border-color: var(--gm-orange) !important;
}

.btn-outline-warning:hover,
.btn-outline-warning:focus,
.btn-outline-warning:active {
  color: #fff !important;
  background-color: var(--gm-orange) !important;
  border-color: var(--gm-orange) !important;
}

.btn-soft-warning {
  color: var(--gm-orange-deep) !important;
  background-color: rgba(var(--gm-orange-rgb), 0.14) !important;
  border-color: transparent !important;
}

.btn-soft-warning:hover,
.btn-soft-warning:focus {
  color: #fff !important;
  background-color: var(--gm-orange) !important;
}

/* Mantém a cor soft mesmo desabilitado (busca: Ativar/Pausar todos) */
.btn-soft-success:disabled,
.btn-soft-success.disabled {
  color: #00c9a7 !important;
  background-color: rgba(0, 201, 167, 0.1) !important;
  border-color: transparent !important;
  opacity: 1;
}

.btn-soft-warning:disabled,
.btn-soft-warning.disabled {
  color: var(--gm-orange-deep) !important;
  background-color: rgba(var(--gm-orange-rgb), 0.14) !important;
  border-color: transparent !important;
  opacity: 1;
}

/* Seletor de modo (Áreas de Entrega): hover sem azul do tema */
#appAreasEntrega .gm-modo-entrega.btn-white:hover,
#appAreasEntrega .gm-modo-entrega.btn-white:focus,
#appAreasEntrega .gm-modo-entrega.btn-white:active {
  color: var(--gm-orange-deep) !important;
  background-color: rgba(var(--gm-orange-rgb), 0.14) !important;
  border-color: rgba(var(--gm-orange-rgb), 0.35) !important;
}

#appAreasEntrega .gm-modo-entrega.btn-white:hover .text-muted,
#appAreasEntrega .gm-modo-entrega.btn-white:focus .text-muted {
  color: var(--gm-orange-deep) !important;
  opacity: 0.85;
}

#appAreasEntrega .gm-modo-entrega.btn-soft-warning:hover,
#appAreasEntrega .gm-modo-entrega.btn-soft-warning:focus,
#appAreasEntrega .gm-modo-entrega.btn-soft-warning:active {
  color: var(--gm-orange-deep) !important;
  background-color: rgba(var(--gm-orange-rgb), 0.14) !important;
  border-color: var(--gm-orange) !important;
}

/* Formas de pagamento — cards de método */
#appMetodosPag .gm-metodo-nome {
  white-space: normal;
  word-break: break-word;
  overflow-wrap: anywhere;
  line-height: 1.3;
}

#appMetodosPag .gm-metodo-card .form-check.form-switch {
  margin-top: 0.15rem;
}

#appMetodosPag .gm-metodo-card--on {
  background-color: rgba(var(--gm-orange-rgb), 0.06);
  box-shadow: none;
}

#appMetodosPag .gm-metodo-card--dim {
  opacity: 0.45;
}

#appMetodosPag .gm-bandeira {
  width: 3.15rem;
  height: 2.15rem;
  padding: 0.28rem 0.4rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--gm-bandeira-border);
  border-radius: 0.5rem;
  background: var(--gm-surface);
}

#appMetodosPag .gm-bandeira img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

/* Estoque — KPIs clicáveis (sem hover azul) */
#appEstoque .gm-estoque-kpi.btn-white:hover,
#appEstoque .gm-estoque-kpi.btn-white:focus,
#appEstoque .gm-estoque-kpi.btn-white:active {
  color: var(--gm-orange-deep) !important;
  background-color: rgba(var(--gm-orange-rgb), 0.14) !important;
  border-color: rgba(var(--gm-orange-rgb), 0.35) !important;
}

#appEstoque .gm-estoque-kpi.btn-soft-warning:hover,
#appEstoque .gm-estoque-kpi.btn-soft-warning:focus,
#appEstoque .gm-estoque-kpi.btn-soft-warning:active {
  color: var(--gm-orange-deep) !important;
  background-color: rgba(var(--gm-orange-rgb), 0.14) !important;
  border-color: var(--gm-orange) !important;
}

#appEstoque .gm-estoque-card--dirty {
  box-shadow: 0 0 0 1px rgba(var(--gm-orange-rgb), 0.35);
}

.btn-soft-danger {
  color: #ed4c78 !important;
  background-color: rgba(237, 76, 120, 0.14) !important;
  border-color: transparent !important;
}

.btn-soft-danger:hover,
.btn-soft-danger:focus {
  color: #fff !important;
  background-color: #ed4c78 !important;
}

/* Neutro por padrão; soft-XXXX só no hover */
.gm-btn-hover-soft-warning {
  color: var(--gm-muted-soft) !important;
  background-color: transparent !important;
  border-color: transparent !important;
}

.gm-btn-hover-soft-warning:hover,
.gm-btn-hover-soft-warning:focus {
  color: var(--gm-orange-deep) !important;
  background-color: rgba(var(--gm-orange-rgb), 0.14) !important;
  border-color: transparent !important;
}

.gm-btn-hover-soft-danger {
  color: var(--gm-muted-soft) !important;
  background-color: transparent !important;
  border-color: transparent !important;
}

.gm-btn-hover-soft-danger:hover,
.gm-btn-hover-soft-danger:focus {
  color: #ed4c78 !important;
  background-color: rgba(237, 76, 120, 0.14) !important;
  border-color: transparent !important;
}

/* Status modal: botões sólidos com hover padrão (escurece) */
.btn-status-danger,
.btn-status-warning,
.btn-status-dark,
.btn-status-info,
.btn-status-success {
  border: 1px solid transparent !important;
  color: #fff !important;
  transition: color 0.15s ease, background-color 0.15s ease, border-color 0.15s ease;
}

.btn-status-danger {
  background-color: #ed4c78 !important;
  border-color: #ed4c78 !important;
}
.btn-status-danger:hover,
.btn-status-danger:focus {
  color: #fff !important;
  background-color: #d6336c !important;
  border-color: #d6336c !important;
}

.btn-status-warning {
  background-color: var(--gm-orange) !important;
  border-color: var(--gm-orange) !important;
}
.btn-status-warning:hover,
.btn-status-warning:focus {
  color: #fff !important;
  background-color: var(--gm-orange-hover) !important;
  border-color: var(--gm-orange-hover) !important;
}

.btn-status-dark {
  background-color: #132144 !important;
  border-color: #132144 !important;
}
.btn-status-dark:hover,
.btn-status-dark:focus {
  color: #fff !important;
  background-color: #0d1730 !important;
  border-color: #0d1730 !important;
}

.btn-status-info {
  background-color: #09a5be !important;
  border-color: #09a5be !important;
}
.btn-status-info:hover,
.btn-status-info:focus {
  color: #fff !important;
  background-color: #078a9f !important;
  border-color: #078a9f !important;
}

.btn-status-success {
  background-color: #00c9a7 !important;
  border-color: #00c9a7 !important;
}
.btn-status-success:hover,
.btn-status-success:focus {
  color: #fff !important;
  background-color: #00a88c !important;
  border-color: #00a88c !important;
}

/* Soft badges / ícones */
.bg-soft-warning {
  background-color: rgba(var(--gm-orange-rgb), 0.16) !important;
}

.text-warning {
  color: var(--gm-orange) !important;
}

.badge.bg-warning,
.bg-warning {
  background-color: var(--gm-orange) !important;
  color: #fff !important;
}

.icon-soft-warning {
  color: var(--gm-orange) !important;
  background-color: rgba(var(--gm-orange-rgb), 0.14) !important;
}

.border-warning {
  border-color: var(--gm-orange) !important;
}

.form-check-input:checked,
.form-switch .form-check-input:checked,
.form-check-primary .form-check-input:checked,
.form-check-warning .form-check-input:checked {
  background-color: var(--gm-orange) !important;
  border-color: var(--gm-orange) !important;
}

.form-check-input:focus {
  border-color: rgba(var(--gm-orange-rgb), 0.55);
  box-shadow: 0 0 0 0.25rem rgba(var(--gm-orange-rgb), 0.25);
}

.form-check-input:checked:focus {
  border-color: var(--gm-orange);
  box-shadow: 0 0 0 0.25rem rgba(var(--gm-orange-rgb), 0.25);
}

.spinner-border.text-warning {
  color: var(--gm-orange) !important;
}

/* Tipografia = mesma da tela Pedidos (referência aprovada) */
:root {
  --gm-font: -apple-system, BlinkMacSystemFont, ".SFNSText-Regular", "Helvetica Neue", Roboto, "Segoe UI", sans-serif;
}

body,
.navbar-vertical,
.navbar-vertical .nav-link,
.navbar-vertical .nav-link-title,
.navbar-vertical .dropdown-header {
  font-family: var(--gm-font) !important;
}

/* ========== Menu lateral aberto (mobile): trava scroll da página ========== */
@media (max-width: 1199.98px) {
  html.gm-nav-open,
  body.gm-nav-open,
  body.has-navbar-vertical-aside:not(.navbar-vertical-aside-closed-mode) {
    overflow: hidden !important;
    overscroll-behavior: none;
  }
  body.gm-nav-open {
    position: fixed;
    width: 100%;
    left: 0;
    right: 0;
  }
}

/* ========== Menu lateral — alinhado ao Front (nav-pills vertical) ========== */
.navbar-vertical .nav-vertical.nav-pills .nav-link {
  color: var(--gm-nav-text) !important;
  background-color: transparent !important;
  font-family: var(--gm-font) !important;
  font-weight: 400;
  font-size: 0.875rem;
  letter-spacing: normal;
}

.navbar-vertical .nav-vertical.nav-pills .nav-link .nav-icon,
.navbar-vertical .nav-vertical.nav-pills .nav-link .nav-link-title {
  color: inherit !important;
  font-family: inherit !important;
  font-weight: inherit;
}

/* Badge de novos pedidos — alinhado à direita do item */
.navbar-vertical .nav-vertical.nav-pills .nav-item > .nav-link {
  display: flex;
  align-items: center;
  width: 100%;
}

.navbar-vertical .nav-vertical.nav-pills .nav-item > .nav-link #divContPedidos {
  margin-left: auto;
  flex-shrink: 0;
  font-size: 0.7rem;
  font-weight: 600;
  line-height: 1.2;
  min-width: 1.35rem;
  text-align: center;
}

/* Hover itens de 1º nível (inclui groups Financeiro/Loja/…) */
.navbar-vertical .nav-vertical.nav-pills .nav-item > .nav-link:hover,
.navbar-vertical .nav-vertical.nav-pills .nav-item > .nav-link:focus-visible {
  color: var(--gm-nav-text) !important;
  background-color: var(--gm-nav-hover-bg) !important;
  box-shadow: none !important;
}

/* Ativo 1º nível (ex.: Pedidos) — sem submenu aberto */
.navbar-vertical .nav-vertical.nav-pills .nav-item > .nav-link.active:not([aria-expanded]),
.navbar-vertical .nav-vertical.nav-pills .nav-item > .nav-link.active[aria-expanded="false"] {
  color: var(--gm-orange) !important;
  background-color: rgba(245, 130, 32, 0.1) !important;
  font-weight: 600;
}

.navbar-vertical .nav-vertical.nav-pills .nav-item > .nav-link.active:not([aria-expanded]) .nav-icon,
.navbar-vertical .nav-vertical.nav-pills .nav-item > .nav-link.active:not([aria-expanded]) .nav-link-title,
.navbar-vertical .nav-vertical.nav-pills .nav-item > .nav-link.active[aria-expanded="false"] .nav-icon,
.navbar-vertical .nav-vertical.nav-pills .nav-item > .nav-link.active[aria-expanded="false"] .nav-link-title {
  color: var(--gm-orange) !important;
}

/*
 * Pai com submenu aberto:
 * Front deixa transparente — NÃO usar .show > .nav-link (pintava todos os filhos)
 */
.navbar-vertical .nav-vertical.nav-pills .nav-item > .nav-link.dropdown-toggle[aria-expanded="true"],
.navbar-vertical .nav-vertical.nav-pills .nav-item.show > .nav-link.dropdown-toggle {
  color: var(--gm-nav-text) !important;
  background-color: transparent !important;
  font-weight: 600;
}

.navbar-vertical .nav-vertical.nav-pills .nav-item > .nav-link.dropdown-toggle[aria-expanded="true"]:hover,
.navbar-vertical .nav-vertical.nav-pills .nav-item.show > .nav-link.dropdown-toggle:hover {
  background-color: var(--gm-nav-hover-bg) !important;
}

/* Subitens: lista limpa + trilho do tema — fundo só no hover/ativo */
.navbar-vertical .nav-collapse .nav-link {
  color: var(--gm-nav-text) !important;
  background-color: transparent !important;
  font-weight: 400;
}

.navbar-vertical .nav-collapse .nav-link:hover,
.navbar-vertical .nav-collapse .nav-link:focus-visible {
  color: var(--gm-nav-text) !important;
  background-color: var(--gm-nav-hover-bg) !important;
  box-shadow: none !important;
}

.navbar-vertical .nav-collapse .nav-link.active,
.navbar-vertical .nav-collapse.show .nav-link.active {
  color: var(--gm-orange) !important;
  background-color: rgba(245, 130, 32, 0.1) !important;
  font-weight: 600;
}

/* Headers de seção do menu */
.navbar-vertical .dropdown-header {
  color: var(--gm-muted) !important;
}

/* Avatar soft warning (header conta) */
.avatar-soft-warning {
  background-color: rgba(var(--gm-orange-rgb), 0.16) !important;
  color: var(--gm-orange) !important;
}

.avatar-soft-warning .avatar-initials {
  color: var(--gm-orange) !important;
}

/* Pessoas na loja — mesmo layout do card do dropdown */
#navbarOnlineLive {
  line-height: 1.25;
  min-width: 0;
}

#navbarOnlineLive .icon-soft-warning {
  background-color: rgba(var(--gm-orange-rgb), 0.14) !important;
  color: var(--gm-orange) !important;
}

#navbarOnlineLive .icon-soft-warning i {
  color: var(--gm-orange) !important;
}

/* Header: evita quebra por excesso de informação no mobile */
@media (max-width: 991.98px) {
  #header.navbar .navbar-nav-wrap {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    gap: 0.5rem;
    overflow: visible;
  }

  #header.navbar .navbar-brand {
    display: flex;
    align-items: center;
    flex-shrink: 0;
    margin-right: 0;
    padding-top: 0;
    padding-bottom: 0;
  }

  #header.navbar .navbar-brand-logo {
    min-width: 0 !important;
    width: 11.5rem !important;
    max-width: 11.5rem !important;
    max-height: 3.5rem !important;
    height: auto !important;
    object-fit: contain;
  }

  #header.navbar .navbar-nav-wrap-content-start {
    display: flex;
    align-items: center;
    flex: 1 1 auto;
    min-width: 0;
    overflow: hidden;
    gap: 0.35rem;
  }

  #header.navbar .navbar-aside-toggler {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    align-self: center;
    margin-right: 0;
    padding-top: 0;
    padding-bottom: 0;
  }

  #navbarOnlineLive {
    align-items: center;
    min-height: 2rem;
  }

  #navbarOnlineLive .icon-sm {
    width: 1.75rem;
    height: 1.75rem;
  }

  #navbarOnlineLive .fw-bold {
    font-size: 0.8125rem;
    line-height: 1.2;
  }

  #header.navbar .navbar-nav-wrap-content-end {
    flex-shrink: 0;
    overflow: visible;
    position: relative;
    z-index: 1040;
    display: flex;
    align-items: center;
  }
}

@media (max-width: 575.98px) {
  #header.navbar .navbar-brand-logo {
    width: 9.5rem !important;
    max-width: 9.5rem !important;
    max-height: 3.1rem !important;
  }

  #header.navbar .navbar-nav-wrap {
    gap: 0.4rem;
  }

  #navbarOnlineLive .ms-2 {
    margin-left: 0.4rem !important;
  }

  #navbarOnlineLive .fw-bold {
    font-size: 0.75rem;
  }
}

/* Dropdown da conta: fixed na viewport — não corta na borda */
#header.navbar .navbar-nav-wrap-content-end .dropdown {
  position: static;
}

#header.navbar .navbar-dropdown-account,
#header.navbar .dropdown-menu.navbar-dropdown-account {
  position: fixed !important;
  top: 3.75rem !important;
  right: 0.75rem !important;
  left: auto !important;
  bottom: auto !important;
  transform: none !important;
  margin: 0 !important;
  width: min(16rem, calc(100vw - 1.5rem)) !important;
  max-width: calc(100vw - 1.5rem) !important;
  z-index: 1080 !important;
  overflow: hidden;
}

/* Menu ⋮ Opções do catálogo — flutuando no body, sem corte */
body > .menu-categoria.dropdown-menu,
.menu-categoria.dropdown-menu[data-gm-floating="1"] {
  position: fixed !important;
  transform: none !important;
  margin: 0 !important;
  z-index: 2100 !important;
  float: none !important;
  right: auto !important;
  bottom: auto !important;
  min-width: 12rem;
  max-width: calc(100vw - 16px);
}

.navbar-dropdown-account .dropdown-item-text .flex-grow-1,
.navbar-dropdown-account .dropdown-item-text .min-w-0 {
  min-width: 0;
  overflow: hidden;
}

.navbar-dropdown-account .text-truncate {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  max-width: 100%;
}

/* Links de formulário (login) */
a.form-label-link {
  color: var(--gm-orange) !important;
}

a.form-label-link:hover {
  color: var(--gm-orange-hover) !important;
}

/**
 * Padrão GetMenu — tipografia de listagens (mesma família do shell/Pedidos)
 * Cores via tokens (--gm-*) para claro/escuro (data-hs-theme)
 */
.card .form-label {
  font-weight: 700 !important;
  color: var(--gm-title) !important;
}

.card-table,
.card-table thead th,
.card-table > thead > tr > th,
.table.card-table thead th,
.card-table tbody td,
.card-table > tbody > tr > td,
.card-table tbody td .small,
.card-table tbody td small,
.card-table tbody td span,
.card-table tbody td div {
  font-family: var(--gm-font) !important;
}

.card-table thead th,
.card-table > thead > tr > th,
.table.card-table thead th {
  color: var(--gm-title) !important;
  font-weight: 700 !important;
  text-transform: none !important;
  opacity: 1 !important;
}

.card-table tbody td,
.card-table > tbody > tr > td,
.card-table tbody td .small,
.card-table tbody td small,
.card-table tbody td span,
.card-table tbody td div,
.card-table tbody td i {
  color: var(--gm-title) !important;
  opacity: 1 !important;
}

/* Exceções semânticas */
.card-table tbody td .text-muted,
.card-table tbody td .badge.text-muted { color: var(--gm-muted) !important; }
.card-table tbody td .text-body { color: var(--gm-title) !important; }
.card-table tbody td .text-success,
.card-table tbody td .badge.text-success { color: #00c9a7 !important; }
.card-table tbody td .text-danger,
.card-table tbody td .badge.text-danger { color: #ed4c78 !important; }
.card-table tbody td .text-warning,
.card-table tbody td .badge.text-warning { color: #f58220 !important; }
.card-table tbody td .text-info,
.card-table tbody td .badge.text-info { color: #09a5be !important; }

/* Divisor + hover via tokens */
.card-table > tbody > tr > td {
  border-top: 0.0625rem solid var(--gm-row-border) !important;
}

.card-table > tbody > tr:hover > td {
  background-color: var(--gm-row-hover) !important;
}

/* Status — Front usa inline-flex no .badge; forçar 100% da célula */
.card-table tbody td .badge,
.list-group-item .badge.gm-status {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
  text-align: center !important;
  white-space: nowrap !important;
}

.list-group-item,
.list-group-item .small,
.list-group-item span,
.list-group-item div {
  color: var(--gm-title) !important;
}

.list-group-item .text-muted,
.list-group-item .small.text-muted {
  color: var(--gm-muted) !important;
}

.page-header {
  border-bottom: 0.0625rem solid var(--gm-row-border);
  padding-bottom: 1rem;
  margin-bottom: 1rem;
}

/* KPIs de resumo — faixa colorida à esquerda (como Desempenho).
   !important: theme.min.css entra depois via HS e o shorthand .card { border }
   apaga border-left sem isso. */
.card.gm-kpi {
  border-left: 4px solid #f58220 !important;
}
.card.gm-kpi.gm-kpi-teal {
  border-left-color: #00c9a7 !important;
}
.card.gm-kpi.gm-kpi-blue {
  border-left-color: #377dff !important;
}
.card.gm-kpi.gm-kpi-pink {
  border-left-color: #ed4c78 !important;
}

/* Mobile: Adicionar alinhado verticalmente com o page-header-title */
@media (max-width: 767.98px) {
  .page-header .page-header-title {
    margin-bottom: 0 !important;
  }

  .page-header > .row {
    align-items: center !important;
  }

  .page-header > .row > .col-auto {
    display: flex;
    align-items: center;
    align-self: center;
  }

  .page-header > .row > .col > p.text-muted,
  .page-header > .row > .col > .text-muted {
    margin-top: 0.35rem;
  }
}

@media (min-width: 576px) {
  .w-sm-auto {
    width: auto !important;
  }
}

/* Pedidos: ícone soft de tempo de entrega alinhado ao título no mobile */
#appPedidos .page-header .btn-icon.btn-soft-warning {
  width: 2.25rem;
  height: 2.25rem;
  min-width: 2.25rem;
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 0.5rem;
}

.nav-segment {
  background-color: var(--gm-segment-bg) !important;
}

.nav-segment .nav-link:hover,
.nav-segment .nav-link:focus {
  color: var(--gm-title) !important;
  font-weight: 700 !important;
}

.nav-segment .nav-link.active {
  color: var(--gm-title) !important;
  background-color: var(--gm-segment-active-bg) !important;
  font-weight: 700 !important;
}

/* Abas com scroll horizontal (catálogo + pedidos) */
#appCatalogo #sortable.gm-cat-tabs,
#appCatalogo .gm-cat-tabs,
#appPedidos .gm-status-tabs {
  display: flex !important;
  flex-wrap: nowrap !important;
  align-items: stretch;
  width: 100%;
  max-width: 100%;
  overflow-x: auto !important;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior-x: contain;
  touch-action: pan-x pan-y;
  scrollbar-width: thin;
  gap: 0.15rem;
  padding-bottom: 0.15rem;
}

#appPedidos .gm-status-tabs {
  min-width: 0;
}

/* Listas em cards — Pedidos / Caixa / Receber (sem table-responsive no mobile) */
#appPedidos .gm-pedido-list,
#appCaixa .gm-registro-list,
#appReceber .gm-registro-list {
  max-width: 100%;
  overflow-x: hidden;
}

#appPedidos .gm-pedido-card,
#appCaixa .gm-registro-card,
#appReceber .gm-registro-card {
  border-color: #e7eaf3 !important;
  border-radius: 0.65rem;
  transition: background-color 0.15s ease, border-color 0.15s ease;
}

#appPedidos .gm-pedido-card:hover,
#appCaixa .gm-registro-card-clickable:hover,
#appReceber .gm-registro-card-clickable:hover {
  border-color: rgba(var(--gm-orange-rgb), 0.35) !important;
  background-color: #fffaf5;
}

#appCaixa .gm-registro-card-clickable,
#appReceber .gm-registro-card-clickable {
  cursor: pointer;
}

#appCaixa .gm-registro-card-muted {
  background-color: #f9fafc;
}

#appPedidos .gm-pedido-list-head,
#appCaixa .gm-registro-list-head,
#appReceber .gm-registro-list-head {
  letter-spacing: 0.01em;
}

@media (max-width: 767.98px) {
  #appPedidos .gm-pedido-card .card-body,
  #appCaixa .gm-registro-card .card-body,
  #appReceber .gm-registro-card .card-body {
    padding: 0.9rem 1rem;
  }
}

/* Mobile: faixa de categorias mais alta e fácil de arrastar com o dedo */
@media (max-width: 767.98px) {
  #appCatalogo #sortable.gm-cat-tabs,
  #appCatalogo .gm-cat-tabs {
    min-height: 3.5rem;
    padding: 0.55rem 0.4rem 0.7rem;
    margin-left: -0.25rem;
    margin-right: -0.25rem;
    margin-bottom: 1rem !important;
    gap: 0.35rem;
    scrollbar-width: auto;
    scrollbar-color: #f58220 rgba(245, 130, 32, 0.18);
  }

  /* Linha de scroll horizontal sempre visível no mobile */
  #appCatalogo .gm-cat-tabs::-webkit-scrollbar {
    height: 6px;
    display: block;
  }

  #appCatalogo .gm-cat-tabs::-webkit-scrollbar-track {
    background: rgba(245, 130, 32, 0.16);
    border-radius: 999px;
    margin: 0 0.35rem;
  }

  #appCatalogo .gm-cat-tabs::-webkit-scrollbar-thumb {
    background: #f58220;
    border-radius: 999px;
  }

  #appCatalogo .gm-cat-tabs::-webkit-scrollbar-thumb:active {
    background: #d96f12;
  }

  #appCatalogo .gm-cat-tabs .gm-sort-cat-item,
  #appCatalogo .gm-cat-tabs .nav-item {
    display: flex;
    align-items: stretch;
  }

  #appCatalogo .gm-cat-tabs .nav-link {
    min-height: 2.85rem;
    padding: 0.7rem 1.05rem !important;
    display: inline-flex !important;
    align-items: center;
    font-size: 0.95rem;
  }

  /* Catálogo — scroll livre no card; arraste só pelo handle */
  #appCatalogo .gm-sort-prods,
  #appCatalogo .gm-sort-prod-item,
  #appCatalogo .gm-prod-card,
  #appCatalogo .gm-cat-card {
    touch-action: pan-y;
  }

  #appCatalogo .gm-prod-card .card-body,
  #appCatalogo .gm-cat-card .card-body {
    padding-top: 0.95rem;
    padding-bottom: 0.95rem;
  }

  #appCatalogo .btn-icon.btn-sm {
    width: 2.75rem;
    height: 2.75rem;
    min-width: 2.75rem;
    min-height: 2.75rem;
  }

  #appCatalogo .form-check-input {
    width: 2.5rem;
    height: 1.4rem;
    margin-top: 0;
  }

  #appCatalogo .gm-prod-thumb {
    width: 56px;
    height: 56px;
  }

  #appCatalogo .gm-busca-resultados .btn-sm {
    min-height: 2.5rem;
  }
}

/* Catálogo: desativa apenas seleção de texto na lista */
#appCatalogo,
#appCatalogo .gm-cat-tabs,
#appCatalogo .gm-cat-tabs .nav-link,
#appCatalogo .gm-prod-card,
#appCatalogo .gm-cat-card,
#appCatalogo .gm-sort-prod-item,
#appCatalogo .gm-sort-cat-item,
#appCatalogo .gm-busca-card {
  -webkit-user-select: none !important;
  -moz-user-select: none !important;
  -ms-user-select: none !important;
  user-select: none !important;
}

#appCatalogo input,
#appCatalogo textarea,
#appCatalogo select,
#appCatalogo [contenteditable="true"] {
  -webkit-user-select: text !important;
  user-select: text !important;
}

/* Tablist: reordenar só pelo ícone */
#appCatalogo .gm-cat-drag {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  min-width: 1.5rem;
  min-height: 1.75rem;
  margin-right: 0.2rem;
  margin-left: -0.2rem;
  color: var(--gm-muted, #8c98a4);
  cursor: grab;
  touch-action: none;
  -webkit-touch-callout: none;
}

#appCatalogo .gm-cat-drag:active,
#appCatalogo .gm-cat-drag.gm-hold-ready {
  cursor: grabbing;
  color: #f58220;
}

#appCatalogo .gm-cat-tabs .nav-link {
  gap: 0.1rem;
}

/* Soft danger (aviso fechamento rápido) */
.bg-soft-danger {
  background-color: rgba(237, 78, 95, 0.08) !important;
}

#appCatalogo .gm-cat-tabs .gm-sort-cat-item,
#appCatalogo .gm-cat-tabs .nav-item,
#appPedidos .gm-status-tabs .nav-item {
  flex: 0 0 auto !important;
  float: none !important;
  white-space: nowrap;
}

#appCatalogo .gm-cat-tabs .nav-link,
#appPedidos .gm-status-tabs .nav-link {
  white-space: nowrap;
  max-width: none;
}

/* Legendas longas: quebra de linha (não estoura o card) */
#appCatalogo .gm-texto-quebra {
  white-space: normal !important;
  overflow-wrap: anywhere;
  word-break: break-word;
  max-width: 100%;
}

/* Offcanvas pedido — mais largo que o padrão */
.gm-offcanvas-pedido.offcanvas-end {
  width: min(45rem, 100vw);
  min-width: min(45rem, 100vw);
}

/* Status do pedido: timeline + botões no mesmo scroll horizontal */
.gm-offcanvas-pedido .gm-pedido-status-scroll {
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior-x: contain;
  margin: 0 -0.15rem 0.25rem;
  padding: 0 0.15rem 0.35rem;
}

.gm-offcanvas-pedido .gm-pedido-status-scroll-inner {
  min-width: 34rem;
}

.gm-offcanvas-pedido .gm-pedido-status-scroll-inner .bs4-order-trackings {
  width: 100%;
  margin-bottom: 0;
  overflow: visible;
}

.gm-offcanvas-pedido .gm-pedido-status-scroll-inner .bs4-order-trackings::after {
  content: '';
  display: table;
  clear: both;
}

.gm-offcanvas-pedido .gm-pedido-status-btns {
  display: flex;
  flex-wrap: nowrap;
  gap: 0.45rem;
  align-items: stretch;
  width: 100%;
  justify-content: flex-start;
}

.gm-offcanvas-pedido .gm-pedido-status-btns > .btn {
  flex: 1 1 0;
  min-width: 0;
  white-space: nowrap;
  font-size: 0.72rem;
  line-height: 1.2;
  padding: 0.45rem 0.4rem;
  border-radius: 0.5rem;
}

.gm-offcanvas-pedido .gm-pedido-status-btns > .btn.is-current {
  box-shadow: 0 0 0 2px rgba(var(--gm-orange-rgb), 0.55);
  font-weight: 700;
}

/* Botão Salvar ajuste — preloader soft-warning */
.gm-offcanvas-pedido .btn-warning.is-skel-busy,
.gm-offcanvas-pedido .btn-warning.is-skel-busy:disabled {
  position: relative !important;
  color: var(--gm-orange) !important;
  background-color: #fff4eb !important;
  border-color: rgba(var(--gm-orange-rgb), 0.35) !important;
  opacity: 1 !important;
  pointer-events: none !important;
  overflow: hidden !important;
  min-height: 2.5rem;
}

.gm-offcanvas-pedido .btn-warning.is-skel-busy .gm-btn-label {
  position: relative;
  z-index: 1;
  color: var(--gm-orange) !important;
  visibility: visible !important;
}

.gm-offcanvas-pedido .btn-warning.is-skel-busy::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(
    90deg,
    #fff4eb 0%,
    #ffe8d4 45%,
    #fff4eb 90%
  );
  background-size: 220% 100%;
  animation: gm-skel-shine-portal 1.25s ease-in-out infinite;
  z-index: 0;
}

.gm-offcanvas-pedido .btn-success:disabled {
  opacity: 1 !important;
  background-color: #198754 !important;
  border-color: #198754 !important;
  color: #fff !important;
}

@keyframes gm-skel-shine-portal {
  0% { background-position: 100% 0; }
  100% { background-position: -100% 0; }
}
.gm-offcanvas-catalogo.offcanvas-end {
  width: min(45rem, 100vw);
  min-width: min(45rem, 100vw);
  transition: transform 0.12s ease-out !important;
}

.gm-offcanvas-produto.offcanvas-end {
  width: min(45rem, 100vw);
  min-width: min(45rem, 100vw);
}

.gm-offcanvas-produto .form-label {
  margin-bottom: 0.5rem;
}

#modalProduto #gmProdutoSecaoPreco.gm-preco-highlight {
  border-radius: 0.75rem;
  padding: 0.85rem 0.9rem;
  margin-left: -0.9rem;
  margin-right: -0.9rem;
  animation: gmPrecoSecaoPulse 1.6s ease;
  background: rgba(245, 130, 32, 0.08);
  box-shadow: inset 0 0 0 1.5px rgba(245, 130, 32, 0.55);
}

#modalProduto .gm-preco-final-highlight {
  border-radius: 0.5rem;
  animation: gmPrecoFinalPulse 1.6s ease;
  box-shadow: 0 0 0 3px rgba(245, 130, 32, 0.35);
}

#modalProduto .gm-preco-final-highlight .form-control,
#modalProduto .gm-preco-final-highlight .input-group-text {
  border-color: rgba(245, 130, 32, 0.85) !important;
  background-color: rgba(245, 130, 32, 0.06);
}

@keyframes gmPrecoSecaoPulse {
  0% {
    background: rgba(245, 130, 32, 0.22);
    box-shadow: inset 0 0 0 2px rgba(245, 130, 32, 0.9);
  }
  100% {
    background: rgba(245, 130, 32, 0.08);
    box-shadow: inset 0 0 0 1.5px rgba(245, 130, 32, 0.55);
  }
}

@keyframes gmPrecoFinalPulse {
  0% {
    box-shadow: 0 0 0 0 rgba(245, 130, 32, 0.55);
  }
  40% {
    box-shadow: 0 0 0 6px rgba(245, 130, 32, 0.2);
  }
  100% {
    box-shadow: 0 0 0 3px rgba(245, 130, 32, 0.35);
  }
}

.gm-catalogo-backdrop {
  position: fixed;
  inset: 0;
  z-index: 1040;
  background-color: rgba(15, 23, 42, 0.45);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.15s ease-in-out, visibility 0.15s ease-in-out;
}

.gm-catalogo-backdrop.show {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

body.gm-offcanvas-open,
html.gm-offcanvas-open {
  overflow: hidden !important;
}

/* Catálogo: reordenando — placeholder visível; auto-scroll nas bordas via JS */
body.gm-catalogo-sorting #appCatalogo .gm-sort-placeholder {
  border: 2px dashed #f58220 !important;
  background: rgba(245, 130, 32, 0.22) !important;
}

body.gm-offcanvas-open #appCatalogo,
body.gm-offcanvas-open .content,
body.gm-offcanvas-open .navbar,
body.gm-offcanvas-open .main {
  pointer-events: none;
}

body.gm-offcanvas-open .offcanvas,
body.gm-offcanvas-open .gm-catalogo-backdrop {
  pointer-events: auto;
}

.gm-offcanvas-under {
  pointer-events: none;
}

/* Obrigatório: * sempre depois do rótulo */
.gm-req {
  color: #e25563;
  font-weight: 700;
  margin-left: 0.2rem;
  margin-right: 0;
}

/* Fallback quando o label recebe a classe via JS */
label.gm-required-label:not(:has(.gm-req))::after {
  content: '*';
  color: #e25563;
  font-weight: 700;
  margin-left: 0.2rem;
}

/* Miniatura fixa da capa do produto / item (não pode estourar o painel) */
#modalProduto .gm-prod-foto-thumb,
#modalComplementoItem .gm-prod-foto-thumb {
  width: 108px;
  height: 108px;
  border-radius: 0.65rem;
  overflow: hidden;
  border: 1px solid var(--gm-row-border);
  background: var(--gm-segment-bg);
}

#modalProduto #imagem,
#modalProduto .gm-prod-foto-thumb img,
#modalComplementoItem #complemento_item_imagem,
#modalComplementoItem .gm-prod-foto-thumb img {
  width: 108px !important;
  height: 108px !important;
  max-width: 108px !important;
  max-height: 108px !important;
  object-fit: cover !important;
  display: block !important;
}

#modalProduto .gm-prod-gallery-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.35rem;
}

#modalProduto .gm-prod-thumb {
  width: 56px !important;
  height: 56px !important;
  border-radius: 0.5rem;
  object-fit: cover;
  border: 1px solid var(--gm-row-border);
  cursor: pointer;
  display: block;
  background: var(--gm-segment-bg);
}

#modalProduto .gm-comp-lista {
  min-height: 1rem;
  max-width: 100%;
  overflow: hidden;
}

#modalProduto #produto-complementos {
  max-width: 100%;
  overflow-x: hidden;
}

#modalProduto .gm-comp-toolbar {
  flex-wrap: nowrap !important;
  gap: 0.5rem;
  min-width: 0;
}

#modalProduto .gm-comp-toolbar-copy {
  min-width: 0;
  flex: 1 1 auto;
}

#modalProduto .gm-comp-toolbar-title {
  font-size: 0.95rem;
  line-height: 1.25;
  margin-bottom: 0.15rem !important;
}

#modalProduto .gm-comp-toolbar-actions {
  flex-wrap: nowrap !important;
  min-width: 0;
}

#modalProduto .gm-comp-itens-busca {
  min-width: 11rem;
  max-width: 12rem;
}

#modalProduto .gm-comp-toolbar .btn {
  white-space: nowrap !important;
}

#modalProduto .gm-comp-toolbar-btn {
  min-width: 7.25rem;
  justify-content: center;
  padding-left: 0.7rem;
  padding-right: 0.7rem;
  font-size: 0.8125rem;
  line-height: 1.2;
}

@media (max-width: 575.98px) {
  #modalProduto .gm-comp-toolbar {
    gap: 0.35rem;
  }

  #modalProduto .gm-comp-toolbar-title {
    font-size: 0.875rem;
  }

  #modalProduto .gm-comp-toolbar-sub {
    display: none;
  }

  #modalProduto .gm-comp-toolbar-btn {
    min-width: 6.75rem;
    padding-left: 0.55rem;
    padding-right: 0.55rem;
  }

  #modalProduto .gm-comp-itens-busca {
    min-width: 6.5rem;
    max-width: 7.5rem;
    flex: 1 1 auto;
  }
}

/* Modal produto — tablist principal com scroll horizontal */
#modalProduto .gm-prod-tabs {
  display: flex !important;
  flex-wrap: nowrap !important;
  align-items: stretch;
  width: 100%;
  max-width: 100%;
  overflow-x: auto !important;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior-x: contain;
  touch-action: pan-x pan-y;
  gap: 0.15rem;
  padding-bottom: 0.45rem;
  scrollbar-width: auto;
  scrollbar-color: #f58220 rgba(245, 130, 32, 0.18);
}

#modalProduto .gm-prod-tabs .nav-item {
  flex: 0 0 auto !important;
  float: none !important;
}

#modalProduto .gm-prod-tabs .nav-link {
  white-space: nowrap;
  max-width: none;
}

#modalProduto .gm-prod-tabs::-webkit-scrollbar {
  height: 6px;
  display: block;
}

#modalProduto .gm-prod-tabs::-webkit-scrollbar-track {
  background: rgba(245, 130, 32, 0.16);
  border-radius: 999px;
}

#modalProduto .gm-prod-tabs::-webkit-scrollbar-thumb {
  background: #f58220;
  border-radius: 999px;
}

#modalProduto .gm-comp-tabs {
  display: flex;
  flex-wrap: nowrap;
  align-items: stretch;
  gap: 0.35rem;
  width: 100%;
  max-width: 100%;
  overflow-x: auto;
  overflow-y: hidden;
  padding-bottom: 0.35rem;
  -webkit-overflow-scrolling: touch;
  scroll-behavior: smooth;
  touch-action: pan-x pan-y;
  scrollbar-width: auto;
  scrollbar-color: #f58220 rgba(245, 130, 32, 0.18);
}

#modalProduto .gm-comp-tabs::-webkit-scrollbar {
  height: 6px;
  display: block;
}

#modalProduto .gm-comp-tabs::-webkit-scrollbar-track {
  background: rgba(245, 130, 32, 0.16);
  border-radius: 999px;
}

#modalProduto .gm-comp-tabs::-webkit-scrollbar-thumb {
  background: #f58220;
  border-radius: 999px;
}

#modalProduto .gm-comp-tabs .gm-comp-sort-item {
  flex: 0 0 auto;
}

#modalProduto .gm-comp-tab.nav-link,
#modalProduto .gm-comp-tabs .nav-link.gm-comp-tab {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  justify-content: center;
  min-width: 8.5rem;
  max-width: none;
  width: max-content;
  white-space: normal;
  line-height: 1.25;
  padding: 0.55rem 0.75rem;
  cursor: grab;
  margin-right: 0;
}

#modalProduto .gm-comp-tabs .nav-link:active {
  cursor: grabbing;
}

#modalProduto .gm-comp-tab-top {
  display: flex;
  align-items: center;
  gap: 0.35rem;
  width: 100%;
}

#modalProduto .gm-comp-tab-name {
  display: block;
  flex: 0 1 auto;
  font-weight: 600;
  white-space: nowrap;
}

#modalProduto .gm-comp-tab-meta {
  margin-top: 0.15rem;
  font-size: 0.75rem;
  font-weight: 400;
  line-height: 1.2;
  color: #97a3af;
  white-space: nowrap;
}

#modalProduto .gm-comp-tabs .nav-link.active .gm-comp-tab-meta {
  color: #97a3af;
  opacity: 1;
  font-weight: 400;
}

#modalProduto .gm-comp-tab-actions {
  display: none;
  align-items: center;
  gap: 0.25rem;
  flex: 0 0 auto;
  margin-left: 0.15rem;
}

#modalProduto .gm-comp-tabs .nav-link.active .gm-comp-tab-actions {
  display: inline-flex;
}

#modalProduto .gm-comp-tab-actions .btn-soft-warning,
#modalProduto .gm-comp-tab-actions .gm-btn-hover-soft-warning,
#modalProduto .gm-comp-tab-actions .gm-btn-hover-soft-danger {
  width: 1.75rem;
  height: 1.75rem;
  padding: 0;
}

#modalProduto .move-trigger2.gm-btn-hover-soft-warning {
  cursor: grab;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  user-select: none;
  -webkit-user-select: none;
  touch-action: none;
}

#modalProduto .move-trigger2.gm-btn-hover-soft-warning:active {
  cursor: grabbing;
}

#modalProduto .gm-comp-item-card {
  border: 1px solid var(--gm-row-border);
  box-shadow: none;
  cursor: grab;
  background: var(--gm-surface);
  transition: border-color 0.15s ease;
}

#modalProduto .gm-comp-item-card:active {
  cursor: grabbing;
}

#modalProduto .gm-comp-item-card:hover {
  border-color: rgba(245, 130, 32, 0.4);
}

#modalProduto .gm-comp-item-desc {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
  white-space: normal;
  word-break: break-word;
  overflow-wrap: anywhere;
  line-height: 1.35;
  margin-top: 0.15rem;
}

#modalProduto .gm-comp-item-preco {
  font-weight: 600;
  font-size: 0.75rem;
  line-height: 1.2;
  color: var(--gm-muted-soft);
  margin-top: 0.2rem;
  white-space: nowrap;
}

#modalProduto .gm-sort-comp-item:last-child {
  margin-bottom: 0 !important;
}

#modalProduto .gm-comp-moved .gm-comp-item-card {
  animation: gmCompMovedPulse 0.7s ease;
  border-color: rgba(245, 130, 32, 0.85) !important;
}

#modalProduto .gm-comp-placeholder-tab {
  display: inline-block;
  min-width: 5rem;
  height: 3.25rem;
  margin: 0 0.15rem 0 0;
  border-radius: 0.5rem;
  border: 2px dashed rgba(245, 130, 32, 0.55);
  background: rgba(245, 130, 32, 0.08);
  visibility: visible !important;
}

#modalProduto .gm-comp-moved .nav-link,
#modalProduto .gm-comp-moved .gm-comp-tab {
  animation: gmCompMovedPulse 0.7s ease;
}

#modalProduto .gm-comp-card {
  border: 1px solid var(--gm-row-border);
  border-radius: 0.65rem;
  background: var(--gm-surface);
  padding: 0.75rem 0.85rem;
  cursor: grab;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

#modalProduto .gm-comp-card:hover {
  border-color: rgba(245, 130, 32, 0.4);
}

#modalProduto .gm-comp-card:active {
  cursor: grabbing;
}

#modalProduto .gm-comp-move {
  cursor: grab;
  color: #8c98a4;
}

#modalProduto .gm-comp-move:active {
  cursor: grabbing;
}

#modalProduto .gm-comp-sort-item.gm-menu-aberto,
#modalProduto .gm-comp-card.gm-menu-aberto {
  z-index: 20;
  position: relative;
}

#modalProduto .gm-comp-placeholder {
  border: 2px dashed rgba(245, 130, 32, 0.55);
  background: rgba(245, 130, 32, 0.08);
  border-radius: 0.65rem;
  margin-bottom: 0.5rem;
  visibility: visible !important;
}

#modalProduto .gm-sorting {
  box-shadow: 0 10px 24px rgba(33, 50, 91, 0.14);
  z-index: 30;
}

#modalProduto .gm-comp-moved .gm-comp-card {
  animation: gmCompMovedPulse 0.7s ease;
  border-color: rgba(245, 130, 32, 0.85) !important;
}

#modalComplemento .gm-comp-moved,
#listaComplementoItens .gm-comp-moved {
  animation: gmCompMovedPulse 0.7s ease;
}

@keyframes gmCompMovedPulse {
  0% {
    box-shadow: 0 0 0 0 rgba(245, 130, 32, 0.45);
    background: rgba(245, 130, 32, 0.12);
  }
  100% {
    box-shadow: 0 0 0 10px rgba(245, 130, 32, 0);
    background: var(--gm-surface);
  }
}

#modalProduto .gm-comp-lista > .gm-comp-sort-item:last-child {
  margin-bottom: 0 !important;
}

.gm-offcanvas-produto .gm-comp-lista > .border-bottom:last-child {
  border-bottom: 0 !important;
}

.page-header-title,
.card-header-title {
  font-weight: 700;
  color: var(--gm-title);
}

/* Feedback visual ao salvar: progresso → check */
.gm-btn-feedback {
  position: relative;
  overflow: hidden;
  pointer-events: none;
}

.gm-btn-feedback > *:not(.gm-btn-feedback-bar):not(.gm-btn-feedback-check) {
  position: relative;
  z-index: 1;
  transition: opacity 0.18s ease;
}

.gm-btn-feedback--running > *:not(.gm-btn-feedback-bar):not(.gm-btn-feedback-check),
.gm-btn-feedback--done > *:not(.gm-btn-feedback-bar):not(.gm-btn-feedback-check) {
  opacity: 0;
}

.gm-btn-feedback-bar {
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 0;
  z-index: 2;
  background: linear-gradient(
    90deg,
    rgba(255, 255, 255, 0.15) 0%,
    rgba(255, 255, 255, 0.55) 50%,
    rgba(255, 255, 255, 0.25) 100%
  );
  transition: width 0.7s cubic-bezier(0.4, 0, 0.2, 1);
}

.gm-btn-feedback--running .gm-btn-feedback-bar {
  width: 100%;
}

.gm-btn-feedback--done .gm-btn-feedback-bar {
  width: 100%;
  opacity: 0;
  transition: opacity 0.15s ease;
}

.gm-btn-feedback--done {
  border-color: transparent !important;
  box-shadow: none !important;
  background-color: #198754 !important;
  color: #fff !important;
}

.gm-btn-feedback-check {
  position: absolute;
  inset: 0;
  z-index: 3;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-size: 1.55rem;
  line-height: 1;
  background: #198754;
  border: 0;
  opacity: 0;
  transform: scale(0.55);
  transition: opacity 0.2s ease, transform 0.28s cubic-bezier(0.34, 1.4, 0.64, 1);
}

.gm-btn-feedback--done .gm-btn-feedback-check {
  opacity: 1;
  transform: scale(1);
}

.gm-btn-feedback-check .bi-check-lg {
  font-weight: 700;
  color: #fff;
}

.gm-busca-card {
  border: 1px solid var(--bs-border-color, var(--gm-row-border));
  background-color: var(--bs-card-bg, var(--gm-surface));
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.gm-busca-card:hover {
  border-color: rgba(245, 130, 32, 0.45);
}

/* Catálogo — cards seguem o tema Front (--bs-card-bg), não hex fixo */
#appCatalogo .card.gm-cat-card,
#appCatalogo .card.gm-prod-card,
#appCatalogo .card.gm-busca-card,
#appCatalogo .card.gm-comp-item-card {
  background-color: var(--bs-card-bg) !important;
  border-color: var(--bs-border-color) !important;
}

#appCatalogo .gm-comp-panel {
  background-color: var(--bs-tertiary-bg, var(--gm-segment-bg)) !important;
}

/* PDV — rail / cards / rodapé da sacola no tema ativo */
#appPDV .gm-pdv-rail {
  background-color: var(--bs-body-bg, var(--gm-surface)) !important;
  border-left-color: var(--bs-border-color, var(--gm-row-border)) !important;
}
#appPDV .card.gm-pdv-card,
#appPDV .card.card-bordered {
  background-color: var(--bs-card-bg, var(--gm-surface)) !important;
  border-color: var(--bs-border-color, var(--gm-row-border)) !important;
}
#appPDV .gm-pdv-sacola-foot,
#finalizarModal .bg-body,
#produtoModal .bg-body {
  background-color: var(--bs-body-bg, var(--gm-surface)) !important;
}

/* Perfil usuário — card resumo sem hex claro fixo */
#appUsuario .gm-perfil-summary {
  background-color: var(--bs-card-bg, var(--gm-surface)) !important;
  border-color: var(--bs-border-color, var(--gm-row-border)) !important;
  background-image: linear-gradient(
    135deg,
    rgba(245, 130, 32, 0.12) 0%,
    var(--bs-card-bg, var(--gm-surface)) 55%
  ) !important;
}
#appUsuario .avatar-initials {
  background: rgba(245, 130, 32, 0.14) !important;
  color: var(--gm-orange) !important;
}
#appPerfil .card.gm-list-card {
  background-color: var(--bs-card-bg, var(--gm-surface)) !important;
  border-color: var(--bs-border-color, var(--gm-row-border)) !important;
}

.gm-busca-preco-panel {
  border: 1px solid rgba(245, 130, 32, 0.35);
  background: rgba(245, 130, 32, 0.06);
}

.gm-busca-preco-edit {
  min-width: 7rem;
}

.gm-busca-preco-field {
  position: relative;
  display: inline-block;
}

.gm-busca-preco-rs {
  position: absolute;
  left: 0.55rem;
  top: 50%;
  transform: translateY(-50%);
  font-size: 0.75rem;
  color: var(--gm-muted);
  pointer-events: none;
  line-height: 1;
  z-index: 2;
}

.gm-busca-preco-input {
  width: 6.75rem;
  text-align: right;
  padding-left: 1.85rem !important;
}

#modalProduto .gm-comp-item-pausado .gm-comp-item-card {
  opacity: 0.72;
}

#modalProduto .gm-comp-item-pausado .gm-comp-item-preco {
  color: var(--gm-muted-soft);
}

#modalProduto .gm-comp-grupo-pausado .gm-comp-tab {
  opacity: 0.75;
}

/* —— Skeleton / loading —— */
/* currentColor acompanha o tema Front (claro/escuro) sem depender só de data-hs-theme */
.placeholder,
.placeholder-glow .placeholder,
.placeholder-wave .placeholder,
.gm-skel .placeholder {
  cursor: default !important;
  background-color: currentColor !important;
  opacity: 0.14;
  color: inherit;
}

.placeholder-glow .placeholder {
  animation: gm-skel-glow 1.6s ease-in-out infinite !important;
}

@keyframes gm-skel-glow {
  0%, 100% { opacity: 0.16; }
  50% { opacity: 0.07; }
}

.gm-skel .card {
  box-shadow: none;
}

/* —— Feedback visual de campo obrigatório (padrão PDV Confirmar pedido) —— */
.gm-field-error,
.form-control.gm-field-error,
.form-select.gm-field-error,
input.gm-field-error,
select.gm-field-error,
.ts-wrapper.gm-field-error .ts-control {
  border: 2px solid #f58220 !important;
  border-color: #f58220 !important;
  box-shadow: 0 0 0 0.25rem rgba(245, 130, 32, 0.35) !important;
  background-color: #fff4eb !important;
  outline: none !important;
}

.gm-field-error:focus,
.form-control.gm-field-error:focus,
.form-select.gm-field-error:focus {
  border-color: #e36437 !important;
  box-shadow: 0 0 0 0.3rem rgba(245, 130, 32, 0.45) !important;
  background-color: #fff4eb !important;
}

.gm-field-error-wrap {
  border: 2px solid #f58220 !important;
  box-shadow: 0 0 0 0.25rem rgba(245, 130, 32, 0.28) !important;
  background-color: #fff4eb !important;
  border-radius: 0.5rem;
  animation: gm-field-pulse 1.2s ease-out 2;
}

.input-group.gm-field-error-wrap .form-control,
.input-group.gm-field-error-wrap .btn,
.input-group.gm-field-error-wrap .input-group-text {
  border-color: #f58220 !important;
}

.gm-field-hint {
  color: #c45518 !important;
  font-size: 0.8rem;
  font-weight: 600;
  margin-top: 0.4rem;
  display: none;
}

.gm-field-hint.is-visible {
  display: block !important;
}

@keyframes gm-field-pulse {
  0% { box-shadow: 0 0 0 0 rgba(245, 130, 32, 0.55); }
  70% { box-shadow: 0 0 0 0.45rem rgba(245, 130, 32, 0); }
  100% { box-shadow: 0 0 0 0.25rem rgba(245, 130, 32, 0.28); }
}

/* —— Tema escuro: utilitários legados + datepicker (filtros) —— */
html[data-hs-theme="dark"] .gm-field-error,
html[data-hs-theme="dark"] .form-control.gm-field-error,
html[data-hs-theme="dark"] .form-select.gm-field-error,
html[data-hs-theme="dark"] input.gm-field-error,
html[data-hs-theme="dark"] select.gm-field-error,
html[data-hs-theme="dark"] .ts-wrapper.gm-field-error .ts-control,
html[data-hs-theme="dark"] .gm-field-error:focus,
html[data-hs-theme="dark"] .form-control.gm-field-error:focus,
html[data-hs-theme="dark"] .form-select.gm-field-error:focus,
html[data-hs-theme="dark"] .gm-field-error-wrap {
  background-color: rgba(245, 130, 32, 0.12) !important;
}

/* jQuery UI datepicker — sempre claro por default; remapeia no escuro */
html[data-hs-theme="dark"] .ui-datepicker {
  background: var(--gm-surface) !important;
  border: 1px solid var(--gm-row-border) !important;
  color: var(--gm-title) !important;
  z-index: 2100 !important;
}

html[data-hs-theme="dark"] .ui-datepicker .ui-widget-header {
  background: var(--gm-segment-bg) !important;
  border: 0 !important;
  color: var(--gm-title) !important;
}

html[data-hs-theme="dark"] .ui-datepicker .ui-state-default {
  background: transparent !important;
  border: 0 !important;
  color: var(--gm-title) !important;
}

html[data-hs-theme="dark"] .ui-datepicker .ui-state-hover,
html[data-hs-theme="dark"] .ui-datepicker .ui-state-focus {
  background: var(--gm-row-hover) !important;
  color: var(--gm-title) !important;
}

html[data-hs-theme="dark"] .ui-datepicker .ui-state-active,
html[data-hs-theme="dark"] .ui-datepicker .ui-state-highlight {
  background: rgba(245, 130, 32, 0.2) !important;
  color: var(--gm-orange) !important;
}

html[data-hs-theme="dark"] .ui-datepicker .ui-datepicker-prev span,
html[data-hs-theme="dark"] .ui-datepicker .ui-datepicker-next span {
  filter: invert(1);
}

html[data-hs-theme="dark"] .ui-widget-content {
  background: var(--gm-surface);
  color: var(--gm-title);
}

/*
 * De-para (legado → tema-aware):
 * #1e2022 / text-dark  → text-body / var(--gm-title)
 * #fff / bg-white      → bg-body / var(--gm-surface)  [Front dark já remapeia]
 * #f9fafc / #f8fafd    → var(--gm-segment-bg)
 * #677788              → text-muted / var(--gm-muted)
 * btn-white            → permanece (Front dark remapeia)
 * bg-soft-dark         → permanece (Front dark remapeia)
 */

/* ========== Mobile: anti-zoom iOS + filtros/botões ========== */
@media (max-width: 991.98px) {
  /* Safari iOS: evita zoom ao focar campos com font < 16px */
  .form-control,
  .form-select,
  .form-control-sm,
  .form-select-sm,
  input.form-control,
  select.form-select,
  textarea.form-control,
  .input-group .form-control,
  .input-group .form-select {
    font-size: 16px;
  }

  .form-control,
  .form-select,
  .form-control-sm,
  .form-select-sm {
    min-height: 2.75rem;
  }

  label.form-label {
    margin-bottom: 0.4rem;
  }

  /* Chips / períodos — área de toque e wrap (não quebrar scrolls horizontais do PDV/Mesa) */
  .nav-segment {
    flex-wrap: wrap;
    gap: 0.35rem;
  }

  #appPDV .gm-pdv-cats-scroll.nav-segment,
  #appMesa .gm-pdv-cats-scroll.nav-segment,
  #appPDV .gm-pdv-canais.nav-segment {
    flex-wrap: nowrap !important;
    gap: 0 !important;
  }

  .nav-segment .nav-link,
  .btn-group .btn-sm,
  .d-flex.flex-wrap .btn-sm {
    min-height: 2.5rem;
    padding-left: 0.875rem;
    padding-right: 0.875rem;
  }

  .d-flex.flex-wrap.gap-2,
  .d-flex.flex-wrap {
    row-gap: 0.5rem;
  }
}

@media (max-width: 575.98px) {
  /* Botões de ação em cards de filtro (Pesquisar / Excel / etc.) */
  .card .row > [class*="col-"] > .btn {
    width: 100%;
  }

  .nav-segment .nav-link,
  .btn-group .btn-sm,
  .d-flex.flex-wrap .btn-sm {
    min-height: 2.5rem;
  }
}
