/* ============================================================
   JY-Media 品牌样式 · 军屹 P49 深色体系
   江苏军屹微电子有限公司  JUNYI MICROELECTRONICS
   色板：深蓝炭黑 #0A1626/#0E2036/#13314B · 电路青 #67E8F9→#22D3EE · 琥珀 #F5B944
   注：vendor element-plus.css 无内置暗色主题，此处手动全量覆盖 --el-* 变量
   ============================================================ */
:root {
  /* 品牌基础色（深色语义） */
  --jy-navy: #EAF2FB;                 /* 标题主文字（浅色下原为深蓝 #13314B，深色下翻为亮色） */
  --jy-navy-deep: #0A1626;            /* 最深背景 */
  --jy-cyan: #22D3EE;                 /* 电路青 */
  --jy-cyan-light: #67E8F9;
  --jy-amber: #F5B944;                /* 琥珀信号 */
  --jy-bg: #0A1626;                   /* 页面背景 */
  --jy-card: #0E2036;                 /* 卡片背景 */
  --jy-text: #EAEFF7;                 /* 正文 */
  --jy-text-sub: #9FACC6;             /* 次要文字 */
  --jy-text-dim: #6B7B96;             /* 弱化文字 */
  --jy-border: rgba(103,232,249,.14); /* 青调边 */
  --jy-line-strong: rgba(103,232,249,.3);

  /* ===== Element Plus 深色覆盖：主色 ===== */
  --el-color-primary: #22D3EE;
  --el-color-primary-light-3: #1B6B7E;
  --el-color-primary-light-5: #17586A;
  --el-color-primary-light-7: #134557;
  --el-color-primary-light-8: #113C4D;
  --el-color-primary-light-9: #0F3343;
  --el-color-primary-dark-2: #5EE7F7;
  --el-color-success: #34D399;
  --el-color-success-light-3: #2A7A5C;
  --el-color-success-light-5: #215E47;
  --el-color-success-light-7: #184333;
  --el-color-success-light-8: #143629;
  --el-color-success-light-9: #102A20;
  --el-color-warning: #F5B944;
  --el-color-warning-light-3: #8F7033;
  --el-color-warning-light-5: #6E5628;
  --el-color-warning-light-7: #4C3C1D;
  --el-color-warning-light-8: #3B2F17;
  --el-color-warning-light-9: #2A2211;
  --el-color-danger: #F87171;
  --el-color-danger-light-3: #914444;
  --el-color-danger-light-5: #6F3535;
  --el-color-danger-light-7: #4D2626;
  --el-color-danger-light-8: #3C1E1E;
  --el-color-danger-light-9: #2B1616;
  --el-color-error: #F87171;
  --el-color-error-light-9: #2B1616;
  --el-color-info: #9FACC6;
  --el-color-info-light-3: #5E6779;
  --el-color-info-light-5: #4A5161;
  --el-color-info-light-7: #363C49;
  --el-color-info-light-8: #2C313C;
  --el-color-info-light-9: #22262F;

  /* ===== Element Plus 深色覆盖：背景/文字/边框/填充 ===== */
  --el-bg-color: #0E2036;
  --el-bg-color-page: #0A1626;
  --el-bg-color-overlay: #12293F;
  --el-text-color-primary: #EAEFF7;
  --el-text-color-regular: #C3CEDD;
  --el-text-color-secondary: #9FACC6;
  --el-text-color-placeholder: #6B7B96;
  --el-text-color-disabled: #4A5872;
  --el-border-color: rgba(103,232,249,.22);
  --el-border-color-light: rgba(103,232,249,.16);
  --el-border-color-lighter: rgba(103,232,249,.12);
  --el-border-color-extra-light: rgba(103,232,249,.07);
  --el-border-color-dark: rgba(103,232,249,.3);
  --el-border-color-darker: rgba(103,232,249,.38);
  --el-fill-color: rgba(103,232,249,.08);
  --el-fill-color-light: rgba(103,232,249,.06);
  --el-fill-color-lighter: rgba(103,232,249,.04);
  --el-fill-color-extra-light: rgba(103,232,249,.02);
  --el-fill-color-blank: #0E2036;
  --el-fill-color-dark: rgba(103,232,249,.1);
  --el-fill-color-darker: rgba(103,232,249,.14);
  --el-mask-color: rgba(4,10,20,.72);
  --el-mask-color-extra-light: rgba(4,10,20,.4);
  --el-box-shadow: 0 12px 32px 4px rgba(2,8,18,.5), 0 8px 20px rgba(2,8,18,.4);
  --el-box-shadow-light: 0 0 12px rgba(2,8,18,.5);
  --el-box-shadow-lighter: 0 0 6px rgba(2,8,18,.4);
  --el-box-shadow-dark: 0 16px 48px 8px rgba(2,8,18,.6);

  /* ===== Element Plus 深色覆盖：组件级 ===== */
  --el-card-bg-color: #0E2036;
  --el-card-border-color: rgba(103,232,249,.14);
  --el-dialog-bg-color: #12293F;
  --el-input-bg-color: rgba(10,22,38,.5);
  --el-input-border-color: rgba(103,232,249,.22);
  --el-input-text-color: #EAEFF7;
  --el-input-placeholder-color: #6B7B96;
  --el-input-hover-border-color: #22D3EE;
  --el-input-focus-border-color: #22D3EE;
  --el-table-border-color: rgba(103,232,249,.12);
  --el-table-header-bg-color: #12293F;
  --el-table-header-text-color: #67E8F9;
  --el-table-tr-bg-color: #0E2036;
  --el-table-row-hover-bg-color: rgba(34,211,238,.08);
  --el-table-text-color: #C3CEDD;
  --el-table-bg-color: #0E2036;
  --el-table-current-row-bg-color: rgba(34,211,238,.1);
  --el-table-expanded-cell-bg-color: #0C1D31;
  --el-menu-bg-color: transparent;
  --el-menu-text-color: #9FACC6;
  --el-menu-hover-bg-color: rgba(34,211,238,.08);
  --el-menu-active-color: #67E8F9;
  --el-disabled-bg-color: rgba(103,232,249,.04);
  --el-disabled-text-color: #4A5872;
  --el-disabled-border-color: rgba(103,232,249,.1);
}

* { box-sizing: border-box; }
html, body, #app { height: 100%; margin: 0; }
body {
  font-family: "Microsoft YaHei", "PingFang SC", "Helvetica Neue", Arial, sans-serif;
  background: var(--jy-bg);
  color: var(--jy-text);
  font-size: 14px;
  -webkit-font-smoothing: antialiased;
}
/* 全局深色滚动条 */
::-webkit-scrollbar { width: 8px; height: 8px; }
::-webkit-scrollbar-thumb { background: rgba(103,232,249,.18); border-radius: 4px; }
::-webkit-scrollbar-thumb:hover { background: rgba(103,232,249,.32); }
::-webkit-scrollbar-track { background: transparent; }

/* ---------- 登录页 ---------- */
.jy-login-wrap {
  height: 100%;
  display: flex; align-items: center; justify-content: center;
  background:
    radial-gradient(1100px 640px at 85% -10%, #1B4568 0%, transparent 55%),
    radial-gradient(820px 560px at -10% 110%, #10304C 0%, transparent 50%),
    linear-gradient(160deg, #0E2036 0%, #0A1626 60%, #060D18 100%);
  position: relative; overflow: hidden;
}
.jy-login-wrap::before {
  content: ''; position: absolute; inset: 0;
  background-image:
    linear-gradient(rgba(103,232,249,.06) 1px, transparent 1px),
    linear-gradient(90deg, rgba(103,232,249,.06) 1px, transparent 1px);
  background-size: 42px 42px;
  -webkit-mask-image: radial-gradient(ellipse at 50% 30%, #000 30%, transparent 78%);
          mask-image: radial-gradient(ellipse at 50% 30%, #000 30%, transparent 78%);
}
.jy-login-card {
  position: relative; z-index: 1;
  width: 400px; padding: 40px 36px 32px;
  background: rgba(19,49,75,.42); border: 1px solid var(--jy-border); border-radius: 16px;
  backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px);
  box-shadow: 0 24px 64px rgba(3,12,22,.6), 0 0 0 1px rgba(103,232,249,.06);
}
.jy-login-card::before {
  content: ''; position: absolute; top: 0; left: 24px; right: 24px; height: 3px;
  border-radius: 0 0 3px 3px;
  background: linear-gradient(90deg, var(--jy-cyan-light), var(--jy-cyan), var(--jy-amber));
}
.jy-login-logo { display: flex; align-items: center; gap: 12px; margin-bottom: 6px; }
.jy-login-title { font-size: 20px; font-weight: 700; color: var(--jy-navy); }
.jy-login-sub { color: var(--jy-text-sub); font-size: 12px; margin: 0 0 26px 46px; }
.jy-login-foot { margin-top: 18px; text-align: center; color: var(--jy-text-sub); font-size: 12px; }

/* ---------- 布局 ---------- */
.jy-layout { height: 100%; display: flex; flex-direction: column; }
.jy-header {
  height: 56px; flex: none; display: flex; align-items: center; gap: 14px;
  padding: 0 20px; color: #EAEFF7;
  background: linear-gradient(90deg, #0A1626 0%, #13314B 70%, #155E75 100%);
  box-shadow: 0 2px 10px rgba(3,12,22,.5);
  border-bottom: 1px solid var(--jy-border);
}
.jy-header .title { font-size: 16px; font-weight: 700; letter-spacing: .5px; }
.jy-header .chip {
  font-size: 11px; padding: 2px 8px; border-radius: 10px;
  border: 1px solid rgba(103,232,249,.5); color: var(--jy-cyan-light);
}
.jy-header .spacer { flex: 1; }
.jy-header .hbtn {
  color: #CBD8E6; cursor: pointer; display: flex; align-items: center; gap: 4px;
  font-size: 13px; padding: 4px 8px; border-radius: 6px; position: relative;
}
.jy-header .hbtn:hover { background: rgba(255,255,255,.08); color: #fff; }
.jy-badge {
  position: absolute; top: -2px; right: -4px; min-width: 16px; height: 16px;
  background: var(--jy-amber); color: #4A3208; font-size: 10px; font-weight: 700;
  border-radius: 8px; display: flex; align-items: center; justify-content: center; padding: 0 4px;
}
.jy-body { flex: 1; display: flex; min-height: 0; }
.jy-aside {
  width: 200px; flex: none; background: rgba(10,22,38,.5); border-right: 1px solid var(--jy-border);
  overflow-y: auto; padding: 8px 0;
}
.jy-main { flex: 1; overflow-y: auto; padding: 16px 20px 40px; min-width: 0; }

.jy-menu-group { padding: 10px 18px 4px; font-size: 11px; color: var(--jy-text-dim); letter-spacing: 1px; }
.jy-menu-item {
  display: flex; align-items: center; gap: 8px;
  padding: 9px 18px; cursor: pointer; color: var(--jy-text-sub);
  border-left: 3px solid transparent; font-size: 13.5px; user-select: none;
}
.jy-menu-item:hover { color: var(--jy-text); background: rgba(34,211,238,.08); }
.jy-menu-item.active {
  color: var(--jy-cyan-light); background: linear-gradient(90deg, rgba(34,211,238,.16), transparent);
  border-left-color: var(--jy-cyan); font-weight: 600;
}

/* ---------- 通用组件 ---------- */
.jy-page-title { font-size: 18px; font-weight: 700; color: var(--jy-navy); margin: 2px 0 14px; }
.jy-card {
  background: var(--jy-card); border: 1px solid var(--jy-border); border-radius: 10px;
  padding: 16px; margin-bottom: 14px;
}
.jy-card-title { font-weight: 700; color: var(--jy-navy); margin-bottom: 12px; font-size: 14.5px; }
.jy-toolbar { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; margin-bottom: 12px; }
.jy-toolbar .spacer { flex: 1; }

.jy-stat-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: 12px; margin-bottom: 14px; }
.jy-stat {
  background: linear-gradient(160deg, #0E2036 55%, #123049); border: 1px solid var(--jy-border);
  border-radius: 10px; padding: 14px 16px; position: relative; overflow: hidden;
}
.jy-stat::after {
  content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 3px;
  background: linear-gradient(180deg, var(--jy-cyan-light), var(--jy-cyan));
}
.jy-stat.amber::after { background: linear-gradient(180deg, #FCD34D, var(--jy-amber)); }
.jy-stat .label { color: var(--jy-text-sub); font-size: 12px; }
.jy-stat .value { font-size: 24px; font-weight: 700; color: var(--jy-navy); margin-top: 4px; font-variant-numeric: tabular-nums; }
.jy-stat .sub { font-size: 11px; color: var(--jy-text-dim); margin-top: 2px; }

.jy-two-col { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
@media (max-width: 1100px) { .jy-two-col { grid-template-columns: 1fr; } }

.jy-md { line-height: 1.75; word-break: break-word; }
.jy-md h1 { font-size: 20px; color: var(--jy-navy); border-bottom: 2px solid var(--jy-cyan); padding-bottom: 6px; }
.jy-md h2 { font-size: 16px; color: var(--jy-navy); margin-top: 20px; }
.jy-md table { border-collapse: collapse; width: 100%; margin: 8px 0; }
.jy-md th, .jy-md td { border: 1px solid var(--jy-border); padding: 6px 10px; font-size: 13px; text-align: left; }
.jy-md th { background: rgba(103,232,249,.08); color: var(--jy-cyan-light); }
.jy-md strong { color: var(--jy-cyan-light); }

.jy-chat-box { display: flex; flex-direction: column; height: 520px; }
.jy-chat-msgs { flex: 1; overflow-y: auto; padding: 8px 4px; }
.jy-msg { margin-bottom: 12px; display: flex; }
.jy-msg.me { justify-content: flex-end; }
.jy-msg .bubble {
  max-width: 78%; padding: 9px 12px; border-radius: 10px; font-size: 13.5px; line-height: 1.6;
  white-space: pre-wrap; word-break: break-word;
}
.jy-msg.me .bubble { background: linear-gradient(135deg, #0E7490, #22D3EE); color: #06283C; font-weight: 600; border-bottom-right-radius: 2px; }
.jy-msg.ai .bubble { background: rgba(103,232,249,.06); color: var(--jy-text); border: 1px solid var(--jy-border); border-bottom-left-radius: 2px; }
.jy-chat-input { display: flex; gap: 8px; margin-top: 10px; }

.jy-kv { display: grid; grid-template-columns: 110px 1fr; gap: 6px 12px; font-size: 13px; }
.jy-kv .k { color: var(--jy-text-sub); }

.jy-cal { display: grid; grid-template-columns: repeat(7, 1fr); gap: 6px; }
.jy-cal-head { text-align: center; font-size: 12px; color: var(--jy-text-sub); padding: 4px 0; font-weight: 600; }
.jy-cal-cell {
  min-height: 92px; background: var(--jy-card); border: 1px solid var(--jy-border); border-radius: 8px;
  padding: 4px 6px; font-size: 12px; overflow: hidden;
}
.jy-cal-cell.dim { background: rgba(10,22,38,.4); color: #5A6B85; }
.jy-cal-cell.today { border-color: var(--jy-cyan); box-shadow: 0 0 0 1px var(--jy-cyan); }
.jy-cal-day { font-weight: 600; color: var(--jy-navy); margin-bottom: 3px; }
.jy-cal-cell.dim .jy-cal-day { color: #5A6B85; }
.jy-cal-item {
  padding: 2px 5px; border-radius: 4px; margin-bottom: 2px; cursor: pointer;
  background: rgba(34,211,238,.14); color: var(--jy-cyan-light);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.jy-cal-item.pub { background: rgba(245,185,68,.18); color: var(--jy-amber); }
.jy-cal-item.conflict { outline: 1px solid #F87171; }

.jy-logo-svg { flex: none; }
.el-table .cell { word-break: break-word; }
.jy-link { color: var(--jy-cyan-light); cursor: pointer; text-decoration: none; }
.jy-link:hover { text-decoration: underline; }
.jy-muted { color: var(--jy-text-sub); font-size: 12px; }
.jy-mt8 { margin-top: 8px; } .jy-mt16 { margin-top: 16px; } .jy-mb8 { margin-bottom: 8px; } .jy-mb16 { margin-bottom: 16px; }
.jy-flex { display: flex; align-items: center; gap: 8px; }
.jy-flex.wrap { flex-wrap: wrap; }

/* ---------- Element Plus 深色增强（变量覆盖不足处） ---------- */
/* 主按钮：青底深蓝字（品牌风，对齐 JyMail）；仅实体按钮，不含 link/text/plain */
.el-button--primary:not(.is-link):not(.is-text):not(.is-plain) {
  --el-button-text-color: #06283C;
  --el-button-bg-color: #22D3EE;
  --el-button-border-color: #22D3EE;
  --el-button-hover-text-color: #06283C;
  --el-button-hover-bg-color: #5EE7F7;
  --el-button-hover-border-color: #5EE7F7;
  --el-button-active-text-color: #06283C;
  --el-button-active-bg-color: #19BEDD;
  --el-button-active-border-color: #19BEDD;
}
/* 弹层（下拉/日期/选择器）背景 */
.el-popper.is-light, .el-select-dropdown, .el-picker__popper, .el-dropdown__popper {
  background: var(--el-bg-color-overlay);
  border-color: var(--el-border-color);
}
.el-popper.is-light .el-popper__arrow::before { background: var(--el-bg-color-overlay); border-color: var(--el-border-color); }
/* 表格空数据 */
.el-table__empty-text { color: var(--jy-text-sub); }
/* 对话框 */
.el-dialog { background: var(--el-dialog-bg-color); }
.el-dialog__title { color: var(--jy-navy); }
.el-dialog__header { border-bottom: 1px solid var(--jy-border); }
.el-dialog__footer { border-top: 1px solid var(--jy-border); }
/* Tabs */
.el-tabs__item { color: var(--jy-text-sub); }
.el-tabs__item.is-active { color: var(--el-color-primary); }
.el-tabs__nav-wrap::after { background-color: var(--jy-border); }
/* 分页 */
.el-pagination { --el-pagination-bg-color: transparent; --el-pagination-button-bg-color: rgba(103,232,249,.06); }

/* ---------- Element Plus 次要组件深色补全 ---------- */
/* 进度条 */
.el-progress-bar__outer { background-color: rgba(103,232,249,.12); }
.el-progress__text { color: var(--jy-text-sub); }
/* 时间线 */
.el-timeline-item__tail { border-left-color: var(--jy-border); }
.el-timeline-item__timestamp { color: var(--jy-text-dim); }
.el-timeline-item__content { color: var(--el-text-color-regular); }
/* 下拉/选择器菜单项 */
.el-dropdown-menu { background: var(--el-bg-color-overlay); }
.el-dropdown-menu__item { color: var(--el-text-color-regular); }
.el-dropdown-menu__item:not(.is-disabled):hover, .el-dropdown-menu__item:focus { background: rgba(34,211,238,.1); color: var(--el-color-primary); }
.el-select-dropdown__item { color: var(--el-text-color-regular); }
.el-select-dropdown__item.hover, .el-select-dropdown__item:hover { background: rgba(34,211,238,.1); }
.el-select-dropdown__item.selected { color: var(--el-color-primary); }
.el-select-dropdown__empty, .el-select-dropdown .el-select-dropdown__loading { color: var(--jy-text-sub); }
/* 消息 / 通知 */
.el-message { background: var(--el-bg-color-overlay); border-color: var(--el-border-color); box-shadow: var(--el-box-shadow); }
.el-message__content { color: var(--jy-text); }
.el-notification { background: var(--el-bg-color-overlay); border-color: var(--el-border-color); }
.el-notification__title { color: var(--jy-navy); }
.el-notification__content { color: var(--jy-text-sub); }
/* 加载遮罩 */
.el-loading-mask { background-color: rgba(10,22,38,.72); }
.el-loading-text { color: var(--el-color-primary); }
.el-loading-spinner .path { stroke: var(--el-color-primary); }
/* 抽屉 */
.el-drawer { background: var(--el-dialog-bg-color); }
.el-drawer__title { color: var(--jy-navy); }
.el-drawer__header { border-bottom: 1px solid var(--jy-border); margin-bottom: 0; padding-bottom: 16px; }
/* 日期/时间选择面板 */
.el-picker-panel, .el-date-picker, .el-time-panel { background: var(--el-bg-color-overlay); color: var(--el-text-color-primary); border-color: var(--el-border-color); }
.el-picker-panel__icon-btn, .el-date-picker__header-label, .el-date-range-picker__header div { color: var(--jy-text-sub); }
.el-date-table th { color: var(--jy-text-sub); border-bottom-color: var(--el-border-color); }
.el-date-table td.next-month, .el-date-table td.prev-month { color: var(--jy-text-dim); }
.el-date-table td.available:hover { color: var(--el-color-primary); }
.el-date-table td.current:not(.disabled) span { background: var(--el-color-primary); color: #06283C; }
.el-time-panel__content::after, .el-time-panel__content::before { border-color: var(--el-border-color); }
.el-picker-panel__footer { border-top-color: var(--el-border-color); background: var(--el-bg-color-overlay); }
/* 单选/多选/开关 */
.el-radio__label, .el-checkbox__label { color: var(--el-text-color-regular); }
.el-radio__inner, .el-checkbox__inner { background: rgba(10,22,38,.5); border-color: var(--el-border-color); }
.el-radio.is-checked .el-radio__label, .el-checkbox.is-checked .el-checkbox__label { color: var(--el-color-primary); }
.el-switch.is-checked .el-switch__core { background: var(--el-color-primary); border-color: var(--el-color-primary); }
/* 空状态 / 描述列表 / 面包屑 */
.el-empty__description p { color: var(--jy-text-sub); }
.el-descriptions { background: transparent; }
.el-descriptions__label { color: var(--jy-text-sub); }
.el-descriptions__content { color: var(--el-text-color-regular); }
.el-descriptions__cell, .el-descriptions__body { border-color: var(--el-border-color); }
.el-descriptions__body .el-descriptions__cell { background: transparent; }
.el-breadcrumb__inner, .el-breadcrumb__separator { color: var(--jy-text-sub); }
/* 步骤条 / 折叠面板 / 提示 */
.el-step__title { color: var(--jy-text-sub); }
.el-step__title.is-process { color: var(--jy-navy); }
.el-step__description { color: var(--jy-text-dim); }
.el-collapse-item__header { background: transparent; color: var(--jy-text); border-bottom-color: var(--el-border-color); }
.el-collapse-item__wrap { background: transparent; border-bottom-color: var(--el-border-color); }
.el-collapse-item__content { color: var(--el-text-color-regular); }
.el-tooltip__popper.is-dark { background: #1B3A57; color: var(--jy-text); border: 1px solid var(--el-border-color); }
.el-tooltip__popper.is-dark .el-popper__arrow::before { background: #1B3A57; border-color: var(--el-border-color); }
/* 输入框组 / 文本域计数 / 链接按钮禁用态兜底 */
.el-input-group__append, .el-input-group__prepend { background: rgba(103,232,249,.06); border-color: var(--el-border-color); color: var(--jy-text-sub); }
.el-input__count-inner { color: var(--jy-text-dim); background: transparent; }
.el-textarea__inner { background-color: rgba(10,22,38,.5); }
