/* =====================================================
   代名词AI开放平台 · 高级透明玻璃（Glassmorphism）
   H5 响应式 · 多层玻璃材质 · 流光渐变 · 微交互
   V4 改版：更深的光影层次、更精细的排版、更顺滑的动效
===================================================== */
:root{
  --blue:#2563eb; --blue-d:#1d4ed8; --blue-l:#60a5fa; --blue-xl:#dbeafe;
  --cyan:#0ea5e9; --indigo:#4f46e5; --teal:#0d9488; --violet:#8b5cf6;
  --ink:#0f172a; --sub:#5b6b84; --line:rgba(148,163,184,.22);
  /* 玻璃材质：半透明渐变底 + 高光边缘 + 多层柔影 */
  --glass-bg:linear-gradient(155deg,rgba(255,255,255,.82),rgba(255,255,255,.60));
  --glass-bd:rgba(255,255,255,.78);
  --glass-shadow:
    inset 0 1px 0 rgba(255,255,255,.92),
    inset 0 -1px 0 rgba(255,255,255,.35),
    0 14px 44px rgba(15,23,42,.11),
    0 3px 10px rgba(15,23,42,.05);
  --dark-glass:linear-gradient(160deg,rgba(15,23,42,.92),rgba(15,23,42,.82));
  --radius:20px; --radius-sm:13px;
  --green:#059669; --red:#dc2626; --amber:#d97706;
  --ease:cubic-bezier(.22,.68,.36,1);
}
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;
  color:var(--ink);background:#e8eef8;line-height:1.65;font-size:14px;
  min-height:100vh;-webkit-font-smoothing:antialiased;overflow-x:hidden;
}
::selection{background:rgba(37,99,235,.22)}
::-webkit-scrollbar{width:9px;height:9px}
::-webkit-scrollbar-thumb{background:rgba(100,116,139,.35);border-radius:8px}
::-webkit-scrollbar-thumb:hover{background:rgba(100,116,139,.55)}
::-webkit-scrollbar-track{background:transparent}
a{color:var(--blue);text-decoration:none;transition:color .15s}
code,pre{font-family:"SF Mono",SFMono-Regular,Consolas,Menlo,"Courier New",monospace}
.muted{color:var(--sub)}
.text-danger{color:var(--red)} .text-success{color:var(--green)}
.nowrap{white-space:nowrap} .ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* ---------------- 动态光影背景 ---------------- */
.bg-fx{position:fixed;inset:0;z-index:-2;overflow:hidden;background:
  linear-gradient(165deg,#dbeafe 0%,#eef2ff 28%,#e0e7ff 55%,#d6f3fb 82%,#dbeafe 100%)}
.bg-fx::after{content:'';position:absolute;inset:0;
  background:radial-gradient(120% 70% at 50% -10%,rgba(255,255,255,.55),transparent 55%)}
.bg-fx .blob{position:absolute;border-radius:50%;filter:blur(80px);opacity:.55;
  animation:float 26s ease-in-out infinite alternate;will-change:transform}
.bg-fx .b1{width:52vw;height:52vw;left:-14vw;top:-16vw;background:radial-gradient(circle,#93c5fd,transparent 65%)}
.bg-fx .b2{width:44vw;height:44vw;right:-12vw;top:6vh;background:radial-gradient(circle,#a5b4fc,transparent 65%);animation-delay:-7s}
.bg-fx .b3{width:40vw;height:40vw;left:22vw;bottom:-18vw;background:radial-gradient(circle,#67e8f9,transparent 65%);animation-delay:-13s}
.bg-fx .b4{width:30vw;height:30vw;right:16vw;bottom:-8vh;background:radial-gradient(circle,#c4b5fd,transparent 65%);animation-delay:-4s}
@keyframes float{
  0%{transform:translate(0,0) scale(1)}
  50%{transform:translate(4vw,-3vh) scale(1.09)}
  100%{transform:translate(-3vw,4vh) scale(.94)}
}
@media (prefers-reduced-motion:reduce){
  .bg-fx .blob{animation:none}
  *{transition-duration:.01ms!important}
}

/* ---------------- 玻璃基元 ---------------- */
.glass{background:var(--glass-bg);position:relative;transform:translateZ(0);
  backdrop-filter:blur(14px) saturate(1.5);
  -webkit-backdrop-filter:blur(14px) saturate(1.5);
  border:1px solid var(--glass-bd);box-shadow:var(--glass-shadow);border-radius:var(--radius)}
.glass-dark{background:var(--dark-glass);transform:translateZ(0);
  backdrop-filter:blur(16px) saturate(1.35);-webkit-backdrop-filter:blur(16px) saturate(1.35);
  border:1px solid rgba(255,255,255,.12);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.10),0 14px 44px rgba(2,6,23,.28)}

/* ---------------- 按钮 ---------------- */
.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:7px;
  padding:10px 20px;border-radius:12px;border:1px solid transparent;
  font-size:14px;font-weight:600;cursor:pointer;transition:all .2s var(--ease);
  white-space:nowrap;font-family:inherit;overflow:hidden;user-select:none}
.btn::after{content:'';position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(120deg,transparent 30%,rgba(255,255,255,.28) 50%,transparent 70%);
  transform:translateX(-120%);transition:transform .55s var(--ease)}
.btn:hover::after{transform:translateX(120%)}
.btn-primary{background:linear-gradient(135deg,#3b82f6,#1d4ed8);color:#fff;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.28),0 5px 18px rgba(37,99,235,.38)}
.btn-primary:hover{transform:translateY(-1.5px);box-shadow:inset 0 1px 0 rgba(255,255,255,.28),0 8px 26px rgba(37,99,235,.46)}
.btn-primary:active{transform:translateY(0);box-shadow:0 3px 10px rgba(37,99,235,.4)}
.btn-outline{background:rgba(255,255,255,.72);color:var(--blue-d);border-color:#bfdbfe;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.8)}
.btn-outline:hover{background:#fff;border-color:#93c5fd;transform:translateY(-1px);
  box-shadow:0 5px 16px rgba(37,99,235,.14)}
.btn-ghost{background:transparent;color:var(--sub)}
.btn-ghost:hover{background:rgba(148,163,184,.16);color:var(--ink)}
.btn-danger{background:linear-gradient(135deg,#f87171,#dc2626);color:#fff;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 5px 18px rgba(220,38,38,.32)}
.btn-danger:hover{transform:translateY(-1px);filter:brightness(1.05)}
.btn-sm{padding:7px 14px;font-size:13px;border-radius:10px}
.btn-lg{padding:14px 30px;font-size:15px;border-radius:15px}
.btn-block{width:100%;margin-top:18px}
.btn:disabled{opacity:.55;pointer-events:none}

/* ---------------- 顶部导航 ---------------- */
.nav{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.62);overflow:hidden;
  backdrop-filter:blur(14px) saturate(1.6);-webkit-backdrop-filter:blur(14px) saturate(1.6);
  border-bottom:1px solid rgba(255,255,255,.75);
  box-shadow:0 4px 24px rgba(15,23,42,.06)}
.nav-inner{max-width:1180px;margin:0 auto;padding:0 20px;height:64px;
  display:flex;align-items:center;justify-content:space-between;gap:12px}
.brand{display:flex;align-items:center;gap:11px;font-weight:800;font-size:17px;color:var(--ink);
  letter-spacing:.2px}
.brand-ava{width:38px;height:38px;border-radius:12px;object-fit:cover;flex:none;
  border:1.5px solid rgba(255,255,255,.95);box-shadow:0 3px 14px rgba(37,99,235,.3)}
.nav-links{display:flex;align-items:center;gap:20px}
.nav-links a{color:#334155;font-weight:600;font-size:14px;padding:6px 2px;position:relative}
.nav-links a:not(.btn)::after{content:'';position:absolute;left:2px;right:2px;bottom:0;
  height:2px;border-radius:2px;background:linear-gradient(90deg,var(--blue),var(--cyan));
  transform:scaleX(0);transition:transform .22s var(--ease)}
.nav-links a:not(.btn):hover{color:var(--blue-d)}
.nav-links a:not(.btn):hover::after{transform:scaleX(1)}
.nav-toggle{display:none;background:none;border:0;cursor:pointer;padding:8px}
.ham{display:block;width:22px;height:2px;background:#334155;position:relative;border-radius:2px}
.ham::before,.ham::after{content:'';position:absolute;left:0;width:22px;height:2px;background:#334155;border-radius:2px}
.ham::before{top:-7px}.ham::after{top:7px}

/* ---------------- flash ---------------- */
.flash{max-width:1180px;margin:14px auto 0;padding:12px 18px;border-radius:13px;font-size:13.5px;
  backdrop-filter:blur(12px);box-shadow:0 6px 20px rgba(15,23,42,.08);
  animation:flash-in .3s var(--ease)}
@keyframes flash-in{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
.flash-success{background:rgba(236,253,245,.92);color:#065f46;border:1px solid #a7f3d0}
.flash-error{background:rgba(254,242,242,.92);color:#991b1b;border:1px solid #fecaca}

.page{min-height:62vh}
.wrap{max-width:1180px;margin:0 auto;padding:0 20px}
.wrap-narrow{max-width:960px;margin:0 auto;padding:0 20px}

/* ---------------- 首页 ---------------- */
/* =====================================================
   沉浸式首屏：五字逐笔浮现 · 实时渐变 · 极光玻璃
===================================================== */
.immersive-hero{
  position:relative;
  padding:74px 20px 54px;
  text-align:center;
  overflow:hidden;
  isolation:isolate;
}
@media(max-width:760px){.immersive-hero{padding:52px 18px 42px}}

/* 极光底：四色柔光慢速旋转。
   关键性能修复：径向渐变本身已是柔边，绝不叠加 blur 滤镜——
   此前满屏 blur(60px) 随旋转每帧重算，是首页卡顿的首要元凶。
   去掉滤镜后仅 transform 旋转，走 GPU 合成，几乎零开销。 */
.ih-aurora{
  position:absolute;inset:-32%;z-index:-3;
  background:
    radial-gradient(44% 44% at 22% 30%,rgba(56,189,248,.40),transparent 60%),
    radial-gradient(48% 48% at 80% 22%,rgba(129,140,248,.38),transparent 62%),
    radial-gradient(52% 52% at 58% 84%,rgba(232,121,249,.28),transparent 64%),
    radial-gradient(42% 42% at 12% 82%,rgba(45,212,191,.32),transparent 60%);
  animation:ih-aurora-rot 60s linear infinite;
  will-change:transform;
}
@keyframes ih-aurora-rot{
  0%{transform:rotate(0deg) scale(1.04)}
  50%{transform:rotate(180deg) scale(1.12)}
  100%{transform:rotate(360deg) scale(1.04)}
}

/* 细线网格：大厂基建感 */
.ih-grid{
  position:absolute;inset:0;z-index:-2;pointer-events:none;opacity:.32;
  background-image:
    linear-gradient(rgba(100,116,139,.14) 1px,transparent 1px),
    linear-gradient(90deg,rgba(100,116,139,.14) 1px,transparent 1px);
  background-size:64px 64px;
  mask-image:radial-gradient(72% 58% at 50% 42%,#000 30%,transparent 88%);
  -webkit-mask-image:radial-gradient(72% 58% at 50% 42%,#000 30%,transparent 88%);
  animation:ih-grid-pan 40s linear infinite;
}
@keyframes ih-grid-pan{from{background-position:0 0,0 0}to{background-position:64px 64px,64px 64px}}

/* 漂浮光球 */
.ih-orb{position:absolute;z-index:-1;border-radius:50%;pointer-events:none}
.ih-orb-a{width:120px;height:120px;left:8%;top:26%;
  background:radial-gradient(circle at 32% 32%,rgba(255,255,255,.5),rgba(59,130,246,.30) 42%,transparent 72%);
  animation:ih-orb-float 12s ease-in-out infinite alternate}
.ih-orb-b{width:150px;height:150px;right:6%;top:34%;
  background:radial-gradient(circle at 32% 32%,rgba(255,255,255,.45),rgba(167,139,250,.34) 42%,transparent 72%);
  animation:ih-orb-float 15s ease-in-out infinite alternate-reverse}
@keyframes ih-orb-float{
  0%{transform:translate3d(0,0,0) scale(1)}
  50%{transform:translate3d(28px,-32px,0) scale(1.06)}
  100%{transform:translate3d(-22px,26px,0) scale(.96)}
}

.ih-inner{position:relative;max-width:880px;margin:0 auto;z-index:1}

/* 状态胶囊 */
.ih-chip{
  display:inline-flex;align-items:center;gap:8px;
  padding:6px 16px 6px 12px;border-radius:30px;
  font-size:11.5px;font-weight:700;letter-spacing:.04em;color:#0b4a6f;
  background:rgba(255,255,255,.62);
  border:1px solid rgba(255,255,255,.8);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.9),0 6px 18px rgba(15,23,42,.08);
  backdrop-filter:blur(10px) saturate(1.35);-webkit-backdrop-filter:blur(10px) saturate(1.35);
}
.ih-chip-dot{
  width:7px;height:7px;border-radius:50%;flex:none;
  background:#10b981;position:relative;
}
.ih-chip-dot::after{
  content:'';position:absolute;inset:-3.5px;border-radius:50%;
  border:1.5px solid rgba(16,185,129,.55);animation:pulse-ring 2.2s ease-out infinite;
}

/* 五个字：逐笔从各处浮现 */
.ih-title{
  margin:26px 0 0;
  font-size:clamp(58px,13vw,132px);
  font-weight:900;
  letter-spacing:.02em;
  line-height:1.06;
  display:flex;justify-content:center;align-items:baseline;
  gap:clamp(4px,1.2vw,18px);
  flex-wrap:wrap;
}
.ih-char{
  display:inline-block;
  opacity:0;
  transform:translate3d(var(--dx,0),var(--dy,60px),0) rotate(var(--rot,0deg)) scale(.6);
  filter:blur(14px);
  background:linear-gradient(
    128deg,
    #0f172a 0%,
    #1d4ed8 18%,
    #7c3aed 34%,
    #0891b2 52%,
    #4f46e5 68%,
    #0f172a 100%
  );
  background-size:280% 100%;
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;color:transparent;
  text-shadow:0 22px 58px rgba(37,99,235,.18);
  animation:
    ih-char-in 1.15s var(--ease) var(--d,0s) forwards,
    ih-char-flow 9s linear calc(var(--d,0s) + 1.15s) infinite;
  will-change:transform,opacity,filter,background-position;
}
@keyframes ih-char-in{
  0%{
    opacity:0;
    transform:translate3d(var(--dx,0),var(--dy,60px),0) rotate(var(--rot,0deg)) scale(.6);
    filter:blur(14px);
  }
  58%{
    opacity:1;
    filter:blur(0);
    transform:translate3d(0,-6px,0) rotate(0deg) scale(1.04);
  }
  100%{
    opacity:1;
    filter:blur(0);
    transform:translate3d(0,0,0) rotate(0deg) scale(1);
  }
}
/* 实时渐变流动 */
@keyframes ih-char-flow{
  0%{background-position:0% 50%}
  50%{background-position:100% 50%}
  100%{background-position:0% 50%}
}
/* 浮现后轻微悬浮 */
.ih-char:hover{
  animation:ih-char-flow 4s linear infinite, ih-char-bob 2.2s ease-in-out infinite;
}
@keyframes ih-char-bob{
  0%,100%{transform:translate3d(0,0,0) scale(1)}
  50%{transform:translate3d(0,-10px,0) scale(1.04)}
}

/* 副标题 / 按钮 / URL / 指标 */
.ih-sub{
  margin:22px auto 0;max-width:560px;
  font-size:clamp(15px,2.2vw,19px);
  color:#31415c;line-height:1.85;letter-spacing:.01em;font-weight:500;
}
.ih-actions{
  margin-top:30px;display:flex;gap:14px;justify-content:center;flex-wrap:wrap;
}
.ih-url{
  margin:26px auto 0;max-width:520px;
  display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap;
  padding:13px 18px;border-radius:16px;
}
.ih-url-label{font-size:12.5px;font-weight:700;color:#4a5b76;letter-spacing:.06em;flex:none}

.ih-metrics{
  margin:30px auto 0;max-width:620px;
  display:flex;align-items:center;justify-content:center;gap:clamp(12px,3vw,26px);
  flex-wrap:wrap;
}
.ih-metric{display:flex;flex-direction:column;align-items:center;gap:3px;min-width:76px}
.ih-metric b{
  font-size:clamp(21px,3.4vw,27px);font-weight:800;letter-spacing:-.015em;
  font-variant-numeric:tabular-nums;
  background:linear-gradient(120deg,#0f172a,#2563eb 55%,#0891b2);
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;
}
.ih-metric span{font-size:11.5px;color:#64748b;letter-spacing:.08em;font-weight:600}
.ih-metric-div{width:1px;height:30px;background:linear-gradient(180deg,transparent,rgba(100,116,139,.32),transparent);flex:none}

/* 模型芯片条 */
.ih-models{
  margin:34px auto 0;max-width:820px;padding:0 16px;
  display:flex;gap:9px;justify-content:center;flex-wrap:wrap;position:relative;z-index:1;
}
.ih-chip-model{
  display:inline-flex;align-items:center;gap:7px;
  padding:7px 14px;border-radius:30px;
  background:rgba(255,255,255,.58);
  border:1px solid rgba(255,255,255,.85);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.9),0 4px 12px rgba(15,23,42,.07);
  backdrop-filter:blur(12px) saturate(1.3);-webkit-backdrop-filter:blur(12px) saturate(1.3);
  font-size:12.5px;font-weight:600;color:#2c3a4f;
  transition:transform .22s var(--ease),box-shadow .22s var(--ease);
}
.ih-chip-model:hover{
  transform:translateY(-3px);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.95),0 12px 26px rgba(37,99,235,.18);
}
.ih-chip-model code{font-size:12px;color:#1d4ed8;font-weight:700}
.ih-model-note{
  width:100%;text-align:center;font-size:11.5px;color:#64748b;margin-top:12px;
}

/* 滚动提示 */
.ih-scroll-hint{
  margin:38px auto 0;width:26px;height:42px;border-radius:14px;
  border:1.5px solid rgba(100,116,139,.32);
  display:grid;place-items:start center;padding-top:8px;
}
.ih-scroll-hint span{
  width:3px;height:8px;border-radius:2px;background:rgba(59,130,246,.75);
  animation:ih-scroll-bounce 1.9s ease-in-out infinite;
}
@keyframes ih-scroll-bounce{
  0%,100%{transform:translateY(0);opacity:1}
  60%{transform:translateY(12px);opacity:.18}
}

/* 首屏元素的延迟显现 */
:where(html.js) [data-reveal]{opacity:0;transform:translateY(18px);
  transition:opacity .85s var(--ease),transform .85s var(--ease);
  transition-delay:var(--d,0s)}
[data-reveal].in{opacity:1;transform:none}

/* URL 药丸（沿用） */
.url-pill{display:inline-flex;align-items:center;gap:10px;background:rgba(15,23,42,.9);color:#bfdbfe;
  padding:11px 18px;border-radius:12px;font-size:15px;font-weight:600;cursor:pointer;
  border:1px solid rgba(59,130,246,.42);transition:.18s var(--ease);
  max-width:100%;min-width:0;flex:0 1 auto;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 8px 24px rgba(15,23,42,.22)}
.url-pill code{min-width:0;overflow-x:auto;white-space:nowrap;scrollbar-width:none}
.url-pill code::-webkit-scrollbar{display:none}
.url-pill:hover{background:rgba(15,23,42,.96);transform:translateY(-1px)}
.url-pill .cp{font-size:12px;color:#7dd3fc;border:1px solid rgba(125,211,252,.4);
  padding:2px 8px;border-radius:6px;flex:none}

/* 芯片角标 */
.chip-dot{display:inline-flex;align-items:center;justify-content:center;width:17px;height:17px;
  border-radius:50%;font-size:9.5px;font-style:normal;font-weight:800;color:#fff;flex:none}
.chip-dot-think{background:linear-gradient(135deg,#8b5cf6,#6d28d9);box-shadow:0 2px 8px rgba(139,92,246,.5)}
.chip-dot-vision{background:linear-gradient(135deg,#14b8a6,#0f766e);box-shadow:0 2px 8px rgba(20,184,166,.45)}

/* 示例区 */
.examples{margin:22px 0 40px}
.ex-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}
.ex-tab{padding:8px 18px;border-radius:30px;font-size:13.5px;font-weight:600;cursor:pointer;
  background:rgba(255,255,255,.6);border:1px solid var(--line);color:var(--sub);
  transition:all .18s var(--ease);font-family:inherit}
.ex-tab:hover{color:var(--blue-d);background:rgba(255,255,255,.85)}
.ex-tab.active{background:linear-gradient(135deg,#3b82f6,#1d4ed8);color:#fff;border-color:transparent;
  box-shadow:0 5px 16px rgba(37,99,235,.35)}
.ex-pane{display:none}
.ex-pane.active{display:block;animation:fade-up .3s var(--ease)}
@keyframes fade-up{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.ex-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;gap:10px;flex-wrap:wrap}
.ex-head h3{font-size:15.5px}
.code{background:linear-gradient(160deg,rgba(15,23,42,.94),rgba(2,6,23,.92));color:#e2e8f0;
  padding:20px 22px;border-radius:15px;overflow:auto;font-size:13px;line-height:1.8;white-space:pre;
  backdrop-filter:blur(8px);border:1px solid rgba(148,163,184,.16);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.06),0 12px 32px rgba(2,6,23,.25)}
.code .tk{color:#7dd3fc}
.copyable{cursor:pointer;border-bottom:1px dashed #94a3b8;transition:.15s}
.copyable:hover{border-bottom-color:var(--blue);color:var(--blue-d)}
.copyable:active{opacity:.6}

/* ---------------- 能力区（细线网格 · 高端极简） ---------------- */
.capabilities{margin:10px 0 56px}
.cap-head{max-width:640px;margin-bottom:28px}
.cap-kicker{display:inline-block;font-size:10.5px;font-weight:800;letter-spacing:.2em;color:var(--blue);
  opacity:.9;margin-bottom:10px}
.cap-head h2,.ex-head-line h2{font-size:clamp(21px,2.4vw,26px);font-weight:800;letter-spacing:-.022em;line-height:1.3}
.cap-head p{margin-top:9px;font-size:13.5px;color:var(--sub);line-height:1.75;max-width:520px}

.cap-grid{display:grid;grid-template-columns:repeat(4,1fr);
  border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.cap-item{position:relative;padding:26px 24px 28px 0;transition:background .3s var(--ease);border-radius:2px}
.cap-item+.cap-item{border-left:1px solid var(--line);padding-left:24px}
.cap-item::after{content:'';position:absolute;left:0;right:0;bottom:-1px;height:2px;border-radius:2px;
  background:linear-gradient(90deg,var(--blue),var(--cyan));transform:scaleX(0);transform-origin:left;
  transition:transform .45s var(--ease);opacity:.85}
.cap-item:hover::after{transform:scaleX(1)}
.cap-item:hover{background:linear-gradient(180deg,rgba(37,99,235,.035),transparent 70%)}
.cap-ic{width:42px;height:42px;border-radius:13px;display:grid;place-items:center;margin-bottom:16px;
  color:var(--blue-d);background:linear-gradient(150deg,rgba(37,99,235,.10),rgba(14,165,233,.05));
  border:1px solid rgba(37,99,235,.16);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.8);
  transition:transform .35s var(--ease),background .35s var(--ease),color .35s var(--ease),box-shadow .35s var(--ease)}
.cap-ic svg{width:20px;height:20px;display:block}
.cap-item:hover .cap-ic{transform:translateY(-3px) scale(1.03);color:#fff;
  background:linear-gradient(150deg,#2563eb,#0ea5e9);border-color:transparent;
  box-shadow:0 10px 26px rgba(37,99,235,.32),inset 0 1px 0 rgba(255,255,255,.28)}
.cap-item h3{font-size:14.5px;font-weight:700;letter-spacing:-.01em;margin-bottom:7px}
.cap-item p{font-size:12.5px;color:var(--sub);line-height:1.75}
.cap-item code{font-size:11.5px;background:rgba(148,163,184,.14);padding:1px 5px;border-radius:5px}

/* 首页 CTA */
.home-cta{margin:0 auto 56px}
.cta-card{display:flex;align-items:center;justify-content:space-between;gap:22px;
  padding:26px 30px;flex-wrap:wrap}
.cta-card h2{font-size:19px;font-weight:800;letter-spacing:-.015em}
.cta-card p{font-size:13px;color:var(--sub);margin-top:4px}

/* 示例区标题 */
.ex-head-line{margin-bottom:18px}

/* 客户端参数（高密度信息行，替代表格） */
.client-params{border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.cp-row{display:grid;grid-template-columns:200px 1fr;gap:16px;padding:13px 4px;font-size:13px;
  border-bottom:1px solid var(--line);align-items:center;transition:background .2s}
.cp-row:last-child{border-bottom:0}
.cp-row:hover{background:rgba(37,99,235,.03)}
.cp-row>span{color:var(--sub);font-size:12.5px}
.cp-row>b{font-weight:600}
.cp-row code{font-size:12.5px;color:var(--ink);background:rgba(148,163,184,.14);
  padding:3px 8px;border-radius:6px;word-break:break-all}
.client-note{margin-top:14px;font-size:12.5px}

/* Hero 增强 */
/* ---------------- 交互层：光斑 / 涟漪 / 滚动显现 / 进度 ---------------- */
.glass.has-spot{background-image:
  radial-gradient(340px circle at var(--mx,50%) var(--my,-10%),rgba(255,255,255,.62),transparent 64%),
  var(--glass-bg)}
.cap-item.has-spot{background-image:
  radial-gradient(260px circle at var(--mx,50%) var(--my,0%),rgba(37,99,235,.075),transparent 68%)}
.client-params.has-spot{background-image:
  radial-gradient(300px circle at var(--mx,50%) var(--my,0%),rgba(37,99,235,.05),transparent 70%)}

:where(html.js) [data-reveal] .cap-item{opacity:0;transform:translateY(12px);
  transition:opacity .55s var(--ease),transform .55s var(--ease)}
[data-reveal].in .cap-item{opacity:1;transform:none}
[data-reveal].in .cap-item:nth-child(1){transition-delay:.02s}
[data-reveal].in .cap-item:nth-child(2){transition-delay:.08s}
[data-reveal].in .cap-item:nth-child(3){transition-delay:.14s}
[data-reveal].in .cap-item:nth-child(4){transition-delay:.2s}

.btn{overflow:hidden}
.btn .ripple{position:absolute;border-radius:50%;pointer-events:none;
  background:radial-gradient(circle,rgba(255,255,255,.55),rgba(255,255,255,0) 70%);
  transform:scale(0);animation:ripple .6s ease-out forwards}
@keyframes ripple{to{transform:scale(1);opacity:0}}

.scroll-progress{position:fixed;top:0;left:0;right:0;height:2px;z-index:999;pointer-events:none;
  transform-origin:0 50%;transform:scaleX(0);
  background:linear-gradient(90deg,#2563eb,#0ea5e9 55%,#22d3ee);
  box-shadow:0 0 10px rgba(37,99,235,.55)}

@media (prefers-reduced-motion:reduce){
  [data-reveal],[data-reveal] .cap-item{opacity:1!important;transform:none!important;transition:none!important}
  .pulse-dot::after{animation:none}
}

/* ---------------- 文档页 ---------------- */
.doc-hero{padding:44px 0 8px;text-align:center}
.doc-hero h1{font-size:30px;font-weight:800;letter-spacing:.5px}
.doc-hero p{color:var(--sub);margin-top:8px}
.doc-wrap{padding:22px 0 46px}
.doc-sec{padding:26px 30px;margin-bottom:18px}
.doc-h2{font-size:18px;display:flex;align-items:center;gap:12px;margin-bottom:14px}
.doc-num{width:32px;height:32px;border-radius:10px;background:linear-gradient(135deg,#3b82f6,#1d4ed8);
  color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:14px;flex:none;
  box-shadow:0 4px 14px rgba(37,99,235,.35)}
.doc-sec p{margin-bottom:10px;color:#334155}
.doc-note{margin-top:12px;font-size:13px}

/* ---------------- 表格 ---------------- */
.table-card{overflow-x:auto;border-radius:var(--radius-sm);
  -webkit-overflow-scrolling:touch}
.table{width:100%;border-collapse:collapse;font-size:13.5px;min-width:520px}
.table th{background:rgba(241,245,249,.85);color:#475569;font-weight:700;text-align:left;
  padding:12px 14px;border-bottom:1px solid var(--line);white-space:nowrap;
  backdrop-filter:blur(6px);letter-spacing:.2px}
.table td{padding:11px 14px;border-bottom:1px solid rgba(226,232,240,.7);vertical-align:middle}
.table tbody tr{transition:background .15s}
.table tbody tr:hover{background:rgba(239,246,255,.6)}
.table tbody tr:last-child td{border-bottom:none}
.td-k{color:var(--sub);width:180px;font-weight:600}
.empty{text-align:center;color:var(--sub);padding:36px!important}

/* ---------------- 标签 ---------------- */
.tag{display:inline-block;padding:3px 11px;border-radius:20px;font-size:12px;font-weight:600;
  background:rgba(226,232,240,.85);color:#64748b;margin:1px;border:1px solid rgba(255,255,255,.6);
  backdrop-filter:blur(4px)}
.tag-success{background:rgba(220,252,231,.9);color:#15803d;border-color:#bbf7d0}
.tag-danger{background:rgba(254,226,226,.9);color:#b91c1c;border-color:#fecaca}
.tag-info{background:rgba(224,242,254,.9);color:#0369a1;border-color:#bae6fd}
.tag-warn,.tag-warning{background:rgba(254,243,199,.9);color:#b45309;border-color:#fde68a}
.lat{font-weight:700;font-variant-numeric:tabular-nums}
.lat-good{color:var(--green)} .lat-bad{color:var(--red)}

/* ---------------- 登录/注册 ---------------- */
.auth-wrap{max-width:470px;margin:46px auto;padding:0 18px}
.auth-card{padding:36px 34px}
.auth-head{text-align:center;margin-bottom:24px}
.auth-ava{width:64px;height:64px;border-radius:20px;margin:0 auto 14px;display:block;object-fit:cover;
  border:2px solid rgba(255,255,255,.95);box-shadow:0 10px 28px rgba(37,99,235,.32)}
.auth-head h2{font-size:22px;letter-spacing:.3px}
.auth-head p{color:var(--sub);font-size:13px;margin-top:6px}
.field-label{display:block;font-size:13px;font-weight:700;color:#334155;margin:15px 0 7px}
.field{width:100%;padding:12px 14px;border:1px solid rgba(148,163,184,.4);border-radius:12px;
  font-size:14px;outline:none;font-family:inherit;background:rgba(255,255,255,.85);
  transition:all .18s var(--ease);color:var(--ink)}
.field:hover{border-color:rgba(148,163,184,.6)}
.field:focus{border-color:var(--blue);box-shadow:0 0 0 4px rgba(37,99,235,.13);background:#fff}
.field-sm{padding:8px 11px;font-size:13px}
.textarea{resize:vertical;min-height:96px;line-height:1.6}
.code-row{display:flex;gap:10px}
.code-btn{flex:none}
.captcha-row{display:flex;gap:10px;align-items:center}
.captcha-img{height:46px;border-radius:10px;border:1px solid var(--line);cursor:pointer;background:#fff}
.auth-foot{text-align:center;margin-top:22px;font-size:13.5px;color:var(--sub)}
.auth-dot{margin:0 8px}
.check-row{display:flex;gap:22px;flex-wrap:wrap}
.check{display:flex;align-items:center;gap:7px;font-size:14px;cursor:pointer}
.check input,.chk input{width:16px;height:16px;accent-color:var(--blue)}

/* ---------------- 用户中心 ---------------- */
.container{max-width:1120px;margin:28px auto;padding:0 18px}
.tabs{display:flex;gap:6px;padding:6px;border-radius:15px;margin-bottom:20px;width:fit-content;
  max-width:100%;overflow:auto;flex-wrap:wrap;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.9),0 6px 20px rgba(15,23,42,.07)}
.tab{padding:9px 18px;border-radius:11px;color:var(--sub);font-weight:700;font-size:13.5px;
  white-space:nowrap;transition:all .18s var(--ease)}
.tab:hover{color:var(--blue-d)}
.tab.active{background:linear-gradient(135deg,#3b82f6,#1d4ed8);color:#fff;
  box-shadow:0 4px 14px rgba(37,99,235,.35)}

.quota-card{padding:28px 30px;display:flex;justify-content:space-between;gap:26px;flex-wrap:wrap;align-items:center}
.quota-label{color:var(--sub);font-size:13px;font-weight:600}
.quota-num{font-size:40px;font-weight:800;line-height:1.15;margin:6px 0 14px;
  background:linear-gradient(135deg,#1d4ed8,#0ea5e9);-webkit-background-clip:text;background-clip:text;
  color:transparent;font-variant-numeric:tabular-nums}
.quota-bar{height:10px;background:rgba(226,232,240,.9);border-radius:20px;overflow:hidden;min-width:260px;
  box-shadow:inset 0 1px 3px rgba(15,23,42,.08)}
.quota-bar-fill{height:100%;background:linear-gradient(90deg,#0ea5e9,#1d4ed8);border-radius:20px;
  box-shadow:0 0 12px rgba(14,165,233,.5);transition:width .5s var(--ease)}
.quota-meta{font-size:12.5px;color:var(--sub);margin-top:9px}
.quota-right{display:flex;gap:28px;align-items:center}
.mini-stat{text-align:center}
.mini-num{display:block;font-size:24px;font-weight:800;font-variant-numeric:tabular-nums}
.mini-label{font-size:12px;color:var(--sub)}

.stat-row{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:20px 0}
.stat-box{padding:20px;text-align:center;transition:transform .2s var(--ease)}
.stat-box:hover{transform:translateY(-3px)}
.stat-num{display:block;font-size:21px;font-weight:800;word-break:break-all;font-variant-numeric:tabular-nums}
.stat-label{font-size:12.5px;color:var(--sub);margin-top:6px;display:block}

.panel{margin-bottom:20px;overflow:hidden}
.panel-head{display:flex;align-items:center;justify-content:space-between;padding:17px 22px;
  border-bottom:1px solid rgba(226,232,240,.55);flex-wrap:wrap;gap:10px}
.panel-head h3{font-size:16px;letter-spacing:.2px}
.panel-body{padding:22px}
.link{font-size:13px;font-weight:700}

.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:20px}

/* 签到 */
.checkin-hero{display:flex;gap:22px;align-items:center;flex-wrap:wrap}
.checkin-btn{padding:15px 34px;font-size:16px;border-radius:16px}
.checkin-info{flex:1;min-width:220px}
.checkin-info .t{font-size:15px;font-weight:700;margin-bottom:4px}
.checkin-info .d{font-size:13px;color:var(--sub)}
.cal{display:grid;grid-template-columns:repeat(7,1fr);gap:8px;margin-top:6px}
.cal-cell{aspect-ratio:1;border-radius:12px;display:flex;flex-direction:column;align-items:center;
  justify-content:center;font-size:11px;color:var(--sub);background:rgba(241,245,249,.8);
  border:1px solid rgba(226,232,240,.7);gap:2px}
.cal-cell .d{font-weight:700;font-size:12px;color:#334155}
.cal-cell.done{background:linear-gradient(135deg,#dbeafe,#bfdbfe);border-color:#93c5fd;color:#1e40af}
.cal-cell.done .d{color:#1d4ed8}
.cal-cell.today{border:1.5px dashed var(--blue);color:var(--blue-d)}

/* 邀请 */
.invite-link{display:flex;gap:10px;align-items:center;background:rgba(15,23,42,.88);color:#bfdbfe;
  padding:13px 16px;border-radius:12px;font-size:13.5px;font-weight:600;overflow:auto;
  border:1px solid rgba(59,130,246,.35)}
.invite-link code{flex:1;word-break:break-all}
.invite-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:18px}
.invite-stat{padding:16px;text-align:center}

/* 测速 */
.speed-result{margin-top:18px;animation:fade-up .3s var(--ease)}
.speed-big{font-size:34px;font-weight:800;background:linear-gradient(135deg,#1d4ed8,#0ea5e9);
  -webkit-background-clip:text;background-clip:text;color:transparent;font-variant-numeric:tabular-nums}
.speed-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:16px}
.speed-item{padding:16px;text-align:center}
.speed-item .v{font-size:20px;font-weight:800;font-variant-numeric:tabular-nums}
.speed-item .k{font-size:12px;color:var(--sub);margin-top:4px}

/* 密钥 */
.key-reveal{background:linear-gradient(135deg,rgba(236,253,245,.95),rgba(239,246,255,.95));
  border:1px solid #a7f3d0;border-radius:var(--radius);padding:22px 24px;margin-bottom:20px;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.8),0 10px 32px rgba(5,150,105,.12)}
.key-reveal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;gap:10px;flex-wrap:wrap}
.key-reveal-title{font-weight:800}
.key-reveal-value{display:flex;gap:12px;align-items:center;background:#fff;border:1px dashed #86efac;
  padding:13px 16px;border-radius:12px}
.key-reveal-value code{font-size:15px;word-break:break-all;flex:1}
.key-reveal-warn{font-size:12.5px;color:#b45309;margin-top:12px}
.key-info-row{display:flex;padding:12px 0;border-bottom:1px dashed rgba(226,232,240,.8)}
.key-info-k{width:120px;color:var(--sub);flex:none;font-weight:600}
.key-actions{display:flex;align-items:center;gap:16px;margin-top:20px;flex-wrap:wrap}
.key-tip{font-size:12.5px;color:var(--sub)}

/* 过滤器/分页 */
.filter-bar{display:flex;gap:10px;align-items:center;margin-bottom:16px;flex-wrap:wrap}
.select{padding:9px 12px;border:1px solid rgba(148,163,184,.4);border-radius:10px;font-size:13px;
  background:rgba(255,255,255,.85);color:var(--ink);font-family:inherit;outline:none;transition:.15s}
.select:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(37,99,235,.12)}
.log-detail summary{cursor:pointer;color:var(--blue);font-size:12.5px;list-style:none;font-weight:600}
.log-detail summary::-webkit-details-marker{display:none}
.log-detail-body{background:rgba(248,250,252,.9);
  border:1px solid var(--line);border-radius:10px;padding:13px;margin-top:8px;font-size:13px}
.log-detail-body p{margin-bottom:8px;word-break:break-word}
.pager{display:flex;gap:6px;align-items:center;margin-top:16px;flex-wrap:wrap}
.pager a{padding:7px 13px;border:1px solid var(--line);border-radius:9px;background:rgba(255,255,255,.8);
  font-size:13px;color:#334155;font-weight:600;transition:.15s}
.pager a:hover{border-color:#93c5fd;color:var(--blue-d)}
.pager a.active{background:linear-gradient(135deg,#3b82f6,#1d4ed8);color:#fff;border-color:transparent;
  box-shadow:0 4px 12px rgba(37,99,235,.3)}
.pager a.disabled{opacity:.45;pointer-events:none}
.pager-info{color:var(--sub);font-size:12.5px;margin-left:8px}
.mini-search{display:flex;gap:8px}
.inline-quota{display:flex}
.op-col{display:flex;gap:5px;flex-wrap:wrap}
.op-form{display:inline}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.form-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:12px}

/* ================= Admin ================= */
.admin-body{background:#e8eef8}
.admin-layout{display:flex;min-height:100vh}
.admin-side{width:236px;color:#aebfd6;display:flex;flex-direction:column;flex:none;
  position:fixed;top:0;bottom:0;left:0;overflow-y:auto;z-index:60;
  background:linear-gradient(180deg,rgba(10,20,40,.94),rgba(15,32,66,.9));
  backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px);
  border-right:1px solid rgba(255,255,255,.08);
  box-shadow:4px 0 32px rgba(2,6,23,.18)}
.admin-brand{display:flex;align-items:center;gap:11px;padding:20px 18px;font-weight:800;color:#fff;
  font-size:15px;border-bottom:1px solid rgba(255,255,255,.08);letter-spacing:.2px}
.admin-brand img{width:34px;height:34px;border-radius:10px;object-fit:cover;
  border:1px solid rgba(255,255,255,.2)}
.admin-nav{padding:12px 10px;flex:1}
.admin-nav-item{display:flex;align-items:center;gap:11px;padding:11px 14px;border-radius:10px;
  color:#aebfd6;font-size:14px;margin-bottom:3px;font-weight:600;transition:all .18s var(--ease)}
.admin-nav-item:hover{background:rgba(255,255,255,.07);color:#fff;transform:translateX(2px)}
.admin-nav-item.active{background:linear-gradient(135deg,#2563eb,#1d4ed8);color:#fff;
  box-shadow:0 4px 16px rgba(37,99,235,.42)}
.admin-back{padding:16px 22px;color:#7c8ea8;font-size:13px;border-top:1px solid rgba(255,255,255,.08)}
.admin-back:hover{color:#fff}
.admin-main{flex:1;margin-left:236px;min-width:0}
.admin-top{height:64px;border-bottom:1px solid rgba(255,255,255,.75);display:flex;align-items:center;
  justify-content:space-between;padding:0 24px;position:sticky;top:0;z-index:40;
  background:rgba(255,255,255,.66);backdrop-filter:blur(20px) saturate(1.7);transform:translateZ(0);
  box-shadow:0 4px 20px rgba(15,23,42,.05)}
.admin-top-title{font-size:18px;font-weight:800;letter-spacing:.3px}
.admin-top-right{display:flex;align-items:center;gap:14px}
.admin-user{font-weight:700;font-size:14px}
.admin-menu-btn{display:none;background:none;border:0;cursor:pointer;padding:8px}
.admin-content{padding:24px}
.admin-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:18px;align-items:start}

.stat-cards{display:grid;grid-template-columns:repeat(6,1fr);gap:14px;margin-bottom:20px}
.stat-card{border-radius:var(--radius);padding:20px;color:#fff;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 10px 30px rgba(15,23,42,.16);
  position:relative;overflow:hidden;transition:transform .2s var(--ease)}
.stat-card:hover{transform:translateY(-3px)}
.stat-card::after{content:'';position:absolute;inset:0;
  background:radial-gradient(80% 60% at 80% 0%,rgba(255,255,255,.22),transparent 60%)}
.stat-card-num{font-size:26px;font-weight:800;word-break:break-all;position:relative;font-variant-numeric:tabular-nums}
.stat-card-label{font-size:12.5px;opacity:.92;margin-top:5px;position:relative}
.stat-blue{background:linear-gradient(135deg,#3b82f6,#1d4ed8)}
.stat-teal{background:linear-gradient(135deg,#14b8a6,#0f766e)}
.stat-indigo{background:linear-gradient(135deg,#6366f1,#4338ca)}
.stat-cyan{background:linear-gradient(135deg,#22d3ee,#0891b2)}
.stat-green{background:linear-gradient(135deg,#34d399,#059669)}
.stat-amber{background:linear-gradient(135deg,#fbbf24,#d97706)}
.stat-violet{background:linear-gradient(135deg,#a78bfa,#7c3aed)}
.stat-rose{background:linear-gradient(135deg,#fb7185,#e11d48)}
.chart-box{position:relative;height:260px}

.speed-result-box{margin:0 0 18px}
.speed-ok{color:var(--green);font-weight:700}
.speed-err{color:var(--red);font-weight:700}

/* ---------------- 页脚 ---------------- */
.footer{margin-top:46px;background:linear-gradient(160deg,rgba(15,23,42,.94),rgba(2,6,23,.94));color:#94a3b8;
  backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
.footer-inner{max-width:1180px;margin:0 auto;padding:26px 20px;display:flex;
  justify-content:space-between;flex-wrap:wrap;gap:12px;font-size:13px}
.footer-links{display:flex;gap:20px}.footer-links a{color:#94a3b8}.footer-links a:hover{color:#fff}

/* ---------------- 响应式（H5） ================= */
@media(max-width:980px){
  .cap-grid{grid-template-columns:repeat(2,1fr)}
  .cap-item{padding:22px 20px}
  .cap-item:nth-child(odd){padding-left:0;border-left:0}
  .cap-item:nth-child(even){border-left:1px solid var(--line)}
  .cap-item:nth-child(n+3){border-top:1px solid var(--line)}
  .stat-row{grid-template-columns:repeat(2,1fr)}
  .stat-cards{grid-template-columns:repeat(3,1fr)}
  .grid-2{grid-template-columns:1fr}
  .admin-grid-2{grid-template-columns:1fr}
  .invite-stats{grid-template-columns:repeat(3,1fr)}
  .ih-title{font-size:clamp(52px,12vw,88px)}
}
@media(max-width:760px){
  .nav-links{display:none;position:absolute;top:64px;left:0;right:0;flex-direction:column;
    align-items:flex-start;padding:16px 20px;gap:14px;
    background:rgba(255,255,255,.94);backdrop-filter:blur(20px);
    border-bottom:1px solid var(--line);box-shadow:0 16px 40px rgba(15,23,42,.12);
    animation:fade-up .22s var(--ease)}
  .nav-toggle{display:block}
  body.nav-open .nav-links{display:flex}
  .ih-title{font-size:clamp(46px,13.5vw,72px);gap:2px}
  .ih-sub{font-size:15px}
  .ih-actions .btn{width:100%}
  .ih-metrics{gap:10px 16px}
  .ih-metric{min-width:70px}
  .ih-orb-a,.ih-orb-b{display:none}
  .home-url{flex-direction:column;align-items:stretch;gap:8px}
  .home-url-label{text-align:center}
  .url-pill{width:100%;justify-content:space-between;font-size:12.5px;padding:10px 14px}
  .br-mobile{display:inline}
  .cap-grid{grid-template-columns:1fr}
  .cap-item,.cap-item:nth-child(odd),.cap-item:nth-child(even){padding:20px 0;border-left:0}
  .cap-item+.cap-item{border-top:1px solid var(--line)}
  .cp-row{grid-template-columns:1fr;gap:5px;padding:11px 2px}
  .cta-card{padding:22px 20px}
  .home-cta .btn{width:100%}
  .doc-sec{padding:20px}
  .quota-right{width:100%;justify-content:space-around}
  .form-grid,.form-grid-2{grid-template-columns:1fr}
  .stat-cards{grid-template-columns:repeat(2,1fr)}
  .speed-grid{grid-template-columns:1fr}
  .admin-side{transform:translateX(-100%);transition:transform .28s var(--ease)}
  body.side-open .admin-side{transform:translateX(0)}
  .admin-main{margin-left:0}
  .admin-menu-btn{display:block}
  .cal{grid-template-columns:repeat(4,1fr)}
  .auth-card{padding:28px 22px}
  .auth-wrap{margin:28px auto}
  .footer-inner{justify-content:center;text-align:center}
  .container{margin:18px auto}
  .panel-body{padding:16px}
  .panel-head{padding:14px 16px}
  .btn-lg{padding:12px 24px}
  .quota-num{font-size:32px}
  .tabs{width:100%}
  .stat-row{gap:10px}
}

/* 测速失败提示框 */
.speed-err-box{margin-top:12px;padding:11px 14px;border-radius:10px;background:rgba(239,68,68,.08);
  border:1px solid rgba(239,68,68,.3);color:#b91c1c;font-size:13px;word-break:break-word}

/* 复选行（模型能力开关等） */
.chk{display:flex;align-items:center;gap:8px;font-size:13.5px;color:#334155;cursor:pointer}

/* 用户模型限制 - 模型选择网格 */
.model-restrict-note{margin:10px 0 16px;padding:12px 14px;border-radius:10px;
  background:rgba(59,130,246,.07);border:1px solid rgba(59,130,246,.25);font-size:13px;color:#334155}
.model-toolbar{display:flex;align-items:center;gap:10px;margin-bottom:12px;flex-wrap:wrap}
.model-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px}
.model-chip{display:flex;align-items:center;gap:9px;padding:11px 13px;border-radius:11px;
  background:rgba(255,255,255,.85);border:1px solid rgba(148,163,184,.35);cursor:pointer;
  font-size:13.5px;transition:.15s}
.model-chip:hover{border-color:var(--blue)}
.model-chip input{width:16px;height:16px;accent-color:var(--blue)}
.model-chip-off{opacity:.6}
.model-chip-id{font-weight:600}
.model-chip-name{color:var(--sub);font-size:12.5px}

/* =====================================================
   后台皮肤：FastAdmin 视觉语言
   深色实心侧栏 · 白色顶栏 · 浅灰内容区 · 紧凑表格 · 扁平按钮
===================================================== */
.admin-body{background:#f4f6f9;color:#333}
.admin-side{background:#222d32;backdrop-filter:none;-webkit-backdrop-filter:none;
  border-right:0;box-shadow:2px 0 8px rgba(0,0,0,.06)}
.admin-brand{background:#2c3b41;border-bottom:0;padding:15px 18px;font-size:14px;font-weight:600}
.admin-brand img{width:30px;height:30px;border-radius:3px;border:0}
.admin-nav{padding:0}
.admin-nav-item{border-radius:0;margin:0;padding:13px 18px;font-size:13.5px;font-weight:500;
  color:#b8c7ce;border-left:3px solid transparent}
.admin-nav-item:hover{background:#1e282c;color:#fff;transform:none;border-left-color:#3c8dbc}
.admin-nav-item.active{background:#1e282c;color:#fff;box-shadow:none;border-left-color:#3c8dbc}
.admin-back{border-top:1px solid #2c3b41;color:#8aa4af;padding:14px 18px;font-size:12.5px}
.admin-top{background:#fff;backdrop-filter:none;-webkit-backdrop-filter:none;border-bottom:1px solid #e6e8eb;
  box-shadow:none;height:56px;padding:0 18px}
.admin-top-title{font-size:16px;font-weight:600;letter-spacing:0}
.admin-user{font-weight:500;font-size:13px;color:#555}
.admin-content{padding:18px;background:#f4f6f9}
.admin-body .glass,.admin-body .panel{background:#fff;backdrop-filter:none;-webkit-backdrop-filter:none;
  border:1px solid #e6e8eb;box-shadow:0 1px 3px rgba(0,0,0,.04);border-radius:4px}
.admin-body .panel-head{border-bottom:1px solid #eef0f3;padding:13px 16px}
.admin-body .panel-head h3{font-size:14px;font-weight:600}
.admin-body .table th{background:#f5f7fa;font-size:12.5px;font-weight:600;color:#555;
  border-bottom:1px solid #e6e8eb;padding:10px 12px}
.admin-body .table td{padding:10px 12px;border-bottom:1px solid #f1f2f4;font-size:13px}
.admin-body .table tbody tr:hover td{background:#fafbfc}
.admin-body .table tbody tr:last-child td{border-bottom:0}
.admin-body .btn{border-radius:3px;box-shadow:none}
.admin-body .btn-primary{background:#3c8dbc;border-color:#3c8dbc;color:#fff}
.admin-body .btn-primary:hover{background:#367fa9;border-color:#367fa9}
.admin-body .btn-outline{background:#fff;border-color:#d2d6de;color:#444}
.admin-body .btn-outline:hover{border-color:#3c8dbc;color:#3c8dbc;background:#fff}
.admin-body .field,.admin-body .select{border-radius:3px;border-color:#d2d6de;background:#fff}
.admin-body .field:focus,.admin-body .select:focus{border-color:#3c8dbc;box-shadow:0 0 0 2px rgba(60,141,188,.12)}
.admin-body .tag{border-radius:2px}
.admin-body .stat-card{border-radius:4px;box-shadow:0 1px 3px rgba(0,0,0,.08)}
.admin-body .admin-grid-2{gap:14px}
.admin-body .flash{max-width:none;margin:0 0 14px;border-radius:3px}
.admin-nav-item{gap:10px}
.admin-nav-item .nav-ic{width:16px;height:16px;flex:none;opacity:.85}
.admin-nav-item.active .nav-ic{opacity:1}

/* 示例标签：滑动指示器 */
.ex-tabs{position:relative}
.ex-tabs.has-ind .ex-tab{position:relative;z-index:1;background:transparent;border-color:transparent}
.ex-tabs.has-ind .ex-tab:not(.active):hover{background:rgba(255,255,255,.55)}
.ex-tabs.has-ind .ex-tab.active{background:transparent;box-shadow:none;color:#fff}
.ex-tab-ind{position:absolute;left:0;top:0;border-radius:30px;z-index:0;pointer-events:none;
  background:linear-gradient(135deg,#3b82f6,#1d4ed8);
  box-shadow:0 5px 16px rgba(37,99,235,.35);
  transition:transform .34s var(--ease),width .34s var(--ease),height .34s var(--ease)}

/* =====================================================
   实时渐变 · 玻璃流动增强层
===================================================== */

/* 主按钮：实时渐变流动 */
.btn-primary{
  background:linear-gradient(120deg,#2563eb,#4f46e5 26%,#0891b2 52%,#4f46e5 78%,#2563eb);
  background-size:220% 100%;
  animation:btn-grad-flow 7s linear infinite;
}
@keyframes btn-grad-flow{
  0%{background-position:0% 50%}
  50%{background-position:100% 50%}
  100%{background-position:0% 50%}
}

/* 玻璃卡片：流光扫过 */
.glass::before{
  content:'';position:absolute;inset:0;border-radius:inherit;pointer-events:none;
  background:linear-gradient(112deg,
    transparent 20%,
    rgba(255,255,255,.0) 36%,
    rgba(255,255,255,.55) 50%,
    rgba(255,255,255,0) 64%,
    transparent 80%);
  background-size:220% 100%;
  animation:glass-sheen 6.5s ease-in-out infinite;
  z-index:1;
}
@keyframes glass-sheen{
  0%{background-position:-120% 0;opacity:0}
  22%{opacity:.85}
  55%{background-position:120% 0;opacity:0}
  100%{background-position:120% 0;opacity:0}
}

/* 顶栏玻璃渐变描边 */
.nav::after{
  content:'';position:absolute;left:0;right:0;bottom:0;height:1px;
  background:linear-gradient(90deg,
    rgba(59,130,246,0),rgba(59,130,246,.55),rgba(139,92,246,.55),rgba(20,184,166,.55),rgba(59,130,246,0));
  background-size:200% 100%;
  animation:nav-grad-pan 8s linear infinite;
}
@keyframes nav-grad-pan{
  0%{background-position:0% 50%}
  100%{background-position:200% 50%}
}

/* 文档/内容大标题：渐变字 */
.doc-hero h1,
.cap-head h2,
.ex-head-line h2,
.cta-card h2{
  background:linear-gradient(118deg,#0f172a 0%,#1e40af 32%,#6d28d9 58%,#0e7490 82%,#0f172a 100%);
  background-size:200% 100%;
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;color:transparent;
  animation:head-grad-flow 11s linear infinite;
}
@keyframes head-grad-flow{
  0%{background-position:0% 50%}
  50%{background-position:100% 50%}
  100%{background-position:0% 50%}
}

/* 能力卡片图标：呼吸光晕 */
.cap-ic{position:relative}
.cap-ic::before{
  content:'';position:absolute;inset:-6px;border-radius:inherit;
  background:radial-gradient(circle at 50% 50%,rgba(59,130,246,.22),transparent 68%);
  opacity:0;transition:opacity .38s var(--ease);pointer-events:none;
}
.cap-item:hover .cap-ic::before{opacity:1;animation:ic-glow 1.9s ease-in-out infinite}
@keyframes ic-glow{
  0%,100%{transform:scale(1);opacity:.75}
  50%{transform:scale(1.18);opacity:1}
}

/* 模型芯片：微光扫过 */
.ih-chip-model::after{
  content:'';position:absolute;inset:0;border-radius:inherit;pointer-events:none;
  background:linear-gradient(115deg,transparent 32%,rgba(255,255,255,.65) 50%,transparent 68%);
  background-size:220% 100%;opacity:0;
}
.ih-chip-model{position:relative;overflow:hidden}
.ih-chip-model:hover::after{
  animation:glass-sheen 1.5s ease-out 1;
}

/* 表格行：玻璃渐变高亮 */
.table tbody tr{
  background:linear-gradient(90deg,rgba(59,130,246,.0),rgba(59,130,246,.0) 100%);
}
.table tbody tr:hover{
  background:linear-gradient(90deg,rgba(59,130,246,.08),rgba(139,92,246,.05) 55%,rgba(20,184,166,.08));
}

/* FastAdmin 后台：品牌条实时渐变 */
.admin-body .admin-brand{
  background:linear-gradient(135deg,#2c3b41 0%,#222d32 55%,#2c3b41 100%);
  background-size:200% 100%;
  animation:admin-brand-flow 12s linear infinite;
}
@keyframes admin-brand-flow{
  0%{background-position:0% 50%}
  50%{background-position:100% 50%}
  100%{background-position:0% 50%}
}
/* 后台选中菜单：渐变指示条 */
.admin-nav-item.active{
  border-left-color:transparent;
  background:linear-gradient(90deg,rgba(60,141,188,.22),rgba(60,141,188,0) 80%);
}
.admin-nav-item.active::before{
  content:'';position:absolute;left:0;top:0;bottom:0;width:3px;
  background:linear-gradient(180deg,#3c8dbc,#67e8f9);
}
.admin-nav-item{position:relative}

/* 滚动进度条：玻璃高光 */
.scroll-progress{
  background:linear-gradient(90deg,#2563eb,#0ea5e9 30%,#8b5cf6 58%,#22d3ee 82%,#2563eb);
  background-size:200% 100%;
  animation:progress-grad 3s linear infinite;
}
@keyframes progress-grad{
  0%{background-position:0% 50%}
  100%{background-position:200% 50%}
}

/* 页脚渐变上边线 */
.footer::before{
  content:'';display:block;height:1px;
  background:linear-gradient(90deg,transparent,rgba(96,165,250,.55),rgba(167,139,250,.55),transparent);
  background-size:200% 100%;
  animation:nav-grad-pan 9s linear infinite;
}

/* 减少动态效果：全部关闭 */
@media (prefers-reduced-motion:reduce){
  .btn-primary,.ih-aurora,.ih-grid,.ih-orb,.ih-char,
  .glass::before,.nav::after,.doc-hero h1,.cap-head h2,.ex-head-line h2,.cta-card h2,
  .admin-body .admin-brand,.scroll-progress,.footer::before{
    animation:none!important;
  }
  .ih-char{opacity:1!important;transform:none!important;filter:none!important;
    -webkit-text-fill-color:initial;color:#0f172a!important;background:none!important}
}

/* ============================================================
   登录/注册页：动态五字标题（与首页 Hero 同款逐字浮现 + 实时渐变）
   ============================================================ */
.auth-head .auth-ih-title{
  margin:14px 0 0;
  font-size:clamp(38px,9vw,58px);
  letter-spacing:.04em;
  gap:clamp(2px,1vw,8px);
  --char-scale:.92;
}
.auth-head .auth-ih-title .ih-char{
  text-shadow:0 14px 34px rgba(37,99,235,.16);
}
/* 玻璃卡片流光在登录/注册卡上的呼应 */
.auth-card{position:relative;overflow:hidden}
.auth-card::after{
  content:'';position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(115deg,transparent 42%,rgba(96,165,250,.10) 50%,transparent 58%);
  background-size:220% 100%;
  animation:auth-card-sheen 7s linear infinite;
}
@keyframes auth-card-sheen{
  0%{background-position:120% 0}
  100%{background-position:-120% 0}
}
@media(max-width:760px){
  .auth-head .auth-ih-title{font-size:clamp(34px,10vw,46px);gap:1px}
}
@media (prefers-reduced-motion:reduce){
  .auth-card::after{animation:none;display:none}
}

/* ============================================================
   桌面端频闪修复：极光/网格/光球位于毛玻璃“背后”持续移动，
   会让毛玻璃每帧重采样背后内容 -> 桌面大屏肉眼可见频闪
   （手机小屏合成更稳，不闪，故仅宽屏静止）。
   仅静止“透射型”动画；玻璃表面流光（在毛玻璃之上、不透过）
   保留，桌面仍有灵动观感。
   ============================================================ */
@media (min-width:1024px){
  .ih-aurora,.ih-grid,.ih-orb{animation:none !important}
}
