/* ============================================================
   数据看板专属主题 · 星夜紫 (Violet Night)
   仅作用于可视化大屏(index)与部门统计(departments)两个页面：
   页面 body 加 class="dash" 并引入本文件即可，不影响其他页面。
   设计语言：深紫夜空 + 罗兰紫主光 + 粉/青辅光 + 圆角玻璃面板
   ============================================================ */

body.dash {
  --vn-1: #7c3aed;           /* 主紫 */
  --vn-2: #a78bfa;           /* 亮紫 */
  --vn-3: #c4b5fd;           /* 浅紫 */
  --vn-pink: #e879f9;
  --vn-cyan: #22d3ee;
  --vn-green: #34d399;
  --vn-amber: #fbbf24;
  --vn-panel: rgba(30, 18, 66, .62);
  --vn-panel-2: rgba(44, 25, 92, .55);
  --vn-border: rgba(139, 92, 246, .28);
  --vn-border-soft: rgba(139, 92, 246, .14);

  background:
    radial-gradient(1100px 540px at 50% -10%, rgba(124, 58, 237, .22), transparent 62%),
    radial-gradient(860px 460px at 106% 58%, rgba(232, 121, 249, .10), transparent 58%),
    radial-gradient(860px 460px at -6% 104%, rgba(34, 211, 238, .08), transparent 58%),
    linear-gradient(180deg, #0d0724 0%, #070312 100%);
  background-attachment: fixed;
}

body.dash::before {
  background-image:
    linear-gradient(rgba(167, 139, 250, .03) 1px, transparent 1px),
    linear-gradient(90deg, rgba(167, 139, 250, .03) 1px, transparent 1px);
}

/* ---------- 侧边栏 ---------- */
body.dash .sidebar {
  background: linear-gradient(180deg, #170c3f 0%, #0d0726 78%, #0a051d 100%);
  border-right: 1px solid rgba(139, 92, 246, .22);
}
body.dash .sidebar::after { display: none; }
body.dash .sidebar .logo {
  background: linear-gradient(135deg, #a78bfa, #e879f9);
  box-shadow: 0 0 18px rgba(139, 92, 246, .55);
}
body.dash .sidebar nav a { border-radius: 9px; margin-bottom: 3px; }
body.dash .sidebar nav a:hover { background: rgba(139, 92, 246, .14); }
body.dash .sidebar nav a.active {
  background: linear-gradient(90deg, rgba(124, 58, 237, .38), rgba(124, 58, 237, .10));
  box-shadow: inset 2px 0 0 #a78bfa;
}
body.dash .sidebar nav a.active .nav-icon {
  color: #c4b5fd;
  filter: drop-shadow(0 0 6px rgba(196, 181, 253, .9));
}
body.dash .sidebar-search button {
  background: linear-gradient(135deg, #7c3aed, #a855f7);
}
body.dash .sidebar-foot { color: rgba(196, 181, 253, .55); }

/* ---------- 面板 ---------- */
body.dash .panel {
  background:
    linear-gradient(165deg, rgba(124, 58, 237, .13), transparent 42%),
    linear-gradient(165deg, var(--vn-panel) 0%, rgba(20, 11, 46, .88) 100%);
  border: 1px solid var(--vn-border);
  border-radius: 14px;
  box-shadow:
    0 12px 34px rgba(0, 0, 0, .45),
    inset 0 1px 0 rgba(255, 255, 255, .045);
}
body.dash .panel::before { display: none; }
body.dash .panel-title { color: #f3efff; justify-content: flex-start; }
body.dash .panel-title::before {
  background: linear-gradient(180deg, #c4b5fd, #7c3aed);
  box-shadow: 0 0 10px rgba(139, 92, 246, .8);
}
body.dash .panel-title::after { display: none; }

/* ---------- 大屏头部：品牌 | 居中标题 | 时钟 ---------- */
body.dash .screen-header {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 16px;
  padding: 20px 26px;
  background:
    radial-gradient(600px 160px at 50% -60%, rgba(124, 58, 237, .35), transparent 70%),
    linear-gradient(170deg, rgba(46, 24, 100, .75), rgba(15, 8, 38, .92));
  border: 1px solid rgba(139, 92, 246, .30);
  border-radius: 16px;
  box-shadow:
    0 14px 40px rgba(0, 0, 0, .5),
    0 0 80px -24px rgba(124, 58, 237, .55);
  overflow: hidden;
}
body.dash .screen-header::before {
  background: linear-gradient(90deg, transparent, #a78bfa 30%, #e879f9 55%, #22d3ee 78%, transparent);
  box-shadow: 0 0 14px rgba(167, 139, 250, .8);
}
body.dash .screen-header::after { display: none; }
body.dash .sh-side { display: flex; align-items: center; gap: 12px; min-width: 0; }
body.dash .sh-side.sh-right { justify-content: flex-end; }
body.dash .sh-brand {
  width: 44px; height: 44px; flex-shrink: 0;
  display: inline-flex; align-items: center; justify-content: center;
  border-radius: 12px;
  background: linear-gradient(135deg, #a78bfa, #e879f9);
  color: #fff; font-size: 21px; font-weight: 800;
  box-shadow: 0 0 22px rgba(139, 92, 246, .6);
}
body.dash .sh-brand-txt { font-size: 13px; font-weight: 700; color: #e9e2ff; line-height: 1.35; }
body.dash .sh-brand-txt span {
  display: block; font-size: 10px; font-weight: 400;
  color: rgba(196, 181, 253, .6); letter-spacing: 1.6px;
}
body.dash .sh-center { text-align: center; position: relative; z-index: 1; }
body.dash .sh-center h1 {
  font-size: 30px; font-weight: 800; letter-spacing: 6px; white-space: nowrap;
  background: linear-gradient(90deg, #ffffff, #d8ccff 45%, #a78bfa);
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent;
  filter: drop-shadow(0 0 16px rgba(139, 92, 246, .55));
}
body.dash .sh-center .sub {
  font-size: 11px; color: rgba(196, 181, 253, .65);
  letter-spacing: 4px; margin-top: 6px; text-transform: uppercase;
}
body.dash .sh-clock { text-align: right; }
body.dash .clock-time {
  font-size: 30px; font-weight: 800; letter-spacing: 3px; line-height: 1;
  color: #fff; font-variant-numeric: tabular-nums;
  text-shadow: 0 0 8px rgba(167, 139, 250, .65), 0 0 28px rgba(124, 58, 237, .6);
}
body.dash .clock-date {
  font-size: 12px; color: rgba(196, 181, 253, .7);
  margin-top: 7px; letter-spacing: 2px;
}
body.dash .sync-pill {
  font-size: 12px !important;
  color: #fff !important;
  background: linear-gradient(135deg, #7c3aed, #c026d3) !important;
  padding: 7px 14px !important;
  border-radius: 99px !important;
  font-weight: 600 !important;
  cursor: pointer;
  box-shadow: 0 0 18px rgba(139, 92, 246, .5) !important;
  white-space: nowrap;
  transition: transform .15s ease, box-shadow .15s ease;
}
body.dash .sync-pill:hover {
  transform: translateY(-1px);
  box-shadow: 0 0 26px rgba(167, 139, 250, .8) !important;
}
@media (max-width: 900px) {
  body.dash .screen-header { grid-template-columns: 1fr; text-align: center; }
  body.dash .sh-side, body.dash .sh-side.sh-right { justify-content: center; }
  body.dash .sh-clock { text-align: center; }
}

/* ---------- 筛选条与按钮 ---------- */
body.dash .filter-bar select,
body.dash .filter-bar input[type="text"],
body.dash .filter-bar input[type="date"] {
  background: rgba(23, 12, 54, .85);
  border: 1px solid rgba(139, 92, 246, .30);
  border-radius: 9px;
  color: #ece7ff;
}
body.dash .filter-bar select:focus,
body.dash .filter-bar input:focus {
  border-color: #a78bfa;
  box-shadow: 0 0 0 3px rgba(124, 58, 237, .22);
}
body.dash .filter-bar select option { background: #170c3f; color: #ece7ff; }
body.dash .btn {
  border-radius: 9px;
  background: linear-gradient(135deg, #7c3aed, #9333ea);
  border: none;
  color: #fff;
  box-shadow: 0 4px 16px -4px rgba(124, 58, 237, .6);
}
body.dash .btn:hover { filter: brightness(1.12); }
body.dash .btn.btn-secondary {
  background: rgba(139, 92, 246, .16);
  border: 1px solid rgba(139, 92, 246, .4);
  color: #d8ccff;
}
body.dash .btn.btn-ghost {
  background: transparent; border: 1px solid rgba(139, 92, 246, .35); color: #b9a8ef;
  box-shadow: none;
}
body.dash .btn.btn-success { background: linear-gradient(135deg, #059669, #34d399); }
body.dash .btn.btn-danger { background: linear-gradient(135deg, #be123c, #f43f5e); }

/* ---------- 统计数字卡 ---------- */
body.dash .cards { gap: 13px; }
body.dash .card {
  border-radius: 14px;
  border: 1px solid var(--vn-border);
  background:
    linear-gradient(165deg, rgba(255, 255, 255, .05), transparent 40%),
    linear-gradient(165deg, var(--vn-panel) 0%, rgba(19, 10, 44, .9) 100%);
  box-shadow: 0 10px 26px rgba(0, 0, 0, .4);
}
body.dash .card::before, body.dash .card::after { display: none; }
body.dash .card:hover {
  transform: translateY(-3px);
  border-color: var(--accent);
  box-shadow: 0 14px 34px rgba(0, 0, 0, .5), 0 0 30px -6px var(--accent);
}
body.dash .card .card-icon {
  background: color-mix(in srgb, var(--accent) 18%, transparent);
  border-radius: 10px;
}
body.dash .card .card-value { text-shadow: 0 0 14px var(--accent-soft, rgba(167, 139, 250, .5)); }
body.dash .card.accent-blue   { --accent: #818cf8; --accent-soft: rgba(129, 140, 248, .45); }
body.dash .card.accent-green  { --accent: #34d399; --accent-soft: rgba(52, 211, 153, .45); }
body.dash .card.accent-red    { --accent: #fb7185; --accent-soft: rgba(251, 113, 133, .45); }
body.dash .card.accent-amber  { --accent: #fbbf24; --accent-soft: rgba(251, 191, 36, .45); }
body.dash .card.accent-cyan   { --accent: #22d3ee; --accent-soft: rgba(34, 211, 238, .45); }
body.dash .card-go { color: var(--accent); }

/* ---------- 环形图卡片 ---------- */
body.dash .ring-grid { gap: 13px; }
/* 面板内并排的紧凑环形行（核心比率） */
.ring-row {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
  align-items: stretch;
}
.ring-row .ring-card { padding: 14px 10px 10px; gap: 7px; }
.ring-row .ring-wrap, .ring-row .ring-svg { width: 106px; height: 106px; }
.ring-row .ring-val { font-size: 20px; }
.ring-row .ring-cap { font-size: 11.5px; }
.ring-row .ring-sub { font-size: 11px; padding-top: 6px; }
@media (max-width: 720px) { .ring-row { grid-template-columns: 1fr; } }
body.dash .ring-card {
  background-image: none;
  background:
    linear-gradient(165deg, rgba(255, 255, 255, .045), transparent 42%),
    linear-gradient(165deg, var(--vn-panel) 0%, rgba(19, 10, 44, .9) 100%);
  border: 1px solid var(--vn-border);
  border-radius: 14px;
  box-shadow: 0 10px 26px rgba(0, 0, 0, .4);
}
body.dash .ring-card::before {
  background: linear-gradient(90deg, transparent, rgba(167, 139, 250, .85), transparent);
  filter: drop-shadow(0 1px 8px rgba(139, 92, 246, .6));
}
body.dash .ring-card::after {
  background: radial-gradient(ellipse at top, rgba(124, 58, 237, .18), transparent 70%);
}
body.dash .ring-card:hover {
  border-color: rgba(167, 139, 250, .55);
  box-shadow: 0 14px 34px rgba(0, 0, 0, .5), 0 0 36px -8px rgba(124, 58, 237, .6);
}
body.dash .ring-val {
  text-shadow: 0 0 8px rgba(167, 139, 250, .55), 0 0 26px rgba(124, 58, 237, .55);
}
body.dash .ring-sub, body.dash .ring-legend { border-top: 1px dashed rgba(139, 92, 246, .22); }
body.dash .ring-card.mini { background-image: none; }

/* ---------- 趋势图 ---------- */
body.dash .trend-wrap {
  background:
    linear-gradient(180deg, rgba(124, 58, 237, .06), transparent 55%),
    rgba(15, 8, 38, .55);
  border: 1px solid var(--vn-border-soft);
  border-radius: 12px;
}
body.dash .trend-wrap::before {
  background: linear-gradient(90deg, transparent, rgba(167, 139, 250, .55), transparent);
}
body.dash .trend-grid { stroke: rgba(167, 139, 250, .13); }
body.dash .trend-bar:hover { filter: drop-shadow(0 0 10px rgba(167, 139, 250, .9)); }
body.dash .trend-dot {
  fill: #f0abfc;
  stroke: #0d0724;
  filter: drop-shadow(0 0 8px rgba(240, 171, 252, 1));
}

/* ---------- 部门占比：饼图 + 奖牌排行 ---------- */
body.dash .dept-share-wrap {
  background:
    linear-gradient(180deg, rgba(124, 58, 237, .06), transparent 55%),
    rgba(15, 8, 38, .55);
  border: 1px solid var(--vn-border-soft);
  border-radius: 12px;
}
body.dash .dept-pie svg { filter: drop-shadow(0 0 18px rgba(124, 58, 237, .35)); }
body.dash .pie-slice:hover { filter: brightness(1.2) drop-shadow(0 0 8px rgba(196, 181, 253, .6)); }
body.dash .ds-rank, body.dash .rk-medal { font-size: 13px; }
body.dash .ds-rank {
  background: rgba(124, 58, 237, .12);
  border: 1px solid rgba(139, 92, 246, .3);
  border-radius: 6px;
  color: #c4b5fd;
}
body.dash .ds-name { color: #ddd3f9; }
body.dash .ds-track {
  background: rgba(124, 58, 237, .13);
  border-radius: 99px;
}
body.dash .ds-fill { border-radius: 99px; }
body.dash .ds-pct b { color: #fff; }

/* ---------- 奖牌排行条（部门排行 / 离职率对比 / 通过率对比） ---------- */
.rk-list { display: flex; flex-direction: column; gap: 16px; }
.rk-row { display: flex; align-items: center; gap: 10px; font-size: 13.5px; }
.rk-medal {
  width: 24px; flex-shrink: 0; text-align: center;
  font-size: 14px; line-height: 1;
}
.rk-medal.plain {
  font-size: 11px; font-weight: 700; color: rgba(196, 181, 253, .55);
}
.rk-name {
  width: 92px; flex-shrink: 0;
  color: #ddd3f9; font-weight: 600;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.rk-track {
  flex: 1; height: 14px;
  background: rgba(124, 58, 237, .13);
  border-radius: 99px;
  overflow: hidden;
}
.rk-fill {
  height: 100%; border-radius: 99px;
  background: linear-gradient(90deg, #7c3aed, #c4b5fd);
  box-shadow: 0 0 10px rgba(139, 92, 246, .55);
  animation: barGrow .9s ease-out;
}
.rk-fill.pink  { background: linear-gradient(90deg, #a21caf, #e879f9); box-shadow: 0 0 10px rgba(232, 121, 249, .5); }
.rk-fill.cyan  { background: linear-gradient(90deg, #0e7490, #22d3ee); box-shadow: 0 0 10px rgba(34, 211, 238, .5); }
.rk-fill.green { background: linear-gradient(90deg, #059669, #34d399); box-shadow: 0 0 10px rgba(52, 211, 153, .5); }
.rk-val {
  width: 150px; flex-shrink: 0;
  display: flex; flex-direction: column; align-items: flex-end; gap: 2px;
  text-align: right;
  color: rgba(196, 181, 253, .8);
  font-variant-numeric: tabular-nums;
}
.rk-val b { color: #fff; font-weight: 700; font-size: 13px; white-space: nowrap; }
.rk-sub {
  font-style: normal; font-size: 10.5px; line-height: 1.25;
  color: rgba(196, 181, 253, .62);
  max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}

/* ---------- 表格 ---------- */
body.dash .table-wrap table { border-radius: 12px; overflow: hidden; }
body.dash .table-wrap thead th {
  background: rgba(46, 24, 100, .92);
  color: #d8ccff;
  border-bottom: 1px solid rgba(139, 92, 246, .35);
}
body.dash .table-wrap tbody tr { border-bottom: 1px solid rgba(139, 92, 246, .10); }
body.dash .table-wrap tbody tr:nth-child(even) { background: rgba(124, 58, 237, .05); }
body.dash .table-wrap tbody tr:hover { background: rgba(124, 58, 237, .13); }

/* ---------- 面试结果分布（堆叠比例条） ---------- */
.dist-total { font-size: 13px; color: rgba(196, 181, 253, .75); margin-bottom: 16px; }
.dist-total b { color: #fff; font-size: 22px; font-weight: 800; margin-left: 6px; }
.dist-bar {
  display: flex; height: 18px; border-radius: 99px; overflow: hidden;
  background: rgba(124, 58, 237, .12);
  box-shadow: inset 0 0 0 1px rgba(139, 92, 246, .25);
}
.dist-bar > div { height: 100%; min-width: 2px; transition: width .8s ease; }
.dist-bar > div:first-child { border-radius: 99px 0 0 99px; }
.dist-bar > div:last-child { border-radius: 0 99px 99px 0; }
.dist-legend {
  display: flex; flex-direction: column; gap: 10px;
  margin-top: 18px;
}
.dist-item {
  display: flex; align-items: center; gap: 10px;
  font-size: 13px; color: #ddd3f9;
  padding: 8px 12px;
  background: rgba(124, 58, 237, .08);
  border: 1px solid rgba(139, 92, 246, .16);
  border-radius: 10px;
}
.dist-item .lg-dot { width: 9px; height: 9px; border-radius: 50%; box-shadow: 0 0 8px currentColor; flex-shrink: 0; }
.dist-item .dist-label { width: 52px; }
.dist-item b { font-size: 16px; color: #fff; font-variant-numeric: tabular-nums; }
.dist-item .dist-pct { margin-left: auto; color: rgba(196, 181, 253, .7); font-variant-numeric: tabular-nums; }

/* ---------- 页头（部门统计页） ---------- */
body.dash .page-header h1 { color: #f3efff; }
body.dash .page-header .sub { color: rgba(196, 181, 253, .6); }

/* ============================================================
   全站统一 · 星夜紫适配（style.css 体系内页：记录/数据/资产/离职率等）
   ============================================================ */
body.dash { color: #e9e1ff; }
body.dash a { color: #c4b5fd; }
body.dash .page-header .sub { color: rgba(196,181,253,.65); }

/* 表格 */
body.dash .table-wrap { background: rgba(30,18,66,.5); }
body.dash .table-wrap tbody td { color: #d9cdff; border-bottom: 1px solid rgba(139,92,246,.12); }
body.dash .table-wrap tbody tr:hover td { background: rgba(124,58,237,.10); }
body.dash .table-wrap a { color: #c4b5fd; }
body.dash .badge-pass    { background: rgba(52,211,153,.16); color: #6ee7b7; }
body.dash .badge-pending { background: rgba(251,191,36,.16); color: #fcd34d; }
body.dash .badge-entry   { background: rgba(34,211,238,.16); color: #67e8f9; }
body.dash .badge-left    { background: rgba(255,85,119,.16); color: #fda4af; }
body.dash .badge-warn    { background: rgba(232,121,249,.16); color: #f0abfc; }
body.dash .badge-empty   { background: rgba(139,92,246,.14); color: #c4b5fd; }

/* 筛选条 / 表单 */
body.dash .filter-bar input,
body.dash .form-item input, body.dash .form-item select, body.dash .form-item textarea {
  background: rgba(20,12,46,.75); color: #e9e1ff;
  border: 1px solid rgba(139,92,246,.32); border-radius: 9px;
}
body.dash .filter-bar input::placeholder, body.dash .form-item input::placeholder { color: rgba(196,181,253,.4); }
body.dash .form-item label { color: #b9a8e8; }
body.dash .form-item label .req { color: #fda4af; }
body.dash select option { background: #1a1040; color: #e9e1ff; }

/* 按钮 */
body.dash .btn { background: linear-gradient(135deg,#7c3aed,#a855f7); border: none; color: #fff; box-shadow: 0 0 14px rgba(139,92,246,.35); }
body.dash .btn:hover { filter: brightness(1.12); }
body.dash .btn-outline { background: transparent; color: #c4b5fd; border: 1px solid rgba(139,92,246,.45); box-shadow: none; }
body.dash .btn-success { background: linear-gradient(135deg,#059669,#34d399); box-shadow: 0 0 14px rgba(52,211,153,.3); }
body.dash .btn-danger  { background: linear-gradient(135deg,#be185d,#fb7185); box-shadow: 0 0 14px rgba(251,113,133,.3); }
body.dash .btn-ghost, body.dash .btn-danger-ghost { background: rgba(139,92,246,.10); color: #d9cdff; box-shadow: none; }
body.dash .btn-ghost:hover, body.dash .btn-danger-ghost:hover { background: rgba(139,92,246,.2); }

/* 标签页 / 分页 / 弹窗 / 提示 */
body.dash .tabs { background: rgba(139,92,246,.10); border-radius: 10px; padding: 4px; }
body.dash .tab { color: #b9a8e8; border-radius: 8px; }
body.dash .tab.active { background: linear-gradient(135deg,#7c3aed,#a855f7); color: #fff; }
body.dash .pagination .info { color: rgba(196,181,253,.65); }
body.dash .pagination button { background: rgba(30,18,66,.7); color: #d9cdff; border: 1px solid rgba(139,92,246,.3); }
body.dash .pagination button.active { background: linear-gradient(135deg,#7c3aed,#a855f7); color: #fff; }
body.dash .modal { background: linear-gradient(165deg, rgba(44,25,92,.98), rgba(20,11,46,.98)); border: 1px solid rgba(139,92,246,.35); color: #e9e1ff; }
body.dash .modal-header h3 { color: #fff; }
body.dash .modal-close { background: rgba(139,92,246,.18); color: #d9cdff; }
body.dash .modal-mask { background: rgba(5,2,18,.7); }
body.dash .alert        { background: rgba(139,92,246,.10); border: 1px solid rgba(139,92,246,.3); color: #d9cdff; }
body.dash .alert-info    { background: rgba(34,211,238,.10); border-color: rgba(34,211,238,.35); color: #a5f3fc; }
body.dash .alert-warn    { background: rgba(251,191,36,.10); border-color: rgba(251,191,36,.35); color: #fde68a; }
body.dash .alert-success { background: rgba(52,211,153,.10); border-color: rgba(52,211,153,.35); color: #a7f3d0; }
body.dash .dropzone { background: rgba(30,18,66,.55); border: 1px dashed rgba(139,92,246,.45); color: #d9cdff; }
body.dash .dropzone .dz-title { color: #e9e1ff; }
body.dash .dropzone .dz-file  { color: #b9a8e8; }
body.dash .empty-tip, body.dash .loading-tip { color: rgba(196,181,253,.55); }
body.dash .toast { background: rgba(30,18,66,.95); color: #e9e1ff; border: 1px solid rgba(139,92,246,.4); }
body.dash .toast.success { background: rgba(5,150,105,.92); }
body.dash .toast.error   { background: rgba(190,24,93,.92); }

/* 条形图文字 */
body.dash .h-bar-label, body.dash .h-bar-value, body.dash .v-bar-label, body.dash .v-bar-tip { color: #d9cdff; }
body.dash .h-bar-track, body.dash .v-bar-wrap { background: rgba(124,58,237,.13); }
body.dash .trend-legend { color: #b9a8e8; }

/* ============================================================
   全站统一 · 星夜紫适配（accounts.css 体系浅色页：目标/账号/设备等）
   ============================================================ */
body.dash .main-content { color: #e9e1ff; }
body.dash .page-header-eyebrow { color: #a78bfa; }
body.dash .page-header-title { color: #fff; }
body.dash .page-header-subtitle { color: rgba(196,181,253,.65); }

/* 统计卡 / 面板 */
body.dash .page-stat-card, body.dash .page-panel, body.dash .page-table-card {
  background: linear-gradient(165deg, rgba(124,58,237,.13), transparent 42%), linear-gradient(165deg, rgba(30,18,66,.62) 0%, rgba(20,11,46,.88) 100%);
  border: 1px solid rgba(139,92,246,.28);
  box-shadow: 0 8px 24px rgba(5,2,18,.35);
}
body.dash .page-stat-card:hover, body.dash .page-table-card:hover { border-color: rgba(167,139,250,.55); }
body.dash .page-panel-soft { background: rgba(30,18,66,.45); }
body.dash .page-stat-label { color: rgba(196,181,253,.65); }
body.dash .page-stat-value { color: #fff; text-shadow: 0 0 18px rgba(167,139,250,.6); }
body.dash .page-stat-meta { color: rgba(196,181,253,.6); }
body.dash .page-panel-title { color: #fff; }
body.dash .page-data-item, body.dash .page-note-item { background: rgba(124,58,237,.10); }
body.dash .page-data-item:hover, body.dash .page-note-item:hover { background: rgba(124,58,237,.2); }
body.dash .page-data-item-label { color: #b9a8e8; }
body.dash .page-data-item-value { color: #fff; }
body.dash .page-note-item { color: #d9cdff; }
body.dash .page-note-item b { color: #c4b5fd; }

/* 表格 */
body.dash .table-wrap { border-color: rgba(139,92,246,.25); }
body.dash .acct-table th, body.dash .acct-table td { border-bottom-color: rgba(139,92,246,.12); color: #d9cdff; }
body.dash .acct-table thead th { background: rgba(46,24,100,.92); color: #d8ccff; }
body.dash .acct-table tbody tr:hover { background: rgba(124,58,237,.10); }
body.dash .tenure-empty { color: rgba(196,181,253,.4); }

/* 输入 / 下拉 / 搜索 */
body.dash .input, body.dash .select, body.dash .form-item textarea {
  background: rgba(20,12,46,.75); color: #e9e1ff; border-color: rgba(139,92,246,.32);
}
body.dash .input:focus, body.dash .select:focus, body.dash .form-item textarea:focus {
  border-color: #a78bfa; box-shadow: 0 0 0 3px rgba(167,139,250,.18);
}
body.dash .search-box .search-ico { color: rgba(196,181,253,.5); }

/* 按钮 */
body.dash .btn-primary { background: linear-gradient(135deg,#7c3aed,#a855f7); box-shadow: 0 0 14px rgba(139,92,246,.35); }
body.dash .btn-primary:hover { filter: brightness(1.12); }
body.dash .btn-secondary { background: rgba(139,92,246,.10); color: #d9cdff; border-color: rgba(139,92,246,.4); }
body.dash .btn-secondary:hover { background: rgba(139,92,246,.22); }
body.dash .btn-danger { background: linear-gradient(135deg,#be185d,#fb7185); }
body.dash .btn-text { color: #c4b5fd; }
body.dash .btn-text.danger { color: #fda4af; }

/* 标签页 / 徽标 / 分页 */
body.dash .filter-tabs { background: rgba(139,92,246,.12); }
body.dash .filter-tab { color: #b9a8e8; }
body.dash .filter-tab.active { background: linear-gradient(135deg,#7c3aed,#a855f7); color: #fff; box-shadow: none; }
body.dash .status-badge-success { background: rgba(52,211,153,.16); color: #6ee7b7; }
body.dash .status-badge-warning { background: rgba(251,191,36,.16); color: #fcd34d; }
body.dash .status-badge-danger  { background: rgba(255,85,119,.16); color: #fda4af; }
body.dash .status-badge-neutral { background: rgba(139,92,246,.14); color: #c4b5fd; }
body.dash .status-badge-info    { background: rgba(34,211,238,.16); color: #67e8f9; }
body.dash .page-btn { background: rgba(30,18,66,.7); color: #d9cdff; border-color: rgba(139,92,246,.3); }
body.dash .page-btn.active { background: linear-gradient(135deg,#7c3aed,#a855f7); color: #fff; }
body.dash .pagination .info { color: rgba(196,181,253,.65); }

/* 弹窗 */
body.dash .modal-mask { background: rgba(5,2,18,.7); }
body.dash .modal { background: linear-gradient(165deg, rgba(44,25,92,.98), rgba(20,11,46,.98)); border: 1px solid rgba(139,92,246,.35); }
body.dash .modal-header h3, body.dash .form-item label { color: #d9cdff; }
body.dash .modal-close { background: rgba(139,92,246,.18); color: #d9cdff; }

/* 侧栏（accounts 版结构） */
body.dash .sidebar { background: linear-gradient(180deg,#170c3f 0%,#0d0726 78%,#0a051d 100%); border-right: 1px solid rgba(139,92,246,.22); }
body.dash .nav-item { color: #b9a8e8; }
body.dash .nav-item:hover { background: rgba(139,92,246,.14); color: #e9e1ff; }
body.dash .nav-item.active { background: linear-gradient(90deg, rgba(124,58,237,.5), rgba(124,58,237,.15)); color: #fff; box-shadow: inset 2px 0 0 #a78bfa; }
body.dash .sidebar-user { border-top-color: rgba(139,92,246,.2); }
body.dash .sidebar-user-avatar { background: linear-gradient(135deg,#a78bfa,#e879f9); box-shadow: 0 0 14px rgba(139,92,246,.5); }
body.dash .sidebar-user-role { color: rgba(196,181,253,.55); }
body.dash .sidebar-action-btn, body.dash .sidebar-logout-btn { background: rgba(139,92,246,.14); color: #b9a8e8; }
body.dash .sidebar-action-btn:hover, body.dash .sidebar-logout-btn:hover { background: rgba(139,92,246,.26); color: #fff; }
body.dash .footer-marquee { background: rgba(30,18,66,.55); color: rgba(196,181,253,.65); }
