/* =============================================
   志愿参谋AI · H5功能版样式
   视觉真相源：design/design-final.html
   ============================================= */

/* Google Fonts */
@import url('https://fonts.googleapis.com/css2?family=Noto+Serif+SC:wght@400;500;600;700;900&family=Noto+Sans+SC:wght@400;500;700;900&family=Bebas+Neue&family=Oswald:wght@500;600;700&display=swap');

:root{
  /* 中国式信任色：朱砂 / 赭石 / 暖橙 / 米黄板书（A 骨架原色） */
  --ink:#1c140d;
  --ink-soft:#4a3a28;
  --paper:#f4e9d4;
  --paper-deep:#ecdcbe;
  --cream:#fbf4e3;
  --cinnabar:#c0341f;
  --cinnabar-deep:#9c2414;
  --ochre:#b06a23;
  --amber:#e08a1e;
  --gold:#d4a23c;
  --chalk:#fdf6e8;
  --line:#d8c4a0;
  --green-ok:#3f6b3a;
  --studio:#161009;
  --studio2:#241a0e;
  --marker:rgba(224,138,30,.42);
  --gap-track:#e3d2af;
  --shadow:0 18px 40px -16px rgba(40,20,8,.55);
}

*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html{-webkit-text-size-adjust:100%}

/* 全屏手机视口布局 */
body{
  font-family:"Noto Sans SC",system-ui,sans-serif;
  color:var(--ink);
  background:
    radial-gradient(1200px 700px at 18% -5%, #2c2010 0%, transparent 55%),
    radial-gradient(1000px 800px at 100% 110%, #2a1c0c 0%, transparent 50%),
    linear-gradient(160deg,var(--studio) 0%,var(--studio2) 100%);
  min-height:100vh;
  display:flex;
  align-items:center;
  justify-content:center;
  /* 真机 safe-area 底部适配 */
  padding-bottom:env(safe-area-inset-bottom);
}

/* 真机外框（单个，充满屏幕） */
#app{
  width:390px;
  min-height:100vh;
  /* safe-area-inset-top：替代假状态栏 notch */
  padding-top:env(safe-area-inset-top);
  background:var(--paper);
  background-image:
    repeating-linear-gradient(0deg, rgba(180,150,100,.05) 0 1px, transparent 1px 26px),
    radial-gradient(circle at 80% 12%, rgba(224,138,30,.06), transparent 40%);
  position:relative;
  overflow:hidden;
  display:flex;
  flex-direction:column;
}

@media(max-width:420px){
  #app{width:100vw;}
  body{padding:0;}
}

/* 路由：一次只显示一屏 */
.screen{display:none;flex-direction:column;height:100vh;overflow:hidden;position:absolute;inset:0;}
.screen.active{display:flex;}

/* ======================================
   通用组件（全屏各屏共用）
   ====================================== */
.tabular{font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1}

/* 状态栏：已移除假状态栏 DOM，保留占位符防止旧引用报错 */
.statusbar{display:none}
.notch{display:none}

/* 滚动体 */
.body{flex:1;overflow-y:auto;overflow-x:hidden;position:relative;z-index:3}
.body::-webkit-scrollbar{width:0}
.pad{padding:0 22px}

/* ====== 通用排版元件 ====== */
.kicker{
  font-family:"Oswald",sans-serif;letter-spacing:.2em;text-transform:uppercase;
  font-size:11px;font-weight:600;color:var(--cinnabar);display:inline-flex;align-items:center;gap:8px;
}
.kicker::before{content:"";width:18px;height:2px;background:var(--cinnabar);display:inline-block}

.mark{
  background:linear-gradient(transparent 58%, var(--marker) 58% 94%, transparent 94%);
  padding:0 2px;font-weight:900;
}
.mark-red{
  background:linear-gradient(transparent 58%, rgba(192,52,31,.30) 58% 94%, transparent 94%);
  padding:0 2px;color:var(--cinnabar-deep);font-weight:900;
}

/* 印章 */
.seal{
  font-family:"Noto Serif SC",serif;font-weight:900;color:#fff;
  width:62px;height:62px;border-radius:14px;display:grid;place-items:center;text-align:center;
  line-height:1.05;font-size:15px;letter-spacing:1px;transform:rotate(-9deg);
  background:radial-gradient(circle at 35% 30%, #d4402b, var(--cinnabar-deep));
  box-shadow:0 6px 16px -4px rgba(156,36,20,.6), inset 0 0 0 2px rgba(255,255,255,.35), inset 0 0 0 5px rgba(156,36,20,.5);
}

/* CTA 主按钮 */
.cta{
  width:100%;border:none;cursor:pointer;font-family:"Noto Serif SC",serif;font-weight:900;
  font-size:18px;color:#fff;letter-spacing:.04em;padding:18px;border-radius:16px;min-height:56px;
  background:linear-gradient(180deg,#d8442b,var(--cinnabar-deep));
  box-shadow:0 14px 26px -10px rgba(156,36,20,.8), inset 0 1px 0 rgba(255,255,255,.28), inset 0 -3px 0 rgba(0,0,0,.18);
  transition:transform .12s ease, box-shadow .12s ease;position:relative;overflow:hidden;
}
.cta::after{content:"";position:absolute;top:0;left:-60%;width:40%;height:100%;
  background:linear-gradient(100deg,transparent,rgba(255,255,255,.4),transparent);
  transform:skewX(-18deg);animation:sweep 3.6s ease-in-out infinite}
@keyframes sweep{0%,72%{left:-60%}88%,100%{left:130%}}
.cta:active{transform:scale(.97);box-shadow:0 6px 14px -8px rgba(156,36,20,.8), inset 0 2px 6px rgba(0,0,0,.25)}
.cta .sub{display:block;font-family:"Noto Sans SC";font-weight:500;font-size:11.5px;color:#ffe0cf;letter-spacing:.06em;margin-top:3px}

/* ====================================================
   屏1 · 开屏
   ==================================================== */
.s-entry .body{display:flex;flex-direction:column}
.brandbar{display:flex;align-items:center;justify-content:space-between;padding:8px 22px 4px}
.brand{display:flex;align-items:center;gap:9px}
.brand .logomark{
  width:34px;height:34px;border-radius:9px;background:linear-gradient(150deg,var(--cinnabar),var(--ochre));
  display:grid;place-items:center;box-shadow:inset 0 0 0 1.5px rgba(255,255,255,.3)}
.brand .logomark span{font-family:"Noto Serif SC";font-weight:900;color:#fff;font-size:19px}
.brand b{font-family:"Noto Serif SC";font-weight:900;font-size:16px;color:var(--ink);line-height:1}
.brand small{display:block;font-size:9.5px;color:var(--ochre);font-weight:600;letter-spacing:.12em;margin-top:2px}
.ipline{font-size:11px;color:var(--ink-soft);font-weight:600;display:flex;align-items:center;gap:5px}
.ipdot{width:6px;height:6px;border-radius:50%;background:var(--green-ok)}

.hero1{padding:14px 22px 0;flex:1;display:flex;flex-direction:column}
.ip-card{
  display:flex;gap:13px;align-items:center;background:var(--cream);border:1.5px solid var(--line);
  border-radius:18px;padding:13px 15px;box-shadow:var(--shadow);position:relative;overflow:hidden;
}
.ip-card::before{content:"";position:absolute;right:-30px;top:-30px;width:90px;height:90px;border-radius:50%;
  background:radial-gradient(circle,rgba(224,138,30,.18),transparent 70%)}
.avatar{
  width:62px;height:62px;flex:0 0 62px;border-radius:50%;position:relative;overflow:hidden;
  background:radial-gradient(circle at 50% 24%, #f0d3a4, var(--ochre));
  box-shadow:0 0 0 3px var(--paper),0 0 0 4.5px var(--gold);
  display:grid;place-items:end center;
}
.avatar svg{width:100%;height:100%;display:block}
.ip-meta b{font-family:"Noto Serif SC";font-weight:900;font-size:17px;display:flex;align-items:center;gap:6px}
.verified{width:15px;height:15px;flex:0 0 15px}
.ip-meta p{font-size:11.5px;color:var(--ink-soft);font-weight:600;margin-top:3px;line-height:1.4}
.ip-meta .quote{color:var(--cinnabar-deep);font-family:"Noto Serif SC";font-weight:700;font-size:12px}

.headline{margin:20px 0 4px;font-family:"Noto Serif SC",serif;font-weight:900;line-height:1.16;font-size:33px;letter-spacing:-.01em}
.headline .big{font-size:39px;display:block}
.slot{
  display:inline-block;min-width:96px;border-bottom:4px dashed var(--cinnabar);
  color:var(--cinnabar);text-align:center;padding:0 8px;
  font-family:"Bebas Neue";font-size:38px;letter-spacing:2px;line-height:1;
}
.headline .cue{font-size:30px}

.slogan1{margin-top:16px;background:var(--ink);color:var(--chalk);border-radius:14px;padding:15px 16px;position:relative;
  box-shadow:var(--shadow)}
.slogan1::before{content:"";position:absolute;left:18px;top:-7px;width:14px;height:14px;background:var(--ink);transform:rotate(45deg)}
.slogan1 .l1{font-family:"Noto Serif SC";font-weight:900;font-size:16px;line-height:1.5}
.slogan1 .l1 em{font-style:normal;color:var(--amber)}
.slogan1 .l2{font-size:11.5px;color:#c9b89a;margin-top:6px;font-weight:500}

.spacer-grow{flex:1;min-height:14px}

.cta-zone{padding:6px 22px 14px}
.trust{
  margin-top:14px;display:flex;align-items:center;gap:9px;justify-content:center;
  background:var(--paper-deep);border:1px solid var(--line);border-radius:11px;padding:10px 8px;
}
.trust .badge{width:26px;height:26px;flex:0 0 26px;border-radius:7px;background:linear-gradient(150deg,#3f6b3a,#2c4d28);display:grid;place-items:center}
.trust .badge svg{width:15px;height:15px}
.trust .txt{font-size:10.5px;color:var(--ink-soft);font-weight:600;line-height:1.45}
.trust .txt b{color:var(--ink);font-family:"Oswald";font-weight:700;font-variant-numeric:tabular-nums}
.trust-sep{color:var(--line)}
.trust-stats{
  margin-top:10px;display:flex;align-items:stretch;
  border:1.5px solid var(--line);border-radius:12px;overflow:hidden;background:var(--cream);
  box-shadow:0 6px 16px -12px rgba(40,20,8,.5);
}
.trust-stats .cell{flex:1;padding:11px 6px 9px;text-align:center;position:relative}
.trust-stats .cell + .cell::before{content:"";position:absolute;left:0;top:20%;height:60%;width:1px;background:var(--line)}
.trust-stats .cell .num{font-family:"Bebas Neue";font-size:30px;line-height:.9;color:var(--cinnabar-deep);letter-spacing:1.5px;font-variant-numeric:tabular-nums}
.trust-stats .cell .lab{font-size:10px;color:var(--ink-soft);font-weight:600;margin-top:4px;letter-spacing:.04em}

/* ====================================================
   屏2 · 采集向导
   ==================================================== */
.steps{display:flex;align-items:center;gap:0;padding:14px 22px 4px}
.step{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px;position:relative}
.step .ball{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;
  font-family:"Oswald";font-size:12px;font-weight:700;color:var(--ochre);
  background:var(--cream);border:1.5px solid var(--line);z-index:2;transition:.2s}
.step .ball svg{width:12px;height:12px}
.step .nm{font-size:9px;color:#a08c6a;font-weight:600;white-space:nowrap}
.step::after{content:"";position:absolute;top:12px;left:50%;width:100%;height:2px;background:var(--line);z-index:1}
.step:last-child::after{display:none}
.step.done .ball{background:var(--green-ok);border-color:var(--green-ok);color:#fff}
.step.done .nm{color:var(--ink-soft)}
.step.done::after{background:var(--green-ok)}
.step.active .ball{background:var(--cinnabar);border-color:var(--cinnabar);color:#fff;transform:scale(1.16);
  box-shadow:0 0 0 4px rgba(192,52,31,.16)}
.step.active .nm{color:var(--cinnabar);font-weight:800}

/* 向导内容区 */
.q-wrap{padding:16px 22px 0;flex:1;display:flex;flex-direction:column;overflow-y:auto;}
.q-from{display:flex;gap:11px;align-items:flex-start;margin-bottom:14px}
.q-avatar{width:46px;height:46px;flex:0 0 46px;border-radius:50%;overflow:hidden;position:relative;
  background:radial-gradient(circle at 50% 24%, #f0d3a4, var(--ochre));
  box-shadow:0 0 0 2px var(--paper),0 0 0 3px var(--gold)}
.q-avatar svg{width:100%;height:100%;display:block}
.q-bubble{background:var(--cream);border:1.5px solid var(--line);border-radius:4px 16px 16px 16px;padding:12px 14px;
  box-shadow:var(--shadow);position:relative}
.q-bubble .nm{font-size:10px;color:var(--ochre);font-weight:700;letter-spacing:.08em;margin-bottom:4px}
.q-bubble p{font-family:"Noto Serif SC";font-weight:700;font-size:14px;color:var(--ink);line-height:1.5}
.q-bubble p em{font-style:normal;color:var(--cinnabar-deep)}

/* 向导题目区 */
.q-label{font-family:"Noto Serif SC";font-weight:900;font-size:20px;text-align:center;margin:10px 0 10px}

/* 选科多选 */
.opts{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-top:6px}
.opt{
  padding:14px 4px;border-radius:12px;background:var(--cream);border:1.5px solid var(--line);
  font-family:"Noto Serif SC";font-weight:700;font-size:15px;color:var(--ink);
  cursor:pointer;text-align:center;transition:.15s;min-height:48px;
}
.opt:active{transform:scale(.96)}
.opt.on{background:var(--cinnabar);border-color:var(--cinnabar-deep);color:#fff;
  box-shadow:0 8px 16px -8px rgba(156,36,20,.7)}

/* 大数字输入 */
.bigscore{
  width:100%;text-align:center;font-family:"Bebas Neue";font-size:72px;line-height:1;
  color:var(--ink);letter-spacing:3px;font-variant-numeric:tabular-nums;
  background:var(--chalk);border:2px solid var(--ink);border-radius:18px;padding:16px 10px 14px;
  box-shadow:var(--shadow),inset 0 -4px 0 rgba(0,0,0,.04);
  outline:none;-webkit-appearance:none;
}
.bigscore::placeholder{color:#c0b090}

/* 即时反馈位次 */
.rankfb{
  margin-top:14px;background:linear-gradient(120deg,var(--cinnabar),var(--cinnabar-deep));color:#fff;
  border-radius:16px;padding:14px 17px;display:flex;align-items:center;gap:14px;
  box-shadow:0 16px 30px -12px rgba(156,36,20,.7);position:relative;overflow:hidden;
  animation:rankpop .5s cubic-bezier(.2,.9,.25,1.2) .15s both;min-height:0;
}
.rankfb:empty{display:none}
@keyframes rankpop{from{opacity:0;transform:translateY(14px) scale(.96)}to{opacity:1;transform:none}}
.rankfb .ico{width:38px;height:38px;flex:0 0 38px;border-radius:11px;background:rgba(255,255,255,.16);display:grid;place-items:center}
.rankfb .ico svg{width:21px;height:21px}
.rankfb .rt{font-size:11.5px;color:#ffdccd;font-weight:600}
.rankfb .rv{font-family:"Bebas Neue";font-size:33px;line-height:1;letter-spacing:1px;font-variant-numeric:tabular-nums;display:flex;align-items:baseline;gap:5px}
.rankfb .rv b{font-family:"Noto Serif SC";font-size:13px;font-weight:700;color:#ffd9b0}
.rank-note{font-size:10.5px;color:var(--ink-soft);text-align:center;margin-top:12px;font-weight:500;line-height:1.5}
.rank-note b{color:var(--cinnabar-deep)}

/* 文本输入 */
.txtin{
  width:100%;padding:14px 16px;border-radius:14px;
  background:var(--cream);border:1.5px solid var(--line);
  font-family:"Noto Sans SC";font-size:15px;color:var(--ink);
  outline:none;box-shadow:var(--shadow);
}
.txtin::placeholder{color:#a08c6a}

/* 向导底部下一步按钮 */
.wizard-footer{padding:10px 22px 16px;background:var(--paper);}
.wizard-footer .cta{font-size:16px;padding:15px}

/* ====================================================
   屏3 · 免费名单
   ==================================================== */
.result-head{padding:14px 22px 12px;background:linear-gradient(180deg,var(--paper-deep),transparent)}
.result-head .who{font-size:11px;color:var(--ink-soft);font-weight:600;margin-bottom:6px}
.result-head h2{font-family:"Noto Serif SC";font-weight:900;font-size:19px;line-height:1.34}
.result-head h2 .sc{font-family:"Bebas Neue";font-size:28px;color:var(--cinnabar);letter-spacing:1px;vertical-align:-1px}
.result-head h2 .rk{color:var(--ochre);font-family:"Oswald";font-weight:700;font-variant-numeric:tabular-nums}
.result-head h2 .pen{display:inline-flex;align-items:center;gap:3px;background:var(--ink);color:var(--chalk);
  font-size:11px;padding:2px 8px;border-radius:6px;font-family:"Noto Sans SC";font-weight:700;vertical-align:2px}
.result-head .point{color:var(--cinnabar)}

/* 三档 Tab */
.tabs{display:flex;gap:8px;padding:4px 22px 12px;position:sticky;top:0;background:var(--paper);z-index:5;
  box-shadow:0 8px 14px -10px rgba(40,20,8,.4)}
.tab{flex:1;border-radius:12px;padding:10px 4px;text-align:center;background:var(--cream);border:1.5px solid var(--line);
  cursor:pointer;transition:.16s;position:relative;min-height:48px;}
.tab b{display:block;font-family:"Noto Serif SC";font-weight:900;font-size:16px;color:var(--ink)}
.tab small{font-family:"Oswald";font-size:12px;color:#a08c6a;font-weight:600}
.tab.t-chong.on{background:linear-gradient(180deg,#d8442b,var(--cinnabar-deep));border-color:var(--cinnabar-deep)}
.tab.t-wen.on{background:linear-gradient(180deg,#4c7c45,var(--green-ok));border-color:var(--green-ok)}
.tab.t-bao.on{background:linear-gradient(180deg,#c98a2a,var(--ochre));border-color:var(--ochre)}
.tab.on b,.tab.on small{color:#fff}
.tab.on{box-shadow:0 10px 18px -10px rgba(40,20,8,.6);transform:translateY(-1px)}

/* 院校卡 */
.list{padding:2px 22px 14px;display:flex;flex-direction:column;gap:11px}
.uni-card{
  background:var(--cream);border:1.5px solid var(--line);border-radius:15px;padding:13px 14px;
  box-shadow:0 8px 18px -12px rgba(40,20,8,.4);position:relative;overflow:hidden;
  transition:transform .14s ease, box-shadow .14s ease;cursor:pointer;
  animation:cardin .5s cubic-bezier(.2,.9,.3,1) both;
}
@keyframes cardin{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
.uni-card:nth-child(1){animation-delay:.05s}.uni-card:nth-child(2){animation-delay:.12s}
.uni-card:nth-child(3){animation-delay:.19s}.uni-card:nth-child(4){animation-delay:.26s}
.uni-card:active{transform:scale(.985)}
.uni-card .ribbon{position:absolute;left:0;top:0;bottom:0;width:5px}
.r-chong{background:linear-gradient(var(--cinnabar),var(--cinnabar-deep))}
.r-wen{background:linear-gradient(#4c7c45,var(--green-ok))}
.r-bao{background:linear-gradient(#c98a2a,var(--ochre))}
.uni-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-left:6px}
.uni-name{font-family:"Noto Serif SC";font-weight:900;font-size:15px;color:var(--ink);line-height:1.3}
.uni-name span{color:var(--cinnabar-deep)}
.uni-major{font-size:11px;color:var(--ink-soft);font-weight:600;margin-top:2px}
.chip{font-family:"Noto Sans SC";font-weight:800;font-size:10px;padding:4px 9px;border-radius:7px;white-space:nowrap;flex:0 0 auto}
.chip-chong{background:rgba(192,52,31,.12);color:var(--cinnabar-deep)}
.chip-wen{background:rgba(63,107,58,.14);color:var(--green-ok)}
.chip-bao{background:rgba(176,106,35,.15);color:var(--ochre)}
.uni-stats{display:flex;gap:8px;margin:10px 0 0 6px;flex-wrap:wrap}
.stat{background:var(--paper-deep);border-radius:8px;padding:5px 9px;font-size:10px;color:var(--ink-soft);font-weight:600}
.stat b{font-family:"Oswald";font-weight:700;color:var(--ink);font-variant-numeric:tabular-nums;font-size:13px}
.stat.hot b{color:var(--cinnabar)}

/* 位次差距条 gapbar */
.gap{margin:11px 6px 1px 6px}
.gap-cap{display:flex;align-items:center;justify-content:space-between;font-size:9.5px;color:var(--ink-soft);font-weight:600;margin-bottom:5px}
.gap-cap .lo{color:var(--ochre)}
.gap-cap .you{color:var(--cinnabar-deep);font-weight:800}
.gapbar{position:relative;height:9px;border-radius:6px;background:var(--gap-track);overflow:visible;
  box-shadow:inset 0 1px 2px rgba(40,20,8,.12)}
.gapbar i{position:absolute;top:0;bottom:0;left:0;border-radius:6px}
.gapbar .fill-chong{background:linear-gradient(90deg,var(--cinnabar),rgba(192,52,31,.32))}
.gapbar .fill-wen{background:linear-gradient(90deg,var(--green-ok),rgba(63,107,58,.30))}
.gapbar .fill-bao{background:linear-gradient(90deg,var(--ochre),rgba(176,106,35,.30))}
.gapbar .you-mark{position:absolute;top:-4px;bottom:-4px;width:3px;background:var(--amber);border-radius:2px;
  box-shadow:0 0 0 1.5px var(--cream),0 2px 5px rgba(224,138,30,.6);z-index:3}
.gapbar .you-mark::before{content:"";position:absolute;top:-6px;left:50%;transform:translateX(-50%);
  border-left:5px solid transparent;border-right:5px solid transparent;border-top:6px solid var(--amber)}
.gap-tip{margin-top:6px;font-size:9.5px;color:var(--ink-soft);font-weight:600;line-height:1.4}
.gap-tip b{font-family:"Oswald";font-variant-numeric:tabular-nums}
.gap-tip .safe{color:var(--green-ok);font-weight:800}
.gap-tip .push{color:var(--cinnabar-deep);font-weight:800}
.gap-tip .hold{color:var(--ochre);font-weight:800}

/* 付费钩子条 */
.paywall-bar{
  margin:6px 22px 16px;border-radius:16px;padding:14px 15px;position:relative;overflow:hidden;
  background:linear-gradient(110deg,var(--ink),#2a1d0f);box-shadow:var(--shadow);
  display:flex;align-items:center;gap:13px;cursor:pointer;
}
.paywall-bar .lk{width:40px;height:40px;flex:0 0 40px;border-radius:11px;background:linear-gradient(150deg,var(--gold),var(--ochre));display:grid;place-items:center}
.paywall-bar .lk svg{width:20px;height:20px}
.paywall-bar .pt b{font-family:"Noto Serif SC";font-weight:900;font-size:14px;color:var(--chalk);line-height:1.4;display:block}
.paywall-bar .pt b em{font-style:normal;color:var(--amber)}
.paywall-bar .pt small{font-size:10.5px;color:#bba78a;font-weight:500}
.paywall-bar .go{margin-left:auto;flex:0 0 auto;font-family:"Noto Serif SC";font-weight:900;font-size:12px;color:var(--ink);
  background:var(--gold);padding:9px 12px;border-radius:10px;white-space:nowrap;box-shadow:inset 0 -2px 0 rgba(0,0,0,.18);display:flex;align-items:center;gap:4px;border:none;min-height:44px;}

/* Tab内容容器 */
.tier-content{display:none}
.tier-content.active{display:flex;flex-direction:column;gap:11px}
.empty-tier{
  text-align:center;padding:30px 20px;color:var(--ink-soft);
  font-family:"Noto Serif SC";font-size:14px;font-weight:700;
}

/* 加载状态 */
.list-loading{
  padding:40px 22px;text-align:center;
  font-family:"Noto Serif SC";font-size:16px;font-weight:700;color:var(--ochre);
  animation:pulse 1.5s ease-in-out infinite;
}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.4}}

/* ====================================================
   屏4 · 雪峰点评
   ==================================================== */
.report-head{padding:16px 22px 10px;background:linear-gradient(180deg,var(--ink),transparent);position:relative}
.report-head .unlocked{display:inline-flex;align-items:center;gap:6px;font-size:10px;font-weight:700;letter-spacing:.1em;
  color:var(--gold);background:rgba(212,162,60,.14);padding:4px 10px;border-radius:20px;border:1px solid rgba(212,162,60,.35)}
.report-head .unlocked svg{width:11px;height:11px}
.teacher-row{display:flex;align-items:center;gap:13px;margin-top:12px}
.t-avatar{width:56px;height:56px;flex:0 0 56px;border-radius:50%;overflow:hidden;position:relative;
  background:radial-gradient(circle at 50% 24%, #f0d3a4, var(--ochre));
  box-shadow:0 0 0 2px var(--ink),0 0 0 3.5px var(--gold)}
.t-avatar svg{width:100%;height:100%;display:block}
.teacher-row .ti b{font-family:"Noto Serif SC";font-weight:900;font-size:17px;color:var(--chalk);display:flex;align-items:center;gap:6px}
.teacher-row .ti b .verified{width:15px;height:15px}
.teacher-row .ti p{font-size:11px;color:#bba78a;font-weight:600;margin-top:3px}

.report-body{padding:4px 22px 14px}
/* 点评气泡 */
.talk-bubble{
  background:var(--ink);color:var(--chalk);border-radius:5px 18px 18px 18px;padding:15px 16px;margin:14px 0 6px;
  position:relative;box-shadow:var(--shadow);font-family:"Noto Serif SC";font-weight:500;font-size:14px;line-height:1.72;
}
.talk-bubble::before{content:"";position:absolute;left:14px;top:-8px;width:16px;height:16px;background:var(--ink);
  border-radius:3px;transform:rotate(45deg)}

/* 加载中点评 */
.talk-bubble .loading{
  color:#cbb794;text-align:center;padding:20px 0;
  font-family:"Noto Serif SC";font-size:14px;font-weight:700;
  animation:pulse 1.5s ease-in-out infinite;
}
.talk-bubble p{margin-bottom:10px}
.talk-bubble p:last-child{margin-bottom:0}

/* 整体评分卡 */
.scorecard{
  background:linear-gradient(135deg,var(--ink),#2a1d0f);color:var(--chalk);
  border:1.5px solid rgba(212,162,60,.4);border-radius:16px;padding:15px 16px;
  box-shadow:var(--shadow);position:relative;overflow:hidden;margin:14px 0 6px;
}
.scorecard::after{content:"";position:absolute;right:-26px;top:-26px;width:96px;height:96px;border-radius:50%;
  background:radial-gradient(circle,rgba(224,138,30,.18),transparent 70%)}
.scorecard .grade{display:flex;align-items:baseline;gap:8px;position:relative;z-index:2;margin-bottom:8px}
.scorecard .grade .n{font-family:"Bebas Neue";font-size:48px;line-height:.82;color:var(--gold);letter-spacing:2px;
  font-variant-numeric:tabular-nums;text-shadow:0 4px 18px rgba(212,162,60,.35)}
.scorecard .grade .u{font-family:"Noto Serif SC";font-weight:700;font-size:12px;color:#e9d4ad;letter-spacing:.2em}
.scorecard .sc-verdict{font-family:"Noto Serif SC";font-weight:900;font-size:13px;color:var(--chalk);line-height:1.5;position:relative;z-index:2;}

/* 追问 */
.ask-bar{
  padding:10px 18px 14px;
  background:linear-gradient(transparent,var(--paper) 28%);
  flex-shrink:0;
}
.ask-input-wrap{display:flex;align-items:center;gap:9px;background:var(--cream);border:2px solid var(--ink);border-radius:30px;
  padding:7px 7px 7px 17px;box-shadow:var(--shadow)}
.ask-input-wrap input{flex:1;border:none;background:none;outline:none;font-family:"Noto Sans SC";font-weight:500;font-size:13px;color:var(--ink)}
.ask-input-wrap input::placeholder{color:#a08c6a}
.ask-input-wrap .send{width:40px;height:40px;flex:0 0 40px;border-radius:50%;border:none;cursor:pointer;
  background:linear-gradient(180deg,#d8442b,var(--cinnabar-deep));display:grid;place-items:center;
  box-shadow:0 6px 12px -4px rgba(156,36,20,.7);transition:.12s}
.ask-input-wrap .send:active{transform:scale(.9)}
.ask-input-wrap .send svg{width:18px;height:18px}

/* 底部签名 */
.footer-note{text-align:center;color:#7a6648;font-size:10px;font-weight:500;padding:10px 0 6px;letter-spacing:.04em}

/* ===== 雪峰点评 markdown 渲染样式（暖色板书风） ===== */
#advice-body h4{
  font-family:"Noto Serif SC",serif;font-weight:900;font-size:17px;
  color:#c0341f;margin:18px 0 8px;line-height:1.4;
}
#advice-body p{margin:0 0 12px;line-height:1.8;}
#advice-body strong{color:#c0341f;font-weight:800;}
#advice-body em{font-style:normal;background:linear-gradient(transparent 60%,rgba(240,180,60,.55) 0);padding:0 1px;}
#advice-body hr{border:0;border-top:1px dashed rgba(192,52,31,.35);margin:16px 0;}
#advice-body ul,#advice-body ol{margin:0 0 12px;padding-left:22px;}
#advice-body li{margin:0 0 7px;line-height:1.75;}
#advice-body ol li::marker{color:#c0341f;font-weight:800;}
#advice-body ul li::marker{color:#b5651d;}

/* 整体评分卡 */
.score-card{display:flex;gap:14px;align-items:center;background:#1c130e;
  border:1px solid rgba(192,52,31,.4);border-radius:16px;padding:16px 18px;margin:0 0 18px;}
.score-card .sc-num{display:flex;align-items:baseline;color:#e8b84b;}
.score-card .sc-val{font-family:"Bebas Neue",sans-serif;font-size:52px;line-height:1;}
.score-card .sc-unit{font-size:16px;margin-left:3px;color:#cfa23e;}
.score-card .sc-body{flex:1;min-width:0;}
.score-card .sc-diag{font-family:"Noto Serif SC",serif;font-weight:900;font-size:17px;color:#f4d9a0;margin-bottom:8px;}
.score-card .sc-bar{height:8px;border-radius:6px;background:rgba(255,255,255,.12);overflow:hidden;}
.score-card .sc-bar span{display:block;height:100%;border-radius:6px;
  background:linear-gradient(90deg,#e8923a,#c0341f);}
.score-card .sc-scale{display:flex;justify-content:space-between;font-size:11px;color:#9b8b7a;margin-top:5px;}
.score-card .sc-note{font-size:11px;color:#8a7a68;margin-top:6px;}


/* 3年投档位次趋势行 */
.trend-row{font-size:12px;color:#9b8b7a;margin-top:7px;font-family:"Oswald",sans-serif;letter-spacing:.3px;}
.trend-row .vol-flag{display:inline-block;margin-left:6px;color:#c0341f;font-weight:700;
  border:1px solid rgba(192,52,31,.5);border-radius:4px;padding:0 5px;font-size:11px;}

/* 层次徽章 + 城市标签 */
.tag{display:inline-block;font-size:11px;padding:1px 6px;border-radius:4px;margin-left:5px;vertical-align:middle;font-weight:700;}
.t985{background:#c0341f;color:#fff;}
.t211{background:#b5651d;color:#fff;}
.tsyl{background:#7a5b2e;color:#fff;}
.tmb{background:#6b6b6b;color:#fff;}
.tcity{background:rgba(192,52,31,.12);color:#8a4a2a;border:1px solid rgba(192,52,31,.25);}

/* 就业红黄绿牌标签 */
.emp{display:inline-block;font-size:11px;padding:1px 7px;border-radius:4px;font-weight:700;}
.emp-g{background:#1f6b3a;color:#fff;}
.emp-r{background:#9c2b1c;color:#fff;}
.emp-y{background:#a8791e;color:#fff;}
.emp-note{font-size:10px;color:#8a7a68;margin-top:6px;}

/* ===== 向导 footer：上一步 + 下一步 ===== */
.wizard-footer{padding:10px 22px 16px;background:var(--paper);display:flex;flex-direction:column;gap:8px;}
.wizard-footer .cta{font-size:16px;padding:15px}

/* 幽灵按钮（上一步 / 重新测算） */
.btn-ghost{
  width:100%;border:1.5px solid var(--line);background:transparent;
  color:var(--ink-soft);font-family:"Noto Serif SC";font-weight:700;font-size:14px;
  border-radius:12px;padding:12px;cursor:pointer;min-height:44px;transition:.12s;
}
.btn-ghost:active{background:var(--paper-deep);}

/* 结果头：actions 行 */
.result-head-actions{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px;}
.result-head-actions .who{font-size:11px;color:var(--ink-soft);font-weight:600;}
.result-head-actions .btn-ghost{width:auto;padding:8px 14px;font-size:12px;border-radius:10px;}

/* 报告头 actions */
.report-head-top{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:0;}
.report-head-top .unlocked{flex-shrink:0;}
.report-actions{display:flex;gap:8px;align-items:center;}
.btn-share{
  font-family:"Noto Serif SC";font-weight:700;font-size:12px;color:var(--gold);
  background:rgba(212,162,60,.14);border:1px solid rgba(212,162,60,.35);
  border-radius:20px;padding:6px 14px;cursor:pointer;min-height:44px;transition:.12s;white-space:nowrap;
}
.btn-share:active{background:rgba(212,162,60,.28);}
.report-actions .btn-ghost{width:auto;padding:8px 14px;font-size:12px;border-radius:10px;min-height:44px;color:var(--chalk);}

/* 低分提示 */
.low-score-tip{
  text-align:center;padding:30px 22px;
  font-family:"Noto Serif SC";font-size:14px;font-weight:700;color:var(--cinnabar-deep);
  line-height:1.8;
}

/* 付费墙弹窗 */
#paywall-modal{position:fixed;inset:0;z-index:9999;display:flex;align-items:flex-end;justify-content:center;}
.pwm-overlay{position:absolute;inset:0;background:rgba(15,8,3,.6);backdrop-filter:blur(2px);}
.pwm-card{
  position:relative;z-index:1;width:100%;max-width:390px;
  background:var(--cream);border-radius:24px 24px 0 0;
  padding:28px 24px calc(28px + env(safe-area-inset-bottom));
  box-shadow:0 -20px 50px -10px rgba(40,20,8,.5);
}
.pwm-price-row{display:flex;align-items:center;gap:10px;margin-bottom:20px;}
.pwm-label{font-family:"Noto Serif SC";font-weight:900;font-size:18px;color:var(--ink);}
.pwm-price{font-family:"Bebas Neue";font-size:32px;color:var(--cinnabar-deep);letter-spacing:1px;}
.pwm-tag{
  font-size:12px;font-weight:700;color:#fff;
  background:var(--green-ok);border-radius:20px;padding:4px 10px;
}
.pwm-perks{list-style:none;padding:0;margin:0 0 22px;display:flex;flex-direction:column;gap:10px;}
.pwm-perks li{display:flex;align-items:center;gap:10px;font-family:"Noto Serif SC";font-weight:700;font-size:14px;color:var(--ink);}
.pwm-perks li::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--cinnabar);flex:0 0 7px;}
.pwm-cta{
  width:100%;border:none;cursor:pointer;font-family:"Noto Serif SC";font-weight:900;
  font-size:17px;color:#fff;padding:18px;border-radius:16px;min-height:56px;
  background:linear-gradient(180deg,#d8442b,var(--cinnabar-deep));
  box-shadow:0 14px 26px -10px rgba(156,36,20,.8);margin-bottom:12px;
}
.pwm-close{
  width:100%;border:none;background:none;cursor:pointer;
  font-family:"Noto Serif SC";font-weight:700;font-size:14px;
  color:var(--ink-soft);padding:12px;min-height:44px;
}

/* 追问气泡 */
.chat-area{display:flex;flex-direction:column;gap:14px;}
.user-bubble{
  align-self:flex-end;
  background:var(--ink);color:var(--chalk);
  border-radius:18px 4px 18px 18px;
  padding:12px 16px;
  font-family:"Noto Serif SC";font-weight:500;font-size:14px;line-height:1.6;
  max-width:82%;
  box-shadow:var(--shadow);
}
.ai-bubble{
  align-self:flex-start;
  /* 继承 .talk-bubble 样式 */
}

/* 追问发送按钮 min 44x44 */
.ask-input-wrap .send{
  width:44px;height:44px;flex:0 0 44px;
  padding-bottom:env(safe-area-inset-bottom);
}

/* 屏1：body 增加 safe-area-top padding */
.s-entry .body{
  display:flex;flex-direction:column;
  padding-top:env(safe-area-inset-top, 8px);
}

/* @media 360px 适配 */
@media(max-width:360px){
  .headline{font-size:28px;}
  .headline .big{font-size:33px;}
  .slot{font-size:32px;}
  .ask-input-wrap input{font-size:12px;}
  .pwm-card{padding:22px 18px calc(22px + env(safe-area-inset-bottom));}
  .pwm-label{font-size:16px;}
  .pwm-price{font-size:28px;}
}

/* ===== 裂变付费墙（分享立减→付款尾号核验） ===== */
.pwm-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;}
.pwm-h-title{font-family:"Noto Serif SC";font-weight:900;font-size:18px;color:var(--ink);}
.pwm-x{border:none;background:none;font-size:24px;line-height:1;color:var(--ink-soft);cursor:pointer;padding:0 4px;min-height:44px;}
.pwm-price-row{display:flex;align-items:baseline;gap:12px;margin:14px 0 16px;}
.pwm-old{font-family:"Noto Serif SC";font-size:14px;color:var(--ink-soft);text-decoration:line-through;}
.pwm-now{font-family:"Noto Serif SC";font-weight:700;font-size:15px;color:var(--ink);}
.pwm-now b{font-family:"Bebas Neue";font-size:30px;color:var(--cinnabar-deep);letter-spacing:1px;margin:0 2px;}
.pwm-step{display:flex;flex-direction:column;gap:10px;}
.pwm-tip{font-family:"Noto Serif SC";font-size:13px;color:var(--ink-soft);text-align:center;line-height:1.5;}
.pwm-tip b{color:var(--cinnabar-deep);}
.pwm-noshare{border:none;background:none;font-family:"Noto Serif SC";font-size:12px;color:var(--ink-soft);text-decoration:underline;cursor:pointer;padding:6px;min-height:44px;}
.pwm-saved{font-family:"Noto Serif SC";font-size:14px;color:var(--ink);text-align:center;margin-bottom:4px;}
.pwm-saved b{color:var(--cinnabar-deep);font-size:18px;}
.pwm-qr{display:grid;place-items:center;margin:6px 0;}
.pwm-qr img{width:180px;height:180px;object-fit:contain;border:1px solid var(--line);border-radius:12px;background:#fff;padding:8px;}
.pwm-qr-fallback{font-family:"Noto Serif SC";font-size:13px;color:var(--ink-soft);padding:40px 20px;border:1px dashed var(--line);border-radius:12px;text-align:center;}
.pwm-pay-tip{font-family:"Noto Serif SC";font-size:13px;color:var(--ink-soft);text-align:center;line-height:1.6;margin:6px 0;}
.pwm-pay-tip b{color:var(--cinnabar-deep);}
.pwm-input{width:100%;box-sizing:border-box;text-align:center;font-family:"Bebas Neue";font-size:22px;letter-spacing:3px;padding:12px;border:1.5px solid var(--line);border-radius:11px;background:var(--paper);color:var(--ink);min-height:48px;}
.pwm-input.err{border-color:var(--cinnabar);}
.pwm-input:focus{outline:none;border-color:var(--gold);}
.pwm-foot{font-family:"Noto Serif SC";font-size:11px;color:var(--ink-soft);text-align:center;margin-top:14px;line-height:1.5;opacity:.85;}
/* 名单页免责小字 */
.disclaimer{font-family:"Noto Serif SC";font-size:11px;color:var(--ink-soft);text-align:center;line-height:1.6;padding:14px 18px 4px;opacity:.8;}
