/*!
 * HNSKX_STYLE_SWITCH_LITE_V11F_NATIVE_COMPONENT_20260630
 * 中文说明：原生组件版三主题背景包。只切换本地背景图，不改业务逻辑。
 */

:root {
  --hnskx-bg-image: url('/assets/theme-bg/bg-deepsea-command.webp');
}

html[data-hnskx-bg-theme="soft-white"] {
  --hnskx-bg-image: url('/assets/theme-bg/bg-soft-white.webp');
}

html[data-hnskx-bg-theme="eye-green"] {
  --hnskx-bg-image: url('/assets/theme-bg/bg-eye-green.webp');
}

html[data-hnskx-bg-theme="night-city"] {
  --hnskx-bg-image: url('/assets/theme-bg/bg-night-city.webp');
}

html[data-hnskx-bg-theme] body {
  background-image: var(--hnskx-bg-image) !important;
  background-size: cover !important;
  background-position: center center !important;
  background-repeat: no-repeat !important;
  background-attachment: scroll !important;
}

.hnskx-bg-theme-page {
  min-height: calc(100vh - 160px);
  box-sizing: border-box;
  padding: 64px 48px 48px;
  color: #e9fbff;
}

.hnskx-bg-theme-shell-native {
  max-width: 1040px;
  margin: 0 auto;
  padding: 22px;
  border: 1px solid rgba(22, 242, 194, .34);
  border-radius: 16px;
  background: rgba(5, 14, 20, .84);
}

.hnskx-bg-theme-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 16px;
  margin-bottom: 18px;
}

.hnskx-bg-theme-title {
  margin: 0;
  font-size: 26px;
  font-weight: 900;
  color: #16f2c2;
}

.hnskx-bg-theme-subtitle {
  margin: 8px 0 0;
  font-size: 14px;
  color: rgba(233, 251, 255, .76);
}

.hnskx-bg-theme-current {
  padding: 8px 12px;
  border: 1px solid rgba(22, 242, 194, .32);
  border-radius: 999px;
  color: #16f2c2;
  font-weight: 800;
  white-space: nowrap;
}

.hnskx-bg-theme-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(220px, 1fr));
  gap: 18px;
}

.hnskx-bg-theme-card {
  min-height: 238px;
  padding: 14px;
  border: 1px solid rgba(160, 220, 220, .22);
  border-radius: 14px;
  background: rgba(8, 18, 26, .86);
  cursor: pointer;
}

.hnskx-bg-theme-card:hover {
  border-color: rgba(22, 242, 194, .45);
}

.hnskx-bg-theme-card[data-active="1"] {
  border-color: #16f2c2;
}

.hnskx-bg-theme-preview {
  height: 118px;
  border-radius: 10px;
  margin-bottom: 14px;
  border: 1px solid rgba(255,255,255,.14);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}

.hnskx-bg-theme-name {
  font-size: 17px;
  font-weight: 900;
  color: #e9fbff;
  margin-bottom: 6px;
}

.hnskx-bg-theme-desc {
  min-height: 38px;
  font-size: 13px;
  line-height: 1.55;
  color: rgba(233, 251, 255, .70);
}

.hnskx-bg-theme-btn {
  margin-top: 14px;
  width: 100%;
  height: 34px;
  border-radius: 8px;
  border: 1px solid rgba(22, 242, 194, .35);
  background: transparent;
  color: #16f2c2;
  font-weight: 800;
  cursor: pointer;
}

.hnskx-bg-theme-card[data-active="1"] .hnskx-bg-theme-btn {
  background: rgba(22, 242, 194, .12);
}

.hnskx-bg-theme-note {
  margin-top: 16px;
  padding: 12px 14px;
  border: 1px solid rgba(255,255,255,.10);
  border-radius: 12px;
  color: rgba(233, 251, 255, .68);
  font-size: 13px;
  line-height: 1.7;
  background: rgba(0,0,0,.26);
}

@media (max-width: 1100px) {
  .hnskx-bg-theme-page {
    padding: 48px 24px 36px;
  }

  .hnskx-bg-theme-grid {
    grid-template-columns: 1fr;
  }

  .hnskx-bg-theme-head {
    display: block;
  }

  .hnskx-bg-theme-current {
    display: inline-block;
    margin-top: 12px;
  }
}

/* HNSKX_STYLE_SWITCH_V11F2_BG_TARGET_20260630
   中文说明：背景图应用到风格切换原生页面容器，避免body背景被系统路由容器遮住。 */
html[data-hnskx-bg-theme] .hnskx-bg-theme-page {
  background-image: var(--hnskx-bg-image) !important;
  background-size: cover !important;
  background-position: center center !important;
  background-repeat: no-repeat !important;
  background-color: #020b12 !important;
}

html[data-hnskx-bg-theme="soft-white"] .hnskx-bg-theme-page {
  background-position: center center !important;
}

html[data-hnskx-bg-theme="eye-green"] .hnskx-bg-theme-page {
  background-position: center center !important;
}

html[data-hnskx-bg-theme="night-city"] .hnskx-bg-theme-page {
  background-position: center center !important;
}

/* HNSKX_STYLE_SWITCH_V11G_GLOBAL_BG_20260630
   中文说明：把背景主题应用到全局后台主界面，不再只作用于风格切换页面。 */
html[data-hnskx-bg-theme],
html[data-hnskx-bg-theme] body,
html[data-hnskx-bg-theme] #app {
  background-image: var(--hnskx-bg-image) !important;
  background-size: cover !important;
  background-position: center center !important;
  background-repeat: no-repeat !important;
  background-attachment: scroll !important;
  background-color: #020b12 !important;
}

/* 常见后台主容器：只改背景层，不改布局 */
html[data-hnskx-bg-theme] .layout,
html[data-hnskx-bg-theme] .main,
html[data-hnskx-bg-theme] .content,
html[data-hnskx-bg-theme] .page,
html[data-hnskx-bg-theme] .page-content,
html[data-hnskx-bg-theme] .main-content,
html[data-hnskx-bg-theme] .router-view,
html[data-hnskx-bg-theme] .app-main,
html[data-hnskx-bg-theme] .el-main,
html[data-hnskx-bg-theme] .ant-layout,
html[data-hnskx-bg-theme] .ant-layout-content {
  background-image: var(--hnskx-bg-image) !important;
  background-size: cover !important;
  background-position: center center !important;
  background-repeat: no-repeat !important;
}

/* 如果页面本身是风格切换页，继续使用同一张背景 */
html[data-hnskx-bg-theme] .hnskx-bg-theme-page {
  background-image: var(--hnskx-bg-image) !important;
  background-size: cover !important;
  background-position: center center !important;
  background-repeat: no-repeat !important;
}

/* 三种主题只换背景图变量，不改业务逻辑 */
html[data-hnskx-bg-theme="soft-white"] {
  --hnskx-bg-image: url('/assets/theme-bg/bg-soft-white.webp');
}

html[data-hnskx-bg-theme="eye-green"] {
  --hnskx-bg-image: url('/assets/theme-bg/bg-eye-green.webp');
}

html[data-hnskx-bg-theme="night-city"] {
  --hnskx-bg-image: url('/assets/theme-bg/bg-night-city.webp');
}

/* HNSKX_STYLE_SWITCH_V11I_SAFE_STATIC_20260630 */
/* 中文：V11I安全静态补丁。纯CSS自适配，不新增监听、不轮询、不克隆DOM、不请求后端。 */

html[data-hnskx-bg-theme="deep-command"] {
  --hnskx-bg-image: url('/assets/theme-bg/bg-deepsea-command.webp');
}

/* 中文：亮色背景可读性增强，只覆盖主内容区域，避免影响设备控制/WS/API。 */
html[data-hnskx-bg-theme="soft-white"] .main-content,
html[data-hnskx-bg-theme="soft-white"] .page-content,
html[data-hnskx-bg-theme="soft-white"] .router-view,
html[data-hnskx-bg-theme="soft-white"] .app-main,
html[data-hnskx-bg-theme="soft-white"] .el-main,
html[data-hnskx-bg-theme="soft-white"] .ant-layout-content,
html[data-hnskx-bg-theme="eye-green"] .main-content,
html[data-hnskx-bg-theme="eye-green"] .page-content,
html[data-hnskx-bg-theme="eye-green"] .router-view,
html[data-hnskx-bg-theme="eye-green"] .app-main,
html[data-hnskx-bg-theme="eye-green"] .el-main,
html[data-hnskx-bg-theme="eye-green"] .ant-layout-content {
  color: #102033 !important;
}

html[data-hnskx-bg-theme="soft-white"] .main-content :where(p,li,span,div,label,small),
html[data-hnskx-bg-theme="soft-white"] .page-content :where(p,li,span,div,label,small),
html[data-hnskx-bg-theme="soft-white"] .router-view :where(p,li,span,div,label,small),
html[data-hnskx-bg-theme="eye-green"] .main-content :where(p,li,span,div,label,small),
html[data-hnskx-bg-theme="eye-green"] .page-content :where(p,li,span,div,label,small),
html[data-hnskx-bg-theme="eye-green"] .router-view :where(p,li,span,div,label,small) {
  color: #102033 !important;
  text-shadow: none !important;
}

html[data-hnskx-bg-theme="soft-white"] .main-content :where(.el-card,.n-card,.ant-card,[class*="card"],[class*="panel"]),
html[data-hnskx-bg-theme="soft-white"] .page-content :where(.el-card,.n-card,.ant-card,[class*="card"],[class*="panel"]),
html[data-hnskx-bg-theme="soft-white"] .router-view :where(.el-card,.n-card,.ant-card,[class*="card"],[class*="panel"]) {
  background: rgba(255,255,255,.84) !important;
  border-color: rgba(37,99,235,.18) !important;
  box-shadow: 0 16px 42px rgba(15,23,42,.14) !important;
}

html[data-hnskx-bg-theme="eye-green"] .main-content :where(.el-card,.n-card,.ant-card,[class*="card"],[class*="panel"]),
html[data-hnskx-bg-theme="eye-green"] .page-content :where(.el-card,.n-card,.ant-card,[class*="card"],[class*="panel"]),
html[data-hnskx-bg-theme="eye-green"] .router-view :where(.el-card,.n-card,.ant-card,[class*="card"],[class*="panel"]) {
  background: rgba(245,255,249,.82) !important;
  border-color: rgba(22,163,74,.18) !important;
  box-shadow: 0 16px 42px rgba(20,83,45,.13) !important;
}

/* 中文：暗色背景保持浅色文字，深黑指挥舱复用初始深黑背景。 */
html[data-hnskx-bg-theme="night-city"] .main-content,
html[data-hnskx-bg-theme="night-city"] .page-content,
html[data-hnskx-bg-theme="night-city"] .router-view,
html[data-hnskx-bg-theme="deep-command"] .main-content,
html[data-hnskx-bg-theme="deep-command"] .page-content,
html[data-hnskx-bg-theme="deep-command"] .router-view {
  color: #f8fafc !important;
}

html[data-hnskx-bg-theme="night-city"] .main-content :where(p,li,span,div,label,small),
html[data-hnskx-bg-theme="night-city"] .page-content :where(p,li,span,div,label,small),
html[data-hnskx-bg-theme="night-city"] .router-view :where(p,li,span,div,label,small),
html[data-hnskx-bg-theme="deep-command"] .main-content :where(p,li,span,div,label,small),
html[data-hnskx-bg-theme="deep-command"] .page-content :where(p,li,span,div,label,small),
html[data-hnskx-bg-theme="deep-command"] .router-view :where(p,li,span,div,label,small) {
  color: #dbeafe !important;
}

html[data-hnskx-bg-theme="deep-command"] .main-content :where(.el-card,.n-card,.ant-card,[class*="card"],[class*="panel"]),
html[data-hnskx-bg-theme="deep-command"] .page-content :where(.el-card,.n-card,.ant-card,[class*="card"],[class*="panel"]),
html[data-hnskx-bg-theme="deep-command"] .router-view :where(.el-card,.n-card,.ant-card,[class*="card"],[class*="panel"]) {
  background: rgba(2,8,16,.78) !important;
  border-color: rgba(0,255,200,.22) !important;
  box-shadow: 0 18px 52px rgba(0,0,0,.42) !important;
}

/* 中文：只处理主题页面卡片预览和当前状态，不运行JS。 */
.hnskx-bg-theme-card[data-bg-theme-id="deep-command"] .hnskx-bg-theme-preview {
  background-image: url('/assets/theme-bg/bg-deepsea-command.webp') !important;
  background-size: cover !important;
  background-position: center center !important;
}

/* HNSKX_STYLE_SWITCH_V11K_FIRST_PAINT_DEEP_20260630 */
/* 中文：首屏默认背景改为深黑指挥舱，避免进入后台时先闪其它背景。纯CSS，无JS、无监听、无轮询。 */

/* HNSKX_STYLE_SWITCH_CLIENT_SAFE_MODE_V1_20260630 */
/* 中文说明：
   客户端优先安全模式。
   目的：降低SPA路由切换时大背景图多层重绘。
   只影响视觉背景和阴影，不影响API、WS、设备连接、设备操作、设备屏幕。
*/

html[data-hnskx-bg-theme],
html[data-hnskx-bg-theme] body,
html[data-hnskx-bg-theme] #app,
html[data-hnskx-bg-theme] .app,
html[data-hnskx-bg-theme] .layout,
html[data-hnskx-bg-theme] .admin-layout,
html[data-hnskx-bg-theme] .main-layout,
html[data-hnskx-bg-theme] .main-content,
html[data-hnskx-bg-theme] .content,
html[data-hnskx-bg-theme] .router-view,
html[data-hnskx-bg-theme] .page-container,
html[data-hnskx-bg-theme] .el-container,
html[data-hnskx-bg-theme] .el-main,
html[data-hnskx-bg-theme] .ant-layout,
html[data-hnskx-bg-theme] .ant-layout-content {
  background-image: none !important;
  background-attachment: scroll !important;
}

html[data-hnskx-bg-theme],
html[data-hnskx-bg-theme] body,
html[data-hnskx-bg-theme] #app {
  background-color: #020b12 !important;
}

html[data-hnskx-bg-theme] :where(.el-card,.n-card,.ant-card,[class*="card"],[class*="panel"]) {
  box-shadow: none !important;
}

/* 中文说明：风格切换页的预览小图保留，不影响选择功能。 */
.hnskx-bg-theme-preview,
.hnskx-bg-theme-card[data-bg-theme-id] .hnskx-bg-theme-preview {
  background-size: cover !important;
  background-position: center center !important;
  background-repeat: no-repeat !important;
}

/* HNSKX_STYLE_SWITCH_SINGLE_BG_V2_20260630 */
/* 中文说明：
   修复V1砍掉背景图的问题。
   保留背景图，但只保留一层固定视觉背景，避免 body/#app/main-content/router-view/el-main 多层重复铺图。
   只影响视觉背景，不影响API、WS、设备连接、设备操作、设备屏幕。
*/

html[data-hnskx-bg-theme],
html[data-hnskx-bg-theme] body {
  min-height: 100% !important;
  background-color: #020b12 !important;
}

html[data-hnskx-bg-theme] body {
  position: relative !important;
  background-image: none !important;
}

html[data-hnskx-bg-theme] body::before {
  content: "" !important;
  position: fixed !important;
  inset: 0 !important;
  z-index: 0 !important;
  pointer-events: none !important;
  background-image: var(--hnskx-bg-image) !important;
  background-size: cover !important;
  background-position: center center !important;
  background-repeat: no-repeat !important;
}

html[data-hnskx-bg-theme] #app {
  position: relative !important;
  z-index: 1 !important;
  background-color: transparent !important;
  background-image: none !important;
}

html[data-hnskx-bg-theme] .app,
html[data-hnskx-bg-theme] .layout,
html[data-hnskx-bg-theme] .admin-layout,
html[data-hnskx-bg-theme] .main-layout,
html[data-hnskx-bg-theme] .main-content,
html[data-hnskx-bg-theme] .content,
html[data-hnskx-bg-theme] .router-view,
html[data-hnskx-bg-theme] .page-container,
html[data-hnskx-bg-theme] .el-container,
html[data-hnskx-bg-theme] .el-main,
html[data-hnskx-bg-theme] .ant-layout,
html[data-hnskx-bg-theme] .ant-layout-content {
  background-image: none !important;
  background-color: transparent !important;
}

/* 中文说明：风格切换页预览小图保留。 */
.hnskx-bg-theme-preview,
.hnskx-bg-theme-card[data-bg-theme-id] .hnskx-bg-theme-preview {
  background-size: cover !important;
  background-position: center center !important;
  background-repeat: no-repeat !important;
}
