/* Box Boy V5.8.34 — etapa 2: migração visual dos módulos.
 * Base: V5.8.33. Somente aparência. Não alterar estrutura de mapas,
 * marcadores, gráficos, estados de pedidos, CSS de impressão nem tabelas internas.
 * Os seletores identificam componentes reais, inclusive carregados sob demanda.
 */
body.boxboy-theme-light{
  --bb34-card:var(--bb33-surface,#fff);
  --bb34-soft:#f8fafc;
  --bb34-row:#f5f8fb;
  --bb34-text:var(--bb33-text,#172732);
  --bb34-muted:var(--bb33-muted,#45596a);
  --bb34-border:var(--bb33-outline,#ffb957);
  --bb34-inner:var(--bb33-divider,#e1e7ed);
  --bb34-field:var(--bb33-field-border,#aebcc9);
  --bb34-highlight:#fff3e1;
  --bb34-primary:#ffb957;
  --bb34-purple:#3e1284;
  --bb34-ink-on-accent:#2c210d;
  --bb34-radius:10px;
  --bb34-radius-field:8px;
}
body.boxboy-theme-dark{
  --bb34-card:var(--bb33-surface,#0d2434);
  --bb34-soft:var(--bb33-surface-alt,#102c3f);
  --bb34-row:#142f41;
  --bb34-text:var(--bb33-text,#eff6fc);
  --bb34-muted:var(--bb33-muted,#bfd1dd);
  --bb34-border:var(--bb33-outline,#d79b57);
  --bb34-inner:var(--bb33-divider,#335063);
  --bb34-field:var(--bb33-field-border,#597386);
  --bb34-highlight:#392e1c;
  --bb34-primary:#ffb957;
  --bb34-purple:#5825a5;
  --bb34-ink-on-accent:#241b10;
  --bb34-radius:10px;
  --bb34-radius-field:8px;
}

/* A. Cards de primeiro nível: listas verificadas no HTML, CSS e JS dos módulos.
 * Nunca aplicar a todas as divs ou aos nós do Leaflet/Google Maps. */
body:is(.boxboy-theme-light,.boxboy-theme-dark) .tabpage :is(
  .dashboard-sla-kpi-v5655,.dashboard-highlight-card-v5655,
  .dashboard-ranking-card-v5655,.dashboard-detail-card-v5655,
  .dashboard-courier-card-v5658,.report-finance-compare-card,
  .finance-requested-card,.courier-filters,.heat-kpis .kpi,
  .queues-list-card-v5637,.queue-general-card-v5736,
  .queue-panel-v5640,.queue-ops-card-v5637,
  .clan-link-card,.clan-info-panel-v654,.v50-config-box,
  .v50-linked-card,.v50-form-card,.courier-profile-card-v539,
  .communications-filter-card-v562,.communications-table-card-v562,
  .billing-kpi-v5722,.billing-general-filters-v5722,
  .billing-email-kpi-v5728,.billing-email-filters-v5728,
  .billing-email-model-section-v5728,.billing-wa-kpis-v5770>article,
  .wd-kpi-v5622,.wd-filter-card-v5622,.wd-list-card-v5622,
  .wd-exempt-panel-v5750,.wd-exempt-list-panel-v5750,
  .af-mass-list-panel-v5757,.af-mass-form-panel-v5757,
  .mg-store-card-v584,.commission-kpi,
  .commission-rule-list-card,.commission-editor-card,.commission-history-card,
  .bb-extra-kpi-v5746,.bb-extra-group-card-v5746,
  .bb-extra-polygon-card-v5746,.bb-extra-default-card-v5746,
  .extra-fees-list-card-v557,.bb-extra-editor-card-v5746,
  .app-banner-card-v5673,.app-banner-add-card-v5673,
  .developer-summary-card-v5696,.saipos-v5772
){
  box-sizing:border-box;
  border:1px solid var(--bb34-border)!important;
  border-radius:var(--bb34-radius)!important;
  background:var(--bb34-card)!important;
  background-image:none!important;
  color:var(--bb34-text)!important;
  box-shadow:none!important;
}
/* O contêiner da cobrança é transparente de propósito; apenas FILTROS é um card. */
body:is(.boxboy-theme-light,.boxboy-theme-dark) #billingChargesPage .billing-general-card-v5722{
  border:0!important;background:transparent!important;box-shadow:none!important;
}

/* B. Grupos visuais e separadores internos — mais suaves que bordas externas. */
body:is(.boxboy-theme-light,.boxboy-theme-dark) .tabpage :is(
  .billing-batch-toolbar-v5720,.billing-email-filter-options-v5728,
  .billing-close-fields-panel-v5723,
  .wd-help-panel-v5631,.af-mass-preview-summary-v5757,
  .queue-vehicle-card-v5640,.queues-op-queue-card-v5642,
  .clan-link-row-v654,.commission-store-box,.commission-rule-item,
  .commission-store-check,.queue-list-item-v5637,
  .v50-vehicle-card
){
  border-color:var(--bb34-inner)!important;
  border-radius:var(--bb34-radius-field)!important;
  background:var(--bb34-soft)!important;
  color:var(--bb34-text)!important;
  box-shadow:none!important;
}
body:is(.boxboy-theme-light,.boxboy-theme-dark) .tabpage :is(
  .commission-rule-item.active,.queue-list-item-v5637.active,
  .queues-op-queue-card-v5642.active,.v50-vehicle-card.selected,
  .app-banner-card-v5673.selected
){border-color:var(--bb34-border)!important;background:var(--bb34-highlight)!important}
body:is(.boxboy-theme-light,.boxboy-theme-dark) .tabpage :is(
  .queue-editor-head-v5640,.commission-table-wrap,.billing-table-wrap-v571,
  .wd-tablewrap-v5622,.wd-exempt-table-wrap-v5750,
  .mg-table-wrap-v584,.af-table-wrap-v5751,.v50-table-wrap,
  .audit-table-wrap-v563,.communications-tablewrap-v562,
  .courier-admin-table-wrap-v539,.general-report-tablewrap,
  .commission-store-box,.saipos-section
){border-color:var(--bb34-inner)!important}

/* C. Campos e labels de módulos lazy: alguns usam IDs/classes mais fortes
 * que a primeira camada visual. Não aplicar a checkboxes, radios ou file. */
body:is(.boxboy-theme-light,.boxboy-theme-dark) :is(
 #commissionsPage,#billingChargesPage,#queuesPage,#automaticFinancePage,
 #minimumGuaranteePage,#withdrawalsPage,#clansPage,#storesAdminPage,
 #billingTablesPage,#paymentTablesPage,#whatsappPage,#developerPage
 ) :is(input:not([type=checkbox]):not([type=radio]):not([type=file]),select,textarea){
  box-sizing:border-box;
  border:1px solid var(--bb34-field)!important;
  border-radius:var(--bb34-radius-field)!important;
  min-height:38px;
  background:var(--bb34-card)!important;
  color:var(--bb34-text)!important;
  box-shadow:none!important;
}
body.boxboy-theme-dark :is(#commissionsPage,#billingChargesPage,#queuesPage,#automaticFinancePage,
 #minimumGuaranteePage,#withdrawalsPage,#clansPage,#storesAdminPage,
 #billingTablesPage,#paymentTablesPage,#whatsappPage,#developerPage)
 :is(input:not([type=checkbox]):not([type=radio]):not([type=file]),select,textarea){
  background:var(--bb34-soft)!important;
}
body:is(.boxboy-theme-light,.boxboy-theme-dark) :is(#commissionsPage,#billingChargesPage,
 #queuesPage,#automaticFinancePage,#minimumGuaranteePage,#withdrawalsPage,
 #whatsappPage,#developerPage) :is(label,.filter label,.commission-form-grid label>span,
 .commission-store-title span,.queue-config-strip-v5640 label){
  color:var(--bb34-text)!important;
}
/* Somente texto explicativo: preservar verde, vermelho e símbolos de status. */
body:is(.boxboy-theme-light,.boxboy-theme-dark) :is(#commissionsPage,#queuesPage,
 #withdrawalsPage,#automaticFinancePage,#minimumGuaranteePage) :is(
  .commission-kpi span,.commission-kpi small,.commission-rule-item small,
  .commission-rule-note,.queue-list-item-v5637 small,
  .queue-list-meta-v5640,.queue-editor-heading-v5640 .desc,
  .wd-kpi-label-v5622,.mg-note-v584,.af-editor-meta-v5751
){color:var(--bb34-muted)!important}
body:is(.boxboy-theme-light,.boxboy-theme-dark) #commissionsPage .commission-kpi b{
  color:var(--bb34-text)!important;
}
body:is(.boxboy-theme-light,.boxboy-theme-dark) #commissionsPage :is(
  .commission-table th,.commission-table td){border-color:var(--bb34-inner)!important}
body:is(.boxboy-theme-light,.boxboy-theme-dark) #commissionsPage .commission-table th{
  background:var(--bb34-soft)!important;color:var(--bb34-muted)!important}
body:is(.boxboy-theme-light,.boxboy-theme-dark) #commissionsPage .commission-rule-item:hover{
  border-color:var(--bb34-border)!important;background:var(--bb34-highlight)!important}

/* D. Filtros e ações: manter a semântica de erro/exclusão; Filtrar e Limpar
 * com identidade específica, sem substituir botões de status. */
body:is(.boxboy-theme-light,.boxboy-theme-dark) .tabpage :is(
 #commercialFilterV50,#billingGeneralApplyDatesV5721,#billingEmailApplyDatesV5721,
 #billingWaRefreshV5770,#auditFilterV563,#wdApplyFiltersV5622,
 #afFilterGoV5751,#storeCatalogFilterV50,#clientsFilterV562,
 #reportGenerate,#filterRegistrations
){
  min-height:38px;border:1px solid #bd7f2c!important;
  border-radius:var(--bb34-radius-field)!important;
  background:var(--bb34-primary)!important;color:var(--bb34-ink-on-accent)!important;
  box-shadow:none!important;font-weight:700;
}
body:is(.boxboy-theme-light,.boxboy-theme-dark) .tabpage :is(
 #commercialClearV50,#billingGeneralClearDatesV5721,#billingEmailClearDatesV5721,
 #billingWaClearDatesV5770,#auditClearV563,#fIgnoreStoresClear,
 #reportClear,#clearRegistrationFilters,#storeCatalogClearV50
){
  min-height:38px;border:1px solid var(--bb34-purple)!important;
  border-radius:var(--bb34-radius-field)!important;
  background:var(--bb34-purple)!important;color:#fff!important;
  box-shadow:none!important;font-weight:700;
}
body:is(.boxboy-theme-light,.boxboy-theme-dark) .tabpage :is(
 .mg-btn-v584,.apk-button-v5733,.saipos-v5772 button,
 .wd-icon-action-v5629,.orders-map-action,.courier-admin-icon-action-v569
 ){
  border-radius:var(--bb34-radius-field)!important;
}
body:is(.boxboy-theme-light,.boxboy-theme-dark) :is(#billingChargesPage,#commissionsPage,
 #queuesPage,#automaticFinancePage,#minimumGuaranteePage,#withdrawalsPage,
 #storesAdminPage,#billingTablesPage,#paymentTablesPage)
 :is(button,input,select,textarea,[role=button]):focus-visible{
  outline:2px solid var(--bb33-focus)!important;outline-offset:2px!important;
}

/* E. Modais fora de .tabpage: evitar contornos cinza/preto e superfícies
 * que não acompanham o tema. Não alterar backdrop nem posição. */
body:is(.boxboy-theme-light,.boxboy-theme-dark) :is(
 #courierCreateFormV539,#ordersManualDrawer .orders-drawer-card,
 #ordersManualDrawer .orders-modal-card,.wd-modal-card-v5622,
 .queues-modal-card-v5637,.extra-fee-group-modal-v589 .card
){
  border:1px solid var(--bb34-border)!important;
  border-radius:var(--bb34-radius)!important;
  background:var(--bb34-card)!important;
  color:var(--bb34-text)!important;
}
body:is(.boxboy-theme-light,.boxboy-theme-dark) :is(
 #courierCreateFormV539,#ordersManualDrawer,.wd-modal-card-v5622,
 .queues-modal-card-v5637) :is(header,footer,.orders-modal-head,
 .courier-simple-modal-head-v539,.courier-simple-modal-actions-v539){
  border-color:var(--bb34-inner)!important;
}

/* F. Mantém o conteúdo respirando sem colar bordas, inclusive em mobile.
 * NUNCA mudar grids operacionais do mapa nem alturas de banners/vídeos. */
body:is(.boxboy-theme-light,.boxboy-theme-dark) .tabpage :is(
  .commission-kpis,.commission-admin-grid,.app-banner-grid-v5673,
  .bb-extra-group-kpis-v5746,.billing-kpis-v5722,
  .wd-kpis-v5622,.mg-store-grid-v584,.queue-general-grid-v5736,
  .queues-admin-layout-v5637,.clan-admin-grid,.heat-kpis,
  .dashboard-bottom-grid-v5655,.dashboard-overview-grid-v5655
){gap:12px}
body:is(.boxboy-theme-light,.boxboy-theme-dark) .tabpage :is(
 .v50-pagination,.billing-pagination-controls-v5722,.wd-list-toolbar-v5622,
 .courier-admin-list-head-v539,.audit-list-head-v563,
 .commission-head-actions,.billing-general-actions-v5722
){gap:8px}
body:is(.boxboy-theme-light,.boxboy-theme-dark) .tabpage :is(
 .billing-pagination-controls-v5722,.v50-pagination,.bb33-pager
){max-width:100%;flex-wrap:wrap}
body:is(.boxboy-theme-light,.boxboy-theme-dark) .tabpage :is(
 .v50-table-wrap,.billing-table-wrap-v571,.wd-tablewrap-v5622,
 .audit-table-wrap-v563,.commission-table-wrap,.general-report-tablewrap
){max-width:100%;overflow-x:auto}
@media(max-width:750px){
  body:is(.boxboy-theme-light,.boxboy-theme-dark) #commissionsPage .commission-admin-grid{
    grid-template-columns:minmax(0,1fr)!important;
  }
  body:is(.boxboy-theme-light,.boxboy-theme-dark) #commissionsPage .commission-kpis{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
  body:is(.boxboy-theme-light,.boxboy-theme-dark) .tabpage :is(
    .billing-general-actions-v5722,.commission-head-actions,.v50-pagination,
    .billing-pagination-controls-v5722
  ){flex-wrap:wrap;justify-content:flex-start}
}
@media(max-width:430px){
  body:is(.boxboy-theme-light,.boxboy-theme-dark) #commissionsPage .commission-kpis{
    grid-template-columns:minmax(0,1fr)!important;
  }
}

/* Pedidos usa .orders-card (não .orders-order-card, da regra antiga).
 * Preservar a cor de estágio/status que distingue a operação. */
body:is(.boxboy-theme-light,.boxboy-theme-dark) #ordersPanelPage .orders-card{
  border:1px solid var(--bb34-border)!important;
  border-radius:var(--bb34-radius)!important;
}
body:is(.boxboy-theme-light,.boxboy-theme-dark) #ordersPanelPage .orders-group-pagination-v5693 :is(button){
  min-width:34px;min-height:34px;
  border-radius:var(--bb34-radius-field)!important;
  border-color:var(--bb34-inner)!important;
}
/* Layout de Lojas V5.8.14 tem seletores por ID que vencem a camada geral. */
body:is(.boxboy-theme-light,.boxboy-theme-dark) #storesAdminPage :is(
 .v50-filter-card,.v50-list-card,.v50-config-box,.v50-linked-card,.v50-form-card
){
 border:1px solid var(--bb34-border)!important;
 border-radius:var(--bb34-radius)!important;
}
/* Clãs ainda usa 7px nas colunas principais; harmonizar apenas o card externo. */
body:is(.boxboy-theme-light,.boxboy-theme-dark) #clansPage :is(
 .clan-list-card,.clan-editor-card,.clan-info-panel-v654,.clan-link-card
){
 border:1px solid var(--bb34-border)!important;
 border-radius:var(--bb34-radius)!important;
}

/* Estados de diagnóstico conservam cores de alerta/erro da regra operacional. */
body:is(.boxboy-theme-light,.boxboy-theme-dark) #queuesPage .queue-diagnostic-card-v5639{
 border-radius:var(--bb34-radius-field)!important;
}
/* Faixa informativa de comissão preserva o alerta em vez de apagar o status. */
body:is(.boxboy-theme-light,.boxboy-theme-dark) #commissionsPage .commission-source{
 border:1px solid var(--bb34-border)!important;
 border-radius:var(--bb34-radius)!important;
 background:var(--bb34-card)!important;
 color:var(--bb34-text)!important;
}
body:is(.boxboy-theme-light,.boxboy-theme-dark) #commissionsPage .commission-source.warn{
 background:var(--bb34-highlight)!important;
}
