/* IDMIX Tech 1.0.45 — Design System global
 * Fonte única para escala de controles, caixas de ícones, tipografia e espaçamentos.
 * Regras carregadas após o legado para impedir variações acidentais entre módulos.
 */
:root{
  --bp-ds-control:42px;
  --bp-ds-icon-box:42px;
  --bp-ds-icon:18px;
  --bp-ds-icon-inline:16px;
  --bp-ds-body:14px;
  --bp-ds-page-title:26px;
  --bp-ds-page-sub:13px;
  --bp-ds-card-title:16px;
  --bp-ds-card-sub:12.5px;
  --bp-ds-label:12px;
  --bp-ds-button:13px;
  --bp-ds-input:13.5px;
  --bp-ds-table:13px;
  --bp-ds-tiny:11px;
  --bp-ds-gap:12px;
  --bp-ds-card-pad:18px;
}

/* Tipografia: cada papel visual tem uma escala única em todo o painel. */
html body{font-size:calc(var(--bp-ds-body) * var(--ui-scale,1))!important;line-height:1.5!important}
html body .page-title{font-size:calc(var(--bp-ds-page-title) * var(--ui-scale,1))!important;line-height:1.18!important;font-weight:700!important}
html body .page-sub{font-size:calc(var(--bp-ds-page-sub) * var(--ui-scale,1))!important;line-height:1.5!important}
html body .card h3,html body .card-head h3{font-size:calc(var(--bp-ds-card-title) * var(--ui-scale,1))!important;line-height:1.35!important}
html body .card h4{font-size:calc(14px * var(--ui-scale,1))!important;line-height:1.4!important}
html body .small{font-size:calc(var(--bp-ds-card-sub) * var(--ui-scale,1))!important;line-height:1.5!important}
html body .tiny{font-size:calc(var(--bp-ds-tiny) * var(--ui-scale,1))!important;line-height:1.45!important}
html body .label{font-size:calc(var(--bp-ds-label) * var(--ui-scale,1))!important;line-height:1.35!important}
html body :is(.btn,.theme-btn,.filter-btn){font-size:calc(var(--bp-ds-button) * var(--ui-scale,1))!important;line-height:1.2!important}
html body :is(.input,.select,.textarea,input:not([type="checkbox"]):not([type="radio"]),select,textarea){font-size:calc(var(--bp-ds-input) * var(--ui-scale,1))!important;line-height:1.4!important}
html body :is(.table,.table th,.table td,.table-wrap table th,.table-wrap table td){font-size:calc(var(--bp-ds-table) * var(--ui-scale,1))!important;line-height:1.4!important}
html body :is(.pill,.status,.status-pill,.data-badge,.date-chip){font-size:calc(11px * var(--ui-scale,1))!important;line-height:1.25!important}

/* Altura padrão dos controles interativos. */
html body :is(.btn,.theme-btn,.filter-btn,.input,.select,input:not([type="checkbox"]):not([type="radio"]),select){min-height:calc(var(--bp-ds-control) * var(--ui-scale,1))!important}
html body .btn{padding:9px 14px!important;gap:8px!important}
html body .btn.compact{min-height:34px!important;font-size:calc(11px * var(--ui-scale,1))!important;padding:7px 10px!important}

/* Caixas de ícone: ações e indicadores usam a mesma dimensão do botão padrão. */
html body :is(.top-btn,.icon-btn,.stat-icon,.settings-card-icon,.option-icon,.closed-cash-icon){
  width:calc(var(--bp-ds-icon-box) * var(--ui-scale,1))!important;
  height:calc(var(--bp-ds-icon-box) * var(--ui-scale,1))!important;
  min-width:calc(var(--bp-ds-icon-box) * var(--ui-scale,1))!important;
  min-height:calc(var(--bp-ds-icon-box) * var(--ui-scale,1))!important;
  flex:0 0 calc(var(--bp-ds-icon-box) * var(--ui-scale,1))!important;
  display:grid!important;place-items:center!important;padding:0!important;
}
html body .app-header-actions :is(.top-btn,.icon-btn){
  width:calc(var(--bp-ds-icon-box) * var(--ui-scale,1))!important;
  height:calc(var(--bp-ds-icon-box) * var(--ui-scale,1))!important;
  min-width:calc(var(--bp-ds-icon-box) * var(--ui-scale,1))!important;
  min-height:calc(var(--bp-ds-icon-box) * var(--ui-scale,1))!important;
}
html body :is(.top-btn,.icon-btn,.stat-icon,.settings-card-icon,.option-icon,.closed-cash-icon) .ui-icon,
html body #ready-top-btn>.ui-icon,html body #call-top-btn>.ui-icon,html body #system-notification-btn>.ui-icon{
  width:calc(var(--bp-ds-icon) * var(--ui-scale,1))!important;
  height:calc(var(--bp-ds-icon) * var(--ui-scale,1))!important;
  flex:0 0 calc(var(--bp-ds-icon) * var(--ui-scale,1))!important;
}
html body .btn>.ui-icon{width:var(--bp-ds-icon)!important;height:var(--bp-ds-icon)!important;flex:0 0 var(--bp-ds-icon)!important}
html body .btn.compact>.ui-icon{width:15px!important;height:15px!important;flex-basis:15px!important}

/* Componentes de conteúdo: espaçamentos previsíveis. */
html body .card{padding:var(--bp-ds-card-pad)!important}
html body .space,html body .grid{gap:var(--bp-ds-gap)!important}
html body .actions{gap:8px!important}
html body .stat-card{gap:14px!important}
html body .stat-label{font-size:calc(11px * var(--ui-scale,1))!important;line-height:1.3!important}
html body .stat-value{font-size:calc(22px * var(--ui-scale,1))!important;line-height:1.15!important}

/* Navegação usa uma escala própria, mas constante: não é caixa de ação. */
html body .nav-icon{width:28px!important;height:28px!important;min-width:28px!important;display:grid!important;place-items:center!important}
html body .nav-icon .ui-icon{width:17px!important;height:17px!important}
html body .nav-link{font-size:calc(13px * var(--ui-scale,1))!important;line-height:1.25!important}

/* Fechar modal também é um botão de ícone padrão. */
html body button.x,html body .panel-close{
  width:calc(var(--bp-ds-icon-box) * var(--ui-scale,1))!important;
  height:calc(var(--bp-ds-icon-box) * var(--ui-scale,1))!important;
  min-width:calc(var(--bp-ds-icon-box) * var(--ui-scale,1))!important;
  min-height:calc(var(--bp-ds-icon-box) * var(--ui-scale,1))!important;
  padding:0!important;display:grid!important;place-items:center!important;
}
html body button.x .ui-icon,html body .panel-close .ui-icon{width:var(--bp-ds-icon)!important;height:var(--bp-ds-icon)!important}

@media(max-width:760px){
  :root{--bp-ds-page-title:24px;--bp-ds-card-pad:15px;--bp-ds-gap:10px}
}

/* ===== IDMIX Tech 1.0.47 · banners e ações responsivas ===== */
html body .page-head{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) max-content!important;
  align-items:center!important;
  gap:18px!important;
  min-width:0!important;
}
html body .page-head>:first-child{min-width:0!important}
html body .page-head>.actions{
  justify-self:end!important;
  align-self:center!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  flex-wrap:nowrap!important;
  gap:8px!important;
  min-width:0!important;
  max-width:100%!important;
}
html body .page-head>.actions>.btn{flex:0 0 auto!important;white-space:nowrap!important}
html body .page-head>.actions.bp-banner-icons-only-1047>.btn{
  width:var(--bp-ds-icon-box,42px)!important;
  min-width:var(--bp-ds-icon-box,42px)!important;
  height:var(--bp-ds-icon-box,42px)!important;
  padding:0!important;
  display:grid!important;
  place-items:center!important;
}
html body .page-head>.actions.bp-banner-icons-only-1047>.btn>span{display:none!important}
html body .page-head>.actions.bp-banner-icons-only-1047>.btn>.ui-icon{margin:0!important}
html body .page-head>.actions.bp-banner-stack-1047{
  grid-column:1/-1!important;
  justify-self:end!important;
  margin-top:-4px!important;
}
@media(max-width:760px){
  html body .page-head{gap:12px!important}
}

/* 1.0.47: cobre também banners cujo bloco de ações está aninhado (ex.: Detalhes da Comanda). */
html body .page-head>.bp-banner-side-1047{
  justify-self:end!important;
  align-self:center!important;
  min-width:0!important;
}
html body .page-head>.bp-banner-side-1047>.actions,
html body .page-head>.bp-banner-side-1047 .actions{
  align-items:center!important;
  justify-content:center!important;
}
html body .page-head .actions.bp-banner-icons-only-1047>.btn{
  width:var(--bp-ds-icon-box,42px)!important;
  min-width:var(--bp-ds-icon-box,42px)!important;
  height:var(--bp-ds-icon-box,42px)!important;
  padding:0!important;
  display:grid!important;
  place-items:center!important;
  font-size:0!important;
}
html body .page-head .actions.bp-banner-icons-only-1047>.btn>span{display:none!important}
html body .page-head.bp-banner-stack-1047>.bp-banner-side-1047{
  grid-column:1/-1!important;
  justify-self:end!important;
  margin-top:-4px!important;
}

/* Grupos de ação fora dos banners também priorizam ícones em falta de espaço. */
html body :is(.actions,.modal-actions,.detail-toolbar,.batch-actions,.user-row-actions,.picker-actions).bp-actions-icons-only-1047{
  flex-wrap:nowrap!important;
}
html body :is(.actions,.modal-actions,.detail-toolbar,.batch-actions,.user-row-actions,.picker-actions).bp-actions-icons-only-1047>.btn{
  width:var(--bp-ds-icon-box,42px)!important;
  min-width:var(--bp-ds-icon-box,42px)!important;
  height:var(--bp-ds-icon-box,42px)!important;
  padding:0!important;
  display:grid!important;
  place-items:center!important;
  font-size:0!important;
  flex:0 0 var(--bp-ds-icon-box,42px)!important;
}
html body :is(.actions,.modal-actions,.detail-toolbar,.batch-actions,.user-row-actions,.picker-actions).bp-actions-icons-only-1047>.btn>span{display:none!important}

/* O template UDesign possuía regras históricas mais específicas abaixo de 980px.
 * Esta regra final mantém o padrão 1.0.47: ações à direita; texto some antes de empilhar. */
html[data-ui-template="udesign"] body .page-head{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) max-content!important;
  align-items:center!important;
  gap:18px!important;
}
html[data-ui-template="udesign"] body .page-head>.actions,
html[data-ui-template="udesign"] body .page-head>.bp-banner-side-1047{
  width:max-content!important;
  min-width:0!important;
  max-width:100%!important;
  justify-self:end!important;
  align-self:center!important;
  margin-left:0!important;
}
html[data-ui-template="udesign"] body .page-head>.actions{
  justify-content:center!important;
  flex-wrap:nowrap!important;
  overflow:visible!important;
}
html[data-ui-template="udesign"] body .page-head>.actions>.btn{
  flex:0 0 auto!important;
  width:auto!important;
  max-width:none!important;
}
@media(max-width:980px){
  html[data-ui-template="udesign"] body .page-head{
    grid-template-columns:minmax(0,1fr) max-content!important;
    gap:12px!important;
  }
  html[data-ui-template="udesign"] body .page-head>:last-child:not(:first-child),
  html[data-ui-template="udesign"] body .page-head>.actions,
  html[data-ui-template="udesign"] body .page-head>.bp-banner-side-1047{
    width:max-content!important;
    min-width:0!important;
    max-width:100%!important;
    justify-self:end!important;
    align-self:center!important;
  }
  html[data-ui-template="udesign"] body .page-head>.actions{
    justify-content:center!important;
    flex-wrap:nowrap!important;
  }
  html[data-ui-template="udesign"] body .page-head.bp-banner-stack-1047{
    grid-template-columns:minmax(0,1fr)!important;
  }
  html[data-ui-template="udesign"] body .page-head.bp-banner-stack-1047>.bp-banner-side-1047,
  html[data-ui-template="udesign"] body .page-head.bp-banner-stack-1047>.actions{
    grid-column:1/-1!important;
    justify-self:end!important;
  }
}

/* ===== IDMIX Tech 1.0.49 · escala única de produção ===== */
:root{
  --bp-ds-section-title:18px;
  --bp-ds-row-title:14px;
  --bp-ds-meta:12.5px;
}
html body h2{font-size:calc(var(--bp-ds-section-title) * var(--ui-scale,1))!important;line-height:1.3!important}
html body h3{font-size:calc(var(--bp-ds-card-title) * var(--ui-scale,1))!important;line-height:1.35!important}
html body h4{font-size:calc(var(--bp-ds-row-title) * var(--ui-scale,1))!important;line-height:1.4!important}
html body :is(.btn,.btn.compact,.theme-btn,.filter-btn){
  min-height:calc(var(--bp-ds-control) * var(--ui-scale,1))!important;
  height:auto!important;
  font-size:calc(var(--bp-ds-button) * var(--ui-scale,1))!important;
  line-height:1.2!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:8px!important;
  padding:9px 14px!important;
}
html body :is(.btn,.btn.compact)>.ui-icon{
  width:calc(var(--bp-ds-icon) * var(--ui-scale,1))!important;
  height:calc(var(--bp-ds-icon) * var(--ui-scale,1))!important;
  min-width:calc(var(--bp-ds-icon) * var(--ui-scale,1))!important;
  flex:0 0 calc(var(--bp-ds-icon) * var(--ui-scale,1))!important;
  margin:0!important;
}
html body :is(.icon-btn,.top-btn,[class*="icon-btn"],.agenda1044-nav,.kds-item-check){
  width:calc(var(--bp-ds-icon-box) * var(--ui-scale,1))!important;
  height:calc(var(--bp-ds-icon-box) * var(--ui-scale,1))!important;
  min-width:calc(var(--bp-ds-icon-box) * var(--ui-scale,1))!important;
  min-height:calc(var(--bp-ds-icon-box) * var(--ui-scale,1))!important;
  padding:0!important;display:grid!important;place-items:center!important;
}
html body :is(.icon-btn,.top-btn,[class*="icon-btn"],.agenda1044-nav,.kds-item-check) .ui-icon{
  width:calc(var(--bp-ds-icon) * var(--ui-scale,1))!important;
  height:calc(var(--bp-ds-icon) * var(--ui-scale,1))!important;
}
html body .qty button{min-width:calc(var(--bp-ds-icon-box) * var(--ui-scale,1))!important;width:calc(var(--bp-ds-icon-box) * var(--ui-scale,1))!important;min-height:calc(var(--bp-ds-icon-box) * var(--ui-scale,1))!important;height:calc(var(--bp-ds-icon-box) * var(--ui-scale,1))!important;padding:0!important;display:grid!important;place-items:center!important}
html body .bp-actions-icons-only-1049>.btn,
html body .bp-banner-icons-only-1049>.btn{
  width:calc(var(--bp-ds-icon-box) * var(--ui-scale,1))!important;
  min-width:calc(var(--bp-ds-icon-box) * var(--ui-scale,1))!important;
  height:calc(var(--bp-ds-icon-box) * var(--ui-scale,1))!important;
  min-height:calc(var(--bp-ds-icon-box) * var(--ui-scale,1))!important;
  padding:0!important;font-size:0!important;display:grid!important;place-items:center!important;
}
html body .bp-actions-icons-only-1049>.btn>span,
html body .bp-banner-icons-only-1049>.btn>span{display:none!important}
html body .bp-actions-icons-only-1049>.btn>.ui-icon,
html body .bp-banner-icons-only-1049>.btn>.ui-icon{width:var(--bp-ds-icon)!important;height:var(--bp-ds-icon)!important;margin:0!important}
