/* ============================================
   GEO 运营平台 — 共享样式
   主色：白 / 浅蓝 / 灰
   风格：Stripe / Notion / 简洁专业
   ============================================ */

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  /* 颜色 */
  --bg:#ffffff;
  --bg-soft:#f8fafc;
  --bg-muted:#f1f5f9;
  --bg-hover:#f3f4f6;
  --border:#e5e7eb;
  --border-strong:#d1d5db;
  --text:#0f172a;
  --text-secondary:#475569;
  --text-muted:#94a3b8;
  --primary:#2563eb;
  --primary-hover:#1d4ed8;
  --primary-soft:#eff6ff;
  --primary-soft-hover:#dbeafe;
  --primary-light:#60a5fa;
  --success:#10b981;
  --success-soft:#ecfdf5;
  --warning:#f59e0b;
  --warning-soft:#fffbeb;
  --danger:#ef4444;
  --danger-soft:#fef2f2;
  --info:#0ea5e9;
  --info-soft:#f0f9ff;

  /* 圆角（小） */
  --radius-xs:3px;
  --radius:4px;
  --radius-md:6px;
  --radius-lg:8px;

  /* 阴影 */
  --shadow-sm:0 1px 2px rgba(15,23,42,.04);
  --shadow:0 1px 3px rgba(15,23,42,.06),0 1px 2px rgba(15,23,42,.04);
  --shadow-md:0 4px 12px rgba(15,23,42,.06),0 2px 4px rgba(15,23,42,.04);
  --shadow-lg:0 10px 30px rgba(15,23,42,.08);

  /* 间距 */
  --sp-1:4px;
  --sp-2:8px;
  --sp-3:12px;
  --sp-4:16px;
  --sp-5:24px;
  --sp-6:32px;
  --sp-7:48px;
  --sp-8:64px;

  --transition:all .2s ease;
  --header-h:64px;
  --sidebar-w:240px;
  --container:1200px;
}

html{font-size:14px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;scroll-behavior:smooth}
body{
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;
  background:var(--bg);
  color:var(--text);
  line-height:1.6;
  font-size:14px;
}
a{color:inherit;text-decoration:none;transition:var(--transition)}
button{font:inherit;cursor:pointer;border:none;background:none;color:inherit}
img{max-width:100%;display:block}
input,textarea,select{
  font:inherit;color:var(--text);background:#fff;
  border:1px solid var(--border);border-radius:var(--radius);
  padding:9px 12px;outline:none;transition:var(--transition);width:100%;
}
input:focus,textarea:focus,select:focus{
  border-color:var(--primary);box-shadow:0 0 0 3px rgba(37,99,235,.1);
}
textarea{resize:vertical;min-height:100px;line-height:1.6}
select{
  appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 12px center;
  padding-right:36px;
}

/* ============================================
   公共 — 容器与导航
   ============================================ */
.container{max-width:var(--container);margin:0 auto;padding:0 24px}
.container-sm{max-width:860px}

/* 顶部导航（前台） */
.site-header{
  position:sticky;top:0;z-index:50;
  background:rgba(255,255,255,.85);
  backdrop-filter:saturate(180%) blur(16px);
  -webkit-backdrop-filter:saturate(180%) blur(16px);
  border-bottom:1px solid var(--border);
}
.site-header .container{
  height:var(--header-h);
  display:flex;align-items:center;gap:32px;
}
.site-logo{display:flex;align-items:center;gap:8px;font-weight:600;font-size:15px;letter-spacing:-.2px;color:var(--text)}
.site-logo-mark{
  width:28px;height:28px;border-radius:6px;
  background:var(--primary);
  display:flex;align-items:center;justify-content:center;
  color:#fff;font-weight:700;font-size:13px;
}
.site-nav{display:flex;align-items:center;gap:6px;flex:1}
.site-nav a{
  padding:6px 12px;border-radius:var(--radius);
  font-size:13.5px;color:var(--text-secondary);font-weight:500;
}
.site-nav a:hover{color:var(--text);background:var(--bg-muted)}
.site-nav a.active{color:var(--primary)}
.site-actions{display:flex;align-items:center;gap:8px}
.menu-toggle{display:none;width:36px;height:36px;align-items:center;justify-content:center;border-radius:var(--radius);color:var(--text-secondary)}
.menu-toggle:hover{background:var(--bg-muted);color:var(--text)}

/* ============================================
   按钮
   ============================================ */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:6px;
  padding:8px 16px;border-radius:var(--radius);
  font-size:13.5px;font-weight:500;
  transition:var(--transition);white-space:nowrap;cursor:pointer;
  border:1px solid transparent;line-height:1.4;
}
.btn-primary{background:var(--primary);color:#fff;border-color:var(--primary)}
.btn-primary:hover{background:var(--primary-hover);border-color:var(--primary-hover)}
.btn-secondary{background:#fff;color:var(--text);border-color:var(--border-strong)}
.btn-secondary:hover{background:var(--bg-soft);border-color:var(--text-muted)}
.btn-ghost{color:var(--text-secondary)}
.btn-ghost:hover{background:var(--bg-muted);color:var(--text)}
.btn-soft{background:var(--primary-soft);color:var(--primary)}
.btn-soft:hover{background:var(--primary-soft-hover)}
.btn-sm{padding:5px 11px;font-size:12.5px}
.btn-lg{padding:11px 22px;font-size:15px}
.btn-block{width:100%}
.btn-icon{
  width:36px;height:36px;padding:0;display:inline-flex;align-items:center;justify-content:center;
  border-radius:var(--radius);color:var(--text-secondary);position:relative;
}
.btn-icon:hover{background:var(--bg-muted);color:var(--text)}

/* ============================================
   标签
   ============================================ */
.tag{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:3px;font-size:11.5px;font-weight:500;line-height:1.5}
.tag-primary{background:var(--primary-soft);color:var(--primary)}
.tag-success{background:var(--success-soft);color:var(--success)}
.tag-warning{background:var(--warning-soft);color:var(--warning)}
.tag-danger{background:var(--danger-soft);color:var(--danger)}
.tag-info{background:var(--info-soft);color:var(--info)}
.tag-gray{background:var(--bg-muted);color:var(--text-secondary)}

/* ============================================
   卡片
   ============================================ */
.card{
  background:#fff;border:1px solid var(--border);border-radius:var(--radius-lg);
  overflow:hidden;transition:var(--transition);
}
.card-hover:hover{border-color:var(--border-strong);box-shadow:var(--shadow-md);transform:translateY(-1px)}
.card-header{padding:14px 20px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:12px}
.card-title{font-size:14px;font-weight:600;flex:1;color:var(--text)}
.card-body{padding:20px}
.card-footer{padding:12px 20px;border-top:1px solid var(--border);background:var(--bg-soft);display:flex;justify-content:flex-end;gap:8px}

/* ============================================
   首页 Hero
   ============================================ */
.hero{
  padding:72px 0 64px;
  background:
    radial-gradient(ellipse 800px 400px at 50% -100px,rgba(37,99,235,.08),transparent),
    linear-gradient(180deg,#fff 0%,var(--bg-soft) 100%);
  border-bottom:1px solid var(--border);
  overflow:hidden;
}
.hero-grid{
  display:grid;
  grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);
  gap:56px;align-items:center;
}
.hero-left{animation:fadeUp .7s ease both}
.hero-eyebrow{
  display:inline-flex;align-items:center;gap:6px;
  padding:4px 12px;border-radius:20px;
  background:var(--primary-soft);color:var(--primary);
  font-size:12px;font-weight:500;margin-bottom:18px;
}
.hero-eyebrow .dot{width:6px;height:6px;background:var(--primary);border-radius:50%;animation:pulse 1.8s ease-in-out infinite}
.hero-title{
  font-size:42px;font-weight:700;line-height:1.18;letter-spacing:-.8px;
  color:var(--text);margin-bottom:18px;
}
.hero-title .accent{
  background:linear-gradient(90deg,var(--primary),var(--info));
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;
}
.hero-subtitle{
  font-size:16px;color:var(--text-secondary);
  margin-bottom:28px;line-height:1.65;
}
.hero-cta{display:flex;gap:12px;flex-wrap:wrap;align-items:center}
.hero-meta{
  margin-top:36px;display:flex;gap:24px;flex-wrap:wrap;
  padding-top:24px;border-top:1px solid var(--border);
  font-size:13px;color:var(--text-muted);
}
.hero-meta-item{display:flex;align-items:center;gap:8px}
.hero-meta-item svg{color:var(--success)}

/* ============================================
   Hero 右侧 — AI 对话动效
   ============================================ */
.hero-right{
  position:relative;
  min-height:440px;
  display:flex;align-items:center;justify-content:center;
  animation:fadeUp .9s ease .15s both;
}
.hero-glow{
  position:absolute;width:380px;height:380px;border-radius:50%;
  background:radial-gradient(circle,rgba(37,99,235,.18),transparent 70%);
  z-index:0;animation:floatGlow 8s ease-in-out infinite;
}

/* 漂浮平台 chip */
.float-chip{
  position:absolute;z-index:3;
  display:inline-flex;align-items:center;gap:6px;
  padding:7px 13px;background:#fff;
  border:1px solid var(--border);border-radius:24px;
  font-size:12.5px;font-weight:500;color:var(--text);
  box-shadow:0 6px 20px rgba(15,23,42,.08);
  white-space:nowrap;
}
.float-chip .chip-dot{
  width:8px;height:8px;border-radius:50%;
  box-shadow:0 0 0 3px rgba(255,255,255,.6);
}
.float-chip.chip-1{top:6%;left:-4%;animation:floatA 5s ease-in-out infinite}
.float-chip.chip-2{top:14%;right:-2%;animation:floatB 5.5s ease-in-out infinite .3s}
.float-chip.chip-3{bottom:18%;left:-6%;animation:floatA 6s ease-in-out infinite .6s}
.float-chip.chip-4{bottom:6%;right:2%;animation:floatB 5.2s ease-in-out infinite .9s}

/* AI 对话卡片 */
.ai-card{
  position:relative;z-index:2;
  width:100%;max-width:420px;
  background:#fff;
  border:1px solid var(--border);
  border-radius:14px;
  box-shadow:
    0 20px 50px -12px rgba(15,23,42,.18),
    0 8px 20px -8px rgba(37,99,235,.12);
  padding:20px;
  animation:cardFloat 6s ease-in-out infinite;
}
.ai-card-header{
  display:flex;align-items:center;gap:10px;
  padding-bottom:14px;border-bottom:1px solid var(--border);
  margin-bottom:14px;
}
.ai-card-avatar{
  width:32px;height:32px;border-radius:8px;
  background:linear-gradient(135deg,#2563eb,#0ea5e9);
  display:flex;align-items:center;justify-content:center;color:#fff;
  flex-shrink:0;
}
.ai-card-avatar svg{animation:spin 12s linear infinite}
.ai-card-name{font-size:13.5px;font-weight:600;color:var(--text);line-height:1.2}
.ai-card-status{
  font-size:11.5px;color:var(--text-muted);
  display:flex;align-items:center;gap:5px;margin-top:3px;
}
.status-dot{
  width:6px;height:6px;border-radius:50%;background:var(--success);
  animation:pulse 1.5s ease-in-out infinite;
  box-shadow:0 0 0 0 rgba(16,185,129,.6);
}

/* 消息气泡 */
.ai-msg{margin-bottom:12px;animation:msgIn .5s ease both}
.ai-msg.user-msg{display:flex;justify-content:flex-end;animation-delay:.2s}
.ai-msg.ai-reply{animation-delay:.6s}
.msg-bubble{
  display:inline-block;max-width:88%;
  padding:9px 13px;border-radius:12px;
  font-size:13px;line-height:1.55;
}
.user-msg .msg-bubble{
  background:var(--primary);color:#fff;
  border-bottom-right-radius:4px;
}
.ai-reply .msg-bubble{
  background:var(--bg-muted);color:var(--text);
  border-bottom-left-radius:4px;
}
.brand-highlight{
  background:linear-gradient(120deg,rgba(37,99,235,.16),rgba(14,165,233,.16));
  color:var(--primary);font-weight:600;
  padding:1px 6px;border-radius:4px;
  border:1px solid rgba(37,99,235,.25);
  position:relative;
  animation:highlightPop .6s ease 1.2s both;
}
.cursor-blink{
  display:inline-block;color:var(--primary);font-weight:400;
  animation:blink 1s step-end infinite;margin-left:1px;
}

/* 来源标签 */
.msg-sources{
  display:flex;gap:6px;flex-wrap:wrap;margin-top:8px;padding-left:2px;
  animation:msgIn .5s ease 1.5s both;
}
.source-tag{
  font-size:10.5px;padding:2px 8px;border-radius:10px;
  background:#fff;border:1px solid var(--border);
  color:var(--text-secondary);
}

/* 底部数据条 */
.ai-stat-bar{
  margin-top:16px;padding-top:14px;border-top:1px dashed var(--border);
  animation:msgIn .5s ease 1.8s both;
}
.stat-line{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:8px}
.stat-line-label{font-size:11.5px;color:var(--text-muted)}
.stat-line-value{
  font-size:18px;font-weight:700;
  background:linear-gradient(90deg,var(--primary),var(--info));
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;
}
.stat-progress{height:4px;background:var(--bg-muted);border-radius:2px;overflow:hidden}
.stat-progress-fill{
  height:100%;width:0;
  background:linear-gradient(90deg,var(--primary),var(--info));
  border-radius:2px;
  animation:fillBar 2s ease 2s forwards;
}

/* ============================================
   Hero 动画关键帧
   ============================================ */
@keyframes fadeUp{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
@keyframes pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.85)}}
@keyframes blink{0%,50%{opacity:1}51%,100%{opacity:0}}
@keyframes msgIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@keyframes highlightPop{0%{background:transparent;border-color:transparent}60%{background:rgba(37,99,235,.32);transform:scale(1.04)}100%{background:linear-gradient(120deg,rgba(37,99,235,.16),rgba(14,165,233,.16));transform:scale(1)}}
@keyframes cardFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
@keyframes floatA{0%,100%{transform:translateY(0) translateX(0)}50%{transform:translateY(-10px) translateX(4px)}}
@keyframes floatB{0%,100%{transform:translateY(0) translateX(0)}50%{transform:translateY(8px) translateX(-4px)}}
@keyframes floatGlow{0%,100%{transform:scale(1);opacity:.7}50%{transform:scale(1.1);opacity:1}}
@keyframes spin{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}
@keyframes fillBar{from{width:0}to{width:88%}}

/* 首页底部 — 双行反向无缝滚动 */
.marquee-section{
  padding:36px 0 40px;
  background:var(--bg-soft);
  border-top:1px solid var(--border);
  overflow:hidden;
}
.marquee-section + .site-footer{margin-top:0;border-top:1px solid var(--border)}
.marquee-row{
  position:relative;overflow:hidden;width:100%;
  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 10%,#000 90%,transparent 100%);
          mask-image:linear-gradient(90deg,transparent 0,#000 10%,#000 90%,transparent 100%);
}
.marquee-row + .marquee-row{margin-top:6px}
.marquee-track{display:flex;width:max-content}
/* 第一行向左 */
.marquee-left .marquee-track{animation:marqueeLeft 50s linear infinite}
/* 第二行向右（速度略不同） */
.marquee-right .marquee-track{animation:marqueeRight 56s linear infinite}
.marquee-section:hover .marquee-track{animation-play-state:paused}

.marquee-group{
  display:flex;align-items:center;flex-shrink:0;
  gap:20px;padding-right:20px;
}
.marquee-item{
  flex-shrink:0;white-space:nowrap;
  font-size:15px;font-weight:500;
  letter-spacing:-.1px;
  color:var(--text-secondary);
  transition:color .25s ease;
  cursor:default;
  display:inline-flex;align-items:center;gap:8px;
}
/* 第一行：每个 item 前加渐变小圆点 */
.marquee-left .marquee-item::before{
  content:"";
  width:5px;height:5px;border-radius:50%;
  background:linear-gradient(135deg,var(--primary),var(--info));
  opacity:.55;
  flex-shrink:0;
}
.marquee-item:hover{color:var(--primary)}
.marquee-left .marquee-item:hover::before{opacity:1;box-shadow:0 0 0 3px rgba(37,99,235,.15)}

.marquee-sep{
  flex-shrink:0;font-size:13px;font-weight:300;
  color:var(--text-muted);opacity:.45;
  user-select:none;
}
/* 第二行：浅一些 + 斜体感（用更细字重） */
.marquee-right .marquee-item{
  color:var(--text-muted);font-weight:400;font-size:14px;
}
.marquee-right .marquee-item:hover{color:var(--primary)}

/* 4 组循环：translateX -25% 正好衔接 */
@keyframes marqueeLeft{
  from{transform:translateX(0)}
  to{transform:translateX(-25%)}
}
@keyframes marqueeRight{
  from{transform:translateX(-25%)}
  to{transform:translateX(0)}
}

/* ============================================
   通用 Section
   ============================================ */
.section{padding:80px 0}
.section-soft{background:var(--bg-soft)}
.section-header{text-align:center;max-width:680px;margin:0 auto 56px}
.section-eyebrow{
  display:inline-block;font-size:13px;color:var(--primary);
  font-weight:600;margin-bottom:12px;letter-spacing:.3px;
}
.section-title{
  font-size:36px;font-weight:700;letter-spacing:-.8px;
  color:var(--text);margin-bottom:16px;line-height:1.2;
}
.section-subtitle{font-size:16px;color:var(--text-secondary);line-height:1.6}

/* 网格 */
.grid{display:grid;gap:24px}
.grid-2{grid-template-columns:repeat(2,1fr)}
.grid-3{grid-template-columns:repeat(3,1fr)}
.grid-4{grid-template-columns:repeat(4,1fr)}

/* ============================================
   特性卡片 — 鼠标光晕 + 入场动画
   ============================================ */
.feature{
  position:relative;overflow:hidden;
  background:#fff;
  border:1px solid var(--border);
  border-radius:var(--radius-lg);
  padding:32px 28px 28px;
  transition:transform .35s ease,border-color .3s ease,box-shadow .35s ease;
  isolation:isolate;
}
/* 顶部渐变线（默认隐藏，悬停展开） */
.feature::before{
  content:"";position:absolute;top:0;left:0;right:0;height:2px;
  background:linear-gradient(90deg,var(--primary),var(--info));
  transform:scaleX(0);transform-origin:left;
  transition:transform .55s cubic-bezier(.4,0,.2,1);
  z-index:2;
}
.feature:hover{
  border-color:transparent;
  transform:translateY(-6px);
  box-shadow:0 24px 48px -16px rgba(37,99,235,.22),0 8px 20px -8px rgba(15,23,42,.08);
}
.feature:hover::before{transform:scaleX(1)}

/* 鼠标光晕 — 跟随光标的径向光斑 */
.feature-spotlight{
  position:absolute;inset:0;border-radius:inherit;
  pointer-events:none;
  opacity:0;transition:opacity .4s ease;
  background:radial-gradient(
    600px circle at var(--mx,50%) var(--my,50%),
    rgba(37,99,235,.10),
    transparent 40%
  );
  z-index:1;
}
.feature:hover .feature-spotlight{opacity:1}

/* 大数字编号 */
.feature-num{
  position:absolute;
  top:18px;right:24px;
  font-size:64px;font-weight:800;
  letter-spacing:-2px;line-height:1;
  font-family:'Inter',-apple-system,sans-serif;
  background:linear-gradient(135deg,rgba(37,99,235,.10),rgba(14,165,233,.04));
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;
  transition:transform .5s cubic-bezier(.4,0,.2,1),background .4s ease;
  z-index:1;
}
.feature:hover .feature-num{
  transform:translateY(-2px) scale(1.08);
  background:linear-gradient(135deg,var(--primary),var(--info));
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;
}

.feature-content{position:relative;z-index:2;margin-top:36px}
.feature-title{
  font-size:17px;font-weight:600;
  margin-bottom:10px;color:var(--text);
  transition:color .3s ease;
}
.feature:hover .feature-title{color:var(--primary)}
.feature-desc{font-size:13.5px;color:var(--text-secondary);line-height:1.7}

/* ============================================
   通用入场动画 — IntersectionObserver 触发
   ============================================ */
.reveal-card{
  opacity:0;
  transform:translateY(24px);
  transition:opacity .7s cubic-bezier(.4,0,.2,1),transform .7s cubic-bezier(.4,0,.2,1);
}
.reveal-card.is-visible{opacity:1;transform:translateY(0)}
/* 同组卡片依次延迟 */
.reveal-group .reveal-card:nth-child(1){transition-delay:0s}
.reveal-group .reveal-card:nth-child(2){transition-delay:.12s}
.reveal-group .reveal-card:nth-child(3){transition-delay:.24s}
.reveal-group .reveal-card:nth-child(4){transition-delay:.36s}

/* 步骤 */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;position:relative}
.step{position:relative}
.step-num{
  width:32px;height:32px;border-radius:50%;
  background:var(--primary-soft);color:var(--primary);
  display:flex;align-items:center;justify-content:center;
  font-weight:600;font-size:13px;margin-bottom:14px;
}
.step-title{font-size:15px;font-weight:600;margin-bottom:6px;color:var(--text)}
.step-desc{font-size:13px;color:var(--text-secondary);line-height:1.6}

/* Section 变体 */
.section-alt{background:var(--bg-soft)}

/* 步骤卡片（服务页流程） */
.step-card{
  position:relative;background:#fff;
  border:1px solid var(--border);border-radius:var(--radius-lg);
  padding:28px 24px;text-align:center;
  transition:transform .3s ease,box-shadow .3s ease;
}
.step-card:hover{
  transform:translateY(-4px);box-shadow:var(--shadow-md);border-color:var(--primary-soft-hover);
}
.step-number{
  display:inline-flex;align-items:center;justify-content:center;
  width:40px;height:40px;border-radius:50%;
  background:var(--primary-soft);color:var(--primary);
  font-size:15px;font-weight:700;margin-bottom:16px;
}
.step-card h4{font-size:15px;font-weight:600;color:var(--text);margin-bottom:8px}
.step-card p{font-size:13px;color:var(--text-secondary);line-height:1.6}

/* ============================================
   平台覆盖区
   ============================================ */
.platform-coverage-section{background:var(--bg-soft)}
.platform-group{margin-bottom:36px}
.platform-group:last-child{margin-bottom:0}
.platform-group-title{
  font-size:14px;font-weight:600;color:var(--text-muted);
  text-transform:uppercase;letter-spacing:1px;margin-bottom:18px;
  padding-bottom:10px;border-bottom:1px solid var(--border);
}
.platform-grid{
  display:grid;grid-template-columns:repeat(6,1fr);gap:16px;
}
.platform-grid.ai-grid{
  grid-template-columns:repeat(auto-fill,minmax(110px,1fr));
}
.platform-card{
  display:flex;flex-direction:column;align-items:center;
  padding:24px 12px 18px;border-radius:var(--radius);
  background:#fff;border:1px solid var(--border);
  transition:var(--transition);cursor:default;position:relative;
}
.platform-card:hover{
  transform:translateY(-4px);
  box-shadow:0 8px 24px rgba(0,0,0,.08);
  border-color:var(--primary);
}
.platform-card.ai{padding:20px 10px 16px}
.platform-icon{
  width:48px;height:48px;border-radius:14px;
  display:flex;align-items:center;justify-content:center;
  margin-bottom:12px;flex-shrink:0;
  box-shadow:0 2px 8px rgba(0,0,0,.12);
}
.platform-card.ai .platform-icon{width:42px;height:42px;border-radius:12px;margin-bottom:10px}
.platform-name{
  font-size:13.5px;font-weight:600;color:var(--text);
  text-align:center;white-space:nowrap;
}
.platform-tag{
  font-size:11px;color:var(--text-muted);margin-top:4px;
  background:var(--bg-soft);padding:2px 8px;border-radius:20px;
}

/* 数据数字（旧版，保留给案例详情页） */
.metric-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}
.metric{padding:24px;border-right:1px solid var(--border)}
.metric:last-child{border-right:none}
.metric-value{font-size:40px;font-weight:700;color:var(--primary);letter-spacing:-1px;line-height:1}
.metric-label{margin-top:8px;font-size:13px;color:var(--text-secondary)}

/* ============================================
   首页 — 数据 + CTA 合并大区块（深色 + 装饰）
   ============================================ */
.impact-block{
  position:relative;
  border-radius:16px;
  padding:56px 56px 52px;
  overflow:hidden;
  isolation:isolate;
  color:#fff;
  background:linear-gradient(135deg,#0b1530 0%,#162155 35%,#1d3a8a 75%,#2563eb 110%);
  box-shadow:
    0 30px 60px -20px rgba(15,23,42,.35),
    0 12px 24px -8px rgba(37,99,235,.18);
}
/* 装饰背景 */
.impact-bg{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden;border-radius:inherit}
.impact-grid{
  position:absolute;inset:0;
  background-image:
    linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px);
  background-size:48px 48px;
  -webkit-mask-image:radial-gradient(ellipse 80% 80% at 50% 50%,#000 30%,transparent 80%);
          mask-image:radial-gradient(ellipse 80% 80% at 50% 50%,#000 30%,transparent 80%);
}
.impact-glow{position:absolute;border-radius:50%;filter:blur(60px)}
.impact-glow-1{
  width:420px;height:420px;top:-120px;right:-80px;
  background:radial-gradient(circle,rgba(14,165,233,.5),transparent 70%);
  animation:impactGlow 14s ease-in-out infinite;
}
.impact-glow-2{
  width:380px;height:380px;bottom:-100px;left:-80px;
  background:radial-gradient(circle,rgba(168,85,247,.3),transparent 70%);
  animation:impactGlow 16s ease-in-out infinite reverse;
}
@keyframes impactGlow{
  0%,100%{transform:translate(0,0) scale(1);opacity:.7}
  50%{transform:translate(30px,-20px) scale(1.15);opacity:1}
}

/* 数据指标 */
.impact-stats{
  position:relative;z-index:1;
  display:grid;grid-template-columns:repeat(4,1fr);
  gap:24px;
  margin-bottom:48px;
}
.impact-stat{
  text-align:center;position:relative;
  opacity:0;transform:translateY(20px);
  transition:opacity .7s cubic-bezier(.4,0,.2,1),transform .7s cubic-bezier(.4,0,.2,1);
}
.impact-block.is-visible .impact-stat{opacity:1;transform:translateY(0)}
.impact-block.is-visible .impact-stat:nth-child(1){transition-delay:.05s}
.impact-block.is-visible .impact-stat:nth-child(2){transition-delay:.18s}
.impact-block.is-visible .impact-stat:nth-child(3){transition-delay:.31s}
.impact-block.is-visible .impact-stat:nth-child(4){transition-delay:.44s}
/* 数据列分隔 */
.impact-stat:not(:last-child)::after{
  content:"";position:absolute;
  top:18%;bottom:18%;right:-12px;
  width:1px;background:linear-gradient(180deg,transparent,rgba(255,255,255,.18),transparent);
}
.impact-stat-value{
  font-size:52px;font-weight:800;letter-spacing:-2px;
  line-height:1;margin-bottom:12px;
  background:linear-gradient(135deg,#ffffff 0%,#c4d4ff 100%);
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;
  font-family:'Inter',-apple-system,sans-serif;
  font-variant-numeric:tabular-nums;
}
.impact-stat-label{
  font-size:13px;color:rgba(255,255,255,.7);
  letter-spacing:.3px;
}

/* 分隔线 */
.impact-divider{
  position:relative;z-index:1;
  height:1px;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.18),transparent);
  margin-bottom:44px;
}

/* CTA */
.impact-cta{position:relative;z-index:1;text-align:center}
.impact-cta-title{
  font-size:32px;font-weight:700;color:#fff;
  margin-bottom:14px;letter-spacing:-.6px;line-height:1.2;
  opacity:0;transform:translateY(16px);
  transition:opacity .6s ease .55s,transform .6s ease .55s;
}
.impact-cta-desc{
  font-size:15px;color:rgba(255,255,255,.8);
  margin-bottom:28px;line-height:1.6;
  opacity:0;transform:translateY(16px);
  transition:opacity .6s ease .65s,transform .6s ease .65s;
}
.impact-actions{
  display:flex;gap:12px;justify-content:center;flex-wrap:wrap;
  opacity:0;transform:translateY(16px);
  transition:opacity .6s ease .75s,transform .6s ease .75s;
}
.impact-block.is-visible .impact-cta-title,
.impact-block.is-visible .impact-cta-desc,
.impact-block.is-visible .impact-actions{opacity:1;transform:translateY(0)}

/* 深色背景下的次级按钮（玻璃质感） */
.btn-ghost-light{
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.2);
  color:#fff;
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
}
.btn-ghost-light:hover{
  background:rgba(255,255,255,.16);
  border-color:rgba(255,255,255,.32);
  color:#fff;
}
/* 深色背景下主按钮额外阴影 */
.impact-actions .btn-primary{
  box-shadow:0 8px 24px -8px rgba(255,255,255,.3),0 4px 12px -2px rgba(37,99,235,.4);
}

/* CTA 块 */
.cta-block{
  margin:0 auto;max-width:880px;
  background:linear-gradient(135deg,var(--primary) 0%,#1e40af 100%);
  border-radius:var(--radius-lg);padding:56px 48px;text-align:center;color:#fff;
}
.cta-block h2{font-size:30px;font-weight:700;letter-spacing:-.5px;margin-bottom:12px}
.cta-block p{font-size:15px;opacity:.9;margin-bottom:24px}
.cta-block .btn-primary{background:#fff;color:var(--primary);border-color:#fff}
.cta-block .btn-primary:hover{background:var(--bg-soft)}
.cta-block .btn-secondary{background:transparent;color:#fff;border-color:rgba(255,255,255,.3)}
.cta-block .btn-secondary:hover{background:rgba(255,255,255,.1)}

/* ============================================
   博客
   ============================================ */
.page-hero{padding:60px 0 40px;border-bottom:1px solid var(--border);background:var(--bg-soft)}
.page-hero h1{font-size:40px;font-weight:700;letter-spacing:-.8px;margin-bottom:12px}
.page-hero p{font-size:16px;color:var(--text-secondary);max-width:680px}
.breadcrumb{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--text-muted);margin-bottom:16px}
.breadcrumb a:hover{color:var(--primary)}

.blog-layout{display:grid;grid-template-columns:1fr 280px;gap:48px;padding:48px 0}
/* ============================================
   博客卡片 — 杂志风 + 高级悬停
   ============================================ */
.post-card{
  position:relative;
  background:#fff;
  border:1px solid var(--border);
  border-radius:12px;
  overflow:hidden;
  display:flex;flex-direction:column;
  transition:transform .4s cubic-bezier(.4,0,.2,1),box-shadow .4s ease,border-color .3s ease;
  isolation:isolate;
}
.post-card:hover{
  transform:translateY(-6px);
  border-color:transparent;
  box-shadow:0 24px 48px -16px rgba(37,99,235,.22),0 8px 20px -8px rgba(15,23,42,.08);
}

/* 封面 */
.post-cover{
  aspect-ratio:16/9;position:relative;
  display:flex;align-items:center;justify-content:center;
  padding:24px;text-align:center;
  font-size:22px;font-weight:700;color:#fff;
  letter-spacing:-.4px;line-height:1.3;
  overflow:hidden;
  background:linear-gradient(135deg,#2563eb 0%,#0ea5e9 100%);
  transition:transform .5s cubic-bezier(.4,0,.2,1);
}
/* 封面装饰圆 */
.post-cover::before,.post-cover::after{
  content:"";position:absolute;border-radius:50%;
  pointer-events:none;
  transition:transform .6s cubic-bezier(.4,0,.2,1);
}
.post-cover::before{
  width:180px;height:180px;
  top:-60px;right:-60px;
  background:radial-gradient(circle,rgba(255,255,255,.25),transparent 70%);
}
.post-cover::after{
  width:120px;height:120px;
  bottom:-40px;left:-40px;
  background:radial-gradient(circle,rgba(255,255,255,.18),transparent 70%);
}
.post-card:hover .post-cover{transform:scale(1.04)}
.post-card:hover .post-cover::before{transform:translate(-15px,15px)}
.post-card:hover .post-cover::after{transform:translate(15px,-15px)}

/* 不同色调 */
.post-cover.alt-1{background:linear-gradient(135deg,#2563eb 0%,#7c3aed 100%)}
.post-cover.alt-2{background:linear-gradient(135deg,#ec4899 0%,#f97316 100%)}
.post-cover.alt-3{background:linear-gradient(135deg,#0ea5e9 0%,#2563eb 100%)}
.post-cover.alt-4{background:linear-gradient(135deg,#f97316 0%,#ef4444 100%)}
.post-cover.alt-5{background:linear-gradient(135deg,#06b6d4 0%,#10b981 100%)}
.post-cover.alt-6{background:linear-gradient(135deg,#8b5cf6 0%,#3b82f6 100%)}

/* 卡片正文 */
.post-body{
  padding:22px 22px 20px;flex:1;
  display:flex;flex-direction:column;
}
.post-meta{
  display:flex;gap:10px;align-items:center;
  margin-bottom:12px;
  font-size:12px;color:var(--text-muted);
}
.post-meta .tag{margin-right:auto}
.post-title{
  font-size:17px;font-weight:600;line-height:1.45;
  margin-bottom:10px;color:var(--text);
  transition:color .3s ease;
  /* 限制 2 行省略 */
  display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;
  overflow:hidden;
}
.post-card:hover .post-title{color:var(--primary)}
.post-excerpt{
  font-size:13px;color:var(--text-secondary);
  line-height:1.65;margin-bottom:16px;flex:1;
  display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;
  overflow:hidden;
}
.post-footer{
  display:flex;justify-content:space-between;align-items:center;
  font-size:12.5px;color:var(--text-muted);
  padding-top:14px;border-top:1px solid var(--border);
}
.post-footer span:last-child{
  display:inline-flex;align-items:center;justify-content:center;
  width:28px;height:28px;border-radius:50%;
  background:var(--bg-soft);color:var(--primary);
  font-size:14px;font-weight:600;
  flex-shrink:0;
  transition:transform .35s ease,background .3s ease,color .3s ease;
}
.post-footer span.post-link{
  width:auto;height:auto;border-radius:var(--radius);
  background:none;font-size:12.5px;
  padding:4px 0;white-space:nowrap;
}
.post-card:hover .post-footer span:last-child{
  background:var(--primary);color:#fff;
  transform:translateX(4px);
}
.post-card:hover .post-footer span.post-link{
  background:none;color:var(--primary);
}

.sidebar-widget{background:#fff;border:1px solid var(--border);border-radius:var(--radius-lg);padding:20px;margin-bottom:20px}
.sidebar-widget h3{font-size:13px;font-weight:600;margin-bottom:14px;color:var(--text);text-transform:uppercase;letter-spacing:.5px}
.cat-list{display:flex;flex-direction:column;gap:2px}
.cat-list a{
  display:flex;justify-content:space-between;align-items:center;
  padding:8px 10px;border-radius:var(--radius);font-size:13px;color:var(--text-secondary);
}
.cat-list a:hover{background:var(--bg-muted);color:var(--text)}
.cat-list a.active{background:var(--primary-soft);color:var(--primary);font-weight:500}
.cat-count{font-size:11px;color:var(--text-muted);background:var(--bg-muted);padding:1px 7px;border-radius:10px}

.tag-cloud{display:flex;flex-wrap:wrap;gap:6px}
.tag-cloud a{
  padding:4px 10px;border:1px solid var(--border);border-radius:14px;
  font-size:12px;color:var(--text-secondary);background:#fff;
}
.tag-cloud a:hover{border-color:var(--primary);color:var(--primary);background:var(--primary-soft)}

/* 文章正文 */
.article{
  max-width:760px;margin:0 auto;padding:48px 0;
}
.article-header{margin-bottom:32px;padding-bottom:24px;border-bottom:1px solid var(--border)}
.article-header h1{font-size:36px;font-weight:700;line-height:1.25;letter-spacing:-.5px;margin-bottom:16px}
.article-meta{display:flex;align-items:center;gap:16px;flex-wrap:wrap;font-size:13px;color:var(--text-muted)}
.article-meta .author{display:flex;align-items:center;gap:8px;color:var(--text-secondary)}
.author-avatar{width:24px;height:24px;border-radius:50%;background:var(--primary-soft);display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:600;color:var(--primary)}

.article-content{font-size:15.5px;line-height:1.8;color:var(--text)}
.article-content > *{margin-bottom:1.2em}
.article-content h2{font-size:24px;font-weight:700;margin-top:2em;margin-bottom:.8em;letter-spacing:-.3px}
.article-content h3{font-size:18px;font-weight:600;margin-top:1.6em;margin-bottom:.6em}
.article-content p{color:var(--text-secondary);line-height:1.85}
.article-content ul,.article-content ol{padding-left:1.4em;color:var(--text-secondary)}
.article-content li{margin-bottom:.4em}
.article-content blockquote{
  border-left:3px solid var(--primary);background:var(--primary-soft);
  padding:14px 20px;border-radius:0 var(--radius-md) var(--radius-md) 0;
  font-size:14.5px;color:var(--text);
}
.article-content code{
  background:var(--bg-muted);padding:2px 6px;border-radius:3px;
  font-family:"SF Mono",Consolas,monospace;font-size:.9em;
}
.article-content img{
  border-radius:var(--radius-lg);border:1px solid var(--border);
}
.article-content a{color:var(--primary);text-decoration:underline;text-underline-offset:2px}

/* TOC */
.toc{
  position:sticky;top:calc(var(--header-h) + 24px);
  background:#fff;border:1px solid var(--border);border-radius:var(--radius-lg);
  padding:18px;font-size:13px;
}
.toc-title{font-size:12px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:10px}
.toc ul{list-style:none}
.toc a{display:block;padding:5px 0;color:var(--text-secondary);border-left:2px solid transparent;padding-left:10px;margin-left:-12px}
.toc a:hover,.toc a.active{color:var(--primary);border-left-color:var(--primary)}

/* FAQ */
.faq-list{max-width:760px;margin:0 auto}
.faq-item{
  background:#fff;border:1px solid var(--border);border-radius:var(--radius-lg);
  margin-bottom:12px;overflow:hidden;cursor:pointer;
}
.faq-question,.faq-q{
  padding:18px 20px;display:flex;justify-content:space-between;align-items:center;
  font-weight:600;font-size:14.5px;cursor:pointer;color:var(--text);
}
.faq-question:hover,.faq-q:hover{background:var(--bg-soft)}
.faq-q svg,.faq-icon{flex-shrink:0;color:var(--text-muted);transition:transform .3s ease}
.faq-item.open .faq-icon,.faq-item.open .faq-q svg{transform:rotate(180deg);color:var(--primary)}
.faq-answer,.faq-a{
  padding:0 20px 0;font-size:14px;color:var(--text-secondary);line-height:1.75;
  max-height:0;overflow:hidden;transition:max-height .3s ease,padding .3s ease;
}
.faq-item.open .faq-answer,.faq-item.open .faq-a{
  max-height:300px;padding:0 20px 18px;
}

/* CTA Section */
.section-cta{
  background:linear-gradient(135deg,#1e293b 0%,#0f172a 100%);
  color:#fff;padding:80px 0;
}
.section-cta h2{color:#fff;font-size:32px;font-weight:700;margin-bottom:16px}
.section-cta p{color:rgba(255,255,255,.7);font-size:16px;max-width:560px;margin:0 auto}

/* ============================================
   案例
   ============================================ */
.case-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.case-card{
  background:#fff;border:1px solid var(--border);border-radius:var(--radius-lg);
  overflow:hidden;transition:var(--transition);
}
.case-card:hover{border-color:var(--border-strong);box-shadow:var(--shadow-md);transform:translateY(-2px)}
.case-cover{
  aspect-ratio:4/3;background:var(--bg-muted);position:relative;
  display:flex;align-items:center;justify-content:center;
}
.case-cover svg{color:var(--text-muted);opacity:.4;width:48px;height:48px}
.case-body{padding:20px}
.case-industry{font-size:11px;color:var(--primary);font-weight:600;text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px}
.case-title{font-size:16px;font-weight:600;margin-bottom:8px;color:var(--text);line-height:1.4}
.case-desc{font-size:13px;color:var(--text-secondary);line-height:1.6;margin-bottom:14px}
.case-stats{display:flex;gap:16px;padding-top:14px;border-top:1px solid var(--border)}
.case-stat{flex:1}
.case-stat-value{font-size:18px;font-weight:700;color:var(--text)}
.case-stat-label{font-size:11px;color:var(--text-muted);margin-top:2px}

.filter-bar{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:32px}
.filter-btn{
  padding:6px 14px;border:1px solid var(--border);border-radius:20px;
  background:#fff;font-size:13px;color:var(--text-secondary);cursor:pointer;transition:var(--transition);
}
.filter-btn:hover{border-color:var(--primary);color:var(--primary)}
.filter-btn.active{background:var(--primary);border-color:var(--primary);color:#fff}

/* 案例详情 — Before/After */
.compare-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:32px 0}
.compare-card{
  background:#fff;border:1px solid var(--border);border-radius:var(--radius-lg);padding:24px;
}
.compare-card.after{border-color:var(--primary);box-shadow:0 0 0 4px rgba(37,99,235,.05)}
.compare-label{
  display:inline-block;font-size:11px;font-weight:600;
  padding:3px 10px;border-radius:3px;margin-bottom:16px;
}
.compare-label.before{background:var(--bg-muted);color:var(--text-secondary)}
.compare-label.after{background:var(--primary-soft);color:var(--primary)}
.compare-num{font-size:32px;font-weight:700;color:var(--text);letter-spacing:-.5px;margin-bottom:4px}
.compare-card.after .compare-num{color:var(--primary)}
.compare-desc{font-size:13px;color:var(--text-secondary)}

/* ============================================
   首页 — 服务联动 Tab + 自动轮播
   ============================================ */
.services-stage{
  display:flex;flex-direction:column;
  gap:20px;
  background:#fff;
  border:1px solid var(--border);
  border-radius:10px;
  padding:20px;
  box-shadow:0 4px 12px -4px rgba(15,23,42,.04);
}

/* 顶部 Tab 列表 */
.services-nav{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.services-tab{
  position:relative;display:flex;align-items:center;gap:12px;
  padding:16px 16px;
  background:transparent;border:1px solid transparent;border-radius:8px;
  text-align:left;cursor:pointer;
  transition:background .3s ease,border-color .3s ease,transform .3s ease;
  overflow:hidden;
}
.services-tab:hover{background:var(--bg-soft)}
.services-tab.active{
  background:linear-gradient(135deg,var(--primary-soft),rgba(14,165,233,.06));
  border-color:rgba(37,99,235,.18);
}
.services-tab-num{
  flex-shrink:0;font-size:18px;font-weight:700;
  color:var(--text-muted);letter-spacing:.5px;
  transition:color .3s ease;
  font-family:'Inter',-apple-system,sans-serif;
}
.services-tab.active .services-tab-num{color:var(--primary)}
.services-tab-meta{flex:1;min-width:0}
.services-tab-title{
  font-size:14px;font-weight:600;color:var(--text);
  margin-bottom:2px;transition:color .3s ease;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.services-tab.active .services-tab-title{color:var(--primary)}
.services-tab-sub{
  font-size:11.5px;color:var(--text-muted);line-height:1.4;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.services-tab-arrow{display:none}

/* 进度条（仅 active 显示并填充） */
.services-tab-progress{
  position:absolute;left:0;right:0;bottom:0;height:2px;
  background:rgba(37,99,235,.1);
  opacity:0;transition:opacity .3s ease;
}
.services-tab.active .services-tab-progress{opacity:1}
.services-tab-progress > span{
  display:block;height:100%;width:0;
  background:linear-gradient(90deg,var(--primary),var(--info));
}
.services-tab.active .services-tab-progress > span{
  animation:tabProgress 6s linear forwards;
}
.services-stage.is-paused .services-tab.active .services-tab-progress > span{
  animation-play-state:paused;
}
@keyframes tabProgress{from{width:0}to{width:100%}}

/* 下方展示区 */
.services-display{
  position:relative;
  display:grid;  /* 所有 panel 堆叠在同一格，高度由 active panel 决定 */
  background:linear-gradient(135deg,#f8faff 0%,#eef4ff 100%);
  border-radius:8px;
  padding:44px 48px;
  isolation:isolate;overflow:hidden;
}
.services-display > *{grid-area:1 / 1}
.services-display-bg{
  z-index:0;pointer-events:none;
  margin:-44px -48px;
  background:
    radial-gradient(circle 360px at 80% 20%,rgba(37,99,235,.18),transparent 60%),
    radial-gradient(circle 280px at 20% 80%,rgba(14,165,233,.12),transparent 60%);
  animation:bgFloat 12s ease-in-out infinite;
}
@keyframes bgFloat{
  0%,100%{transform:translate(0,0) scale(1)}
  50%{transform:translate(-10px,-8px) scale(1.05)}
}

/* 单个面板：同格堆叠，非 active 隐藏但仍参与高度计算 */
.services-panel{
  z-index:1;
  display:flex;flex-direction:column;
  opacity:0;transform:translateY(16px);
  pointer-events:none;visibility:hidden;
  transition:opacity .55s cubic-bezier(.4,0,.2,1),transform .55s cubic-bezier(.4,0,.2,1),visibility 0s linear .55s;
}
.services-panel.active{
  opacity:1;transform:translateY(0);
  pointer-events:auto;visibility:visible;
  transition:opacity .55s cubic-bezier(.4,0,.2,1),transform .55s cubic-bezier(.4,0,.2,1);
}
.services-panel-tag{
  display:inline-block;align-self:flex-start;
  padding:4px 12px;border-radius:4px;
  background:#fff;border:1px solid rgba(37,99,235,.2);
  font-size:11.5px;font-weight:600;color:var(--primary);
  letter-spacing:.5px;margin-bottom:18px;
}
.services-panel-title{
  font-size:30px;font-weight:700;letter-spacing:-.6px;
  color:var(--text);margin-bottom:14px;line-height:1.2;
}
.services-panel-desc{
  font-size:15px;line-height:1.7;color:var(--text-secondary);
  margin-bottom:22px;max-width:560px;
}
.services-panel-list{
  list-style:none;padding:0;margin:0 0 24px;
  display:grid;grid-template-columns:repeat(3,1fr);gap:10px 24px;
}
.services-panel-list li{
  display:flex;align-items:center;gap:8px;
  font-size:13.5px;color:var(--text);
}
.check-dot{
  display:inline-flex;align-items:center;justify-content:center;
  width:18px;height:18px;border-radius:50%;flex-shrink:0;
  background:var(--primary-soft);color:var(--primary);
  font-size:0;position:relative;
}
.check-dot::before{
  content:"";width:8px;height:4px;
  border-left:2px solid var(--primary);border-bottom:2px solid var(--primary);
  transform:rotate(-45deg) translate(1px,-1px);
}

/* 数据条 */
.services-panel-stats{
  display:flex;gap:36px;flex-wrap:wrap;
  margin-bottom:24px;
  padding-top:20px;border-top:1px dashed rgba(37,99,235,.18);
}
.services-panel-stats > div{display:flex;flex-direction:column;gap:4px}
.services-panel-stats .stat-num{
  font-size:22px;font-weight:700;
  background:linear-gradient(90deg,var(--primary),var(--info));
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;
  letter-spacing:-.4px;
}
.services-panel-stats .stat-label{font-size:11.5px;color:var(--text-muted)}
.services-panel .btn{align-self:flex-start;border-radius:6px}

/* 实施步骤时间线 */
.services-panel-steps{
  display:grid;grid-template-columns:repeat(4,1fr);
  gap:8px;margin-bottom:22px;
  position:relative;
}
.services-panel-steps::before{
  content:"";position:absolute;
  top:14px;left:6%;right:6%;height:1px;
  background:repeating-linear-gradient(90deg,rgba(37,99,235,.25) 0 4px,transparent 4px 8px);
  z-index:0;
}
.step-item{
  position:relative;z-index:1;
  display:flex;flex-direction:column;align-items:center;gap:10px;
  padding:0 4px;
}
.step-idx{
  width:28px;height:28px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  background:#fff;border:1.5px solid rgba(37,99,235,.3);
  font-size:11px;font-weight:700;color:var(--primary);
  font-family:'Inter',-apple-system,sans-serif;
  transition:transform .35s ease,background .3s ease,box-shadow .3s ease;
}
.services-panel.active .step-item:nth-child(1) .step-idx{animation:stepPop .5s .2s both}
.services-panel.active .step-item:nth-child(2) .step-idx{animation:stepPop .5s .35s both}
.services-panel.active .step-item:nth-child(3) .step-idx{animation:stepPop .5s .5s both}
.services-panel.active .step-item:nth-child(4) .step-idx{animation:stepPop .5s .65s both}
@keyframes stepPop{
  0%{transform:scale(.6);opacity:0}
  60%{transform:scale(1.15);opacity:1;background:linear-gradient(135deg,var(--primary),var(--info));color:#fff;border-color:transparent;box-shadow:0 6px 16px -4px rgba(37,99,235,.4)}
  100%{transform:scale(1);opacity:1;background:#fff;color:var(--primary)}
}
.step-item:hover .step-idx{
  background:linear-gradient(135deg,var(--primary),var(--info));
  color:#fff;border-color:transparent;
  transform:translateY(-2px);
  box-shadow:0 6px 16px -4px rgba(37,99,235,.4);
}
.step-name{
  font-size:12.5px;font-weight:500;
  color:var(--text-secondary);
  text-align:center;line-height:1.3;
  transition:color .3s ease;
}
.step-item:hover .step-name{color:var(--primary)}

/* ============================================
   服务页（保留原样式）
   ============================================ */
.service-card{
  background:#fff;border:1px solid var(--border);border-radius:var(--radius-lg);
  padding:32px;transition:var(--transition);height:100%;display:flex;flex-direction:column;
}
.service-card:hover{border-color:var(--primary);box-shadow:var(--shadow-md)}
.service-icon{
  width:48px;height:48px;border-radius:var(--radius-md);
  background:var(--primary-soft);color:var(--primary);
  display:flex;align-items:center;justify-content:center;margin-bottom:20px;
}
.service-title{font-size:18px;font-weight:600;margin-bottom:10px}
.service-desc{font-size:14px;color:var(--text-secondary);line-height:1.65;margin-bottom:20px;flex:1}
.service-list{list-style:none;margin-bottom:20px}
.service-list li{
  display:flex;align-items:flex-start;gap:8px;
  font-size:13px;color:var(--text-secondary);padding:5px 0;
}
.service-list svg{color:var(--success);flex-shrink:0;margin-top:3px}

/* ============================================
   联系页
   ============================================ */
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:48px}
.contact-info{display:flex;flex-direction:column;gap:24px}
.contact-item{
  display:flex;gap:16px;padding:20px;
  background:#fff;border:1px solid var(--border);border-radius:var(--radius-lg);
}
.contact-icon{
  width:40px;height:40px;border-radius:var(--radius-md);flex-shrink:0;
  background:var(--primary-soft);color:var(--primary);
  display:flex;align-items:center;justify-content:center;
}
.contact-label{font-size:12px;color:var(--text-muted);margin-bottom:4px}
.contact-value{font-size:15px;font-weight:500;color:var(--text)}
.qr-block{
  background:#fff;border:1px solid var(--border);border-radius:var(--radius-lg);
  padding:24px;text-align:center;
}
.qr-img{
  width:160px;height:160px;margin:0 auto 12px;
  background:#f3f4f6;border:1px solid var(--border);border-radius:var(--radius);
  display:flex;align-items:center;justify-content:center;
  background-image:linear-gradient(45deg,#e5e7eb 25%,transparent 25%),linear-gradient(-45deg,#e5e7eb 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#e5e7eb 75%),linear-gradient(-45deg,transparent 75%,#e5e7eb 75%);
  background-size:12px 12px;
  background-position:0 0,0 6px,6px -6px,-6px 0;
  color:var(--text-muted);font-size:12px;
}

.form-group{margin-bottom:18px}
.form-label{display:block;font-size:13px;font-weight:500;margin-bottom:6px;color:var(--text)}
.form-label .req{color:var(--danger)}
.form-hint{font-size:12px;color:var(--text-muted);margin-top:6px}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}

/* ============================================
   页脚
   ============================================ */
.site-footer{background:var(--bg-soft);border-top:1px solid var(--border);padding:56px 0 32px;}
.footer-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:48px;margin-bottom:40px}
.footer-brand{font-size:15px;font-weight:600;margin-bottom:12px;display:flex;align-items:center;gap:8px}
.footer-desc{font-size:13px;color:var(--text-secondary);line-height:1.7;margin-bottom:16px}
.footer-col h4{font-size:13px;font-weight:600;margin-bottom:14px;color:var(--text)}
.footer-col ul{list-style:none}
.footer-col li{margin-bottom:8px}
.footer-col a{font-size:13px;color:var(--text-secondary)}
.footer-col a:hover{color:var(--primary)}
.footer-bottom{
  padding-top:24px;border-top:1px solid var(--border);
  display:flex;justify-content:space-between;align-items:center;
  font-size:12.5px;color:var(--text-muted);
}

/* ============================================
   后台 — 布局
   ============================================ */
.admin-app{display:flex;height:100vh;overflow:hidden;background:var(--bg-soft)}
.admin-sidebar{
  width:var(--sidebar-w);min-width:var(--sidebar-w);
  background:#fff;border-right:1px solid var(--border);
  display:flex;flex-direction:column;overflow:hidden;
}
.admin-sidebar-header{padding:18px 18px 12px;border-bottom:1px solid var(--border)}
.admin-sidebar-nav{flex:1;overflow-y:auto;padding:10px}
.admin-sidebar-nav::-webkit-scrollbar{width:4px}
.admin-sidebar-nav::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}
.nav-section{margin-bottom:14px}
.nav-section-title{font-size:11px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.7px;padding:6px 10px;margin-bottom:2px}
.nav-item{
  display:flex;align-items:center;gap:10px;
  padding:7px 10px;border-radius:var(--radius);
  color:var(--text-secondary);transition:var(--transition);cursor:pointer;
  font-size:13px;line-height:1.4;font-weight:500;
}
.nav-item:hover{background:var(--bg-muted);color:var(--text)}
.nav-item.active{background:var(--primary-soft);color:var(--primary)}
.nav-icon{width:16px;height:16px;flex-shrink:0;opacity:.85}
.nav-badge{
  margin-left:auto;background:var(--primary);color:#fff;
  font-size:10px;padding:1px 6px;border-radius:10px;font-weight:600;
}
.admin-sidebar-footer{padding:10px;border-top:1px solid var(--border)}
.sidebar-user{
  display:flex;align-items:center;gap:10px;padding:8px 10px;
  border-radius:var(--radius);cursor:pointer;transition:var(--transition);
}
.sidebar-user:hover{background:var(--bg-muted)}
.user-avatar{
  width:30px;height:30px;border-radius:50%;
  background:var(--primary);
  display:flex;align-items:center;justify-content:center;
  color:#fff;font-weight:600;font-size:12px;flex-shrink:0;
}
.user-info{flex:1;overflow:hidden}
.user-name{font-size:13px;font-weight:500;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.user-role{font-size:11px;color:var(--text-muted)}

.admin-main{flex:1;display:flex;flex-direction:column;overflow:hidden}
.admin-header{
  height:56px;background:#fff;border-bottom:1px solid var(--border);
  display:flex;align-items:center;padding:0 24px;gap:14px;flex-shrink:0;
}
.admin-header-title{font-size:14px;font-weight:600;flex:1;color:var(--text)}
.admin-header-search{position:relative;width:240px}
.admin-header-search input{padding-left:34px;height:34px;font-size:13px;background:var(--bg-soft);border-color:transparent}
.admin-header-search input:focus{background:#fff;border-color:var(--primary)}
.admin-header-search svg{position:absolute;left:11px;top:50%;transform:translateY(-50%);color:var(--text-muted)}

.admin-content{flex:1;overflow-y:auto;padding:24px}

.admin-page{display:none;animation:fadeIn .25s ease}
.admin-page.active{display:block}
@keyframes fadeIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}

.page-title-bar{margin-bottom:24px}
.page-title-bar h1{font-size:22px;font-weight:700;letter-spacing:-.4px;margin-bottom:4px;color:var(--text)}
.page-title-bar p{font-size:13.5px;color:var(--text-secondary)}

/* 后台统计卡 */
.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:20px}
.stat{
  background:#fff;border:1px solid var(--border);border-radius:var(--radius-lg);padding:20px;
  transition:var(--transition);
}
.stat:hover{border-color:var(--border-strong)}
.stat-icon{
  width:34px;height:34px;border-radius:var(--radius-md);
  display:flex;align-items:center;justify-content:center;margin-bottom:14px;
}
.stat-icon.primary{background:var(--primary-soft);color:var(--primary)}
.stat-icon.success{background:var(--success-soft);color:var(--success)}
.stat-icon.warning{background:var(--warning-soft);color:var(--warning)}
.stat-icon.info{background:var(--info-soft);color:var(--info)}
.stat-icon.danger{background:var(--danger-soft);color:var(--danger)}
.stat-label{font-size:12px;color:var(--text-muted);margin-bottom:4px;font-weight:500}
.stat-value{font-size:26px;font-weight:700;color:var(--text);letter-spacing:-.5px;line-height:1.1;margin-bottom:6px}
.stat-change{font-size:12px;display:inline-flex;align-items:center;gap:4px}
.stat-change.up{color:var(--success)}
.stat-change.down{color:var(--danger)}

/* 表格 */
.table-wrap{overflow-x:auto}
table{width:100%;border-collapse:collapse}
th{
  font-size:11.5px;font-weight:600;color:var(--text-muted);
  text-transform:uppercase;letter-spacing:.5px;text-align:left;
  padding:10px 16px;background:var(--bg-soft);border-bottom:1px solid var(--border);
}
td{padding:12px 16px;border-bottom:1px solid var(--border);font-size:13px;color:var(--text-secondary)}
tr:hover td{background:var(--bg-soft)}
tr:last-child td{border-bottom:none}
.cell-strong{color:var(--text);font-weight:500}

/* 进度条 */
.progress{height:6px;background:var(--bg-muted);border-radius:3px;overflow:hidden}
.progress-fill{height:100%;border-radius:3px;background:var(--primary);transition:width .6s ease}
.progress-fill.success{background:var(--success)}
.progress-fill.warning{background:var(--warning)}
.progress-fill.info{background:var(--info)}

/* 列表项 */
.list{display:flex;flex-direction:column}
.list-item{display:flex;align-items:center;gap:14px;padding:14px 20px;border-bottom:1px solid var(--border);transition:var(--transition)}
.list-item:last-child{border-bottom:none}
.list-item:hover{background:var(--bg-soft)}
.list-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}
.list-main{flex:1;min-width:0}
.list-title{font-size:13.5px;font-weight:500;color:var(--text);margin-bottom:2px}
.list-sub{font-size:12px;color:var(--text-muted)}
.list-actions{display:flex;gap:6px}

/* 开关 */
.toggle{position:relative;width:38px;height:22px;flex-shrink:0;cursor:pointer}
.toggle input{display:none}
.toggle-slider{position:absolute;inset:0;background:var(--border-strong);border-radius:11px;transition:var(--transition)}
.toggle-slider::before{content:'';position:absolute;width:16px;height:16px;border-radius:50%;background:#fff;top:3px;left:3px;transition:var(--transition);box-shadow:0 1px 3px rgba(0,0,0,.2)}
.toggle input:checked+.toggle-slider{background:var(--primary)}
.toggle input:checked+.toggle-slider::before{transform:translateX(16px)}
.toggle-row{display:flex;align-items:center;justify-content:space-between;padding:14px 0;border-bottom:1px solid var(--border);gap:16px}
.toggle-row:last-child{border-bottom:none}
.toggle-label{font-size:13.5px;font-weight:500;color:var(--text)}
.toggle-desc{font-size:12px;color:var(--text-muted);margin-top:2px}

/* 标签页 */
.tabs{display:flex;gap:0;border-bottom:1px solid var(--border);margin-bottom:24px}
.tab{padding:10px 16px;font-size:13px;color:var(--text-muted);font-weight:500;border-bottom:2px solid transparent;cursor:pointer;transition:var(--transition)}
.tab:hover{color:var(--text)}
.tab.active{color:var(--primary);border-bottom-color:var(--primary)}

/* 工作流步骤 */
.workflow{display:flex;flex-direction:column;gap:2px}
.workflow-step{display:flex;align-items:flex-start;gap:14px;padding:12px 16px;border-radius:var(--radius);transition:var(--transition)}
.workflow-step:hover{background:var(--bg-soft)}
.step-circle{
  width:26px;height:26px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  font-size:12px;font-weight:600;flex-shrink:0;
  border:2px solid var(--border);background:#fff;color:var(--text-muted);
}
.step-circle.done{background:var(--success);border-color:var(--success);color:#fff}
.step-circle.active{background:var(--primary);border-color:var(--primary);color:#fff}

/* 图表占位 */
.chart-area{
  height:220px;border-radius:var(--radius);position:relative;overflow:hidden;
  background:linear-gradient(180deg,rgba(37,99,235,.06) 0%,transparent 100%);
}
.chart-area::after{
  content:'';position:absolute;inset:0;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 400 200' preserveAspectRatio='none'%3E%3Cpath d='M0,180 C50,160 80,140 120,100 C160,60 200,80 240,60 C280,40 320,70 360,30 L400,20' fill='none' stroke='%232563eb' stroke-width='2'/%3E%3Cpath d='M0,180 C50,160 80,140 120,100 C160,60 200,80 240,60 C280,40 320,70 360,30 L400,20 L400,200 L0,200Z' fill='url(%23gd)'/%3E%3Cdefs%3E%3ClinearGradient id='gd' x1='0' y1='0' x2='0' y2='1'%3E%3Cstop offset='0%25' stop-color='%232563eb' stop-opacity='.18'/%3E%3Cstop offset='100%25' stop-color='%232563eb' stop-opacity='0'/%3E%3C/linearGradient%3E%3C/defs%3E%3C/svg%3E") no-repeat;
  background-size:100% 100%;
}

/* ============================================
   响应式
   ============================================ */
@media(max-width:1024px){
  .grid-3,.grid-4{grid-template-columns:repeat(2,1fr)}
  .case-grid{grid-template-columns:repeat(2,1fr)}
  .steps{grid-template-columns:repeat(2,1fr)}
  .footer-grid{grid-template-columns:1fr 1fr;gap:32px}
  .blog-layout{grid-template-columns:1fr;gap:32px}
  .hero-grid{gap:32px}
  .platform-grid{grid-template-columns:repeat(3,1fr)}
  .platform-grid.ai-grid{grid-template-columns:repeat(3,1fr)}
  .hero-title{font-size:36px}
  .float-chip{font-size:11.5px;padding:6px 11px}
}
@media(max-width:768px){
  .hero-grid{grid-template-columns:1fr;gap:40px}
  .hero-right{min-height:380px;order:2}
  .hero-title{font-size:30px}
  .hero-subtitle{font-size:15px}
  .float-chip.chip-3,.float-chip.chip-4{display:none}
  .ai-card{max-width:360px}
  .site-nav{
    position:fixed;top:var(--header-h);left:0;right:0;
    background:#fff;border-bottom:1px solid var(--border);
    flex-direction:column;align-items:stretch;padding:12px 16px;gap:2px;
    transform:translateY(-110%);transition:transform .3s ease;
  }
  .site-nav.open{transform:translateY(0)}
  .site-nav a{padding:10px 12px}
  .menu-toggle{display:inline-flex}
  .site-actions .btn{display:none}
  .site-actions .btn-primary{display:inline-flex}

  .hero{padding:48px 0 36px}
  .section{padding:48px 0}
  .marquee-section{padding:28px 0 32px}
  .marquee-item{font-size:13px}
  .marquee-right .marquee-item{font-size:12.5px}
  .marquee-sep{font-size:12px}
  .marquee-group{gap:14px;padding-right:14px}
  .services-stage{gap:16px;padding:16px}
  .services-nav{grid-template-columns:repeat(2,1fr)}
  .services-display{padding:28px 24px}
  .services-display-bg{margin:-28px -24px}
  .services-panel-title{font-size:24px}
  .services-panel-list{grid-template-columns:1fr}
  .services-panel-stats{gap:20px}

  /* 数据 + CTA 合并区块 */
  .impact-block{padding:36px 24px}
  .impact-stats{grid-template-columns:repeat(2,1fr);gap:32px 16px;margin-bottom:32px}
  .impact-stat:not(:last-child)::after{display:none}
  .impact-stat-value{font-size:36px}
  .impact-divider{margin-bottom:32px}
  .impact-cta-title{font-size:24px}
  .impact-glow-1,.impact-glow-2{width:280px;height:280px}

  .section-title{font-size:26px}
  .grid-2,.grid-3,.grid-4{grid-template-columns:1fr}
  .case-grid{grid-template-columns:1fr}
  .steps{grid-template-columns:1fr}
  .metric-grid{grid-template-columns:repeat(2,1fr)}
  .metric{border-right:none;border-bottom:1px solid var(--border);padding:16px}
  .metric:nth-last-child(-n+2){border-bottom:none}
  .compare-grid{grid-template-columns:1fr}
  .contact-grid{grid-template-columns:1fr;gap:24px}
  .article-header h1{font-size:26px}
  .form-row{grid-template-columns:1fr}
  .footer-grid{grid-template-columns:1fr;gap:24px}
  .platform-grid{grid-template-columns:repeat(3,1fr)}
  .platform-grid.ai-grid{grid-template-columns:repeat(3,1fr)}
  .platform-icon{width:40px;height:40px;border-radius:10px}
  .platform-card.ai .platform-icon{width:36px;height:36px}

  /* 后台 */
  .admin-sidebar{position:fixed;left:calc(var(--sidebar-w)*-1);height:100vh;z-index:200;transition:left .3s ease}
  .admin-sidebar.open{left:0;box-shadow:var(--shadow-lg)}
  .admin-header-search{display:none}
  .stat-grid{grid-template-columns:repeat(2,1fr)}
  .admin-content{padding:16px}
  .menu-btn-admin{display:inline-flex !important}
}
@media(max-width:480px){
  .hero-title{font-size:28px}
  .stat-grid{grid-template-columns:1fr}
  .cta-block{padding:36px 24px}
  .cta-block h2{font-size:22px}
}
.menu-btn-admin{display:none}

/* ============================================
   弹窗 Modal
   ============================================ */
.sj-modal-overlay{
  position:fixed;inset:0;background:rgba(0,0,0,.5);
  backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);
  display:flex;align-items:center;justify-content:center;
  z-index:9999;padding:20px;
}
.sj-modal{
  background:#fff;border-radius:14px;
  width:100%;max-width:520px;max-height:85vh;
  display:flex;flex-direction:column;
  box-shadow:0 24px 80px rgba(0,0,0,.2),0 0 0 1px rgba(0,0,0,.05);
  animation:modalIn .25s cubic-bezier(.16,1,.3,1);
}
@keyframes modalIn{from{opacity:0;transform:translateY(16px) scale(.96)}to{opacity:1;transform:none}}
.sj-modal-header{
  display:flex;align-items:center;justify-content:space-between;
  padding:18px 22px;border-bottom:1px solid var(--border);
}
.sj-modal-header h3{
  font-size:16px;font-weight:700;color:var(--text);
  letter-spacing:-.2px;
}
.sj-modal-header .btn-icon{
  width:30px;height:30px;border-radius:8px;
  display:flex;align-items:center;justify-content:center;
  color:var(--text-muted);transition:var(--transition);
}
.sj-modal-header .btn-icon:hover{background:var(--bg-muted);color:var(--text)}
.sj-modal-body{
  padding:22px;overflow-y:auto;flex:1;
}
.sj-modal-body .form-group{margin-bottom:16px}
.sj-modal-body .form-group:last-child{margin-bottom:0}
.sj-modal-body .form-label{
  display:block;font-size:12.5px;font-weight:600;color:var(--text-secondary);
  margin-bottom:6px;text-transform:uppercase;letter-spacing:.3px;
}
.sj-modal-body input[type="text"],
.sj-modal-body input[type="password"],
.sj-modal-body select{
  width:100%;padding:9px 12px;font-size:13px;
  border:1px solid var(--border);border-radius:8px;
  background:var(--bg-soft);color:var(--text);
  transition:var(--transition);outline:none;
}
.sj-modal-body input:focus,
.sj-modal-body select:focus{
  border-color:var(--primary);
  box-shadow:0 0 0 3px var(--primary-soft);
  background:#fff;
}
.sj-modal-body input::placeholder{color:var(--text-muted);font-size:12.5px}
.sj-modal-footer{
  display:flex;align-items:center;justify-content:flex-end;gap:8px;
  padding:14px 20px;border-top:1px solid var(--border);
  background:var(--bg-soft);
  border-radius:0 0 14px 14px;
}
.sj-modal-footer .btn{
  height:32px;padding:0 16px;
  font-size:12.5px;font-weight:500;line-height:1;
  border-radius:6px;cursor:pointer;
  display:inline-flex;align-items:center;justify-content:center;gap:4px;
  border:1px solid transparent;user-select:none;
  transition:background-color .15s ease,border-color .15s ease,color .15s ease;
}
.sj-modal-footer .btn-primary{
  background:var(--primary);color:#fff;
}
.sj-modal-footer .btn-primary:hover{
  background:var(--primary-dark,#4f46e5);
}
.sj-modal-footer .btn-ghost{
  background:#fff;color:var(--text);
  border-color:var(--border);
}
.sj-modal-footer .btn-ghost:hover{
  border-color:var(--primary);
  color:var(--primary);
}
.sj-modal-footer .btn-danger{
  background:#fff;color:var(--danger);
  border-color:var(--border);
}
.sj-modal-footer .btn-danger:hover{
  background:var(--danger);color:#fff;
  border-color:var(--danger);
}

/* 分隔文字 */
.sj-modal-body .sj-divider{
  text-align:center;color:var(--text-muted);font-size:11.5px;
  margin:16px 0;position:relative;
}
.sj-divider::before,.sj-divider::after{
  content:'';position:absolute;top:50%;width:calc(50% - 60px);
  height:1px;background:var(--border);
}
.sj-divider::before{left:0}
.sj-divider::after{right:0}

/* 测试连接结果 */
#testApiResult{font-size:12.5px;font-weight:500}

/* 预设平台选择网格 */
.api-preset-grid{
  display:grid;grid-template-columns:repeat(4,1fr);gap:8px;
}
.api-preset-btn{
  display:flex;flex-direction:column;align-items:center;gap:6px;
  padding:12px 6px;border:1.5px solid var(--border);border-radius:10px;
  background:#fff;cursor:pointer;transition:all .15s ease;
}
.api-preset-btn:hover{
  border-color:var(--primary);background:var(--primary-soft);
  transform:translateY(-1px);box-shadow:0 4px 12px rgba(0,0,0,.06);
}
@media(max-width:480px){
  .api-preset-grid{grid-template-columns:repeat(3,1fr)}
  .sj-modal{max-width:calc(100vw - 32px);max-height:90vh}
}

/* ===== 案例 ===== */
.case-card{
  display:flex;flex-direction:column;
  background:#fff;border:1px solid var(--border);border-radius:var(--radius-lg);
  overflow:hidden;text-decoration:none;color:var(--text);
  transition:transform .3s ease,box-shadow .3s ease;
}
.case-card:hover{
  transform:translateY(-4px);box-shadow:0 12px 32px rgba(0,0,0,.08);
}
.case-cover{
  height:140px;background:linear-gradient(135deg,var(--primary-soft),#e0f2fe);
  display:flex;align-items:center;justify-content:center;
}
.case-cover-icon{color:var(--primary);opacity:.6}
.case-body{padding:20px;display:flex;flex-direction:column;gap:10px;flex:1}
.case-title{font-size:15px;font-weight:600;line-height:1.4;color:var(--text)}
.case-metric{display:flex;align-items:baseline;gap:6px}
.case-metric-value{font-size:24px;font-weight:700;color:var(--primary)}
.case-metric-label{font-size:12px;color:var(--text-muted)}
.case-platforms{font-size:11px;color:var(--text-muted);padding:4px 0}

/* 案例详情 */
.case-metrics-grid{
  display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:40px;
}
.metric-card{
  background:#fff;border:1px solid var(--border);border-radius:var(--radius-lg);
  padding:24px;text-align:center;
}
.metric-card-value{font-size:32px;font-weight:700;color:var(--primary);margin-bottom:6px}
.metric-card-label{font-size:13px;color:var(--text-muted)}

.case-detail-layout{
  display:grid;grid-template-columns:1fr 260px;gap:48px;
}
.case-content{max-width:none;margin:0;padding:0}
.case-sidebar{position:sticky;top:80px;align-self:start}

.case-info-list{display:grid;gap:10px;font-size:13px}
.case-info-list dt{color:var(--text-muted);font-weight:500;margin-bottom:2px}
.case-info-list dd{color:var(--text);margin:0;padding-bottom:10px;border-bottom:1px solid var(--border)}

/* 筛选栏 */
.filter-bar{display:flex;flex-wrap:wrap;gap:8px}
.filter-btn{
  display:inline-flex;align-items:center;padding:6px 16px;
  border:1px solid var(--border);border-radius:20px;
  font-size:13px;color:var(--text-secondary);background:#fff;
  cursor:pointer;text-decoration:none;transition:all .2s ease;
}
.filter-btn:hover{border-color:var(--primary);color:var(--primary)}
.filter-btn.active{background:var(--primary);color:#fff;border-color:var(--primary)}

@media(max-width:768px){
  .case-metrics-grid{grid-template-columns:repeat(2,1fr)}
  .case-detail-layout{grid-template-columns:1fr}
  .case-sidebar{position:static}
}
