* { margin: 0; padding: 0; box-sizing: border-box; }

body {
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'PingFang SC', 'Microsoft YaHei', sans-serif;
  background: #f0f2f5;
  color: #303133;
}

/* 登录页 */
.login-page {
  height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
}

.login-card {
  width: 400px;
  padding: 40px;
  background: #fff;
  border-radius: 12px;
  box-shadow: 0 20px 60px rgba(0,0,0,0.3);
}

.login-card h1 {
  text-align: center;
  margin-bottom: 8px;
  color: #303133;
  font-size: 24px;
}

.login-card .subtitle {
  text-align: center;
  color: #909399;
  margin-bottom: 30px;
  font-size: 14px;
}

/* 登录模式切换（本地/域） */
.login-mode-switch {
  display: flex;
  background: #f5f7fa;
  border-radius: 8px;
  padding: 4px;
  margin-bottom: 24px;
  gap: 4px;
}
.login-mode-switch .mode-tab {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 10px 0;
  font-size: 14px;
  font-weight: 500;
  color: #606266;
  cursor: pointer;
  border-radius: 6px;
  transition: all 0.2s;
}
.login-mode-switch .mode-tab:hover {
  color: #409eff;
}
.login-mode-switch .mode-tab.active {
  background: #fff;
  color: #409eff;
  box-shadow: 0 2px 4px rgba(0,0,0,0.08);
}
.login-form-panel {
  animation: fadeIn 0.2s ease;
}
@keyframes fadeIn {
  from { opacity: 0; transform: translateY(-4px); }
  to { opacity: 1; transform: translateY(0); }
}

/* 主布局 */
.app-layout { height: 100vh; }

.app-header {
  background: #fff;
  border-bottom: 1px solid #e8e8e8;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 24px;
  height: 56px;
}

.app-header .logo {
  font-size: 18px;
  font-weight: 600;
  color: #303133;
}

.app-header .user-info {
  display: flex;
  align-items: center;
  gap: 12px;
}

.app-aside {
  background: #fff;
  border-right: 1px solid #e8e8e8;
}

.app-aside .el-menu {
  border-right: none;
}

/* 排班表格 */
.schedule-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 13px;
  background: #fff;
}

.schedule-table th,
.schedule-table td {
  border: 1px solid #ebeef5;
  padding: 6px 4px;
  text-align: center;
  white-space: nowrap;
}

.schedule-table th {
  background: #f5f7fa;
  font-weight: 600;
  color: #606266;
}

.schedule-table .weekend {
  background: #fef0f0;
}

.schedule-table .weekend-header {
  background: #fde2e2;
}

/* 法定节假日 */
.schedule-table .holiday-cell,
.schedule-table .holiday-header {
  background: #fff0f0 !important;
}

.schedule-table .holiday-cell {
  border-left: 3px solid #f56c6c !important;
  border-right: 3px solid #f56c6c !important;
}

/* 调休上班日 */
.schedule-table .adjustment-cell,
.schedule-table .adjustment-header {
  background: #fdf6ec !important;
}

.schedule-table .adjustment-cell {
  border-left: 3px solid #e6a23c !important;
  border-right: 3px solid #e6a23c !important;
}

/* 报表中也使用节假日样式 */
.report-table .holiday-header { background: #f56c6c !important; color: #fff; }
.report-table .adjustment-header { background: #e6a23c !important; color: #fff; }

/* 排班/实际表内真正的数字输入框（el-input-number 等）样式。
   ⚠️ 排除 el-select 内部 input，否则会把下拉控件变成椭圆框。 */
.schedule-table input:not([class^="el-select__"]):not([class*=" el-select__"]) {
  width: 52px;
  text-align: center;
  border: 1px solid #dcdfe6;
  border-radius: 4px;
  padding: 2px 4px;
  font-size: 13px;
}

.schedule-table input:not([class^="el-select__"]):not([class*=" el-select__"]):focus {
  border-color: #409eff;
  outline: none;
}

.schedule-table .val-positive { color: #e6a23c; font-weight: 600; }
.schedule-table .val-negative { color: #f56c6c; font-weight: 600; }
.schedule-table .val-zero { color: #67c23a; }
.schedule-table .val-rest { color: #909399; }

/* 统计行 */
.stat-row {
  display: flex;
  gap: 16px;
  margin-bottom: 16px;
}

.stat-card {
  flex: 1;
  background: #fff;
  border-radius: 8px;
  padding: 16px 20px;
  box-shadow: 0 1px 4px rgba(0,0,0,0.08);
}

.stat-card .label { font-size: 13px; color: #909399; }
.stat-card .value { font-size: 24px; font-weight: 700; margin-top: 4px; }

/* 周选择器 */
.week-selector {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 16px;
}

/* 工具栏 */
.toolbar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 16px;
}

/* 值说明 */
.value-legend {
  display: flex;
  gap: 16px;
  font-size: 12px;
  color: #909399;
  flex-wrap: wrap;
}

.value-legend span { white-space: nowrap; }

/* 报表表格 */
.report-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 13px;
  background: #fff;
}

.report-table th,
.report-table td {
  border: 1px solid #ebeef5;
  padding: 6px 8px;
  text-align: center;
}

.report-table th {
  background: #545c64;
  color: #fff;
}

.report-table .total-row {
  background: #f0f2f5;
  font-weight: 600;
}

/* 排班表格 select */
.schedule-table select.cell-select {
  border: 1px solid #dcdfe6;
  border-radius: 4px;
  padding: 2px 2px;
  font-size: 12px;
  width: 60px;
  height: 24px;
  text-align: center;
  background: #fff;
  cursor: pointer;
}

.schedule-table select.cell-select:focus {
  border-color: #409eff;
  outline: none;
}

/* 批量操作栏 */
.batch-bar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 10px 16px;
  margin-bottom: 12px;
  background: #f0f2f5;
  border-radius: 8px;
  border: 1px solid #e4e7ed;
}

.batch-bar .batch-left {
  display: flex;
  align-items: center;
  gap: 4px;
}

.batch-bar .batch-right {
  display: flex;
  align-items: center;
  gap: 8px;
}

.batch-bar select.batch-select {
  border: 1px solid #dcdfe6;
  border-radius: 4px;
  padding: 4px 8px;
  font-size: 13px;
  width: 120px;
  background: #fff;
  cursor: pointer;
}

/* 选中单元格高亮 */
.schedule-table td.cell-selected {
  background: #ecf5ff !important;
  border: 2px solid #409eff !important;
  box-shadow: inset 0 0 0 1px rgba(64,158,255,0.2);
}

/* 实际工时表格 */
.actual-table .actual-cell {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 140px;
  text-align: left;
}

.actual-table .planned-row,
.actual-table .actual-row {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
}

.actual-table .report-row {
  margin-top: 2px;
}

.actual-table .report-input {
  width: 100%;
  min-width: 120px;
  border: 1px solid #e4e7ed;
  border-radius: 4px;
  padding: 2px 6px;
  font-size: 11px;
  height: 22px;
  color: #6062666;
  background: #fafafa;
}

.actual-table .report-input:focus {
  border-color: #409eff;
  outline: none;
  background: #fff;
}

/* 工作内容汇报：可点击单元格按钮（弹窗填写） */
.actual-table .report-btn {
  width: 100%;
  min-width: 120px;
  border: 1px dashed #c0c4cc;
  border-radius: 4px;
  padding: 2px 6px;
  font-size: 11px;
  height: 22px;
  line-height: 18px;
  color: #a8abb2;
  background: #fafafa;
  cursor: pointer;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
  transition: all 0.15s;
}

.actual-table .report-btn:hover {
  border-color: #409eff;
  color: #409eff;
  background: #ecf5ff;
}

.actual-table .report-btn.report-filled {
  border-style: solid;
  border-color: #b3d8ff;
  color: #409eff;
  background: #ecf5ff;
  font-weight: 600;
}

.actual-table .report-btn.report-filled:hover {
  border-color: #409eff;
  background: #d9ecff;
}

/* 汇报弹窗：本周日期快捷切换 + 已填写标识 */
.report-date-dots {
  display: flex;
  gap: 4px;
  flex-wrap: wrap;
}

.report-date-dots .report-date-dot {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 26px;
  height: 22px;
  padding: 0 4px;
  border: 1px solid #dcdfe6;
  border-radius: 4px;
  font-size: 12px;
  color: #909399;
  background: #fff;
  cursor: pointer;
  transition: all 0.15s;
  user-select: none;
}

.report-date-dots .report-date-dot:hover {
  border-color: #409eff;
  color: #409eff;
}

.report-date-dots .report-date-dot.is-filled {
  border-color: #b3d8ff;
  color: #409eff;
  background: #ecf5ff;
  font-weight: 600;
}

.report-date-dots .report-date-dot.is-active {
  border-color: #409eff;
  background: #409eff;
  color: #fff;
  box-shadow: 0 0 0 2px rgba(64, 158, 255, 0.2);
}

.report-date-dots .report-date-dot.is-active .dot-mark {
  background: #fff;
}

.report-date-dots .report-date-dot .dot-mark {
  position: absolute;
  top: -3px;
  right: -3px;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #f56c6c;
  border: 1px solid #fff;
  box-shadow: 0 0 0 1px rgba(245, 108, 108, 0.4);
}

/* 汇报弹窗日历：已填报日期标注（蓝底蓝字 + 右上角红点，与上方日期条同语义） */
.el-date-table td .el-date-table-cell.rp-filled {
  position: relative;
}

.el-date-table td:not(.current) .el-date-table-cell.rp-filled {
  background-color: #ecf5ff;
}

.el-date-table td:not(.current) .el-date-table-cell.rp-filled .el-date-table-cell__text {
  color: #409eff;
  font-weight: 600;
}

.el-date-table td .el-date-table-cell .rp-dot {
  position: absolute;
  top: 1px;
  right: 3px;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #f56c6c;
  border: 1px solid #fff;
  box-sizing: content-box;
}

.actual-table .row-disabled {
  opacity: 0.6;
}

/* 报表表格值颜色 */
.report-table .val-positive { color: #e6a23c; font-weight: 600; }
.report-table .val-negative { color: #f56c6c; font-weight: 600; }
.report-table .val-zero { color: #67c23a; }
.report-table .val-rest { color: #c0c4cc; }

/* loading */
.loading-page {
  height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* 排班/实际工时单元格下拉：完全矩形、无椭圆阴影；让数字内容直接铺在单元格里 */
.schedule-cell-select .el-select__wrapper {
  background-color: transparent !important;
  background-image: none !important;
  box-shadow: none !important;
  border-radius: 0 !important;
  padding: 0 4px !important;
  min-height: 22px !important;
  border: 0 !important;
}
/* 默认 + hover 都保持透明矩形 */
.schedule-cell-select .el-select__wrapper.is-hovering:not(.is-focused),
.schedule-cell-select .el-select__wrapper:hover {
  background-color: rgba(64, 158, 255, 0.04) !important;
  box-shadow: none !important;
}
/* focus 时显示淡蓝底（矩形），不出现椭圆焦点框 */
.schedule-cell-select .el-select__wrapper.is-focused {
  background-color: var(--el-color-primary-light-9) !important;
  box-shadow: none !important;
  outline: 1px solid var(--el-color-primary) !important;
  outline-offset: -1px !important;
}
/* 箭头 / placeholder 弱化 */
.schedule-cell-select .el-select__caret,
.schedule-cell-select .el-select__caret.is-show-close {
  color: #c0c4cc !important;
}
.schedule-cell-select .el-select__placeholder {
  color: #c0c4cc !important;
  font-size: 12px !important;
}
/* input 文本不要内 padding，撑满 wrapper；且彻底去掉 el-select 内部 input 的边框/圆角（避免成为椭圆框） */
.schedule-cell-select .el-select__input,
.schedule-cell-select .el-select__input-wrapper input,
.schedule-cell-select input.el-select__input {
  text-align: left !important;
  font-size: 13px !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  outline: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
  min-height: 0 !important;
  width: auto !important;
}
/* input wrapper 也去边框 */
.schedule-cell-select .el-select__input-wrapper {
  border: 0 !important;
  background: transparent !important;
  padding: 0 !important;
  margin: 0 !important;
}
/* 整个 selection / suffix 容器去掉任何外边框 */
.schedule-cell-select .el-select__selection,
.schedule-cell-select .el-select__suffix {
  border: 0 !important;
  box-shadow: none !important;
  background: transparent !important;
}
/* selected-item placeholder 也要去掉残留边框 */
.schedule-cell-select .el-select__selected-item {
  border: 0 !important;
  box-shadow: none !important;
  background: transparent !important;
}

/* 排班/实际单元格下拉弹出面板：完全矩形（popper 在 body，body → el-popper → el-select-dropdown → item） */
.el-popper.schedule-value-popper,
.el-popper.schedule-value-popper .el-select-dropdown,
.schedule-value-popper,
.schedule-value-popper.el-select-dropdown,
.el-select-dropdown.schedule-value-popper {
  border-radius: 0 !important;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12) !important;
}
.schedule-value-popper .el-select-dropdown__item,
.schedule-value-popper .el-select-dropdown__item.is-hovering,
.schedule-value-popper .el-select-dropdown__item:hover {
  border-radius: 0 !important;
}
/* 高亮的 ::before 伪元素矩形化（Element Plus dropdown item 实际是用 ::before 做 hover 底色） */
.schedule-value-popper .el-select-dropdown__item::before,
.schedule-value-popper .el-select-dropdown__item.hovering::before,
.schedule-value-popper .el-select-dropdown__item:hover::before {
  border-radius: 0 !important;
}

/* ===================== 移动端适配（一期：实际工时页卡片视图） ===================== */
.mobile-day-list { display: flex; flex-direction: column; gap: 12px; }
.mobile-user-card { border: 1px solid #ebeef5; border-radius: 8px; padding: 10px; background: #fff; }
.mobile-user-head { display: flex; align-items: center; gap: 8px; padding-bottom: 8px; border-bottom: 1px dashed #ebeef5; margin-bottom: 8px; }
.mobile-user-head .mobile-user-sum { margin-left: auto; font-size: 13px; color: #606266; }
.mobile-day-card {
  display: flex; align-items: center; justify-content: space-between; gap: 8px;
  padding: 10px 8px; border-radius: 8px; margin-bottom: 8px; background: #f8f9fb;
  border: 1px solid #f0f0f0;
}
.mobile-day-card.is-weekend { background: #fbfbfc; }
.mobile-day-card.is-holiday { background: #fef0f0; }
.mobile-day-card.is-adjust { background: #fdf6ec; }
.mobile-day-left { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.mobile-day-title { display: flex; align-items: center; gap: 6px; font-size: 14px; }
.mobile-day-plan { font-size: 13px; color: #606266; display: flex; align-items: center; gap: 4px; flex-wrap: wrap; }
.mobile-day-right { display: flex; align-items: center; gap: 8px; flex-shrink: 0; }

@media (max-width: 768px) {
  /* 全局布局：紧凑头部 + 汉堡菜单（侧边栏由 app.js v-if 隐藏） */
  .app-header { padding: 0 10px; height: 48px; }
  .app-header .header-left { display: flex; align-items: center; gap: 4px; min-width: 0; }
  .app-header .menu-toggle { padding: 4px; margin-right: 2px; }
  .app-header .logo { font-size: 14px; white-space: nowrap; }
  .app-header .user-info { gap: 6px; }
  .app-header .user-name { max-width: 56px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 12px; color: #606266; }
  .app-header .user-info .el-button { padding: 4px 0; font-size: 12px; margin-left: 0; }
  .app-layout .el-main { padding: 10px; overflow-x: hidden; }
  .mobile-menu-drawer .el-menu { border-right: none; }

  /* 工具栏：横向紧凑排布（不再整列堆叠） */
  .toolbar { flex-wrap: wrap; gap: 8px; align-items: center; }
  .toolbar .week-selector { flex-wrap: wrap; gap: 6px; }
  .toolbar .week-selector .el-button { margin-left: 0; padding: 6px 10px; }
  .toolbar .week-selector .el-tag { width: 100%; text-align: center; }
  .value-legend { font-size: 12px; }
  .value-legend span { display: inline-block; margin-right: 8px; }
  /* 日报弹窗：明细行竖排换行，隐藏表头 */
  .report-item-row { flex-wrap: wrap; row-gap: 6px; }
  .report-item-row > .el-select,
  .report-item-row > .el-input-number,
  .report-item-row > .el-input { flex: 1 1 46% !important; }
  .report-item-row > .el-select:nth-of-type(1) { flex: 1 1 100% !important; }
  .report-item-row > .el-button { flex: 0 0 auto !important; }
  .report-head-row { display: none !important; }
  .report-dialog .el-dialog__header { padding: 12px 16px; }
  .report-dialog .el-dialog__body { padding: 12px 16px; }
  /* 日报弹窗顶部三列（汇报日期/人/对象）竖排 */
  .report-dialog .el-form > div[style*="display:flex"] { flex-direction: column; gap: 8px; align-items: flex-start; }
}

/* ============ 集成中心（2026-09-22）============ */
.page-hint { font-size: 12px; color: #909399; margin-left: 10px; }
.filter-card .toolbar { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.filter-card .toolbar-right { margin-left: auto; display: flex; gap: 8px; }
.stat-bar { font-size: 13px; color: #606266; margin-bottom: 10px; }
.stat-bar b { color: #303133; }
.stat-sep { color: #DCDFE6; margin: 0 6px; }

/* 集成中心入口卡片 */
.ic-card {
  display: flex; align-items: center; gap: 14px;
  padding: 18px 20px; border-radius: 12px;
  background: #fff; border: 1px solid #EBEEF5;
  cursor: pointer; transition: all .18s ease;
}
.ic-card:hover { border-color: #409EFF; box-shadow: 0 2px 12px rgba(64, 158, 255, .14); }
.ic-card-icon {
  width: 48px; height: 48px; flex: 0 0 48px; border-radius: 10px;
  display: flex; align-items: center; justify-content: center;
  background: #ECF5FF; color: #409EFF;
}
.ic-card-body { flex: 1; min-width: 0; }
.ic-card-title { font-size: 15px; font-weight: 500; color: #303133; margin-bottom: 4px; }
.ic-card-desc { font-size: 12px; color: #909399; line-height: 1.5; }
.ic-card-arrow { color: #C0C4CC; }

/* 考勤机明细：无数据的日期行弱化 */
.el-table .row-empty { color: #C0C4CC; }

/* 考勤机：移动端卡片 */
.ma-list { display: flex; flex-direction: column; gap: 10px; }
.ma-card { border: 1px solid #EBEEF5; border-radius: 10px; padding: 12px; background: #fff; }
.ma-head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 10px; }
.ma-name { font-size: 14px; font-weight: 500; color: #303133; }
.ma-grid { display: flex; flex-wrap: wrap; row-gap: 6px; }
.ma-grid > div { flex: 0 0 50%; display: flex; gap: 6px; font-size: 12px; }
.ma-k { color: #909399; flex: 0 0 34px; }
.ma-v { color: #303133; word-break: break-all; }

/* ===== 集成中心 · 企业微信（2026-10-06）===== */
/* 入口卡片用企微品牌绿区分于考勤机的蓝 */
.ic-card-icon.ic-wecom { background: #E7F7EE; color: #07C160; }
.ic-card.ic-wecom-card:hover { border-color: #07C160; box-shadow: 0 2px 12px rgba(7, 193, 96, .16); }

/* 对账表：有差异的行整行标黄，一眼可见 */
.cmp-diff-row { background: #FFFBF0 !important; }
.cmp-diff-row:hover > td { background: #FFF6DF !important; }
.cmp-time-diff { color: #E6A23C; font-weight: 600; }
.cmp-missing { color: #F56C6C; }

/* 审批单列表：分类色签 */
.oa-cat-请假 { --oa-cat: #E6A23C; }
.tag-soft { border-color: transparent; }

/* 企微页面内的说明块 */
.wb-tip { font-size: 12px; color: #909399; line-height: 1.7; }
.wb-tip code { background: #F5F7FA; padding: 1px 5px; border-radius: 3px; color: #606266; }
.wb-diff-legend { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 10px; }

/* ===== 集成中心 · OA 考勤（2026-10-12）===== */
/* 入口卡片用橙色调区分于考勤机（蓝）与企微（绿） */
.ic-card-icon.ic-oa { background: #FFF4E6; color: #E6A23C; }
.ic-card.ic-oa-card:hover { border-color: #E6A23C; box-shadow: 0 2px 12px rgba(230, 162, 60, .18); }

/* 概览数字卡片 */
.oa-stat { text-align: center; }
.oa-stat .el-card__body { padding: 12px 8px; }
.oa-stat-num { font-size: 22px; font-weight: 600; color: #303133; line-height: 1.2; }
.oa-stat-num.ok { color: #67C23A; }
.oa-stat-num.warn { color: #E6A23C; }
.oa-stat-label { font-size: 12px; color: #909399; margin-top: 4px; }

@media (max-width: 768px) {
  .filter-card .toolbar { gap: 8px; }
  .filter-card .toolbar > .el-date-editor,
  .filter-card .toolbar > .el-select,
  .filter-card .toolbar > .el-input { width: 100% !important; }
  .filter-card .toolbar-right { margin-left: 0; width: 100%; }
  .filter-card .toolbar-right .el-button { flex: 1; margin-left: 0; }
  .page-header { flex-direction: column; align-items: flex-start; gap: 4px; }
}

/* 打卡明细「打卡时间」列：全部打卡时间换行紧凑展示（2026-10-09） */
.punch-times { font-size: 12px; line-height: 1.7; color: #606266; word-break: break-all; }
.ma-full { flex: 0 0 100% !important; display: flex; gap: 6px; font-size: 12px; }

/* ===== 排班：默认规则调整高亮（2026-11-07）===== */
.schedule-table td.cell-custom {
  background: #fff8e6 !important;
  box-shadow: inset 0 0 0 1px #f0c36d;
}
.schedule-table td.cell-custom .custom-flag {
  position: absolute;
  top: -1px;
  right: 2px;
  font-size: 10px;
  line-height: 1;
  color: #e6a23c;
  font-weight: 700;
  pointer-events: none;
}
/* 选中态与「已调整」并存时，优先显示选中边框 */
.schedule-table td.cell-selected.cell-custom {
  box-shadow: inset 0 0 0 2px #409eff;
}
.legend-custom { color: #b26a00; }
.demo-custom {
  display: inline-block;
  padding: 1px 6px;
  border-radius: 4px;
  background: #fff8e6;
  border: 1px solid #f0c36d;
  color: #b26a00;
  font-weight: 600;
}
.toolbar-actions {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  align-items: center;
}
/* 排班表横向滚动容器：窄屏不挤压列宽 */
.schedule-table-wrap {
  width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}
.schedule-table-wrap .schedule-table { min-width: 720px; }

/* ===== 使用说明页 ===== */
.guide-page { max-width: 1080px; }
.guide-hero { margin-bottom: 4px; }
.guide-body { padding: 4px 8px 12px; line-height: 1.9; font-size: 14px; color: #303133; }
.guide-body h4 { margin: 0 0 8px; font-size: 15px; color: #303133; }
.guide-body ul, .guide-body ol { padding-left: 22px; margin: 6px 0; }
.guide-body p { margin: 6px 0; }
.guide-body .el-table { margin: 8px 0; }

@media (max-width: 768px) {
  .toolbar-actions { width: 100%; }
  .toolbar-actions .el-button { margin-left: 0; flex: 1 1 auto; }
  .guide-body { padding: 0 2px 8px; font-size: 13px; }
  .guide-body h4 { font-size: 14px; }
  .schedule-table-wrap .schedule-table { min-width: 640px; }
}
