/* LEVEL-ONE global compact card baseline.
   Basis: Mischung aus Clubkonsum und Konto.
   Diese Datei wird zuletzt geladen und ist die zentrale Korrekturschicht. */
:root {
  --lo-card-radius-global: 22px;
  --lo-card-padding-global: clamp(1rem, 1.45vw, 1.25rem);
  --lo-card-header-padding-global: clamp(1rem, 1.45vw, 1.22rem);
  --lo-card-gap-global: clamp(0.5rem, 0.8vw, 0.68rem);
  --lo-card-grid-gap-global: clamp(0.78rem, 1.2vw, 1.05rem);
  --lo-card-shadow-global: 0 10px 24px rgba(0, 0, 0, 0.14), inset 0 0 0 1px rgba(255, 255, 255, 0.025);
  --lo-h1-global: clamp(1.5rem, 1.9vw, 1.78rem);
  --lo-h2-global: clamp(1.1rem, 1.3vw, 1.22rem);
  --lo-h3-global: clamp(1rem, 1.1vw, 1.1rem);
  --lo-copy-global: 0.95rem;
  --lo-small-global: 0.87rem;
}

.page-header,
.calendar-page-hero,
.section-card,
.form-card,
.admin-card,
.member-card,
.club-card,
.contact-card,
.news-card,
.page-surface,
.hours-card,
.table-card,
.news-entry,
.admin-note,
.account-main-card,
.account-summary,
.member-header,
.reservation-toolbar-card,
.club-calendar-shell,
.admin-nav-shell.admin-card {
  min-width: 0 !important;
  max-width: 100% !important;
  padding: var(--lo-card-padding-global) !important;
  border: 1px solid var(--theme-border) !important;
  border-radius: var(--lo-card-radius-global) !important;
  background: linear-gradient(180deg, var(--theme-surface-strong), var(--theme-surface)) !important;
  box-shadow: var(--lo-card-shadow-global) !important;
}

.page-header,
.calendar-page-hero,
.account-header,
.member-page-header,
.club-page-header,
.admin-top-card {
  display: grid !important;
  gap: var(--lo-card-gap-global) !important;
  min-height: 0 !important;
  margin-block: var(--card-stack-gap) !important;
  padding: var(--lo-card-header-padding-global) !important;
  overflow: hidden;
}

.page-section,
.admin-sections,
.account-flow,
.member-shell,
.club-consumption-page,
.reservation-page,
.news-feed,
.club-topics,
.club-membership-grid,
.member-catalog-grid,
.table-grid,
.contact-grid,
.card-grid {
  gap: var(--lo-card-grid-gap-global) !important;
}

.calendar-page-hero-row,
.admin-top-card-head,
.account-summary-head,
.member-top-grid,
.members-overview,
.reservation-toolbar,
.section-heading {
  gap: var(--lo-card-gap-global) !important;
}

.calendar-page-hero-copy,
.admin-header-copy,
.member-page-header,
.account-summary-copy,
.member-intro,
.page-subsection-heading {
  display: grid !important;
  gap: 0.36rem !important;
}

.page-header h1,
.calendar-page-hero h1,
.admin-card h1,
.admin-top-card h1,
h1.page-title,
.admin-page-title,
.section-card h1,
.account-header h1,
.member-page-header h1,
.club-page-header h1 {
  margin: 0 !important;
  font-size: var(--lo-h1-global) !important;
  line-height: 1.08 !important;
  letter-spacing: -0.035em !important;
}

.section-card h2,
.member-card h2,
.club-card h2,
.contact-card h2,
.news-card h2,
.table-card h2,
.hours-card h2,
.section-heading h2,
.member-intro h2,
.account-main-card h2,
.reservation-toolbar-card h2,
.club-calendar-title {
  margin: 0 !important;
  font-size: var(--lo-h2-global) !important;
  line-height: 1.14 !important;
  letter-spacing: -0.025em !important;
}

.section-card h3,
.member-card h3,
.club-card h3,
.contact-card h3,
.news-card h3,
.table-card h3,
.account-main-card h3,
.form-card h3,
.card-title,
.admin-card-title {
  margin-top: 0 !important;
  font-size: var(--lo-h3-global) !important;
  line-height: 1.18 !important;
}

.lead-text,
.page-intro,
.page-header p,
.section-card p,
.member-card p,
.club-card p,
.contact-card p,
.news-card p,
.account-summary-copy p,
.member-kv-row,
.account-meta-row,
.section-heading span,
.muted,
.meta {
  max-width: 70ch;
  margin-block: 0 !important;
  font-size: var(--lo-copy-global) !important;
  line-height: 1.42 !important;
}

.muted,
.meta,
.member-subtle,
.account-meta-row dt,
.section-heading span,
.page-editor-tab span,
.page-editor-tab small {
  font-size: var(--lo-small-global) !important;
}

.page-header > :not(:first-child),
.section-card > :not(:first-child),
.form-card > :not(:first-child),
.admin-card > :not(:first-child),
.member-card > :not(:first-child),
.club-card > :not(:first-child),
.contact-card > :not(:first-child),
.news-card > :not(:first-child),
.account-main-card > :not(:first-child),
.account-summary > :not(:first-child),
.member-header > :not(:first-child) {
  margin-top: var(--lo-card-gap-global) !important;
}

.section-heading {
  margin-bottom: var(--lo-card-gap-global) !important;
  padding-bottom: 0.65rem !important;
  border-bottom-color: var(--theme-border) !important;
}

.member-kv-list,
.account-meta-list,
.member-action-row,
.account-summary-chips,
.button-row,
.booking-modal-actions,
.club-calendar-toolbar,
.member-catalog-item,
.account-section,
.account-main-actions {
  gap: var(--lo-card-gap-global) !important;
}

.member-kv-row,
.account-meta-row,
.club-price-list div {
  padding-block: 0.5rem !important;
}

.primary-button,
.secondary-button,
.ghost-button,
.admin-button,
.important-button {
  min-height: 2.4rem !important;
  padding: 0.48rem 0.85rem !important;
  font-size: 0.87rem !important;
  line-height: 1.15 !important;
}

.member-catalog-image {
  height: 120px !important;
}

/* Admin war der groesste Ausreisser: 50-admin.css legt eigene Grid-/Badge-Regeln darueber.
   Diese Regeln normalisieren nur Struktur und Groessen, nicht die Inhalte. */
.admin-top-card .admin-top-card-head {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) minmax(17rem, auto) !important;
  align-items: start !important;
}

.admin-top-card .admin-release-meta--stack {
  display: flex !important;
  flex-wrap: wrap !important;
  justify-content: flex-end !important;
  align-items: center !important;
  gap: 0.38rem !important;
}

.admin-top-card .admin-release-version--meta {
  display: inline-flex !important;
  align-items: center !important;
  gap: 0.42rem !important;
  min-height: 1.8rem !important;
  margin: 0 !important;
  padding: 0.22rem 0.56rem !important;
  border-radius: 999px !important;
  font-size: 0.8rem !important;
  line-height: 1.1 !important;
}

.admin-top-card .admin-release-stamp {
  flex-basis: 100% !important;
  margin: 0.18rem 0 0 !important;
  font-size: 0.8rem !important;
  line-height: 1.25 !important;
  text-align: right !important;
}

.admin-top-card .admin-nav-shell--integrated {
  margin-top: 0.65rem !important;
}

.admin-top-card .admin-anchor-nav {
  gap: 0.42rem !important;
}

.admin-top-card .admin-anchor-nav a,
.admin-top-card .admin-nav-toggle {
  min-height: 2rem !important;
  padding: 0.32rem 0.68rem !important;
  font-size: 0.82rem !important;
  line-height: 1.1 !important;
}

@media (max-width: 920px) {
  .admin-top-card .admin-top-card-head {
    grid-template-columns: 1fr !important;
  }

  .admin-top-card .admin-release-meta--stack {
    justify-content: flex-start !important;
  }

  .admin-top-card .admin-release-stamp {
    text-align: left !important;
  }
}

@media (max-width: 720px) {
  :root {
    --lo-card-padding-global: 0.95rem;
    --lo-card-header-padding-global: 1rem;
    --lo-h1-global: clamp(1.38rem, 6.4vw, 1.65rem);
    --lo-h2-global: clamp(1.04rem, 4.4vw, 1.16rem);
  }

  .calendar-page-hero-row,
  .admin-top-card-head,
  .account-summary-head,
  .member-top-grid {
    align-items: stretch !important;
    flex-direction: column !important;
  }

  .calendar-page-hero-action {
    width: 100%;
  }
}
