/* Unified light theme override, 2026-09-20. Loaded after the compiled bundle. */
:root,
:root[data-theme="dark"],
:root[data-theme="light"] {
  color-scheme: light !important;
  --fc-bg: #f7f9fc !important;
  --fc-bg-deep: #eef2f7 !important;
  --fc-surface: #ffffff !important;
  --fc-surface-hi: #f8fafc !important;
  --fc-elevated: #ffffff !important;
  --fc-bg-body: #f4f7fb !important;
  --fc-bg-root: #eef2f7 !important;
  --fc-bg-shell: #f7f9fc !important;
  --fc-bg-panel: #ffffff !important;
  --fc-bg-sidebar: #ffffff !important;
  --fc-bg-topbar: #ffffff !important;
  --fc-bg-page: #f4f7fb !important;
  --fc-text: #334155 !important;
  --fc-text-hi: #0f172a !important;
  --fc-text-lo: #64748b !important;
  --fc-text-mute: #64748b !important;
  --fc-text-secondary: #334155 !important;
  --fc-text-muted: #64748b !important;
  --fc-text-topbar: #334155 !important;
  --fc-text-topbar-muted: #64748b !important;
  --fc-border: #d8e1ec !important;
  --fc-border-soft: #e7edf4 !important;
  --fc-border-hi: #cbd5e1 !important;
  --fc-input-bg: #f8fafc !important;
  --fc-hover-bg: #f1f5f9 !important;
  --fc-table-row-border: #e7edf4 !important;
  --fc-th-bg: #f8fafc !important;
  --fc-sidebar-nav: #334155 !important;
  --fc-sidebar-nav-hover: #0f172a !important;
  --fc-sidebar-active-bg: #fff1f2 !important;
  --fc-sidebar-active-border: #fecdd3 !important;
  --fc-scrollbar: #cbd5e1 !important;
  --fc-toast-bg: #ffffff !important;
  --fc-toast-border: #d8e1ec !important;
  --fc-toast-text: #0f172a !important;
  --fc-form-label: #334155 !important;
  --fc-form-hint: #64748b !important;
  --fc-shadow-sm: 0 1px 3px rgba(15, 23, 42, .08), 0 1px 2px rgba(15, 23, 42, .04) !important;
  --fc-shadow: 0 6px 18px rgba(15, 23, 42, .09) !important;
  --fc-shadow-lg: 0 14px 32px rgba(15, 23, 42, .12) !important;
  --fc-shadow-xl: 0 24px 50px rgba(15, 23, 42, .14) !important;
  --soy-bg: #f4f7fb !important;
  --soy-card: #ffffff !important;
  --soy-border: #d8e1ec !important;
  --soy-border-soft: #e7edf4 !important;
  --soy-text: #0f172a !important;
  --soy-text-2: #334155 !important;
  --soy-muted: #64748b !important;
  --soy-shadow: 0 4px 16px rgba(15, 23, 42, .08) !important;
  --lg-bg-1: #f4f7fb !important;
  --lg-bg-2: #eef2f7 !important;
  --lg-bg-3: #ffffff !important;
  --lg-white: #ffffff !important;
  --lg-text: #0f172a !important;
  --lg-text-2: #475569 !important;
  --lg-text-3: #64748b !important;
  --lg-border: #cbd5e1 !important;
  --lg-shadow-sm: 0 1px 3px rgba(15, 23, 42, .08) !important;
  --lg-shadow: 0 8px 24px rgba(15, 23, 42, .10) !important;
  --lg-shadow-lg: 0 14px 34px rgba(15, 23, 42, .12) !important;
  --lg-shadow-xl: 0 24px 54px rgba(15, 23, 42, .16) !important;
}

html, body, #root, .ant-app, .ant-layout, .ant-layout-content {
  background: #f4f7fb !important;
  color: #334155 !important;
}

body { color-scheme: light !important; }
::selection { background: #fecdd3 !important; color: #881337 !important; }

/* Login —— 2026-10-22 换肤：与 demo.kuailianxiazzd.eu.cc 登录页一致的暗色玻璃拟态 + 蓝紫渐变 */
.login-page {
  background:
    radial-gradient(circle at 18% 18%, rgba(56, 189, 248, .22), transparent 28%),
    radial-gradient(circle at 82% 22%, rgba(99, 102, 241, .18), transparent 30%),
    linear-gradient(115deg, rgba(2, 6, 23, .72), rgba(8, 13, 31, .88)),
    url('/img/login-bg.jpg') !important;
  background-size: cover !important;
  background-position: center !important;
  background-attachment: fixed !important;
  background-repeat: no-repeat !important;
  color: #e2e8f0 !important;
}
.login-container {
  width: 460px !important;
  max-width: calc(100vw - 40px) !important;
  min-height: 0 !important;
  display: block !important;
  background: linear-gradient(145deg, rgba(15, 23, 42, .82), rgba(2, 6, 23, .72)) !important;
  border: 1px solid rgba(148, 163, 184, .26) !important;
  border-radius: 28px !important;
  box-shadow: 0 34px 90px rgba(0, 0, 0, .62), 0 0 0 1px rgba(125, 211, 252, .16), inset 0 1px 0 rgba(255, 255, 255, .18) !important;
  -webkit-backdrop-filter: blur(20px) !important;
  backdrop-filter: blur(20px) !important;
  overflow: hidden !important;
}
.login-container .login-brand { display: none !important; }
.login-page .deco-circle-1 { background: radial-gradient(circle, rgba(34, 211, 238, .28), transparent 70%) !important; filter: blur(90px) !important; }
.login-page .deco-circle-2 { background: radial-gradient(circle, rgba(124, 58, 237, .24), transparent 70%) !important; filter: blur(90px) !important; }
.login-page .deco-circle-3 { background: radial-gradient(circle, rgba(37, 99, 235, .22), transparent 70%) !important; filter: blur(90px) !important; }
.login-page .deco-grid {
  background-image:
    linear-gradient(rgba(148, 163, 184, .07) 1px, transparent 1px),
    linear-gradient(90deg, rgba(148, 163, 184, .07) 1px, transparent 1px) !important;
  background-size: 60px 60px !important;
  opacity: .55 !important;
}
.login-form-section {
  background: transparent !important;
  padding: 44px 38px 38px !important;
}
.login-form-wrapper { max-width: 100% !important; }
.login-form-header { display: none !important; }
.login-form-wrapper::before {
  content: "雄域私人定制";
  display: block;
  padding-top: 76px;
  margin: 0 auto 34px;
  text-align: center;
  color: #f8fafc;
  font-size: 28px;
  font-weight: 900;
  letter-spacing: .2px;
  text-shadow: 0 10px 30px rgba(37, 99, 235, .35);
  background: url('/zhuque-klx.svg') top center / 58px 58px no-repeat;
}
.login-page .ant-input-affix-wrapper,
.login-page .ant-input,
.login-page input {
  background: rgba(2, 6, 23, .55) !important;
  color: #e2e8f0 !important;
  border: 1px solid rgba(148, 163, 184, .34) !important;
  border-radius: 14px !important;
  height: 46px !important;
  font-size: 15px !important;
  box-shadow: none !important;
}
.login-page .ant-input-affix-wrapper .ant-input,
.login-page .ant-input-affix-wrapper input {
  height: auto !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  padding-left: 0 !important;
  box-shadow: none !important;
}
.login-page .ant-input-prefix { margin-inline-end: 8px !important; color: rgba(148, 163, 184, .9) !important; }
.login-page .ant-input-prefix svg,
.login-page .ant-input-suffix svg { width: 15px !important; height: 15px !important; }
.login-page .ant-input-affix-wrapper:hover,
.login-page .ant-input-affix-wrapper-focused {
  border-color: rgba(34, 211, 238, .72) !important;
  box-shadow: 0 0 0 3px rgba(34, 211, 238, .14) !important;
}
.login-page input::placeholder { color: rgba(148, 163, 184, .72) !important; }
.login-page .ant-form-item { margin-bottom: 18px !important; }
.login-page .login-button,
.login-page .ant-btn-primary {
  position: relative !important;
  overflow: hidden !important;
  height: 48px !important;
  font-size: 16px !important;
  font-weight: 800 !important;
  border-radius: 14px !important;
  background: linear-gradient(135deg, #22d3ee 0%, #2563eb 46%, #7c3aed 100%) !important;
  border: 1px solid rgba(255, 255, 255, .18) !important;
  box-shadow: 0 16px 34px rgba(37, 99, 235, .38), 0 0 26px rgba(34, 211, 238, .18) !important;
  color: #fff !important;
}
.login-page .login-button:hover:not(:disabled) {
  filter: brightness(1.08) !important;
  transform: translateY(-1px) !important;
}
.login-page .form-options,
.login-page .form-options .ant-checkbox-wrapper { color: rgba(226, 232, 240, .78) !important; font-size: 13px !important; }
.login-page .forgot-link { color: rgba(125, 211, 252, .9) !important; }
.login-page .form-footer { border-top: 1px solid rgba(148, 163, 184, .18) !important; color: rgba(148, 163, 184, .7) !important; }
.login-page .form-footer span { color: rgba(148, 163, 184, .7) !important; }
.login-page .checkbox-mark { background: rgba(2, 6, 23, .55) !important; border-color: rgba(148, 163, 184, .5) !important; }
.login-page .ant-checkbox-inner {
  background: rgba(2, 6, 23, .55) !important;
  border-color: rgba(148, 163, 184, .5) !important;
}
.login-page .ant-checkbox-checked .ant-checkbox-inner {
  background: linear-gradient(135deg, #22d3ee, #2563eb) !important;
  border-color: transparent !important;
}
.login-page .ant-form-item-explain-error { color: #f87171 !important; }
.login-page .ant-message-notice-content {
  background: rgba(15, 23, 42, .92) !important;
  color: #e2e8f0 !important;
  border: 1px solid rgba(148, 163, 184, .26) !important;
}
.login-page .login-step-panel,
.login-page .bind-tip { color: rgba(226, 232, 240, .78) !important; }
.login-page .ant-btn-link { color: rgba(125, 211, 252, .9) !important; }
.login-page::after {
  content: "雄域私人定制 · 全域设备管控平台";
  position: fixed;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 40px;
  line-height: 40px;
  text-align: center;
  color: rgba(255, 255, 255, .88);
  font-family: Arial, sans-serif;
  font-size: 12px;
  letter-spacing: 1px;
  text-shadow: 0 2px 4px rgba(0, 0, 0, .5);
  z-index: 999;
  pointer-events: none;
}


/* Ant Design shell and common surfaces */
.ant-layout-header,
.ant-layout-sider,
.ant-layout-sider-dark,
.ant-layout-sider-children { background: #ffffff !important; color: #334155 !important; }
.ant-layout-header {
  border-bottom: 1px solid #d8e1ec !important;
  box-shadow: 0 2px 10px rgba(15, 23, 42, .06) !important;
}
.ant-layout-sider { border-right: 1px solid #d8e1ec !important; }
.brand-lockup { border-bottom-color: #e7edf4 !important; }
.brand-lockup-name { color: #0f172a !important; }
.brand-lockup-sub { color: #64748b !important; }
.ant-menu, .ant-menu-light, .ant-menu-sub, .ant-menu-inline { background: #ffffff !important; color: #475569 !important; }
.ant-menu-item, .ant-menu-submenu-title { color: #475569 !important; }
.ant-menu-item:hover, .ant-menu-submenu-title:hover { background: #f1f5f9 !important; color: #0f172a !important; }
.ant-menu-item-selected { background: #fff1f2 !important; color: #be123c !important; }
.ant-menu-item-selected::after { border-right-color: #e63946 !important; }
.ant-card, .ant-card-bordered, .ant-table-wrapper, .ant-table, .ant-table-container,
.ant-table-content, .ant-modal-content, .ant-drawer-content, .ant-drawer-header,
.ant-popover-inner, .ant-dropdown-menu, .ant-select-dropdown, .ant-picker-panel-container,
.ant-tooltip-inner {
  background: #ffffff !important;
  color: #334155 !important;
  border-color: #d8e1ec !important;
}
.ant-card-head, .ant-modal-header, .ant-modal-footer, .ant-table-thead > tr > th {
  background: #f8fafc !important;
  color: #0f172a !important;
  border-color: #d8e1ec !important;
}
.ant-table-tbody > tr > td { background: #ffffff !important; color: #334155 !important; border-color: #e7edf4 !important; }
.ant-table-tbody > tr:hover > td { background: #f8fafc !important; }
.ant-typography, .ant-modal-title, .ant-drawer-title, .ant-form-item-label > label,
.ant-radio-wrapper, .ant-checkbox-wrapper { color: #334155 !important; }
.ant-input, .ant-input-affix-wrapper, .ant-input-number, .ant-picker,
.ant-select-selector, .ant-segmented {
  background: #f8fafc !important;
  color: #0f172a !important;
  border-color: #cbd5e1 !important;
}
.ant-input::placeholder, .ant-input input::placeholder { color: #94a3b8 !important; }
.ant-select-selection-item, .ant-select-selection-placeholder, .ant-select-arrow { color: #475569 !important; }
.ant-btn-default { background: #ffffff !important; color: #334155 !important; border-color: #cbd5e1 !important; box-shadow: none !important; }
.ant-btn-default:hover { background: #f8fafc !important; color: #be123c !important; border-color: #e63946 !important; }
.ant-btn-primary { color: #ffffff !important; }
.ant-pagination-item { background: #ffffff !important; border-color: #cbd5e1 !important; }
.ant-pagination-item a { color: #334155 !important; }
.ant-pagination-item-active { border-color: #e63946 !important; }
.ant-empty-description { color: #64748b !important; }

/* Dashboard and custom components */
.dashboard-root { background: linear-gradient(180deg, #f7f9fc, #eef2f7) !important; color: #334155 !important; }
.dashboard-topbar, .rc-sidebar, .dashboard-hero, .rc-device-toolbar, .rc-table-wrap,
.device-card, .panel, .rc-header-elevated, .s-card, .admin-add-form, .rc-pagination {
  background: #ffffff !important;
  border-color: #d8e1ec !important;
  box-shadow: 0 4px 16px rgba(15, 23, 42, .08) !important;
}
.dashboard-hero h1, .rc-logo, .rc-header, .rc-header-elevated, .panel h3, .panel h4,
.admin-head h3, .modal-title, .modal-head, .s-card .s-val, .topbar-clock,
.rc-table td, .rc-table-dense td, .dc-row span:last-child {
  color: #0f172a !important;
  text-shadow: none !important;
}
.dashboard-hero p, .rc-top-left span, .td-muted, .td-sm, .dc-label, .modal-label,
.placeholder-panel, .s-card .s-title { color: #64748b !important; }
.topbar-user, .topbar-online, .topbar-tz, .rc-sidebar nav button { color: #475569 !important; }
.rc-sidebar nav button:hover { background: #f1f5f9 !important; color: #0f172a !important; }
.rc-sidebar nav button.on { background: #fff1f2 !important; color: #be123c !important; border-color: #fecdd3 !important; }
.rc-table th, .rc-table-dense th { background: #f8fafc !important; color: #334155 !important; border-color: #d8e1ec !important; }
.rc-table td, .rc-table-dense td { background: #ffffff !important; border-color: #e7edf4 !important; }
.rc-table tr:hover td, .rc-table-dense tr:hover td { background: #f8fafc !important; }
.rc-search, .rc-top-right select, .view-toggle, .sel-badge, .hero-meta span,
.rc-main input:not([type=checkbox]):not([type=radio]), .rc-main select, .rc-main textarea {
  background: #f8fafc !important;
  border-color: #cbd5e1 !important;
  color: #0f172a !important;
  box-shadow: none !important;
}
.panel, .panel span, .panel div, .panel label, .panel td { color: #334155; }
.panel h3, .panel h4, .panel strong, .panel b { color: #0f172a !important; }

/* Full device-control page */
.control-page, .ctrl-screen-area { background: #f4f7fb !important; color: #334155 !important; }
.ctrl-header, .ctrl-tabs, .ctrl-toolbar, .ctrl-sidebar, .ctrl-sidebar-panel, .ctrl-quick-panel {
  background: #ffffff !important;
  border-color: #d8e1ec !important;
}
.ctrl-header-brand, .ctrl-tab-panel-head h2, .ctrl-sidebar h3, .ctrl-device-row .device-name,
.sidebar-card-head { color: #0f172a !important; }
.ctrl-time-row, .ctrl-ws-status, .ctrl-ws-status.connected, .ctrl-device-row label { color: #64748b !important; }
.ctrl-tab { background: #f8fafc !important; color: #475569 !important; border-color: #d8e1ec !important; }
.ctrl-tab:hover { background: #fff1f2 !important; color: #be123c !important; border-color: #fecdd3 !important; }
.ctrl-tab.active { background: #ffe4e6 !important; color: #9f1239 !important; border-color: #fda4af !important; box-shadow: none !important; }
.ctrl-tab-panel-head p, .ctrl-empty-inline { color: #64748b !important; }
.ctrl-device-list, .sidebar-card {
  background: #ffffff !important;
  border-color: #d8e1ec !important;
  box-shadow: 0 2px 8px rgba(15, 23, 42, .06) !important;
}
.ctrl-device-row:hover { background: #f1f5f9 !important; }
.ctrl-device-row span { color: #334155 !important; }
.sidebar-card-head { background: #f8fafc !important; border-color: #d8e1ec !important; }
.sidebar-divider { background: #e7edf4 !important; }
.sidebar-input, .sidebar-textarea, .ctrl-input { background: #f8fafc !important; color: #0f172a !important; border-color: #cbd5e1 !important; }
.sidebar-input::placeholder, .sidebar-textarea::placeholder, .ctrl-input::placeholder { color: #94a3b8 !important; }
.sidebar-btn:not(.is-on), .sidebar-btn-sm:not(.is-on), .ctrl-qbtn:not(.is-on),
.ctrl-btn:not(.primary):not(.danger), .ctrl-tab-action {
  background: #ffffff !important;
  color: #334155 !important;
  border-color: #cbd5e1 !important;
  box-shadow: none !important;
}
.sidebar-btn:not(.is-on):hover, .sidebar-btn-sm:not(.is-on):hover,
.ctrl-qbtn:not(.is-on):hover, .ctrl-btn:not(.primary):not(.danger):hover,
.ctrl-tab-action:hover {
  background: #f8fafc !important;
  color: #be123c !important;
  border-color: #e63946 !important;
}
.ctrl-log-row { background: #ffffff !important; color: #334155 !important; border-color: #d8e1ec !important; }

/* Dialogs, menus and administration forms */
.modal-overlay { background: rgba(15, 23, 42, .28) !important; }
.modal, .modal-beautiful, .modal-content {
  background: #ffffff !important;
  color: #334155 !important;
  border-color: #d8e1ec !important;
  box-shadow: 0 24px 64px rgba(15, 23, 42, .20) !important;
}
.modal-head, .modal-footer { background: #ffffff !important; border-color: #e7edf4 !important; }
.modal-label, .modal-switch-text, .perm-item { color: #475569 !important; }
.modal-input, .role-select { background: #f8fafc !important; color: #0f172a !important; border-color: #cbd5e1 !important; }
.modal-input::placeholder { color: #94a3b8 !important; }
.modal-section-title { color: #7c3aed !important; border-color: #e9d5ff !important; }
.expire-preset-btn, .perm-quick-btn { background: #faf5ff !important; color: #6d28d9 !important; border-color: #d8b4fe !important; }
.expire-preset-btn:hover, .expire-preset-btn.active, .perm-quick-btn:hover { background: #f3e8ff !important; color: #581c87 !important; border-color: #c084fc !important; }
.modal-btn-cancel { background: #fff1f2 !important; color: #be123c !important; border-color: #fecdd3 !important; }
.fc-card, .fc-table-wrap, .fc-stat, .fc-toast { background: #ffffff !important; color: #334155 !important; border-color: #d8e1ec !important; box-shadow: var(--fc-shadow-sm) !important; }
.fc-card-title, .fc-empty-title, .fc-stat-value { color: #0f172a !important; }
.fc-input, .fc-select, .fc-textarea { background: #f8fafc !important; color: #0f172a !important; border-color: #cbd5e1 !important; }
.fc-btn--secondary, .fc-btn--ghost { background: #ffffff !important; color: #334155 !important; border-color: #cbd5e1 !important; }
.fc-btn--secondary:hover, .fc-btn--ghost:hover { background: #f8fafc !important; color: #be123c !important; border-color: #e63946 !important; }

/* Device previews display real pixels and intentionally remain black. */
.ctrl-phone-frame, .ctrl-phone-screen, .ctrl-phone-nav, .apk-phone-preview { background: #0a0a0a !important; }
.ctrl-phone-nav { border-color: rgba(255, 255, 255, .12) !important; }
.ctrl-phone-nav button { color: #ffffff !important; }

/* Compiled React views use inline dark palette values; map those values to light surfaces. */
.ant-layout-content [style*="background: rgb(36, 18, 18)"],
.ant-layout-content [style*="background: rgb(26, 10, 10)"],
.ant-layout-content [style*="background: rgb(15, 6, 6)"] {
  background: #ffffff !important;
}
.ant-layout-content [style*="background: rgb(46, 22, 22)"],
.ant-layout-content [style*="background: rgba(255, 255, 255, 0.06)"],
.ant-layout-content [style*="background: rgba(255,255,255,.06)"] {
  background: #f8fafc !important;
}
.ant-layout-content [style*="border: 1px solid rgb(58, 32, 32)"],
.ant-layout-content [style*="border-bottom: 1px solid rgb(58, 32, 32)"],
.ant-layout-content [style*="border-top: 1px solid rgb(58, 32, 32)"],
.ant-layout-content [style*="border-color: rgb(58, 32, 32)"],
.ant-layout-content [style*="border-left-color: rgb(58, 32, 32)"] {
  border-color: #d8e1ec !important;
}
.ant-layout-content [style*="color: rgb(229, 213, 213)"] { color: #0f172a !important; }
.ant-layout-content [style*="color: rgb(201, 169, 169)"] { color: #64748b !important; }
.ant-layout-content [style*="color: rgb(154, 122, 122)"] { color: #94a3b8 !important; }
.ant-layout-content [style*="box-shadow: rgba(0, 0, 0, 0.32)"] {
  box-shadow: 0 4px 14px rgba(15, 23, 42, .08) !important;
}
.ant-layout-content button[style*="background: #ffffff"],
.ant-layout-content button[style*="background: rgb(255, 255, 255)"],
.ant-layout-content button[style*="background: #f8fafc"],
.ant-layout-content button[style*="background: rgb(248, 250, 252)"] {
  color: #334155 !important;
}
.ant-layout-content button:disabled {
  background: #f1f5f9 !important;
  color: #94a3b8 !important;
  border-color: #d8e1ec !important;
  opacity: 1 !important;
}
.ant-layout-content input,
.ant-layout-content select,
.ant-layout-content textarea {
  background: #ffffff !important;
  color: #0f172a !important;
  border-color: #cbd5e1 !important;
}
.ant-layout-content input::placeholder,
.ant-layout-content textarea::placeholder { color: #94a3b8 !important; }
.ant-tag-success {
  background: #ecfdf5 !important;
  color: #047857 !important;
  border-color: #a7f3d0 !important;
}

/* Restore intentional dark phone-preview chrome after inline palette mapping. */
.ant-layout-content .ctrl-phone-frame,
.ant-layout-content .ctrl-phone-screen,
.ant-layout-content .ctrl-phone-nav,
.ant-layout-content .apk-phone-preview { background: #0a0a0a !important; }
.ant-layout-content .ctrl-phone-nav button { background: transparent !important; color: #ffffff !important; }

/* Remaining Ant component states */
.ant-table-placeholder,
.ant-table-placeholder > td,
.ant-table-placeholder:hover > td {
  background: #ffffff !important;
  color: #64748b !important;
}
.ant-segmented-item { color: #475569 !important; }
.ant-segmented-item-selected {
  background: #ffffff !important;
  color: #0f172a !important;
  box-shadow: 0 1px 4px rgba(15, 23, 42, .12) !important;
}
.ant-tag-gold { background: #fffbeb !important; color: #a16207 !important; border-color: #fde68a !important; }
.ant-tag-purple { background: #faf5ff !important; color: #7e22ce !important; border-color: #e9d5ff !important; }
.ant-tag:not(.ant-tag-success):not(.ant-tag-gold):not(.ant-tag-purple) {
  background: #f8fafc;
  color: #475569;
  border-color: #d8e1ec;
}
.ant-dropdown-menu-item,
.ant-dropdown-menu-title-content,
.ant-dropdown-menu-item .anticon {
  color: #334155 !important;
}
.ant-dropdown-menu-item:hover { background: #f1f5f9 !important; }

/* Device-control workspace: override its compiled inline dark palette. */
.control-page .home-tab-topbar,
.control-page .ctrl-tabs-bar,
.control-page .ctrl-tabs-custom,
.control-page [style*="background: rgb(36, 18, 18)"],
.control-page [style*="background:#241212"] {
  background: #ffffff !important;
  border-color: #d8e1ec !important;
}
.control-page .ctrl-device-row.topbar-item,
.control-page [style*="background: rgb(46, 22, 22)"],
.control-page [style*="background:#2e1616"] {
  background: #f8fafc !important;
  border-color: #d8e1ec !important;
}
.control-page [style*="background: rgb(58, 32, 32)"],
.control-page [style*="background:#3a2020"] {
  background: #f1f5f9 !important;
  border-color: #cbd5e1 !important;
}
.control-page [style*="background: rgb(10, 10, 10)"],
.control-page [style*="background: rgb(0, 0, 0)"],
.control-page [style*="background:#0a0a0a"],
.control-page [style*="background:#000"] {
  background: #f8fafc !important;
}
.control-page [style*="border: 1px solid rgb(58, 32, 32)"],
.control-page [style*="border-bottom: 1px solid rgb(58, 32, 32)"],
.control-page [style*="border-top: 1px solid rgb(58, 32, 32)"],
.control-page [style*="border-color: rgb(58, 32, 32)"],
.control-page [style*="border-left-color: rgb(58, 32, 32)"] {
  border-color: #d8e1ec !important;
}
.control-page [style*="color: rgb(229, 213, 213)"],
.control-page [style*="color: rgb(255, 242, 242)"] { color: #0f172a !important; }
.control-page [style*="color: rgb(201, 169, 169)"],
.control-page [style*="color: rgb(154, 122, 122)"] { color: #64748b !important; }
.control-page button[style*="background: rgb(58, 32, 32)"],
.control-page button[style*="background:#3a2020"],
.control-page button[style*="background: rgb(51, 65, 85)"],
.control-page button[style*="background:#334155"] {
  background: #ffffff !important;
  color: #334155 !important;
  border-color: #cbd5e1 !important;
  box-shadow: none !important;
}
.control-page button[style*="background: rgb(58, 32, 32)"]:hover,
.control-page button[style*="background: rgb(51, 65, 85)"]:hover {
  background: #fff1f2 !important;
  color: #be123c !important;
  border-color: #e63946 !important;
}
.control-page button:disabled {
  background: #f1f5f9 !important;
  color: #94a3b8 !important;
  border-color: #d8e1ec !important;
}
.control-page input:not([type=color]):not([type=range]),
.control-page select,
.control-page textarea {
  background: #ffffff !important;
  color: #0f172a !important;
  border-color: #cbd5e1 !important;
}
.control-page input::placeholder,
.control-page textarea::placeholder { color: #94a3b8 !important; }
.control-page .trojan-screens > div,
.control-page .trojan-control-panel > div {
  border-color: #d8e1ec !important;
  box-shadow: none !important;
}
.control-page .ctrl-tabs-custom .ctrl-custom-tab { color: #475569 !important; }
.control-page .ctrl-tabs-custom .ctrl-custom-tab:hover { background: #f1f5f9 !important; color: #0f172a !important; }
.control-page .ctrl-tabs-custom .ctrl-custom-tab.active { background: #fff1f2 !important; color: #be123c !important; border-color: #e63946 !important; }

/* Real phone pixels remain untouched when a live image is present. */
.control-page .ctrl-phone-screen:has(img),
.control-page .ctrl-phone-screen:has(canvas) { background: #0a0a0a !important; }

.control-page .home-tab-topbar-pwd {
  background: #fffbeb !important;
  background-image: none !important;
  border-color: #fde68a !important;
  box-shadow: none !important;
  color: #334155 !important;
}
.control-page .topbar-pwd-label { color: #a16207 !important; }
.control-page .topbar-pwd-value { color: #92400e !important; text-shadow: none !important; }

/* Application / injection workspace uses a standalone compiled palette. */
.control-page .inj-layout {
  background: #f4f7fb !important;
  color: #334155 !important;
}
.control-page .inj-panel,
.control-page .inj-panel-apps,
.control-page .inj-panel-col {
  background: #ffffff !important;
  color: #334155 !important;
  border-color: #d8e1ec !important;
  box-shadow: 0 2px 10px rgba(15, 23, 42, .06) !important;
}
.control-page .inj-panel-col {
  box-shadow: none !important;
}
.control-page .inj-panel-head {
  background: #f8fafc !important;
  color: #0f172a !important;
  border-color: #d8e1ec !important;
}
.control-page .inj-panel-title,
.control-page .inj-app-name,
.control-page .inj-app-name-txt,
.control-page .inj-cell-app,
.control-page .inj-cell-val {
  color: #0f172a !important;
}
.control-page .inj-title-count {
  background: #e2e8f0 !important;
  color: #334155 !important;
  border-color: #cbd5e1 !important;
}
.control-page .inj-searchbar {
  background: #ffffff !important;
  color: #334155 !important;
  border-color: #cbd5e1 !important;
  box-shadow: 0 1px 2px rgba(15, 23, 42, .04) !important;
}
.control-page .inj-searchbar:focus-within {
  border-color: #e63946 !important;
  box-shadow: 0 0 0 3px rgba(230, 57, 70, .12) !important;
}
.control-page .inj-searchbar input {
  background: transparent !important;
  color: #0f172a !important;
  border: 0 !important;
  box-shadow: none !important;
}
.control-page .inj-searchbar input::placeholder,
.control-page .inj-search-ic,
.control-page .inj-empty,
.control-page .inj-empty-ic {
  color: #64748b !important;
}
.control-page .inj-table-scroll {
  background: #ffffff !important;
  border-color: #d8e1ec !important;
}
.control-page .inj-table {
  background: #ffffff !important;
  color: #334155 !important;
}
.control-page .inj-table thead,
.control-page .inj-table thead tr,
.control-page .inj-table th {
  background: #f8fafc !important;
  color: #475569 !important;
  border-color: #d8e1ec !important;
}
.control-page .inj-table tbody,
.control-page .inj-table tbody tr,
.control-page .inj-table td {
  background: #ffffff !important;
  color: #334155 !important;
  border-color: #e7edf4 !important;
}
.control-page .inj-table tbody tr:hover,
.control-page .inj-table tbody tr:hover td {
  background: #f8fafc !important;
}
.control-page .inj-app-pkg,
.control-page .inj-app-ver,
.control-page .inj-cell-pkg,
.control-page .inj-cell-time,
.control-page .inj-page-info {
  color: #64748b !important;
}
.control-page .inj-val-mono { color: #334155 !important; }
.control-page .inj-pagination {
  background: #f8fafc !important;
  color: #475569 !important;
  border-color: #d8e1ec !important;
}
.control-page .inj-page-size,
.control-page .inj-page-btns button,
.control-page .inj-refresh-btn,
.control-page .inj-tool-btn {
  background: #ffffff !important;
  color: #334155 !important;
  border-color: #cbd5e1 !important;
  box-shadow: none !important;
}
.control-page .inj-page-size:hover,
.control-page .inj-page-btns button:not(:disabled):hover,
.control-page .inj-refresh-btn:not(:disabled):hover,
.control-page .inj-tool-btn:not(:disabled):hover {
  background: #fff1f2 !important;
  color: #be123c !important;
  border-color: #e63946 !important;
}
.control-page .inj-page-btns .inj-page-cur {
  background: #e63946 !important;
  color: #ffffff !important;
  border-color: #e63946 !important;
}
.control-page .inj-page-btns button:disabled,
.control-page .inj-refresh-btn:disabled,
.control-page .inj-tool-btn:disabled {
  background: #f1f5f9 !important;
  color: #94a3b8 !important;
  border-color: #d8e1ec !important;
  opacity: 1 !important;
}
.control-page .inj-fetch-btn {
  background: #e63946 !important;
  color: #ffffff !important;
  border-color: #e63946 !important;
  box-shadow: none !important;
}
.control-page .inj-fetch-btn:not(:disabled):hover {
  background: #c81e35 !important;
  color: #ffffff !important;
  border-color: #c81e35 !important;
}
.control-page .inj-fetch-btn:disabled {
  background: #f1f5f9 !important;
  color: #94a3b8 !important;
  border-color: #d8e1ec !important;
  opacity: 1 !important;
}
.control-page .inj-pill,
.control-page .inj-del-btn,
.control-page .inj-pill:hover,
.control-page .inj-del-btn:hover {
  color: #ffffff !important;
}
.control-page .inj-live-dot {
  border-color: #ffffff !important;
  box-shadow: 0 0 0 2px rgba(16, 185, 129, .18) !important;
}
.control-page .inj-app-ic,
.control-page .inj-app-ic-fb {
  background: #f1f5f9 !important;
  border-color: #d8e1ec !important;
}
.control-page .inj-btn-spinner-dark {
  border-color: rgba(51, 65, 85, .22) !important;
  border-top-color: #334155 !important;
}

/* ============================================================
   Sidebar 美化 · 深色玻璃导航栏（参考 MX-全球远程V9）2026-10-22
   仅作用于 antd Layout.Sider 导航栏，正文区域保持浅色
   ============================================================ */
:root {
  --sb-bg-1: #0a1220;
  --sb-bg-2: #0d1a2b;
  --sb-line: rgba(120, 190, 255, .10);
  --sb-text: #a9bdd4;
  --sb-text-hi: #eaf4ff;
  --sb-cyan: #35e0d0;
  --sb-accent: #e63946;
}

.ant-layout-sider,
.ant-layout-sider-dark,
.ant-layout-sider-children {
  background:
    radial-gradient(120% 60% at 50% -10%, rgba(53, 224, 208, .10), transparent 60%),
    linear-gradient(180deg, var(--sb-bg-1) 0%, var(--sb-bg-2) 55%, #081120 100%) !important;
  color: var(--sb-text) !important;
}

.ant-layout-sider {
  border-right: 1px solid rgba(120, 190, 255, .12) !important;
  box-shadow: 6px 0 26px rgba(5, 12, 24, .35) !important;
  overflow: hidden;
}

/* 顶部品牌区 */
.ant-layout-sider .brand-lockup {
  padding: 26px 16px 20px !important;
  border-bottom: 1px solid var(--sb-line) !important;
  margin-bottom: 10px !important;
  background: radial-gradient(70% 100% at 50% 0%, rgba(53, 224, 208, .10), transparent 70%) !important;
}
.ant-layout-sider .brand-lockup-logo {
  width: 60px !important;
  height: 60px !important;
  border-radius: 16px !important;
  padding: 6px;
  background: linear-gradient(160deg, rgba(53, 224, 208, .22), rgba(230, 57, 70, .18)) !important;
  box-shadow:
    0 0 0 1px rgba(120, 220, 255, .22),
    0 0 24px rgba(53, 224, 208, .28),
    0 10px 26px rgba(0, 0, 0, .45) !important;
}
.ant-layout-sider .brand-lockup-name {
  font-size: 23px !important;
  letter-spacing: 3px !important;
  margin-right: -3px !important;
  color: #f4f9ff !important;
  background: linear-gradient(135deg, #ffffff 0%, #cfefff 45%, #6fe9dc 100%) !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  text-shadow: 0 0 18px rgba(53, 224, 208, .35);
  filter: drop-shadow(0 0 10px rgba(53, 224, 208, .25));
}
.ant-layout-sider .brand-lockup-sub {
  font-size: 10px !important;
  letter-spacing: 3.5px !important;
  margin-right: -3.5px !important;
  color: #6f8aa6 !important;
  opacity: 1 !important;
}

/* 菜单容器 */
.ant-layout-sider .ant-menu,
.ant-layout-sider .ant-menu-light,
.ant-layout-sider .ant-menu-inline,
.ant-layout-sider .ant-menu-sub,
.ant-layout-sider .ant-menu-root {
  background: transparent !important;
  color: var(--sb-text) !important;
  padding: 4px 10px 18px !important;
}
.ant-layout-sider .ant-menu-inline > .ant-menu-item,
.ant-layout-sider .ant-menu-inline > .ant-menu-submenu > .ant-menu-submenu-title {
  width: auto !important;
  padding-left: 14px !important;
  margin: 4px 0 !important;
  border-radius: 10px !important;
  height: 42px !important;
  line-height: 42px !important;
  transition: background .18s ease, color .18s ease, box-shadow .18s ease !important;
}

/* 一级/二级文字 */
.ant-layout-sider .ant-menu-item,
.ant-layout-sider .ant-menu-submenu-title {
  color: var(--sb-text) !important;
  font-size: 13.5px !important;
  font-weight: 500;
  letter-spacing: .3px;
}
.ant-layout-sider .ant-menu-title-content { color: inherit !important; }
.ant-layout-sider .ant-menu-sub .ant-menu-item {
  height: 38px !important;
  line-height: 38px !important;
  font-size: 12.5px !important;
  color: #93a9c1 !important;
}

/* 图标：统一发光质感 */
.ant-layout-sider .ant-menu-item-icon,
.ant-layout-sider .ant-menu-item .anticon,
.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(53, 224, 208, .35));
}
.ant-layout-sider .ant-menu-item:hover .anticon,
.ant-layout-sider .ant-menu-submenu-title:hover .anticon {
  transform: translateY(-1px) scale(1.06);
}

/* 悬停态 */
.ant-layout-sider .ant-menu-item:hover,
.ant-layout-sider .ant-menu-submenu-title:hover {
  background: linear-gradient(90deg, rgba(53, 224, 208, .10), rgba(53, 224, 208, .02)) !important;
  color: var(--sb-text-hi) !important;
}

/* 选中态：青色描边 + 玻璃填充 + 右侧状态点（呼应参考图） */
.ant-layout-sider .ant-menu-item-selected {
  position: relative;
  background:
    linear-gradient(90deg, rgba(53, 224, 208, .16), rgba(53, 224, 208, .04)) !important;
  color: #7df3e4 !important;
  box-shadow:
    inset 0 0 0 1px rgba(53, 224, 208, .38),
    0 0 18px rgba(53, 224, 208, .16) !important;
}
.ant-layout-sider .ant-menu-item-selected .ant-menu-title-content { color: #7df3e4 !important; }
.ant-layout-sider .ant-menu-item-selected .anticon {
  filter: drop-shadow(0 0 8px rgba(53, 224, 208, .75));
}
.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: #2ee6a8;
  box-shadow: 0 0 0 3px rgba(46, 230, 168, .18), 0 0 12px rgba(46, 230, 168, .9);
}
.ant-layout-sider .ant-menu-item-selected::after { border-right-color: transparent !important; }

/* 子菜单展开区：轻微凹陷背景 + 左侧导轨 */
.ant-layout-sider .ant-menu-sub.ant-menu-inline {
  background: rgba(4, 10, 20, .45) !important;
  border-radius: 10px !important;
  margin: 2px 0 6px !important;
  padding: 4px 6px !important;
  box-shadow: inset 0 1px 0 rgba(120, 190, 255, .06);
}
.ant-layout-sider .ant-menu-sub .ant-menu-item {
  position: relative;
  padding-left: 22px !important;
  border-radius: 8px !important;
  margin: 2px 0 !important;
  height: 36px !important;
  line-height: 36px !important;
}
.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: #46617e;
  transition: background .18s ease, box-shadow .18s ease;
}
.ant-layout-sider .ant-menu-sub .ant-menu-item-selected::before {
  background: #2ee6a8;
  box-shadow: 0 0 8px rgba(46, 230, 168, .9);
  width: 5px;
  height: 5px;
  margin-top: -2.5px;
  left: 11.5px;
}
.ant-layout-sider .ant-menu-sub .ant-menu-item-selected {
  box-shadow: inset 0 0 0 1px rgba(53, 224, 208, .28) !important;
}

/* 展开箭头 */
.ant-layout-sider .ant-menu-submenu-arrow { color: #6f8aa6 !important; }
.ant-layout-sider .ant-menu-submenu-open > .ant-menu-submenu-title .ant-menu-submenu-arrow { color: #7df3e4 !important; }

/* 侧栏滚动条 */
.ant-layout-sider ::-webkit-scrollbar { width: 6px; }
.ant-layout-sider ::-webkit-scrollbar-thumb {
  background: rgba(120, 190, 255, .22);
  border-radius: 3px;
}
.ant-layout-sider ::-webkit-scrollbar-thumb:hover { background: rgba(53, 224, 208, .45); }
.ant-layout-sider ::-webkit-scrollbar-track { background: transparent; }

/* 折叠按钮/暗色触发区兜底 */
.ant-layout-sider-trigger {
  background: rgba(4, 10, 20, .9) !important;
  color: #7df3e4 !important;
  border-top: 1px solid var(--sb-line) !important;
}

/* 侧栏内部滚动与窄屏适配 */
.ant-layout-sider-children {
  display: flex !important;
  flex-direction: column;
  overflow-y: auto;
  overflow-x: hidden;
}
.ant-layout-sider-children > .ant-menu { flex: 1 1 auto; }
@media (max-width: 900px) {
  .ant-layout-sider .brand-lockup { padding: 16px 10px 14px !important; }
  .ant-layout-sider .brand-lockup-name { font-size: 19px !important; letter-spacing: 2px !important; }
  .ant-layout-sider .brand-lockup-logo { width: 48px !important; height: 48px !important; }
  .ant-layout-sider .brand-lockup-sub { letter-spacing: 2px !important; }
}
