/**
 * Shared layout: keep horizontal inset when main uses both .container and .layout.
 * Many themes set `.layout { padding: 2rem 0 }`, which resets left/right padding from `.container`.
 */
main.container.layout,
.container.layout {
  padding-inline: max(1rem, env(safe-area-inset-left, 0px)) max(1rem, env(safe-area-inset-right, 0px));
}

@media (min-width: 480px) {
  main.container.layout,
  .container.layout {
    padding-inline: max(1.25rem, env(safe-area-inset-left, 0px)) max(1.25rem, env(safe-area-inset-right, 0px));
  }
}

@media (min-width: 768px) {
  main.container.layout,
  .container.layout {
    padding-inline: max(1.5rem, env(safe-area-inset-left, 0px)) max(1.5rem, 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;
  }
}
