/* ============================================================================
   云渡API UI 覆盖层 v3
   直接作用于已部署前端，无需重新构建
   目标：Hero 氛围光、卡片悬浮、标签交互、层次细节
   ============================================================================ */

/* ---------- 1. 首页 Hero 氛围光（用 main::before 模拟，无需改 DOM） ---------- */
main.relative.z-10::before {
  content: "";
  position: absolute;
  top: -140px;
  left: 50%;
  width: min(1100px, 100vw);
  height: 560px;
  transform: translateX(-50%);
  background: radial-gradient(
    ellipse at 50% 0%,
    rgba(20, 184, 166, 0.14) 0%,
    rgba(20, 184, 166, 0.06) 38%,
    rgba(20, 184, 166, 0) 68%
  );
  filter: blur(38px);
  pointer-events: none;
  z-index: 0;
}

.dark main.relative.z-10::before {
  background: radial-gradient(
    ellipse at 50% 0%,
    rgba(45, 212, 191, 0.20) 0%,
    rgba(45, 212, 191, 0.08) 38%,
    rgba(45, 212, 191, 0) 68%
  );
}

/* 保证内容在氛围光之上 */
main .mx-auto.max-w-6xl {
  position: relative;
  z-index: 1;
}

/* ---------- 2. 功能卡片：悬浮抬升 + 顶部主色光带 ---------- */
main .group.rounded-2xl {
  position: relative;
  overflow: hidden;
  box-shadow: 0 1px 2px rgba(16, 24, 40, 0.045);
  transition:
    transform 300ms cubic-bezier(0.4, 0, 0.2, 1),
    box-shadow 300ms ease,
    border-color 300ms ease;
}

main .group.rounded-2xl::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 2px;
  background: linear-gradient(90deg, transparent, #14b8a6 35%, #2dd4bf 65%, transparent);
  opacity: 0;
  transition: opacity 300ms ease;
  pointer-events: none;
}

main .group.rounded-2xl:hover {
  transform: translateY(-4px);
  border-color: rgba(20, 184, 166, 0.5);
  box-shadow:
    0 4px 10px rgba(16, 24, 40, 0.05),
    0 16px 36px rgba(16, 24, 40, 0.10),
    0 10px 30px rgba(20, 184, 166, 0.18);
}

main .group.rounded-2xl:hover::after {
  opacity: 1;
}

/* 卡片内图标：内高光 + 悬停加强 */
main .group.rounded-2xl > div:first-child {
  box-shadow: 0 6px 16px rgba(20, 184, 166, 0.18), inset 0 1px 0 rgba(255, 255, 255, 0.30);
  transition: box-shadow 300ms ease, transform 300ms cubic-bezier(0.4, 0, 0.2, 1);
}

main .group.rounded-2xl:hover > div:first-child {
  box-shadow: 0 10px 26px rgba(20, 184, 166, 0.30), inset 0 1px 0 rgba(255, 255, 255, 0.42);
}

/* ---------- 3. 特性胶囊（订阅转 API / 会话保持 / 按量计费） ---------- */
main .rounded-full.border.backdrop-blur-sm {
  box-shadow: 0 1px 2px rgba(16, 24, 40, 0.04);
  transition:
    transform 200ms ease,
    box-shadow 200ms ease,
    border-color 200ms ease,
    background-color 200ms ease;
}

main .rounded-full.border.backdrop-blur-sm:hover {
  transform: translateY(-2px);
  border-color: rgba(20, 184, 166, 0.5);
  background-color: rgba(240, 253, 250, 0.9);
  box-shadow: 0 6px 16px rgba(20, 184, 166, 0.15), 0 0 0 3px rgba(20, 184, 166, 0.07);
}

.dark main .rounded-full.border.backdrop-blur-sm:hover {
  background-color: rgba(19, 78, 74, 0.40);
}

/* ---------- 4. 厂商标签 ---------- */
main .ring-1.ring-primary-500\/20 {
  box-shadow: 0 1px 2px rgba(20, 184, 166, 0.08);
  transition:
    transform 200ms ease,
    box-shadow 200ms ease,
    border-color 200ms ease;
}

main .ring-1.ring-primary-500\/20:hover {
  transform: translateY(-2px);
  border-color: rgba(20, 184, 166, 0.6);
  box-shadow: 0 6px 18px rgba(20, 184, 166, 0.20);
}

/* ---------- 5. 区块标题 ---------- */
main h2 {
  letter-spacing: -0.02em;
}

/* ---------- 6. 终端窗口层次 ---------- */
.terminal-window {
  border-radius: 0.9rem;
  box-shadow:
    0 20px 50px rgba(2, 6, 23, 0.32),
    0 0 0 1px rgba(148, 163, 184, 0.14),
    inset 0 1px 0 rgba(255, 255, 255, 0.06);
}

/* ---------- 7. 无障碍：尊重减少动效 ---------- */
@media (prefers-reduced-motion: reduce) {
  main .group.rounded-2xl,
  main .group.rounded-2xl::after,
  main .rounded-full.border.backdrop-blur-sm,
  main .ring-1.ring-primary-500\/20 {
    transition-duration: 0.01ms !important;
  }
  main .group.rounded-2xl:hover,
  main .rounded-full.border.backdrop-blur-sm:hover,
  main .ring-1.ring-primary-500\/20:hover {
    transform: none !important;
  }
}

/* ---------- 8. 玻璃卡片（登录/注册页）层次提升 ---------- */
.card-glass {
  box-shadow:
    0 1px 2px rgba(16, 24, 40, 0.04),
    0 12px 32px rgba(16, 24, 40, 0.07);
  border: 1px solid rgba(16, 24, 40, 0.07);
}

.dark .card-glass {
  box-shadow: 0 16px 40px rgba(0, 0, 0, 0.55);
  border-color: rgba(148, 163, 184, 0.14);
}

/* ---------- 9. 主按钮悬浮：阴影抬起（不改 transform，避免定位副作用） ---------- */
.btn-primary:hover {
  box-shadow:
    0 2px 6px rgba(13, 148, 136, 0.30),
    0 8px 20px rgba(13, 148, 136, 0.22);
}

.btn-primary:active {
  box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.14);
}

/* ---------- 10. 输入框聚焦更明显（登录/注册/后台表单） ---------- */
.input:focus,
input:not([type="checkbox"]):not([type="radio"]):focus,
textarea:focus {
  box-shadow: 0 0 0 3px rgba(20, 184, 166, 0.14);
}

/* ---------- 11. 表格行悬停更柔和 ---------- */
tbody tr:hover {
  background-color: rgba(20, 184, 166, 0.045);
}

.dark tbody tr:hover {
  background-color: rgba(20, 184, 166, 0.08);
}

/* ============================================================================
   登录 / 注册页美化 v5
   依据 AuthLayout.vue + LoginView.vue 的真实类名
   ============================================================================ */

/* ---------- 背景：替换默认渐变，改为青色氛围光 + 细网格 ---------- */
.relative.flex.min-h-screen.items-center.justify-center.overflow-hidden {
  background:
    radial-gradient(ellipse 70% 55% at 50% -5%, rgba(20, 184, 166, 0.16), transparent 68%),
    radial-gradient(ellipse 50% 40% at 100% 100%, rgba(13, 148, 136, 0.10), transparent 65%),
    linear-gradient(180deg, #f9fdfc 0%, #ffffff 55%) !important;
}

.dark .relative.flex.min-h-screen.items-center.justify-center.overflow-hidden {
  background:
    radial-gradient(ellipse 70% 55% at 50% -5%, rgba(45, 212, 191, 0.20), transparent 68%),
    radial-gradient(ellipse 50% 40% at 100% 100%, rgba(13, 148, 136, 0.14), transparent 65%),
    linear-gradient(180deg, #08111f 0%, #0b1220 55%) !important;
}

/* 隐藏原有装饰球与网格，避免和上面叠成脏色 */
.relative.flex.min-h-screen.items-center.justify-center.overflow-hidden
  > .absolute.inset-0.bg-gradient-to-br,
.relative.flex.min-h-screen.items-center.justify-center.overflow-hidden
  > .pointer-events-none.absolute.inset-0.overflow-hidden {
  display: none !important;
}

/* ---------- 品牌区：Logo 加大圆角 + 光晕 ---------- */
.relative.z-10.w-full.max-w-md:has(> .card-glass) .mb-8.text-center > div:first-child,
.relative.z-10.w-full.max-w-md:has(> .card-glass) .mb-8.text-center > div:first-child.rounded-2xl {
  border-radius: 20px !important;
  box-shadow:
    0 8px 24px rgba(20, 184, 166, 0.28),
    0 0 0 1px rgba(20, 184, 166, 0.16),
    inset 0 1px 0 rgba(255, 255, 255, 0.5) !important;
}

/* 站名：字距收紧 */
.relative.z-10.w-full.max-w-md:has(> .card-glass) .mb-8.text-center h1 {
  letter-spacing: -0.03em;
  font-weight: 800;
}

/* 副标题 */
.relative.z-10.w-full.max-w-md:has(> .card-glass) .mb-8.text-center p {
  color: #64748b;
  font-size: 13.5px;
  line-height: 1.6;
  max-width: 340px;
  margin-left: auto;
  margin-right: auto;
}

.dark .relative.z-10.w-full.max-w-md:has(> .card-glass) .mb-8.text-center p {
  color: #94a3b8;
}

/* ---------- 主卡片：更明确的层次 ---------- */
.relative.z-10.w-full.max-w-md:has(> .card-glass) > .card-glass {
  border-radius: 20px !important;
  padding: 32px !important;
  border: 1px solid rgba(16, 24, 40, 0.07) !important;
  box-shadow:
    0 1px 2px rgba(16, 24, 40, 0.04),
    0 4px 12px rgba(16, 24, 40, 0.05),
    0 20px 48px rgba(16, 24, 40, 0.08) !important;
}

.dark .relative.z-10.w-full.max-w-md:has(> .card-glass) > .card-glass {
  border-color: rgba(148, 163, 184, 0.14) !important;
  box-shadow:
    0 1px 2px rgba(0, 0, 0, 0.3),
    0 20px 48px rgba(0, 0, 0, 0.5) !important;
}

/* 卡片内标题 */
.relative.z-10.w-full.max-w-md:has(> .card-glass) > .card-glass h2 {
  letter-spacing: -0.02em;
  font-size: 22px !important;
}

/* ---------- 输入框：加高、圆角、聚焦光环 ---------- */
.relative.z-10.w-full.max-w-md:has(> .card-glass) .input {
  height: 46px;
  border-radius: 12px !important;
  border-color: rgba(16, 24, 40, 0.12) !important;
  background: #fff !important;
  font-size: 14.5px;
  transition:
    border-color 180ms ease,
    box-shadow 180ms ease,
    background-color 180ms ease;
}

.dark .relative.z-10.w-full.max-w-md:has(> .card-glass) .input {
  background: rgba(15, 23, 42, 0.7) !important;
  border-color: rgba(148, 163, 184, 0.18) !important;
}

.relative.z-10.w-full.max-w-md:has(> .card-glass) .input:hover:not(:focus) {
  border-color: rgba(16, 24, 40, 0.2) !important;
}

.relative.z-10.w-full.max-w-md:has(> .card-glass) .input:focus {
  border-color: #14b8a6 !important;
  box-shadow:
    0 0 0 3px rgba(20, 184, 166, 0.14),
    0 1px 2px rgba(20, 184, 166, 0.10) !important;
  background: #fff !important;
}

.dark .relative.z-10.w-full.max-w-md:has(> .card-glass) .input:focus {
  background: rgba(15, 23, 42, 0.9) !important;
}

/* 输入框左侧图标位置微调 */
.relative.z-10.w-full.max-w-md:has(> .card-glass) .input.pl-11 {
  padding-left: 2.85rem !important;
}

/* 标签 */
.relative.z-10.w-full.max-w-md:has(> .card-glass) .input-label {
  font-size: 13.5px;
  font-weight: 600;
  color: #344054;
  margin-bottom: 7px;
}

.dark .relative.z-10.w-full.max-w-md:has(> .card-glass) .input-label {
  color: #cbd5e1;
}

/* ---------- 主按钮：加高 + 渐层 + 悬浮抬起 ---------- */
.relative.z-10.w-full.max-w-md:has(> .card-glass) .btn-primary {
  height: 46px;
  border-radius: 12px !important;
  font-size: 15px;
  font-weight: 600;
  letter-spacing: 0.01em;
  background: linear-gradient(180deg, #14b8a6 0%, #0d9488 100%) !important;
  border: 1px solid #0d9488 !important;
  box-shadow:
    0 1px 2px rgba(13, 148, 136, 0.3),
    inset 0 1px 0 rgba(255, 255, 255, 0.16) !important;
  transition: box-shadow 180ms ease, filter 180ms ease;
}

.relative.z-10.w-full.max-w-md:has(> .card-glass) .btn-primary:hover:not(:disabled) {
  filter: brightness(1.05);
  box-shadow:
    0 4px 14px rgba(13, 148, 136, 0.34),
    0 1px 2px rgba(13, 148, 136, 0.3),
    inset 0 1px 0 rgba(255, 255, 255, 0.2) !important;
}

.relative.z-10.w-full.max-w-md:has(> .card-glass) .btn-primary:active:not(:disabled) {
  filter: brightness(0.97);
  box-shadow: inset 0 2px 5px rgba(0, 0, 0, 0.18) !important;
}

.relative.z-10.w-full.max-w-md:has(> .card-glass) .btn-primary:disabled {
  opacity: 0.6;
  filter: saturate(0.6);
}

/* ---------- 次要按钮（Passkey 等） ---------- */
.relative.z-10.w-full.max-w-md:has(> .card-glass) .btn-secondary {
  height: 44px;
  border-radius: 12px !important;
  border-color: rgba(16, 24, 40, 0.12) !important;
  font-weight: 550;
  transition: background-color 180ms ease, border-color 180ms ease;
}

.relative.z-10.w-full.max-w-md:has(> .card-glass) .btn-secondary:hover {
  background-color: #f8fafc !important;
  border-color: rgba(16, 24, 40, 0.2) !important;
}

.dark .relative.z-10.w-full.max-w-md:has(> .card-glass) .btn-secondary:hover {
  background-color: rgba(30, 41, 59, 0.8) !important;
}

/* ---------- 分隔线 ---------- */
.relative.z-10.w-full.max-w-md:has(> .card-glass) .h-px {
  background: linear-gradient(90deg, transparent, rgba(16, 24, 40, 0.1), transparent) !important;
}

.dark .relative.z-10.w-full.max-w-md:has(> .card-glass) .h-px {
  background: linear-gradient(90deg, transparent, rgba(148, 163, 184, 0.2), transparent) !important;
}

/* ---------- 底部链接 ---------- */
.relative.z-10.w-full.max-w-md:has(> .card-glass) .mt-6.text-center a {
  font-weight: 600;
  transition: color 160ms ease;
}

.relative.z-10.w-full.max-w-md:has(> .card-glass) .mt-8.text-center {
  color: #98a2b3;
  letter-spacing: 0.01em;
}

/* ---------- 表单整体间距 ---------- */
.relative.z-10.w-full.max-w-md:has(> .card-glass) form.space-y-5 > * + * {
  margin-top: 18px;
}

/* ============================================================================
   仪表盘美化 v5
   ============================================================================ */

/* ---------- 统计卡片：顶部主色细线 + 悬浮抬起 ---------- */
main .card.p-4 {
  position: relative;
  overflow: hidden;
  border-radius: 14px !important;
  border-color: rgba(16, 24, 40, 0.07) !important;
  box-shadow: 0 1px 2px rgba(16, 24, 40, 0.04) !important;
  transition:
    transform 260ms cubic-bezier(0.4, 0, 0.2, 1),
    box-shadow 260ms ease,
    border-color 260ms ease;
}

main .card.p-4::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 2px;
  background: linear-gradient(90deg, transparent, #14b8a6 40%, #2dd4bf 60%, transparent);
  opacity: 0;
  transition: opacity 260ms ease;
  pointer-events: none;
}

main .card.p-4:hover {
  transform: translateY(-3px);
  border-color: rgba(20, 184, 166, 0.35) !important;
  box-shadow:
    0 4px 10px rgba(16, 24, 40, 0.05),
    0 12px 28px rgba(16, 24, 40, 0.09),
    0 6px 20px rgba(20, 184, 166, 0.12) !important;
}

main .card.p-4:hover::after {
  opacity: 1;
}

/* 统计卡片图标块 */
main .card.p-4 .rounded-lg.p-2 {
  border-radius: 10px !important;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.4);
  transition: box-shadow 260ms ease;
}

main .card.p-4:hover .rounded-lg.p-2 {
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.5),
    0 4px 12px rgba(16, 24, 40, 0.1);
}

/* 统计数值：字距收紧、数字等宽 */
main .card.p-4 .text-xl.font-bold {
  letter-spacing: -0.025em;
  font-variant-numeric: tabular-nums;
}

/* ---------- 通用卡片（图表 / 最近用量 / 快捷操作） ---------- */
main .card {
  border-radius: 14px !important;
  border-color: rgba(16, 24, 40, 0.07) !important;
  box-shadow: 0 1px 2px rgba(16, 24, 40, 0.04) !important;
  transition: box-shadow 260ms ease, border-color 260ms ease;
}

.dark main .card {
  border-color: rgba(148, 163, 184, 0.13) !important;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.25) !important;
}

main .card:hover {
  box-shadow:
    0 2px 6px rgba(16, 24, 40, 0.05),
    0 8px 24px rgba(16, 24, 40, 0.07) !important;
  border-color: rgba(16, 24, 40, 0.1) !important;
}

.dark main .card:hover {
  border-color: rgba(148, 163, 184, 0.22) !important;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.35) !important;
}

/* 卡片头部 */
main .card .border-b {
  border-bottom-color: rgba(16, 24, 40, 0.06) !important;
}

.dark main .card .border-b {
  border-bottom-color: rgba(148, 163, 184, 0.12) !important;
}

main .card h3,
main .card .text-lg.font-semibold {
  letter-spacing: -0.015em;
}

/* ---------- 快捷操作条目：悬停背景 + 箭头位移 ---------- */
main .card .space-y-3 > a,
main .card .space-y-3 > button,
main .card .space-y-3 > div.group,
main .card a.group,
main .card button.group {
  border-radius: 10px;
  transition: background-color 180ms ease;
}

main .card .space-y-3 > a:hover,
main .card .space-y-3 > button:hover,
main .card a.group:hover,
main .card button.group:hover {
  background-color: rgba(20, 184, 166, 0.06);
}

.dark main .card a.group:hover,
.dark main .card button.group:hover {
  background-color: rgba(45, 212, 191, 0.1);
}

/* 箭头图标悬停右移 */
main .card .group svg:last-child {
  transition: transform 180ms ease;
}

main .card .group:hover svg:last-child {
  transform: translateX(3px);
}

/* ---------- 表格（最近用量）---------- */
main table {
  font-size: 13.5px;
}

main table thead th {
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: #667085;
  background: rgba(248, 250, 252, 0.8);
  border-bottom-color: rgba(16, 24, 40, 0.07) !important;
}

.dark main table thead th {
  color: #94a3b8;
  background: rgba(15, 23, 42, 0.6);
  border-bottom-color: rgba(148, 163, 184, 0.14) !important;
}

main table tbody td {
  border-bottom-color: rgba(16, 24, 40, 0.05) !important;
}

.dark main table tbody td {
  border-bottom-color: rgba(148, 163, 184, 0.09) !important;
}

main table tbody tr {
  transition: background-color 140ms ease;
}

main table tbody tr:hover {
  background-color: rgba(20, 184, 166, 0.045) !important;
}

.dark main table tbody tr:hover {
  background-color: rgba(45, 212, 191, 0.07) !important;
}

/* 数字列等宽对齐 */
main table td.tabular-nums,
main table td .tabular-nums,
main table td.text-right {
  font-variant-numeric: tabular-nums;
}

/* ---------- 图表容器 ---------- */
main .card canvas,
main .card svg.recharts-surface {
  border-radius: 8px;
}

/* ---------- 标签 / 徽章 ---------- */
main .card .rounded-full.px-2,
main .card .rounded-full.px-2\.5 {
  font-weight: 600;
  letter-spacing: 0.01em;
}

/* ---------- 减少动效 ---------- */
@media (prefers-reduced-motion: reduce) {
  main .card.p-4,
  main .card.p-4::after,
  main .card,
  main .card .group svg:last-child {
    transition-duration: 0.01ms !important;
  }
  main .card.p-4:hover,
  main .card .group:hover svg:last-child {
    transform: none !important;
  }
}

/* ============================================================================
   v6 登录/注册页：深色玻璃主题（全局生效，一眼可见）
   ============================================================================ */

/* 背景改为深色 + 青色极光 */
.relative.flex.min-h-screen.items-center.justify-center.overflow-hidden {
  background:
    radial-gradient(ellipse 90% 60% at 20% -10%, rgba(20, 184, 166, 0.30), transparent 60%),
    radial-gradient(ellipse 70% 50% at 85% 110%, rgba(13, 148, 136, 0.26), transparent 62%),
    radial-gradient(ellipse 45% 35% at 50% 45%, rgba(45, 212, 191, 0.10), transparent 70%),
    linear-gradient(165deg, #0a1424 0%, #0b1220 50%, #081019 100%) !important;
}

/* 玻璃卡片：深色半透明 + 毛玻璃 */
.relative.z-10.w-full.max-w-md:has(> .card-glass) > .card-glass {
  background: rgba(15, 23, 42, 0.62) !important;
  backdrop-filter: blur(22px) saturate(1.4) !important;
  -webkit-backdrop-filter: blur(22px) saturate(1.4) !important;
  border: 1px solid rgba(148, 163, 184, 0.18) !important;
  box-shadow:
    0 1px 2px rgba(0, 0, 0, 0.4),
    0 24px 60px rgba(0, 0, 0, 0.55),
    inset 0 1px 0 rgba(255, 255, 255, 0.06) !important;
}

/* 文字全部转浅色 */
.relative.z-10.w-full.max-w-md:has(> .card-glass) h1,
.relative.z-10.w-full.max-w-md:has(> .card-glass) h2,
.relative.z-10.w-full.max-w-md:has(> .card-glass) .text-gray-900,
.relative.z-10.w-full.max-w-md:has(> .card-glass) .text-gray-700 {
  color: #f8fafc !important;
}

.relative.z-10.w-full.max-w-md:has(> .card-glass) .text-gray-500,
.relative.z-10.w-full.max-w-md:has(> .card-glass) .text-gray-400 {
  color: #94a3b8 !important;
}

.relative.z-10.w-full.max-w-md:has(> .card-glass) .input-label {
  color: #cbd5e1 !important;
}

/* 输入框：深色内嵌 */
.relative.z-10.w-full.max-w-md:has(> .card-glass) .input {
  background: rgba(2, 6, 23, 0.55) !important;
  border-color: rgba(148, 163, 184, 0.22) !important;
  color: #f1f5f9 !important;
  box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.35) !important;
}

.relative.z-10.w-full.max-w-md:has(> .card-glass) .input::placeholder {
  color: #64748b !important;
}

.relative.z-10.w-full.max-w-md:has(> .card-glass) .input:focus {
  background: rgba(2, 6, 23, 0.75) !important;
  border-color: #2dd4bf !important;
  box-shadow:
    0 0 0 3px rgba(45, 212, 191, 0.18),
    inset 0 1px 3px rgba(0, 0, 0, 0.35) !important;
}

/* 输入框内图标转浅色 */
.relative.z-10.w-full.max-w-md:has(> .card-glass) .text-gray-400 svg,
.relative.z-10.w-full.max-w-md:has(> .card-glass) button svg {
  color: #94a3b8 !important;
}

/* 次按钮（Passkey 等）深色化 */
.relative.z-10.w-full.max-w-md:has(> .card-glass) .btn-secondary {
  background: rgba(30, 41, 59, 0.7) !important;
  border-color: rgba(148, 163, 184, 0.24) !important;
  color: #e2e8f0 !important;
}

.relative.z-10.w-full.max-w-md:has(> .card-glass) .btn-secondary:hover {
  background: rgba(51, 65, 85, 0.8) !important;
  border-color: rgba(148, 163, 184, 0.4) !important;
}

/* 密码可见切换图标 */
.relative.z-10.w-full.max-w-md:has(> .card-glass) .absolute.inset-y-0.right-0 {
  color: #94a3b8 !important;
}

/* ---------- v6 仪表盘：统计卡片常驻彩色顶线（一眼可见） ---------- */

/* 顶线常驻显示，四张卡各一色 */
.grid.grid-cols-2.lg\:grid-cols-4 > .card:nth-child(1)::after,
.grid.grid-cols-2.lg\:grid-cols-4 > .card:nth-child(2)::after,
.grid.grid-cols-2.lg\:grid-cols-4 > .card:nth-child(3)::after,
.grid.grid-cols-2.lg\:grid-cols-4 > .card:nth-child(4)::after {
  opacity: 1;
  height: 3px;
}

.grid.grid-cols-2.lg\:grid-cols-4 > .card:nth-child(1)::after {
  background: linear-gradient(90deg, #10b981, #34d399);
}

.grid.grid-cols-2.lg\:grid-cols-4 > .card:nth-child(2)::after {
  background: linear-gradient(90deg, #3b82f6, #60a5fa);
}

.grid.grid-cols-2.lg\:grid-cols-4 > .card:nth-child(3)::after {
  background: linear-gradient(90deg, #8b5cf6, #a78bfa);
}

.grid.grid-cols-2.lg\:grid-cols-4 > .card:nth-child(4)::after {
  background: linear-gradient(90deg, #f59e0b, #fbbf24);
}

/* 图表卡片顶线常驻（青色主题线） */
main .card:not(.grid.grid-cols-2 > .card) {
  border-top: 2px solid rgba(20, 184, 166, 0.35);
}
/* ============================================================================
   云渡API UI 覆盖层 v7 —— 仪表盘「浅色专业风」
   目标：去消费风（薄荷渐变 / 彩虹顶线 / 大色块），转数据工具的克制专业感：
   中性底色、细边框卡片、单一品牌强调色、等宽数字、清晰的层级。
   作用域仅 Dashboard 相关元素（main 下的 card/stats/chart），不影响登录页与落地页。
   ============================================================================ */

/* ---------- 1. 页面底色：中性浅灰，去 mesh 薄荷渐变 ---------- */
/* AppLayout 的 mesh 装饰层直接隐去（浅色下它是彩色来源） */
body:not(.dark) .pointer-events-none.fixed.inset-0.bg-mesh-gradient {
  display: none !important;
}

/* 主内容区改为纯中性底 */
body:not(.dark) main.relative.z-10,
body:not(.dark) div.min-h-screen.bg-gray-50 {
  background-color: #f6f7f9 !important;
}

/* 登录页/落地页的 Hero 氛围光不属于 Dashboard，保持原样；
   但 Dashboard 里若命中 main::before 也一并去光 */
body:not(.dark) main.relative.z-10::before {
  background: none !important;
  filter: none !important;
  display: none !important;
}

/* ---------- 2. 卡片：白底 + 细边框 + 克制阴影，去彩虹顶线 ---------- */
body:not(.dark) main .card {
  background: #ffffff !important;
  border: 1px solid #e4e7ec !important;
  border-top: 1px solid #e4e7ec !important;   /* 覆盖 v6 的彩色 border-top */
  border-radius: 12px !important;
  box-shadow: 0 1px 2px rgba(16, 24, 40, 0.04) !important;
}

/* 干掉 v5/v6 的常驻/悬停彩虹顶线与悬浮位移 */
body:not(.dark) main .card::after {
  display: none !important;
}
body:not(.dark) main .card.p-4::after {
  display: none !important;
}
body:not(.dark) main .card:hover {
  transform: none !important;
  border-color: #d0d5dd !important;
  box-shadow:
    0 1px 3px rgba(16, 24, 40, 0.06),
    0 6px 16px rgba(16, 24, 40, 0.06) !important;
}
body:not(.dark) main .card.p-4:hover {
  transform: none !important;
}

/* ---------- 3. 统计数值：等宽 + 大字号 + 强弱两级 ---------- */
/* 主数值：更深的中性色，去彩色（余额/消费等数字不再五颜六色） */
body:not(.dark) main .card .text-xl.font-bold,
body:not(.dark) main .card .text-2xl.font-bold {
  color: #101828 !important;
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.02em;
}

/* 数字保留语义色的仅剩涨跌类（active 计数、消费），统一收敛为 ink / muted */
body:not(.dark) main .card .text-emerald-600,
body:not(.dark) main .card .text-purple-600 {
  color: #101828 !important;
}
body:not(.dark) main .card .text-green-600 {
  color: #067647 !important;   /* 辅助语义绿保留但压深 */
}

/* 标签行：次级灰 */
body:not(.dark) main .card .text-xs.font-medium,
body:not(.dark) main .card .text-xs {
  color: #667085 !important;
}

/* ---------- 4. 图标块：去大色块底，统一浅灰底 + 品牌色描边感 ---------- */
body:not(.dark) main .card .rounded-lg.p-2 {
  background: #f2f4f7 !important;
  border-radius: 10px !important;
  box-shadow: none !important;
}
/* 图标本体统一为品牌 teal 的深阶（专业单一强调色） */
body:not(.dark) main .card .rounded-lg.p-2 svg,
body:not(.dark) main .card .rounded-lg.p-2 svg * {
  color: #0e9384 !important;
  stroke: #0e9384 !important;
}

/* ---------- 5. 图表：网格线更浅、标题更中性 ---------- */
body:not(.dark) main .card h3 {
  color: #1d2939 !important;
  font-weight: 600 !important;
}

/* 表格行分隔线更浅 */
body:not(.dark) main .card table tr {
  border-color: #f2f4f7 !important;
}

/* ---------- 6. 按钮 / 交互控件回归品牌 teal ---------- */
body:not(.dark) main .btn.btn-secondary {
  background: #ffffff !important;
  border: 1px solid #d0d5dd !important;
  color: #344054 !important;
  box-shadow: 0 1px 2px rgba(16, 24, 40, 0.05) !important;
}
body:not(.dark) main .btn.btn-secondary:hover {
  background: #f9fafb !important;
  border-color: #98a2b3 !important;
}

/* ---------- 7. 残留彩色数字全收敛（性能指标/平均响应等） ---------- */
body:not(.dark) main .card .text-violet-600, body:not(.dark) main .card .text-violet-500,
body:not(.dark) main .card .text-rose-600,   body:not(.dark) main .card .text-rose-500,
body:not(.dark) main .card .text-amber-600,  body:not(.dark) main .card .text-amber-500,
body:not(.dark) main .card .text-blue-600,   body:not(.dark) main .card .text-blue-500,
body:not(.dark) main .card .text-indigo-600, body:not(.dark) main .card .text-indigo-500 {
  color: #101828 !important;
}

/* ============================================================================
   修复 v8.1 —— 卡片 overflow:hidden 裁掉内部下拉面板
   ----------------------------------------------------------------------------
   现象：仪表盘「时间范围」点开后，下拉面板只露出顶部几十像素，下半部分
   （预设后几行 + 自定义输入 + 「应用」按钮）被卡片边缘裁掉，视觉上像被
   下方内容遮挡。
   根因：v5 的 `main .card.p-4 { overflow: hidden }` 本意是裁掉顶部装饰线
   超出圆角的部分，但它同时裁掉了卡内的绝对定位下拉面板（.date-picker-dropdown
   / .select-dropdown）。装饰线两端本就渐隐为透明（linear-gradient 0%/100%
   均为 transparent），因此对这类卡片放开裁剪没有视觉副作用。
   作用域：仅对"含下拉触发器"的卡片放开，其余卡片保持原有裁剪行为。
   ============================================================================ */
main .card.p-4:has(.date-picker-trigger),
main .card.p-4:has(.select-trigger) {
  overflow: visible;
}
