html:has(.app-sidebar) {
  width: 100%;
  min-width: 100%;
  min-height: 100vh;
  background-color: #171423 !important;
  background-image:
    linear-gradient(115deg, rgba(242, 183, 127, .08), rgba(88, 74, 119, .12) 45%, transparent 78%) !important;
  background-attachment: scroll !important;
  background-repeat: no-repeat !important;
  background-size: cover !important;
}

body:has(.app-sidebar) {
  position: relative;
  width: 100%;
  min-width: 100%;
  min-height: 100vh;
  background: transparent !important;
  padding-left: 292px !important;
  padding-bottom: 0 !important;
  overflow-x: hidden;
}

body:has(.app-sidebar)::after {
  display: none !important;
}

body:has(.app-sidebar)::before {
  display: none !important;
}

body:has(.app-sidebar) .page {
  position: relative;
  z-index: 1;
  background: transparent !important;
  box-shadow: none !important;
}

body:has(.app-sidebar) .page::before,
body:has(.app-sidebar) .page::after {
  display: none !important;
}

body:has(.app-sidebar) .app-sidebar {
  position: fixed !important;
  inset: 24px auto 24px 24px !important;
  z-index: 40;
  width: 244px !important;
  padding: 16px !important;
}

body:has(.app-sidebar).sidebar-collapsed .app-sidebar,
body.sidebar-collapsed .app-sidebar {
  width: 76px !important;
  padding: 16px !important;
}

body:has(.app-sidebar) .page,
body:has(.app-sidebar).sidebar-collapsed .page {
  width: min(1180px, calc(100vw - 332px)) !important;
  max-width: none !important;
  margin: 0 auto 0 0 !important;
  padding: 32px 20px 56px !important;
  transform: none !important;
}

body:has(.app-sidebar) .account-topbar {
  position: absolute !important;
  top: 30px !important;
  right: 20px !important;
  z-index: 45;
}

body:has(.app-sidebar) .page-account-spacer {
  min-height: 64px !important;
}

.page-head:has(.back-link) .back-link {
  position: fixed !important;
  top: 30px !important;
  left: 312px !important;
  z-index: 35;
}

body:has(.app-sidebar) .packages-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 14px !important;
}

body:has(.app-sidebar) .package-card {
  min-height: 368px !important;
  padding: 20px 18px !important;
}

body:has(.app-sidebar) .package-top {
  min-height: 54px !important;
  gap: 8px !important;
}

body:has(.app-sidebar) .package-card h2 {
  font-size: 20px !important;
}

body:has(.app-sidebar) .package-badge,
body:has(.app-sidebar) .package-discount {
  font-size: 11px !important;
}

body:has(.app-sidebar) .package-price {
  margin-top: 18px !important;
  font-size: 30px !important;
}

body:has(.app-sidebar) .package-calls {
  font-size: 14px !important;
}

body:has(.app-sidebar) .package-description {
  margin-top: 18px !important;
  font-size: 14px !important;
}

body:has(.app-sidebar) .package-pay-form {
  padding-top: 20px !important;
}

@media (max-width: 900px) {
  body:has(.app-sidebar),
  body:has(.app-sidebar).sidebar-collapsed {
    padding-left: 0 !important;
    padding-bottom: calc(96px + env(safe-area-inset-bottom)) !important;
  }

  body:has(.app-sidebar) .account-topbar {
    position: static !important;
    width: auto !important;
    max-width: 560px !important;
    margin: 14px auto 0 !important;
  }

  body:has(.app-sidebar) .page,
  body:has(.app-sidebar).sidebar-collapsed .page {
    width: min(100%, 560px) !important;
    margin: 0 auto !important;
    padding: 20px 18px calc(120px + env(safe-area-inset-bottom)) !important;
  }

  body:has(.app-sidebar) .app-sidebar,
  body:has(.app-sidebar).sidebar-collapsed .app-sidebar,
  body.sidebar-collapsed .app-sidebar {
    position: fixed !important;
    inset: auto 16px calc(14px + env(safe-area-inset-bottom)) !important;
    width: auto !important;
    height: 72px !important;
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 10px !important;
    padding: 10px 12px !important;
    border-radius: 22px !important;
  }

  .page-head:has(.back-link) .back-link {
    left: 14px !important;
  }
}

@media (max-width: 1280px) {
  body:has(.app-sidebar) .packages-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 900px) {
  body:has(.app-sidebar) .packages-grid {
    grid-template-columns: 1fr !important;
  }
}

body:has(.app-sidebar) .app-sidebar,
body:has(.app-sidebar) .account-topbar,
body:has(.app-sidebar) .card,
body:has(.app-sidebar) .task-card,
body:has(.app-sidebar) .leads-panel,
body:has(.app-sidebar) .package-card,
body:has(.app-sidebar) .required-modal {
  backdrop-filter: none !important;
}

body:has(.app-sidebar) .sidebar-nav a.active {
  background: rgba(242, 183, 127, .14) !important;
  color: #fff8ef !important;
}

body:has(.app-sidebar) .sidebar-nav a.active .sidebar-icon {
  border-color: rgba(242, 183, 127, .34) !important;
  background: rgba(242, 183, 127, .18) !important;
  color: #ffe0bd !important;
}

/* Final lightweight client cabinet overrides for smoother Safari/macOS scroll. */
html:has(.app-sidebar),
body:has(.app-sidebar) {
  background-attachment: scroll !important;
}

body:has(.app-sidebar)::before,
body:has(.app-sidebar)::after,
body:has(.app-sidebar) .page::before,
body:has(.app-sidebar) .page::after {
  display: none !important;
}

body:has(.app-sidebar) .app-sidebar,
body:has(.app-sidebar) .account-topbar,
body:has(.app-sidebar) .card,
body:has(.app-sidebar) .task-card,
body:has(.app-sidebar) .leads-panel,
body:has(.app-sidebar) .table-card,
body:has(.app-sidebar) .package-card,
body:has(.app-sidebar) .billing-summary div,
body:has(.app-sidebar) .payment-warning,
body:has(.app-sidebar) .required-modal,
body:has(.app-sidebar) .button,
body:has(.app-sidebar) button {
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  filter: none !important;
}

body:has(.app-sidebar) .card,
body:has(.app-sidebar) .task-card,
body:has(.app-sidebar) .leads-panel,
body:has(.app-sidebar) .table-card,
body:has(.app-sidebar) .package-card,
body:has(.app-sidebar) .billing-summary div,
body:has(.app-sidebar) .payment-warning {
  box-shadow: 0 1px 0 rgba(255, 255, 255, .06) inset !important;
  contain: paint;
}

body:has(.app-sidebar) .app-sidebar,
body:has(.app-sidebar) .account-topbar,
body:has(.app-sidebar) .button,
body:has(.app-sidebar) button {
  box-shadow: none !important;
}
body:has(.client-conversations-layout) .page,
body:has(.client-conversations-layout).sidebar-collapsed .page {
  width: min(1540px, calc(100vw - 332px)) !important;
  max-width: none !important;
}

@media (max-width: 900px) {
  body:has(.client-conversations-layout) .page,
  body:has(.client-conversations-layout).sidebar-collapsed .page {
    width: min(100%, 560px) !important;
  }
}

/* Final scroll-performance pass for all client cabinet pages. */
html:has(.app-sidebar),
body:has(.app-sidebar) {
  background-attachment: scroll !important;
  overflow-x: hidden;
}

body:has(.app-sidebar)::before,
body:has(.app-sidebar)::after,
body:has(.app-sidebar) .page::before,
body:has(.app-sidebar) .page::after {
  display: none !important;
  content: none !important;
}

body:has(.app-sidebar) *,
body:has(.app-sidebar) *::before,
body:has(.app-sidebar) *::after {
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  filter: none !important;
  text-shadow: none !important;
}

body:has(.app-sidebar) .card,
body:has(.app-sidebar) .task-card,
body:has(.app-sidebar) .leads-panel,
body:has(.app-sidebar) .table-card,
body:has(.app-sidebar) .package-card,
body:has(.app-sidebar) .billing-summary div,
body:has(.app-sidebar) .payment-warning,
body:has(.app-sidebar) .client-conversations-list,
body:has(.app-sidebar) .client-conversation-filter-card,
body:has(.app-sidebar) .client-conversation-card,
body:has(.app-sidebar) .client-conversation-group,
body:has(.app-sidebar) .client-record-card {
  box-shadow: 0 1px 0 rgba(255, 255, 255, .06) inset !important;
}

body:has(.app-sidebar) .task-card,
body:has(.app-sidebar) .client-conversation-card,
body:has(.app-sidebar) .client-conversation-group,
body:has(.app-sidebar) .client-record-card {
  content-visibility: auto;
  contain-intrinsic-size: 120px;
}
