/* ============ 联合测评页 ============ */
.main{padding:30px 0 60px;min-height:60vh}

/* ---------- 动效基础（Anime.js 接管时禁用 CSS 动画） ---------- */
.m-in{animation:mIn .58s cubic-bezier(.22,.61,.36,1) both}
@keyframes mIn{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
@keyframes mPop{from{opacity:0;transform:scale(.88) translateY(10px)}to{opacity:1;transform:none}}
html.has-anime .m-in{animation:none;opacity:0}
@media (prefers-reduced-motion: reduce){
  html.has-anime .m-in{opacity:1}
  .m-in{animation:none}
  *{transition-duration:.001ms!important}
}

/* ---------- 质感：玻璃卡 / 渐变描边 / 柔光 ---------- */
.sel-group,.sc-card,.res-summary,.sel,.preset,.select-foot{
  background:linear-gradient(180deg,#fff,#fcfdfe);
  transition:box-shadow .22s ease,transform .22s ease,border-color .22s ease;
}
.sel:hover{transform:translateY(-3px);box-shadow:0 10px 26px rgba(43,111,143,.13)}
.sel.on{box-shadow:0 8px 22px rgba(43,111,143,.16)}
.sc-card:hover{transform:translateY(-3px);box-shadow:0 12px 30px rgba(19,45,60,.10)}
.sel-group:hover{box-shadow:0 10px 28px rgba(19,45,60,.08)}

/* 顶部柔光背景 */
body::before{
  content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
  background:
    radial-gradient(760px 420px at 88% -6%,rgba(61,132,163,.10),transparent 62%),
    radial-gradient(620px 380px at 6% 4%,rgba(63,143,125,.09),transparent 60%);
}
.main,.site-header,.site-footer{position:relative;z-index:1}

/* 步骤条：激活项流光 */
.steps li.on{
  background:linear-gradient(100deg,var(--primary-soft),#fff 55%,var(--primary-soft));
  background-size:220% 100%;animation:flow 3.2s linear infinite;
}
@keyframes flow{from{background-position:0 0}to{background-position:-220% 0}}
@media (prefers-reduced-motion: reduce){.steps li.on{animation:none}}

/* 按钮微交互 */
.btn{position:relative;overflow:hidden}
.btn::after{
  content:"";position:absolute;top:0;left:-140%;width:60%;height:100%;
  background:linear-gradient(100deg,transparent,rgba(255,255,255,.55),transparent);
  transform:skewX(-18deg);transition:left .55s ease;
}
.btn:hover::after{left:150%}
.btn:active{transform:translateY(1px)}

/* 选项卡：选中柔光 */
.qopt.on{box-shadow:0 6px 18px rgba(43,111,143,.20)}
.qopt{transition:transform .16s ease,border-color .16s ease,background .16s ease,box-shadow .2s ease}

/* 综合级别徽章柔光 */
.rs-badge .rsb-name{position:relative;display:inline-block}
.rs-badge .rsb-name::after{
  content:"";position:absolute;inset:-14px -18px;border-radius:50%;
  background:radial-gradient(circle,rgba(43,111,143,.13),transparent 68%);z-index:-1;
}

/* 结论卡顶部条 */
.sc-card .scc-top{position:relative}
.sc-card .scc-top::before{
  content:"";position:absolute;left:0;top:0;bottom:0;width:3px;
  background:linear-gradient(180deg,var(--primary),#7fb6cd);
}

/* 进度条流光 */
.progress-bar{position:relative}
.progress-bar::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(100deg,transparent,rgba(255,255,255,.45),transparent);
  background-size:200% 100%;animation:flow 2.6s linear infinite;
}
@media (prefers-reduced-motion: reduce){.progress-bar::after{animation:none}}

/* 步骤条 */
.steps{list-style:none;margin:0 0 24px;padding:0;display:flex;gap:8px;flex-wrap:wrap}
.steps li{
  display:flex;align-items:center;gap:8px;font-size:13.5px;color:var(--muted);
  background:#fff;border:1px solid var(--line);border-radius:999px;padding:6px 16px 6px 8px;
}
.steps li span{
  width:22px;height:22px;border-radius:50%;background:#eef3f7;color:var(--muted);
  display:grid;place-items:center;font-size:12px;font-weight:700;
}
.steps li.on{border-color:var(--primary);color:var(--primary-d);background:var(--primary-soft);font-weight:600}
.steps li.on span{background:var(--primary);color:#fff}
.steps li.done{border-color:#cfe4ee;color:var(--text-2)}
.steps li.done span{background:#cfe4ee;color:var(--primary-d)}

/* Step1 选题库 */
.pane-head{max-width:760px;margin-bottom:22px}
.pane-head h1{font-size:29px;margin-bottom:10px;letter-spacing:-.02em}
.pane-head p{font-size:15px;color:var(--text-2)}

.preset{display:flex;align-items:center;gap:9px;flex-wrap:wrap;background:#fff;border:1px solid var(--line);border-radius:12px;padding:13px 16px;margin-bottom:20px}
.preset-label{font-size:12.5px;font-weight:700;color:var(--muted);margin-right:2px}
.preset .btn{padding:7px 14px;font-size:13.5px}

.pick-groups{display:grid;gap:18px}
.sel-group{background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px 20px;box-shadow:var(--shadow-sm)}
.sg-head{display:flex;align-items:baseline;gap:10px;margin-bottom:12px;flex-wrap:wrap}
.sg-name{font-size:16px;font-weight:700}
.sg-desc{font-size:12.5px;color:var(--muted)}
.sg-items{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:11px}
.sel{
  display:flex;gap:11px;align-items:flex-start;border:1.5px solid var(--line);border-radius:12px;
  padding:13px 15px;cursor:pointer;background:#fff;text-align:left;font-family:inherit;transition:.14s;
}
.sel:hover{border-color:#a8c9d8;background:#f7fbfc}
.sel.on{border-color:var(--primary);background:var(--primary-soft)}
.sel.disabled{opacity:.55;cursor:not-allowed}
.sel-box{
  flex:none;width:19px;height:19px;border-radius:6px;border:1.5px solid #c3d2da;background:#fff;
  margin-top:2px;position:relative;
}
.sel.on .sel-box{background:var(--primary);border-color:var(--primary)}
.sel.on .sel-box::after{
  content:"";position:absolute;left:5px;top:2px;width:6px;height:10px;
  border:solid #fff;border-width:0 2.2px 2.2px 0;transform:rotate(42deg);
}
.sel-main b{display:block;font-size:14.5px}
.sel-main span{display:block;font-size:12.5px;color:var(--muted);margin-top:2px;line-height:1.5}

.select-foot{
  display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;
  background:#fff;border:1px solid var(--line);border-radius:12px;padding:14px 18px;margin-top:20px;
}
.sf-info{font-size:13.5px;color:var(--muted)}
.sf-info b{color:var(--primary-d)}
.sf-actions{display:flex;gap:10px}

/* Step2 答题条 */
.quiz-bar{
  display:flex;justify-content:space-between;align-items:flex-end;gap:20px;flex-wrap:wrap;
  background:#fbfdfe;border:1px solid var(--line);border-radius:12px 12px 0 0;border-bottom:0;padding:14px 20px;
}
.qb-scale{font-size:14.5px;font-weight:700}
.qb-crumb{font-size:12.5px;color:var(--muted);margin-top:2px}
.qb-right{min-width:210px;flex:1;max-width:340px}
.qb-count{font-size:12.5px;color:var(--muted);text-align:right;margin-top:5px;font-variant-numeric:tabular-nums}
#paneQuiz .q-nav,#paneQuiz .q-stage{border-left:1px solid var(--line);border-right:1px solid var(--line)}
#paneQuiz .quiz-foot{border:1px solid var(--line);border-top:0;border-radius:0 0 12px 12px}

/* ---- 选题两级 ---- */
.cat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px}
.cat-card{
  display:flex;flex-direction:column;gap:5px;text-align:left;cursor:pointer;font-family:inherit;
  border:1.5px solid var(--line);border-radius:14px;padding:18px 20px;background:linear-gradient(180deg,#fff,#fcfdfe);
  transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;
}
.cat-card:hover{transform:translateY(-4px);box-shadow:0 14px 30px rgba(43,111,143,.14);border-color:var(--primary)}
.cat-card.picked{border-color:var(--primary);background:var(--primary-soft)}
.cc-name{font-size:19px;font-weight:800;letter-spacing:-.01em}
.cc-count{font-size:12.5px;color:var(--primary-d);font-weight:600}
.cc-desc{font-size:12.5px;color:var(--muted);line-height:1.6}
.cc-list{font-size:12px;color:var(--text-2);margin-top:2px}
.cc-go{font-size:12.5px;color:var(--primary);font-weight:600;margin-top:6px}
.sv-head{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:14px}
.sv-title{font-size:15px;font-weight:700}
.btn-back{padding:7px 13px;font-size:13.5px}
.sv-foot{margin-top:16px;padding-top:14px;border-top:1px solid var(--line-soft)}

/* Step3 结果（分页） */
.show-score .score-only{display:inline}
.res-pager{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:12px;flex-wrap:wrap}
.rp-title-txt{font-size:17px;font-weight:700}
.rp-step-txt{font-size:12.5px;color:var(--muted);font-variant-numeric:tabular-nums}
.res-page{min-height:200px}
.res-nav{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:18px;padding-top:14px;border-top:1px solid var(--line)}
.res-dots{display:flex;gap:6px;flex-wrap:wrap;justify-content:center;flex:1}
.rdot{width:9px;height:9px;padding:0;border-radius:50%;border:1.5px solid #c9d8e0;background:#fff;cursor:pointer;transition:.18s}
.rdot.done{background:#cfe4ee;border-color:#cfe4ee}
.rdot.cur{background:var(--primary);border-color:var(--primary);transform:scale(1.35)}
.res-sticky{
  display:flex;gap:10px;flex-wrap:wrap;margin-top:14px;padding:13px 16px;position:sticky;bottom:0;
  background:rgba(255,255,255,.94);backdrop-filter:blur(8px);border:1px solid var(--line);border-radius:12px;
}
.res-sticky .btn{flex:1;min-width:140px}
.res-summary{
  display:grid;grid-template-columns:auto 1fr;gap:22px;align-items:center;
  border:2px solid var(--line);border-radius:14px;padding:20px 22px;background:#fbfdfe;margin-bottom:16px;
}
.rs-badge{text-align:center;min-width:150px;border-right:1px dashed var(--line);padding-right:22px}
.rs-badge .rsb-label{font-size:11.5px;color:var(--muted);letter-spacing:.08em}
.rs-badge .rsb-name{font-size:24px;font-weight:800;line-height:1.3;margin:3px 0 3px;letter-spacing:-.02em}
.rs-badge .rsb-sub{font-size:12px;color:var(--muted)}
.rs-body .rs-line{font-size:14.5px;margin-bottom:7px;line-height:1.75}
.rs-body .rs-line:last-child{margin-bottom:0}
.rs-body b{color:var(--text)}

.scale-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:14px;margin:18px 0}
.sc-card{border:1px solid var(--line);border-radius:13px;background:#fff;overflow:hidden}
.sc-card .scc-top{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;border-bottom:1px solid var(--line-soft);background:#fbfdfe}
.sc-card .scc-name{font-size:14px;font-weight:700}
.sc-card .scc-name em{font-style:normal;font-size:12px;color:var(--muted);font-weight:400;margin-left:6px}
.sc-card .scc-band{font-size:13.5px;font-weight:700;padding:3px 11px;border-radius:7px;white-space:nowrap}
.sc-card .scc-body{padding:13px 16px}
.sc-card .scc-desc{font-size:13px;color:var(--text-2);margin-bottom:7px}
.sc-card .scc-act{font-size:12.5px;color:var(--muted);line-height:1.7}
.sc-card .scc-meta{font-size:11.5px;color:var(--muted);margin-top:9px;padding-top:9px;border-top:1px dashed var(--line)}

.cross{display:grid;gap:11px;margin:16px 0}
.cross-item{display:flex;gap:12px;align-items:flex-start;border-radius:11px;padding:13px 16px;font-size:13.5px;line-height:1.75}
.cross-item.red{background:#fdf1ef;border:1px solid #f0cfc9;color:#7f2a20}
.cross-item.amber{background:#fffaf0;border:1px solid #f2e3c2;color:#6b5220}
.cross-item.info{background:#f4f9fb;border:1px solid #dbe9f0;color:#235872}
.cross-item.green{background:#f1f8f4;border:1px solid #d6ebe0;color:#28604a}
.cross-item .ci-ico{flex:none;width:22px;height:22px;border-radius:7px;display:grid;place-items:center;font-size:13px;font-weight:700;background:rgba(255,255,255,.7)}
.cross-item b{display:block;margin-bottom:2px}

.res-next{border:1px solid var(--line);border-radius:12px;padding:16px 18px;background:#fff;margin-bottom:18px}
.res-next h4{font-size:15px;margin-bottom:8px}
.res-next p{font-size:13.5px;color:var(--text-2);margin-bottom:11px}
.res-next .rn-btns{display:flex;gap:10px;flex-wrap:wrap}

.res-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:6px}
.res-note{font-size:12.5px;color:var(--muted);margin-top:14px;line-height:1.8}

/* 综合报告中的量表小节 */
.rp-scale-block{margin-bottom:6px}
.rp-scale-block .rp-sb-title{font-size:13.5px;font-weight:700;margin:14px 0 8px;display:flex;align-items:center;gap:9px}
.rp-scale-block .rp-sb-title .rp-pill{font-size:11.5px;font-weight:700;padding:2px 9px;border-radius:6px}
.rp-note-inline{font-size:12px;color:var(--muted);margin:6px 0 0;line-height:1.7}

/* ============ 响应式：手机 / 平板 / 桌面 ============ */
@media(max-width:1024px){
  .wrap{padding:0 18px}
  .cat-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:11px}
  .sg-items,.scale-cards{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
  .qs-text{font-size:19px}
}

@media(max-width:640px){
  .wrap{padding:0 14px}
  .main{padding:20px 0 40px}
  .pane-head h1{font-size:23px}
  .pane-head p{font-size:14px}
  .res-summary{grid-template-columns:1fr;gap:14px;padding:16px}
  .rs-badge{border-right:0;border-bottom:1px dashed var(--line);padding:0 0 12px}
  .quiz-bar{border-radius:0;padding:12px 14px}
  .steps li{font-size:12px;padding:5px 11px 5px 5px}
  .steps{gap:6px;margin-bottom:16px}
  #paneQuiz .q-nav,#paneQuiz .q-stage{border-left:0;border-right:0;padding-left:14px;padding-right:14px}
  #paneQuiz .quiz-foot{border-left:0;border-right:0;padding:12px 14px}
  .qdot{width:34px;height:34px;font-size:12px}      /* 触控目标 ≥34px */
  .qdot.cur{box-shadow:none}
  .qs-text{font-size:18px;margin-bottom:16px}
  .qs-opts{grid-template-columns:1fr}
  .qs-hint{display:none}
  .cat-grid{grid-template-columns:1fr}
  .cat-card{padding:15px 16px}
  .cc-name{font-size:17px}
  .sg-items,.scale-cards{grid-template-columns:1fr}
  .sel{padding:12px 13px}
  .res-nav{flex-wrap:wrap}
  .res-nav .btn{flex:1;min-width:110px}
  .res-dots{order:3;width:100%}
  .res-sticky{position:fixed;left:0;right:0;bottom:0;border-radius:0;border-left:0;border-right:0;padding:10px 14px;z-index:20}
  .main{padding-bottom:96px}
  .bp-action .btn{width:100%}
  .report-modal{padding:0}
  .report-modal-box{border-radius:0;min-height:100vh;padding:12px}
  .report-toolbar{position:sticky;top:0;background:#fff;z-index:2;padding-bottom:10px}
  .rt-right{width:100%}
  .rt-right .btn{flex:1}
  .paper{padding:18px 14px}
}

@media(min-width:1025px){
  .cat-grid{grid-template-columns:repeat(3,1fr)}
  .res-page{max-width:960px}
  .q-stage{padding:26px 28px 30px;min-height:230px}
  .qs-text{font-size:21px}
}

/* 触控设备：去掉 hover 位移，避免粘滞 */
@media(hover:none){
  .sel:hover,.cat-card:hover,.sc-card:hover,.qopt:hover{transform:none}
}
