/* Dark Neon Pro：首屏早于 main.scss 注入。hex 必须与 app/assets/scss/_variables.scss 一致；短名只做别名。 */
:root,
html.dark,
.dark {
  --color-brand: #8b5cf6;
  --color-brand-hover: #a855f7;
  --color-brand-light: #c3a7ff;
  --color-brand-dark: #7c3aed;
  --color-ai: #10b981;
  --color-ai-hover: #34d399;
  --color-ai-dark: #059669;
  --color-ai-on: #f7f8fc;
  --color-warning: #f2c45e;
  --color-danger: #ff5f6d;
  --color-info: #4ea8ff;

  --text-1: #f7f8fc;
  --text-2: #d6dae4;
  --text-3: #9da5b5;
  --text-4: #747d90;
  --text-5: #505767;
  --text-6: #3d4350;
  --text-7: #303642;
  --text-8: #252b38;
  --text-9: #181d29;
  --bg-deep: #05070b;
  --bg-1: #07090f;
  --bg-2: #0d1017;
  --bg-3: #11151e;
  --bg-4: #151a26;
  --bg-5: #181d29;
  --bg-6: #252b38;
  --bg-7: #303846;
  --bg-8: #505767;
  --bg-9: #747d90;

  --bg: var(--bg-1);
  --surface-1: var(--bg-2);
  --surface-2: var(--bg-3);
  --surface-3: var(--bg-4);
  --border: var(--bg-6);
  --border-soft: rgba(255, 255, 255, 0.06);
  --text: var(--text-1);
  --text-muted: var(--text-4);
  --primary: var(--color-brand);
  --primary-hover: var(--color-brand-hover);
  --primary-light: var(--color-brand-hover);
  --primary-dark: var(--color-brand-dark);
  --ai: var(--color-ai);
  --ai-hover: var(--color-ai-hover);
  --ai-dark: var(--color-ai-dark);
  --ai-on: var(--color-ai-on);
  --blue: var(--color-info);
  --gold: var(--color-warning);
  --danger: var(--color-danger);
  --success: var(--color-ai);

  --el-color-primary: var(--color-brand);
  --el-color-primary-rgb: 139, 92, 246;
  --el-color-primary-light-3: #a77bf8;
  --el-color-primary-light-5: #b69aff;
  --el-color-primary-light-7: rgba(139, 92, 246, 0.28);
  --el-color-primary-light-8: rgba(139, 92, 246, 0.18);
  --el-color-primary-light-9: rgba(139, 92, 246, 0.12);
  --el-color-primary-dark-2: var(--color-brand-dark);
  --el-color-success: var(--color-ai);
  --el-color-success-rgb: 16, 185, 129;
  --el-color-success-light-3: var(--color-ai-hover);
  --el-color-success-light-5: rgba(16, 185, 129, 0.42);
  --el-color-success-light-7: rgba(16, 185, 129, 0.25);
  --el-color-success-light-8: rgba(16, 185, 129, 0.16);
  --el-color-success-light-9: rgba(16, 185, 129, 0.10);
  --el-color-success-dark-2: var(--color-ai-dark);
  --el-color-info: var(--color-info);
  --el-color-warning: var(--color-warning);
  --el-color-danger: var(--color-danger);
  --el-border-radius-base: 8px;
  --el-border-radius-small: 6px;
  --el-transition-duration-fast: 150ms;
  --el-bg-color-page: var(--bg-1);
  --el-bg-color: var(--bg-2);
  --el-bg-color-overlay: var(--bg-5);
  --el-fill-color: var(--bg-4);
  --el-fill-color-light: var(--bg-5);
  --el-fill-color-lighter: var(--bg-3);
  --el-fill-color-extra-light: var(--bg-2);
  --el-fill-color-dark: var(--bg-6);
  --el-fill-color-darker: var(--bg-7);
  --el-fill-color-blank: #10141c;
  --el-text-color-primary: var(--text-1);
  --el-text-color-regular: var(--text-2);
  --el-text-color-secondary: var(--text-3);
  --el-text-color-placeholder: #646d7e;
  --el-text-color-disabled: var(--text-5);
  --el-border-color: var(--bg-6);
  --el-border-color-light: rgba(255, 255, 255, 0.07);
  --el-border-color-lighter: rgba(255, 255, 255, 0.06);
  --el-border-color-extra-light: rgba(255, 255, 255, 0.04);
  --el-mask-color: rgba(5, 7, 11, 0.78);
  --el-mask-color-extra-light: rgba(5, 7, 11, 0.48);
  /* 暗色模式用边框分层，不用投影 */
  --el-box-shadow: none;
  --el-box-shadow-light: none;
  --el-box-shadow-lighter: none;
  --el-box-shadow-dark: none;
}

html, body, #__nuxt { background: var(--bg); color: var(--text-2); }
body {
  background:
    radial-gradient(circle at 75% 10%, rgba(124, 58, 237, .10), transparent 32%),
    radial-gradient(circle at 15% 90%, rgba(78, 168, 255, .05), transparent 30%),
    var(--bg);
}

::selection { background: rgba(139, 92, 246, .35); color: var(--text); }
::-webkit-scrollbar { width: 8px; height: 8px; }
::-webkit-scrollbar-thumb { border: 2px solid var(--bg); border-radius: 8px; background: #303846; }
::-webkit-scrollbar-thumb:hover { background: #505767; }

.el-button {
  --el-button-bg-color: #151a26;
  --el-button-border-color: #252b38;
  --el-button-text-color: #d6dae4;
  --el-button-hover-bg-color: #1b2130;
  --el-button-hover-border-color: rgba(139, 92, 246, .55);
  --el-button-hover-text-color: #f7f8fc;
  --el-button-active-bg-color: #121620;
  --el-button-active-border-color: var(--primary);
  border-radius: 8px;
  font-weight: 500;
  transition: background 150ms ease, border-color 150ms ease, box-shadow 150ms ease, transform 150ms ease;
}
.el-button:hover { transform: translateY(-1px); }
.el-button:active { transform: translateY(0); }

.el-button--primary,
.el-button.primary {
  --el-button-bg-color: #7c3aed;
  --el-button-border-color: transparent;
  --el-button-text-color: #ffffff;
  --el-button-hover-bg-color: #8b5cf6;
  --el-button-hover-border-color: transparent;
  --el-button-active-bg-color: #6d3fe8;
  background: linear-gradient(135deg, #7c3aed 0%, #8b5cf6 50%, #9d6cff 100%) !important;
  border: none !important;
  color: #ffffff !important;
  box-shadow: 0 4px 16px rgba(124, 58, 237, .28);
}
.el-button--primary:hover,
.el-button.primary:hover {
  background: linear-gradient(135deg, #8b5cf6 0%, #a78bfa 100%) !important;
  box-shadow: 0 0 20px rgba(139, 92, 246, .45);
}
.el-button--primary:active,
.el-button.primary:active {
  background: linear-gradient(135deg, #6d3fe8 0%, #7c3aed 100%) !important;
  box-shadow: 0 2px 10px rgba(124, 58, 237, .35);
}

.el-button--success,
.el-button.generate-btn,
.generate-btn {
  --el-button-bg-color: #10b981;
  --el-button-border-color: transparent;
  --el-button-text-color: #ffffff;
  background: linear-gradient(135deg, #10b981 0%, #34d399 100%) !important;
  border: none !important;
  color: #ffffff !important;
  font-weight: 600;
  box-shadow: none;
}
.el-button--success:hover,
.el-button.generate-btn:hover,
.generate-btn:hover {
  background: linear-gradient(135deg, #34d399 0%, #6ee7b7 100%) !important;
  box-shadow: none;
}
.el-button--success:active,
.el-button.generate-btn:active,
.generate-btn:active {
  background: #059669 !important;
}

.el-button--warning {
  background: linear-gradient(135deg, #f2c45e 0%, #f5d487 100%) !important;
  border: none !important;
  color: #1c1404 !important;
  font-weight: 600;
  box-shadow: 0 4px 16px rgba(242, 196, 94, .22);
}
.el-button--warning:hover {
  filter: brightness(1.08);
  box-shadow: 0 0 20px rgba(242, 196, 94, .35);
}

.el-button--danger {
  background: linear-gradient(135deg, #ff5f6d 0%, #ff8691 100%) !important;
  border: none !important;
  color: #ffffff !important;
  box-shadow: 0 4px 16px rgba(255, 95, 109, .25);
}
.el-button--danger:hover {
  filter: brightness(1.08);
  box-shadow: 0 0 20px rgba(255, 95, 109, .4);
}

.el-button--info {
  background: #181d29 !important;
  border: 1px solid #252b38 !important;
  color: #d6dae4 !important;
}
.el-button--info:hover {
  background: #202635 !important;
  border-color: rgba(255, 255, 255, .12) !important;
}

.el-button.is-link,
.el-button.is-text {
  background: transparent !important;
  border-color: transparent !important;
  box-shadow: none !important;
  padding-left: 4px;
  padding-right: 4px;
}
.el-button.is-link:hover,
.el-button.is-text:hover {
  background: rgba(139, 92, 246, .08) !important;
  color: #c3a7ff !important;
}

.el-button.is-plain { box-shadow: none; }
.el-button.is-disabled,
.el-button.is-disabled:hover,
.el-button.is-disabled:active {
  opacity: 0.45 !important;
  cursor: not-allowed !important;
  transform: none !important;
  box-shadow: none !important;
}

.el-input__wrapper,
.el-select__wrapper,
.el-textarea__inner,
.el-input-number {
  background: #10141c !important;
  border-radius: 9px;
  color: var(--text);
}
.el-input__wrapper,
.el-select__wrapper {
  box-shadow: 0 0 0 1px #252b38 inset !important;
  transition: box-shadow 150ms ease;
}
.el-input__wrapper:hover,
.el-select__wrapper:hover {
  box-shadow: 0 0 0 1px rgba(139, 92, 246, .55) inset !important;
}
.el-input__wrapper.is-focus,
.el-select__wrapper.is-focused,
.el-textarea__inner:focus {
  box-shadow: 0 0 0 1px #8b5cf6 inset, 0 0 0 3px rgba(139, 92, 246, .16) !important;
}
.el-textarea__inner {
  border: 1px solid #252b38 !important;
  background: #10141c !important;
  color: var(--text) !important;
  border-radius: 9px;
}
.el-textarea__inner:hover {
  border-color: rgba(139, 92, 246, .55) !important;
}
.el-input__inner {
  color: var(--text) !important;
}
.el-input__inner::placeholder,
.el-textarea__inner::placeholder,
.el-select__placeholder {
  color: #646d7e !important;
}
.el-input__prefix,
.el-input__suffix {
  color: #747d90;
}
.el-input.is-disabled .el-input__wrapper,
.el-select.is-disabled .el-select__wrapper,
.el-textarea.is-disabled .el-textarea__inner {
  background: #090c12 !important;
  box-shadow: 0 0 0 1px #1c212c inset !important;
  color: #505767 !important;
}

.el-popper,
.el-popper.is-light,
.el-popper.is-dark,
.el-select__popper,
.el-dropdown__popper,
.el-popover.el-popper,
.el-picker__popper,
.el-cascader__dropdown {
  border: 1px solid #252b38 !important;
  background: rgba(17, 21, 30, .98) !important;
  /* EP dark tooltip 默认 color=--el-bg-color；背景已强制深色后必须改回浅色字，否则看不见 */
  color: var(--text-1) !important;
  backdrop-filter: blur(12px);
  box-shadow: none !important;
  border-radius: 10px;
}
.el-popper__arrow::before {
  background: #11151e !important;
  border: 1px solid #252b38 !important;
}
.el-dropdown-menu,
.el-select-dropdown {
  background: transparent !important;
}
.el-dropdown-menu__item,
.el-select-dropdown__item {
  color: var(--text-2) !important;
  border-radius: 6px;
  margin: 2px 4px;
  transition: background 150ms ease, color 150ms ease;
}
.el-dropdown-menu__item:not(.is-disabled):hover,
.el-select-dropdown__item:hover,
.el-select-dropdown__item.hover,
.el-select-dropdown__item.is-hovering {
  background: rgba(139, 92, 246, .12) !important;
  color: #c3a7ff !important;
}
.el-select-dropdown__item.is-selected {
  background: rgba(139, 92, 246, .22) !important;
  color: #ffffff !important;
  font-weight: 600;
}
.el-dropdown-menu__item--divided {
  border-top: 1px solid #252b38 !important;
}
.el-tooltip__trigger { outline-color: transparent; }

.el-overlay {
  background: rgba(4, 6, 10, .76) !important;
  backdrop-filter: blur(6px);
}
.el-dialog,
.el-drawer,
.el-message-box {
  border: 1px solid rgba(255, 255, 255, .08) !important;
  background: linear-gradient(180deg, #11151e 0%, #0d1017 100%) !important;
  box-shadow: none !important;
  border-radius: 14px;
  /* EP 默认把 padding 放在整盒上；header/footer 再叠一层会显得过大，body 反而贴边 */
  padding: 0 !important;
}
.el-dialog__header,
.el-drawer__header,
.el-message-box__header {
  padding: 12px 16px;
}
.el-dialog__header:has(.el-dialog__title:not(:empty)),
.el-drawer__header:has(.el-drawer__title:not(:empty)),
.el-message-box__header:has(.el-message-box__title:not(:empty)) {
  border-bottom: 1px solid rgba(255, 255, 255, .06) !important;
}
.el-dialog__title,
.el-drawer__title,
.el-message-box__title {
  color: var(--text) !important;
  font-weight: 600;
}
.el-dialog__headerbtn .el-dialog__close,
.el-message-box__headerbtn .el-message-box__close {
  color: #747d90;
  transition: color 150ms ease;
}
.el-dialog__headerbtn:hover .el-dialog__close,
.el-message-box__headerbtn:hover .el-message-box__close {
  color: #f7f8fc;
}
.el-dialog__body,
.el-drawer__body,
.el-message-box__content {
  padding: 12px 16px;
}
.el-dialog__footer,
.el-drawer__footer,
.el-message-box__btns {
  border-top: 1px solid rgba(255, 255, 255, .06);
  padding: 10px 16px;
}
.el-message-box__content,
.el-message-box__message,
.el-message-box__message p {
  color: var(--text-2, #d6dae4) !important;
  font-size: 14px;
  line-height: 1.6;
}
.today-once-wrap {
  color: var(--text-2, #d6dae4);
}
.today-once-wrap .today-once-message {
  margin-bottom: 14px;
  color: var(--text-2, #d6dae4);
  font-size: 14px;
  line-height: 1.65;
}
.today-once-wrap .today-once-check {
  display: flex;
  align-items: center;
  gap: 8px;
  cursor: pointer;
  user-select: none;
  color: var(--text-3, #9da5b5);
  font-size: 12px;
  line-height: 1.4;
}
.today-once-wrap .today-once-checkbox {
  width: 16px;
  height: 16px;
  margin: 0;
  accent-color: var(--color-brand, #8b5cf6);
  cursor: pointer;
  flex-shrink: 0;
}

.el-message,
.el-notification {
  border: 1px solid #252b38 !important;
  background: rgba(17, 21, 30, .96) !important;
  backdrop-filter: blur(12px);
  box-shadow: none !important;
  border-radius: 10px !important;
  color: #f7f8fc !important;
  padding: 12px 18px !important;
}
.el-message__content,
.el-notification__content {
  color: #d6dae4 !important;
}
.el-message--success,
.el-notification--success {
  border-left: 3px solid #10b981 !important;
}
.el-message--success .el-message__icon,
.el-notification--success .el-notification__icon {
  color: #10b981 !important;
}
.el-message--warning,
.el-notification--warning {
  border-left: 3px solid #f2c45e !important;
}
.el-message--warning .el-message__icon,
.el-notification--warning .el-notification__icon {
  color: #f2c45e !important;
}
.el-message--error,
.el-notification--error {
  border-left: 3px solid #ff5f6d !important;
}
.el-message--error .el-message__icon,
.el-notification--error .el-notification__icon {
  color: #ff5f6d !important;
}
.el-message--info,
.el-notification--info {
  border-left: 3px solid #8b5cf6 !important;
}
.el-message--info .el-message__icon,
.el-notification--info .el-notification__icon {
  color: #8b5cf6 !important;
}

.el-loading-mask {
  background: rgba(7, 9, 15, .78) !important;
  backdrop-filter: blur(4px);
}
.el-loading-spinner .path {
  stroke: #8b5cf6 !important;
}
.el-loading-spinner .el-loading-text {
  color: #d6dae4 !important;
}

.el-tabs__item {
  color: var(--text-muted) !important;
  font-size: 14px;
  transition: color 150ms ease;
}
.el-tabs__item:hover { color: #f7f8fc !important; }
.el-tabs__item.is-active { color: #ffffff !important; font-weight: 600; }
.el-tabs__active-bar {
  background: var(--primary) !important;
  height: 2px !important;
  border-radius: 2px;
  box-shadow: 0 0 10px rgba(139, 92, 246, .45);
}
.el-tabs__nav-wrap::after {
  background-color: #252b38 !important;
  height: 1px !important;
}

.el-tag { border-radius: 6px; }
.el-tag--primary { --el-tag-bg-color: rgba(139, 92, 246, .14); --el-tag-border-color: rgba(139, 92, 246, .25); --el-tag-text-color: #c3a7ff; }
.el-tag--success { --el-tag-bg-color: rgba(16, 185, 129, .10); --el-tag-border-color: rgba(16, 185, 129, .22); --el-tag-text-color: #34d399; }
.el-tag--warning { --el-tag-bg-color: rgba(242, 196, 94, .12); --el-tag-border-color: rgba(242, 196, 94, .25); --el-tag-text-color: #f2c45e; }
.el-tag--danger { --el-tag-bg-color: rgba(255, 95, 109, .12); --el-tag-border-color: rgba(255, 95, 109, .25); --el-tag-text-color: #ff8691; }
.el-tag--info { --el-tag-bg-color: rgba(116, 125, 144, .14); --el-tag-border-color: rgba(116, 125, 144, .22); --el-tag-text-color: #9da5b5; }
.el-alert { border: 1px solid var(--border-soft); background: var(--surface-2); }

.el-table {
  --el-table-bg-color: var(--surface-1);
  --el-table-tr-bg-color: var(--surface-1);
  --el-table-header-bg-color: var(--surface-2);
  --el-table-row-hover-bg-color: var(--surface-3);
  --el-table-border-color: #252b38;
  --el-table-text-color: var(--text-2);
  --el-table-header-text-color: var(--text-3);
  background-color: var(--surface-1);
}
.el-table th.el-table__cell { background: var(--surface-2) !important; border-bottom: 1px solid #252b38 !important; }
.el-table td.el-table__cell { border-bottom: 1px solid #252b38 !important; }
.el-table__inner-wrapper::before { background-color: #252b38 !important; }

.el-pagination { --el-pagination-bg-color: var(--surface-2); --el-pagination-button-color: var(--text-3); --el-pagination-hover-color: #c3a7ff; }
.el-pagination button { background-color: var(--surface-2) !important; border-radius: 6px; }
.el-pagination .el-pager li { background-color: var(--surface-2) !important; color: var(--text-2) !important; border-radius: 6px; }
.el-pagination .el-pager li.is-active {
  background-color: #8b5cf6 !important;
  color: #ffffff !important;
  font-weight: 600;
  box-shadow: 0 2px 8px rgba(139, 92, 246, .35);
}

.el-switch { --el-switch-on-color: var(--primary); --el-switch-off-color: #252b38; }
.el-switch__core { border: 1px solid #303846 !important; }
.el-checkbox__inner { background-color: #10141c !important; border: 1px solid #3b4352 !important; border-radius: 4px; }
.el-checkbox__input.is-checked .el-checkbox__inner { background-color: #8b5cf6 !important; border-color: #8b5cf6 !important; }
.el-checkbox__input.is-checked + .el-checkbox__label { color: #f7f8fc !important; }
.el-radio__inner { background-color: #10141c !important; border: 1px solid #3b4352 !important; }
.el-radio__input.is-checked .el-radio__inner { background-color: #8b5cf6 !important; border-color: #8b5cf6 !important; }
.el-radio__input.is-checked + .el-radio__label { color: #f7f8fc !important; }

.el-progress-bar__outer { background: #252b38; }
.el-empty {
  --el-empty-fill-color-0: #07090f;
  --el-empty-fill-color-1: #11151e;
  --el-empty-fill-color-2: #151a26;
  --el-empty-fill-color-3: #181d29;
  --el-empty-fill-color-4: #252b38;
  --el-empty-fill-color-5: #3d4350;
  --el-empty-fill-color-6: #303846;
  --el-empty-fill-color-7: #505767;
  --el-empty-fill-color-8: #3d4350;
  --el-empty-fill-color-9: #505767;
}
.el-empty .el-empty__image { opacity: 0.35; filter: brightness(0.75) contrast(0.9); }
.el-empty .el-empty__image svg { color: #505767; }
.el-empty__description p { color: var(--text-muted); }

.app-shell__main { background: var(--bg); }
.el-card, .card, .dashboard-card { border-radius: 12px; }
.card, .dashboard-card { border: 1px solid var(--border-soft); background: linear-gradient(180deg, rgba(19, 23, 34, .96), rgba(13, 16, 24, .96)); box-shadow: 0 8px 28px rgba(0, 0, 0, .20); }

@media (prefers-reduced-motion: no-preference) {
  .card, .dashboard-card, .el-card { transition: border-color 150ms ease, background 150ms ease, transform 150ms ease; }
  .card:hover, .dashboard-card:hover, .el-card:hover { border-color: rgba(139, 92, 246, .35); transform: translateY(-1px); }
}
