/* ============================================================
   小心控制 · 独立视觉体系 v3「紫夜霓虹」
   只替换色相/字体/形状/材质，不动布局、位置、结构、功能
   ============================================================ */
@import url('https://fonts.loli.net/css2?family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;600&display=swap');

:root,[data-theme=dark]{
  --bg-primary:#0D0913; --bg-secondary:#171020; --bg-tertiary:#1E1529;
  --bg-card:#171020; --bg-hover:#241A31; --bg-sidebar:#0A0710;
  --text-primary:#F0E9FA; --text-secondary:#A99BC4; --text-tertiary:#6B5C87; --text-inverse:#0D0913;
  --border-primary:rgba(168,85,247,.16); --border-secondary:rgba(168,85,247,.28); --border-light:rgba(255,255,255,.045);
  --shadow-sm:0 2px 6px rgba(0,0,0,.5);
  --shadow-md:0 10px 28px -12px rgba(88,28,135,.55);
  --shadow-lg:0 24px 60px -24px rgba(88,28,135,.7);
  --accent-primary:#A855F7; --accent-success:#34D399; --accent-warning:#FBBF24; --accent-danger:#FB7185;
  --color-primary:#A855F7; --color-primary-light:#C084FC; --color-primary-dark:#2A1B3D;
  --color-success:#34D399; --color-warning:#FBBF24; --color-error:#FB7185; --color-info:#A855F7;
  --color-text-primary:#F0E9FA; --color-text-secondary:#A99BC4; --color-text-disabled:#6B5C87;
  --color-border:rgba(168,85,247,.16); --color-divider:rgba(255,255,255,.05);
  --color-bg-page:#0D0913; --color-bg-container:#171020; --color-bg-elevated:#241A31; --color-bg-hover:#2C2038;
  --border-radius-sm:10px; --border-radius-md:14px; --border-radius-lg:20px;
  --box-shadow-sm:0 2px 6px rgba(0,0,0,.5);
  --box-shadow-md:0 10px 28px -12px rgba(88,28,135,.55);
  --box-shadow-lg:0 24px 60px -24px rgba(88,28,135,.7);
  --xx-font:"Inter","SF Pro Text",-apple-system,BlinkMacSystemFont,"PingFang SC","HarmonyOS Sans SC","MiSans","Microsoft YaHei",sans-serif;
  --xx-mono:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
}
html,body,#root{background:#0D0913!important;font-family:var(--xx-font)!important;color:#F0E9FA;letter-spacing:.01em}
input,button,textarea,select,.ant-btn,.ant-input,.ant-select,.ant-table{font-family:var(--xx-font)!important}
.ant-statistic-content-value,.ant-progress-text,.ant-badge-count{font-family:var(--xx-mono)!important;font-variant-numeric:tabular-nums}

/* 侧栏 */
.ant-layout-sider{background:linear-gradient(180deg,#0C0813,#08050E)!important;border-right:1px solid rgba(168,85,247,.14)!important;position:relative}
.ant-layout-sider::after{content:"";position:absolute;top:0;right:-1px;width:1px;height:100%;background:linear-gradient(180deg,transparent,rgba(168,85,247,.65),rgba(255,77,141,.35),transparent);pointer-events:none}
.ant-layout-sider-children>div:first-child{padding-top:22px!important;padding-bottom:18px!important;border-bottom:1px solid rgba(255,255,255,.045);margin-bottom:8px}
.ant-layout-sider-children>div:first-child>div{
  font-weight:600!important;letter-spacing:.06em!important;font-size:15px!important;
  background:linear-gradient(100deg,#F0E9FA 10%,#C084FC 55%,#FF7FB0 95%);
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;
}
.ant-menu{background:transparent!important;border-inline-end:none!important}
.ant-menu-item,.ant-menu-submenu-title{
  border-radius:12px!important;margin:3px 10px!important;height:42px!important;line-height:42px!important;
  color:#A99BC4!important;font-weight:500;position:relative;transition:background .18s,color .18s!important;
}
.ant-menu-item:hover,.ant-menu-submenu-title:hover{background:rgba(168,85,247,.09)!important;color:#F0E9FA!important}
.ant-menu-item-selected,.ant-menu-dark .ant-menu-item-selected{
  background:linear-gradient(90deg,rgba(168,85,247,.24),rgba(168,85,247,.02))!important;
  color:#DCB9FF!important;box-shadow:none!important;font-weight:600;
}
.ant-menu-item-selected::before{content:"";position:absolute;left:-10px;top:50%;transform:translateY(-50%);width:3px;height:18px;border-radius:0 4px 4px 0;background:linear-gradient(180deg,#C084FC,#FF5C8A);box-shadow:0 0 12px rgba(192,132,252,.9)}
.ant-menu-item-selected::after{display:none!important}
.ant-menu-sub.ant-menu-inline{background:rgba(0,0,0,.28)!important;border-radius:12px}

/* 顶栏 */
.ant-layout-header{
  background:linear-gradient(180deg,rgba(23,16,32,.92),rgba(13,9,19,.86))!important;
  backdrop-filter:blur(18px) saturate(140%);
  border-bottom:1px solid rgba(168,85,247,.16)!important;
  box-shadow:0 8px 26px -22px rgba(168,85,247,.8)!important;
}
.ant-layout,.ant-layout-content{background:#0D0913!important}
.ant-layout-content>div{background:transparent!important}
::-webkit-scrollbar{width:9px;height:9px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:linear-gradient(180deg,rgba(168,85,247,.55),rgba(255,92,138,.4));border-radius:9px}

/* 卡片：无边框 + 顶部霓虹线 */
.ant-card{
  border:none!important;border-radius:20px!important;
  background:radial-gradient(120% 80% at 50% -20%,rgba(168,85,247,.13),transparent 60%),linear-gradient(175deg,#1A1324,#151020)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.055),inset 0 0 0 1px rgba(255,255,255,.035),0 18px 44px -26px rgba(0,0,0,.95)!important;
  overflow:hidden;position:relative;
}
.ant-card::before{content:"";position:absolute;top:0;left:18%;right:18%;height:1px;background:linear-gradient(90deg,transparent,#A855F7,#FF5C8A,transparent);opacity:.75;pointer-events:none}
.ant-card-head{border-bottom:1px solid rgba(255,255,255,.05)!important;background:transparent!important;padding:0 20px!important;min-height:52px!important}
.ant-card-head-title{color:#F0E9FA!important;font-weight:600!important;font-size:13.5px!important}
.ant-card-extra,.ant-card-extra *{color:#A99BC4!important}
.ant-card-body{color:#B4A6CC!important;padding:20px!important}

/* 按钮：胶囊 */
.ant-btn{border-radius:999px!important;font-weight:500!important;transition:transform .16s,box-shadow .18s,background .18s!important}
.ant-btn:active{transform:scale(.975)}
.ant-btn-primary{
  background:linear-gradient(120deg,#A855F7,#8B3DFF 45%,#FF5C8A)!important;border:none!important;color:#fff!important;font-weight:600!important;
  box-shadow:0 8px 24px -12px rgba(168,85,247,.95),inset 0 1px 0 rgba(255,255,255,.28)!important;
}
.ant-btn-primary:hover{filter:brightness(1.1);color:#fff!important}
.ant-btn-default{background:rgba(255,255,255,.045)!important;border:1px solid rgba(255,255,255,.09)!important;color:#D9CCEC!important;box-shadow:none!important}
.ant-btn-default:hover{background:rgba(168,85,247,.14)!important;border-color:rgba(168,85,247,.5)!important;color:#fff!important}
.ant-btn-text{color:#A99BC4!important}
.ant-btn-text:hover{background:rgba(168,85,247,.12)!important;color:#F0E9FA!important}
.ant-btn-dangerous{background:rgba(251,113,133,.13)!important;border:1px solid rgba(251,113,133,.36)!important;color:#FFA8B8!important}
.ant-btn-dangerous:hover{background:rgba(251,113,133,.24)!important;color:#fff!important}
.ant-btn-icon-only{border-radius:50%!important}

/* 表格 */
.ant-table,.ant-table-wrapper{background:transparent!important;color:#B4A6CC!important}
.ant-table-container,.ant-table-content,.ant-table-body{background:transparent!important}
.ant-table-thead>tr>th{background:transparent!important;color:#8B7BA8!important;font-size:11.5px!important;font-weight:600!important;letter-spacing:.08em;border-bottom:1px solid rgba(168,85,247,.2)!important}
.ant-table-thead>tr>th::before{display:none!important}
.ant-table-tbody>tr>td{border-bottom:1px solid rgba(255,255,255,.04)!important;color:#B4A6CC!important}
.ant-table-tbody>tr:hover>td{background:linear-gradient(90deg,rgba(168,85,247,.1),rgba(168,85,247,.02))!important;color:#F0E9FA!important}
.ant-table-placeholder,.ant-table-placeholder:hover>td{background:transparent!important}
.ant-empty-description{color:#6B5C87!important}

/* 表单 */
.ant-input,.ant-input-affix-wrapper,.ant-input-number,.ant-picker,textarea.ant-input{
  background:rgba(255,255,255,.035)!important;border:1px solid rgba(255,255,255,.08)!important;border-radius:14px!important;color:#F0E9FA!important;
}
.ant-input::placeholder{color:#6B5C87!important}
.ant-input:hover,.ant-input-affix-wrapper:hover{border-color:rgba(168,85,247,.42)!important}
.ant-input:focus,.ant-input-affix-wrapper-focused{border-color:#A855F7!important;box-shadow:0 0 0 3px rgba(168,85,247,.16)!important}
.ant-select:not(.ant-select-customize-input) .ant-select-selector{
  background:rgba(255,255,255,.035)!important;border:1px solid rgba(255,255,255,.08)!important;border-radius:14px!important;color:#F0E9FA!important;
}
.ant-select-selection-item{color:#F0E9FA!important}
.ant-select-selection-placeholder{color:#6B5C87!important}
.ant-select-arrow{color:#8B7BA8!important}
.ant-select-dropdown{background:#1B1327!important;border:1px solid rgba(168,85,247,.22)!important;border-radius:16px!important;box-shadow:0 26px 60px -24px rgba(0,0,0,.95)!important}
.ant-select-item{color:#B4A6CC!important;border-radius:10px!important}
.ant-select-item-option-active:not(.ant-select-item-option-disabled){background:rgba(168,85,247,.14)!important}
.ant-select-item-option-selected:not(.ant-select-item-option-disabled){background:rgba(168,85,247,.24)!important;color:#DCB9FF!important;font-weight:600}
.ant-form-item-label>label{color:#8B7BA8!important;font-size:12px!important}
.ant-checkbox-inner,.ant-radio-inner{background:rgba(255,255,255,.04)!important;border-color:rgba(255,255,255,.16)!important;border-radius:6px!important}
.ant-checkbox-checked .ant-checkbox-inner{background:#A855F7!important;border-color:#A855F7!important}
.ant-switch{background:rgba(255,255,255,.12)!important}
.ant-switch-checked{background:linear-gradient(90deg,#A855F7,#FF5C8A)!important}

/* Tabs */
.ant-tabs-tab{color:#8B7BA8!important}
.ant-tabs-tab:hover{color:#F0E9FA!important}
.ant-tabs-tab.ant-tabs-tab-active .ant-tabs-tab-btn{color:#DCB9FF!important;font-weight:600}
.ant-tabs-ink-bar{background:linear-gradient(90deg,#A855F7,#FF5C8A)!important;height:2.5px!important;border-radius:2px}
.ant-tabs-nav::before{border-bottom-color:rgba(255,255,255,.06)!important}

/* 弹窗 */
.ant-modal-content,.ant-drawer-content{
  background:linear-gradient(180deg,#1A1324,#130E1D)!important;border:1px solid rgba(168,85,247,.2)!important;border-radius:22px!important;
  box-shadow:0 40px 100px -40px rgba(0,0,0,.98),inset 0 1px 0 rgba(255,255,255,.06)!important;
}
.ant-modal-header{background:transparent!important;border-bottom:1px solid rgba(255,255,255,.05)!important}
.ant-modal-title{color:#F0E9FA!important;font-weight:600}
.ant-modal-footer{border-top:1px solid rgba(255,255,255,.05)!important}
.ant-modal-close{color:#8B7BA8!important;border-radius:50%!important}
.ant-modal-close:hover{color:#fff!important;background:rgba(168,85,247,.18)!important}
.ant-modal-mask,.ant-drawer-mask{background:radial-gradient(circle at 50% 40%,rgba(60,20,90,.55),rgba(4,2,8,.88))!important;backdrop-filter:blur(4px)}
.ant-drawer-header{border-bottom:1px solid rgba(255,255,255,.05)!important;background:transparent!important}
.ant-drawer-title{color:#F0E9FA!important}

/* 其他 */
.ant-descriptions-item-label{color:#8B7BA8!important}
.ant-descriptions-item-content{color:#B4A6CC!important}
.ant-descriptions-bordered .ant-descriptions-view,.ant-descriptions-bordered .ant-descriptions-row>th,.ant-descriptions-bordered .ant-descriptions-row>td{border-color:rgba(255,255,255,.06)!important}
.ant-descriptions-bordered .ant-descriptions-item-label{background:rgba(255,255,255,.02)!important}
.ant-tag{border-radius:999px!important;background:rgba(168,85,247,.12)!important;border:1px solid rgba(168,85,247,.28)!important;color:#DCB9FF!important;font-size:11px!important;padding:0 10px!important;line-height:19px!important}
.ant-badge-count{background:linear-gradient(120deg,#FF5C8A,#A855F7)!important;box-shadow:0 0 0 2px #0D0913,0 4px 14px -4px rgba(255,92,138,.9)!important}
.ant-progress-text{color:#F0E9FA!important;font-weight:600}
.ant-progress-circle-trail{stroke:rgba(255,255,255,.07)!important}
.ant-progress-bg{background:linear-gradient(90deg,#A855F7,#FF5C8A)!important}
.ant-divider{border-color:rgba(255,255,255,.06)!important}
.ant-pagination-item{background:rgba(255,255,255,.035)!important;border:1px solid rgba(255,255,255,.08)!important;border-radius:11px!important}
.ant-pagination-item a{color:#A99BC4!important}
.ant-pagination-item-active{border-color:#A855F7!important;background:rgba(168,85,247,.24)!important}
.ant-pagination-item-active a{color:#DCB9FF!important;font-weight:600}
.ant-pagination-total-text{color:#6B5C87!important}
.ant-tooltip-inner{background:#241A31!important;color:#F0E9FA!important;border-radius:12px!important;border:1px solid rgba(168,85,247,.24)}
.ant-tooltip-arrow::before{background:#241A31!important}
.ant-message-notice-content{background:#1B1327!important;color:#F0E9FA!important;border:1px solid rgba(168,85,247,.22)!important;border-radius:14px!important}
.ant-notification-notice{background:#1B1327!important;border-radius:16px!important;color:#F0E9FA!important}
.ant-popover-inner{background:#1B1327!important;border:1px solid rgba(168,85,247,.2)!important;border-radius:14px!important}
.ant-upload-drag{background:rgba(168,85,247,.05)!important;border:1px dashed rgba(168,85,247,.32)!important;border-radius:16px!important}
.ant-alert{background:#1B1327!important;border:1px solid rgba(168,85,247,.2)!important;border-radius:14px!important}
.ant-alert-message{color:#F0E9FA!important}
.ant-alert-description{color:#A99BC4!important}
.ant-collapse{background:transparent!important;border:1px solid rgba(255,255,255,.06)!important;border-radius:16px!important}
.ant-collapse-header{color:#D9CCEC!important}
.ant-radio-wrapper,.ant-checkbox-wrapper{color:#B4A6CC!important}
.ant-list-item{border-bottom:1px solid rgba(255,255,255,.045)!important;color:#B4A6CC!important}
.ant-statistic-title{color:#8B7BA8!important;font-size:12px!important}
.ant-statistic-content{color:#F0E9FA!important}
.ant-typography{color:#F0E9FA!important}
.ant-typography-secondary{color:#8B7BA8!important}
.ant-spin-dot-item{background-color:#A855F7!important}
.ant-dropdown-menu{background:#1B1327!important;border:1px solid rgba(168,85,247,.2)!important;border-radius:14px!important}
.ant-dropdown-menu-item{color:#B4A6CC!important;border-radius:9px!important}
.ant-dropdown-menu-item:hover{background:rgba(168,85,247,.16)!important;color:#fff!important}
.ant-segmented{background:rgba(255,255,255,.04)!important;border-radius:12px!important}
.ant-segmented-item{color:#A99BC4!important}
.ant-segmented-item-selected{background:rgba(168,85,247,.28)!important;color:#DCB9FF!important}
.ant-layout-content .ant-space-item{color:inherit}

/* ===== 通知 / 消息 深色可读性修正 ===== */
.ant-notification-notice{
  background:linear-gradient(160deg,#1E1529,#171020) !important;
  border:1px solid rgba(168,85,247,.28) !important;
  border-radius:16px !important;
  box-shadow:0 24px 60px -24px rgba(0,0,0,.95),inset 0 1px 0 rgba(255,255,255,.06) !important;
}
.ant-notification-notice-message,
.ant-notification-notice-with-icon .ant-notification-notice-message{
  color:#F0E9FA !important;
  font-weight:600 !important;
  font-size:13.5px !important;
}
.ant-notification-notice-description,
.ant-notification-notice-with-icon .ant-notification-notice-description{
  color:#A99BC4 !important;
  font-size:12.5px !important;
}
.ant-notification-notice-close{color:#8B7BA8 !important}
.ant-notification-notice-close:hover{color:#fff !important;background:rgba(168,85,247,.2) !important}
.ant-notification-notice-icon,
.ant-notification-notice-icon-info,
.ant-notification-notice-icon-success,
.ant-notification-notice-icon-warning,
.ant-notification-notice-icon-error{color:#A855F7 !important}
.ant-notification-notice-icon-success{color:#34D399 !important}
.ant-notification-notice-icon-warning{color:#FBBF24 !important}
.ant-notification-notice-icon-error{color:#FB7185 !important}
.ant-notification-notice-btn .ant-btn-primary{color:#fff !important}

/* 二次确认弹窗（Popconfirm / Modal.confirm） */
.ant-popconfirm-inner,.ant-popover-inner{background:#1B1327 !important}
.ant-popconfirm-title,.ant-popover-title{color:#F0E9FA !important}
.ant-popconfirm-description,.ant-popover-inner-content{color:#A99BC4 !important}

/* ===== 清除深色主题下残留的白底容器（内联 rgb(255,255,255)） ===== */
div[style*="rgb(255, 255, 255)"],
div[style*="rgb(250, 250, 250)"],
div[style*="rgb(245, 245, 245)"],
div[style*="background: #fff"],
div[style*="background:#fff"],
div[style*="background: white"]{
  background:transparent !important;
}

/* 表格外围容器 & 工具栏 & 分页 */
.ant-table-wrapper,
.ant-table-wrapper > div,
.ant-table-container,
.ant-table-content,
.ant-table-body,
.ant-table-header,
.ant-table-title,
.ant-table-footer{
  background:transparent !important;
}
.ant-table-pagination.ant-pagination{
  background:transparent !important;
  border-top:1px solid rgba(255,255,255,.06) !important;
  margin:16px 0 0 !important;
  padding-top:12px !important;
}
.ant-table-pagination .ant-pagination-item,
.ant-table-pagination .ant-pagination-prev .ant-pagination-item-link,
.ant-table-pagination .ant-pagination-next .ant-pagination-item-link{
  background:rgba(255,255,255,.035) !important;
  border-color:rgba(255,255,255,.08) !important;
  color:#A99BC4 !important;
}
.ant-table-pagination .ant-pagination-item-active{
  background:rgba(168,85,247,.24) !important;
  border-color:#A855F7 !important;
}
.ant-table-pagination .ant-select-selector{
  background:rgba(255,255,255,.035) !important;
  border-color:rgba(255,255,255,.08) !important;
  color:#A99BC4 !important;
}

/* 操作栏 / 筛选栏 / 已选提示 */
.ant-table-selection,
.ant-alert-info,
.ant-space,
.ant-row{
  background-color:transparent;
}
.ant-table-column-sorter{color:#6B5C87 !important}
.ant-table-column-sorter-up.active,.ant-table-column-sorter-down.active{color:#A855F7 !important}
.ant-table-filter-trigger{color:#6B5C87 !important}
.ant-table-filter-trigger.active,.ant-table-filter-trigger:hover{color:#A855F7 !important;background:rgba(168,85,247,.14) !important}

/* 空状态 */
.ant-empty-normal,.ant-empty-image{opacity:.85}
.ant-empty-description{color:#6B5C87 !important}

/* ===== 通知：最后兜底（覆盖所有后代，含内联色） ===== */
.ant-notification,
.ant-notification-notice,
.ant-notification-notice *{
  color:#D9CCEC !important;
}
.ant-notification-notice .ant-notification-notice-message,
.ant-notification-notice .ant-notification-notice-message *,
.ant-notification-notice .ant-notification-notice-with-icon .ant-notification-notice-message{
  color:#F5EEFF !important;
  font-weight:600 !important;
}
.ant-notification-notice .ant-notification-notice-description,
.ant-notification-notice .ant-notification-notice-description *{
  color:#B4A6CC !important;
}

/* 顶部 message 提示同样兜底 */
.ant-message,
.ant-message-notice,
.ant-message-notice *{color:#F0E9FA !important}
