/* ========================================
   THEME-OVERRIDE.CSS
   在 Bootstrap 之后加载，覆盖视觉风格
   让所有 Bootstrap 组件自动匹配新设计
   ======================================== */

/* ── 颜色变量映射到 Bootstrap ── */
:root {
  --bs-primary:        #06b6d4;
  --bs-primary-rgb:    6,182,212;
  --bs-border-color:   #e2e8f0;
  --bs-border-radius:  10px;
  --bs-border-radius-sm: 7px;
  --bs-border-radius-lg: 14px;
  --bs-body-font-family: 'Plus Jakarta Sans', -apple-system, sans-serif;
  --bs-body-font-size:  14px;
  --bs-body-color:      #0f172a;
  --bs-body-bg:         #ffffff;
  --bs-secondary-color: #475569;
  --bs-light-rgb:       248,250,252;
  --bs-danger:          #ef4444;
  --bs-success:         #10b981;
  --bs-warning:         #f59e0b;
}

/* ── 按钮 ── */
.btn {
  font-family: inherit;
  font-weight: 600;
  border-radius: 9px !important;
  font-size: 13px;
  padding: 7px 16px;
  transition: all .15s;
}
.btn-sm { padding: 4px 11px; font-size: 12px; border-radius: 7px !important; }
.btn-lg { padding: 11px 22px; font-size: 15px; border-radius: 11px !important; }

.btn-primary {
  background: #06b6d4; border-color: #06b6d4; color: #fff;
  box-shadow: 0 1px 4px rgba(6,182,212,.3);
}
.btn-primary:hover, .btn-primary:focus {
  background: #0891b2; border-color: #0891b2;
  box-shadow: 0 3px 10px rgba(6,182,212,.4);
  transform: translateY(-1px);
}
.btn-outline-primary { color: #0891b2; border-color: #cbd5e1; background: #fff; }
.btn-outline-primary:hover { background: #ecfeff; border-color: #06b6d4; color: #0891b2; }
.btn-outline-secondary { color: #475569; border-color: #cbd5e1; background: #fff; }
.btn-outline-secondary:hover { background: #f1f5f9; border-color: #94a3b8; color: #0f172a; }
.btn-secondary { background: #f1f5f9; border-color: #e2e8f0; color: #475569; }
.btn-secondary:hover { background: #e2e8f0; border-color: #cbd5e1; color: #0f172a; }
.btn-danger { background: #ef4444; border-color: #ef4444; }
.btn-danger:hover { background: #dc2626; border-color: #dc2626; }
.btn-success { background: #10b981; border-color: #10b981; }

/* ── 表单 ── */
.form-control, .form-select {
  border-radius: 9px !important;
  border-color: #e2e8f0;
  font-size: 14px;
  font-family: inherit;
  color: #0f172a;
  padding: 8px 12px;
}
.form-control:focus, .form-select:focus {
  border-color: #06b6d4;
  box-shadow: 0 0 0 3px rgba(6,182,212,.12);
}
.form-label { font-size: 13px; font-weight: 600; color: #475569; margin-bottom: 5px; }
.form-text  { font-size: 11px; color: #94a3b8; }

/* ── 卡片 ── */
.card {
  border-radius: 14px !important;
  border-color: #e2e8f0;
  box-shadow: 0 1px 3px rgba(0,0,0,.06), 0 2px 10px rgba(0,0,0,.04) !important;
}
.card-body { padding: 20px; }

/* ── 表格 ── */
.table { font-size: 13px; }
.table > thead > tr > th {
  font-size: 11px; font-weight: 700; text-transform: uppercase;
  letter-spacing: .5px; color: #94a3b8; padding: 10px 14px;
  background: #f8fafc; border-bottom: 1px solid #e2e8f0 !important;
}
.table > tbody > tr > td { padding: 12px 14px; color: #475569; vertical-align: middle; }
.table > tbody > tr:hover > td { background: #f8fafc; }
.table-striped > tbody > tr:nth-of-type(odd) > * { background: transparent; }
.table-responsive { border: 1px solid #e2e8f0; border-radius: 14px; overflow: hidden; }

/* ── Badge ── */
.badge { border-radius: 99px !important; font-weight: 700; font-size: 11px; padding: 3px 9px; }
.bg-success { background: rgba(16,185,129,.15) !important; color: #059669 !important; }
.bg-danger  { background: rgba(239,68,68,.12) !important;  color: #dc2626 !important; }
.bg-warning { background: rgba(245,158,11,.12) !important; color: #d97706 !important; }
.bg-secondary { background: rgba(100,116,139,.1) !important; color: #64748b !important; }
.bg-primary { background: rgba(6,182,212,.12) !important;  color: #0891b2 !important; }
.text-bg-success, .text-bg-danger, .text-bg-warning, .text-bg-secondary, .text-bg-primary { color: inherit !important; }

/* ── Alert ── */
.alert { border-radius: 10px !important; font-size: 13px; border-width: 1px; }
.alert-danger  { background: rgba(239,68,68,.07); border-color: rgba(239,68,68,.2); color: #dc2626; }
.alert-success { background: rgba(16,185,129,.07); border-color: rgba(16,185,129,.2); color: #059669; }
.alert-warning { background: rgba(245,158,11,.07); border-color: rgba(245,158,11,.2); color: #d97706; }
.alert-info    { background: rgba(6,182,212,.07); border-color: rgba(6,182,212,.2); color: #0891b2; }

/* ── Modal ── */
.modal-content { border-radius: 16px !important; border: 1px solid #e2e8f0; box-shadow: 0 24px 60px rgba(0,0,0,.18); }
.modal-header  { padding: 20px 24px 0; border-bottom: none; }
.modal-body    { padding: 20px 24px; }
.modal-footer  { padding: 14px 24px 20px; border-top: 1px solid #e2e8f0; }
.modal-title   { font-size: 16px; font-weight: 800; }
.modal-backdrop.show { opacity: .4; }

/* ── Nav ── */
.nav-pills .nav-link { border-radius: 8px !important; font-size: 13px; font-weight: 600; color: #475569; }
.nav-pills .nav-link.active { background: #ecfeff; color: #0891b2; }

/* ── Misc ── */
.text-muted { color: #94a3b8 !important; }
.text-primary { color: #0891b2 !important; }
.text-success { color: #059669 !important; }
.text-danger  { color: #dc2626 !important; }
.border { border-color: #e2e8f0 !important; }
.bg-light { background: #f8fafc !important; }
hr { border-color: #e2e8f0; }
.fw-bold, .fw-semibold { letter-spacing: -.2px; }

/* ── 页面标题（用在内页顶部 h4/h5） ── */
h4.fw-bold, h4.fw-semibold, h5.fw-bold {
  font-size: 20px !important;
  font-weight: 800 !important;
  color: #0f172a;
  letter-spacing: -.3px;
}
