/* Portal-specific extensions built on the supplied Maxton tokens and utilities. */
.main-wrapper .main-content {
  min-height: calc(100vh - 130px);
}

.page-breadcrumb .breadcrumb {
  --bs-breadcrumb-divider: "›";
}

.chart-placeholder {
  min-height: 280px;
  border-radius: 1rem;
  background: linear-gradient(180deg, rgba(var(--bs-primary-rgb), .08), transparent);
}

.profile-avatar {
  width: 88px;
  height: 88px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  color: var(--bs-primary);
  background: var(--bs-primary-bg-subtle);
}

.profile-avatar .material-icons-outlined {
  font-size: 3rem;
}

.profile-details dt,
.profile-details dd {
  padding-block: .75rem;
  border-bottom: 1px solid var(--bs-border-color);
}

.card h3,
.card .display-5 {
  overflow-wrap: anywhere;
  font-size: clamp(1.35rem, 2.2vw, 2rem);
}

.top-header .dropdown-toggle > span {
  display: inline-block;
  max-width: 12rem;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  vertical-align: middle;
}

.deposit-qr {
  width: 180px;
  height: 180px;
  object-fit: contain;
  border: 1px solid var(--bs-border-color);
  border-radius: 1rem;
  background: #fff;
  padding: .75rem;
}

.summary-panel {
  display: grid;
  gap: .75rem;
  padding: 1rem;
  border-radius: 1rem;
  background: var(--bs-tertiary-bg);
}

.summary-panel > div {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}

.tree-canvas,
.integration-slot,
.article-content,
.package-features {
  min-height: 120px;
}

.reward-tabs {
  overflow-x: auto;
  flex-wrap: nowrap;
  padding-bottom: .25rem;
}

.reward-tabs .nav-link {
  white-space: nowrap;
}

.table-responsive {
  scrollbar-width: thin;
}

.table th {
  white-space: nowrap;
}

.card,
.form-control,
.form-select,
.btn,
.nav-link,
.list-group-item {
  transition: box-shadow .2s ease, transform .2s ease, border-color .2s ease;
}

.card:has(> a),
a.card:hover {
  transform: translateY(-2px);
}

:focus-visible {
  outline: 3px solid rgba(var(--bs-primary-rgb), .35) !important;
  outline-offset: 2px;
}

.back-to-top {
  width: 44px;
  height: 44px;
  z-index: 1010;
}

code {
  overflow-wrap: anywhere;
}

@media (max-width: 575.98px) {
  .main-wrapper .main-content {
    padding-inline: 1rem;
  }

  .page-breadcrumb h2 {
    font-size: 1.5rem;
  }

  .deposit-qr {
    width: 150px;
    height: 150px;
  }

  .table-responsive .table {
    min-width: 680px;
  }
}

@media print {
  .top-header,
  .sidebar-wrapper,
  .page-footer,
  .back-to-top,
  .btn-toggle {
    display: none !important;
  }

  .main-wrapper,
  .main-wrapper .main-content {
    margin: 0 !important;
    padding: 0 !important;
  }
}
