/* ============================================================
 * 主题覆盖层（theme.css）
 * 只叠加视觉，不改动任何原有 DOM 结构与业务逻辑。
 * 加载顺序放在原站 CSS 之后，用 !important 保证生效。
 * ============================================================ */

:root {
  --brand-1: #6366f1;
  --brand-2: #8b5cf6;
  --brand-3: #22d3ee;
  --ink: #1e2130;
  --ink-2: #5a6076;
  --line: #e8eaf2;
  --surface: #ffffff;
  --page: #f5f7fc;
  --radius-lg: 20px;
  --radius-md: 14px;
  --radius-sm: 10px;
  --shadow-card: 0 10px 30px rgba(31, 41, 79, 0.08);
  --shadow-float: 0 18px 50px rgba(31, 41, 79, 0.16);
}

/* ---------------------------------------------------------- 通用底子 */

body {
  background: var(--page) !important;
  font-family: -apple-system, BlinkMacSystemFont, 'PingFang SC', 'Hiragino Sans GB',
    'Microsoft YaHei', 'Helvetica Neue', Arial, sans-serif !important;
  color: var(--ink) !important;
  -webkit-font-smoothing: antialiased;
}

#app {
  font-family: inherit !important;
  color: var(--ink) !important;
}

/* 滚动条：细、浅，移动端也不突兀 */
::-webkit-scrollbar {
  width: 8px;
  height: 8px;
}
::-webkit-scrollbar-thumb {
  background: #d3d7e5;
  border-radius: 999px;
}
::-webkit-scrollbar-thumb:hover {
  background: #b9bfd3;
}
::-webkit-scrollbar-track {
  background: transparent;
}

/* ---------------------------------------------------------- 登录页 */

/* 页面底色：深靛蓝 + 两块柔光，替换原来那片死板的 #333951 */
html body .box[data-v-3108f4f3] {
  background: #0b1020 !important;
  background-image:
    radial-gradient(1200px 800px at 6% -6%, rgba(99, 102, 241, 0.62), transparent 58%),
    radial-gradient(1000px 700px at 96% 8%, rgba(34, 211, 238, 0.42), transparent 60%),
    radial-gradient(900px 680px at 84% 98%, rgba(168, 85, 247, 0.48), transparent 58%),
    radial-gradient(700px 520px at 30% 105%, rgba(59, 130, 246, 0.3), transparent 60%),
    linear-gradient(160deg, #0b1020 0%, #121a33 55%, #0b1020 100%) !important;
}

.loginBox[data-v-4154ffab] {
  background: transparent !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
  align-items: center !important;
  padding-bottom: 4vh;
}

.loginBox .name[data-v-4154ffab] {
  margin-top: 0 !important;
  font-size: clamp(24px, 3.4vw + 12px, 36px) !important;
  font-weight: 700 !important;
  letter-spacing: 2px;
  background: linear-gradient(100deg, #ffffff 20%, #b9c2ff 60%, #7ee7ff 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent !important;
  text-align: center;
}

/* 卡片：玻璃拟态，尺寸放宽一点 */
.loginBox .box[data-v-4154ffab] {
  width: min(430px, 88vw) !important;
  height: auto !important;
  min-height: 0 !important;
  margin: 30px auto 0 !important;
  padding: 38px clamp(24px, 6vw, 44px) 32px !important;
  border-radius: 26px !important;
  background: rgba(255, 255, 255, 0.07) !important;
  background-image: none !important;
  border: 1px solid rgba(255, 255, 255, 0.16) !important;
  box-shadow: 0 30px 80px rgba(0, 0, 0, 0.45), inset 0 1px 0 rgba(255, 255, 255, 0.16) !important;
  -webkit-backdrop-filter: blur(22px) saturate(140%);
  backdrop-filter: blur(22px) saturate(140%);
}

.loginBox .box .inputBox .centerBox[data-v-4154ffab] {
  width: 100% !important;
  height: auto !important;
}

.loginBox .pageName[data-v-4154ffab] {
  color: rgba(255, 255, 255, 0.92) !important;
  font-size: 17px !important;
  font-weight: 600;
  letter-spacing: 1px;
  margin-bottom: 26px !important;
  text-align: center;
}

/* 输入框：半透明玻璃 + 明显聚焦态 */
.loginBox .ant-input,
.loginBox .ant-input-affix-wrapper {
  height: 50px !important;
  line-height: 50px !important;
  border-radius: 14px !important;
  background: rgba(255, 255, 255, 0.1) !important;
  border: 1px solid rgba(255, 255, 255, 0.18) !important;
  color: #fff !important;
  font-size: 15px !important;
  padding: 0 18px !important;
  transition: border-color 0.18s ease, background 0.18s ease, box-shadow 0.18s ease;
}

.loginBox .ant-input-affix-wrapper .ant-input {
  height: 48px !important;
  background: transparent !important;
  border: 0 !important;
  padding: 0 !important;
}

.loginBox .ant-input::placeholder {
  color: rgba(255, 255, 255, 0.5) !important;
}

.loginBox .ant-input:focus,
.loginBox .ant-input-affix-wrapper-focused,
.loginBox .ant-input-affix-wrapper:hover {
  background: rgba(255, 255, 255, 0.16) !important;
  border-color: rgba(129, 140, 248, 0.9) !important;
  box-shadow: 0 0 0 3px rgba(99, 102, 241, 0.22) !important;
}

.loginBox .ant-input-password-icon {
  color: rgba(255, 255, 255, 0.6) !important;
}

/* 主按钮：渐变 + 发光 */
.loginBox .ant-btn-primary {
  height: 50px !important;
  border-radius: 14px !important;
  border: 0 !important;
  font-size: 16px !important;
  font-weight: 600 !important;
  letter-spacing: 1px;
  background: linear-gradient(105deg, #6366f1 0%, #7c5cf5 48%, #38bdf8 100%) !important;
  box-shadow: 0 12px 28px rgba(99, 102, 241, 0.42) !important;
  transition: transform 0.15s ease, box-shadow 0.15s ease, filter 0.15s ease;
}

.loginBox .ant-btn-primary:hover,
.loginBox .ant-btn-primary:focus {
  filter: brightness(1.06);
  box-shadow: 0 16px 34px rgba(99, 102, 241, 0.5) !important;
  transform: translateY(-1px);
}

.loginBox .ant-btn-primary:active {
  transform: translateY(0);
}

/* 记住密码 */
.loginBox .ant-checkbox-wrapper {
  color: rgba(255, 255, 255, 0.78) !important;
  font-size: 14px !important;
}

.loginBox .ant-checkbox-inner {
  width: 18px !important;
  height: 18px !important;
  border-radius: 6px !important;
  background: rgba(255, 255, 255, 0.12) !important;
  border-color: rgba(255, 255, 255, 0.3) !important;
}

.loginBox .ant-checkbox-checked .ant-checkbox-inner {
  background: linear-gradient(135deg, #6366f1, #38bdf8) !important;
  border-color: transparent !important;
}

.loginBox .ant-checkbox-checked::after {
  border-color: transparent !important;
}

/* 版本号 */
.loginBox .version[data-v-4154ffab],
.loginBox .ver[data-v-4154ffab] {
  color: rgba(255, 255, 255, 0.42) !important;
  font-size: 12px !important;
}


/* ---------------------------------------------------------- 内页通用组件 */

/* 主按钮（内页用的浅色场景） */
.ant-btn {
  border-radius: var(--radius-sm) !important;
  transition: all 0.16s ease;
  font-weight: 500;
}

.ant-btn-primary {
  background: linear-gradient(120deg, #6366f1, #7c5cf5) !important;
  border-color: transparent !important;
  box-shadow: 0 6px 16px rgba(99, 102, 241, 0.25);
}

.ant-btn-primary:hover,
.ant-btn-primary:focus {
  background: linear-gradient(120deg, #6f72ff, #8868ff) !important;
  box-shadow: 0 10px 22px rgba(99, 102, 241, 0.32);
}

/* 输入类 */
.ant-input,
.ant-input-affix-wrapper,
.ant-select-selection,
.ant-input-number {
  border-radius: var(--radius-sm) !important;
  border-color: var(--line) !important;
}

.ant-input:hover,
.ant-input:focus,
.ant-input-affix-wrapper:hover,
.ant-input-affix-wrapper-focused,
.ant-select-selection:hover {
  border-color: #b9bdfb !important;
  box-shadow: 0 0 0 3px rgba(99, 102, 241, 0.12) !important;
}

/* 弹窗 */
.ant-modal-content {
  border-radius: var(--radius-lg) !important;
  overflow: hidden;
  box-shadow: var(--shadow-float) !important;
}

.ant-modal-header {
  border-bottom: 1px solid var(--line) !important;
  padding: 18px 24px !important;
}

.ant-modal-title {
  font-weight: 600 !important;
  color: var(--ink) !important;
}

/* 卡片 / 面板 */
.ant-card {
  border-radius: var(--radius-md) !important;
  border: 1px solid var(--line) !important;
  box-shadow: var(--shadow-card) !important;
}

/* 表格 */
.ant-table {
  border-radius: var(--radius-md);
  overflow: hidden;
}
.ant-table-thead > tr > th {
  background: #f7f8fd !important;
  color: var(--ink-2) !important;
  font-weight: 600 !important;
  border-bottom: 1px solid var(--line) !important;
}

/* 标签页 */
.ant-tabs-bar {
  border-bottom: 1px solid var(--line) !important;
}
.ant-tabs-nav .ant-tabs-tab-active {
  color: var(--brand-1) !important;
  font-weight: 600;
}
.ant-tabs-ink-bar {
  background: linear-gradient(90deg, #6366f1, #38bdf8) !important;
  height: 3px !important;
  border-radius: 3px;
}

/* 提示 / 通知 */
.ant-message-notice-content,
.ant-notification-notice {
  border-radius: var(--radius-md) !important;
  box-shadow: var(--shadow-float) !important;
}

/* 下拉选择 */
.ant-select-dropdown {
  border-radius: var(--radius-md) !important;
  box-shadow: var(--shadow-float) !important;
  padding: 6px !important;
}
.ant-select-dropdown-menu-item {
  border-radius: 8px !important;
}
.ant-select-dropdown-menu-item-active,
.ant-select-dropdown-menu-item-selected {
  background: #eef0ff !important;
  color: var(--brand-1) !important;
}
