:root {
  --abboom-primary: #5c3d8f;
  --abboom-primary-rgb: 92, 61, 143;
  --abboom-radius-card: 0.75rem;
  --abboom-shadow-card: 0 2px 12px rgba(0, 0, 0, 0.08);
  --abboom-avatar-size-sm: 48px;
  --abboom-avatar-size-lg: 120px;
  --abboom-bottom-nav-height: 56px;
}

body {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}

main.abboom-main {
  flex: 1 0 auto;
}

.abboom-footer {
  flex-shrink: 0;
  padding-bottom: max(0.75rem, env(safe-area-inset-bottom));
}

.abboom-version {
  margin-top: 0.5rem;
  font-size: 0.75rem;
}

.profile-card .card-img-top {
  aspect-ratio: 1;
  object-fit: cover;
}

.profile-header-cover {
  height: 160px;
  background: linear-gradient(135deg, var(--abboom-primary), #8b6bb8);
  background-size: cover;
  background-position: center;
}

.profile-header-avatar {
  width: var(--abboom-avatar-size-lg);
  height: var(--abboom-avatar-size-lg);
  margin-top: calc(var(--abboom-avatar-size-lg) / -2);
  border: 4px solid #fff;
  object-fit: cover;
}

.abboom-bottom-nav {
  height: var(--abboom-bottom-nav-height);
  padding-bottom: env(safe-area-inset-bottom);
  z-index: 1030;
}

@media (max-width: 767.98px) {
  body.user-layout {
    padding-bottom: calc(var(--abboom-bottom-nav-height) + env(safe-area-inset-bottom));
  }
}

.btn,
.nav-link {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
}

.navbar-brand img {
  max-height: 40px;
  width: auto;
}

.offcanvas-version {
  border-top: 1px solid var(--bs-border-color);
  margin-top: 1rem;
  padding-top: 0.75rem;
  font-size: 0.8rem;
  color: var(--bs-secondary-color);
}
