/* ============================================================
   TeacherAI 全平台蓝白视觉统一层（global_blue_white.css）
   2026-08-22 由 Hermes 创建 —— 覆盖全部页面公共组件
   设计语言：深蓝#2b4c8c + 天蓝#5B9BD5 + 浅蓝底#f0f5fc + 白卡
   原则：仅覆盖视觉（颜色/圆角/阴影/字重），不动布局与功能
   ============================================================ */

:root {
  --tb-primary: #2b4c8c;
  --tb-primary-light: #5B9BD5;
  --tb-bg-soft: #f0f5fc;
  --tb-bg-soft2: #e6edf7;
  --tb-border: #eaf0f7;
  --tb-radius: 14px;
  --tb-radius-sm: 10px;
  --tb-shadow: 0 2px 10px rgba(43,76,140,0.06);
  --tb-text: #333;
  --tb-text-sub: #7a8ba3;
}

/* ============ 1. Bootstrap 系（base.html 继承页） ============ */

/* 页面底色：统一为极浅蓝白 */
body { background: #f6f9fd !important; }

/* 顶栏：淡蓝渐变 + 深蓝字（2026-08-23：深蓝改淡蓝，内容更清晰） */
.app-header {
  background: linear-gradient(135deg, #f0f6fc 0%, #e2edf8 60%, #d5e6f5 100%) !important;
  color: #29528D !important;
  border-bottom: 1px solid #dbe6f2 !important;
  box-shadow: 0 2px 12px rgba(41,82,141,0.06);
}
.app-header h1 { color: #29528D !important; }
.app-header .btn-link { color: #29528D !important; }
.app-header .btn-link:hover { color: #3a6ab0 !important; }

/* 卡片：圆角14px + 浅灰蓝边框 + 柔和投影 */
.card {
  border: 1px solid var(--tb-border) !important;
  border-radius: var(--tb-radius) !important;
  box-shadow: var(--tb-shadow) !important;
}
.card-header {
  background: linear-gradient(135deg, #f0f5fc, #e8f0fa) !important;
  color: var(--tb-primary) !important;
  border-bottom: 1px solid var(--tb-border) !important;
  border-radius: var(--tb-radius) var(--tb-radius) 0 0 !important;
  font-weight: 600 !important;
}
.card-footer {
  background: #f8fbfe !important;
  border-top: 1px solid var(--tb-border) !important;
  border-radius: 0 0 var(--tb-radius) var(--tb-radius) !important;
}

/* 统计卡：保留各页面自有样式（kb_dashboard已手调四卡，不覆盖） */

/* 按钮：统一圆角10px + 平台蓝 */
.btn { border-radius: var(--tb-radius-sm) !important; }
.btn-primary { background: var(--tb-primary) !important; border-color: var(--tb-primary) !important; }
.btn-primary:hover { background: #3a5fa8 !important; border-color: #3a5fa8 !important; }
.btn-primary:active, .btn-primary:focus { background: #1d3a6e !important; border-color: #1d3a6e !important; box-shadow: 0 0 0 3px rgba(43,76,140,.18) !important; }
.btn-outline-primary { border-color: var(--tb-primary) !important; color: var(--tb-primary) !important; }
.btn-outline-primary:hover { background: var(--tb-primary) !important; border-color: var(--tb-primary) !important; color: #fff !important; }
.btn-info { background: var(--tb-primary-light) !important; border-color: var(--tb-primary-light) !important; color: #fff !important; }
.btn-info:hover { background: #4a8bc4 !important; border-color: #4a8bc4 !important; color: #fff !important; }
.btn-light { background: #f0f5fc !important; border-color: #d6e4f5 !important; color: var(--tb-primary) !important; }
.btn-light:hover { background: #e0edfb !important; }
.btn-success { background: var(--tb-primary) !important; border-color: var(--tb-primary) !important; color: #fff !important; }
.btn-success:hover { background: #3a5fa8 !important; border-color: #3a5fa8 !important; color: #fff !important; }
.btn-success:active, .btn-success:focus { background: #1d3a6e !important; border-color: #1d3a6e !important; box-shadow: 0 0 0 3px rgba(43,76,140,.18) !important; }
.btn-danger { border-radius: var(--tb-radius-sm) !important; }
.btn-warning { border-radius: var(--tb-radius-sm) !important; }
.btn-secondary { border-radius: var(--tb-radius-sm) !important; }

/* 表格：表头浅蓝 + 深蓝字，行hover微蓝 */
.table thead th {
  background: #f0f5fc !important;
  color: var(--tb-primary) !important;
  border-bottom: 2px solid #d6e4f5 !important;
  font-weight: 600 !important;
}
.table tbody tr:hover { background: #f7fafe !important; }

/* 表单：圆角 + 浅蓝聚焦 */
.form-control, .form-select {
  border-radius: var(--tb-radius-sm) !important;
  border-color: #c9d8ea !important;
}
.form-control:focus, .form-select:focus {
  border-color: var(--tb-primary-light) !important;
  box-shadow: 0 0 0 3px rgba(91,155,213,.15) !important;
}

/* 底部导航：激活色平台蓝 */
.nav-bottom a.active { color: var(--tb-primary) !important; }
.nav-bottom a.active i { color: var(--tb-primary) !important; }

/* 列表项：hover浅蓝 */
.list-item:active { background: #f0f5fc !important; }

/* 徽章：圆角统一 */
.badge { border-radius: 10px !important; }

/* 模态框：圆角 */
.modal-content { border-radius: var(--tb-radius) !important; border: none !important; box-shadow: 0 8px 30px rgba(43,76,140,.18) !important; }
.modal-header { background: #f0f5fc !important; border-radius: var(--tb-radius) var(--tb-radius) 0 0 !important; }
.modal-header .modal-title { color: var(--tb-primary) !important; font-weight: 600 !important; }

/* 下拉菜单 */
.dropdown-menu { border-radius: var(--tb-radius-sm) !important; border-color: var(--tb-border) !important; box-shadow: var(--tb-shadow) !important; }
.dropdown-item:hover, .dropdown-item:focus { background: #f0f5fc !important; color: var(--tb-primary) !important; }

/* 提示/弹窗 */
.alert { border-radius: var(--tb-radius-sm) !important; }

/* 分页 */
.pagination .page-link { color: var(--tb-primary) !important; border-radius: 8px !important; margin: 0 2px; }
.pagination .page-item.active .page-link { background: var(--tb-primary) !important; border-color: var(--tb-primary) !important; }

/* 进度条 */
.progress { border-radius: 8px !important; background: #eef2f7 !important; }
.progress-bar { background: linear-gradient(90deg, #5B9BD5, #2b4c8c) !important; }

/* ============ 2. Bulma 系（56页：register等） ============ */

/* 按钮：统一平台蓝 + 圆角 */
.button { border-radius: var(--tb-radius-sm) !important; }
.button.is-primary { background: var(--tb-primary) !important; border-color: var(--tb-primary) !important; }
.button.is-primary:hover { background: #3a5fa8 !important; border-color: #3a5fa8 !important; }
.button.is-primary:active { background: #1d3a6e !important; }
.button.is-info { background: var(--tb-primary-light) !important; border-color: var(--tb-primary-light) !important; color: #fff !important; }
.button.is-info:hover { background: #4a8bc4 !important; color: #fff !important; }
.button.is-link { background: var(--tb-primary) !important; border-color: var(--tb-primary) !important; color: #fff !important; }
.button.is-link:hover { background: #3a5fa8 !important; }
.button.is-success { background: var(--tb-primary) !important; border-color: var(--tb-primary) !important; color: #fff !important; }
.button.is-success:hover { background: #3a5fa8 !important; border-color: #3a5fa8 !important; color: #fff !important; }
.button.is-light { background: #f0f5fc !important; border-color: #d6e4f5 !important; color: var(--tb-primary) !important; }
.button.is-light:hover { background: #e0edfb !important; }
.button.is-ghost { color: var(--tb-primary) !important; }

/* 表单：圆角 + 浅蓝边框 + 聚焦光晕 */
.input, .textarea, .select select {
  border-radius: var(--tb-radius-sm) !important;
  border-color: #c9d8ea !important;
}
.input:focus, .textarea:focus, .select select:focus {
  border-color: var(--tb-primary-light) !important;
  box-shadow: 0 0 0 3px rgba(91,155,213,.15) !important;
}
.label { color: var(--tb-primary) !important; font-weight: 600 !important; }
.checkbox, .radio { color: var(--tb-text) !important; }

/* 卡片/容器 */
.card { border-radius: var(--tb-radius) !important; border: 1px solid var(--tb-border) !important; box-shadow: var(--tb-shadow) !important; }
.box { border-radius: var(--tb-radius) !important; border: 1px solid var(--tb-border) !important; box-shadow: var(--tb-shadow) !important; }
.message { border-radius: 12px !important; }
.message-header { background: var(--tb-primary) !important; border-radius: 12px 12px 0 0 !important; }
.message-body { border-radius: 0 0 12px 12px !important; }

/* 标题 */
.title, .subtitle { color: var(--tb-primary) !important; }

/* 表格 */
.table thead th { background: #f0f5fc !important; color: var(--tb-primary) !important; border-bottom: 2px solid #d6e4f5 !important; }
.table tbody tr:hover { background: #f7fafe !important; }

/* 导航 */
.navbar { background: #fff !important; box-shadow: 0 1px 8px rgba(43,76,140,.08) !important; }
.navbar-item.is-active, .navbar-item:hover { background: #f0f5fc !important; color: var(--tb-primary) !important; }
.navbar-burger span { background: var(--tb-primary) !important; }

/* 分页/标签 */
.pagination-link { border-radius: 8px !important; color: var(--tb-primary) !important; }
.pagination-link.is-current { background: var(--tb-primary) !important; border-color: var(--tb-primary) !important; }
.tag { border-radius: 8px !important; }

/* 通知 */
.notification { border-radius: var(--tb-radius-sm) !important; }

/* 模态框 */
.modal-card { border-radius: var(--tb-radius) !important; }
.modal-card-head { background: #f0f5fc !important; border-radius: var(--tb-radius) var(--tb-radius) 0 0 !important; }
.modal-card-title { color: var(--tb-primary) !important; }

/* ============ 3. 自绘系公共组件（首页/知识库系） ============ */

/* 区块标题：深蓝 */
.section-title { color: var(--tb-primary) !important; }
.section-title i { color: var(--tb-primary) !important; }

/* 通用小卡片：白卡 + 浅边框 + 圆角14 + 柔和投影 */
.mc-card, .source-card, .result-item, .tree, .moc-card, .fl-item,
.kb-card, .note-card, .item-card, .panel, .box-card {
  border-radius: var(--tb-radius) !important;
  border: 1px solid var(--tb-border) !important;
  box-shadow: var(--tb-shadow) !important;
}

/* 圆形图标徽章统一（兜底：页面未单独处理时也生效） */
.icon-wrap, .tool-icon, .s-icon, .t-icon, .hb-icon, .qs-icon {
  border-radius: 50% !important;
}

/* 主要文字色：标题深蓝 */
h1, h2, h3, h4, h5, h6 { color: var(--tb-primary) !important; }

/* 链接色 */
a { color: var(--tb-primary); }
a:hover { color: #3a5fa8; }

/* 文本选中色 */
::selection { background: rgba(91,155,213,.25); }

/* 移动端按钮最小触控 */
@media (max-width: 480px) {
  .btn { border-radius: 9px !important; }
}
