/*
 * The workspace contains several large Ant tables with sticky columns.  Shadows,
 * translucent gradients and hover transforms on their ancestors make Chrome
 * repaint those tables on every scroll frame.  Keep this stylesheet deliberately
 * plain: data-heavy pages should remain cheap even after the tab has been open
 * for a long time.
 */
.app-shell .app-header,
.app-shell .workspace-tabs > .ant-tabs-nav {
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
  background: #fff !important;
  box-shadow: none !important;
}

/* Do not promote dozens of cards and fixed cells into independent paint layers. */
.app-shell .ant-card,
.app-shell .ant-card:hover,
.app-shell .ant-table-cell-fix-left,
.app-shell .ant-table-cell-fix-right,
.app-shell .ant-table-cell-fix-left-first::after,
.app-shell .ant-table-cell-fix-left-last::after,
.app-shell .ant-table-cell-fix-right-first::after,
.app-shell .ant-table-cell-fix-right-last::after {
  box-shadow: none !important;
  transition: none !important;
}

.app-shell .ant-card:hover,
.wb-scrolling .app-shell .ant-btn:hover {
  transform: none !important;
}

/* A flat background avoids repainting the full viewport-sized radial gradient. */
.app-shell .app-content {
  background: #f1f5fa !important;
}

/* The sidebar is static; its wide 26px shadow needlessly overlaps every frame. */
.app-shell > .app-sider {
  box-shadow: none !important;
}

/* During an actual scroll, also suppress hover/row transitions and animations. */
.wb-scrolling .app-shell .ant-table-tbody > tr > td,
.wb-scrolling .app-shell .ant-tabs-tab,
.wb-scrolling .app-shell .ant-btn,
.wb-scrolling .app-shell .ant-tag {
  transition: none !important;
  animation: none !important;
}

@media (prefers-reduced-motion: reduce) {
  .app-shell * { scroll-behavior: auto !important; }
}
