/* ============================================================
   胖财神 · 扁平科技风 UI（2026-10）
   原则：不改变布局，只覆盖配色/阴影/圆角/边框
   ============================================================ */

:root {
  --pc-bg: #0a0f1e;
  --pc-card: #0f1728;
  --pc-card2: #131c31;
  --pc-border: #1e2a45;
  --pc-border2: #2a3a5e;
  --pc-text: #dbe4f5;
  --pc-text2: #8596b8;
  --pc-accent: #22d3ee;
  --pc-blue: #3b82f6;
  --pc-gold: #f5c842;
  --pc-green: #34d399;
  --pc-red: #f87171;
}

/* ---------- 全局底色 ---------- */
html, body, #root {
  background: var(--pc-bg) !important;
  color: var(--pc-text);
  -webkit-font-smoothing: antialiased;
}

/* ---------- 侧边栏品牌 logo（覆盖 bundle 内联 48px） ---------- */
.ant-layout-sider img[src="/assets/png/logo.png"] {
  height: 72px !important;
  width: auto !important;
  margin-bottom: 10px !important;
}

/* ============================================================
   原始样式表深色主题变量重映射
   原 index-DDYJhxJP.css 有整套 [data-theme="dark"] 高优先级规则
   （GitHub 深色玻璃拟态），全部引用 CSS 变量——重定义变量即整体换肤
   ============================================================ */
html[data-theme="dark"] {
  --bg-primary: #0a0f1e;
  --bg-secondary: #0f1728;
  --bg-tertiary: #131c31;
  --bg-card: #0f1728;
  --bg-hover: #1e2a45;
  --bg-sidebar: #0a0f1e;
  --text-primary: #dbe4f5;
  --text-secondary: #8596b8;
  --text-tertiary: #5b6c8e;
  --text-inverse: #0a0f1e;
  --border-primary: #1e2a45;
  --border-secondary: #2a3a5e;
  --border-light: #131c31;
  --shadow-sm: none;
  --shadow-md: none;
  --shadow-lg: none;
  --accent-primary: #22d3ee;
  --accent-success: #34d399;
  --accent-warning: #f5c842;
  --accent-danger: #f87171;
}

/* 原 CSS 里硬编码玻璃拟态规则的扁平化覆盖（html 前缀提优先级） */
html[data-theme="dark"] .ant-card {
  background: var(--pc-card) !important;
  border: 1px solid var(--pc-border) !important;
  box-shadow: none !important;
}
html[data-theme="dark"] .ant-card:hover {
  background: var(--pc-card2) !important;
  box-shadow: none !important;
}
html[data-theme="dark"] .ant-pagination {
  background: transparent !important;
  border: none !important;
}
html[data-theme="dark"] .ant-layout-content:before {
  background: none !important;
}

/* 科技感网格纹理背景（纯 CSS 扁平纹理） */
body::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background:
    repeating-linear-gradient(0deg, rgba(59, 130, 246, 0.035) 0 1px, transparent 1px 56px),
    repeating-linear-gradient(90deg, rgba(59, 130, 246, 0.035) 0 1px, transparent 1px 56px),
    radial-gradient(circle at 85% 8%, rgba(34, 211, 238, 0.07) 0, transparent 42%),
    radial-gradient(circle at 8% 92%, rgba(59, 130, 246, 0.06) 0, transparent 40%);
}
#root { position: relative; z-index: 1; }

/* ---------- 卡片：扁平无阴影 ---------- */
.ant-card,
.ant-modal-content,
.ant-drawer-content,
.ant-popover-inner,
.ant-dropdown-menu,
.ant-select-dropdown,
.ant-picker-dropdown .ant-picker-panel-container,
.ant-message-notice-content,
.ant-notification-notice,
.ant-tooltip-inner {
  background: var(--pc-card) !important;
  border: 1px solid var(--pc-border) !important;
  border-radius: 6px !important;
  box-shadow: none !important;
}
.ant-card-head {
  background: var(--pc-card2) !important;
  border-bottom: 1px solid var(--pc-border) !important;
  color: var(--pc-text) !important;
}
.ant-card-body { background: var(--pc-card) !important; }
.ant-modal-header, .ant-drawer-header {
  background: var(--pc-card2) !important;
  border-bottom: 1px solid var(--pc-border) !important;
}
.ant-modal-footer, .ant-drawer-footer {
  border-top: 1px solid var(--pc-border) !important;
}
.dark-modal .ant-modal-content,
.dark-modal .ant-modal-header {
  background: var(--pc-card) !important;
  border-color: var(--pc-border) !important;
}

/* ---------- 按钮：扁平 ---------- */
.ant-btn {
  border-radius: 4px !important;
  box-shadow: none !important;
  background: #1b2842 !important;
  border: 1px solid #3d5178 !important;
  color: #dbe4f5 !important;
}
.ant-btn:hover { border-color: var(--pc-accent) !important; color: var(--pc-accent) !important; background: #22334f !important; }
.ant-btn:disabled { background: #1d2944 !important; border-color: #33415f !important; color: #9db0d5 !important; opacity: 1 !important; }
.ant-btn-primary {
  background: var(--pc-blue) !important;
  border-color: var(--pc-blue) !important;
  color: #fff !important;
}
.ant-btn-primary:hover { background: #5297ff !important; color: #fff !important; }
.ant-btn-dangerous.ant-btn-primary,
.ant-btn-danger {
  background: var(--pc-red) !important;
  border-color: var(--pc-red) !important;
  color: #fff !important;
}
.ant-btn-dangerous:not(.ant-btn-primary) { background: transparent !important; color: var(--pc-red) !important; border-color: var(--pc-red) !important; }

/* ---------- 布局/侧栏 ---------- */
.ant-layout, .ant-layout-header, .ant-layout-sider, .ant-layout-content {
  background: var(--pc-bg) !important;
}
.ant-layout-sider { border-right: 1px solid var(--pc-border); }
.ant-menu { background: transparent !important; border-inline-end: none !important; }
.ant-menu-item, .ant-menu-submenu-title { color: var(--pc-text2) !important; border-radius: 4px !important; margin-inline: 6px !important; width: calc(100% - 12px) !important; }
.ant-menu-item:hover, .ant-menu-submenu-title:hover { background: rgba(255, 255, 255, 0.05) !important; color: var(--pc-text) !important; }
.ant-menu-item-selected {
  background: rgba(34, 211, 238, 0.12) !important;
  color: var(--pc-accent) !important;
}
.ant-menu-item-selected::after { display: none !important; }

/* ---------- 表格 ---------- */
.ant-table { background: transparent !important; }
.ant-table-thead > tr > th {
  background: var(--pc-card2) !important;
  color: var(--pc-text2) !important;
  border-bottom: 1px solid var(--pc-border) !important;
  font-weight: 500 !important;
}
.ant-table-tbody > tr > td {
  background: transparent !important;
  border-bottom: 1px solid var(--pc-border) !important;
  color: var(--pc-text) !important;
}
.ant-table-tbody > tr:hover > td { background: rgba(59, 130, 246, 0.07) !important; }
.ant-table-tbody > tr.ant-table-row-selected > td { background: rgba(34, 211, 238, 0.10) !important; }
.ant-pagination-item, .ant-pagination-prev, .ant-pagination-next {
  background: var(--pc-card2) !important;
  border-color: var(--pc-border2) !important;
}
.ant-pagination-item a { color: var(--pc-text2) !important; }
.ant-pagination-item-active { border-color: var(--pc-accent) !important; }
.ant-pagination-item-active a { color: var(--pc-accent) !important; }

/* ---------- 输入控件 ---------- */
.ant-input, .ant-input-affix-wrapper, .ant-input-number, .ant-picker,
.ant-select-selector, .ant-input-group-addon, textarea.ant-input {
  background: var(--pc-card2) !important;
  border-color: var(--pc-border2) !important;
  color: var(--pc-text) !important;
  border-radius: 4px !important;
  box-shadow: none !important;
}
.ant-input::placeholder, .ant-input-affix-wrapper input::placeholder { color: #5b6c8e !important; }
.ant-input:focus, .ant-input-affix-wrapper-focused,
.ant-input-number-focused, .ant-picker-focused, .ant-select-focused .ant-select-selector {
  border-color: var(--pc-accent) !important;
  box-shadow: 0 0 0 2px rgba(34, 211, 238, 0.12) !important;
}
.ant-select-arrow, .ant-picker-suffix, .ant-input-prefix, .ant-input-suffix { color: var(--pc-text2) !important; }
.ant-select-dropdown .ant-select-item-option-selected { background: rgba(34, 211, 238, 0.12) !important; }
.ant-select-item { color: var(--pc-text) !important; }
.ant-radio-wrapper, .ant-checkbox-wrapper, .ant-form-item-label > label { color: var(--pc-text) !important; }
.ant-radio-inner, .ant-checkbox-inner { background: var(--pc-card2) !important; border-color: var(--pc-border2) !important; }
.ant-radio-checked .ant-radio-inner, .ant-checkbox-checked .ant-checkbox-inner {
  background: var(--pc-accent) !important; border-color: var(--pc-accent) !important;
}
.ant-switch-checked { background: var(--pc-accent) !important; }

/* ---------- 文本/标签/状态 ---------- */
.ant-typography, .ant-typography-secondary { color: var(--pc-text) !important; }
.ant-tag { border-radius: 3px !important; border: 1px solid var(--pc-border2) !important; background: var(--pc-card2) !important; color: var(--pc-text2) !important; }
.ant-tag-green { background: rgba(52, 211, 153, 0.12) !important; border-color: rgba(52, 211, 153, 0.4) !important; color: var(--pc-green) !important; }
.ant-tag-red { background: rgba(248, 113, 113, 0.12) !important; border-color: rgba(248, 113, 113, 0.4) !important; color: var(--pc-red) !important; }
.ant-tag-blue, .ant-tag-cyan { background: rgba(34, 211, 238, 0.12) !important; border-color: rgba(34, 211, 238, 0.4) !important; color: var(--pc-accent) !important; }
.ant-badge-status-text { color: var(--pc-text2) !important; }
.ant-empty-description, .ant-result-subtitle { color: var(--pc-text2) !important; }
.ant-divider { border-color: var(--pc-border) !important; }
.ant-tabs-tab { color: var(--pc-text2) !important; }
.ant-tabs-tab-active .ant-tabs-tab-btn { color: var(--pc-accent) !important; }
.ant-tabs-ink-bar { background: var(--pc-accent) !important; }
.ant-tabs-nav::before { border-bottom-color: var(--pc-border) !important; }
.ant-progress-text, .ant-statistic-content { color: var(--pc-text) !important; }
.ant-progress-bg { background: var(--pc-accent) !important; }
.ant-progress-outer, .ant-progress-inner { background: var(--pc-card2) !important; }
.ant-slider-rail { background: var(--pc-card2) !important; }
.ant-slider-track { background: var(--pc-accent) !important; }
.ant-slider-handle { border-color: var(--pc-accent) !important; background: var(--pc-accent) !important; }
.ant-steps-item-title, .ant-steps-item-description { color: var(--pc-text2) !important; }
.ant-steps-item-finish .ant-steps-item-icon { border-color: var(--pc-green) !important; background: var(--pc-green) !important; }
.ant-tooltip-inner { background: var(--pc-card2) !important; color: var(--pc-text) !important; }
.ant-alert-info { background: rgba(59, 130, 246, 0.10) !important; border-color: rgba(59, 130, 246, 0.4) !important; }
.ant-alert-message, .ant-alert-description { color: var(--pc-text) !important; }

/* ---------- 滚动条 ---------- */
::-webkit-scrollbar { width: 8px; height: 8px; }
::-webkit-scrollbar-thumb { background: #223254; border-radius: 4px; }
::-webkit-scrollbar-thumb:hover { background: #2c4170; }
::-webkit-scrollbar-track { background: transparent; }

/* ---------- 登录页（全局卡片覆盖 + 居中卡片玻璃扁平） ---------- */
/* 登录页是唯一的全屏居中卡片场景，强化品牌色 */
.ant-layout-content .ant-card { border-color: var(--pc-border) !important; }

/* ---------- 文字对比度修复（暗色主题下的 antd 内部默认深色文字） ---------- */
.ant-card-head-title, .ant-modal-title, .ant-drawer-title, .ant-drawer-header-title { color: var(--pc-text) !important; }
.ant-modal-confirm-title, .ant-modal-confirm-content, .ant-modal-confirm-body { color: var(--pc-text) !important; }
.ant-dropdown-menu-item, .ant-dropdown-menu-submenu-title { color: var(--pc-text) !important; }
.ant-dropdown-menu-item:hover { background: rgba(59, 130, 246, 0.10) !important; }
.ant-dropdown-menu-item-danger { color: var(--pc-red) !important; }
.ant-dropdown-menu-item-divider, .ant-dropdown-menu-submenu-title-divider { border-top-color: var(--pc-border) !important; }
.ant-popover-title, .ant-popover-inner-content, .ant-popconfirm-title, .ant-popconfirm-message-text,
.ant-popconfirm-description { color: var(--pc-text) !important; }
.ant-notification-notice-message, .ant-notification-notice-description { color: var(--pc-text) !important; }
.ant-message-notice-content { color: var(--pc-text) !important; }

/* 日期/时间选择器面板 */
.ant-picker-header, .ant-picker-content, .ant-picker-content th,
.ant-picker-time-panel, .ant-picker-datetime-panel { color: var(--pc-text) !important; }
.ant-picker-content td { color: var(--pc-text2) !important; }
.ant-picker-cell-in-view { color: var(--pc-text) !important; }
.ant-picker-cell:hover .ant-picker-cell-inner { background: rgba(59, 130, 246, 0.12) !important; }
.ant-picker-cell-selected .ant-picker-cell-inner { background: var(--pc-blue) !important; color: #fff !important; }
.ant-picker-header button { color: var(--pc-text2) !important; }
.ant-picker-time-panel-column > li.ant-picker-time-panel-cell .ant-picker-time-panel-cell-inner { color: var(--pc-text2) !important; }
.ant-picker-time-panel-column > li.ant-picker-time-panel-cell-selected .ant-picker-time-panel-cell-inner { color: var(--pc-accent) !important; }

/* 树 */
.ant-tree { background: transparent !important; color: var(--pc-text) !important; }
.ant-tree .ant-tree-node-content-wrapper { color: var(--pc-text) !important; }
.ant-tree .ant-tree-node-content-wrapper:hover { background: rgba(59, 130, 246, 0.10) !important; }
.ant-tree .ant-tree-node-selected { background: rgba(34, 211, 238, 0.12) !important; color: var(--pc-accent) !important; }

/* Segmented */
.ant-segmented { background: var(--pc-card2) !important; border: 1px solid var(--pc-border2) !important; }
.ant-segmented-item { color: var(--pc-text2) !important; }
.ant-segmented-item-selected { background: var(--pc-blue) !important; color: #fff !important; }
.ant-segmented-thumb { background: var(--pc-blue) !important; }

/* Descriptions */
.ant-descriptions-item-label, .ant-descriptions-item-content { color: var(--pc-text) !important; background: transparent !important; }
.ant-descriptions-item-label { color: var(--pc-text2) !important; }
.ant-descriptions-bordered .ant-descriptions-item-label, .ant-descriptions-bordered .ant-descriptions-item-content { border-color: var(--pc-border) !important; }

/* Timeline / Steps / Collapse */
.ant-timeline-item-content, .ant-timeline-item-head { color: var(--pc-text) !important; }
.ant-steps-item-container .ant-steps-item-content .ant-steps-item-title { color: var(--pc-text2) !important; }
.ant-steps-item-process .ant-steps-item-icon { background: var(--pc-blue) !important; border-color: var(--pc-blue) !important; }
.ant-steps-item-icon .ant-steps-icon { color: #fff !important; }
.ant-collapse { background: transparent !important; border-color: var(--pc-border) !important; }
.ant-collapse-item { border-color: var(--pc-border) !important; }
.ant-collapse-header, .ant-collapse-content { color: var(--pc-text) !important; background: var(--pc-card) !important; }

/* Radio button 组 */
.ant-radio-button-wrapper { background: var(--pc-card2) !important; border-color: var(--pc-border2) !important; color: var(--pc-text2) !important; }
.ant-radio-button-wrapper:not(.ant-radio-button-wrapper-disabled):hover { color: var(--pc-accent) !important; }
.ant-radio-button-wrapper-checked { background: var(--pc-blue) !important; border-color: var(--pc-blue) !important; color: #fff !important; box-shadow: none !important; }

/* 分割线带文字 / 其他 */
.ant-divider-with-text { border-color: var(--pc-border) !important; color: var(--pc-text2) !important; }
.ant-divider-plain.ant-divider-with-text { color: var(--pc-text2) !important; }
.ant-statistic-title, .ant-statistic-content { color: var(--pc-text) !important; }
.ant-form-item-extra, .ant-form-item-explain { color: var(--pc-text2) !important; }
.ant-upload-wrapper .ant-upload, .ant-upload-drag { background: var(--pc-card2) !important; border-color: var(--pc-border2) !important; color: var(--pc-text2) !important; }
.ant-upload-drag:hover { border-color: var(--pc-accent) !important; }
.ant-menu-submenu-popup > .ant-menu { background: var(--pc-card) !important; border: 1px solid var(--pc-border) !important; }
.ant-menu-submenu-popup .ant-menu-item, .ant-menu-submenu-popup .ant-menu-submenu-title { color: var(--pc-text2) !important; }
.ant-image-preview-mask { background: rgba(0, 0, 0, 0.75) !important; }
.ant-result-title, .ant-result-subtitle { color: var(--pc-text) !important; }
.ant-skeleton-title, .ant-skeleton-paragraph > li { background: var(--pc-card2) !important; }
.ant-spin-text { color: var(--pc-accent) !important; }
.ant-empty-description { color: var(--pc-text2) !important; }
.ant-drawer-close, .ant-modal-close { color: var(--pc-text2) !important; }
.ant-transfer-list { background: var(--pc-card) !important; border-color: var(--pc-border) !important; }
.ant-transfer-list-header { background: var(--pc-card2) !important; border-color: var(--pc-border) !important; color: var(--pc-text) !important; }
.ant-transfer-list-content-item:not(.ant-transfer-list-content-item-disabled):hover { background: rgba(59, 130, 246, 0.10) !important; }
.ant-transfer-list-content-item { color: var(--pc-text) !important; }
.ant-input-group-addon { color: var(--pc-text2) !important; border-color: var(--pc-border2) !important; }
.ant-table-column-sorter, .ant-table-filter-trigger { color: var(--pc-text2) !important; }
.ant-pagination-disabled .ant-pagination-item-link, .ant-pagination-item-ellipsis { color: var(--pc-text2) !important; }
.ant-tag-close-icon { color: var(--pc-text2) !important; }
.ant-select-selection-placeholder { color: var(--pc-text2) !important; }
.ant-breadcrumb a, .ant-breadcrumb span { color: var(--pc-text2) !important; }
.ant-breadcrumb li:last-child { color: var(--pc-text) !important; }
.ant-page-header-heading-title { color: var(--pc-text) !important; }

/* ============================================================
   亮色模式（扁平科技风 · 浅色变体）
   变量随 data-theme 切换，布局与组件规则共用
   ============================================================ */
html[data-theme="light"] {
  --pc-bg: #eef2f9;
  --pc-card: #ffffff;
  --pc-card2: #f6f8fc;
  --pc-border: #dce4f2;
  --pc-border2: #c6d3e8;
  --pc-text: #1c2b45;
  --pc-text2: #5b6c8e;
  --pc-accent: #0e7490;
  --pc-blue: #2563eb;
  --pc-green: #059669;
  --pc-red: #dc2626;
}
html[data-theme="light"] body::before {
  background:
    repeating-linear-gradient(0deg, rgba(37, 99, 235, 0.03) 0 1px, transparent 1px 56px),
    repeating-linear-gradient(90deg, rgba(37, 99, 235, 0.03) 0 1px, transparent 1px 56px),
    radial-gradient(circle at 85% 8%, rgba(14, 116, 144, 0.05) 0, transparent 42%),
    radial-gradient(circle at 8% 92%, rgba(37, 99, 235, 0.05) 0, transparent 40%);
}
html[data-theme="light"] .ant-menu-item:hover,
html[data-theme="light"] .ant-menu-submenu-title:hover {
  background: rgba(37, 99, 235, 0.08) !important;
}
html[data-theme="light"] .ant-menu-item-selected {
  background: rgba(14, 116, 144, 0.12) !important;
}
html[data-theme="light"] .ant-table-tbody > tr:hover > td { background: rgba(37, 99, 235, 0.06) !important; }
html[data-theme="light"] .ant-table-tbody > tr.ant-table-row-selected > td { background: rgba(14, 116, 144, 0.10) !important; }
html[data-theme="light"] .ant-btn:hover { border-color: var(--pc-accent) !important; color: var(--pc-accent) !important; }
html[data-theme="light"] .ant-tag { background: var(--pc-card2) !important; border-color: var(--pc-border2) !important; color: var(--pc-text2) !important; }
html[data-theme="light"] .ant-dropdown-menu-item:hover,
html[data-theme="light"] .ant-select-dropdown .ant-select-item-option-active,
html[data-theme="light"] .ant-picker-cell:hover .ant-picker-cell-inner {
  background: rgba(37, 99, 235, 0.08) !important;
}
html[data-theme="light"] ::-webkit-scrollbar-thumb { background: #c3d0e6; }
html[data-theme="light"] .ant-input::placeholder,
html[data-theme="light"] .ant-input-affix-wrapper input::placeholder { color: #93a5c4 !important; }
html[data-theme="light"] .ant-btn-primary:hover { background: #3b82f6 !important; }
