/* Camada de composição leve, sem alterar medidas ou disposição. */

/* O fundo sólido/gradiente existente continua igual; somente o blur de GPU é
   dispensado nas superfícies grandes. */
:is(
  .glass,.controlsBar,.hero,.listCardWrap,.historyDock,
  .adminPanelCard,.backendPanel,.subCard,.adminBox,
  .whiteMainList,.whiteSidePanel,.strongSubBlock,
  .iasPanel,.iasCard,.analysisSheetWrap,.analysisExtraCard
){
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
}

/* Linhas fora da janela visual mantêm o espaço, mas não são pintadas até
   chegarem perto da rolagem. Os cálculos e os dados completos permanecem. */
@supports (content-visibility:auto){
  :is(
    .listGrid>.lrow,
    .v78ClassStageRows>.v78ClassRow,
    .strongHistoryList>* ,
    .debtRecent>* ,
    .adminSubGrid>.adminRow,
    .tokenPerformancePeriods>div,
    .v43HourList>.v43HourRow
  ){
    content-visibility:auto;
    contain-intrinsic-size:auto 32px;
    contain:layout paint style;
  }
}

canvas,video{
  contain:layout paint style;
}

/* Aba em segundo plano não compõe animação, canvas ou mídia. */
html.db-page-hidden *,
html.db-page-hidden *::before,
html.db-page-hidden *::after{
  animation-play-state:paused!important;
}
html.db-page-hidden :is(canvas,video){
  content-visibility:hidden!important;
}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{
    animation-duration:.001ms!important;
    animation-iteration-count:1!important;
    transition-duration:.001ms!important;
    scroll-behavior:auto!important;
  }
}

/* R12 Anti-Freeze — composição estável no desktop, sem inserção de lotes durante a rolagem.
   O celular preserva exatamente a composição anterior, que já estava estável. */
.dbListLoadSentinel{
  display:block;
  width:1px;
  height:1px;
  margin:0;
  padding:0;
  pointer-events:none;
  opacity:0;
  overflow-anchor:none;
  contain:strict;
}

@media (min-width:1201px){
  /* content-visibility em dezenas de linhas lado a lado gerava revelações caras
     durante a rolagem rápida do mouse. A janela de DOM agora é controlada pelo JS. */
  body[data-page-section="lists"] .listGrid>.lrow{
    content-visibility:auto!important;
    contain:layout paint style!important;
    box-shadow:none!important;
    filter:none!important;
  }

  body[data-page-section="lists"] :is(
    .v78ClassRow,.top3PatternCard,.nextSignalCard,
    .listScoreboard .scoreMini,.v59ClassCard
  ){
    box-shadow:none!important;
    filter:none!important;
  }

  body[data-page-section="lists"] :is(
    .v52PrimaryListsGrid>.listColumn,
    .v52MultiModelsGrid>.v52MultiModelColumn,
    .listCardWrap,.v52MultiModelCard
  ){
    contain:layout paint style;
  }

  body[data-page-section="lists"] .telegramEmoji{
    filter:none!important;
  }
}


/* R12 Anti-Freeze — o painel prioriza resposta imediata sobre efeitos cosméticos. */
html,
body{
  scroll-behavior:auto!important;
  overscroll-behavior-y:auto;
}

body.perf-lite *,
body.perf-lite *::before,
body.perf-lite *::after{
  animation:none!important;
  transition-duration:.001ms!important;
  transition-delay:0s!important;
}

body.perf-lite :is(
  .glass,.controlsBar,.hero,.listCardWrap,.historyDock,
  .adminPanelCard,.backendPanel,.subCard,.adminBox,
  .whiteMainList,.whiteSidePanel,.strongSubBlock,
  .iasPanel,.iasCard,.analysisSheetWrap,.analysisExtraCard,
  .listColumn,.v52MultiModelColumn,.v52MultiModelCard,
  .historyDateSection,.historyGridWrap
){
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
  background-attachment:scroll!important;
}

body.perf-lite :is(
  .lrow,.historyCell,.v78ClassRow,.top3PatternCard,.nextSignalCard,
  .v59ClassCard,.scoreMini,.strongMinuteCard,.debtCard,.iasCard,
  .whiteSignalRow,.analysisRow
){
  box-shadow:none!important;
  filter:none!important;
  text-shadow:none!important;
}

body.perf-lite :is(
  .listGrid,.historyGridRows,.v78ClassStageRows,
  .v52MultiModelsGrid,.debtRecent,.strongHistoryList
){
  contain:layout style;
}

html.db-emergency-lite *,
body.db-emergency-lite *,
html.db-emergency-lite *::before,
body.db-emergency-lite *::before,
html.db-emergency-lite *::after,
body.db-emergency-lite *::after{
  animation:none!important;
  transition:none!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
  scroll-behavior:auto!important;
}

body.db-emergency-lite :is(
  .lrow,.historyCell,.listCardWrap,.historyDock,.v78ClassRow,
  .top3PatternCard,.nextSignalCard,.v59ClassCard,.strongMinuteCard,
  .iasCard,.whiteSignalRow,.analysisRow
){
  box-shadow:none!important;
  filter:none!important;
  text-shadow:none!important;
}
