/* html 在 WASM 写入 data-theme 之前必须保持深色，避免闪屏 */
[data-theme="nexus"] {
  --bg: #05070f;
  --surface: rgba(11,16,36,0.72);
  --surface-2: rgba(17,24,49,0.85);
  --text: #e8ecff;
  --muted: #8b93b8;
  --border: rgba(56,232,255,0.12);
  --accent: #38e8ff;
  --accent-hover: #5bf0ff;
  --danger: #ff40a0;
  --shadow: 0 10px 40px rgba(3,6,20,.55);
  --hud-clip: clamp(10px, 1.2vw, 16px);
  --ion-gradient: linear-gradient(135deg, #38e8ff, #8b5cf6 55%, #ff40a0);
  --ion-gradient-dim: linear-gradient(135deg, rgba(56,232,255,0.3), rgba(139,92,246,0.25) 55%, rgba(255,64,160,0.2));
}

/* 全局背景星云壁纸 */
[data-theme="nexus"] .app-root::before {
  content: '';
  position: fixed;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background: #05070f;
  background-image: 
    radial-gradient(3px 3px at 15% 10%, rgba(56,232,255,0.9) 0%, transparent 100%),
    radial-gradient(2px 2px at 35% 25%, rgba(139,92,246,0.8) 0%, transparent 100%),
    radial-gradient(2px 2px at 75% 60%, rgba(255,64,160,0.7) 0%, transparent 100%),
    radial-gradient(circle at 10% 20%, rgba(56,232,255,0.18) 0px, transparent 70%),
    radial-gradient(circle at 80% 40%, rgba(139,92,246,0.16) 0px, transparent 70%),
    radial-gradient(circle at 40% 70%, rgba(255,64,160,0.14) 0px, transparent 70%),
    radial-gradient(90vw 90vw at left top, rgba(56,232,255,0.18) 0%, transparent 70%),
    radial-gradient(100vw 100vw at right bottom, rgba(139,92,246,0.16) 0%, transparent 70%),
    radial-gradient(80vw 80vw at right top, rgba(255,64,160,0.12) 0%, transparent 70%),
    linear-gradient(135deg, #05070f 0%, #0a0e1a 100%);
  animation: nebula-drift 120s linear infinite;
}

[data-theme="nexus"] .app-root::after {
  content: '';
  position: fixed;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background: 
    radial-gradient(ellipse at left top, rgba(56,232,255,0.20) 0%, transparent 60%),
    radial-gradient(ellipse at right bottom, rgba(139,92,246,0.18) 0%, transparent 60%),
    radial-gradient(ellipse at right top, rgba(255,64,160,0.15) 0%, transparent 60%);
  animation: nebula-shift 70s linear infinite;
}

@keyframes nebula-drift {
  0% {
    background-position: 0% 0%;
  }
  100% {
    background-position: 100% 100%;
  }
}

@keyframes nebula-shift {
  0% {
    transform: translate3d(0, 0, 0);
  }
  50% {
    transform: translate3d(20px, -20px, 0);
  }
  100% {
    transform: translate3d(0, 0, 0);
  }
}

/* 隐藏默认壁纸 */
[data-theme="nexus"] .desktop-wallpaper {
  display: none !important;
}

/* 基础切角 HUD 样式 - 仅应用到允许的元素 */
[data-theme="nexus"] {
  --clip-path: polygon(var(--hud-clip) 0, 100% 0, 100% calc(100% - var(--hud-clip)), calc(100% - var(--hud-clip)) 100%, 0 100%, 0 var(--hud-clip));
}

[data-theme="nexus"] .app-tile,
[data-theme="nexus"] .rc-app-icon,
[data-theme="nexus"] .auth-card,
[data-theme="nexus"] .boot-screen,
[data-theme="nexus"] .app-context-menu,
[data-theme="nexus"] .rc-app-icon-tile {
  clip-path: var(--clip-path);
}

/* 小按钮单切角 */
[data-theme="nexus"] button,
[data-theme="nexus"] .btn,
[data-theme="nexus"] input[type="checkbox"] {
  clip-path: polygon(0 0, calc(100% - 8px) 0, 100% 8px, 100% 100%, 8px 100%, 0 calc(100% - 8px));
}

/* 玻璃面板效果 */
[data-theme="nexus"] .app-tile,
[data-theme="nexus"] .rc-app-icon-tile,
[data-theme="nexus"] .auth-card,
[data-theme="nexus"] .app-context-menu,
[data-theme="nexus"] .rc-app-add-app-form,
[data-theme="nexus"] .rc-app-icon {
  background: rgba(11,16,36,0.72);
  backdrop-filter: blur(14px) saturate(1.3);
  border: 1px solid transparent;
  box-shadow: var(--shadow);
  position: relative;
}

[data-theme="nexus"] .app-tile::before,
[data-theme="nexus"] .rc-app-icon-tile::before,
[data-theme="nexus"] .auth-card::before,
[data-theme="nexus"] .app-context-menu::before {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
  padding: 1px;
  background: var(--ion-gradient);
  -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  pointer-events: none;
}

/* 内高光效果 */
[data-theme="nexus"] .app-tile,
[data-theme="nexus"] .rc-app-icon-tile,
[data-theme="nexus"] .auth-card,
[data-theme="nexus"] .app-context-menu {
  inset: 0;
}

[data-theme="nexus"] .app-tile::after,
[data-theme="nexus"] .rc-app-icon-tile::after,
[data-theme="nexus"] .auth-card::after,
[data-theme="nexus"] .app-context-menu::after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 1px;
  background: rgba(255,255,255,.06);
  pointer-events: none;
}

/* 离子渐变主按钮 */
[data-theme="nexus"] .btn.primary,
[data-theme="nexus"] button.primary {
  background: var(--ion-gradient) padding-box !important;
  border: 1px solid transparent !important;
  color: #fff;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

[data-theme="nexus"] .btn.primary:hover,
[data-theme="nexus"] button.primary:hover {
  background: var(--ion-gradient) padding-box, linear-gradient(rgba(255,255,255,0.1), rgba(255,255,255,0.1)) padding-box !important;
}

/* 焦点环 */
[data-theme="nexus"] button:focus,
[data-theme="nexus"] input:focus,
[data-theme="nexus"] .btn:focus {
  outline: none;
  box-shadow: 0 0 0 1px rgba(56,232,255,.55), 0 0 18px rgba(56,232,255,.25);
}

/* 选择器与输入框 */
[data-theme="nexus"] input,
[data-theme="nexus"] select,
[data-theme="nexus"] textarea {
  background: rgba(11,16,36,0.72);
  border: 1px solid var(--border);
  color: var(--text);
  padding: 0.5rem;
}

[data-theme="nexus"] input:hover,
[data-theme="nexus"] select:hover,
[data-theme="nexus"] textarea:hover {
  border-color: rgba(56,232,255,0.3);
}

[data-theme="nexus］ input:focus,
[data-theme="nexus"] select:focus,
[data-theme="nexus"] textarea:focus {
  border-color: var(--accent);
  box-shadow: 0 0 0 1px rgba(56,232,255,.25);
}

/* 列表与卡片 hover 效果 */
[data-theme="nexus"] .app-tile:hover,
[data-theme="nexus"] .rc-app-icon:hover,
[data-theme="nexus"] .wallpaper-option:hover {
  transform: translateY(-2px);
  border-color: rgba(56,232,255,0.3) !important;
  box-shadow: 0 12px 45px rgba(56,232,255,0.15), var(--shadow);
}

/* 状态栏 */
[data-theme="nexus"] .status-bar,
[data-theme="nexus"] .desktop-ui__status {
  background: rgba(11,16,36,0.85);
  backdrop-filter: blur(14px);
  border-bottom: 1px solid rgba(56,232,255,0.12);
  position: relative;
}

[data-theme="nexus"] .status-bar::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 1px;
  background: var(--ion-gradient);
  opacity: 0.6;
}

/* 任务坞 */
[data-theme="nexus"] .dock,
[data-theme="nexus"] .desktop-ui__dock {
  background: rgba(11,16,36,0.65);
  backdrop-filter: blur(16px) saturate(1.4);
  border-top: 1px solid rgba(56,232,255,0.1);
  padding: 0.75rem 1rem;
  gap: 0.5rem;
}

[data-theme="nexus"] .app-tile-dock {
  padding: 0.5rem;
  margin: 0 0.25rem;
}

[data-theme="nexus"] .app-tile-dock.active {
  background: var(--ion-gradient-dim) padding-box;
  border-color: rgba(56,232,255,0.4) !important;
}

[data-theme="nexus"] .app-tile-dock.active::after {
  content: '';
  position: absolute;
  bottom: -4px;
  left: 50%;
  transform: translateX(-50%);
  width: 60%;
  height: 2px;
  background: var(--ion-gradient);
  border-radius: 1px;
}

/* 窗口铬样式 */
[data-theme="nexus"][data-shell="mac"] .window-chrome,
[data-theme="nexus"][data-shell="ubuntu"] .window-chrome,
[data-theme="nexus"][data-shell="windows"] .window-chrome {
  background: rgba(13,18,38,0.82);
  border-bottom: 1px solid rgba(56,232,255,0.12);
  border: 1px solid transparent;
  background-clip: padding-box;
  box-shadow: var(--shadow), 0 0 0 1px var(--ion-gradient);
}

/* 浮动窗口与沉浸式层 */
[data-theme="nexus"] .floating-window,
[data-theme="nexus"] .window-immersive-layer .floating-window {
  background: rgba(13,18,38,0.82) !important;
  border: 1px solid transparent;
  background-clip: padding-box;
  box-shadow: 0 15px 50px rgba(3,6,20,.7), 0 0 0 1px var(--ion-gradient);
  clip-path: var(--clip-path);
}

[data-theme="nexus"] .floating-window.maximized {
  clip-path: none !important;
}

[data-theme="nexus"] .window-immersive-layer {
  background: rgba(0,0,0,0.3);
  backdrop-filter: blur(4px);
}

[data-theme="nexus"] .window-traffic-light,
[data-theme="nexus"] .window-titlebar-buttons {
  gap: 0.5rem;
  padding: 0 0.75rem;
}

[data-theme="nexus"] .traffic-light-button,
[data-theme="nexus"] .titlebar-button {
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: rgba(56,232,255,0.2);
  border: 1px solid rgba(56,232,255,0.3);
  margin: 0 2px;
}

[data-theme="nexus"] .traffic-light-button.close,
[data-theme="nexus"] .titlebar-button.close {
  background: rgba(255,64,160,0.2);
  border-color: rgba(255,64,160,0.4);
}

[data-theme="nexus"] .window-title {
  color: var(--text);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  font-size: 0.85rem;
}

/* 滚动条 */
[data-theme="nexus"] ::-webkit-scrollbar {
  width: 8px;
  height: 8px;
}

[data-theme="nexus"] ::-webkit-scrollbar-track {
  background: rgba(11,16,36,0.5);
}

[data-theme="nexus"] ::-webkit-scrollbar-thumb {
  background: var(--ion-gradient);
  border-radius: 4px;
}

[data-theme="nexus"] ::-webkit-scrollbar-thumb:hover {
  background: var(--ion-gradient), linear-gradient(rgba(255,255,255,0.1), rgba(255,255,255,0.1));
}

/* 选择文本 */
[data-theme="nexus"] ::selection {
  background: rgba(56,232,255,0.3);
  color: var(--text);
}

/* 登录页 */
[data-theme="nexus"] .auth-shell {
  background: var(--ion-gradient) !important;
}

[data-theme="nexus"] .auth-card {
  background: rgba(11,16,36,0.8) !important;
  border-color: rgba(56,232,255,0.2) !important;
}

[data-theme="nexus"] .auth-title {
  background: var(--ion-gradient);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  text-transform: uppercase;
  letter-spacing: 0.14em;
}

[data-theme="nexus"] .auth-brand {
  background: var(--ion-gradient);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

/* 版本角标 */
[data-theme="nexus"] .version-badge::after {
  content: " NEXUS";
  text-transform: uppercase;
  letter-spacing: 0.12em;
  font-size: 0.8em;
  color: #cdd6ff;
  font-weight: 500;
  text-shadow: 0 0 2px rgba(56,232,255,0.4);
  opacity: 0.9;
}

/* 终端覆写 */
[data-theme="nexus"] .xterm-viewport {
  background-color: rgba(5,8,18,.85) !important;
}

[data-theme="nexus"] .xterm {
  color-scheme: dark;
}

/* 减少动画模式 */
@media (prefers-reduced-motion: reduce) {
  [data-theme="nexus"] *::before,
  [data-theme="nexus"] *::after,
  [data-theme="nexus"] .app-root::before,
  [data-theme="nexus"] .app-root::after {
    animation: none !important;
    transition: none !important;
  }
}

/* 移动端降级优化 */
@media (max-width: 767px) {
  /* 浮动窗口背景模糊降级 */
  [data-theme="nexus"] .floating-window,
  [data-theme="nexus"] .window-immersive-layer .floating-window {
    backdrop-filter: blur(10px) saturate(1.2) !important;
    -webkit-backdrop-filter: blur(10px) saturate(1.2) !important;
  }

  /* 停用星云动画 */
  [data-theme="nexus"] .app-root::before,
  [data-theme="nexus"] .app-root::after {
    animation: none !important;
  }

  /* 状态栏禁用切角 */
  [data-theme="nexus"] .status-bar,
  [data-theme="nexus"] .desktop-ui__status {
    clip-path: none !important;
  }
}

/* 通用文本样式 */
[data-theme="nexus"] body,
[data-theme="nexus"] button,
[data-theme="nexus"] input,
[data-theme="nexus"] select,
[data-theme="nexus"] .label {
  font-family: "Segoe UI", system-ui, -apple-system, sans-serif;
  color: var(--text);
  font-feature-settings: "tnum";
}

[data-theme="nexus"] .text-muted {
  color: var(--muted) !important;
}

[data-theme="nexus"] .uppercase {
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

/* 覆盖磁贴内联背景 */
[data-theme="nexus"] .app-tile {
  background: rgba(11,16,36,0.55) !important;
  border-radius: 8px !important;
  border: 1px solid transparent !important;
  background-clip: padding-box !important;
  box-shadow: var(--shadow), 0 0 0 1px var(--ion-gradient) !important;
  clip-path: polygon(8px 0, 100% 0, 100% calc(100% - 8px), calc(100% - 8px) 100%, 0 100%, 0 8px) !important;
}

/* 图标瓦片NEXUS样式 */
[data-theme="nexus"] .app-tile--nexus {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  width: 60%;
  height: 60%;
  margin: 20% auto;
  display: flex;
  align-items: center;
  justify-content: center;
}

[data-theme="nexus"] .app-tile--nexus svg {
  display: block;
  width: 100%;
  height: 100%;
  stroke: var(--accent);
  stroke-width: 1.6;
  stroke-linecap: round;
  stroke-linejoin: round;
  fill: none;
}

[data-theme="nexus"] .app-tile--nexus .icon-dot {
  fill: var(--accent);
}

[data-theme="nexus"] .app-tile--nexus:hover svg {
  filter: drop-shadow(0 0 4px rgba(56,232,255,0.6));
}

/* 修复dock项图标尺寸 */
[data-theme="nexus"] .dock .app-tile--nexus,
[data-theme="nexus"] .desktop-ui__dock .app-tile--nexus {
  width: 70%;
  height: 70%;
  margin: 15% auto;
}