/* 全局字体大小 */
html {
  font-size: 14px;
}

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

body {
  min-height: 100vh;
  background-color: #f8f9fa;
}

/* 顶栏偏移：顶栏 fixed-top 占了 56px，所以内容区下移 */
.main-content {
  margin-top: 56px;
}

/* 桌面端固定左侧栏 */
.sidebar-fixed {
  position: fixed;
  top: 56px;
  left: 0;
  bottom: 0;
  width: 220px;
  overflow-y: auto;
  background-color: #fff;
  border-right: 1px solid #dee2e6;
  padding: 12px 0;
}

/* 桌面端主内容区右移 220px */
@media (min-width: 768px) {
  .main-content {
    margin-left: 220px;
  }
}

/* 侧边栏导航样式 */
.sidebar-nav .nav-link {
  padding: 8px 20px;
  color: #212529;
  border-left: 3px solid transparent;
}

.sidebar-nav .nav-link:hover {
  background-color: #f8f9fa;
}

.sidebar-nav .nav-link.active {
  background-color: #e7f1ff;
  color: #0d6efd;
  border-left-color: #0d6efd;
  font-weight: 500;
}

/* 菜单分组标题 */
.sidebar-nav .nav-section {
  padding: 12px 20px 4px;
  font-size: 12px;
  color: #6c757d;
  text-transform: uppercase;
  letter-spacing: 1px;
}

/* offcanvas 模式下复用同样的导航样式 */
.offcanvas-body .sidebar-nav .nav-link {
  padding: 10px 20px;
}

/* 表单必填项星号 */
.required-star {
  color: #dc3545;
  margin-left: 2px;
}

/* 表格紧凑模式 */
.table-sm-custom th,
.table-sm-custom td {
  padding: 6px 8px;
}
