/* 全站 LayoutShell 高度唯一来源；允许长内容自然扩展，不锁定滚动容器。 */
.layout-shell {
  box-sizing: border-box;
  min-height: 100vh;
  min-height: 100dvh;
  min-width: 0;
  display: flex;
  flex-direction: column;
}
.layout-shell-content { flex: 1 0 auto; min-width: 0; }
.layout-shell > footer, .layout-shell > .site-footer { flex-shrink: 0; }
/* 账号卡片使用外框分配的剩余空间，避免重复扣减固定导航/页脚高度。 */
.portal-site-content { display: flex; flex-direction: column; }
.portal-site-content > .auth-layout { flex: 1 0 auto; min-height: 0; }
@media (min-width: 1024px) {
  .layout-shell.portal-layout-shell { flex-direction: row; }
  .portal-layout-shell > .layout-shell-content { flex: 1 1 0%; }
}
