/* 漏斗全局样式。
 * 从镜像站的 quiz.*.css 逐条还原,类名与选择器一个不改(注入脚本与语言包里的内联 HTML 都依赖这些类名)。
 * 字体栈对所有语言都是韩文栈(与生产一致);要按语言分字体属于产品决定,改这里的 body / .serif 即可。
 */

/* ── 设计变量 ─────────────────────────────────────────── */
:root {
  --bg: #FBF8F4;
  --ink: #3D2B1F;
  --muted: #7A6A58;
  --line: #E8DECF;
  --brand: #C4582B;
  --brand-d: #A8551F;
  --green: #2F7D6E;
  --card: #fff;
}

/* ── 基础 ─────────────────────────────────────────────── */
* {
  box-sizing: border-box;
}
html,
body {
  margin: 0;
  padding: 0;
}
body {
  background: var(--bg);
  color: var(--ink);
  font-family: Pretendard, Apple SD Gothic Neo, Malgun Gothic, system-ui, -apple-system, sans-serif;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}
.wrap {
  max-width: 560px;
  margin: 0 auto;
  padding: 0 18px;
}
.serif {
  font-family: Nanum Myeongjo, Georgia, serif;
}
button {
  font-family: inherit;
}

/* ── topbar 外壳(index.html 静态 HTML) ───────────────── */
#topbar {
  position: sticky;
  top: 0;
  z-index: 50;
  background: #fbf8f4eb;
  backdrop-filter: blur(6px);
  border-bottom: 1px solid var(--line);
}
#topbar .wrap {
  display: flex;
  align-items: center;
  gap: 12px;
  height: 52px;
}
#topback {
  display: none; /* 由 JS 在 step>=0 时改成 inline-block */
  background: none;
  border: none;
  font-size: 24px;
  line-height: 1;
  color: var(--ink);
  cursor: pointer;
  padding: 4px 4px 6px 0;
  font-weight: 700;
  flex: 0 0 auto;
}
#brand {
  font-weight: 800;
  font-size: 15px;
  letter-spacing: -.3px;
}
#brand span {
  color: var(--brand);
}
#prog {
  flex: 1;
  height: 6px;
  background: #efe7da;
  border-radius: 99px;
  overflow: hidden;
}
#prog > i {
  display: block;
  height: 100%;
  width: 0;
  background: var(--brand);
  border-radius: 99px;
  transition: width .3s ease;
}
#qn {
  font-size: 12px;
  color: var(--muted);
  font-variant-numeric: tabular-nums;
  min-width: 44px;
  text-align: right;
}

/* ── 屏幕容器与排版 ───────────────────────────────────── */
.screen {
  padding: 26px 0 40px;
  animation: fade .28s ease;
}
@keyframes fade {
  0% {
    opacity: 0;
    transform: translateY(6px);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
h1 {
  font-size: 25px;
  line-height: 1.32;
  font-weight: 800;
  margin: 0 0 12px;
  letter-spacing: -.5px;
}
h2 {
  font-size: 21px;
  line-height: 1.35;
  font-weight: 800;
  margin: 0 0 10px;
  letter-spacing: -.4px;
}
.sub {
  color: var(--muted);
  font-size: 15px;
  margin: 0 0 22px;
}
.rating {
  color: #e8a33d;
  font-size: 14px;
  margin-bottom: 12px;
}
.rating b {
  color: var(--ink);
}

/* ── 题目与选项 ───────────────────────────────────────── */
.stmt {
  font-size: 20px;
  line-height: 1.45;
  font-weight: 700;
  margin: 6px 0 4px;
  letter-spacing: -.3px;
}
.qhint {
  color: var(--muted);
  font-size: 14px;
  margin: 0 0 18px;
}
.opts {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-top: 8px;
}
.opt {
  display: flex;
  align-items: center;
  gap: 12px;
  background: var(--card);
  border: 1.5px solid var(--line);
  border-radius: 14px;
  padding: 15px 16px;
  cursor: pointer;
  transition: all .13s;
  font-size: 16px;
  font-weight: 600;
  text-align: left;
}
/* hover 只给真有鼠标的设备。
   iOS Safari 的「粘滞 hover」:手指点过的坐标会一直保持 :hover,直到点别处。
   答题切到下一题后,同一位置的新选项落在那个坐标下,就被套上橙框+上浮 ——
   看起来像"上一题的选中框还在"(老板 9/11 在 iPhone 上发现)。老镜像站同样的 bug。 */
@media (hover: hover) {
  .opt:hover {
    border-color: var(--brand);
    transform: translateY(-1px);
  }
}
.opt .emoji {
  font-size: 22px;
}
.opt .freq {
  width: 34px;
  flex: none;
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .5px;
}
.back {
  background: none;
  border: none;
  color: var(--muted);
  font-size: 14px;
  cursor: pointer;
  padding: 6px 0;
  margin-top: 14px;
}

/* ── 主按钮 / 表单 ────────────────────────────────────── */
.cta {
  display: block;
  width: 100%;
  border: none;
  border-radius: 14px;
  padding: 17px;
  font-size: 17px;
  font-weight: 800;
  color: #fff;
  background: var(--brand);
  box-shadow: 0 6px 18px #c4582b4d;
  cursor: pointer;
  transition: all .15s;
}
@media (hover: hover) {
  .cta:hover {
    background: var(--brand-d);
    transform: translateY(-1px);
  }
}
.cta:disabled {
  opacity: .5;
  cursor: default;
  transform: none;
}
.field {
  margin: 16px 0;
}
.field label {
  display: block;
  font-size: 14px;
  font-weight: 700;
  margin-bottom: 7px;
}
.input {
  width: 100%;
  border: 1.5px solid var(--line);
  border-radius: 12px;
  padding: 15px;
  font-size: 16px;
  background: #fff;
}
.input:focus {
  outline: none;
  border-color: var(--brand);
}
.note {
  font-size: 12px;
  color: var(--muted);
  margin-top: 10px;
  text-align: center;
}
.err {
  color: #c0392b;
  font-size: 14px;
  margin-top: 8px;
  display: none; /* 校验失败时 JS 置 block */
}

/* ── 加载/分析屏 ──────────────────────────────────────── */
.loader {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 18px;
  padding: 40px 0;
}
.spin {
  width: 44px;
  height: 44px;
  border: 4px solid #EFE7DA;
  border-top-color: var(--brand);
  border-radius: 50%;
  animation: sp .8s linear infinite;
}
@keyframes sp {
  to {
    transform: rotate(360deg);
  }
}
.steps {
  width: 100%;
  max-width: 320px;
}
.steps .row {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 7px 0;
  color: var(--muted);
  font-size: 14px;
  transition: .3s;
}
.steps .row.on {
  color: var(--ink);
  font-weight: 600;
}
.steps .row .dot {
  width: 18px;
  height: 18px;
  border-radius: 50%;
  border: 2px solid var(--line);
  flex: none;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-size: 12px;
  font-weight: 900;
  line-height: 1;
}
.steps .row.on .dot {
  border-color: var(--green);
  background: var(--green);
}
.steps .row.on .dot:after {
  content: "✓";
}

/* ── 报价屏通用组件 ───────────────────────────────────── */
.badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: #e9f4ef;
  color: var(--green);
  font-weight: 800;
  font-size: 12px;
  border-radius: 99px;
  padding: 6px 12px;
  margin-bottom: 14px;
}
.timerbar {
  background: var(--ink);
  color: #fff;
  border-radius: 14px;
  padding: 12px 16px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  font-size: 14px;
  margin: 0 0 18px;
}
.timerbar b {
  background: var(--brand);
  border-radius: 8px;
  padding: 3px 9px;
  font-variant-numeric: tabular-nums;
}
.profile {
  background: var(--card);
  border: 1.5px solid var(--brand);
  border-radius: 16px;
  padding: 16px 18px;
  margin: 14px 0;
}
.profile .k {
  color: var(--muted);
  font-size: 13px;
}
.profile .v {
  font-weight: 800;
  font-size: 16px;
  margin-bottom: 8px;
}
.tags {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin-top: 6px;
}
.tag {
  background: #fdf3ec;
  color: var(--brand);
  border-radius: 99px;
  padding: 5px 11px;
  font-size: 13px;
  font-weight: 700;
}
.sigbar {
  height: 10px;
  background: #efe7da;
  border-radius: 99px;
  overflow: hidden;
  margin: 8px 0 4px;
}
.sigbar > i {
  display: block;
  height: 100%;
  background: linear-gradient(90deg, #E8A33D, var(--brand));
  border-radius: 99px;
}
.card {
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: 16px;
  padding: 18px;
  margin: 14px 0;
}
.price {
  display: flex;
  align-items: baseline;
  gap: 10px;
  margin: 6px 0;
}
.price .old {
  color: var(--muted);
  text-decoration: line-through;
  font-size: 18px;
}
.price .now {
  font-size: 34px;
  font-weight: 900;
  color: var(--brand);
  letter-spacing: -1px;
}
.price .off {
  background: var(--brand);
  color: #fff;
  font-weight: 800;
  font-size: 13px;
  border-radius: 8px;
  padding: 3px 9px;
}
ul.inc {
  list-style: none;
  padding: 0;
  margin: 12px 0;
}
ul.inc li {
  display: flex;
  gap: 10px;
  padding: 6px 0;
  font-size: 15px;
}
ul.inc li:before {
  content: "✓";
  color: var(--green);
  font-weight: 900;
}
.anchor {
  background: #fdf6ee;
  border: 1px dashed var(--brand);
  border-radius: 12px;
  padding: 12px 14px;
  font-size: 13.5px;
  color: var(--muted);
  margin: 12px 0;
}
.anchor b {
  color: var(--ink);
}
.quote {
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: 16px;
  margin: 12px 0;
}
.quote p {
  margin: 0 0 8px;
  font-size: 15px;
}
.quote .who {
  color: var(--muted);
  font-size: 13px;
  font-weight: 700;
}
.stars {
  color: #e8a33d;
  font-size: 13px;
}
.guar {
  background: #f4faf7;
  border: 1px solid #CDE9DF;
  border-radius: 14px;
  padding: 16px;
  margin: 14px 0;
  font-size: 14px;
}
.guar b {
  color: var(--green);
}
details {
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 0 16px;
  margin: 8px 0;
}
details summary {
  cursor: pointer;
  padding: 14px 0;
  font-weight: 700;
  font-size: 15px;
  list-style: none;
}
details summary::-webkit-details-marker {
  display: none;
}
details p {
  margin: 0 0 14px;
  color: var(--muted);
  font-size: 14px;
}
.foot {
  text-align: center;
  color: var(--muted);
  font-size: 12px;
  padding: 24px 0 40px;
  line-height: 1.7;
}
.foot a {
  color: var(--muted);
}
.sticky {
  position: sticky;
  bottom: 0;
  background: linear-gradient(transparent, var(--bg) 24%);
  padding: 14px 0 16px;
  z-index: 40;
}

/* ── 模糊报告预览 ─────────────────────────────────────── */
.rep {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 18px;
  box-shadow: 0 10px 30px #4a311f17;
  overflow: hidden;
  margin: 16px 0 6px;
}
.rephead {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 14px 16px;
  background: linear-gradient(135deg, #fdf3ec, #fbf8f4);
  border-bottom: 1px solid var(--line);
  font-weight: 900;
  font-size: 15px;
}
.pvpill {
  font-size: 11px;
  font-weight: 800;
  background: #33261c;
  color: #fff;
  padding: 3px 10px;
  border-radius: 99px;
}
.reprow {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 10px;
  padding: 12px 16px;
  border-top: 1px solid #F3EDE3;
  font-size: 14.5px;
}
.reprow .k {
  color: var(--muted);
}
.reprow .v {
  font-weight: 800;
  text-align: right;
}
.v.blur {
  filter: blur(7px);
  user-select: none;
  pointer-events: none;
}
.replocked {
  position: relative;
}
.lockover {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(180deg, #ffffff0a, #fbf8f499);
}
.lockbtn {
  background: #33261c;
  color: #fff;
  border: none;
  border-radius: 99px;
  padding: 11px 18px;
  font-size: 14px;
  font-weight: 800;
  cursor: pointer;
  box-shadow: 0 8px 20px #33261c47;
}
.gauge {
  height: 14px;
  border-radius: 99px;
  background: linear-gradient(90deg, #5ba97e, #e7c34c 45%, #d96c3a 72%, #bb3e2b);
  position: relative;
  margin-top: 4px;
}
.gauge i {
  position: absolute;
  top: -6px;
  width: 6px;
  height: 26px;
  background: #33261c;
  border-radius: 3px;
  box-shadow: 0 0 0 2.5px #fff;
  transform: translate(-3px);
}
.glabels {
  display: flex;
  justify-content: space-between;
  font-size: 11px;
  color: var(--muted);
  margin-top: 6px;
}

/* ── 付款卡片 #payBox ─────────────────────────────────── */
.tier1 {
  border: 2px solid var(--brand);
  position: relative;
}
.tbadge {
  position: absolute;
  top: -11px;
  left: 16px;
  background: var(--brand);
  color: #fff;
  font-size: 11px;
  font-weight: 800;
  padding: 3px 10px;
  border-radius: 99px;
}
.ordiv {
  text-align: center;
  color: var(--muted);
  font-size: 13px;
  margin: 20px 0 14px;
}
.offpill {
  background: #f3d9c6;
  color: #a8551f;
  font-size: 11px;
  font-weight: 800;
  padding: 3px 9px;
  border-radius: 99px;
  white-space: nowrap;
}
.cta.ghost {
  background: #fff;
  color: var(--brand);
  border: 2px solid var(--brand);
  box-shadow: none;
}
@media (hover: hover) {
  .cta.ghost:hover {
    background: #fdf3ec;
  }
}
h1,
.sub,
.inc li,
.reprow,
.timerbar,
.anchor,
.guar,
.ordiv {
  word-break: keep-all;
}
.plan {
  position: relative;
  display: flex;
  gap: 12px;
  align-items: flex-start;
  border: 2px solid var(--line);
  border-radius: 14px;
  padding: 14px;
  margin: 12px 0;
  cursor: pointer;
  background: #fff;
  transition: border-color .15s, background .15s;
  word-break: keep-all;
}
.plan.sel {
  border-color: var(--brand);
  background: #fdf3ec;
}
.pl-radio {
  flex: 0 0 20px;
  height: 20px;
  border: 2px solid #cbbba5;
  border-radius: 50%;
  margin-top: 2px;
  position: relative;
  background: #fff;
}
.plan.sel .pl-radio {
  border-color: var(--brand);
}
.plan.sel .pl-radio:after {
  content: "";
  position: absolute;
  inset: 3px;
  background: var(--brand);
  border-radius: 50%;
}
.pl-main {
  flex: 1;
  min-width: 0;
}
.pl-title {
  font-weight: 900;
  font-size: 15px;
}
.pl-desc {
  color: var(--muted);
  font-size: 12.5px;
  line-height: 1.55;
  margin-top: 3px;
}
.pl-price {
  font-weight: 900;
  color: var(--brand);
  white-space: nowrap;
  font-size: 16px;
  text-align: right;
}
.pl-price s {
  color: #9a8b78;
  font-weight: 700;
  font-size: 12px;
  display: block;
}
.pl-flag {
  position: absolute;
  top: -10px;
  right: 12px;
  background: var(--brand);
  color: #fff;
  font-size: 10.5px;
  font-weight: 800;
  padding: 2px 9px;
  border-radius: 99px;
}
.secure {
  text-align: center;
  font-size: 12px;
  color: var(--muted);
  margin-top: 10px;
}

/* ── intro 首屏 ───────────────────────────────────────── */
.introcard {
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: 16px;
  margin: 16px 0;
  font-size: 14px;
  color: var(--muted);
}
.symrow {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 14px 0 4px;
}
.sym {
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: 99px;
  padding: 7px 13px;
  font-size: 13.5px;
  font-weight: 600;
  color: var(--ink);
}
.disc {
  font-size: 11.5px;
  color: var(--muted);
  line-height: 1.6;
  margin-top: 14px;
}

/* ===== paynovel:目录缺失档位置灰(applyPaynovelCatalog) ===== */
.plan.disabled{opacity:.45;pointer-events:none;filter:saturate(.6)}
.plan.disabled .pl-flag{background:#9a8b78}

/* ═══ 报价屏紧凑版式(老板 9/11 两轮;语言包 copy.offerCompact=true 时 Offer.vue 给 .screen 加这个类)═══
   目的:真机(360 宽、地址栏未收起)首屏就露出两个支付按钮。只收紧留白,不改内容。
   数值逐条对应线上测试页注入的 <style>,第二轮覆盖第一轮的地方取第二轮的值。 */
.gaugewrap{padding:2px 16px 14px}      /* 原来是 Offer.vue 里的内联 style;挪成 class 才能被紧凑模式覆盖 */
.offer-compact{padding-top:4px}
.offer-compact h1.serif{font-size:clamp(19px,5.9vw,25px);line-height:1.25;margin:0 0 4px}
.offer-compact .rep{margin:4px 0 2px}
.offer-compact .rephead{padding:8px 14px}
.offer-compact .reprow{padding:4px 14px;font-size:13px}
.offer-compact .gaugewrap{padding:2px 16px 8px}
.offer-compact .glabels{display:none}                 /* 色条下的 낮음/중간/높음 三个小字 */
.offer-compact .lockbtn{padding:16px 28px;font-size:17px;border-radius:99px;box-shadow:0 10px 26px #33261c55}  /* 解锁按钮放大 */
.offer-compact .card.tier1{padding-top:14px}
.offer-compact .plan{padding:9px 12px;margin:6px 0}
.offer-compact .pl-title{font-size:14.5px;line-height:1.3}
.offer-compact .pl-desc{font-size:12px;line-height:1.45;margin-top:2px}
.offer-compact .wallet-block{margin-top:4px}

/* ── 挽回折扣弹窗(ComebackModal.vue;原 deploy/comeback-modal.js 的内联样式原样搬过来)── */
.cb-wrap{position:fixed;inset:0;z-index:2147483000;display:flex;align-items:center;justify-content:center;background:rgba(40,26,17,.62);padding:20px;font-family:"Apple SD Gothic Neo",-apple-system,sans-serif;animation:cbfade .25s ease}
.cb-card{position:relative;max-width:360px;width:100%;background:linear-gradient(180deg,#FFFDF9,#FBF2E4);border-radius:22px;box-shadow:0 24px 70px rgba(120,50,20,.4);padding:30px 24px 26px;text-align:center;animation:cbpop .32s cubic-bezier(.18,.9,.32,1.2)}
.cb-x{position:absolute;top:12px;right:14px;border:0;background:transparent;font-size:22px;color:#B9A68C;cursor:pointer;line-height:1;padding:0}
.cb-gift{font-size:46px;margin-bottom:6px}
.cb-title{font-size:21px;font-weight:900;color:#3D2B1F;letter-spacing:-.3px}
.cb-sub{font-size:14px;color:#8A745C;margin:8px 0 18px;line-height:1.55}
.cb-coupon{border:2px dashed #E0A96D;border-radius:16px;background:#FFF6EA;padding:16px 14px;margin-bottom:8px}
.cb-code{font-size:12px;font-weight:800;letter-spacing:2px;color:#C4582B}
.cb-prices{display:flex;justify-content:center;gap:10px;align-items:baseline;margin-top:8px}
.cb-prices s{font-size:15px;color:#B9A68C;text-decoration:line-through}
.cb-arrow{font-size:15px;color:#C4582B}
.cb-prices b{font-size:30px;font-weight:900;color:#C4582B}
.cb-more{font-size:12px;color:#9A8A74;margin-top:6px}
.cb-note{font-size:11px;color:#B4A386;margin:10px 0 16px}
.cb-go{width:100%;border:0;border-radius:14px;padding:15px;font-size:16px;font-weight:800;color:#fff;background:linear-gradient(135deg,#FF8A50,#EF5A28);box-shadow:0 10px 24px rgba(200,70,15,.34);cursor:pointer;font-family:inherit}
@keyframes cbfade{from{opacity:0}to{opacity:1}}
@keyframes cbpop{from{transform:scale(.86);opacity:.4}to{transform:scale(1);opacity:1}}
/* 挽回折扣倒计时条(Offer.vue #cbTimer;老板 9/14:要显眼):
   品牌橙渐变(和弹窗 CTA 同一套)、白底大数字块每秒轻轻一跳、贴在顶栏下方吸顶 ——
   往下滚到套餐卡 / 付款按钮时它一直在眼前。基类 .timerbar 给的是黑条,这里全部覆盖。 */
.cb-timerbar{position:sticky;top:58px;z-index:40;margin:0 0 14px;padding:10px 12px 10px 14px;border-radius:14px;
  background:linear-gradient(135deg,#FF8A50,#EF5A28);color:#fff;font-weight:800;font-size:14.5px;line-height:1.3;
  justify-content:space-between;gap:10px;box-shadow:0 10px 24px rgba(200,70,15,.34)}
.cb-timerbar b{background:#fff;color:#C4582B;font-size:21px;line-height:1;padding:8px 12px;border-radius:10px;
  min-width:82px;text-align:center;letter-spacing:1px;font-variant-numeric:tabular-nums;flex:none;
  box-shadow:inset 0 0 0 2px #FFD9C4;animation:cbtick 1s ease-in-out infinite}
@keyframes cbtick{0%,100%{transform:scale(1)}50%{transform:scale(1.05)}}
.offer-compact .cb-timerbar{margin:0 0 10px}
.cb-note b{color:#C4582B;font-variant-numeric:tabular-nums}

/* ── MBTI 报价屏:四条维度条(MbtiGauges.vue)── */
.mbti-dims{display:flex;flex-direction:column;gap:9px;padding:4px 0 2px}
.mdim{display:flex;align-items:center;gap:10px}
.mlabel{flex:0 0 68px;font-size:12px;font-weight:700;color:#9a8b78;white-space:nowrap}
.mlabel.right{text-align:right}
.mlabel.on{color:var(--brand)}
.mbar{position:relative;flex:1;height:8px;border-radius:99px;background:linear-gradient(90deg,#f0d9c8,#e7dccf 50%,#f0d9c8)}
.mbar i{position:absolute;top:50%;width:14px;height:14px;margin:-7px 0 0 -7px;border-radius:50%;background:var(--brand);box-shadow:0 0 0 3px #fff,0 2px 6px rgba(0,0,0,.18)}
.offer-compact .mbti-dims{gap:7px;padding:2px 0}
.offer-compact .mlabel{flex-basis:60px;font-size:11.5px}

/* 非韩文页面(巴西 pt 等):Nanum Myeongjo 没有带重音的拉丁字母,标题会混出两种字体,改用 Georgia */
html:not([lang="ko"]) .serif{font-family:Georgia,"Times New Roman",serif}

/* ── IQ 单选题(ChoiceQuestion.vue)── */
.qtimer{float:right;font-variant-numeric:tabular-nums;font-weight:800;color:var(--muted);background:var(--soft,#f3eae0);border-radius:99px;padding:1px 10px}
.qtimer.urgent{color:#BB3E2B}
.qtext{font-size:20px;line-height:1.45;margin:6px 0 10px}
.qimg{margin:0 auto 6px;max-width:320px}
.qimg svg{display:block;width:100%;height:auto}
.opts-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.opt.opt-img{flex-direction:column;justify-content:center;gap:6px;padding:10px 8px 8px}
.opt.opt-img .freq{align-self:flex-start}
.optimg{display:block;width:100%;max-width:120px}
.optimg svg{display:block;width:100%;height:auto}
/* ── IQ 报价屏:四个认知领域正确率条(IqBars.vue)── */
.iq-bars{display:flex;flex-direction:column;gap:8px;padding:2px 0 4px}
.ibar{display:flex;align-items:center;gap:10px}
.ilabel{flex:0 0 110px;font-size:12.5px;font-weight:700;color:var(--muted);white-space:nowrap}
.itrack{flex:1;height:9px;border-radius:99px;background:#eee4d8;overflow:hidden}
.itrack i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,#E48A5C,#C4582B)}
.offer-compact .ilabel{flex-basis:96px;font-size:12px}

/* ── 付款人表单(巴西 Pix,PayBox.vue 的 .payer-form)──
   Pix 建单要付款人姓名 + CPF/CNPJ,所以这一档不是钱包大按钮而是一套表单。
   只有语言包给了 checkout.payerForm 才会渲染,其它市场的报价屏一点都不受影响。
   版式参考老板给的样子:白底圆角输入框 → 青绿色付款键 → 居中小字说明 → 下划线托管页链接。 */
.payer-form{margin:2px 0 10px}
.payer-title{font-size:13.5px;font-weight:800;color:var(--brand);margin:2px 0 8px}
.payer-field{display:block;margin:0 0 8px}
.payer-label{display:block;font-size:12px;font-weight:600;color:var(--muted);margin:0 0 4px}
.payer-input{display:block;width:100%;box-sizing:border-box;min-width:0;height:44px;padding:0 12px;border:1.5px solid var(--line);border-radius:10px;background:#fff;color:var(--ink);font-family:inherit;font-size:15px;font-weight:600;-webkit-appearance:none;appearance:none}
.payer-input::placeholder{color:#B9AA96;font-weight:500}
.payer-input:focus{outline:0;border-color:#32BCAD;box-shadow:0 0 0 3px rgba(50,188,173,.18)}
.payer-input[aria-invalid="true"]{border-color:#BB3E2B}
.payer-err{font-size:12px;font-weight:700;color:#BB3E2B;margin:-4px 0 8px}
.pix-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;box-sizing:border-box;height:50px;margin:4px 0 0;border:0;border-radius:10px;background:#32BCAD;color:#fff;font-family:inherit;font-size:15.5px;font-weight:800;line-height:1.2;text-align:center;cursor:pointer;box-shadow:0 6px 16px rgba(50,188,173,.38)}
.pix-btn:hover{background:#2AA79A}
.pix-note{font-size:11.5px;line-height:1.5;color:var(--muted);text-align:center;margin:7px 0 0}
.pix-alt{display:block;font-size:11.5px;color:var(--muted);text-align:center;text-decoration:underline;margin:5px 0 2px;cursor:pointer;border:0;background:none;cursor:pointer;font:inherit;font-size:12.5px;width:100%}
@media (max-width:400px){
 .pix-btn{font-size:14.5px}
 .pix-note,.pix-alt{font-size:11px}
}
