
* { box-sizing: border-box; }
html, body { height: 100%; }
body {
  margin: 0 !important;
  color: #ddd;
  font-family: -apple-system, BlinkMacSystemFont, "Helvetica Neue", Helvetica, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", Arial, sans-serif;
  background: #10151c;
}
body:before {
  content: "";
  width: 100%;
  height: 100%;
  position: fixed;
  z-index: -1;
  top: 0;
  left: 0;
  background: radial-gradient(1200px 700px at 15% 10%, #26364d 0%, #131a24 45%, #0b0f14 100%),
              linear-gradient(135deg, #0e141b 0%, #1a2230 50%, #0b0f14 100%);
  background-size: cover;
}
a { color: #ffe257; text-decoration: none; }
a:hover { text-decoration: underline; }

/* ---------------- 导航栏 ---------------- */
.navbar {
  background: rgba(0, 0, 0, .5);
  border-bottom: 1px solid hsla(0, 0%, 100%, .1);
  backdrop-filter: blur(10px);
  height: 60px;
  padding: 0 20px;
  display: flex;
  align-items: center;
}
.navbar .brand {
  font-size: 18px;
  font-weight: 600;
  color: #fff;
  margin-right: 24px;
  white-space: nowrap;
}
.navbar .menu { flex: 1; }
.navbar .user-area { color: #ddd; font-size: 14px; white-space: nowrap; }
.el-menu.navbar-menu { background: transparent; border: none !important; }
.el-menu.navbar-menu .el-menu-item {
  border-bottom: none !important;
  height: 60px;
  line-height: 60px;
  color: #fff;
  cursor: pointer;
}
.el-menu.navbar-menu .el-menu-item i { margin-right: 8px; }
.el-menu.navbar-menu .el-menu-item:hover { background-color: hsla(0, 0%, 100%, .1) !important; }
.el-menu.navbar-menu .el-menu-item.is-active { background-color: hsla(0, 0%, 100%, .2) !important; color: #ffd04b; }
@media (max-width: 1400px) {
  .navbar .el-menu-item span { display: none; }
}
@media (max-width: 768px) {
  .navbar { padding: 0 8px; }
  .navbar .brand { font-size: 15px; margin-right: 8px; }
}

/* ---------------- 全局深色适配 ---------------- */
.el-header, .el-main { padding: 0; }
.el-main { padding: 20px; }
.el-card, .el-dialog, .panel {
  background: rgba(0, 0, 0, .35) !important;
  border: 1px solid hsla(0, 0%, 100%, .08) !important;
  color: #e8e8e8;
}
.el-card__header { border-bottom: 1px solid hsla(0, 0%, 100%, .08); color: #fff; }
.el-loading-mask { background-color: rgba(0, 0, 0, .7) !important; }
.el-upload-dragger { background: rgba(0, 0, 0, .4) !important; width: 100%; max-width: 560px; height: 200px; }
.el-upload-dragger .el-upload__text { color: #c0c4cd; }
.el-upload-list { width: 500px; display: inline-block; }
.el-table { color: #e8e8e8; background-color: transparent !important; }
.el-table th.el-table__cell, .el-table tr, .el-table--enable-row-hover .el-table__body tr:hover > td,
.el-table__expanded-cell {
  background-color: rgba(0, 0, 0, .2) !important;
}
.el-table::before, .el-table--group::after, .el-table--border::after { background-color: transparent; }
.el-table--border, .el-table--group { border-color: hsla(0, 0%, 100%, .1); }
.el-table td.el-table__cell, .el-table th.el-table__cell.is-leaf { border-bottom: 1px solid hsla(0, 0%, 100%, .08); }
.el-table__empty-text, .el-form-item__label { color: #ddd; }
.el-input__inner, .el-textarea__inner, .el-range-input {
  background-color: rgba(0, 0, 0, .3) !important;
  color: #ddd !important;
  border-color: hsla(0, 0%, 100%, .15) !important;
}
.el-input__inner::placeholder { color: #8a8f98; }
.el-pagination { color: #ddd; }
.el-pagination button, .el-pager li { background: rgba(0, 0, 0, .3) !important; color: #ddd !important; }
.el-pager li.active { color: #409eff !important; }
.el-select-dropdown, .el-picker-panel, .el-dropdown-menu {
  background: #1b222c !important;
  border-color: hsla(0, 0%, 100%, .12) !important;
  color: #ddd;
}
.el-select-dropdown__item { color: #ddd; }
.el-select-dropdown__item.hover, .el-select-dropdown__item:hover { background: hsla(0, 0%, 100%, .08); }
.el-message-box, .el-popover { background: #1b222c !important; border-color: hsla(0, 0%, 100%, .12) !important; }
.el-message-box__title, .el-message-box__content { color: #e8e8e8; }
.el-radio-button__inner { background-color: rgba(0, 0, 0, .3) !important; color: #ddd !important; border-color: hsla(0, 0%, 100%, .15) !important; }
.el-radio-button__orig-radio:checked + .el-radio-button__inner { background-color: #409eff !important; }
.el-alert--success.is-light { background-color: rgba(0, 0, 0, .4) !important; }
.el-stat, .stat-card {
  background: rgba(0, 0, 0, .35); border: 1px solid hsla(0, 0%, 100%, .08);
  border-radius: 6px; padding: 16px 20px; color: #e8e8e8;
}
.stat-card .label { font-size: 13px; color: #9aa4b2; }
.stat-card .value { font-size: 24px; color: #fff; margin-top: 6px; font-weight: 600; }

/* ---------------- 图表容器 ---------------- */
.chart { width: 100%; height: 380px; background: rgba(0, 0, 0, .5); border-radius: 6px; }
.chart.small { height: 320px; }

/* ---------------- 登录页 ---------------- */
.login-wrap { display: flex; align-items: center; justify-content: center; min-height: 70vh; }
.login-box {
  width: 380px; padding: 28px 26px 8px; border-radius: 8px;
  background: rgba(0, 0, 0, .45); border: 1px solid hsla(0, 0%, 100%, .1);
  backdrop-filter: blur(10px);
}
.login-box h2 { color: #fff; margin: 0 0 22px; font-size: 20px; text-align: center; font-weight: 600; }

/* ---------------- 上传页 ---------------- */
.upload-area { display: flex; flex-direction: column; align-items: center; }
.tip { color: #9aa4b2; font-size: 13px; margin: 14px 0; text-align: center; line-height: 1.8; }
.result-preview img { max-width: 100px; max-height: 60px; }
.mb16 { margin-bottom: 16px; }
.mb8 { margin-bottom: 8px; }
.mt16 { margin-top: 16px; }
.mt8 { margin-top: 8px; }
.filter-bar .el-form-item { margin-bottom: 8px; }
.total-bar { color: #e8e8e8; font-size: 14px; margin: 10px 0; }
.total-bar b { color: #ffd04b; }
