html {
  font-size: 14px;
  min-height: 100%;
  overflow-x: hidden;
}

@media (min-width: 768px) {
  html {
    font-size: 16px;
  }
}

.btn:focus,
.btn:active:focus,
.btn-link.nav-link:focus,
.form-control:focus,
.form-check-input:focus {
  box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem #258cfb;
}

body {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
  /* 使用 min-height 确保页面至少占满视口高度 */
  margin: 0;
  width: 100%;
  box-sizing: border-box;
  overflow-x: hidden;
}

/* 主内容区域自动扩展填充剩余空间 */
.main-container {
  flex: 1 0 auto;
  /* 允许主内容区域扩展 */
}

/* 确保页脚不会浮动或覆盖内容 */
.footer {
  flex-shrink: 0;
  /* 页脚不会被压缩 */
  width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  box-sizing: border-box !important;
  margin-top: auto !important;
  /* 将页脚推到底部 */
}