/* ==========================================================================
   MOZHE AI · 控制台主题（浅色专业风）
   --------------------------------------------------------------------------
   适配：New API v1.0.0-rc.40 前端（Tailwind v4 + shadcn/Base UI）
   原理：① 覆盖语义化 design token（无需 !important，本文件在 tailwind 之后）
        ② 用 data-slot 组件钩子做精细打磨（全站 159 个槽位）
   回滚：删除 index.html 里的一行 <link> 即可
   ========================================================================== */

/* --------------------------------------------------------------------------
   1. 基础色板 · 浅色
   -------------------------------------------------------------------------- */
:root {
  /* 面 */
  --background: #f6f8fb;
  --foreground: #0b1220;

  --card: #ffffff;
  --card-foreground: #0b1220;

  --popover: #ffffff;
  --popover-foreground: #0b1220;

  --muted: #eef1f6;
  --muted-foreground: #5c6779;

  --secondary: #eef1f6;
  --secondary-foreground: #16233a;

  --accent: #eef1f6;
  --accent-foreground: #16233a;

  /* 线 */
  --border: #e5e9f0;
  --input: #dde3ec;

  /* 品牌 */
  --primary: #0a6cff;
  --primary-foreground: #ffffff;

  --ring: #0a6cff;

  /* 语义 */
  --destructive: #e5484d;
  --destructive-foreground: #ffffff;
  --success: #0f9d58;
  --success-foreground: #ffffff;
  --warning: #d98200;
  --warning-foreground: #ffffff;
  --info: #0a6cff;
  --info-foreground: #ffffff;

  /* 圆角：由 1rem 收紧到 .5rem，观感立刻干练一档 */
  --radius: 0.5rem;
  --radius-xs: 0.25rem;
  --radius-sm: 0.3125rem;
  --radius-md: 0.4375rem;
  --radius-lg: 0.5rem;
  --radius-xl: 0.625rem;

  /* 侧栏 */
  --sidebar: #ffffff;
  --sidebar-foreground: #16233a;
  --sidebar-border: #e5e9f0;
  --sidebar-accent: #eef2f8;
  --sidebar-accent-foreground: #0a6cff;
  --sidebar-primary: #0a6cff;
  --sidebar-primary-foreground: #ffffff;
  --sidebar-ring: #0a6cff;

  /* 表格 */
  --table-row: #ffffff;
  --table-header-bg: #f5f7fb;
  --table-header: #5c6779;
  --table-header-hover: #eef1f6;
  --data-table-card-bg: #ffffff;

  /* 图表 */
  --chart-1: #0a6cff;
  --chart-2: #00a3aa;
  --chart-3: #7c5cff;
  --chart-4: #ff8a3d;
  --chart-5: #12a150;

  /* 阴影层级 */
  --mo-shadow-1: 0 1px 2px rgba(16, 24, 40, .05);
  --mo-shadow-2: 0 1px 2px rgba(16, 24, 40, .05), 0 4px 12px -4px rgba(16, 24, 40, .08);
  --mo-shadow-3: 0 12px 32px -8px rgba(16, 24, 40, .16), 0 3px 10px -4px rgba(16, 24, 40, .08);
  --mo-shadow-4: 0 28px 64px -18px rgba(16, 24, 40, .22), 0 8px 22px -10px rgba(16, 24, 40, .12);

  /* 字体 */
  --font-sans: "Public Sans", -apple-system, BlinkMacSystemFont, "Segoe UI Variable Text",
               "Segoe UI", "PingFang SC", "HarmonyOS Sans SC", "Source Han Sans SC",
               "Noto Sans CJK SC", "Microsoft YaHei UI", "Microsoft YaHei", sans-serif;
}

/* --------------------------------------------------------------------------
   2. 基础色板 · 深色（保留系统的暗色切换，用同一套品牌蓝）
   -------------------------------------------------------------------------- */
.dark {
  --background: #0b0e14;
  --foreground: #e9edf5;

  --card: #12161f;
  --card-foreground: #e9edf5;

  --popover: #141924;
  --popover-foreground: #e9edf5;

  --muted: #1a1f2b;
  --muted-foreground: #8e99ad;

  --secondary: #1a1f2b;
  --secondary-foreground: #e9edf5;

  --accent: #1e2431;
  --accent-foreground: #e9edf5;

  --border: #232a38;
  --input: #2a3242;

  --primary: #3d8bff;
  --primary-foreground: #06121f;
  --ring: #3d8bff;

  --destructive: #ff6166;
  --destructive-foreground: #1a0d0e;
  --success: #30c07d;
  --success-foreground: #06170f;
  --warning: #f0a83c;
  --warning-foreground: #1f1403;
  --info: #3d8bff;
  --info-foreground: #06121f;

  --sidebar: #0e121a;
  --sidebar-foreground: #d7deeb;
  --sidebar-border: #1f2634;
  --sidebar-accent: #1a2130;
  --sidebar-accent-foreground: #6aa6ff;
  --sidebar-primary: #3d8bff;
  --sidebar-primary-foreground: #06121f;

  --table-row: #12161f;
  --table-header-bg: #161b25;
  --table-header: #8e99ad;
  --table-header-hover: #1a1f2b;
  --data-table-card-bg: #12161f;

  --mo-shadow-1: 0 1px 2px rgba(0, 0, 0, .4);
  --mo-shadow-2: 0 1px 2px rgba(0, 0, 0, .4), 0 4px 12px -4px rgba(0, 0, 0, .5);
  --mo-shadow-3: 0 12px 32px -8px rgba(0, 0, 0, .6), 0 3px 10px -4px rgba(0, 0, 0, .4);
  --mo-shadow-4: 0 28px 64px -18px rgba(0, 0, 0, .7), 0 8px 22px -10px rgba(0, 0, 0, .5);
}

/* --------------------------------------------------------------------------
   3. 全局基础
   -------------------------------------------------------------------------- */
html {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
  scroll-behavior: smooth;
}

body {
  font-family: var(--font-sans);
  letter-spacing: .002em;
}

::selection {
  background: color-mix(in srgb, var(--primary) 20%, transparent);
  color: var(--foreground);
}

/* 细滚动条 */
* {
  scrollbar-width: thin;
  scrollbar-color: color-mix(in srgb, var(--muted-foreground) 38%, transparent) transparent;
}
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb {
  background: color-mix(in srgb, var(--muted-foreground) 34%, transparent);
  border-radius: 999px;
  border: 3px solid transparent;
  background-clip: content-box;
}
::-webkit-scrollbar-thumb:hover {
  background: color-mix(in srgb, var(--muted-foreground) 55%, transparent);
  background-clip: content-box;
}
::-webkit-scrollbar-corner { background: transparent; }

/* 标题字距收紧，中文标题更精神 */
h1, h2, h3, h4 { letter-spacing: -.018em; }

/* 焦点环统一 */
:focus-visible {
  outline: 2px solid color-mix(in srgb, var(--primary) 70%, transparent);
  outline-offset: 2px;
}

/* 数字等宽，表格/金额对齐不跳动 */
[data-slot="table-cell"],
[data-slot="table-head"],
.tabular-nums {
  font-variant-numeric: tabular-nums;
}

/* --------------------------------------------------------------------------
   4. 卡片
   -------------------------------------------------------------------------- */
[data-slot="card"] {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  box-shadow: var(--mo-shadow-1);
  transition: box-shadow .2s cubic-bezier(.16, 1, .3, 1),
              border-color .2s cubic-bezier(.16, 1, .3, 1);
}
[data-slot="card-title"] {
  font-weight: 600;
  letter-spacing: -.012em;
}
[data-slot="card-description"] {
  color: var(--muted-foreground);
}
[data-slot="card-header"] { gap: .35rem; }
[data-slot="card-footer"] { border-top-color: var(--border); }

/* 数据表格卡片 */
[data-slot="data-table-card"] {
  background: var(--data-table-card-bg);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  box-shadow: var(--mo-shadow-1);
  overflow: hidden;
}

/* --------------------------------------------------------------------------
   5. 按钮
   -------------------------------------------------------------------------- */
[data-slot="button"] {
  border-radius: var(--radius-md);
  font-weight: 500;
  letter-spacing: .004em;
  transition: background-color .16s ease, color .16s ease, border-color .16s ease,
              box-shadow .2s cubic-bezier(.16, 1, .3, 1), transform .12s ease;
}
button[data-slot="button"].bg-primary {
  box-shadow: 0 1px 2px color-mix(in srgb, var(--primary) 26%, transparent);
}
button[data-slot="button"].bg-primary:hover:not(:disabled) {
  box-shadow: 0 6px 18px -4px color-mix(in srgb, var(--primary) 42%, transparent);
}
button[data-slot="button"].border:hover:not(:disabled) {
  background: color-mix(in srgb, var(--muted) 70%, var(--card));
}

/* --------------------------------------------------------------------------
   6. 表单
   -------------------------------------------------------------------------- */
[data-slot="input"],
[data-slot="textarea"],
[data-slot="select-trigger"],
[data-slot="native-select-wrapper"],
[data-slot="input-group"] {
  border-radius: var(--radius-md);
  border-color: var(--input);
  background: var(--card);
  transition: border-color .16s ease, box-shadow .16s ease;
}
[data-slot="input"]:hover:not(:disabled),
[data-slot="textarea"]:hover:not(:disabled),
[data-slot="select-trigger"]:hover:not(:disabled) {
  border-color: color-mix(in srgb, var(--primary) 30%, var(--input));
}
[data-slot="input"]:focus-visible,
[data-slot="textarea"]:focus-visible,
[data-slot="select-trigger"]:focus-visible,
[data-slot="native-select-wrapper"]:focus-within {
  border-color: var(--primary);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--primary) 14%, transparent);
}
[data-slot="label"],
[data-slot="form-label"] {
  font-weight: 500;
  color: color-mix(in srgb, var(--foreground) 88%, transparent);
}
[data-slot="form-message"],
[data-slot="field-error"] { font-size: .8125rem; }

/* --------------------------------------------------------------------------
   7. 表格
   -------------------------------------------------------------------------- */
[data-slot="table-container"] { border-radius: var(--radius-lg); }
[data-slot="table-header"] { background: var(--table-header-bg); }
[data-slot="table-head"] {
  height: 2.5rem;
  font-size: .75rem;
  font-weight: 600;
  letter-spacing: .045em;
  color: var(--table-header);
  white-space: nowrap;
  border-bottom: 1px solid var(--border);
}
[data-slot="table-head"]:hover { background: var(--table-header-hover); }
[data-slot="table-row"] {
  background: var(--table-row);
  border-bottom: 1px solid var(--border);
  transition: background-color .13s ease;
}
[data-slot="table-row"]:hover { background: var(--muted); }
[data-slot="table-row"][data-state="selected"] {
  background: color-mix(in srgb, var(--primary) 7%, var(--table-row));
}
[data-slot="table-cell"] { padding-top: .5625rem; padding-bottom: .5625rem; }
[data-slot="table-body"] [data-slot="table-row"]:last-child { border-bottom: 0; }

/* --------------------------------------------------------------------------
   8. 浮层：弹窗 / 下拉 / 气泡
   -------------------------------------------------------------------------- */
[data-slot="dialog-overlay"],
[data-slot="alert-dialog-overlay"],
[data-slot="sheet-overlay"] {
  background: color-mix(in srgb, #0b1220 34%, transparent);
  backdrop-filter: blur(3px) saturate(120%);
  -webkit-backdrop-filter: blur(3px) saturate(120%);
}
[data-slot="dialog-content"],
[data-slot="alert-dialog-content"],
[data-slot="sheet-content"] {
  background: var(--popover);
  border: 1px solid var(--border);
  border-radius: var(--radius-xl);
  box-shadow: var(--mo-shadow-4);
}
[data-slot="dialog-title"],
[data-slot="alert-dialog-title"],
[data-slot="sheet-title"] {
  font-weight: 600;
  letter-spacing: -.012em;
}
[data-slot="dropdown-menu-content"],
[data-slot="popover-content"],
[data-slot="select-content"],
[data-slot="combobox-content"],
[data-slot="dropdown-menu-sub-content"] {
  background: var(--popover);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  box-shadow: var(--mo-shadow-3);
  padding: .25rem;
}
[data-slot="dropdown-menu-item"],
[data-slot="select-item"],
[data-slot="combobox-item"],
[data-slot="command-item"] {
  border-radius: var(--radius-sm);
  transition: background-color .12s ease, color .12s ease;
}
[data-slot="dropdown-menu-item"]:focus,
[data-slot="select-item"]:focus,
[data-slot="combobox-item"]:focus,
[data-slot="command-item"][data-selected="true"] {
  background: color-mix(in srgb, var(--primary) 10%, transparent);
  color: var(--primary);
}
[data-slot="dropdown-menu-separator"],
[data-slot="separator"] { background: var(--border); }
[data-slot="dropdown-menu-label"] {
  font-size: .6875rem;
  letter-spacing: .07em;
  text-transform: uppercase;
  color: var(--muted-foreground);
}
[data-slot="tooltip-content"] {
  border-radius: var(--radius-md);
  background: #10151f;
  color: #f2f5fa;
  font-size: .78125rem;
  padding: .375rem .625rem;
  box-shadow: var(--mo-shadow-3);
}
.dark [data-slot="tooltip-content"] { background: #222a38; color: #eef2f8; }

/* --------------------------------------------------------------------------
   9. 标签页 / 徽章 / 状态
   -------------------------------------------------------------------------- */
[data-slot="tabs-list"] {
  background: var(--muted);
  border-radius: var(--radius-md);
  padding: 3px;
  gap: 2px;
}
[data-slot="tabs-trigger"] {
  border-radius: calc(var(--radius-md) - 2px);
  font-weight: 500;
  transition: background-color .18s ease, color .18s ease, box-shadow .18s ease;
}
[data-slot="tabs-trigger"][data-state="active"],
[data-slot="tabs-trigger"][aria-selected="true"] {
  background: var(--card);
  color: var(--foreground);
  box-shadow: var(--mo-shadow-1);
}
[data-slot="badge-cell"],
[data-slot="status-badge"],
[data-slot="badge"] {
  border-radius: 999px;
  font-weight: 500;
  letter-spacing: .01em;
}

/* --------------------------------------------------------------------------
   10. 其它零件
   -------------------------------------------------------------------------- */
[data-slot="switch"] { border-radius: 999px; }
[data-slot="switch"][data-state="checked"],
[data-slot="switch"][aria-checked="true"] { background: var(--primary); }
[data-slot="switch-thumb"] { box-shadow: 0 1px 3px rgba(16, 24, 40, .28); }

[data-slot="checkbox"],
[data-slot="radio-group-item"] { border-color: var(--input); }
[data-slot="checkbox"][data-state="checked"],
[data-slot="radio-group-item"][data-state="checked"] { background: var(--primary); border-color: var(--primary); }

[data-slot="progress-track"] {
  background: var(--muted);
  border-radius: 999px;
  overflow: hidden;
}
[data-slot="progress-indicator"] { background: var(--primary); border-radius: 999px; }

[data-slot="skeleton"] {
  border-radius: var(--radius-md);
  background: linear-gradient(90deg,
    var(--muted) 25%,
    color-mix(in srgb, var(--muted) 55%, var(--card)) 37%,
    var(--muted) 63%);
  background-size: 400% 100%;
}

[data-slot="alert"] { border-radius: var(--radius-lg); border-color: var(--border); }
[data-slot="empty-icon"] { color: var(--muted-foreground); opacity: .5; }
[data-slot="empty-title"] { font-weight: 600; letter-spacing: -.01em; }

/* 顶部导航：滚动后自动毛玻璃（不改动未滚动时的透明观感） */
header > div > nav { border-radius: var(--radius-lg); }
header nav a { border-radius: var(--radius-md); }
header nav a[data-status="active"] { color: var(--primary); }

/* 链接 */
a { text-underline-offset: 3px; }

/* --------------------------------------------------------------------------
   11. 无障碍：尊重减弱动效
   -------------------------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
  }
}
