/* =========================================================
   hi开放平台 — 商家官网（三套模板）
   同一份配置，三种完全不同的版式
   ========================================================= */

*,*::before,*::after{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:74px;}
body{
  margin:0;background:#fff;color:#1d1d1f;
  font-family:-apple-system,BlinkMacSystemFont,"SF Pro SC","SF Pro Display","PingFang SC","Helvetica Neue","Microsoft YaHei",sans-serif;
  font-size:16px;line-height:1.7;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;
}
h1,h2,h3{margin:0;font-weight:600;letter-spacing:-.024em;line-height:1.2;}
p{margin:0;}
a{text-decoration:none;color:inherit;}
svg{display:block;}

.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;}

/* 通用按钮 */
.sx-p{
  display:inline-flex;align-items:center;justify-content:center;
  border-radius:980px;font-size:15px;font-weight:500;
  padding:11px 22px;white-space:nowrap;cursor:pointer;
  transition:background .26s cubic-bezier(.4,0,.2,1),transform .3s cubic-bezier(.22,1,.36,1);
}
.sx-p:active{transform:scale(.97);}
.sx-p.lg{font-size:16.5px;padding:14px 30px;}

.sx-made{
  text-align:center;font-size:12px;color:#86868b;
  padding:26px 20px 34px;margin:0;
}
.sx-made b{color:#6e6e73;font-weight:600;}

/* 进度条式的小趋势图 */
.spark-svg{width:100%;height:100%;display:block;}

/* =========================================================
   模板一：经典 —— 深色渐变首屏 + 卡片网格
   ========================================================= */
.tc-nav{
  position:sticky;top:0;z-index:20;
  display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:14px 32px;
  background:rgba(255,255,255,.82);
  -webkit-backdrop-filter:saturate(180%) blur(20px);
  backdrop-filter:saturate(180%) blur(20px);
  border-bottom:1px solid rgba(0,0,0,.07);
}
.tc-brand{display:inline-flex;align-items:center;gap:9px;font-size:16px;font-weight:600;letter-spacing:-.02em;}
.tc-logo{
  width:26px;height:26px;border-radius:8px;
  background:linear-gradient(148deg,#1a8bf5,#0062d0);
  color:#fff;display:grid;place-items:center;font-size:13px;font-weight:700;
}
.tc-nav .sx-p{background:#0071e3;color:#fff;}
.tc-nav .sx-p:hover{background:#0062c4;}

.tc-notice{
  background:linear-gradient(96deg,#0071e3,#2f9bff);color:#fff;
  text-align:center;font-size:13.5px;padding:10px 20px;
}

.tc-hero{
  position:relative;overflow:hidden;
  background:
    radial-gradient(ellipse 90% 60% at 78% -10%,rgba(74,168,255,.4),transparent 62%),
    linear-gradient(160deg,#04070e 0%,#0a1a30 44%,#0d2e59 76%,#10406f 100%);
  color:#fff;padding:88px 32px 96px;
}
.tc-hero-in{position:relative;z-index:2;max-width:1000px;margin:0 auto;text-align:center;}
.tc-hero h1{font-size:clamp(30px,5.2vw,54px);letter-spacing:-.034em;line-height:1.14;}
.tc-hero p{font-size:clamp(15px,1.6vw,19px);color:#a9bed6;margin-top:20px;max-width:640px;margin-left:auto;margin-right:auto;}
.tc-acts{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin-top:34px;}
.tc-acts .sx-p{background:#fff;color:#04070e;}
.tc-acts .sx-p:hover{background:#eef3fa;}
.tc-acts .sx-p.ghost{
  background:rgba(255,255,255,.11);color:#fff;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.18);
}
.tc-acts .sx-p.ghost:hover{background:rgba(255,255,255,.19);}
.tc-glow{
  position:absolute;width:520px;height:520px;border-radius:50%;top:-220px;right:-120px;
  background:radial-gradient(circle,rgba(58,160,255,.45),transparent 66%);
  filter:blur(30px);
}

.tc-sec{padding:76px 32px 84px;max-width:1180px;margin:0 auto;}
.tc-sec h2{font-size:clamp(24px,3vw,34px);text-align:center;}
.tc-sub{text-align:center;font-size:14px;color:#6e6e73;margin-top:12px;}
.tc-grid{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(288px,1fr));
  gap:18px;margin-top:42px;
}
.tc-card{
  background:#fff;border-radius:20px;padding:24px;
  box-shadow:0 2px 4px rgba(16,24,40,.04),0 12px 28px rgba(16,24,40,.06);
  transition:transform .4s cubic-bezier(.22,1,.36,1),box-shadow .4s cubic-bezier(.22,1,.36,1);
}
.tc-card:hover{transform:translateY(-4px);box-shadow:0 4px 10px rgba(16,24,40,.05),0 20px 44px rgba(16,24,40,.1);}
.tc-card-h{display:flex;align-items:center;justify-content:space-between;gap:10px;}
.tc-mname{font-size:16.5px;font-weight:600;letter-spacing:-.02em;}
.tc-vendor{
  font-size:11.5px;color:#6e6e73;background:rgba(0,0,0,.05);
  border-radius:980px;padding:4px 10px;
}
.tc-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:20px;}
.tc-metric{background:#f6f7f9;border-radius:12px;padding:11px 12px;}
.tc-mk{display:block;font-size:10.5px;color:#86868b;}
.tc-mv{
  display:block;font-size:19px;font-weight:600;letter-spacing:-.03em;margin-top:4px;
  font-variant-numeric:tabular-nums;
}
.tc-mv em{font-style:normal;font-size:.5em;font-weight:500;color:#86868b;margin-left:2px;}
.tc-spark{height:34px;margin-top:16px;position:relative;}
.tc-spark .sx-tag{
  position:absolute;right:0;bottom:-2px;font-size:10px;color:#a1a1a6;
}
.tc-card-f{
  display:flex;align-items:baseline;justify-content:space-between;gap:12px;
  margin-top:16px;padding-top:16px;border-top:1px solid rgba(0,0,0,.07);
}
.tc-price{font-size:16px;font-weight:600;letter-spacing:-.02em;}
.tc-price em{font-style:normal;font-size:12px;font-weight:400;color:#86868b;margin-left:3px;}
.tc-ctx{font-size:12px;color:#86868b;}
.tc-foot{
  border-top:1px solid rgba(0,0,0,.07);padding:26px 32px;
  text-align:center;font-size:13px;color:#6e6e73;
}

/* =========================================================
   模板二：极简 —— 纯白留白 + 列表
   ========================================================= */
.tm-nav{
  display:flex;align-items:center;justify-content:space-between;gap:16px;
  max-width:860px;margin:0 auto;padding:30px 28px 0;
}
.tm-brand{font-size:16px;font-weight:600;letter-spacing:-.02em;}
.tm-nav .sx-p{background:#1d1d1f;color:#fff;}
.tm-nav .sx-p:hover{background:#000;}
.tm-notice{
  max-width:860px;margin:22px auto 0;padding:12px 18px;
  border:1px solid rgba(0,0,0,.09);border-radius:12px;
  font-size:13.5px;color:#424245;
}
.tm-hero{max-width:860px;margin:0 auto;padding:72px 28px 0;}
.tm-hero h1{font-size:clamp(30px,4.6vw,48px);letter-spacing:-.034em;line-height:1.16;max-width:640px;}
.tm-hero p{font-size:clamp(15px,1.5vw,18px);color:#6e6e73;margin-top:20px;max-width:560px;}
.tm-acts{display:flex;gap:22px;align-items:center;flex-wrap:wrap;margin-top:32px;}
.tm-acts .sx-p{background:#1d1d1f;color:#fff;padding:13px 26px;font-size:15.5px;}
.tm-acts .sx-p:hover{background:#000;}
.tm-acts .tm-text{font-size:15px;color:#0071e3;border-bottom:1px solid rgba(0,113,227,.3);padding-bottom:2px;}

.tm-sec{max-width:860px;margin:0 auto;padding:80px 28px 84px;}
.tm-sec h2{font-size:22px;letter-spacing:-.024em;}
.tm-sub{font-size:13px;color:#86868b;margin-top:10px;}
.tm-list{margin-top:34px;border-top:1px solid rgba(0,0,0,.1);}
.tm-row{
  display:grid;
  grid-template-columns:1.5fr .8fr .9fr .9fr .9fr .8fr;
  gap:14px;align-items:center;
  padding:20px 4px;border-bottom:1px solid rgba(0,0,0,.1);
  transition:background .22s cubic-bezier(.4,0,.2,1);
}
.tm-row:hover{background:#fafafa;}
.tm-head{
  font-size:11.5px;color:#a1a1a6;letter-spacing:.04em;
  padding:0 4px 12px;
}
.tm-name{font-size:15.5px;font-weight:600;letter-spacing:-.02em;}
.tm-vendor{font-size:13px;color:#6e6e73;}
.tm-num{font-size:14px;font-variant-numeric:tabular-nums;color:#424245;}
.tm-num b{font-weight:600;color:#1d1d1f;}
.tm-price{font-size:14px;font-weight:600;text-align:right;font-variant-numeric:tabular-nums;}
.tm-price em{font-style:normal;font-size:11.5px;font-weight:400;color:#a1a1a6;display:block;}
.tm-foot{
  max-width:860px;margin:0 auto;padding:26px 28px 34px;
  border-top:1px solid rgba(0,0,0,.1);
  font-size:13px;color:#86868b;
}

/* =========================================================
   模板三：活泼 —— 浅色渐变 + 彩色卡片
   ========================================================= */
.tv-wrap{background:linear-gradient(170deg,#eef7ff 0%,#f4fbff 34%,#ffffff 72%);min-height:60vh;}
.tv-nav{
  display:flex;align-items:center;justify-content:space-between;gap:16px;
  max-width:1120px;margin:0 auto;padding:18px 26px;
}
.tv-brand{
  display:inline-flex;align-items:center;gap:9px;
  font-size:16px;font-weight:700;letter-spacing:-.02em;
}
.tv-logo{
  width:28px;height:28px;border-radius:10px;
  background:linear-gradient(140deg,#4aa8ff,#7ee0c8);
  color:#fff;display:grid;place-items:center;font-size:13px;font-weight:700;
}
.tv-nav .sx-p{background:#1d1d1f;color:#fff;}
.tv-nav .sx-p:hover{background:#000;}
.tv-notice{
  max-width:1120px;margin:6px auto 0;padding:0 26px;
}
.tv-notice span{
  display:inline-block;background:linear-gradient(96deg,#4aa8ff,#7ee0c8);
  color:#fff;font-size:13px;font-weight:500;
  border-radius:980px;padding:8px 18px;
}
.tv-hero{max-width:1120px;margin:0 auto;padding:56px 26px 0;}
.tv-hero h1{font-size:clamp(28px,4.8vw,50px);letter-spacing:-.036em;line-height:1.14;max-width:700px;}
.tv-hero p{font-size:clamp(15px,1.6vw,18px);color:#5b6169;margin-top:18px;max-width:580px;}
.tv-acts{display:flex;gap:12px;flex-wrap:wrap;margin-top:30px;}
.tv-acts .sx-p{background:#1d1d1f;color:#fff;}
.tv-acts .sx-p:hover{background:#000;}
.tv-acts .sx-p.ghost{background:#fff;color:#1d1d1f;box-shadow:inset 0 0 0 1px rgba(0,0,0,.12);}
.tv-acts .sx-p.ghost:hover{background:#f6f8fb;}

.tv-sec{max-width:1120px;margin:0 auto;padding:64px 26px 80px;}
.tv-sec h2{font-size:clamp(22px,2.6vw,30px);letter-spacing:-.028em;}
.tv-sub{font-size:13.5px;color:#6e6e73;margin-top:10px;}
.tv-grid{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));
  gap:14px;margin-top:34px;
}
.tv-card{
  position:relative;overflow:hidden;
  background:#fff;border-radius:22px;padding:22px;
  box-shadow:0 2px 6px rgba(16,24,40,.05),0 14px 30px rgba(16,24,40,.07);
  transition:transform .4s cubic-bezier(.22,1,.36,1),box-shadow .4s cubic-bezier(.22,1,.36,1);
}
.tv-card:hover{transform:translateY(-5px);box-shadow:0 4px 12px rgba(16,24,40,.06),0 22px 48px rgba(16,24,40,.12);}
.tv-card::before{
  content:"";position:absolute;inset:0 0 auto 0;height:4px;
  background:var(--c,#0071e3);
}
.tv-badge{
  display:inline-block;font-size:11px;font-weight:600;letter-spacing:.02em;
  color:var(--c,#0071e3);background:color-mix(in srgb,var(--c,#0071e3) 12%,#fff);
  border-radius:980px;padding:4px 11px;
}
.tv-card h3{font-size:18px;letter-spacing:-.026em;margin-top:13px;}
.tv-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:18px;}
.tv-stats b{
  display:block;font-size:17px;font-weight:600;letter-spacing:-.03em;
  font-variant-numeric:tabular-nums;
}
.tv-stats span{display:block;font-size:10.5px;color:#86868b;margin-top:2px;}
.tv-spark{height:26px;margin-top:14px;}
.tv-price{
  display:block;margin-top:16px;padding-top:14px;
  border-top:1px solid rgba(0,0,0,.07);
  font-size:15px;font-weight:600;letter-spacing:-.02em;
  font-variant-numeric:tabular-nums;
}
.tv-price em{font-style:normal;font-size:11.5px;font-weight:400;color:#86868b;margin-left:4px;}
.tv-foot{
  border-top:1px solid rgba(0,0,0,.08);padding:26px;
  text-align:center;font-size:13px;color:#6e6e73;
  background:#fff;
}

/* 空状态 */
.sx-empty{
  text-align:center;padding:60px 20px 70px;
  color:#86868b;font-size:14px;
}

/* 自定义模板 */
.custom-frame{
  display:block;width:100%;min-height:calc(100vh - 70px);
  border:0;background:#fff;
}

@media(max-width:900px){
  .tm-row{grid-template-columns:1.4fr .9fr .9fr .9fr;gap:10px;}
  .tm-row > :nth-child(2),.tm-head > :nth-child(2){display:none;}
}
@media(max-width:640px){
  .tc-nav,.tc-sec,.tc-foot,.tm-nav,.tm-sec,.tm-foot,.tv-nav,.tv-sec,.tv-foot,.tv-hero,.tm-hero{padding-left:18px;padding-right:18px;}
  .tc-hero{padding:64px 18px 72px;}
  .tm-row{grid-template-columns:1.4fr .9fr .9fr;gap:8px;padding:16px 2px;}
  .tm-row > :nth-child(2),.tm-row > :nth-child(5),.tm-head > :nth-child(2),.tm-head > :nth-child(5){display:none;}
  .tc-metrics{grid-template-columns:1fr 1fr;}
}
