/* Box Boy V5.8.53 — revisão complementar da V5.8.52.
   Superfícies e tabelas são delimitadas por componente; sem alteração nos
   estados semânticos, Google Maps, controles do Android/PWA ou formulários. */
body.boxboy-theme-light{
  --bb53-card:#fff;--bb53-card-border:#f1a15e;
  --bb53-text:#172b45;--bb53-muted:#526779;
  --bb53-field:#fff;--bb53-field-border:#d1dde8;
  --bb34-card:var(--bb53-card);--bb34-border:var(--bb53-card-border);
}
body.boxboy-theme-dark{
  --bb53-card:#0c2535;--bb53-card-border:#27485e;
  --bb53-text:#eff5fb;--bb53-muted:#a8bac9;
  --bb53-field:#0c2535;--bb53-field-border:#36566b;
  --bb34-card:var(--bb53-card);--bb34-border:var(--bb53-card-border);
}
/* A etiqueta estava no fluxo, deslocando 45px os títulos abaixo dela.
   Mantemos o aviso visual, mas não sua ocupação no layout. */
.tabpage.boxboy-page-loading-v5830 {position:relative;cursor:progress;}
.tabpage.boxboy-page-loading-v5830::before{
  position:absolute;right:10px;top:4px;left:auto;z-index:12;
  display:block;width:max-content;max-width:min(230px,90%);
  margin:0;padding:7px 11px;border-radius:8px;
  background:var(--bb53-card,#0c2535);border:1px solid var(--bb53-card-border,#27485e);
  color:var(--bb53-text,#eff5fb);font-size:12px;
  pointer-events:none;box-shadow:0 4px 14px #06152324;
}
/* Reservar a geometria das duas listas de consulta; nunca alterar suas colunas. */
#storesAdminPage .v50-table-wrap,
#registrationsPage .registration-table-wrap {min-height:min(340px,48vh);position:relative;}
#storesAdminPage .v50-table-wrap[data-bb53-loading="different"] #storeCatalogBodyV50 tr,
#registrationsPage .registration-table-wrap[data-bb53-loading="different"] #registrationTable tr {visibility:hidden;}
#storesAdminPage .v50-table-wrap[data-bb53-loading="different"]::after,
#registrationsPage .registration-table-wrap[data-bb53-loading="different"]::after{
  content:"Carregando resultados…";position:absolute;top:62px;left:16px;
  z-index:3;padding:10px 12px;border-radius:8px;pointer-events:none;
  color:var(--bb53-muted);background:var(--bb53-card);
  border:1px solid var(--bb53-field-border);
}
#storesAdminPage .v50-table-wrap[data-bb53-loading="same"]::after,
#registrationsPage .registration-table-wrap[data-bb53-loading="same"]::after{
  content:"Atualizando…";position:absolute;top:9px;right:12px;z-index:4;
  padding:4px 9px;border-radius:7px;pointer-events:none;
  background:var(--bb53-card);color:var(--bb53-muted);
  border:1px solid var(--bb53-field-border);font-size:11px;
}
/* A centralização vale somente para tabelas do painel, não para textos de
   formulários, cartões de pedido ou elementos do Google Maps. */
/* Algumas telas antigas especificam alinhamentos por coluna: são substituídos
   somente nas tabelas, mantendo ordenação e classes do cabeçalho. */
body:is(.boxboy-theme-light,.boxboy-theme-dark) :is(
  #reportsPage,#couriersPage,#registrationsPage,#storesAdminPage,#clientsPage,
  #contractsPage,#billingChargesPage,#automaticFinancePage,
  #minimumGuaranteePage,#withdrawalsPage,#quickWithdrawPage,#commissionsPage,
  #financePage,#billingTablesPage,#paymentTablesPage,#whatsappPage,#auditPage,
  #collectionsPage
) table :is(th,td){text-align:center;vertical-align:middle;}
body:is(.boxboy-theme-light,.boxboy-theme-dark) :is(
  #reportsPage,#couriersPage,#registrationsPage,#storesAdminPage,#clientsPage,
  #contractsPage,#billingChargesPage,#automaticFinancePage,#minimumGuaranteePage,
  #withdrawalsPage,#quickWithdrawPage,#commissionsPage,#financePage,
  #billingTablesPage,#paymentTablesPage,#whatsappPage,#auditPage,#collectionsPage
) table th :is(button.bb33-sort-head,button.bb36-th-sort,button.bb37-th-sort,
button.bb38-fin-sort,button.bb39-billing-sort,button.bb-th-sort-v5835){
  justify-content:center;text-align:center;width:100%;
}
body:is(.boxboy-theme-light,.boxboy-theme-dark) :is(
  #reportsPage,#couriersPage,#registrationsPage,#storesAdminPage,#clientsPage,
  #contractsPage,#billingChargesPage,#automaticFinancePage,#minimumGuaranteePage,
  #withdrawalsPage,#quickWithdrawPage,#commissionsPage,#financePage,
  #billingTablesPage,#paymentTablesPage,#whatsappPage,#auditPage,#collectionsPage
) table td :is(.v50-actions,.courier-admin-actions-v539,.report-action-group-v5842,
.bb37-table-actions,.billing-row-actions-v5722){justify-content:center;align-items:center;}
body:is(.boxboy-theme-light,.boxboy-theme-dark) :is(
  #reportsPage,#contractsPage,#billingChargesPage,#minimumGuaranteePage,
  #commissionsPage,#automaticFinancePage
) table td :is(input:not([type=checkbox]),select){text-align:center;}
/* Cards externos compartilham os mesmos tokens de Relatórios; os controles
   internos conservam bordas neutras e as cores de status não são modificadas. */
body:is(.boxboy-theme-light,.boxboy-theme-dark) .tabpage > .card{border-color:var(--bb53-card-border);}
body:is(.boxboy-theme-light,.boxboy-theme-dark) .tabpage :is(
  .v50-filter-card,.v50-list-card,.v50-form-card,
  .courier-admin-filter-card-v539,.courier-admin-list-card-v539,
  .courier-admin-detail-card-v539,.bb-reg-kpi-v5738,
  .clan-list-card,.clan-editor-card,.clan-info-panel-v654,.clan-link-card,
  .ship-card,.apk-panel-v5733,.app-banner-card-v5673,
  .app-banner-add-card-v5673,.billing-kpi-v571,.billing-form-card-v571,
  .billing-preview-card-v571,.billing-table-wrap-v571,
  .bb-heat-filter-card-v5845,.bb-heat-map-card-v5845,
  .bb-heat-side-card-v5845,.bb-heat-geo-card-v5845,.bb-heat-kpi-v5845
){border-color:var(--bb53-card-border);}
/* Temas de alto contraste já existiam na base: somente os contêineres
   que ainda recebem uma borda explícita antiga necessitam de precedência. */
body.boxboy-theme-light #clansPage.tabpage :is(.clan-list-card,.clan-editor-card,.clan-info-panel-v654,.clan-link-card),
body.boxboy-theme-dark #clansPage.tabpage :is(.clan-list-card,.clan-editor-card,.clan-info-panel-v654,.clan-link-card){
  background:var(--bb53-card)!important;border-color:var(--bb53-card-border)!important;
}
body.boxboy-theme-light #registrationsPage :is(.courier-admin-filter-card-v539,.courier-admin-list-card-v539,.courier-admin-detail-card-v539,.bb-reg-kpi-v5738),
body.boxboy-theme-dark #registrationsPage :is(.courier-admin-filter-card-v539,.courier-admin-list-card-v539,.courier-admin-detail-card-v539,.bb-reg-kpi-v5738){
  background:var(--bb53-card);border-color:var(--bb53-card-border);
}
body.boxboy-theme-light #heatmapPage.bb-heat-v5845.tabpage,
body.boxboy-theme-dark #heatmapPage.bb-heat-v5845.tabpage{
  --heat45-outline:var(--bb53-card-border);
}
body.boxboy-theme-light #heatmapPage .bb-heat-filter-card-v5845,
body.boxboy-theme-light #heatmapPage .bb-heat-map-card-v5845,
body.boxboy-theme-light #heatmapPage :is(.bb-heat-side-card-v5845,.bb-heat-geo-card-v5845),
body.boxboy-theme-dark #heatmapPage .bb-heat-filter-card-v5845,
body.boxboy-theme-dark #heatmapPage .bb-heat-map-card-v5845,
body.boxboy-theme-dark #heatmapPage :is(.bb-heat-side-card-v5845,.bb-heat-geo-card-v5845){
  border-color:var(--bb53-card-border);
}
/* Alguns cards anteriores não usam o componente compartilhado .card;
   completamos apenas os contêineres externos verificados na auditoria. */
body:is(.boxboy-theme-light,.boxboy-theme-dark) :is(#storesAdminPage,#registrationsPage,#clansPage,
#shippingPage,#bannersPage,#androidDistributionPage) :is(
  .v50-filter-card,.v50-list-card,.courier-admin-filter-card-v539,
  .courier-admin-list-card-v539,.bb-reg-kpi-v5738,
  .ship-card,.app-banner-card-v5673,.apk-panel-v5733
){background:var(--bb53-card);border-color:var(--bb53-card-border);}
body:is(.boxboy-theme-light,.boxboy-theme-dark) #registrationsPage :is(
  .courier-admin-filter-card-v539,.courier-admin-list-card-v539,.bb-reg-kpi-v5738
){background-image:none;}
/* Cadastros: texto ilegível no claro, cabeçalhos e ações de linha escuros. */
body.boxboy-theme-light #registrationsPage .courier-admin-filter-title-v539,
body.boxboy-theme-light #registrationsPage .courier-admin-filter-title-v539 span,
body.boxboy-theme-light #registrationsPage .courier-admin-list-head-v539,
body.boxboy-theme-light #registrationsPage .courier-admin-list-head-v539 b,
body.boxboy-theme-light #registrationsPage .bb-reg-name-cell-v5739 b,
body.boxboy-theme-light #registrationsPage .bb-reg-person-v5738 b,
body.boxboy-theme-light #registrationsPage .courier-admin-table-v539 :is(th,td){color:#172b45;}
body.boxboy-theme-light #registrationsPage .courier-admin-list-head-v539{
  background:#fff7ef;border-bottom-color:#ead7c5;
}
body.boxboy-theme-light #registrationsPage .courier-admin-table-v539 th{
  background:#f4f8fb;color:#172b45;
}
body.boxboy-theme-light #registrationsPage .courier-admin-action-v539:not(.danger){
  background:#fff;color:#172b45;border-color:#d1dde8;
}
body.boxboy-theme-light #registrationsPage .courier-admin-action-v539.danger{
  background:#fff4f5;color:#a62d3a;border-color:#d8a3aa;
}
body:is(.boxboy-theme-light,.boxboy-theme-dark) #registrationsPage #registrationModalFilter{
  border-radius:7px;background:var(--bb53-field);border-color:var(--bb53-field-border);
  color:var(--bb53-text);height:34px;min-height:34px;font-size:11px;
}
/* Lojas: o invólucro já possui ícone, raio e borda. O CSS V5.8.52 dava
   uma segunda borda ao input. Overrides !important apenas pela precedência
   necessária sobre declarações históricas (não uma regra global). */
body:is(.boxboy-theme-light,.boxboy-theme-dark) #storesAdminPage .v5814-filter-control{
  height:36px!important;min-height:36px!important;
  border-color:var(--bb53-field-border)!important;
  background:var(--bb53-field)!important;
}
body:is(.boxboy-theme-light,.boxboy-theme-dark) #storesAdminPage .v5814-filter-control :is(
  #storeCatalogSearchV50,#storeCatalogCnpjV50,#storeCatalogStatusV50,
  #storeCatalogVisibleV5725,#storeCatalogOriginV50,#storeCatalogClanV540
){
  height:100%!important;min-height:0!important;border:0!important;
  border-radius:0!important;box-shadow:none!important;
  background:transparent!important;line-height:normal!important;
  color:var(--bb53-text)!important;
}
/* Ranking: fundo escuro legado no SLA quando tema claro. */
body.boxboy-theme-light #couriersPage :is(.courier-sla-table,.sla-table-wrap,.courier-sla-card,.sla-card){
  background:#fff;color:#172b45;border-color:#d1dde8;
}
/* Banners e Integrações: remover somente molduras internas decorativas,
   preservando a borda externa, botões, foco e a prévia/upload. */
body:is(.boxboy-theme-light,.boxboy-theme-dark) #bannersPage :is(
  .app-banner-card-head-v5673,.app-banner-card-copy-v5673,.app-banner-card-actions-v5673
){border:0;box-shadow:none;background:transparent;}
body:is(.boxboy-theme-light,.boxboy-theme-dark) #developerPage .store-card-actions.integration-actions{
  border:0;box-shadow:none;background:transparent;
}
@media(max-width:700px){
  .tabpage.boxboy-page-loading-v5830::before{right:5px;top:3px;font-size:10px;padding:5px 7px;}
  #storesAdminPage .v50-table-wrap,#registrationsPage .registration-table-wrap{min-height:220px;}
}
