/* ============================================================
   口腔HIS · 年轻科技感白蓝主题（仅视觉覆盖，不动功能）
   设计参考：Material 3 + Apple HIG + 8pt 网格
   主色：科技蓝 #3B82F6 / 页面背景 #F5F7FA
   ============================================================ */
:root {
  --brand: #3B82F6;
  --brand-hover: #2563EB;
  --brand-light: #EFF6FF;
  --brand-soft: rgba(59, 130, 246, 0.08);
  --bg-page: #F5F7FA;
  --surface: #FFFFFF;
  --text-main: #1F2937;
  --text-sub: #6B7280;
  --border-soft: #E5E7EB;
  --radius-card: 14px;
  --radius-btn: 10px;
  --shadow-card: 0 1px 2px rgba(16,24,40,.04), 0 4px 16px rgba(16,24,40,.06);
  --shadow-card-hover: 0 4px 10px rgba(16,24,40,.06), 0 12px 32px rgba(16,24,40,.10);
  --ease: cubic-bezier(.2,0,0,1);
  --font-body: 'Microsoft YaHei','微软雅黑','PingFang SC','Noto Sans SC',system-ui,sans-serif;
  --font-display: 'Microsoft YaHei','微软雅黑','PingFang SC',sans-serif;
}

/* ---------- 全局基础 ---------- */
html, body {
  font-family: var(--font-body);
  background: var(--bg-page);
  color: var(--text-main);
  font-size: 14px;
  -webkit-font-smoothing: antialiased;
}

/* ===== 字体大小统一（消除碎片字号） ===== */
/* 正文/小号统一 13px，常规 14px，标题分档 15/16/17/18 */
.text-xs { font-size: 13px !important; }
.text-sm { font-size: 14px !important; }
.text-base { font-size: 15px !important; }
.text-lg { font-size: 16px !important; }
.text-xl { font-size: 17px !important; }
.text-2xl { font-size: 18px !important; }
.text-3xl { font-size: 20px !important; }
.text-\[10px\] { font-size: 13px !important; }
.text-\[11px\] { font-size: 13px !important; }
.text-\[12px\] { font-size: 13px !important; }
.text-\[13px\] { font-size: 13px !important; }
.text-\[28px\] { font-size: 20px !important; }

/* 表格统一 13px */
table { font-size: 13px !important; }
table th, table td, .el-table .cell { font-size: 13px !important; }
.el-table { --el-table-font-size: 13px !important; }

/* Element Plus 全局字号统一 */
:root {
  --el-font-size-base: 14px;
  --el-font-size-small: 13px;
  --el-font-size-large: 15px;
}
.el-button { font-size: 13px !important; }
.el-input__inner, .el-select__input, .el-textarea__inner { font-size: 14px !important; }
.el-dialog__title { font-size: 16px !important; }
.el-message-box__title { font-size: 15px !important; }
.el-message-box__message { font-size: 14px !important; }
.el-tag { font-size: 12px !important; }

/* 输入框/按钮/下拉统一 14px */
input, select, textarea, button {
  font-size: 14px !important;
}
button.text-xs, button.text-sm { font-size: 13px !important; }
* { transition-timing-function: var(--ease); }
/* 滚动条：超级细线（村长要求） */
::-webkit-scrollbar { width: 3px !important; height: 3px !important; }
::-webkit-scrollbar-thumb { background: rgba(100,116,139,.18) !important; border-radius: 2px !important; }
::-webkit-scrollbar-thumb:hover { background: rgba(100,116,139,.35) !important; }
::-webkit-scrollbar-track { background: transparent !important; }
/* Element Plus 滚动条同步超细 */
.el-scrollbar__bar { width: 3px !important; height: 3px !important; }
.el-scrollbar__thumb { background: rgba(100,116,139,.18) !important; border-radius: 2px !important; }

/* ---------- 主色统一（白蓝） ---------- */
.bg-primary { background: linear-gradient(180deg, #4F8DF8 0%, var(--brand) 100%) !important; }
.text-primary { color: var(--brand) !important; }
.border-primary { border-color: var(--brand) !important; }
.bg-primary\/5 { background-color: var(--brand-soft) !important; }
.bg-primary\/10 { background-color: rgba(59,130,246,.10) !important; }
.text-primary\/80 { color: rgba(59,130,246,.8) !important; }
button.bg-primary:hover, .bg-primary:hover { filter: brightness(1.06); }
button.bg-primary:active { transform: scale(.97); }

/* Element Plus 主色主题 */
:root {
  --el-color-primary: #3B82F6;
  --el-color-primary-light-3: #6AA1F8;
  --el-color-primary-light-5: #9DBFFB;
  --el-color-primary-light-7: #CFDDFD;
  --el-color-primary-light-8: #E8EFFE;
  --el-color-primary-light-9: #F3F7FF;
  --el-color-primary-dark-2: #2563EB;
}
.el-button { border-radius: var(--radius-btn) !important; font-weight: 500; }
.el-button--primary { --el-button-hover-bg-color: var(--brand-hover); }
.el-dialog { border-radius: 16px !important; overflow: hidden; }
.el-dialog__header { padding: 18px 24px 8px !important; }
.el-dialog__body { padding: 16px 24px 20px !important; }
.el-message-box { border-radius: 14px !important; }
.el-input__wrapper, .el-select__wrapper, .el-textarea__inner { border-radius: 8px !important; }
.el-table th.el-table__cell { background: #F8FAFC !important; color: #4B5563 !important; font-weight: 600 !important; }
.el-table__row:hover > td.el-table__cell { background: #F0F7FF !important; }

/* ---------- 登录页 ---------- */
#loginPage { background: linear-gradient(150deg, #DCE9FF 0%, #F5F7FA 40%, #E3EEFF 75%, #D6E6FF 100%) !important; }
#loginPage::before {
  content: ''; position: fixed; inset: 0; pointer-events: none;
  background: radial-gradient(600px 300px at 15% 20%, rgba(59,130,246,.10), transparent 60%),
              radial-gradient(500px 280px at 85% 80%, rgba(59,130,246,.08), transparent 60%);
}
#loginPage .bg-white { border-radius: 20px; box-shadow: 0 8px 40px rgba(37,99,235,.12), 0 2px 8px rgba(16,24,40,.06) !important; border: 1px solid rgba(59,130,246,.10); }
#loginPage input { border-radius: 10px; height: 46px; }
#loginPage button.bg-primary { height: 46px; border-radius: 10px; letter-spacing: .08em; font-weight: 600; }

/* ---------- 侧边栏（白底 · 蓝色圆角选中态） ---------- */
aside { background: #FFFFFF !important; border-right: 1px solid var(--border-soft); }
.sidebar-item {
  border-radius: 10px !important;
  margin: 2px 8px !important;
  color: var(--text-sub) !important;
  font-size: 13.5px;
  transition: background .15s var(--ease), color .15s var(--ease) !important;
}
.sidebar-item i { width: 20px !important; text-align: center; }
.sidebar-item:hover { background: #F1F5F9 !important; color: var(--text-main) !important; }
.sidebar-item.active {
  background: linear-gradient(90deg, rgba(59,130,246,.14) 0%, var(--brand-light) 100%) !important;
  color: var(--brand) !important;
  font-weight: 600 !important;
  box-shadow: inset 3px 0 0 var(--brand);
}
.sidebar-parent .sidebar-item.active { background: transparent !important; }
#sidebarUser { border-bottom: 1px solid var(--border-soft); margin: 0 12px 6px; padding-bottom: 10px !important; }

/* ---------- 顶栏 ---------- */
#appLayout > div.flex.h-16, header, .h-16.border-b {
  background: #FFFFFF !important;
  border-bottom: 1px solid var(--border-soft) !important;
}
#appLayout .h-16 i.fa-tooth, header i.fa-tooth { color: var(--brand); }

/* ---------- 卡片（Material 3 风格） ---------- */
.bg-white.rounded-xl, .bg-white.rounded-2xl, .rounded-xl.bg-white, .rounded-2xl.bg-white {
  border-radius: var(--radius-card) !important;
  border: 1px solid rgba(16,24,40,.04) !important;
  box-shadow: var(--shadow-card);
  transition: box-shadow .2s var(--ease), transform .2s var(--ease), border-color .2s var(--ease) !important;
}
.bg-white.rounded-xl:hover, .bg-white.rounded-2xl:hover {
  box-shadow: var(--shadow-card-hover);
  border-color: rgba(59,130,246,.15) !important;
}

/* ---------- 表格（浅蓝表头 · 行 hover） ---------- */
table thead tr, table thead {
  background: #F8FAFC;
}
table thead th { color: #4B5563 !important; font-weight: 600 !important; }
table tbody tr { transition: background .12s var(--ease); }
table tbody tr:hover { background: #F5FAFF; }

/* ---------- 通用按钮（Apple 融合） ---------- */
button {
  font-family: var(--font-body);
  transition: all .15s var(--ease) !important;
}
button:active { transform: scale(.97); }
button.bg-primary, button.bg-success, button.bg-danger {
  box-shadow: 0 1px 2px rgba(16,24,40,.08), 0 2px 8px rgba(16,24,40,.06);
}

/* ---------- 输入框 ---------- */
input, select, textarea {
  font-family: var(--font-body);
  border-radius: 8px !important;
  transition: border-color .15s var(--ease), box-shadow .15s var(--ease) !important;
}
input:focus, select:focus, textarea:focus {
  border-color: var(--brand) !important;
  box-shadow: 0 0 0 3px rgba(59,130,246,.12) !important;
  outline: none !important;
}

/* ---------- 统计卡片（仅视觉美化，结构不动） ---------- */
.stat-card, .stat-card.cursor-pointer {
  background: #FFFFFF;
  border-radius: 16px !important;
  border: 1px solid rgba(16,24,40,.04) !important;
  box-shadow: 0 1px 2px rgba(16,24,40,.04), 0 4px 16px rgba(16,24,40,.06);
  padding: 24px;
  transition: transform .2s var(--ease), box-shadow .2s var(--ease) !important;
}
.stat-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 10px rgba(16,24,40,.06), 0 12px 32px rgba(16,24,40,.10);
}
.stat-card .text-\[28px\] { font-size: 30px !important; letter-spacing: -.01em; }

/* ---------- 徽章/标签微调 ---------- */
.tag, .el-tag { border-radius: 6px !important; font-weight: 500; }

/* ---------- 弹窗微调 ---------- */
#modalBox { border-radius: 16px !important; }
#modalBox .modal-head, #modalBox h2 { font-weight: 600; }

/* ---------- 数字/英文用科技感字体 ---------- */
.font-mono, td.font-mono, .el-table .cell, .stat-num {
  font-family: var(--font-display);
}

/* ---------- 文字层级 ---------- */
h1, h2, h3 { font-family: var(--font-display); letter-spacing: -.01em; }

/* ---------- 打印单不受影响（保持黑白） ---------- */
@media print {
  * { box-shadow: none !important; background: #fff !important; color: #000 !important; }
}

/* ===== 补充颜色类（预编译 tailwind 缺失，现代首页用） ===== */
.bg-blue-50 { background-color: #EFF6FF !important; }
.text-blue-600 { color: #2563EB !important; }
.bg-emerald-50 { background-color: #ECFDF5 !important; }
.text-emerald-600 { color: #059669 !important; }
.bg-violet-50 { background-color: #F5F3FF !important; }
.text-violet-600 { color: #7C3AED !important; }
.bg-amber-50 { background-color: #FFFBEB !important; }
.text-amber-600 { color: #D97706 !important; }
.bg-rose-50 { background-color: #FFF1F2 !important; }
.text-rose-600 { color: #E11D48 !important; }
.bg-cyan-50 { background-color: #ECFEFF !important; }
.text-cyan-600 { color: #0891B2 !important; }
.hover\:shadow-md:hover { box-shadow: 0 4px 6px -1px rgba(0,0,0,.08), 0 2px 4px -2px rgba(0,0,0,.06) !important; }
.hover\:-translate-y-0\.5:hover { transform: translateY(-2px) !important; }

/* ===== 顶栏页面标题隐藏（村长要求：去掉"排班预约"等页面名） ===== */
#pageTitle { display: none !important; }
