/* ──────────────────────────────────────────────────────────────────────────────
 * AllocLab UI v5 — Layout primitives
 * 容器、bottom nav 安全距、main shell
 * ────────────────────────────────────────────────────────────────────────────── */

.shell {
  min-height: 100vh;
  min-height: 100dvh;
  display: flex;
  flex-direction: column;
}

.shell main {
  flex: 1 1 auto;
  /* 用 margin-bottom 而非 padding-bottom：避免被 page JS 設 height (border-box) 吃掉 */
  margin-bottom: calc(var(--app-nav-h) + var(--sp-4));
}

.container {
  width: 100%;
  max-width: 720px;
  margin-inline: auto;
  padding-inline: var(--pad-x);
}

.stack {
  display: flex;
  flex-direction: column;
  gap: var(--gap-card);
  min-width: 0;
}

.stack > * {
  min-width: 0;
}

/* Disclaimer footer line（每頁必含 L5 合規） */
.al-disclaimer {
  font-size: var(--fs-xs);
  color: var(--al-ink-muted);
  text-align: center;
  padding: var(--sp-4) var(--pad-x) var(--sp-2);
}

/* Desktop ≥768px：bottom nav → left rail（plan §5） */
@media (min-width: 768px) {
  body {
    --app-nav-h: 0px;
  }

  .shell {
    padding-left: 80px;
  }

  .shell main {
    margin-bottom: var(--sp-5);
  }
}
