/* ============================================================
   plan.css —— 落地方案生成器专有样式
   与 theme.css 配合；core.js 生成的结构在这里统一赋新视觉
   ============================================================ */

/* ---------- 顶部进度流光 ---------- */
.topbar{position:fixed;top:0;left:0;right:0;height:2px;z-index:200;background:rgba(255,255,255,.06)}
.topbar > i{
  display:block;height:100%;width:0;
  background:linear-gradient(90deg,var(--acc),var(--acc2),var(--acc3),var(--acc));
  background-size:300% 100%;animation:flow 4s linear infinite;
  box-shadow:0 0 12px color-mix(in srgb,var(--acc) 80%,transparent);
  transition:width .12s linear;
}

/* ---------- 站点级导航（三个页面互通） ---------- */
.sitenav{
  position:relative;z-index:3;
  display:flex;gap:8px;justify-content:center;flex-wrap:wrap;
  padding:14px var(--sp) 0;
}
.sitenav a{
  padding:7px 16px;border-radius:999px;font-size:13.5px;font-weight:700;
  color:var(--ink2);border:1px solid var(--line);background:var(--surface);
  backdrop-filter:var(--blur);transition:transform .22s var(--ease),color .22s,border-color .22s,background .22s;
}
.sitenav a:hover{transform:translateY(-2px);color:#fff;border-color:color-mix(in srgb,var(--acc) 55%,transparent)}
.sitenav a.on{
  background:var(--grad);color:#05060f;border-color:transparent;
  box-shadow:0 10px 24px -12px color-mix(in srgb,var(--acc) 85%,transparent);
}
@media(max-width:760px){
  /* 小屏：六个链接改为换行（一行 3 个、共两行），避免 6 等分把长标题挤成省略号 */
  .sitenav{padding:12px 6px 0;gap:6px;flex-wrap:wrap}
  .sitenav a{flex:1 1 calc(33.33% - 6px);min-width:0;padding:6px 4px;font-size:11.5px;
    letter-spacing:0;justify-content:center;text-align:center;
    white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
}
@media(max-width:340px){
  /* 超窄屏（如 iPhone SE 320px）：按内容宽度排布，避免长标题被截断 */
  .sitenav{gap:5px}
  .sitenav a{flex:0 1 auto}
}

/* ---------- Hero ---------- */
.hero{
  position:relative;overflow:hidden;z-index:2;
  padding:clamp(46px,8vw,96px) 0 0;
  text-align:center;
}
#heroCanvas{
  position:absolute;inset:0;width:100%;height:100%;z-index:0;pointer-events:none;opacity:.5;
  mask-image:linear-gradient(180deg,#000 20%,transparent 92%);
  -webkit-mask-image:linear-gradient(180deg,#000 20%,transparent 92%);
}
.hero .beam{
  position:absolute;top:-10%;left:-35%;width:22%;height:120%;z-index:1;pointer-events:none;
  transform:skewX(-18deg);
  background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--acc) 30%,transparent),transparent);
  animation:beam 8s ease-in-out 1.2s infinite;
}
@keyframes beam{0%{left:-35%}60%{left:125%}100%{left:125%}}
.hero .orb{position:absolute;border-radius:50%;filter:blur(70px);pointer-events:none;z-index:1}
.hero .orb.o1{width:420px;height:420px;right:-90px;top:-190px;
  background:radial-gradient(circle,color-mix(in srgb,var(--acc) 40%,transparent),transparent 66%);
  animation:floatA 15s ease-in-out infinite}
.hero .orb.o2{width:340px;height:340px;left:-110px;bottom:-190px;
  background:radial-gradient(circle,color-mix(in srgb,var(--acc2) 34%,transparent),transparent 66%);
  animation:floatA 19s ease-in-out infinite reverse}
@keyframes floatA{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(-28px,32px) scale(1.12)}}

.hero-in{
  position:relative;z-index:3;
  display:flex;align-items:center;gap:14px;flex-wrap:wrap;
  justify-content:center;text-align:left;
  margin-bottom:18px;
}
.logo{
  flex:0 0 auto;width:46px;height:46px;border-radius:14px;
  display:grid;place-items:center;font-weight:900;font-size:15px;letter-spacing:.5px;
  color:#05060f;background:var(--grad);
  box-shadow:0 14px 34px -10px color-mix(in srgb,var(--acc) 70%,transparent);
  animation:logoPop .8s cubic-bezier(.34,1.4,.5,1) both;
}
@keyframes logoPop{0%{opacity:0;transform:scale(.5) rotate(-14deg)}70%{transform:scale(1.1) rotate(4deg)}100%{opacity:1;transform:none}}
.hero-mid{flex:1 1 340px;min-width:0}
/* AI 图标与标题同一行、垂直居中对齐（图标必须在 h1 外，JS 逐字动画会重写 h1 内容） */
.title-row{display:flex;align-items:center;justify-content:flex-start;gap:14px;text-align:left}
.title-row .logo{flex:0 0 auto}
.hero h1{font-size:clamp(27px,5.6vw,46px);font-weight:900;margin:0;letter-spacing:-.02em}
/* 一级导航正下方的一句话轮播，整行居中 */
.rotline{width:100%;text-align:center;font-size:clamp(13px,2vw,15.5px);color:var(--ink2);opacity:.92;
  margin-bottom:14px;letter-spacing:.2em;transition:opacity .38s ease;}
.rotline.out{opacity:0}
/* 霓虹逐字（对齐 showcase 的 NEON MOTION 标题） */
.hero h1 .char{display:inline-block;will-change:transform;
  animation:charIn .8s cubic-bezier(.34,1.4,.5,1) both}
@keyframes charIn{0%{opacity:0;transform:translateY(.5em) scale(.86)}
  70%{transform:translateY(-.06em) scale(1.03)}100%{opacity:1;transform:none}}
.hero h1 .spc{display:inline-block;width:.32em}
.hero .tag{font-size:clamp(13px,2vw,15.5px);color:var(--ink2);opacity:.92}
.byline{font-size:13px;color:var(--ink2);margin-top:6px}
.byline b{color:#fff}
.byline .dot{opacity:.45;margin:0 6px}
.hero-actions{display:flex;gap:9px;flex-wrap:wrap;justify-content:center}
.ghost-btn,.solid-btn{
  appearance:none;border:1px solid var(--line);cursor:pointer;
  font-family:inherit;font-size:14px;font-weight:700;border-radius:999px;
  padding:10px 20px;transition:transform .25s var(--ease),border-color .25s,box-shadow .25s,background .25s;
  position:relative;overflow:hidden;
}
.ghost-btn{
  background:rgba(255,255,255,.06);color:var(--ink);backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.18);
}
.solid-btn{
  color:#0b0413;border:none;
  background:linear-gradient(100deg,var(--acc),var(--acc2) 55%,var(--acc3));
  box-shadow:0 12px 44px rgba(124,77,255,.5);
}
.ghost-btn:hover{transform:translateY(-2px);border-color:rgba(255,255,255,.36);
  background:rgba(255,255,255,.11)}
.solid-btn:hover{transform:translateY(-3px);filter:brightness(1.06);
  box-shadow:0 18px 54px rgba(124,77,255,.62)}
.ghost-btn::after,.solid-btn::after{
  content:"";position:absolute;top:0;bottom:0;width:38%;left:-62%;transform:skewX(-18deg);
  background:linear-gradient(100deg,transparent,rgba(255,255,255,.45),transparent);
}
.solid-btn:hover::after,.ghost-btn:hover::after{animation:sweep .7s var(--ease)}
@media (hover:hover){
  .ghost-btn:hover,.solid-btn:hover{box-shadow:0 18px 40px -14px color-mix(in srgb,var(--acc) 70%,transparent)}
}

/* ---------- 使用说明 ---------- */
.help-in{
  margin:0 auto 16px;padding:11px 16px;border-radius:16px;
  background:var(--surface);border:1px solid var(--line);backdrop-filter:var(--blur);
  font-size:13.5px;line-height:1.85;color:var(--ink2);text-align:left;
}
.help-toggle{
  width:100%;text-align:left;background:none;border:0;color:var(--ink);cursor:pointer;
  font-family:inherit;font-size:13.5px;font-weight:700;display:flex;align-items:center;gap:7px;
}
.help-toggle i{font-style:normal;transition:transform .25s;display:inline-block;color:var(--acc)}
.help-toggle.open i{transform:rotate(90deg)}
.help-body{margin-top:8px}

/* ---------- KPI ---------- */
.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:14px}
/* 2026-10-06 改：四个模块做成「渐变色块 + 文字全部居中」，
   同色系冷调四色（青 / 靛蓝 / 紫 / 靛紫），保留玻璃质感与顶部流光边。 */
.kpi{
  position:relative;overflow:hidden;
  padding:15px 12px 14px;border-radius:16px;
  text-align:center;
  border:1px solid rgba(255,255,255,.11);backdrop-filter:var(--blur);
  transition:transform .3s var(--ease),box-shadow .3s,border-color .3s;
}
/* 顶部一道细流光边（取代原来的左侧竖条），色块整体自下而上变深 */
.kpi::before{
  content:"";position:absolute;left:12px;right:12px;top:0;height:2px;
  border-radius:2px;background:var(--grad);opacity:.85;
}
/* 右上角柔光晕，避免色块发闷 */
.kpi::after{
  content:"";position:absolute;right:-32%;top:-70%;width:78%;height:170%;
  background:radial-gradient(closest-side,rgba(255,255,255,.20),transparent 72%);
  pointer-events:none;
}
.kpi:nth-child(1){background:linear-gradient(158deg,rgba(34,211,238,.34),rgba(10,78,110,.58) 58%,rgba(6,20,34,.82) 100%)}
.kpi:nth-child(2){background:linear-gradient(158deg,rgba(99,102,241,.34),rgba(48,50,128,.58) 58%,rgba(8,11,32,.82) 100%)}
.kpi:nth-child(3){background:linear-gradient(158deg,rgba(168,85,247,.32),rgba(84,38,132,.56) 58%,rgba(15,9,28,.82) 100%)}
.kpi:nth-child(4){background:linear-gradient(158deg,rgba(124,77,255,.30),rgba(62,36,124,.54) 58%,rgba(10,10,28,.82) 100%)}
.kpi:hover{transform:translateY(-3px);
  border-color:color-mix(in srgb,var(--acc) 55%,transparent);
  box-shadow:0 16px 34px -18px color-mix(in srgb,var(--acc) 80%,transparent)}
.kpi .k{
  position:relative;z-index:2;
  font-size:11.5px;color:rgba(226,240,255,.66);letter-spacing:.06em;
}
.kpi .v{
  position:relative;z-index:2;margin-top:5px;
  font-size:clamp(17px,2.6vw,22px);font-weight:900;letter-spacing:.2px;color:#fff;
  /* 垂直居中而不是基线对齐，小字才不会挂在大字右下角 */
  display:flex;align-items:center;justify-content:center;gap:4px;
}
.kpi .v small{font-size:11px;font-weight:600;color:rgba(226,240,255,.68);line-height:1.5;text-align:center}
@keyframes kflash{0%{transform:scale(1)}32%{transform:scale(1.09)}100%{transform:scale(1)}}
.kpi .v.flash{animation:kflash .5s var(--ease)}

/* ---------- 步骤条 ---------- */
.stepper{display:flex;gap:8px;margin-bottom:0}
.step{
  flex:1;cursor:pointer;padding:9px 8px;border-radius:14px;
  background:var(--surface);border:1px solid var(--line);color:var(--ink3);
  font-size:13px;font-weight:700;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  transition:transform .25s var(--ease),background .25s,color .25s,border-color .25s;
}
.step:hover{transform:translateY(-2px);color:var(--ink2)}
.step.on{
  background:var(--grad);color:#05060f;border-color:transparent;
  box-shadow:0 12px 28px -12px color-mix(in srgb,var(--acc) 85%,transparent);
}
.step.done{color:var(--ink2);border-color:color-mix(in srgb,var(--acc) 34%,transparent);
  background:color-mix(in srgb,var(--acc) 12%,transparent)}
.progress{height:3px;border-radius:999px;background:rgba(255,255,255,.1);overflow:hidden}
.progress > i{
  display:block;height:100%;width:25%;border-radius:999px;background:var(--grad);
  background-size:200% 100%;animation:flow 3.5s linear infinite;
  transition:width .5s var(--ease);
  box-shadow:0 0 14px color-mix(in srgb,var(--acc) 70%,transparent);
}

/* ---------- 表单栅格 ---------- */
.grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}

/* 技能多选 */
.chk{display:flex;flex-wrap:wrap;gap:8px}
.chk label{
  display:inline-flex;align-items:center;gap:7px;cursor:pointer;user-select:none;
  padding:8px 15px;border-radius:999px;font-size:13.5px;font-weight:600;
  background:var(--surface);border:1px solid var(--line);color:var(--ink2);
  transition:transform .22s var(--ease),background .22s,border-color .22s,color .22s,box-shadow .22s;
}
.chk label:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--acc) 50%,transparent)}
.chk label.on{
  background:color-mix(in srgb,var(--acc) 16%,transparent);
  border-color:color-mix(in srgb,var(--acc) 62%,transparent);
  color:#fff;box-shadow:0 8px 22px -10px color-mix(in srgb,var(--acc) 70%,transparent);
}

/* 渠道多选 */
.plat{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:9px}
.plat-it{
  display:flex;align-items:center;gap:8px;cursor:pointer;user-select:none;
  padding:10px 12px;border-radius:14px;font-size:13.5px;font-weight:600;
  background:var(--surface);border:1px solid var(--line);color:var(--ink2);
  transition:transform .22s var(--ease),background .22s,border-color .22s,color .22s;
}
.plat-it:hover{transform:translateY(-2px)}
.plat-it.on{
  background:color-mix(in srgb,var(--acc) 15%,transparent);
  border-color:color-mix(in srgb,var(--acc) 60%,transparent);color:#fff;
}
.plat-it > span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.plat-n{
  margin-left:auto;width:56px;flex:0 0 56px;padding:4px 6px!important;font-size:12.5px!important;
  text-align:center;border-radius:9px;
}

/* ---------- 项目行 ---------- */
.proj{
  position:relative;border-radius:18px;padding:13px 15px;margin-bottom:11px;
  background:linear-gradient(150deg,rgba(255,255,255,.07),rgba(255,255,255,.02));
  border:1px solid var(--line);backdrop-filter:var(--blur);
  animation:projIn .4s var(--ease) both;transition:transform .3s var(--ease),border-color .3s;
}
@keyframes projIn{from{opacity:0;transform:scale(.98) translateY(-5px)}to{opacity:1;transform:none}}
.proj:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--acc) 40%,transparent)}
.proj-h{display:flex;align-items:center;gap:8px;margin-bottom:9px;flex-wrap:wrap}
.proj-h input.pname{flex:1 1 180px;font-size:14.5px;font-weight:700;padding:8px 12px}
.proj-h .lv{font-size:11.5px;padding:3px 10px;border-radius:999px;
  background:var(--surface2);color:var(--ink3);border:1px solid var(--line);white-space:nowrap}
.proj-h .lv.hi{background:var(--grad);color:#05060f;border-color:transparent}
.proj-h .lv.mid{background:color-mix(in srgb,var(--acc2) 22%,transparent);color:#ddd6fe;border-color:color-mix(in srgb,var(--acc2) 45%,transparent)}
.del{background:none;border:0;color:var(--bad);font-size:12.5px;cursor:pointer;padding:3px 6px;font-family:inherit;font-weight:600}
.del:hover{text-decoration:underline}
.proj-g{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.proj-g .f{margin-bottom:0}
.proj-g .f label{font-size:11.5px;color:var(--ink3);font-weight:600;margin-bottom:4px;display:block}
.proj-tip{font-size:12.5px;color:var(--ink3);margin-top:8px;line-height:1.7}
.addbtn{
  width:100%;cursor:pointer;font-family:inherit;font-size:14.5px;font-weight:800;
  padding:12px;border-radius:16px;margin-top:4px;
  border:1.5px dashed color-mix(in srgb,var(--acc) 55%,transparent);
  background:color-mix(in srgb,var(--acc) 9%,transparent);color:var(--acc);
  transition:transform .22s var(--ease),background .22s,border-color .22s;
}
.addbtn:hover{transform:translateY(-2px);background:color-mix(in srgb,var(--acc) 15%,transparent);border-color:var(--acc)}

/* ---------- 结论条 ---------- */
.verdict{
  position:relative;overflow:hidden;border-radius:var(--r-l);padding:18px 20px;margin-bottom:18px;
  border:1px solid var(--line);backdrop-filter:var(--blur);
}
.verdict::before{
  content:"";position:absolute;left:0;top:0;bottom:0;width:4px;
  background:var(--grad);
}
.verdict .vt{font-size:clamp(17px,2.6vw,21px);font-weight:900;margin-bottom:7px;line-height:1.5}
.verdict.ok{background:linear-gradient(120deg,color-mix(in srgb,var(--ok) 16%,transparent),transparent 70%);border-color:color-mix(in srgb,var(--ok) 40%,transparent)}
.verdict.ok .vt{color:#6ee7b7}
.verdict.warn{background:linear-gradient(120deg,color-mix(in srgb,var(--warn) 16%,transparent),transparent 70%);border-color:color-mix(in srgb,var(--warn) 40%,transparent)}
.verdict.warn .vt{color:#fcd34d}
.verdict.bad{background:linear-gradient(120deg,color-mix(in srgb,var(--bad) 16%,transparent),transparent 70%);border-color:color-mix(in srgb,var(--bad) 40%,transparent)}
.verdict.bad .vt{color:#fda4af}
.verdict ul{color:var(--ink2);font-size:14px;margin:8px 0 0;padding-left:1.15em}
.verdict b{color:#fff}

/* ---------- KV 数字块 ---------- */
.kv{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin:10px 0}
.kv > div{
  padding:12px 14px;border-radius:15px;border:1px solid var(--line);
  background:var(--surface);
}
.kv .k{font-size:11.5px;color:var(--ink3)}
.kv .v{font-size:20px;font-weight:900;color:#fff;letter-spacing:.3px;font-variant-numeric:tabular-nums}
.kv .v small{font-size:11px;font-weight:600;color:var(--ink3)}

/* ---------- 话术 ---------- */
.script{
  background:var(--surface);border-left:3px solid var(--acc);padding:11px 15px;margin:8px 0;
  font-size:13.5px;white-space:pre-wrap;line-height:1.85;border-radius:0 14px 14px 0;color:var(--ink2);
}
.script .who{color:var(--ink3);font-size:12px;display:block;margin-bottom:4px}
.copybtn{
  border:1px solid color-mix(in srgb,var(--acc) 45%,transparent);cursor:pointer;
  background:color-mix(in srgb,var(--acc) 14%,transparent);color:var(--acc);
  padding:5px 13px;border-radius:999px;font-size:12.5px;font-weight:700;font-family:inherit;
  transition:transform .22s var(--ease),background .22s;
}
.copybtn:hover{transform:translateY(-2px);background:color-mix(in srgb,var(--acc) 24%,transparent)}
.cpbtns{display:flex;gap:7px;float:right;margin-left:10px;flex-wrap:wrap}
.cpbtns .copybtn{float:none}
.cpbtns .copybtn.alt{background:var(--surface2);color:var(--ink2);border-color:var(--line)}
.cpbtns .copybtn.alt:hover{background:var(--surface);color:var(--ink)}

/* ---------- 开工清单 ---------- */
.todo{list-style:none;padding:0;margin:9px 0}
.todo li{
  display:flex;gap:11px;align-items:flex-start;padding:12px 14px;margin-bottom:9px;
  border-radius:16px;border:1px solid var(--line);background:var(--surface);
  transition:background .25s,border-color .25s;
}
.todo li:hover{border-color:color-mix(in srgb,var(--acc) 38%,transparent)}
.todo li.done{background:color-mix(in srgb,var(--ok) 10%,transparent);border-color:color-mix(in srgb,var(--ok) 32%,transparent)}
.todo li.done .tt{text-decoration:line-through;color:var(--ink3)}
.todo input{width:19px;height:19px;flex:0 0 19px;margin-top:2px}
.todo .tt{font-size:14px;font-weight:800;margin-bottom:3px;color:#fff}
.todo .td{font-size:13px;color:var(--ink2);line-height:1.72}
.todo .tm{font-size:11.5px;color:var(--acc);font-weight:800;background:color-mix(in srgb,var(--acc) 14%,transparent);
  border-radius:8px;padding:2px 8px;margin-left:7px;white-space:nowrap}

/* ---------- 署名 / 二维码 ---------- */
.qrbox{display:flex;gap:13px;align-items:flex-start;flex-wrap:wrap}
.qrbox .slot{
  width:104px;height:104px;flex:0 0 104px;border:1px dashed var(--line);border-radius:14px;
  background:var(--surface2);display:flex;align-items:center;justify-content:center;overflow:hidden;
}
.qrbox .slot img{width:100%;height:100%;object-fit:contain;background:#fff;border-radius:12px}
.qrbox .slot .ph{font-size:11.5px;color:var(--ink3);text-align:center;line-height:1.45;padding:6px}
.qrbox .meta{flex:1;min-width:220px}
.qrbox .meta .row{margin-bottom:7px}
.qrbox .meta input[type=file]{width:auto;background:transparent;border:0;padding:2px 0;font-size:12.5px;color:var(--ink3)}
.lockline{margin-top:12px;cursor:pointer}
.brand-card{
  background:linear-gradient(135deg,color-mix(in srgb,var(--acc) 9%,transparent),color-mix(in srgb,var(--acc2) 8%,transparent));
  border-color:color-mix(in srgb,var(--acc) 32%,transparent);
}
.brand-in{display:flex;gap:22px;align-items:center;flex-wrap:wrap}
.brand-in .info{flex:1;min-width:220px}
.brand-in .bn{font-size:21px;font-weight:900;letter-spacing:.3px;color:#fff}
.brand-in .bs{font-size:13.5px;color:var(--ink2);margin:5px 0 9px}
.brand-in .bc{font-size:14px;font-weight:800;color:var(--acc)}
.brand-in .btip{font-size:13px;color:var(--ink3);margin-top:9px;line-height:1.75}
.brand-in .qrs{display:flex;gap:16px}
.brand-in .qr{width:118px;text-align:center}
.brand-in .qr .box2{
  width:118px;height:118px;background:#fff;border-radius:14px;
  display:flex;align-items:center;justify-content:center;overflow:hidden;
  box-shadow:0 14px 34px -14px rgba(0,0,0,.8);
}
.brand-in .qr img{width:100%;height:100%;object-fit:contain}
.brand-in .qr .cap{font-size:12px;color:var(--ink3);margin-top:6px;line-height:1.4}

/* ---------- 其它 ---------- */
h2 .toggle{
  float:right;font-size:12.5px;font-weight:700;color:var(--acc);cursor:pointer;user-select:none;
  border:1px solid color-mix(in srgb,var(--acc) 40%,transparent);background:color-mix(in srgb,var(--acc) 11%,transparent);
  border-radius:999px;padding:3px 13px;transition:background .22s;
}
h2 .toggle:hover{background:color-mix(in srgb,var(--acc) 22%,transparent)}
.rise{animation:rise .55s var(--ease) both}
@keyframes rise{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
.card h2 em{font-style:normal;font-size:12.5px;font-weight:400;color:var(--ink3)}
#output .card:last-child{margin-bottom:6px}

/* ---------- 水波纹 ---------- */
.ripple{position:absolute;border-radius:50%;background:rgba(255,255,255,.4);
  transform:scale(0);animation:rip .6s ease-out forwards;pointer-events:none}
.ripple.dark{background:rgba(255,255,255,.25)}
@keyframes rip{to{transform:scale(2.6);opacity:0}}

/* ---------- 底部操作条 ---------- */
/* 注意：theme.css 的通用 .navbar 带 top:0，这里必须显式 top:auto，
   否则 top:0 + bottom:0 会把底栏撑满视口、盖住整页 */
.navbar{
  position:fixed;left:0;right:0;bottom:0;top:auto;z-index:70;
  display:flex;align-items:center;gap:10px;padding:11px var(--sp);
  padding-bottom:calc(11px + env(safe-area-inset-bottom,0px));
  background:color-mix(in srgb,var(--bg2) 80%,transparent);
  backdrop-filter:var(--blur);-webkit-backdrop-filter:var(--blur);
  border-top:1px solid var(--line);
  box-shadow:0 -14px 40px -18px rgba(0,0,0,.9);
}
.navbar .sp{flex:1;text-align:center;font-size:12.5px;color:var(--ink3);padding:0 4px}
.navbtn{
  appearance:none;border:1px solid var(--line);background:var(--surface);color:var(--ink);
  padding:10px 20px;border-radius:999px;font-size:14px;font-weight:800;cursor:pointer;
  font-family:inherit;transition:transform .22s var(--ease),box-shadow .22s;
}
.navbtn.pri{
  background:var(--grad);color:#05060f;border-color:transparent;
  box-shadow:0 12px 28px -12px color-mix(in srgb,var(--acc) 85%,transparent);
}
.navbtn:hover{transform:translateY(-2px)}
.navbtn:disabled{opacity:.35;cursor:not-allowed;transform:none}
body{padding-bottom:96px}

/* ---------- 手机 ---------- */
@media (max-width:860px){
  .grid,.grid3{grid-template-columns:1fr}
  .kpis{grid-template-columns:1fr 1fr}
  .proj-g{grid-template-columns:1fr}
}
@media (max-width:760px){
  .step{font-size:12px;padding:9px 4px}
  .stepper{gap:5px}
  .hero-in{gap:11px}
  .hero-actions{width:100%;justify-content:center}
  .ghost-btn,.solid-btn{flex:1 1 auto;font-size:14px}
  .plat{grid-template-columns:1fr 1fr}
  .kv{grid-template-columns:1fr 1fr}
  .todo li{flex-wrap:wrap}
  .brand-in{gap:14px;justify-content:center}
  .brand-in .info{text-align:center}
  .brand-in .qrs{gap:10px}
  .brand-in{flex-direction:column}
  .navbar .sp{display:none}
  .navbtn{flex:1;text-align:center}
}
@media (max-width:420px){
  .plat{grid-template-columns:1fr}
  .plate-n{width:48px;flex:0 0 48px}
  .kpi .v{font-size:15px}
}

/* ---------- 打印 / PDF ---------- */
@media print{
  .hero,.navbar,footer,.noprint,.help-in,.topbar,.bg-layer,.bg-grid,.bg-grain,#heroCanvas,
  .beam,.orb,.cpbtns,.hero-actions,.stepper,.progress,.kpis,.help-toggle{display:none!important}
  body{padding-bottom:0}
  .panel{display:none!important}
  body.hasplan .panel[data-step="4"]{display:block!important}
  body:not(.hasplan) .panel.active{display:block!important}
  .card,.verdict,.box,.script,.todo li,.kv > div,.proj{
    background:#fff!important;box-shadow:none!important;border:1px solid #ccc!important;
    transform:none!important;animation:none!important;filter:none!important;
    break-inside:avoid;page-break-inside:avoid;
  }
  .verdict{page-break-inside:avoid}
  .kv > div,.todo li,.proj{border-color:#ddd!important}
  .grad,.grad-static{-webkit-text-fill-color:#111!important;color:#111!important;background:none!important;animation:none!important}
  .kpi .v,.kv .v,.brand-in .bn,.todo .tt,.brand-in .bc{color:#111!important}
  .logo{background:#eee!important;color:#111!important}
  .step.on,.step.done,.chip.lit{background:#eee!important;color:#111!important;border-color:#bbb!important}
  .addbtn{border:1px dashed #999!important;background:none!important;color:#333!important}
  .copybtn{display:none!important}
  .brand-in .qr .box2{border:1px solid #ccc!important}
}

/* ============================================================
   2026-10-05 修正 · 标题柔和化
   原来 .grad 直接吃 --grad（青 #00e5ff → 紫 #7c4dff → 品红 #ff2d94），
   三色都是高饱和霓虹，PC 46px 大字号下白底泛光、非常刺眼。
   这里只给标题一条低饱和冷调渐变：保留金属/珠光质感，把纯度和亮度压下来。
   ============================================================ */
.hero h1.grad{
  background:linear-gradient(100deg,#DCE9FF 0%,#A9C6FF 32%,#B9A8FF 64%,#D6C4FF 100%);
  background-size:200% 100%;
  -webkit-background-clip:text;background-clip:text;
  color:transparent;-webkit-text-fill-color:transparent;
  filter:drop-shadow(0 3px 16px rgba(130,160,255,.20));
  animation:flow 14s var(--ease) infinite;
}

/* ============================================================
   2026-10-06 从云端「变现落地方案生成器」原样搬来的顶部广告条
   （使用说明下方 / KPI 上方）。用户要求不动美工，故颜色与动画完全照搬。
   链接：course.html（搞钱实战课程）
   ============================================================ */
.adbar{position:relative;z-index:3;display:flex;align-items:center;gap:12px;max-width:1080px; margin:15px auto;padding:12px 16px;border-radius:14px;text-decoration:none;color:#fff;overflow:hidden; background:linear-gradient(100deg,#ff8a00 0%,#ff3d81 52%,#8b5cf6 100%);background-size:220% 100%; animation:adFlow 7s ease-in-out infinite;box-shadow:0 10px 26px rgba(255,61,129,.32); transition:.25s;}
.adbar:hover{transform:translateY(-2px);box-shadow:0 16px 34px rgba(255,61,129,.45);}
.adbar:before{content:"";position:absolute;top:-60%;left:-30%;width:26%;height:220%;transform:skewX(-18deg); background:linear-gradient(90deg,transparent,rgba(255,255,255,.45),transparent); animation:adBeam 5s ease-in-out infinite;pointer-events:none;}
.ad-ico{position:relative;z-index:2;flex:none;width:38px;height:38px;border-radius:11px;font-size:19px; display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.24); border:1px solid rgba(255,255,255,.45);box-shadow:inset 0 1px 0 rgba(255,255,255,.4); animation:adFloat 2.8s ease-in-out infinite;}
.ad-txt{position:relative;z-index:2;min-width:0;}
.ad-txt b{display:block;font-size:14.5px;font-weight:800;letter-spacing:.3px;}
.ad-txt i{display:block;font-style:normal;font-size:11.5px;opacity:.94;line-height:1.5;}
.ad-go{position:relative;z-index:2;flex:none;margin-left:auto;background:#fff;color:#ff3d81; font-size:12.5px;font-weight:800;padding:7px 15px;border-radius:9px;box-shadow:0 4px 12px rgba(0,0,0,.18); animation:adPulse 2.4s ease-in-out infinite;}
.adbar{padding:11px 12px;gap:9px}
.ad-txt i{font-size:11px}
.ad-go{padding:6px 12px;font-size:12px}
@keyframes adFlow{0%,100%{transform:translateY(0) rotate(-3deg)}50%{transform:translateY(-4px) rotate(3deg)}}
@keyframes adBeam{0%{left:-30%}55%,100%{left:135%}}
@keyframes adFloat{0%,100%{transform:translateY(0) rotate(-3deg)}50%{transform:translateY(-4px) rotate(3deg)}}
@keyframes adPulse{0%,100%{transform:scale(1)}50%{transform:scale(1.05)}}

/* ===== 同系列推荐卡（复刻 lifeguide.html 最下方的「人格 × 解决方案」） ===== */
.promo{
  display:block;position:relative;overflow:hidden;
  border-radius:22px;padding:26px 26px 24px;margin:18px 0 22px;color:#fff;text-decoration:none;
  border:1px solid rgba(190,160,255,.2);
  background:linear-gradient(120deg,rgba(168,85,247,.16),rgba(62,214,210,.1) 46%,rgba(255,122,184,.16));
  box-shadow:0 18px 44px rgba(0,0,0,.45);
  transition:transform .24s var(--ease,ease);
}
.promo:hover{color:#fff;text-decoration:none}
.promo:active{transform:translateY(1px)}
.promo:before{content:"";position:absolute;width:260px;height:260px;border-radius:50%;pointer-events:none;
  background:radial-gradient(circle,rgba(168,85,247,.35),transparent 70%);top:-130px;right:-90px}
.promo .p-tag{position:relative;z-index:2;display:inline-flex;align-items:center;gap:6px;
  padding:5px 15px;border-radius:999px;font-size:11.5px;opacity:.95;
  background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.18)}
.promo h3{position:relative;z-index:2;margin:14px 0 8px;text-align:center;
  font-size:clamp(17px,2.4vw,21px);line-height:1.5;font-weight:900;letter-spacing:.2px}
.promo .p-sub{position:relative;z-index:2;max-width:720px;margin:0 auto;text-align:center;
  font-size:13.5px;opacity:.9;line-height:1.8}
.promo .p-list{position:relative;z-index:2;margin:16px 0 0;display:grid;gap:10px 16px;
  grid-template-columns:repeat(auto-fit,minmax(340px,1fr));justify-items:center}
.promo .p-list div{display:flex;align-items:flex-start;justify-content:center;gap:8px;
  font-size:13px;line-height:1.6;text-align:left}
.promo .p-list .ck{width:18px;height:18px;flex:none;margin-top:1px;border-radius:6px;
  display:grid;place-items:center;font-size:11px;background:rgba(255,255,255,.2)}
.promo .p-cta{position:relative;z-index:2;display:inline-flex;align-items:center;gap:8px;
  margin-top:20px;padding:12px 26px;border-radius:999px;font-size:14px;font-weight:900;
  background:linear-gradient(120deg,#A855F7 0%,#6366F1 48%,#3ED6D2 100%);
  color:#08131C;box-shadow:0 12px 30px -12px rgba(168,85,247,.85),
             0 0 0 1px rgba(255,255,255,.14) inset;
  transition:transform .24s ease,filter .24s ease}
.promo .p-cta:hover{transform:translateY(-2px);filter:brightness(1.06)}
.promo .p-foot{position:relative;z-index:2;margin-top:12px;text-align:center;
  font-size:11.5px;opacity:.6}
/* 渐变标题 + 金色关键词（渐变文字必须配 -webkit-text-fill-color:transparent，且子元素要另起一层独立渐变） */
@supports ((-webkit-background-clip:text) or (background-clip:text)){
  .promo h3{
    background:linear-gradient(100deg,#FFFFFF 4%,#E9D5FF 28%,#7DD3FC 56%,#F9A8D4 94%);
    -webkit-background-clip:text !important;background-clip:text !important;
    -webkit-text-fill-color:transparent !important;
    filter:drop-shadow(0 2px 18px rgba(168,85,247,.5));
  }
  .promo h3 .kw{
    background:linear-gradient(96deg,#FFF3C4 0%,#FFD479 38%,#FFB347 72%,#FFE9A8 100%);
    -webkit-background-clip:text !important;background-clip:text !important;
    -webkit-text-fill-color:transparent !important;
    filter:drop-shadow(0 0 12px rgba(255,183,71,.55)) drop-shadow(0 0 3px rgba(255,236,190,.9));
  }
}

/* ===== 居中补丁（与 lifeguide.html 的 lg.css 保持一致） ===== */
.promo{text-align:center}
.promo .p-tag,.promo .p-cta{display:inline-flex}
.promo .p-list{justify-items:center}
.promo .p-list div{justify-content:center}
.promo .p-foot{text-align:center}
