/* ============================================================
   控制面板深色主题修复
   问题：原 CSS 有 27 条规则未加 [data-theme=light] 限定，
        在深色页面下渲染成白色/浅灰（视觉上呈灰褐色）。
   修复：统一覆盖为与登录页一致的深蓝紫科技风配色。
   范围：仅改配色，不动布局、尺寸、间距。
   ============================================================ */

/* ---------- 侧边栏 ---------- */
.rc-sidebar{
  background:#0a101af0!important;
  border-right:1px solid #202a3a!important;
  box-shadow:12px 0 36px #00000059!important;
}
.rc-sidebar nav button{
  color:#a9b5c9!important;
  background:transparent!important;
  border:1px solid transparent!important;
}
.rc-sidebar nav button:hover{
  color:#4d91ff!important;
  background:#121c2e!important;
  border-color:#2a3c5a!important;
}
.rc-sidebar nav button.active,
.rc-sidebar nav button[aria-current="page"]{
  color:#fff!important;
  background:linear-gradient(135deg,#1b3a6b,#2b1a5e)!important;
  border-color:#397be655!important;
}

/* 品牌区（阳神） */
.rc-brand{
  background:linear-gradient(135deg,#101828,#1a1024)!important;
  border:1px solid #2a3c5a!important;
  box-shadow:none!important;
}

/* ---------- 顶栏 ---------- */
.dashboard-topbar{
  background:#0a101ae6!important;
  border-bottom:1px solid #202a3a!important;
  box-shadow:0 8px 28px #0000004d!important;
}
.topbar-user,.topbar-online,.topbar-clock,.topbar-tz{
  background:#121c2e!important;
  border:1px solid #202a3a!important;
  color:#d5dbe5!important;
}
.topbar-user,.topbar-online,.topbar-clock,.topbar-tz,
.rc-search,.rc-top-right select,.view-toggle{
  background:#121c2e!important;
  border-color:#202a3a!important;
  color:#d5dbe5!important;
}

/* ---------- 卡片 / 面板 / 表格容器 ---------- */
.rc-table-wrap,.device-card,.panel,.rc-header-elevated,.s-card,
.admin-add-form,.rc-pagination,.modal-box,.batch-bar{
  background:#0f172af5!important;
  border:1px solid #202a3a!important;
  box-shadow:0 14px 34px #00000059!important;
  color:#d5dbe5!important;
}

/* ---------- 表头 / 表格行 ---------- */
.rc-table th{
  background:#121c2e!important;
  color:#7a869a!important;
  border-bottom:1px solid #202a3a!important;
}
.rc-table td{
  color:#cbd5e1!important;
  border-bottom-color:#1a2334!important;
}
.rc-table tbody tr:hover td,
.rc-table-dense tbody tr:hover td{
  background:#152238!important;
}
.rc-table-dense tbody tr.sel td,
.rc-table tbody tr.sel td{
  background:#1b3a6b!important;
}

/* ---------- 输入框 / 下拉 / 搜索 ---------- */
.rc-main input:not([type=checkbox]):not([type=radio]),
.rc-main select,
.rc-main textarea,
.rc-top-right select,
.rc-search input,
.view-toggle{
  background:#121c2e!important;
  border-color:#2a3c5a!important;
  color:#e5e7eb!important;
  box-shadow:none!important;
}
.rc-main input::placeholder,
.rc-search input::placeholder,
.rc-main textarea::placeholder{
  color:#5c6b82!important;
}
.rc-main input:focus,
.rc-main select:focus,
.rc-main textarea:focus{
  border-color:#397be6!important;
  box-shadow:0 0 0 3px #397be626!important;
}

/* ---------- 按钮 ---------- */
.rc-btn,.act-btn,.act-btn-mini,.modal-btn,.admin-tabs button,.v-btn{
  color:#cbd5e1!important;
  background:#121c2e!important;
  border:1px solid #2a3c5a!important;
  box-shadow:none!important;
  text-shadow:none!important;
}
.rc-btn:hover,.act-btn:hover,.act-btn-mini:hover,.modal-btn:hover,
.admin-tabs button:hover,.v-btn:hover{
  color:#4d91ff!important;
  background:#152238!important;
  border-color:#397be666!important;
  box-shadow:0 8px 18px #397be626!important;
}
.act-btn.blue,.act-btn-mini.blue{
  color:#4d91ff!important;
  background:#0f2440!important;
  border-color:#397be666!important;
}
.act-btn.purple,.act-btn-mini.purple{
  color:#b866ff!important;
  background:#1a1030!important;
  border-color:#8e11fc66!important;
}

/* ---------- 图标块 ---------- */
.s-card .s-ico{
  background:#121c2e!important;
  border-color:#2a3c5a!important;
  color:#4d91ff!important;
}

/* ---------- 区块标题 ---------- */
.dc-header{
  background:linear-gradient(90deg,#0f172a,#0f172a00)!important;
  border-bottom-color:#202a3a!important;
  color:#d5dbe5!important;
}

/* ---------- 角色标签 ---------- */
.role-tag.admin{
  background:#0f2440!important;
  color:#4d91ff!important;
  border-color:#397be666!important;
}
.role-tag.super{
  background:#1a1030!important;
  color:#b866ff!important;
  border-color:#8e11fc66!important;
}

/* ---------- 离线设备卡 ---------- */
.device-card.offline{
  border-color:#ef444440!important;
  background:#0d1420!important;
}

/* ---------- 弹窗遮罩 ---------- */
.modal-box{
  background:#0f172a!important;
  border:1px solid #202a3a!important;
}

/* ---------- 通用文字修正（避免浅底上的深字） ---------- */
.rc-main,.panel,.s-card,.device-card,.rc-table-wrap{
  color:#d5dbe5;
}

/* ============================================================
   AB包构建 · 应用预览手机模拟器
   问题：预览用内联样式硬编码白色背景（模拟 Google Play / Android 设置页），
        在深色主题里形成突兀的亮色块。
   修复：用属性选择器命中内联样式容器，加暗色滤镜使其融入深色主题。
   ============================================================ */

/* 手机外框（内联样式含 border-radius:36px 的预览容器） */
div[style*="border-radius: 36px"]{
  filter: brightness(.62) saturate(.75) contrast(1.08) !important;
  box-shadow:0 12px 32px rgba(0,0,0,.55) !important;
  transition:filter .2s ease;
}
/* 悬停时恢复真实亮度，方便看清预览内容 */
div[style*="border-radius: 36px"]:hover{
  filter:brightness(.92) saturate(.95) !important;
}

/* 预览下方的说明文字 */
div[style*="border-radius: 36px"] + div,
div[style*="border-radius: 36px"] ~ div{
  color:#a9b5c9 !important;
}

/* ============================================================
   Ant Design 弹窗深蓝化
   ------------------------------------------------------------
   问题：antd 默认 dark token 的 colorBgElevated = #1F1F1F（纯中性灰
        rgb(31,31,31)），页面主色是 #121924（深蓝 rgb(18,25,36)）。
        纯灰在蓝调界面中视觉上发黄，即「灰褐色」的来源。
   修复：把 Modal / Drawer / 输入控件 / 按钮统一到页面深蓝体系。
   ============================================================ */

/* ---- 弹窗容器 ---- */
.ant-modal-content{
  background:#121924 !important;
  border:1px solid #202a3a !important;
  box-shadow:0 24px 64px rgba(0,0,0,.72) !important;
}
.ant-modal-header{
  background:#121924 !important;
  border-bottom:1px solid #202a3a !important;
  margin-bottom:0 !important;
  padding-bottom:16px !important;
}
.ant-modal-title{
  color:#e5e7eb !important;
  font-weight:600 !important;
}
.ant-modal-body{ color:#cbd5e1 !important; }
.ant-modal-footer{
  border-top:1px solid #202a3a !important;
  background:#121924 !important;
  padding-top:16px !important;
}
.ant-modal-close{
  color:#7a869a !important;
  border-radius:8px !important;
}
.ant-modal-close:hover{
  color:#4d91ff !important;
  background:#1a2334 !important;
}
.ant-modal-mask{ background:rgba(4,8,14,.78) !important; }

/* ---- Drawer ---- */
.ant-drawer-content{ background:#121924 !important; }
.ant-drawer-header{ background:#121924 !important; border-bottom:1px solid #202a3a !important; }
.ant-drawer-title{ color:#e5e7eb !important; }

/* ---- 输入控件 ---- */
.ant-modal .ant-input,
.ant-modal .ant-input-affix-wrapper,
.ant-modal textarea.ant-input,
.ant-drawer .ant-input,
.ant-drawer textarea.ant-input{
  background:#0a101a !important;
  border-color:#2a3c5a !important;
  color:#e5e7eb !important;
}
.ant-modal .ant-input::placeholder,
.ant-modal textarea.ant-input::placeholder{ color:#5c6b82 !important; }
.ant-modal .ant-input-affix-wrapper .ant-input{ background:transparent !important; }
.ant-modal .ant-input-affix-wrapper:hover,
.ant-modal .ant-input:hover{ border-color:#397be6 !important; }
.ant-modal .ant-input:focus,
.ant-modal .ant-input-affix-wrapper-focused{
  border-color:#397be6 !important;
  box-shadow:0 0 0 3px rgba(57,123,230,.18) !important;
}

/* ---- 下拉 ---- */
.ant-modal .ant-select-selector,
.ant-drawer .ant-select-selector{
  background:#0a101a !important;
  border-color:#2a3c5a !important;
  color:#e5e7eb !important;
}
.ant-modal .ant-select-selection-item,
.ant-modal .ant-select-selection-placeholder{ color:#cbd5e1 !important; }
/* 下拉浮层 */
.ant-select-dropdown{
  background:#121924 !important;
  border:1px solid #202a3a !important;
  box-shadow:0 16px 40px rgba(0,0,0,.6) !important;
}
.ant-select-item{ color:#cbd5e1 !important; }
.ant-select-item-option-active{ background:#152238 !important; }
.ant-select-item-option-selected{ background:#1b3a6b !important; color:#fff !important; }

/* ---- 按钮 ---- */
.ant-modal .ant-btn-default,
.ant-drawer .ant-btn-default{
  background:#1a2334 !important;
  border-color:#2a3c5a !important;
  color:#cbd5e1 !important;
}
.ant-modal .ant-btn-default:hover,
.ant-drawer .ant-btn-default:hover{
  background:#20304a !important;
  border-color:#397be6 !important;
  color:#4d91ff !important;
}

/* ---- 分割线 / 表单标签 / 提示文字 ---- */
.ant-modal .ant-divider{ border-color:#202a3a !important; }
.ant-modal .ant-form-item-label > label{ color:#d5dbe5 !important; }
.ant-modal .ant-form-item-extra,
.ant-modal .ant-form-item-explain{ color:#7a869a !important; }

/* ---- 有效期 / 功能权限 选择按钮（自定义样式兜底） ---- */
.ant-modal [class*="btn"]:not(.ant-btn),
.ant-modal [class*="chip"],
.ant-modal [class*="tag"]:not(.ant-tag){
  border-color:#2a3c5a !important;
}

/* ============================================================
   Ant Design 浮层组件深蓝化（第二批）
   ------------------------------------------------------------
   弹窗主体已修正，但 Popconfirm / Tooltip / Dropdown / Message /
   Notification / Picker 等浮层仍使用 antd 默认 #1F1F1F 纯灰。
   ============================================================ */

/* ---- Popconfirm / Popover 气泡 ---- */
.ant-popover .ant-popover-inner,
.ant-popover-inner{
  background:#121924 !important;
  border:1px solid #202a3a !important;
  box-shadow:0 16px 40px rgba(0,0,0,.62) !important;
}
.ant-popover .ant-popover-title{
  color:#e5e7eb !important;
  border-bottom:1px solid #202a3a !important;
}
.ant-popover .ant-popover-inner-content{ color:#cbd5e1 !important; }
.ant-popover .ant-popover-arrow::before{ background:#121924 !important; }
.ant-popover .ant-popover-arrow{ border-color:#202a3a !important; }

/* ---- Tooltip ---- */
.ant-tooltip .ant-tooltip-inner{
  background:#1a2334 !important;
  color:#d5dbe5 !important;
  border:1px solid #2a3c5a !important;
  box-shadow:0 8px 24px rgba(0,0,0,.5) !important;
}
.ant-tooltip .ant-tooltip-arrow::before{ background:#1a2334 !important; }

/* ---- Dropdown 菜单 ---- */
.ant-dropdown .ant-dropdown-menu,
.ant-dropdown-menu{
  background:#121924 !important;
  border:1px solid #202a3a !important;
  box-shadow:0 16px 40px rgba(0,0,0,.62) !important;
}
.ant-dropdown-menu-item{ color:#cbd5e1 !important; }
.ant-dropdown-menu-item:hover{ background:#152238 !important; color:#4d91ff !important; }
.ant-dropdown-menu-item-divider{ background:#202a3a !important; }

/* ---- Message 轻提示 ---- */
.ant-message .ant-message-notice-content{
  background:#121924 !important;
  color:#d5dbe5 !important;
  border:1px solid #202a3a !important;
  box-shadow:0 12px 32px rgba(0,0,0,.6) !important;
}

/* ---- Notification 通知 ---- */
.ant-notification .ant-notification-notice{
  background:#121924 !important;
  border:1px solid #202a3a !important;
  box-shadow:0 16px 40px rgba(0,0,0,.6) !important;
}
.ant-notification-notice-message{ color:#e5e7eb !important; }
.ant-notification-notice-description{ color:#cbd5e1 !important; }

/* ---- 日期/时间选择器 ---- */
.ant-picker-dropdown .ant-picker-panel-container,
.ant-picker-panel-container{
  background:#121924 !important;
  border:1px solid #202a3a !important;
  box-shadow:0 16px 40px rgba(0,0,0,.62) !important;
}
.ant-picker-header{ color:#d5dbe5 !important; border-bottom:1px solid #202a3a !important; }
.ant-picker-content th{ color:#7a869a !important; }
.ant-picker-cell{ color:#a9b5c9 !important; }
.ant-picker-cell-in-view{ color:#cbd5e1 !important; }
.ant-picker-cell:hover .ant-picker-cell-inner{ background:#152238 !important; }
.ant-picker-cell-selected .ant-picker-cell-inner{ background:#397be6 !important; color:#fff !important; }
.ant-picker-input > input{ color:#e5e7eb !important; }
.ant-picker{ background:#0a101a !important; border-color:#2a3c5a !important; }

/* ---- Modal.confirm 静态方法 ---- */
.ant-modal-confirm .ant-modal-confirm-title{ color:#e5e7eb !important; }
.ant-modal-confirm .ant-modal-confirm-content{ color:#cbd5e1 !important; }

/* ---- 空状态 / 加载 ---- */
.ant-empty-description{ color:#7a869a !important; }
.ant-spin-dot-item{ background-color:#397be6 !important; }

/* ============================================================
   终端控制 · 设备卡片（离线态）
   ------------------------------------------------------------
   问题：离线设备卡片使用内联样式
        background: rgb(8,12,18)   —— 比页面底色 #0a101a 还暗
        opacity: 0.55              —— 半透明，叠加后更暗
        filter: grayscale(0.75)    —— 去色 75%，蓝色变灰
        三者叠加后卡片成为无法辨认的暗块。
   修复：背景提到与其它卡片一致的 #121924，降低去色与透明，
        保留「离线」的视觉弱化但维持可读性与层次。
   ============================================================ */

/* 命中内联 background: rgb(8, 12, 18) 的卡片 */
div[style*="background: rgb(8, 12, 18)"]{
  background:#121924 !important;
  opacity:.9 !important;
  filter:grayscale(.28) !important;
  border-color:#243146 !important;
  box-shadow:0 2px 10px rgba(0,0,0,.35) !important;
  transition:opacity .18s ease, filter .18s ease, border-color .18s ease;
}

/* 悬停：恢复完整色彩，明确当前操作对象 */
div[style*="background: rgb(8, 12, 18)"]:hover{
  opacity:1 !important;
  filter:grayscale(0) !important;
  border-color:#397be6 !important;
  box-shadow:0 6px 20px rgba(57,123,230,.18) !important;
}

/* 设备卡片内的次要文字在弱化后仍保持可读 */
div[style*="background: rgb(8, 12, 18)"] *{
  opacity:1 !important;
}

/* ---- 破损图片兜底 ---- */
img.img-broken{
  object-fit:contain !important;
  background:transparent !important;
  border-radius:0 !important;
}
