/* ============================================================
   TQAI 深色主题 v2 —— nginx 注入，不改镜像
   基调：近黑底 + 青绿/蓝光晕 + 深色玻璃卡片
   撤销：删掉 nginx 的 sub_filter 与 /static/custom-theme.css
   ============================================================ */

:root {
  --tq-bg: #06080c;
  --tq-bg-soft: #0a0f16;
  --tq-card: #0e141c;
  --tq-card-2: #111922;
  --tq-line: rgba(255, 255, 255, 0.10);
  --tq-line-soft: rgba(255, 255, 255, 0.06);
  --tq-fg: #e9f1f8;
  --tq-fg-dim: #a3b3c2;
  --tq-fg-mute: #7b8b9b;
  --tq-acc: #2ee6a8;
  --tq-acc-2: #22b8ff;
  --tq-violet: #a78bfa;
  color-scheme: dark;
}

/* ---------- 基底：一次性铺满，避免多层半透明叠成灰雾 ---------- */
html {
  background-color: var(--tq-bg) !important;
  background-image:
    radial-gradient(900px 520px at 12% -10%, rgba(46, 230, 168, 0.15), transparent 62%),
    radial-gradient(760px 460px at 88% -8%, rgba(34, 184, 255, 0.13), transparent 60%),
    radial-gradient(680px 460px at 50% 112%, rgba(167, 139, 250, 0.09), transparent 66%),
    linear-gradient(180deg, #070a10 0%, #06080c 58%, #05070a 100%) !important;
  background-attachment: fixed !important;
  background-repeat: no-repeat !important;
}

body {
  background: transparent !important;
  background-color: transparent !important;
  color: var(--tq-fg) !important;
}

#app { background: transparent !important; }

/* 全屏容器一律透明，让 html 的光晕透出来 */
.bg-gray-50, .bg-gray-100, .bg-slate-50, .bg-slate-100,
.min-h-screen.bg-gray-50, .min-h-screen {
  background-color: transparent !important;
}

/* ---------- 首页根容器：命中真实类名 from-gray-50/via-primary-50/to-gray-100 ---------- */
.min-h-screen.bg-gradient-to-br,
.min-h-screen[class*="bg-gradient-to-br"] {
  background-image:
    radial-gradient(920px 520px at 12% -10%, rgba(46, 230, 168, 0.18), transparent 62%),
    radial-gradient(760px 460px at 88% -8%, rgba(34, 184, 255, 0.16), transparent 60%),
    radial-gradient(680px 460px at 50% 112%, rgba(167, 139, 250, 0.10), transparent 66%),
    linear-gradient(180deg, #070a10 0%, #06080c 58%, #05070a 100%) !important;
  background-color: #06080c !important;
}

/* 认证页背景是独立的 absolute 渐变层（无 min-h-screen），按 from-gray-50 精准命中 */
[class*="from-gray-50"],
[class*="from-slate-50"] {
  background-image:
    radial-gradient(920px 520px at 12% -10%, rgba(46, 230, 168, 0.16), transparent 62%),
    radial-gradient(760px 460px at 88% -8%, rgba(34, 184, 255, 0.14), transparent 60%),
    radial-gradient(680px 460px at 50% 112%, rgba(167, 139, 250, 0.09), transparent 66%),
    linear-gradient(180deg, #070a10 0%, #06080c 58%, #05070a 100%) !important;
  background-color: #06080c !important;
}

/* 浅色装饰光斑在深色底上保留为柔光，但压低强度 */
.min-h-screen .bg-primary-400\/20 { background-color: rgba(46, 230, 168, 0.10) !important; }
.min-h-screen .bg-primary-300\/20 { background-color: rgba(34, 184, 255, 0.09) !important; }

/* ---------- 文字 ---------- */
.text-gray-900, .text-gray-800, .text-gray-700, .text-black { color: var(--tq-fg) !important; }
.text-gray-600 { color: #c2d0dd !important; }
.text-gray-500 { color: var(--tq-fg-dim) !important; }
.text-gray-400 { color: var(--tq-fg-mute) !important; }

/* 提高特异性再压一遍（Tailwind 的 utilities 层可能抢占） */
html body .text-gray-900, html body .text-gray-800, html body .text-gray-700 { color: #eaf3fb !important; }
html body .text-gray-600 { color: #c3d2df !important; }
html body .text-gray-500 { color: #a8b8c6 !important; }
html body .text-gray-400 { color: #8698a8 !important; }

/* 首页正文：标题亮、说明文字可读 */
main h1, main h2, main h3 { color: #f2f8fd !important; }
main p { color: #b9c8d6 !important; }
main p.text-sm, main .text-sm { color: #aebdca !important; }

/* 首页大标题 */
main h1, main .text-5xl, main .text-6xl, main .text-7xl {
  color: #f6fcff !important;
  letter-spacing: -0.02em;
}
@supports (background-clip: text) or (-webkit-background-clip: text) {
  main h1, main .text-5xl, main .text-6xl, main .text-7xl {
    background-image: linear-gradient(120deg, #ffffff 0%, #a9ffe4 45%, #63d4ff 80%, #b6a4ff 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
  }
}

/* ---------- 卡片：实色深玻璃（真实类名是 bg-white/60） ---------- */
.bg-white,
[class*="bg-white/"] {
  background-color: var(--tq-card) !important;
}
[class*="bg-white/"] {
  background-color: #0f1620 !important;
}
main [class*="bg-white/"] {
  background-image: linear-gradient(180deg, #111a24 0%, #0c1219 100%) !important;
  border-color: rgba(255, 255, 255, 0.10) !important;
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.06) inset, 0 26px 52px -34px #000;
}

main .rounded-2xl.bg-white,
main .rounded-xl.bg-white {
  background: linear-gradient(180deg, #101822 0%, #0c121a 100%) !important;
  border: 1px solid var(--tq-line-soft) !important;
  box-shadow:
    0 1px 0 0 rgba(255, 255, 255, 0.06) inset,
    0 22px 48px -28px rgba(0, 0, 0, 0.95) !important;
  transition: transform .22s ease, border-color .22s ease, box-shadow .22s ease;
}
main .rounded-2xl.bg-white:hover,
main .rounded-xl.bg-white:hover {
  transform: translateY(-3px);
  border-color: rgba(46, 230, 168, 0.42) !important;
  box-shadow:
    0 1px 0 0 rgba(255, 255, 255, 0.10) inset,
    0 30px 60px -28px rgba(0, 0, 0, 1),
    0 0 40px -16px rgba(46, 230, 168, 0.45) !important;
}

.rounded-2xl, .rounded-xl, .rounded-3xl { border-radius: 16px !important; }

.border, .border-gray-200, .border-gray-100, .border-gray-300,
.border-gray-700, .border-dark-800, .divide-y > * + * {
  border-color: var(--tq-line-soft) !important;
}
[class*="border-gray-200"], [class*="border-gray-100"], [class*="border-gray-300"] {
  border-color: var(--tq-line-soft) !important;
}

.shadow-sm, .shadow, .shadow-md, .shadow-lg, .shadow-xl, .shadow-2xl {
  box-shadow: 0 24px 56px -34px rgba(0, 0, 0, 1) !important;
}

/* ---------- 主按钮 ---------- */
a[href="/login"] button,
button.bg-gradient-to-r,
.bg-gradient-to-r.from-green-500,
.bg-gradient-to-r.from-emerald-500 {
  background-image: linear-gradient(135deg, #38f3b4 0%, #22e0b6 40%, #22b8ff 100%) !important;
  background-color: #2ee6a8 !important;
  color: #04120d !important;
  font-weight: 650 !important;
  border: none !important;
  box-shadow: 0 12px 30px -14px rgba(46, 230, 168, 0.75) !important;
  transition: transform .18s ease, filter .18s ease, box-shadow .18s ease;
}
a[href="/login"] button:hover,
button.bg-gradient-to-r:hover {
  filter: brightness(1.07);
  transform: translateY(-1px);
  box-shadow: 0 18px 40px -16px rgba(46, 230, 168, 0.9) !important;
}

/* ---------- 小标签（订阅转 API / 会话保持 / 按量计费） ---------- */
main .rounded-full.bg-white,
main .rounded-full.bg-gray-100 {
  background: #121a24 !important;
  border: 1px solid var(--tq-line) !important;
  color: var(--tq-fg-dim) !important;
}
main .rounded-full.bg-white svg,
main .rounded-full.bg-gray-100 svg { color: var(--tq-acc) !important; }

/* ---------- 模型徽章 ---------- */
main .rounded-xl.border,
main .rounded-lg.border {
  background: #0f161f !important;
  border-color: var(--tq-line) !important;
  transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}
main .rounded-xl.border:hover,
main .rounded-lg.border:hover {
  border-color: rgba(34, 184, 255, 0.5) !important;
  box-shadow: 0 0 34px -14px rgba(34, 184, 255, 0.75) !important;
  transform: translateY(-1px);
}

/* “已支持”小胶囊：白底绿字在深色里太跳，改成青绿描边 */
main [class*="rounded-full"][class*="bg-green"],
main [class*="rounded-full"][class*="bg-emerald"],
main [class*="rounded-full"][class*="bg-teal"] {
  background-color: rgba(46, 230, 168, 0.13) !important;
  color: #52f0c0 !important;
  border: 1px solid rgba(46, 230, 168, 0.32) !important;
}
main [class*="text-green-6"], main [class*="text-emerald-6"], main [class*="text-emerald-5"] {
  color: #52f0c0 !important;
}

/* ---------- 顶部导航 ---------- */
header {
  background: rgba(6, 8, 12, 0.94) !important;
  border-bottom: 1px solid var(--tq-line) !important;
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.05) inset, 0 24px 40px -34px #000 !important;
}

/* 页脚 */
footer { border-top: 1px solid var(--tq-line-soft) !important; }

/* 主题/语言按钮 */
select {
  background-color: #101720 !important;
  color: var(--tq-fg-dim) !important;
  border: 1px solid var(--tq-line) !important;
}
button.rounded-full.bg-gray-900, .rounded-full.bg-black {
  background: linear-gradient(135deg, #38f3b4, #22b8ff) !important;
  color: #04120d !important;
  border: none !important;
}

/* ---------- 终端卡片 ---------- */
main .rounded-xl.bg-slate-900,
main .bg-slate-900,
main .bg-gray-900.rounded-xl {
  border: 1px solid rgba(46, 230, 168, 0.22) !important;
  box-shadow: 0 34px 70px -36px rgba(0, 0, 0, 1), 0 0 60px -30px rgba(46, 230, 168, 0.6) !important;
}

/* ---------- 页脚 ---------- */
footer, footer * { color: var(--tq-fg-mute) !important; }
footer a:hover { color: var(--tq-acc) !important; }

/* ---------- 表单 / 后台 ---------- */
input, textarea, select {
  background-color: #0e141c !important;
  color: var(--tq-fg) !important;
  border-color: var(--tq-line) !important;
}
input::placeholder, textarea::placeholder { color: var(--tq-fg-mute) !important; }
input:focus, textarea:focus, select:focus {
  border-color: rgba(46, 230, 168, 0.6) !important;
  box-shadow: 0 0 0 3px rgba(46, 230, 168, 0.15) !important;
}

table { border-color: var(--tq-line-soft) !important; }
thead th { background: #0f161f !important; color: var(--tq-fg-dim) !important; }
tbody tr:hover { background: rgba(255, 255, 255, 0.035) !important; }
td, th { border-color: var(--tq-line-soft) !important; }

[role="dialog"], .modal, .popover, .dropdown-menu {
  background: #0b1119 !important;
  border: 1px solid var(--tq-line) !important;
  box-shadow: 0 34px 80px -32px rgba(0, 0, 0, 1) !important;
}

hr { border-color: var(--tq-line-soft) !important; }

/* ---------- 滚动条 / 选中 ---------- */
* { scrollbar-width: thin; scrollbar-color: rgba(255, 255, 255, 0.18) transparent; }
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb {
  background: rgba(255, 255, 255, 0.16);
  border-radius: 999px;
  border: 2px solid transparent;
  background-clip: content-box;
}
::-webkit-scrollbar-thumb:hover { background: rgba(46, 230, 168, 0.5); background-clip: content-box; }
::selection { background: rgba(46, 230, 168, 0.3); color: #fff; }

/* ============================================================
   登录 / 注册 / 认证页（AuthLayout + LoginView 的自定义组件类）
   ============================================================ */

.card-glass {
  background: linear-gradient(180deg, #101822 0%, #0b1119 100%) !important;
  border: 1px solid rgba(255, 255, 255, 0.10) !important;
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.06) inset,
    0 34px 80px -38px rgba(0, 0, 0, 1) !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

/* 渐变标题在深色下要提亮，否则几乎看不见 */
.text-gradient {
  color: #eafff9 !important;
}
@supports (background-clip: text) or (-webkit-background-clip: text) {
  .text-gradient {
    background-image: linear-gradient(115deg, #ffffff 0%, #8dffdd 45%, #5ec8ff 100%) !important;
    -webkit-background-clip: text !important;
    background-clip: text !important;
    -webkit-text-fill-color: transparent !important;
    color: transparent !important;
  }
}

.input-label {
  color: #c8d8e6 !important;
  font-weight: 500 !important;
}

.input {
  background-color: #0c1219 !important;
  border-color: rgba(255, 255, 255, 0.10) !important;
  color: #eaf3fb !important;
}
.input::placeholder { color: #6f8091 !important; }
.input:focus {
  border-color: rgba(46, 230, 168, 0.6) !important;
  box-shadow: 0 0 0 3px rgba(46, 230, 168, 0.14) !important;
  background-color: #0e151d !important;
}

/* 主按钮：品牌青绿 */
.btn-primary {
  background-image: linear-gradient(135deg, #38f3b4 0%, #22e0b6 42%, #22b8ff 100%) !important;
  background-color: #2ee6a8 !important;
  color: #04120d !important;
  border: none !important;
  box-shadow: 0 12px 30px -14px rgba(46, 230, 168, 0.7) !important;
}
.btn-primary:hover:not(:disabled) {
  filter: brightness(1.07);
  box-shadow: 0 18px 40px -16px rgba(46, 230, 168, 0.9) !important;
}

/* disabled 态：原样式是 opacity .5，深色下会糊成一团灰，这里改成清晰的青绿描边 */
.btn:disabled, .btn-primary:disabled {
  opacity: 1 !important;
  background-image: none !important;
  background-color: rgba(46, 230, 168, 0.14) !important;
  color: rgba(220, 255, 244, 0.78) !important;
  border: 1px solid rgba(46, 230, 168, 0.28) !important;
  box-shadow: none !important;
  cursor: not-allowed;
}

/* 次要按钮 */
.btn-secondary {
  background-color: rgba(255, 255, 255, 0.04) !important;
  color: #dbe8f4 !important;
  border: 1px solid rgba(255, 255, 255, 0.10) !important;
}
.btn-secondary:hover {
  background-color: rgba(255, 255, 255, 0.08) !important;
  border-color: rgba(255, 255, 255, 0.18) !important;
}
.btn-ghost { color: #a9b9c8 !important; }
.btn-ghost:hover { color: #eaf3fb !important; }

/* 认证页的说明文字 / 页脚 */
input + button, .input ~ button { color: #7f90a1 !important; }

svg[stroke="currentColor"] { color: inherit; }
main svg[stroke="currentColor"] { color: #d3e6f7; }

/* ============================================================
   锁定深色：移除浅色模式入口（theme-lock.js 同时钉住 localStorage）
   ============================================================ */
button[title*="切换到深色"],
button[title*="切换到浅色"],
button[title*="深色模式"],
button[title*="浅色模式"],
button[title*="切换主题"],
button[aria-label*="深色"],
button[aria-label*="浅色"],
button[aria-label*="主题"] {
  display: none !important;
}

[data-theme-switch], .theme-switch, .theme-toggle {
  display: none !important;
}

/* ============================================================
   站点徽标：与图片的金边呼应（深色底上更醒目）
   ============================================================ */
img[alt="Logo"],
img[src*="/logo.svg"],
header img[class*="object-contain"] {
  border-radius: 10px;
  box-shadow:
    0 0 0 1px rgba(255, 214, 138, 0.22),
    0 10px 26px -14px rgba(255, 200, 90, 0.55);
}
/* 登录/注册页的大徽标 */
.card-glass ~ img[src*="/logo"],
img[class*="h-16"][src*="/logo"] {
  border-radius: 16px;
  box-shadow:
    0 0 0 1px rgba(255, 214, 138, 0.28),
    0 18px 44px -18px rgba(255, 200, 90, 0.6);
}
