/* ============================================================================
   DARK LUXE  ·  黑金高定主题  ·  2026-10-22
   加载顺序：main-tXeBn1j8_v12.css → light-theme.css → dark-luxe.css
   所有选择器统一加 body 前缀提升优先级，确保覆盖 light-theme 的 !important
   适用页面：/（设备总览） 与 /?controlDeviceId=xxx（设备控制台）
   ============================================================================ */

/* ---------- 1. 设计令牌 ---------- */
html:root,
html:root[data-theme="dark"],
html:root[data-theme="light"] {
  color-scheme: dark !important;

  /* 基底：曜石黑 */
  --lx-void: #06090E;
  --lx-base: #0A0F16;
  --lx-surface: #0E141D;
  --lx-surface-2: #131B26;
  --lx-surface-3: #1A2431;
  --lx-border: #1E2A38;
  --lx-border-hi: #2B3A4D;

  /* 高定金 */
  --lx-gold: #C8A96A;
  --lx-gold-hi: #E8CE93;
  --lx-gold-dim: #8A7440;

  /* 文字 */
  --lx-text: #E8EEF6;
  --lx-text-2: #A9B8C9;
  --lx-text-3: #8B9EB4;
  --lx-text-4: #7E93AA;

  /* 状态色 */
  --lx-green: #34D399;
  --lx-red: #EF5350;
  --lx-amber: #E8A33D;
  --lx-blue: #5AA9F0;

  /* 覆盖 light-theme 的 --fc-* */
  --fc-bg: #0A0F16 !important;
  --fc-bg-deep: #06090E !important;
  --fc-surface: #0E141D !important;
  --fc-surface-hi: #131B26 !important;
  --fc-elevated: #131B26 !important;
  --fc-bg-body: #0A0F16 !important;
  --fc-bg-root: #06090E !important;
  --fc-bg-shell: #0A0F16 !important;
  --fc-bg-panel: #0E141D !important;
  --fc-bg-sidebar: #080C12 !important;
  --fc-bg-topbar: #0E141D !important;
  --fc-bg-page: #0A0F16 !important;
  --fc-text: #E8EEF6 !important;
  --fc-text-hi: #FFFFFF !important;
  --fc-text-lo: #A9B8C9 !important;
  --fc-text-mute: #74869B !important;
  --fc-text-secondary: #A9B8C9 !important;
  --fc-text-muted: #74869B !important;
  --fc-text-topbar: #E8EEF6 !important;
  --fc-text-topbar-muted: #A9B8C9 !important;
  --fc-border: #1E2A38 !important;
  --fc-border-soft: #16202B !important;
  --fc-border-hi: #2B3A4D !important;
  --fc-input-bg: #131B26 !important;
  --fc-hover-bg: #131B26 !important;
  --fc-table-row-border: #16202B !important;
  --fc-th-bg: #0E141D !important;
  --fc-sidebar-nav: #A9B8C9 !important;
  --fc-sidebar-nav-hover: #FFFFFF !important;
  --fc-sidebar-active-bg: rgba(200, 169, 106, .12) !important;
  --fc-sidebar-active-border: rgba(200, 169, 106, .38) !important;
  --fc-scrollbar: #2B3A4D !important;
  --fc-toast-bg: #131B26 !important;
  --fc-toast-border: #2B3A4D !important;
  --fc-toast-text: #E8EEF6 !important;
  --fc-form-label: #C4D0DE !important;
  --fc-form-hint: #74869B !important;
  --fc-primary: #C8A96A !important;
  --fc-primary-hi: #E8CE93 !important;
  --fc-primary-lo: #8A7440 !important;
  --fc-primary-soft: rgba(200, 169, 106, .14) !important;
  --fc-primary-border: rgba(200, 169, 106, .34) !important;
  --fc-accent: #C8A96A !important;

  --fc-shadow-sm: 0 1px 2px rgba(0, 0, 0, .5) !important;
  --fc-shadow: 0 8px 24px rgba(0, 0, 0, .5) !important;
  --fc-shadow-lg: 0 18px 44px rgba(0, 0, 0, .55) !important;
  --fc-shadow-xl: 0 30px 70px rgba(0, 0, 0, .65) !important;

  /* 覆盖 soy / lg 变量 */
  --soy-bg: #0A0F16 !important;
  --soy-card: #0E141D !important;
  --soy-border: #1E2A38 !important;
  --soy-border-soft: #16202B !important;
  --soy-text: #E8EEF6 !important;
  --soy-text-2: #A9B8C9 !important;
  --soy-muted: #74869B !important;
  --lg-bg-1: #0A0F16 !important;
  --lg-bg-2: #06090E !important;
  --lg-bg-3: #0E141D !important;
  --lg-white: #0E141D !important;
  --lg-text: #E8EEF6 !important;
  --lg-text-2: #A9B8C9 !important;
  --lg-text-3: #74869B !important;
  --lg-border: #2B3A4D !important;

  /* antd 基础 token 兜底 */
  --ant-color-bg-container: #0E141D;
  --ant-color-bg-layout: #0A0F16;
  --ant-color-bg-elevated: #131B26;
  --ant-color-border: #1E2A38;
  --ant-color-text: #E8EEF6;
  --ant-color-text-secondary: #A9B8C9;
  --ant-color-primary: #C8A96A;
}

/* ---------- 2. 全局底板 ---------- */
html,
body,
#root,
.ant-app,
.ant-layout,
.ant-layout-content {
  background: var(--lx-base) !important;
  color: var(--lx-text) !important;
}
body {
  color-scheme: dark !important;
  background-image:
    radial-gradient(1200px 600px at 78% -10%, rgba(200, 169, 106, .05), transparent 62%),
    radial-gradient(900px 500px at 8% 110%, rgba(90, 169, 240, .045), transparent 60%) !important;
  background-attachment: fixed !important;
}
body ::selection {
  background: rgba(200, 169, 106, .32) !important;
  color: #FFF8E7 !important;
}

/* 顶栏 */
body .ant-layout-header {
  background: linear-gradient(180deg, #0F1620, #0B111A) !important;
  border-bottom: 1px solid var(--lx-border) !important;
  box-shadow: 0 1px 0 rgba(200, 169, 106, .10), 0 10px 30px rgba(0, 0, 0, .45) !important;
  color: var(--lx-text) !important;
}

/* ---------- 3. 侧栏：曜石 + 金线 ---------- */
body .ant-layout-sider,
body .ant-layout-sider-dark,
body .ant-layout-sider-children {
  background:
    radial-gradient(120% 55% at 50% -8%, rgba(200, 169, 106, .10), transparent 62%),
    linear-gradient(180deg, #090E15 0%, #0A0F16 52%, #070B11 100%) !important;
  color: var(--lx-text-2) !important;
}
body .ant-layout-sider {
  border-right: 1px solid rgba(200, 169, 106, .14) !important;
  box-shadow: 8px 0 40px rgba(0, 0, 0, .55) !important;
}
body .ant-layout-sider .brand-lockup {
  padding: 28px 16px 22px !important;
  border-bottom: 1px solid rgba(200, 169, 106, .12) !important;
  margin-bottom: 10px !important;
  background: radial-gradient(70% 110% at 50% 0%, rgba(200, 169, 106, .10), transparent 72%) !important;
}
body .ant-layout-sider .brand-lockup-logo {
  width: 62px !important;
  height: 62px !important;
  border-radius: 16px !important;
  padding: 6px;
  background: linear-gradient(160deg, rgba(200, 169, 106, .20), rgba(200, 169, 106, .04)) !important;
  box-shadow:
    0 0 0 1px rgba(200, 169, 106, .34),
    0 0 26px rgba(200, 169, 106, .22),
    0 12px 30px rgba(0, 0, 0, .6) !important;
}
body .ant-layout-sider .brand-lockup-name {
  font-size: 22px !important;
  letter-spacing: 3px !important;
  margin-right: -3px !important;
  background: linear-gradient(135deg, #FFF6E2 0%, #E8CE93 46%, #C8A96A 100%) !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  filter: drop-shadow(0 0 12px rgba(200, 169, 106, .32));
}
body .ant-layout-sider .brand-lockup-sub {
  font-size: 10px !important;
  letter-spacing: 3.6px !important;
  margin-right: -3.6px !important;
  color: var(--lx-text-4) !important;
  opacity: 1 !important;
}
body .ant-layout-sider .ant-menu,
body .ant-layout-sider .ant-menu-light,
body .ant-layout-sider .ant-menu-inline,
body .ant-layout-sider .ant-menu-sub,
body .ant-layout-sider .ant-menu-root {
  background: transparent !important;
  color: var(--lx-text-2) !important;
  padding: 4px 10px 18px !important;
}
body .ant-layout-sider .ant-menu-inline > .ant-menu-item,
body .ant-layout-sider .ant-menu-inline > .ant-menu-submenu > .ant-menu-submenu-title {
  width: auto !important;
  padding-left: 14px !important;
  margin: 3px 0 !important;
  border-radius: 10px !important;
  height: 42px !important;
  line-height: 42px !important;
  color: var(--lx-text-2) !important;
  font-size: 13.5px !important;
  font-weight: 500;
  letter-spacing: .3px;
  transition: background .18s ease, color .18s ease, box-shadow .18s ease !important;
}
body .ant-layout-sider .ant-menu-item,
body .ant-layout-sider .ant-menu-submenu-title {
  color: var(--lx-text-2) !important;
}
body .ant-layout-sider .ant-menu-title-content { color: inherit !important; }
body .ant-layout-sider .ant-menu-sub .ant-menu-item {
  height: 36px !important;
  line-height: 36px !important;
  font-size: 12.5px !important;
  color: var(--lx-text-3) !important;
}
body .ant-layout-sider .ant-menu-item-icon,
body .ant-layout-sider .ant-menu-item .anticon,
body .ant-layout-sider .ant-menu-submenu-title .anticon {
  font-size: 16px !important;
  transition: filter .18s ease, transform .18s ease;
  filter: drop-shadow(0 0 6px rgba(200, 169, 106, .30));
}
body .ant-layout-sider .ant-menu-item:hover,
body .ant-layout-sider .ant-menu-submenu-title:hover {
  background: linear-gradient(90deg, rgba(200, 169, 106, .12), rgba(200, 169, 106, .02)) !important;
  color: #FFF6E2 !important;
}
body .ant-layout-sider .ant-menu-item:hover .anticon,
body .ant-layout-sider .ant-menu-submenu-title:hover .anticon {
  transform: translateY(-1px) scale(1.06);
  filter: drop-shadow(0 0 8px rgba(232, 206, 147, .65));
}
body .ant-layout-sider .ant-menu-item-selected {
  position: relative;
  background: linear-gradient(90deg, rgba(200, 169, 106, .20), rgba(200, 169, 106, .05)) !important;
  color: #F2DFAE !important;
  box-shadow:
    inset 0 0 0 1px rgba(200, 169, 106, .42),
    0 0 20px rgba(200, 169, 106, .14) !important;
}
body .ant-layout-sider .ant-menu-item-selected .ant-menu-title-content { color: #F2DFAE !important; }
body .ant-layout-sider .ant-menu-item-selected .anticon {
  filter: drop-shadow(0 0 9px rgba(232, 206, 147, .85));
}
body .ant-layout-sider .ant-menu-item-selected::before {
  content: "";
  position: absolute;
  right: 14px;
  top: 50%;
  width: 7px;
  height: 7px;
  margin-top: -3.5px;
  border-radius: 50%;
  background: var(--lx-green);
  box-shadow: 0 0 0 3px rgba(52, 211, 153, .16), 0 0 12px rgba(52, 211, 153, .9);
}
body .ant-layout-sider .ant-menu-item-selected::after { border-right-color: transparent !important; }
body .ant-layout-sider .ant-menu-sub.ant-menu-inline {
  background: rgba(4, 7, 11, .60) !important;
  border-radius: 10px !important;
  margin: 2px 0 6px !important;
  padding: 4px 6px !important;
  box-shadow: inset 0 1px 0 rgba(200, 169, 106, .06);
}
body .ant-layout-sider .ant-menu-sub .ant-menu-item {
  position: relative;
  padding-left: 22px !important;
  border-radius: 8px !important;
  margin: 2px 0 !important;
}
body .ant-layout-sider .ant-menu-sub .ant-menu-item::before {
  content: "";
  position: absolute;
  left: 12px;
  top: 50%;
  width: 4px;
  height: 4px;
  margin-top: -2px;
  border-radius: 50%;
  background: #3B4C60;
  transition: background .18s ease, box-shadow .18s ease;
}
body .ant-layout-sider .ant-menu-sub .ant-menu-item-selected::before {
  background: var(--lx-green);
  box-shadow: 0 0 8px rgba(52, 211, 153, .9);
  width: 5px;
  height: 5px;
  margin-top: -2.5px;
  left: 11.5px;
}
body .ant-layout-sider .ant-menu-sub .ant-menu-item-selected {
  box-shadow: inset 0 0 0 1px rgba(200, 169, 106, .30) !important;
}
body .ant-layout-sider .ant-menu-submenu-arrow { color: #5D6E83 !important; }
body .ant-layout-sider .ant-menu-submenu-open > .ant-menu-submenu-title .ant-menu-submenu-arrow { color: #E8CE93 !important; }
body .ant-layout-sider-trigger {
  background: rgba(6, 9, 14, .95) !important;
  color: #E8CE93 !important;
  border-top: 1px solid rgba(200, 169, 106, .14) !important;
}

/* ---------- 4. antd 通用组件 ---------- */
body .ant-card,
body .ant-card-bordered,
body .ant-table-wrapper,
body .ant-table,
body .ant-table-container,
body .ant-table-content,
body .ant-modal-content,
body .ant-drawer-content,
body .ant-drawer-header,
body .ant-popover-inner,
body .ant-dropdown-menu,
body .ant-select-dropdown,
body .ant-picker-panel-container,
body .ant-tooltip-inner {
  background: var(--lx-surface) !important;
  color: var(--lx-text) !important;
  border-color: var(--lx-border) !important;
}
body .ant-card-head,
body .ant-modal-header,
body .ant-modal-footer,
body .ant-table-thead > tr > th {
  background: #101822 !important;
  color: #E8EEF6 !important;
  border-color: var(--lx-border) !important;
}
body .ant-table-thead > tr > th {
  font-weight: 600;
  letter-spacing: .02em;
  color: #C4D0DE !important;
}
body .ant-table-tbody > tr > td {
  background: var(--lx-surface) !important;
  color: #D8E2EE !important;
  border-color: #16202B !important;
}
body .ant-table-tbody > tr:hover > td { background: #131B26 !important; }
body .ant-table-placeholder,
body .ant-table-placeholder > td,
body .ant-table-placeholder:hover > td {
  background: var(--lx-surface) !important;
  color: var(--lx-text-3) !important;
}
body .ant-typography,
body .ant-modal-title,
body .ant-drawer-title,
body .ant-form-item-label > label,
body .ant-radio-wrapper,
body .ant-checkbox-wrapper { color: #D8E2EE !important; }

body .ant-input,
body .ant-input-affix-wrapper,
body .ant-input-number,
body .ant-picker,
body .ant-select-selector,
body .ant-segmented {
  background: #131B26 !important;
  color: #E8EEF6 !important;
  border-color: #2B3A4D !important;
}
body .ant-input::placeholder,
body .ant-input input::placeholder { color: #5E7189 !important; }
body .ant-select-selection-item { color: #E8EEF6 !important; }
body .ant-select-selection-placeholder,
body .ant-select-arrow { color: #74869B !important; }
body .ant-input-affix-wrapper:hover,
body .ant-input:hover,
body .ant-select:hover .ant-select-selector {
  border-color: rgba(200, 169, 106, .55) !important;
}
body .ant-input:focus,
body .ant-input-affix-wrapper-focused,
body .ant-select-focused .ant-select-selector {
  border-color: var(--lx-gold) !important;
  box-shadow: 0 0 0 3px rgba(200, 169, 106, .16) !important;
}

body .ant-btn-default {
  background: #131B26 !important;
  color: #D8E2EE !important;
  border-color: #2B3A4D !important;
  box-shadow: none !important;
}
body .ant-btn-default:hover {
  background: #1A2431 !important;
  color: #F2DFAE !important;
  border-color: var(--lx-gold) !important;
}
body .ant-btn-primary {
  color: #0A0F16 !important;
  background: linear-gradient(135deg, #E8CE93 0%, #C8A96A 52%, #A8873F 100%) !important;
  border-color: rgba(200, 169, 106, .85) !important;
  font-weight: 700 !important;
  box-shadow: 0 6px 20px rgba(200, 169, 106, .22) !important;
}
body .ant-btn-primary:hover:not(:disabled) {
  filter: brightness(1.08);
  box-shadow: 0 8px 26px rgba(200, 169, 106, .34) !important;
}
body .ant-btn-primary:disabled {
  background: #1A2431 !important;
  color: #55677C !important;
  border-color: #24313F !important;
  box-shadow: none !important;
}
body .ant-pagination-item {
  background: #131B26 !important;
  border-color: #2B3A4D !important;
}
body .ant-pagination-item a { color: #D8E2EE !important; }
body .ant-pagination-item-active {
  border-color: var(--lx-gold) !important;
  background: rgba(200, 169, 106, .12) !important;
}
body .ant-pagination-item-active a { color: #F2DFAE !important; }
body .ant-empty-description { color: var(--lx-text-3) !important; }

/* 标签 */
body .ant-tag-success { background: rgba(52, 211, 153, .12) !important; color: #6EE7B7 !important; border-color: rgba(52, 211, 153, .32) !important; }
body .ant-tag-gold { background: rgba(200, 169, 106, .14) !important; color: #E8CE93 !important; border-color: rgba(200, 169, 106, .38) !important; }
body .ant-tag-purple { background: rgba(148, 130, 220, .14) !important; color: #C4B5FD !important; border-color: rgba(148, 130, 220, .34) !important; }
body .ant-tag:not(.ant-tag-success):not(.ant-tag-gold):not(.ant-tag-purple) {
  background: #131B26 !important;
  color: #A9B8C9 !important;
  border-color: #2B3A4D !important;
}
body .ant-dropdown-menu-item,
body .ant-dropdown-menu-title-content,
body .ant-dropdown-menu-item .anticon { color: #D8E2EE !important; }
body .ant-dropdown-menu-item:hover { background: #1A2431 !important; }
body .ant-segmented-item { color: #A9B8C9 !important; }
body .ant-segmented-item-selected {
  background: #1A2431 !important;
  color: #F2DFAE !important;
  box-shadow: 0 1px 4px rgba(0, 0, 0, .5) !important;
}

/* ---------- 5. 总览页：hero / 指标卡 / 设备区 ---------- */
body .dashboard-root {
  background:
    radial-gradient(1000px 460px at 82% -6%, rgba(200, 169, 106, .06), transparent 62%),
    linear-gradient(180deg, #0A0F16, #080C12) !important;
  color: var(--lx-text) !important;
}

body .dashboard-hero {
  background:
    radial-gradient(600px 220px at 88% 0%, rgba(200, 169, 106, .14), transparent 62%),
    linear-gradient(135deg, #131B26 0%, #0E141D 58%, #0B111A 100%) !important;
  border: 1px solid rgba(200, 169, 106, .16) !important;
  border-radius: 18px !important;
  box-shadow: 0 20px 50px rgba(0, 0, 0, .55), inset 0 1px 0 rgba(255, 255, 255, .04) !important;
  position: relative;
  overflow: hidden;
}
body .dashboard-hero::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  width: 3px;
  height: 100%;
  background: linear-gradient(180deg, rgba(232, 206, 147, .9), rgba(200, 169, 106, .1));
}
body .dashboard-hero::after {
  content: "";
  position: absolute;
  right: -60px;
  top: -90px;
  width: 260px;
  height: 260px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(200, 169, 106, .16), transparent 68%);
  pointer-events: none;
}
body .dashboard-hero h1 {
  background: linear-gradient(135deg, #FFFFFF 0%, #F4E4BC 40%, #E8CE93 66%, #C8A96A 100%) !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  color: #F2DFAE !important;
  font-weight: 800 !important;
  letter-spacing: -.5px !important;
  text-shadow: none !important;
  filter: drop-shadow(0 1px 10px rgba(200, 169, 106, .22));
}
/* 有图标时标题由 svg 上色，避免被渐变裁掉 */
body .dashboard-hero h1 svg,
body .dashboard-hero h1 .anticon {
  -webkit-text-fill-color: currentColor !important;
  color: #E8CE93 !important;
}
body .dashboard-hero p { color: var(--lx-text-3) !important; }
body .hero-kicker {
  color: var(--lx-gold) !important;
  letter-spacing: .26em !important;
  font-size: 11px !important;
  font-weight: 700;
  text-transform: uppercase;
}

/* 顶部信息条 / 侧栏旧版卡片 */
body .rc-header,
body .rc-header-elevated,
body .rc-topbar,
body .dashboard-topbar,
body .rc-sidebar,
body .rc-device-toolbar,
body .rc-table-wrap,
body .rc-pagination,
body .rc-shell {
  background: var(--lx-surface) !important;
  border-color: var(--lx-border) !important;
  color: var(--lx-text) !important;
  box-shadow: 0 10px 30px rgba(0, 0, 0, .45) !important;
}
body .rc-header-elevated {
  background: linear-gradient(135deg, #131B26, #0E141D) !important;
  border: 1px solid var(--lx-border) !important;
  border-radius: 14px !important;
  padding: 16px 20px !important;
}
body .rc-header,
body .rc-header-elevated,
body .rc-logo,
body .dashboard-hero h1,
body .panel h3,
body .panel h4,
body .admin-head h3,
body .modal-title,
body .modal-head,
body .s-card .s-val,
body .topbar-clock {
  color: #E8EEF6 !important;
  text-shadow: none !important;
}
body .rc-header-elevated {
  color: #E8EEF6 !important;
  font-weight: 600;
  letter-spacing: .02em;
}
body .dashboard-hero p,
body .rc-top-left span,
body .td-muted,
body .td-sm,
body .dc-label,
body .modal-label,
body .placeholder-panel,
body .s-card .s-title { color: var(--lx-text-3) !important; }
body .topbar-user,
body .topbar-online,
body .topbar-tz,
body .rc-sidebar nav button { color: #B7C5D5 !important; }
body .rc-sidebar nav button:hover { background: #131B26 !important; color: #FFF6E2 !important; }
body .rc-sidebar nav button.on {
  background: rgba(200, 169, 106, .12) !important;
  color: #F2DFAE !important;
  border-color: rgba(200, 169, 106, .38) !important;
}

/* 表格 / 搜索 / 分页按钮 */
body .rc-table th,
body .rc-table-dense th {
  background: #101822 !important;
  color: #C4D0DE !important;
  border-color: var(--lx-border) !important;
}
body .rc-table td,
body .rc-table-dense td {
  background: var(--lx-surface) !important;
  color: #D8E2EE !important;
  border-color: #16202B !important;
}
body .rc-table tr:hover td,
body .rc-table-dense tr:hover td { background: #131B26 !important; }
body .rc-search,
body .rc-top-right select,
body .view-toggle,
body .sel-badge,
body .hero-meta span,
body .rc-main input:not([type=checkbox]):not([type=radio]),
body .rc-main select,
body .rc-main textarea {
  background: #131B26 !important;
  border-color: #2B3A4D !important;
  color: #E8EEF6 !important;
  box-shadow: none !important;
}
body .panel,
body .placeholder-panel,
body .device-card,
body .admin-add-form {
  background: var(--lx-surface) !important;
  border: 1px solid var(--lx-border) !important;
  border-radius: 14px !important;
  color: #D8E2EE !important;
  box-shadow: 0 10px 30px rgba(0, 0, 0, .45) !important;
}
body .panel h3,
body .panel h4,
body .panel strong,
body .panel b { color: #E8EEF6 !important; }
body .panel span,
body .panel div,
body .panel label,
body .panel td { color: #C4D0DE; }

/* ---------- 6. 设备控制台 ---------- */
body .control-page {
  background:
    radial-gradient(900px 420px at 84% -8%, rgba(200, 169, 106, .05), transparent 62%),
    var(--lx-base) !important;
  color: var(--lx-text) !important;
}
body .control-page .ctrl-bottom-line {
  background: linear-gradient(90deg, transparent, rgba(200, 169, 106, .55), transparent) !important;
  box-shadow: none !important;
}
body .control-page .ctrl-header {
  background: linear-gradient(180deg, #101822, #0B111A) !important;
  border-bottom: 1px solid var(--lx-border) !important;
  box-shadow: 0 1px 0 rgba(200, 169, 106, .12) !important;
}
body .control-page .ctrl-header-brand,
body .control-page .ctrl-tab-panel-head h2,
body .control-page .ctrl-sidebar h3,
body .control-page .ctrl-device-row .device-name,
body .control-page .sidebar-card-head {
  color: #E8EEF6 !important;
}
body .control-page .ctrl-header-brand {
  font-weight: 700;
  letter-spacing: .02em;
  color: #F2DFAE !important;
}
body .control-page .ctrl-tabs-bar,
body .control-page .ctrl-tabs-custom,
body .control-page .ctrl-tabs-nav,
body .control-page .ctrl-toolbar {
  background: #0B111A !important;
  border-color: var(--lx-border) !important;
}
body .control-page .ctrl-tab {
  background: #131B26 !important;
  color: #A9B8C9 !important;
  border-color: #24313F !important;
  border-radius: 8px !important;
}
body .control-page .ctrl-tab:hover {
  background: rgba(200, 169, 106, .10) !important;
  color: #F2DFAE !important;
  border-color: rgba(200, 169, 106, .42) !important;
}
body .control-page .ctrl-tab.active {
  background: linear-gradient(135deg, rgba(232, 206, 147, .22), rgba(200, 169, 106, .10)) !important;
  color: #FFF6E2 !important;
  border-color: rgba(200, 169, 106, .55) !important;
  box-shadow: 0 0 18px rgba(200, 169, 106, .16) !important;
}
body .control-page .ctrl-tabs-custom .ctrl-custom-tab { color: #A9B8C9 !important; }
body .control-page .ctrl-tabs-custom .ctrl-custom-tab:hover { background: #131B26 !important; color: #FFF6E2 !important; }
body .control-page .ctrl-tabs-custom .ctrl-custom-tab.active {
  background: rgba(200, 169, 106, .14) !important;
  color: #F2DFAE !important;
  border-color: rgba(200, 169, 106, .45) !important;
}
body .control-page .ctrl-tab-panel,
body .control-page .ctrl-tab-content { background: transparent !important; }
body .control-page .ctrl-tab-panel-head p,
body .control-page .ctrl-empty-inline { color: var(--lx-text-3) !important; }

body .control-page .ctrl-screen-area,
body .control-page .ctrl-body { background: transparent !important; color: var(--lx-text) !important; }
body .control-page .ctrl-sidebar,
body .control-page .ctrl-sidebar-panel,
body .control-page .ctrl-quick-panel,
body .control-page .ctrl-quick-section,
body .control-page .ctrl-device-list,
body .control-page .sidebar-card {
  background: var(--lx-surface) !important;
  border-color: var(--lx-border) !important;
  color: #D8E2EE !important;
}
body .control-page .ctrl-sidebar-panel { background: #0B111A !important; }
body .control-page .sidebar-card-head {
  background: #101822 !important;
  border-color: var(--lx-border) !important;
  color: #C4D0DE !important;
}
body .control-page .sidebar-divider { background: #1B2634 !important; }
body .control-page .ctrl-device-row:hover { background: #131B26 !important; }
body .control-page .ctrl-device-row span { color: #C4D0DE !important; }
body .control-page .ctrl-device-row.topbar-item {
  background: #131B26 !important;
  border-color: #24313F !important;
}
body .control-page .ctrl-time-row,
body .control-page .ctrl-ws-status,
body .control-page .ctrl-ws-status.connected,
body .control-page .ctrl-device-row label { color: var(--lx-text-3) !important; }
body .control-page .ctrl-ws-status.connected { color: var(--lx-green) !important; }

body .control-page .sidebar-input,
body .control-page .sidebar-textarea,
body .control-page .ctrl-input {
  background: #131B26 !important;
  color: #E8EEF6 !important;
  border-color: #2B3A4D !important;
}
body .control-page .sidebar-input::placeholder,
body .control-page .sidebar-textarea::placeholder,
body .control-page .ctrl-input::placeholder { color: #5E7189 !important; }
body .control-page .sidebar-btn:not(.is-on),
body .control-page .sidebar-btn-sm:not(.is-on),
body .control-page .ctrl-qbtn:not(.is-on),
body .control-page .ctrl-btn:not(.primary):not(.danger),
body .control-page .ctrl-tab-action {
  background: #131B26 !important;
  color: #C4D0DE !important;
  border-color: #2B3A4D !important;
  box-shadow: none !important;
}
body .control-page .sidebar-btn:not(.is-on):hover,
body .control-page .sidebar-btn-sm:not(.is-on):hover,
body .control-page .ctrl-qbtn:not(.is-on):hover,
body .control-page .ctrl-btn:not(.primary):not(.danger):hover,
body .control-page .ctrl-tab-action:hover {
  background: rgba(200, 169, 106, .12) !important;
  color: #F2DFAE !important;
  border-color: rgba(200, 169, 106, .48) !important;
}
body .control-page .ctrl-btn.primary,
body .control-page .sidebar-btn.primary,
body .control-page .sidebar-btn-sm.primary {
  background: linear-gradient(135deg, #E8CE93, #C8A96A 60%, #A8873F) !important;
  color: #0A0F16 !important;
  border-color: rgba(200, 169, 106, .8) !important;
  font-weight: 700 !important;
}
body .control-page .ctrl-log-row {
  background: var(--lx-surface) !important;
  color: #C4D0DE !important;
  border-color: var(--lx-border) !important;
}
body .control-page .ctrl-log-row:nth-child(even) { background: #101822 !important; }
body .control-page .ctrl-empty,
body .control-page .ctrl-loading { color: var(--lx-text-3) !important; }

body .control-page .home-tab-topbar,
body .control-page .topbar-item {
  background: #131B26 !important;
  border-color: #24313F !important;
}
body .control-page .topbar-label,
body .control-page .topbar-pwd-label { color: var(--lx-text-3) !important; }
body .control-page .topbar-val,
body .control-page .topbar-pwd-val { color: #E8EEF6 !important; }
body .control-page .home-tab-topbar-pwd {
  background: rgba(200, 169, 106, .12) !important;
  background-image: none !important;
  border-color: rgba(200, 169, 106, .34) !important;
  box-shadow: none !important;
  color: #F2DFAE !important;
}
body .control-page .topbar-pwd-value { color: #F2DFAE !important; text-shadow: none !important; }

/* ---------- 7. 注入 / 应用工作区 ---------- */
body .control-page .inj-layout { background: var(--lx-base) !important; color: var(--lx-text) !important; }
body .control-page .inj-panel,
body .control-page .inj-panel-apps,
body .control-page .inj-panel-col {
  background: var(--lx-surface) !important;
  color: #D8E2EE !important;
  border-color: var(--lx-border) !important;
  box-shadow: 0 10px 30px rgba(0, 0, 0, .45) !important;
}
body .control-page .inj-panel-col { box-shadow: none !important; }
body .control-page .inj-panel-head {
  background: #101822 !important;
  color: #E8EEF6 !important;
  border-color: var(--lx-border) !important;
}
body .control-page .inj-panel-title,
body .control-page .inj-app-name,
body .control-page .inj-app-name-txt,
body .control-page .inj-cell-app,
body .control-page .inj-cell-val { color: #E8EEF6 !important; }
body .control-page .inj-title-count {
  background: #1A2431 !important;
  color: #C4D0DE !important;
  border-color: #2B3A4D !important;
}
body .control-page .inj-searchbar {
  background: #131B26 !important;
  color: #E8EEF6 !important;
  border-color: #2B3A4D !important;
  box-shadow: none !important;
}
body .control-page .inj-searchbar:focus-within {
  border-color: var(--lx-gold) !important;
  box-shadow: 0 0 0 3px rgba(200, 169, 106, .14) !important;
}
body .control-page .inj-searchbar input {
  background: transparent !important;
  color: #E8EEF6 !important;
  border: 0 !important;
  box-shadow: none !important;
}
body .control-page .inj-searchbar input::placeholder,
body .control-page .inj-search-ic,
body .control-page .inj-empty,
body .control-page .inj-empty-ic { color: var(--lx-text-3) !important; }
body .control-page .inj-table-scroll,
body .control-page .inj-table { background: var(--lx-surface) !important; border-color: var(--lx-border) !important; }
body .control-page .inj-table { color: #D8E2EE !important; }
body .control-page .inj-table thead,
body .control-page .inj-table thead tr,
body .control-page .inj-table th {
  background: #101822 !important;
  color: #C4D0DE !important;
  border-color: var(--lx-border) !important;
}
body .control-page .inj-table tbody,
body .control-page .inj-table tbody tr,
body .control-page .inj-table td {
  background: var(--lx-surface) !important;
  color: #D8E2EE !important;
  border-color: #16202B !important;
}
body .control-page .inj-table tbody tr:hover,
body .control-page .inj-table tbody tr:hover td { background: #131B26 !important; }
body .control-page .inj-app-pkg,
body .control-page .inj-app-ver,
body .control-page .inj-cell-pkg,
body .control-page .inj-cell-time,
body .control-page .inj-page-info { color: var(--lx-text-3) !important; }
body .control-page .inj-val-mono { color: #C4D0DE !important; }
body .control-page .inj-pagination {
  background: #101822 !important;
  color: #C4D0DE !important;
  border-color: var(--lx-border) !important;
}
body .control-page .inj-page-size,
body .control-page .inj-page-btns button,
body .control-page .inj-refresh-btn,
body .control-page .inj-tool-btn {
  background: #131B26 !important;
  color: #C4D0DE !important;
  border-color: #2B3A4D !important;
  box-shadow: none !important;
}
body .control-page .inj-page-size:hover,
body .control-page .inj-page-btns button:not(:disabled):hover,
body .control-page .inj-refresh-btn:not(:disabled):hover,
body .control-page .inj-tool-btn:not(:disabled):hover {
  background: rgba(200, 169, 106, .12) !important;
  color: #F2DFAE !important;
  border-color: var(--lx-gold) !important;
}
body .control-page .inj-page-btns .inj-page-cur {
  background: linear-gradient(135deg, #E8CE93, #C8A96A) !important;
  color: #0A0F16 !important;
  border-color: rgba(200, 169, 106, .8) !important;
}
body .control-page .inj-page-btns button:disabled,
body .control-page .inj-refresh-btn:disabled,
body .control-page .inj-tool-btn:disabled {
  background: #101822 !important;
  color: #55677C !important;
  border-color: #24313F !important;
  opacity: 1 !important;
}
body .control-page .inj-fetch-btn {
  background: linear-gradient(135deg, #E8CE93, #C8A96A 60%, #A8873F) !important;
  color: #0A0F16 !important;
  border-color: rgba(200, 169, 106, .8) !important;
  font-weight: 700 !important;
  box-shadow: none !important;
}
body .control-page .inj-fetch-btn:not(:disabled):hover {
  filter: brightness(1.08);
  color: #0A0F16 !important;
}
body .control-page .inj-fetch-btn:disabled {
  background: #101822 !important;
  color: #55677C !important;
  border-color: #24313F !important;
  opacity: 1 !important;
}
body .control-page .inj-pill,
body .control-page .inj-del-btn,
body .control-page .inj-pill:hover,
body .control-page .inj-del-btn:hover { color: #ffffff !important; }
body .control-page .inj-live-dot {
  border-color: #0E141D !important;
  box-shadow: 0 0 0 2px rgba(52, 211, 153, .20), 0 0 10px rgba(52, 211, 153, .55) !important;
}
body .control-page .inj-app-ic,
body .control-page .inj-app-ic-fb {
  background: #131B26 !important;
  border-color: #24313F !important;
}
body .control-page .inj-btn-spinner-dark {
  border-color: rgba(232, 238, 246, .22) !important;
  border-top-color: #E8EEF6 !important;
}

/* ---------- 8. 弹窗 / 遮罩 / 提示 ---------- */
body .modal-overlay,
body .overlay-modal-backdrop { background: rgba(3, 6, 10, .72) !important; backdrop-filter: blur(3px); }
body .modal,
body .modal-beautiful,
body .modal-content,
body .modal-box,
body .overlay-modal {
  background: linear-gradient(160deg, #131B26, #0B111A) !important;
  color: #D8E2EE !important;
  border: 1px solid rgba(200, 169, 106, .20) !important;
  border-radius: 16px !important;
  box-shadow: 0 32px 80px rgba(0, 0, 0, .75), inset 0 1px 0 rgba(255, 255, 255, .05) !important;
}
body .modal-head,
body .modal-footer,
body .overlay-modal-header {
  background: transparent !important;
  border-color: #1B2634 !important;
}
body .modal-title,
body .overlay-modal-header { color: #E8EEF6 !important; }
body .modal-label,
body .modal-switch-text,
body .perm-item { color: #A9B8C9 !important; }
body .modal-input,
body .role-select {
  background: #131B26 !important;
  color: #E8EEF6 !important;
  border-color: #2B3A4D !important;
}
body .modal-input::placeholder { color: #5E7189 !important; }
body .modal-section-title { color: var(--lx-gold-hi) !important; border-color: rgba(200, 169, 106, .26) !important; }
body .expire-preset-btn,
body .perm-quick-btn {
  background: rgba(200, 169, 106, .10) !important;
  color: #E8CE93 !important;
  border-color: rgba(200, 169, 106, .32) !important;
}
body .expire-preset-btn:hover,
body .expire-preset-btn.active,
body .perm-quick-btn:hover {
  background: rgba(200, 169, 106, .20) !important;
  color: #FFF6E2 !important;
  border-color: rgba(200, 169, 106, .55) !important;
}
body .modal-btn-cancel {
  background: rgba(239, 83, 80, .12) !important;
  color: #FF9B98 !important;
  border-color: rgba(239, 83, 80, .32) !important;
}
body .modal-btn-primary {
  background: linear-gradient(135deg, #E8CE93, #C8A96A 60%, #A8873F) !important;
  color: #0A0F16 !important;
  font-weight: 700 !important;
}
body .overlay-modal-body { color: #C4D0DE !important; }
body .overlay-modal-icon { color: var(--lx-gold) !important; }
body .overlay-modal-close { color: #74869B !important; }
body .overlay-modal-close:hover { color: #FFF6E2 !important; }

/* 旧版 fc-* 组件 */
body .fc-card,
body .fc-table-wrap,
body .fc-stat,
body .fc-toast {
  background: var(--lx-surface) !important;
  color: #D8E2EE !important;
  border-color: var(--lx-border) !important;
  box-shadow: var(--fc-shadow-sm) !important;
}
body .fc-card-title,
body .fc-empty-title,
body .fc-stat-value { color: #E8EEF6 !important; }
body .fc-input,
body .fc-select,
body .fc-textarea {
  background: #131B26 !important;
  color: #E8EEF6 !important;
  border-color: #2B3A4D !important;
}
body .fc-btn--secondary,
body .fc-btn--ghost {
  background: #131B26 !important;
  color: #C4D0DE !important;
  border-color: #2B3A4D !important;
}
body .fc-btn--secondary:hover,
body .fc-btn--ghost:hover {
  background: rgba(200, 169, 106, .12) !important;
  color: #F2DFAE !important;
  border-color: var(--lx-gold) !important;
}

/* 提示 toast */
body .toast,
body .ant-message-notice-content {
  background: #131B26 !important;
  color: #E8EEF6 !important;
  border: 1px solid #2B3A4D !important;
  box-shadow: 0 16px 40px rgba(0, 0, 0, .6) !important;
}
body .toast.err {
  background: rgba(239, 83, 80, .14) !important;
  border-color: rgba(239, 83, 80, .38) !important;
  color: #FFB4B2 !important;
}

/* ---------- 9. 行内样式的暗色重映射 ----------
   React 会把 #241212 序列化成 rgb(36, 18, 18) 写进 style 属性，
   因此用属性选择器统一改到曜石黑 + 金，跨页面生效。 */
body [style*="background: rgb(36, 18, 18)"][style],
body [style*="background: rgb(26, 10, 10)"][style],
body [style*="background: rgb(15, 6, 6)"][style],
body .ant-layout-content [style*="background: rgb(36, 18, 18)"][style],
body .ant-layout-content [style*="background: rgb(26, 10, 10)"][style],
body .ant-layout-content [style*="background: rgb(15, 6, 6)"][style],
body .control-page [style*="background: rgb(36, 18, 18)"][style],
body .control-page [style*="background: rgb(26, 10, 10)"][style],
body .control-page [style*="background: rgb(15, 6, 6)"][style],
body .control-page [style*="background:#241212"][style],
body .control-page [style*="background:#1a0a0a"][style] {
  background: #131B26 !important;
}

/* 投屏 / 阅读器画布必须是纯黑：light-theme 把 rgb(10,10,10)/rgb(0,0,0) 反相成浅色，
   这里加倍提权压回黑色。 */
body.control-body [style*="background: rgb(10, 10, 10)"][style][style],
body .control-page [style*="background: rgb(10, 10, 10)"][style][style],
body .control-page [style*="background: rgb(0, 0, 0)"][style][style],
body .control-page [style*="background:#0a0a0a"][style][style],
body .control-page [style*="background:#000"][style][style],
body .control-page .ctrl-phone-screen,
body .control-page .ctrl-phone-frame,
body .control-page .ctrl-phone-nav {
  background: #03060A !important;
  background-image: none !important;
}

body .ant-layout-content [style*="background: rgb(46, 22, 22)"][style],
body .control-page [style*="background: rgb(46, 22, 22)"][style],
body .control-page [style*="background:#2e1616"][style] {
  background: #1A2431 !important;
}

body .ant-layout-content [style*="background: rgb(58, 32, 32)"][style],
body .control-page [style*="background: rgb(58, 32, 32)"][style],
body .control-page [style*="background:#3a2020"][style] {
  background: #24313F !important;
}

body .ant-layout-content [style*="border: 1px solid rgb(58, 32, 32)"][style],
body .ant-layout-content [style*="border-bottom: 1px solid rgb(58, 32, 32)"][style],
body .ant-layout-content [style*="border-top: 1px solid rgb(58, 32, 32)"][style],
body .ant-layout-content [style*="border-color: rgb(58, 32, 32)"][style],
body .ant-layout-content [style*="border-left-color: rgb(58, 32, 32)"][style],
body .control-page [style*="border: 1px solid rgb(58, 32, 32)"][style],
body .control-page [style*="border-bottom: 1px solid rgb(58, 32, 32)"][style],
body .control-page [style*="border-top: 1px solid rgb(58, 32, 32)"][style],
body .control-page [style*="border-color: rgb(58, 32, 32)"][style],
body .control-page [style*="border-left-color: rgb(58, 32, 32)"][style] {
  border-color: #24313F !important;
}

body .ant-layout-content [style*="color: rgb(229, 213, 213)"][style],
body .ant-layout-content [style*="color: rgb(255, 242, 242)"][style],
body .control-page [style*="color: rgb(229, 213, 213)"][style],
body .control-page [style*="color: rgb(255, 242, 242)"][style] { color: #E8EEF6 !important; }

body .ant-layout-content [style*="color: rgb(201, 169, 169)"][style],
body .ant-layout-content [style*="color: rgb(154, 122, 122)"][style],
body .control-page [style*="color: rgb(201, 169, 169)"][style],
body .control-page [style*="color: rgb(154, 122, 122)"][style] { color: #A9B8C9 !important; }

body .ant-layout-content [style*="box-shadow: rgba(0, 0, 0, 0.32)"][style] {
  box-shadow: 0 8px 26px rgba(0, 0, 0, .55) !important;
}

/* light-theme 把行内「半透明白 / 白底」映射成浅色面板，
   这些元素在深色主题里必须回到曜石黑。 */
body [style*="background: rgba(255, 255, 255, 0.06)"][style],
body [style*="background: rgba(255,255,255,.06)"][style],
body [style*="background: rgba(255, 255, 255, 0.03)"][style],
body [style*="background: rgba(255,255,255,.03)"][style],
body [style*="background: rgba(255, 255, 255, 0.05)"][style],
body [style*="background: rgba(255,255,255,.05)"][style],
body [style*="background: rgba(255, 255, 255, 0.1)"][style],
body [style*="background: rgba(255,255,255,.1)"][style],
body button[style*="background: #fff"][style],
body button[style*="background:#fff"][style],
body button[style*="background: #ffffff"][style],
body button[style*="background:#ffffff"][style],
body button[style*="background: rgb(255, 255, 255)"][style],
body button[style*="background: #f8fafc"][style],
body button[style*="background:#f8fafc"][style],
body button[style*="background: rgb(248, 250, 252)"][style],
body .ant-layout-content button[style*="background: #ffffff"][style],
body .ant-layout-content button[style*="background: rgb(255, 255, 255)"][style],
body .ant-layout-content button[style*="background: #f8fafc"][style],
body .ant-layout-content button[style*="background: rgb(248, 250, 252)"][style] {
  background: #131B26 !important;
  color: #C4D0DE !important;
  border-color: #2B3A4D !important;
  box-shadow: none !important;
}
body [style*="background: rgba(255, 255, 255, 0.06)"][style]:hover,
body [style*="background: rgba(255,255,255,.06)"][style]:hover,
body button[style*="background: #fff"][style]:hover,
body button[style*="background: #ffffff"][style]:hover,
body button[style*="background: rgb(255, 255, 255)"][style]:hover,
body button[style*="background: #f8fafc"][style]:hover,
body button[style*="background: rgb(248, 250, 252)"][style]:hover {
  background: rgba(200, 169, 106, .14) !important;
  color: #F2DFAE !important;
  border-color: rgba(200, 169, 106, .48) !important;
}
/* 行内 input/select/textarea 若是浅底同样压回深色 */
body input[style*="background: rgb(248, 250, 252)"][style],
body input[style*="background: #f8fafc"][style],
body select[style*="background: rgb(248, 250, 252)"][style],
body select[style*="background: #f8fafc"][style],
body textarea[style*="background: rgb(248, 250, 252)"][style],
body textarea[style*="background: #f8fafc"][style] {
  background: #131B26 !important;
  color: #E8EEF6 !important;
  border-color: #2B3A4D !important;
}
body .ant-layout-content button:disabled {
  background: #101822 !important;
  color: #55677C !important;
  border-color: #24313F !important;
  opacity: 1 !important;
}
body .ant-layout-content input,
body .ant-layout-content select,
body .ant-layout-content textarea,
body .control-page input:not([type=color]):not([type=range]),
body .control-page select,
body .control-page textarea {
  background: #131B26 !important;
  color: #E8EEF6 !important;
  border-color: #2B3A4D !important;
}
body .ant-layout-content input::placeholder,
body .ant-layout-content textarea::placeholder,
body .control-page input::placeholder,
body .control-page textarea::placeholder { color: #5E7189 !important; }
body .ant-layout-content option,
body .control-page option { background: #131B26 !important; color: #E8EEF6 !important; }

/* 手机投屏 / 真实像素区域继续保持纯黑，不参与调色 */
body .ctrl-phone-frame,
body .ctrl-phone-screen,
body .ctrl-phone-nav,
body .apk-phone-preview { background: #03060A !important; }
body .ctrl-phone-nav { border-color: rgba(255, 255, 255, .10) !important; }
body .ctrl-phone-nav button { color: #ffffff !important; background: transparent !important; }
body .control-page .ctrl-phone-screen:has(img),
body .control-page .ctrl-phone-screen:has(canvas) { background: #03060A !important; }

/* ---------- 10. 滚动条 ---------- */
body ::-webkit-scrollbar { width: 9px; height: 9px; }
body ::-webkit-scrollbar-track { background: transparent; }
body ::-webkit-scrollbar-thumb {
  background: linear-gradient(180deg, #2B3A4D, #1B2634);
  border-radius: 5px;
  border: 2px solid transparent;
  background-clip: content-box;
}
body ::-webkit-scrollbar-thumb:hover {
  background: linear-gradient(180deg, rgba(200, 169, 106, .65), rgba(138, 116, 64, .65));
  background-clip: content-box;
}

/* ---------- 11. 登录页金调对齐 ---------- */
body .login-page {
  background:
    radial-gradient(circle at 18% 18%, rgba(200, 169, 106, .16), transparent 30%),
    radial-gradient(circle at 84% 24%, rgba(90, 169, 240, .10), transparent 32%),
    linear-gradient(115deg, rgba(3, 6, 10, .80), rgba(6, 9, 14, .92)),
    url('/img/login-bg.jpg') !important;
  background-size: cover !important;
  background-position: center !important;
  background-attachment: fixed !important;
  background-repeat: no-repeat !important;
  color: #E8EEF6 !important;
}
body .login-container {
  background: linear-gradient(150deg, rgba(19, 27, 38, .92), rgba(8, 12, 18, .88)) !important;
  border: 1px solid rgba(200, 169, 106, .22) !important;
  border-radius: 22px !important;
  box-shadow:
    0 40px 100px rgba(0, 0, 0, .8),
    0 0 0 1px rgba(200, 169, 106, .10),
    inset 0 1px 0 rgba(255, 255, 255, .07) !important;
  backdrop-filter: blur(22px) !important;
}
body .login-form-wrapper::before {
  content: "雄域私人定制" !important;
  color: #FFF6E2 !important;
  background: url('/zhuque-klx.svg') top center / 58px 58px no-repeat !important;
  text-shadow: 0 8px 26px rgba(200, 169, 106, .40) !important;
}
body .login-page .ant-input-affix-wrapper,
body .login-page .ant-input,
body .login-page input {
  background: rgba(4, 7, 11, .70) !important;
  color: #E8EEF6 !important;
  border: 1px solid rgba(200, 169, 106, .26) !important;
  border-radius: 12px !important;
}
body .login-page .ant-input-affix-wrapper:hover,
body .login-page .ant-input-affix-wrapper-focused {
  border-color: rgba(200, 169, 106, .66) !important;
  box-shadow: 0 0 0 3px rgba(200, 169, 106, .16) !important;
}
body .login-page .login-button,
body .login-page .ant-btn-primary {
  background: linear-gradient(135deg, #E8CE93 0%, #C8A96A 55%, #A8873F 100%) !important;
  border: 1px solid rgba(232, 206, 147, .55) !important;
  color: #0A0F16 !important;
  border-radius: 12px !important;
  font-weight: 800 !important;
  box-shadow: 0 16px 40px rgba(200, 169, 106, .26), 0 0 30px rgba(200, 169, 106, .14) !important;
}
body .login-page .login-button:hover:not(:disabled) { filter: brightness(1.08) !important; }
body .login-page .forgot-link { color: #E8CE93 !important; }
body .login-page .form-footer,
body .login-page .form-footer span { color: #6C7E94 !important; border-color: rgba(200, 169, 106, .16) !important; }
body .login-page .ant-checkbox-checked .ant-checkbox-inner {
  background: linear-gradient(135deg, #E8CE93, #C8A96A) !important;
  border-color: transparent !important;
}
body .login-page::after { color: rgba(200, 169, 106, .75) !important; }

/* ---------- 12. 响应式兜底 ---------- */
@media (max-width: 900px) {
  body .ant-layout-sider .brand-lockup { padding: 16px 10px 14px !important; }
  body .ant-layout-sider .brand-lockup-name { font-size: 18px !important; letter-spacing: 2px !important; }
  body .ant-layout-sider .brand-lockup-logo { width: 48px !important; height: 48px !important; }
  body .ant-layout-sider .brand-lockup-sub { letter-spacing: 2px !important; }
  body .dashboard-hero { padding: 20px !important; border-radius: 14px !important; }
}

/* ================= 13. 可读性修正（对比度补丁） =================
   light-theme.css 用 `!important` 把行内按钮文字统一压成 #334155，
   而深色主题把同批按钮的底色换成 #24313F —— 对比度只剩 1.28:1，
   字直接糊进背景里。这里用更高特异度把文字提回浅色。 */

body .control-page button[style*="background: rgb(58, 32, 32)"][style],
body .control-page button[style*="background:#3a2020"][style],
body .control-page button[style*="background: rgb(51, 65, 85)"][style],
body .control-page button[style*="background:#334155"][style],
body .ant-layout-content button[style*="background: rgb(58, 32, 32)"][style],
body .ant-layout-content button[style*="background:#3a2020"][style],
body .ant-layout-content button[style*="background: rgb(51, 65, 85)"][style],
body .ant-layout-content button[style*="background:#334155"][style] {
  color: #EAF0F8 !important;
  border-color: #33445A !important;
  text-shadow: none !important;
}
body .control-page button[style*="background: rgb(58, 32, 32)"][style]:hover,
body .control-page button[style*="background: rgb(51, 65, 85)"][style]:hover,
body .ant-layout-content button[style*="background: rgb(58, 32, 32)"][style]:hover,
body .ant-layout-content button[style*="background: rgb(51, 65, 85)"][style]:hover {
  background: rgba(200, 169, 106, .16) !important;
  color: #F4E3BC !important;
  border-color: rgba(200, 169, 106, .55) !important;
}

/* 行内色值不是上两种、但被 light-theme 改成 #334155 的按钮，一并提亮 */
body .control-page button[style*="color: rgb(255, 255, 255)"][style],
body .ant-layout-content button[style*="color: rgb(255, 255, 255)"][style] {
  color: #EAF0F8 !important;
}

/* 禁用态：底色与文字拉开到 5:1 以上，仍能看出是「不可点」 */
body .control-page button:disabled,
body .ant-layout-content button:disabled {
  background: #161F2B !important;
  color: #93A5B9 !important;
  border-color: #2C3A4A !important;
  opacity: 1 !important;
  filter: none !important;
  cursor: not-allowed !important;
  box-shadow: none !important;
}
body .control-page .inj-page-btns button:disabled,
body .control-page .inj-refresh-btn:disabled,
body .control-page .inj-tool-btn:disabled,
body .control-page .inj-fetch-btn:disabled,
body .ant-btn-primary:disabled {
  background: #161F2B !important;
  color: #93A5B9 !important;
  border-color: #2C3A4A !important;
  opacity: 1 !important;
  filter: none !important;
  box-shadow: none !important;
}

/* 金色主按钮被行内 opacity:0.4 压暗后当作禁用态处理：
   改成浅金底 + 深字，保证禁用也读得清 */
body .control-page .sidebar-btn.primary[style*="opacity"],
body .control-page .sidebar-btn-sm.primary[style*="opacity"],
body .control-page .ctrl-btn.primary[style*="opacity"] {
  background: #222E3D !important;
  background-image: none !important;
  color: #C9B583 !important;
  border-color: #3B4A5C !important;
  opacity: 1 !important;
  font-weight: 600 !important;
}

/* 投屏未开启提示 */
body .control-page [style*="color: rgb(102, 102, 102)"][style],
body .control-page .ctrl-reader-empty,
body .control-page .ctrl-phone-hint {
  color: #93A5B9 !important;
}

/* 状态栏 / 时间 / 标签这类辅助文字统一抬到 WCAG AA */
body .control-page .ctrl-time-row,
body .control-page .ctrl-ws-status,
body .control-page .ctrl-device-row label,
body .control-page .topbar-label,
body .control-page .topbar-pwd-label,
body .control-page .ctrl-empty,
body .control-page .ctrl-loading,
body .ant-layout-sider .brand-lockup-sub { color: var(--lx-text-3) !important; }

/* 占位符 */
body .ant-layout-content input::placeholder,
body .ant-layout-content textarea::placeholder,
body .control-page input::placeholder,
body .control-page textarea::placeholder { color: #7E93AA !important; }

/* 行内 slate 底按钮（发送 / 手机导航键）被 light-theme 的白底规则反相，压回深色 */
body .control-page button[style*="background: rgb(51, 65, 85)"][style],
body .control-page button[style*="background:#334155"][style],
body .ant-layout-content button[style*="background: rgb(51, 65, 85)"][style],
body .ant-layout-content button[style*="background:#334155"][style] {
  background: #1E2A39 !important;
  background-image: none !important;
  color: #EAF0F8 !important;
  border-color: #33445A !important;
  box-shadow: none !important;
}
body .control-page button[style*="background: rgb(51, 65, 85)"][style]:hover,
body .ant-layout-content button[style*="background: rgb(51, 65, 85)"][style]:hover {
  background: rgba(200, 169, 106, .18) !important;
  color: #F4E3BC !important;
}
body .ctrl-phone-nav button,
body .control-page .ctrl-phone-nav button,
body .ant-layout-content .ctrl-phone-nav button,
body .control-page .ctrl-phone-nav button[style],
body .ant-layout-content .ctrl-phone-nav button[style] {
  background: #1E2A39 !important;
  background-image: none !important;
  color: #EAF0F8 !important;
  border-color: #33445A !important;
  box-shadow: none !important;
}
body .ctrl-phone-nav button:hover,
body .control-page .ctrl-phone-nav button:hover {
  background: rgba(200, 169, 106, .20) !important;
  color: #F4E3BC !important;
}

/* 深色底上「金色主按钮被禁用」与可用态没法区分，禁用时降为哑金描边 */
body .control-page .sidebar-btn.primary:disabled,
body .control-page .sidebar-btn-sm.primary:disabled,
body .control-page .ctrl-btn.primary:disabled,
body .control-page .ctrl-qbtn.primary:disabled,
body .control-page .sidebar-btn.green:disabled,
body .control-page .sidebar-btn-sm.green:disabled,
body .control-page .sidebar-btn.danger:disabled,
body .control-page .sidebar-btn-sm.danger:disabled,
body .control-page .sidebar-btn:disabled,
body .control-page .sidebar-btn-sm:disabled,
body .control-page .ctrl-qbtn:disabled {
  background: #1A2330 !important;
  background-image: none !important;
  color: #A8B8CA !important;
  border-color: #2F3D4E !important;
  font-weight: 500 !important;
  opacity: 1 !important;
  filter: none !important;
  box-shadow: none !important;
  cursor: not-allowed !important;
}
body .control-page .sidebar-btn.primary:disabled,
body .control-page .sidebar-btn-sm.primary:disabled,
body .control-page .ctrl-btn.primary:disabled {
  background: #2A2418 !important;
  background-image: none !important;
  color: #C0A874 !important;
  border-color: #4A3F26 !important;
}

/* light-theme 给投屏/读取器面板套了 #d8e1ec 白灰描边，
   在黑底上像一条发白的框，压回深色描边 */
body .control-page .trojan-screens > div,
body .control-page .trojan-control-panel > div,
body .control-page .inj-panel,
body .control-page .inj-panel-apps,
body .control-page .inj-panel-col {
  border-color: #24313F !important;
  box-shadow: 0 10px 28px rgba(0, 0, 0, .5) !important;
}
body .control-page .trojan-screens > div { background: #0E141D !important; }
body .control-page .trojan-screen-head,
body .control-page .inj-panel-head,
body .control-page .inj-panel-title { color: #E8EEF6 !important; border-color: #24313F !important; }
body .control-page .trojan-screens > div > * { border-color: #24313F !important; }

/* ================= 14. 功能分色（data-lx 标注层） =================
   lx-accent.js 按按钮文案打 data-lx，这里上色。
   五类语义色 + 主/禁用，色相区分但不破坏曜石底。 */

/* —— 危险：删除 / 阻断 / 黑屏 / 禁用 —— */
body .control-page button[data-lx="danger"],
body .ant-layout-content button[data-lx="danger"] {
  background: rgba(239, 83, 80, .10) !important;
  color: #FF9C9A !important;
  border-color: rgba(239, 83, 80, .42) !important;
  box-shadow: inset 0 0 0 1px rgba(239, 83, 80, .06) !important;
}
body .control-page button[data-lx="danger"]:hover,
body .ant-layout-content button[data-lx="danger"]:hover {
  background: rgba(239, 83, 80, .22) !important;
  color: #FFD3D2 !important;
  border-color: rgba(239, 83, 80, .78) !important;
}

/* —— 警示：伪装 / 重启 / 修改 —— */
body .control-page button[data-lx="warn"],
body .ant-layout-content button[data-lx="warn"] {
  background: rgba(232, 163, 61, .10) !important;
  color: #F0BE6E !important;
  border-color: rgba(232, 163, 61, .40) !important;
}
body .control-page button[data-lx="warn"]:hover,
body .ant-layout-content button[data-lx="warn"]:hover {
  background: rgba(232, 163, 61, .22) !important;
  color: #FFDBA4 !important;
  border-color: rgba(232, 163, 61, .75) !important;
}

/* —— 正向：启用 / 解锁 / 部署 / 安装 —— */
body .control-page button[data-lx="success"],
body .ant-layout-content button[data-lx="success"] {
  background: rgba(52, 211, 153, .10) !important;
  color: #6FE7B6 !important;
  border-color: rgba(52, 211, 153, .38) !important;
}
body .control-page button[data-lx="success"]:hover,
body .ant-layout-content button[data-lx="success"]:hover {
  background: rgba(52, 211, 153, .22) !important;
  color: #A9F5D4 !important;
  border-color: rgba(52, 211, 153, .72) !important;
}

/* —— 查询类：状态 / 列出 / 获取 —— */
body .control-page button[data-lx="info"],
body .ant-layout-content button[data-lx="info"] {
  background: rgba(90, 169, 240, .10) !important;
  color: #8CC6F7 !important;
  border-color: rgba(90, 169, 240, .38) !important;
}
body .control-page button[data-lx="info"]:hover,
body .ant-layout-content button[data-lx="info"]:hover {
  background: rgba(90, 169, 240, .22) !important;
  color: #C4E1FB !important;
  border-color: rgba(90, 169, 240, .72) !important;
}

/* —— 静音 / 音量：紫调，跟声音绑定 —— */
body .control-page button[data-lx="mute"],
body .ant-layout-content button[data-lx="mute"] {
  background: rgba(167, 139, 250, .10) !important;
  color: #C4B0FC !important;
  border-color: rgba(167, 139, 250, .38) !important;
}
body .control-page button[data-lx="mute"]:hover,
body .ant-layout-content button[data-lx="mute"]:hover {
  background: rgba(167, 139, 250, .22) !important;
  color: #DFD4FF !important;
  border-color: rgba(167, 139, 250, .72) !important;
}

/* —— 普通功能：保持中性深蓝灰 —— */
body .control-page button[data-lx="plain"],
body .ant-layout-content button[data-lx="plain"] {
  background: #1E2A39 !important;
  background-image: none !important;
  color: #E2EAF4 !important;
  border-color: #33445A !important;
}
body .control-page button[data-lx="plain"]:hover,
body .ant-layout-content button[data-lx="plain"]:hover {
  background: #27374A !important;
  color: #FFFFFF !important;
  border-color: #4A5F78 !important;
}

/* —— 金色主按钮优先，不被语义色覆盖 —— */
body .control-page button[data-lx="primary"],
body .control-page .sidebar-btn.primary,
body .control-page .sidebar-btn-sm.primary,
body .control-page .ctrl-btn.primary {
  background: linear-gradient(135deg, #E8CE93, #C8A96A 58%, #A8873F) !important;
  color: #10161F !important;
  border-color: rgba(200, 169, 106, .85) !important;
  font-weight: 700 !important;
}
body .control-page button[data-lx="primary"]:hover {
  filter: brightness(1.08) !important;
  color: #10161F !important;
}

/* —— 禁用态：统一压成哑色，不再分色 —— */
body .control-page button[data-lx="off"],
body .control-page button:disabled {
  background: #171F2A !important;
  background-image: none !important;
  color: #8E9FB2 !important;
  border-color: #2A3644 !important;
  box-shadow: none !important;
  opacity: 1 !important;
  filter: none !important;
}
body .control-page .sidebar-btn.primary:disabled,
body .control-page .sidebar-btn-sm.primary:disabled {
  background: #2A2418 !important;
  color: #C0A874 !important;
  border-color: #4A3F26 !important;
}

/* ================= 15. 顶部标签栏按工作区上色 ================= */
body .control-page .ctrl-custom-tab {
  color: #A9B8C9 !important;
  background: transparent !important;
  border-width: 0 0 2px 0 !important;
  border-style: solid !important;
  border-color: transparent !important;
  border-radius: 0 !important;
  transition: color .16s ease, border-color .16s ease, background .16s ease !important;
}
body .control-page .ctrl-custom-tab:hover { background: rgba(255, 255, 255, .04) !important; color: #E8EEF6 !important; }

body .control-page .ctrl-custom-tab[data-lxtab="t-adb"]   { --lx-tab: #5AA9F0; }
body .control-page .ctrl-custom-tab[data-lxtab="t-ai"]    { --lx-tab: #A78BFA; }
body .control-page .ctrl-custom-tab[data-lxtab="t-app"]   { --lx-tab: #34D399; }
body .control-page .ctrl-custom-tab[data-lxtab="t-key"]   { --lx-tab: #F0BE6E; }
body .control-page .ctrl-custom-tab[data-lxtab="t-log"]   { --lx-tab: #8B9EB4; }
body .control-page .ctrl-custom-tab[data-lxtab="t-sms"]   { --lx-tab: #7DD3FC; }
body .control-page .ctrl-custom-tab[data-lxtab="t-media"] { --lx-tab: #F472B6; }
body .control-page .ctrl-custom-tab[data-lxtab="t-perm"]  { --lx-tab: #FBBF24; }
body .control-page .ctrl-custom-tab[data-lxtab="t-other"] { --lx-tab: #8B9EB4; }

body .control-page .ctrl-custom-tab[data-lxtab] { color: var(--lx-tab) !important; }
body .control-page .ctrl-custom-tab[data-lxtab]:hover { border-color: rgba(255, 255, 255, .18) !important; }
body .control-page .ctrl-custom-tab.active[data-lxtab] {
  color: #FFFFFF !important;
  background: linear-gradient(180deg, transparent, color-mix(in srgb, var(--lx-tab) 16%, transparent)) !important;
  border-color: var(--lx-tab) !important;
  text-shadow: 0 0 12px color-mix(in srgb, var(--lx-tab) 55%, transparent) !important;
}

/* 标签栏容器：去掉原来的白灰描边，改成细金分割 */
body .control-page .ctrl-tabs-bar,
body .control-page .ctrl-tabs-custom,
body .control-page .ctrl-tabs-nav {
  background: #0B111A !important;
  border-color: #1E2A38 !important;
  box-shadow: inset 0 -1px 0 rgba(200, 169, 106, .14) !important;
}

/* ---------- 16. 分色提权 ----------
   第 13 节的行内匹配 (0,3,2) 压住了第 14 节的 (0,2,2)，
   这里把 data-lx 再多叠一个属性选择器凑到 (0,3,2)，靠书写顺序取胜。 */

body .control-page button[data-lx="danger"][data-lx],
body .ant-layout-content button[data-lx="danger"][data-lx] {
  background: rgba(239, 83, 80, .12) !important;
  background-image: none !important;
  color: #FFA6A4 !important;
  border-color: rgba(239, 83, 80, .46) !important;
}
body .control-page button[data-lx="warn"][data-lx],
body .ant-layout-content button[data-lx="warn"][data-lx] {
  background: rgba(232, 163, 61, .12) !important;
  background-image: none !important;
  color: #F3C77F !important;
  border-color: rgba(232, 163, 61, .44) !important;
}
body .control-page button[data-lx="success"][data-lx],
body .ant-layout-content button[data-lx="success"][data-lx] {
  background: rgba(52, 211, 153, .12) !important;
  background-image: none !important;
  color: #7BEBBF !important;
  border-color: rgba(52, 211, 153, .42) !important;
}
body .control-page button[data-lx="info"][data-lx],
body .ant-layout-content button[data-lx="info"][data-lx] {
  background: rgba(90, 169, 240, .12) !important;
  background-image: none !important;
  color: #96CBF8 !important;
  border-color: rgba(90, 169, 240, .42) !important;
}
body .control-page button[data-lx="mute"][data-lx],
body .ant-layout-content button[data-lx="mute"][data-lx] {
  background: rgba(167, 139, 250, .12) !important;
  background-image: none !important;
  color: #CDBBFD !important;
  border-color: rgba(167, 139, 250, .42) !important;
}
body .control-page button[data-lx="plain"][data-lx],
body .ant-layout-content button[data-lx="plain"][data-lx] {
  background: #1E2A39 !important;
  background-image: none !important;
  color: #E2EAF4 !important;
  border-color: #33445A !important;
}
body .control-page button[data-lx="plain"][data-lx]:hover {
  background: #27374A !important;
  color: #FFFFFF !important;
  border-color: #4A5F78 !important;
}

/* 悬停同样提权 */
body .control-page button[data-lx="danger"][data-lx]:hover { background: rgba(239, 83, 80, .26) !important; color: #FFD8D7 !important; border-color: rgba(239, 83, 80, .82) !important; }
body .control-page button[data-lx="warn"][data-lx]:hover   { background: rgba(232, 163, 61, .26) !important; color: #FFE3B8 !important; border-color: rgba(232, 163, 61, .82) !important; }
body .control-page button[data-lx="success"][data-lx]:hover{ background: rgba(52, 211, 153, .26) !important; color: #B6F7DA !important; border-color: rgba(52, 211, 153, .80) !important; }
body .control-page button[data-lx="info"][data-lx]:hover   { background: rgba(90, 169, 240, .26) !important; color: #D2E8FD !important; border-color: rgba(90, 169, 240, .80) !important; }
body .control-page button[data-lx="mute"][data-lx]:hover   { background: rgba(167, 139, 250, .26) !important; color: #E6DCFF !important; border-color: rgba(167, 139, 250, .80) !important; }

/* 金色主按钮 / 禁用态同步提权 */
body .control-page button[data-lx="primary"][data-lx],
body .control-page .sidebar-btn.primary,
body .control-page .sidebar-btn-sm.primary {
  background: linear-gradient(135deg, #E8CE93, #C8A96A 58%, #A8873F) !important;
  background-image: linear-gradient(135deg, #E8CE93, #C8A96A 58%, #A8873F) !important;
  color: #10161F !important;
  border-color: rgba(200, 169, 106, .85) !important;
}
body .control-page button[data-lx="off"][data-lx],
body .control-page button[data-lx="off"][data-lx]:hover {
  background: #171F2A !important;
  background-image: none !important;
  color: #8E9FB2 !important;
  border-color: #2A3644 !important;
}
/* 图标小圆点跟随语义色 */
body .control-page button[data-lx="danger"][data-lx]  span[style*="background"] { background: #EF5350 !important; }
body .control-page button[data-lx="success"][data-lx] span[style*="background"] { background: #34D399 !important; }
body .control-page button[data-lx="warn"][data-lx]    span[style*="background"] { background: #E8A33D !important; }
body .control-page button[data-lx="info"][data-lx]    span[style*="background"] { background: #5AA9F0 !important; }
body .control-page button[data-lx="mute"][data-lx]    span[style*="background"] { background: #A78BFA !important; }
