/**
 * Shared layout: keep horizontal inset on .container.
 * Theme rules like `.tx-page { padding: 2rem 0 }` reset left/right padding when combined with .container.
 */
:root {
  --yh-page-gutter: 1rem;
}

@media (min-width: 480px) {
  :root {
    --yh-page-gutter: 1.125rem;
  }
}

@media (min-width: 768px) {
  :root {
    --yh-page-gutter: 1.25rem;
  }
}

@media (min-width: 900px) {
  :root {
    --yh-page-gutter: 1.5rem;
  }
}

.container {
  padding-left: max(var(--yh-page-gutter), env(safe-area-inset-left, 0px));
  padding-right: max(var(--yh-page-gutter), env(safe-area-inset-right, 0px));
}

main.container.layout,
.container.layout {
  padding-left: max(var(--yh-page-gutter), env(safe-area-inset-left, 0px));
  padding-right: max(var(--yh-page-gutter), env(safe-area-inset-right, 0px));
}

.content {
  min-width: 0;
}

/* ── 浮动按钮与底部导航协调 ── */
:root {
  --yh-dock-bottom: 0px;
  --yh-fab-edge: 1rem;
  --yh-fab-gap: 0.65rem;
  --yh-crm-fab-size: 3.5rem;
  --yh-crm-fab-offset: 0px;
}

@media (max-width: 899px) {
  body:has(.tx-mbar),
  body:has(.sf-mobile-bar) {
    --yh-dock-bottom: calc(var(--mbar-h, 3.75rem) + env(safe-area-inset-bottom, 0px));
  }
}

body:has(.yh-crm-floating-wrap) {
  --yh-crm-fab-offset: calc(var(--yh-crm-fab-size) + var(--yh-fab-gap));
}

body:has(.yh-crm-floating-btn--pill) {
  --yh-crm-fab-size: 2.85rem;
}

.yh-crm-floating-wrap {
  bottom: calc(var(--yh-fab-edge) + var(--yh-dock-bottom, 0px)) !important;
}

.back-to-top,
.corp-back-top,
.studio-back-top,
.kid-back-top,
.sf-back-top {
  bottom: calc(var(--yh-fab-edge) + var(--yh-dock-bottom, 0px) + var(--yh-crm-fab-offset, 0px)) !important;
  z-index: 210;
}

@media (min-width: 900px) {
  :root {
    --yh-fab-edge: 1.35rem;
  }
}
