/* ============================================================
   HIS · 液态玻璃主题（Glassmorphism）
   核心页面（登录/首页/侧边栏/顶栏）全玻璃
   数据密集表格区降级为浅色半透明（blur 小，保证流畅可读）
   纯 CSS 覆盖，不动任何 JS/HTML 结构
   ============================================================ */
:root {
  --glass-bg: rgba(255,255,255,.48);
  --glass-bg-soft: rgba(255,255,255,.84);
  --glass-border: rgba(255,255,255,.85);
  --glass-blur: 20px;
  --glass-blur-soft: 8px;
  --glass-shadow: 0 8px 32px rgba(31,38,135,.14), 0 2px 8px rgba(31,38,135,.08);
  --glass-highlight: inset 0 1px 0 rgba(255,255,255,.9), inset 0 -1px 0 rgba(255,255,255,.3);
}

/* ---------- 背景：隐形栅格线 + 蓝紫渐变 + 彩色光斑（液态折射源） ---------- */
body {
  background:
    radial-gradient(rgba(59,130,246,.06) 1px, transparent 1.4px),
    radial-gradient(circle at 12% 18%, rgba(59,130,246,.38), transparent 46%),
    radial-gradient(circle at 86% 82%, rgba(139,92,246,.34), transparent 46%),
    radial-gradient(circle at 62% 30%, rgba(6,182,212,.26), transparent 40%),
    radial-gradient(circle at 80% 12%, rgba(245,158,11,.18), transparent 32%),
    linear-gradient(rgba(59,130,246,.05) 1px, transparent 1px),
    linear-gradient(90deg, rgba(59,130,246,.05) 1px, transparent 1px),
    linear-gradient(135deg, #DCE8FF 0%, #F0F4FF 30%, #F7F5FF 55%, #E4F0FF 80%, #D9E7FF 100%) !important;
  background-size: 22px 22px, 100% 100%, 100% 100%, 100% 100%, 100% 100%, 44px 44px, 44px 44px, 100% 100% !important;
  background-attachment: fixed !important;
  background-color: #EAF1FF !important;
}
/* 光斑已并入 body 背景层（上方），伪元素不再需要 */
body::before { display: none !important; }
body::after { display: none !important; }
#appLayout::before { display: none !important; }
#appLayout::after { display: none !important; }

/* ---------- 侧边栏：半透明磨砂玻璃 ---------- */
aside {
  background: rgba(255,255,255,.52) !important;
  backdrop-filter: blur(16px) saturate(150%) !important;
  -webkit-backdrop-filter: blur(16px) saturate(150%) !important;
  border-right: 1px solid rgba(255,255,255,.65) !important;
}

/* ---------- 卡片：液态玻璃 ---------- */
.bg-white.rounded-xl, .bg-white.rounded-2xl, .rounded-xl.bg-white, .rounded-2xl.bg-white {
  background: var(--glass-bg) !important;
  backdrop-filter: blur(var(--glass-blur)) saturate(160%) !important;
  -webkit-backdrop-filter: blur(var(--glass-blur)) saturate(160%) !important;
  border: 1px solid var(--glass-border) !important;
  box-shadow: var(--glass-shadow), var(--glass-highlight) !important;
}
.bg-white.rounded-xl:hover, .bg-white.rounded-2xl:hover {
  box-shadow: 0 16px 48px rgba(31,38,135,.14), var(--glass-highlight) !important;
}

/* ---------- 表格容器：浅色半透明降级（blur 小，保证流畅） ---------- */
.bg-white.rounded-xl:has(table), .bg-white.rounded-2xl:has(table) {
  background: var(--glass-bg-soft) !important;
  backdrop-filter: blur(var(--glass-blur-soft)) !important;
  -webkit-backdrop-filter: blur(var(--glass-blur-soft)) !important;
}

/* ---------- 登录页：全玻璃 ---------- */
#loginPage {
  background: linear-gradient(135deg, #DCE9FF 0%, #F5F7FA 40%, #E3EEFF 75%, #D6E6FF 100%) !important;
}
#loginPage::before {
  content: ''; position: fixed; inset: 0; z-index: -1; pointer-events: none;
  background: radial-gradient(600px 300px at 15% 20%, rgba(59,130,246,.14), transparent 60%),
              radial-gradient(500px 280px at 85% 80%, rgba(124,58,237,.12), transparent 60%);
}
#loginPage .bg-white {
  background: rgba(255,255,255,.58) !important;
  backdrop-filter: blur(26px) saturate(170%) !important;
  -webkit-backdrop-filter: blur(26px) saturate(170%) !important;
  border: 1px solid rgba(255,255,255,.75) !important;
  box-shadow: 0 8px 40px rgba(37,99,235,.16), inset 0 1px 0 rgba(255,255,255,.85) !important;
}
#loginPage input { background: rgba(255,255,255,.70) !important; }

/* ---------- 统计卡：玻璃 + 高光 ---------- */
.stat-card, .stat-card.cursor-pointer {
  background: var(--glass-bg) !important;
  backdrop-filter: blur(var(--glass-blur)) saturate(160%) !important;
  -webkit-backdrop-filter: blur(var(--glass-blur)) saturate(160%) !important;
  border: 1px solid var(--glass-border) !important;
  box-shadow: var(--glass-shadow), var(--glass-highlight) !important;
}

/* ---------- 表头磨砂 ---------- */
table thead tr, table thead {
  background: rgba(255,255,255,.55) !important;
}

/* ---------- 按钮：玻璃层次 ---------- */
button.bg-primary {
  background: linear-gradient(180deg, rgba(79,141,248,.95), rgba(59,130,246,.95)) !important;
  box-shadow: 0 2px 12px rgba(59,130,246,.25), inset 0 1px 0 rgba(255,255,255,.25) !important;
}
button.bg-gray-100 { background: rgba(255,255,255,.62) !important; }

/* ---------- 输入框：白玻璃 ---------- */
input, select, textarea {
  background: rgba(255,255,255,.72) !important;
  border: 1px solid rgba(255,255,255,.8) !important;
}

/* ---------- 弹窗：重玻璃（突出层级） ---------- */
#modalBox {
  background: rgba(255,255,255,.96) !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  border: 1px solid rgba(255,255,255,.85) !important;
  box-shadow: 0 16px 64px rgba(31,38,135,.16), inset 0 1px 0 rgba(255,255,255,.9) !important;
}
/* 弹窗内输入框/选择器：实底（避免玻璃叠玻璃文字被压） */
#modalBox input, #modalBox select, #modalBox textarea {
  background: rgba(255,255,255,.96) !important;
}

/* ---------- 滚动条：半透明纤细 ---------- */
::-webkit-scrollbar-thumb { background: rgba(100,116,139,.35) !important; border-radius: 3px; }
::-webkit-scrollbar-thumb:hover { background: rgba(100,116,139,.55) !important; }

/* ---------- 降级：不支持 backdrop-filter 的浏览器 → 纯白（360 老内核） ---------- */
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
  .bg-white.rounded-xl, .bg-white.rounded-2xl, aside, #modalBox, .stat-card,
  #loginPage .bg-white { background: rgba(255,255,255,.97) !important; }
}

/* ---------- 打印：强制纯白，不影响打印单 ---------- */
@media print {
  * { backdrop-filter: none !important; -webkit-backdrop-filter: none !important; background: #fff !important; }
  body::before, body::after, #appLayout::before, #loginPage::before { display: none !important; }
}

/* ============================================================
   全面组件玻璃化（弹窗/按钮/Element Plus 全套）
   ============================================================ */

/* ---------- 侧边栏分组标题（美化） ---------- */
aside .text-xs.text-gray-400.px-4 {
  font-size: 11px !important;
  letter-spacing: .12em;
  color: #94A3B8 !important;
  padding: 16px 16px 6px !important;
  text-transform: uppercase;
}
aside .mb-2 { margin-bottom: 2px !important; }

/* ---------- 菜单项（玻璃胶囊） ---------- */
.sidebar-item {
  border-radius: 12px !important;
  margin: 2px 10px !important;
  padding: 9px 12px !important;
  font-size: 13.5px !important;
  color: #475569 !important;
  transition: all .18s !important;
}
.sidebar-item i { font-size: 14px !important; opacity: .85; }
.sidebar-item:hover {
  background: rgba(59,130,246,.10) !important;
  color: #2563EB !important;
}
.sidebar-item.active {
  background: linear-gradient(90deg, rgba(59,130,246,.20), rgba(59,130,246,.10)) !important;
  color: #2563EB !important;
  font-weight: 600 !important;
  box-shadow: inset 3px 0 0 #3B82F6, 0 2px 8px rgba(59,130,246,.15) !important;
}
.sidebar-item.sub-item { font-size: 12.5px !important; padding: 7px 12px !important; }

/* ---------- Element Plus 按钮（全套） ---------- */
.el-button {
  border-radius: 10px !important;
  font-size: 13px !important;
  font-weight: 500;
  transition: all .18s !important;
}
.el-button--primary {
  background: linear-gradient(180deg, #4F8DF8, #3B82F6) !important;
  border-color: transparent !important;
  box-shadow: 0 2px 10px rgba(59,130,246,.22) !important;
}
.el-button--primary:hover { filter: brightness(1.06); transform: translateY(-1px); box-shadow: 0 4px 16px rgba(59,130,246,.30) !important; }
.el-button--primary:active { transform: scale(.97); }
.el-button--success { background: linear-gradient(180deg, #22C55E, #16A34A) !important; border-color: transparent !important; }
.el-button--danger { background: linear-gradient(180deg, #EF4444, #DC2626) !important; border-color: transparent !important; }
.el-button--warning { background: linear-gradient(180deg, #F59E0B, #D97706) !important; border-color: transparent !important; }
.el-button--default { background: rgba(255,255,255,.72) !important; border: 1px solid rgba(148,163,184,.35) !important; }
.el-button.is-plain { background: rgba(255,255,255,.65) !important; }
.el-button--primary.is-link, .el-button--primary.is-text { background: transparent !important; box-shadow: none !important; }

/* ---------- Element Plus 弹窗（重玻璃） ---------- */
.el-dialog {
  border-radius: 18px !important;
  background: rgba(255,255,255,.96) !important;
  border: 1px solid rgba(255,255,255,.85) !important;
  box-shadow: 0 24px 80px rgba(31,38,135,.18), inset 0 1px 0 rgba(255,255,255,.9) !important;
  overflow: hidden;
}
.el-dialog__body input, .el-dialog__body select, .el-dialog__body textarea {
  background: rgba(255,255,255,.96) !important;
}
.el-dialog__header { padding: 20px 24px 8px !important; }
.el-dialog__title { font-size: 16px !important; font-weight: 600 !important; color: #1F2937 !important; }
.el-dialog__body { padding: 12px 24px 20px !important; }
.el-dialog__footer { padding: 10px 24px 18px !important; }

/* ---------- 消息确认框（玻璃） ---------- */
.el-message-box {
  border-radius: 16px !important;
  background: rgba(255,255,255,.9) !important;
  backdrop-filter: blur(24px) saturate(160%) !important;
  border: 1px solid rgba(255,255,255,.8) !important;
  box-shadow: 0 16px 56px rgba(31,38,135,.16) !important;
}

/* ---------- Element Plus 表格 ---------- */
.el-table {
  --el-table-header-bg-color: rgba(255,255,255,.55) !important;
  --el-table-row-hover-bg-color: rgba(59,130,246,.06) !important;
  --el-table-border-color: rgba(148,163,184,.18) !important;
  border-radius: 12px !important;
  overflow: hidden;
}
.el-table th.el-table__cell {
  background: rgba(255,255,255,.55) !important;
  color: #475569 !important;
  font-weight: 600 !important;
  font-size: 12.5px !important;
}
.el-table__row:hover > td.el-table__cell { background: rgba(59,130,246,.06) !important; }

/* ---------- Element Plus 输入/选择/日期 ---------- */
.el-input__wrapper, .el-select__wrapper, .el-textarea__inner {
  background: rgba(255,255,255,.78) !important;
  border-radius: 10px !important;
  box-shadow: 0 0 0 1px rgba(148,163,184,.3) inset !important;
}
.el-input__wrapper.is-focus, .el-select__wrapper.is-focused {
  box-shadow: 0 0 0 1.5px #3B82F6 inset, 0 0 0 3px rgba(59,130,246,.14) !important;
}
.el-date-editor.el-input__wrapper { background: rgba(255,255,255,.78) !important; }

/* ---------- Element Plus 标签 ---------- */
.el-tag { border-radius: 6px !important; font-weight: 500 !important; }
.el-tag--success { background: rgba(16,185,129,.12) !important; border-color: transparent !important; color: #047857 !important; }
.el-tag--warning { background: rgba(245,158,11,.14) !important; border-color: transparent !important; color: #B45309 !important; }
.el-tag--danger { background: rgba(239,68,68,.12) !important; border-color: transparent !important; color: #B91C1C !important; }
.el-tag--info { background: rgba(100,116,139,.12) !important; border-color: transparent !important; color: #475569 !important; }

/* ---------- Element Plus 分页 ---------- */
.el-pagination { --el-pagination-button-bg-color: rgba(255,255,255,.7) !important; }
.el-pagination .el-pager li {
  border-radius: 8px !important;
  background: rgba(255,255,255,.6) !important;
  margin: 0 2px !important;
}
.el-pagination .el-pager li.is-active { background: linear-gradient(180deg, #4F8DF8, #3B82F6) !important; color: #fff !important; box-shadow: 0 2px 8px rgba(59,130,246,.25) !important; }

/* ---------- 消息提示 ---------- */
.el-message { border-radius: 12px !important; border: 1px solid rgba(255,255,255,.7) !important; box-shadow: 0 8px 32px rgba(31,38,135,.12) !important; }
.el-message--success { background: rgba(236,253,245,.92) !important; }
.el-message--warning { background: rgba(255,251,235,.92) !important; }
.el-message--error { background: rgba(254,242,242,.92) !important; }

/* ---------- 原生弹窗（#modalBox） ---------- */
#modalBox { border-radius: 18px !important; }
#modalBox h2 { font-size: 16px !important; font-weight: 600 !important; color: #1F2937 !important; }

/* ---------- Tab 切换 ---------- */
.el-tabs__item { font-size: 13.5px !important; }
.el-tabs__item.is-active { color: #3B82F6 !important; font-weight: 600 !important; }
.el-tabs__active-bar { background: linear-gradient(90deg, #4F8DF8, #3B82F6) !important; height: 3px !important; border-radius: 2px !important; }

/* ---------- 下拉面板 ---------- */
.el-popper, .el-select__popper, .el-dropdown__popper {
  border-radius: 12px !important;
  background: rgba(255,255,255,.92) !important;
  backdrop-filter: blur(20px) !important;
  border: 1px solid rgba(255,255,255,.8) !important;
  box-shadow: 0 12px 40px rgba(31,38,135,.14) !important;
}
.el-select-dropdown__item.is-hovering { background: rgba(59,130,246,.08) !important; }
.el-select-dropdown__item.is-selected { color: #3B82F6 !important; font-weight: 600 !important; }

/* ---------- Loading 骨架 ---------- */
.el-loading-mask { background: rgba(245,247,255,.75) !important; backdrop-filter: blur(4px) !important; }

/* ---------- 空状态（图标灰） ---------- */
.el-table__empty-block .el-table__empty-text { color: #94A3B8 !important; }

/* ---------- 等宽字体（数字/编码/金额，医疗对齐） ---------- */
.font-mono, td.font-mono, .el-table .cell, .stat-card .text-\[28px\],
.el-table td, .el-input__inner, input[type=number] {
  font-family: 'JetBrains Mono', 'Consolas', 'SF Mono', 'Menlo', monospace !important;
  font-variant-numeric: tabular-nums;
}
::-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; }
.el-scrollbar__bar { width: 3px !important; height: 3px !important; }
.el-scrollbar__thumb { background: rgba(100,116,139,.18) !important; border-radius: 2px !important; }

/* ---------- 表格表头圆角（档案号所在表头背景圆角化） ---------- */
table thead th, .el-table th.el-table__cell {
  border-radius: 8px !important;
}



/* ---------- 表头行两端圆角（背景块右端也圆角） ---------- */
table thead th:first-child { border-radius: 10px 0 0 10px !important; }
table thead th:last-child { border-radius: 0 10px 10px 0 !important; }
/* 表格最后一行底部圆角 */
table tbody tr:last-child td:first-child { border-radius: 0 0 0 10px !important; }
table tbody tr:last-child td:last-child { border-radius: 0 0 10px 0 !important; }

/* ===== 按钮统一：成功/警告按钮 → 玻璃胶囊（不再纯色实底） ===== */
#mainContent button.bg-success, #mainContent button.bg-warning, button.bg-success, button.bg-warning {
  border-radius: 8px !important;
  font-weight: 500 !important;
  box-shadow: none !important;
}
#mainContent button.bg-success, button.bg-success {
  background: rgba(16,185,129,.14) !important;
  color: #047857 !important;
  border: 1px solid rgba(16,185,129,.25) !important;
}
#mainContent button.bg-success:hover, button.bg-success:hover { background: rgba(16,185,129,.22) !important; }
#mainContent button.bg-warning, button.bg-warning {
  background: rgba(245,158,11,.14) !important;
  color: #B45309 !important;
  border: 1px solid rgba(245,158,11,.25) !important;
}
#mainContent button.bg-warning:hover, button.bg-warning:hover { background: rgba(245,158,11,.22) !important; }
#mainContent button.bg-danger, button.bg-danger {
  background: rgba(239,68,68,.12) !important;
  color: #B91C1C !important;
  border: 1px solid rgba(239,68,68,.22) !important;
  border-radius: 8px !important;
}
#mainContent button.bg-danger:hover, button.bg-danger:hover { background: rgba(239,68,68,.20) !important; }
#mainContent button.bg-gray-100 { border-radius: 8px !important; }

/* ===== 页面整体背景容器（所有页面统一：一个背景，背景上放东西） ===== */
#mainContent {
  background: rgba(255,255,255,.45) !important;
  backdrop-filter: blur(18px) saturate(150%) !important;
  -webkit-backdrop-filter: blur(18px) saturate(150%) !important;
  border: 1px solid rgba(255,255,255,.75) !important;
  border-radius: 18px !important;
  padding: 20px !important;
  min-height: calc(100vh - 120px) !important;
  box-shadow: 0 8px 32px rgba(31,38,135,.10), inset 0 1px 0 rgba(255,255,255,.85) !important;
}

/* 医生看板卡片流：隐藏滚动条（拖拽滑动） */
#docCards { scrollbar-width: none !important; }
#docCards::-webkit-scrollbar { display: none !important; }
