/* ============================================================
 * 蒙马象学习力 · 学习能力个性化诊断测评
 * 前端 H5 + 报告页样式
 * ============================================================ */

:root{
  --brand-1:#FFB25E;
  --brand-2:#FF7A45;
  --brand-3:#F0562B;
  --ink:#2A2E3A;
  --ink-2:#5B6273;
  --ink-3:#8B92A3;
  --line:#EEF0F5;
  --bg:#FFF8F2;
  --card:#FFFFFF;
  --ok:#2E9C8B;
  --warn:#F0A020;
  --bad:#D64545;
  --radius:20px;
  --radius-sm:14px;
  --shadow:0 10px 30px -12px rgba(180,110,60,.28);
  --shadow-sm:0 4px 16px -8px rgba(120,90,70,.25);
  --safe-b:env(safe-area-inset-bottom,0px);
}

*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;}
/* 必须放在最前：防止 display:flex/inline-flex 覆盖 hidden 属性 */
[hidden]{display:none !important;}
html,body{margin:0;padding:0;}
body{
  font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Hiragino Sans GB","Microsoft YaHei","Helvetica Neue",Arial,sans-serif;
  color:var(--ink);
  background:
    radial-gradient(1200px 600px at 10% -10%, #FFE9D6 0%, rgba(255,233,214,0) 60%),
    radial-gradient(900px 500px at 100% 0%, #FFE3EC 0%, rgba(255,227,236,0) 55%),
    var(--bg);
  min-height:100vh;line-height:1.6;-webkit-font-smoothing:antialiased;
}

.phone{display:flex;justify-content:center;min-height:100vh;}
.app{width:100%;max-width:480px;position:relative;min-height:100vh;overflow-x:hidden;background:transparent;}

/* ---------- 屏幕 ---------- */
.screen{display:none;flex-direction:column;min-height:100vh;padding:0 16px;}
.screen.is-active{display:flex;animation:fadeUp .38s cubic-bezier(.22,.8,.3,1);}
@keyframes fadeUp{from{opacity:0;transform:translateY(14px);}to{opacity:1;transform:none;}}
.spacer-bottom{height:110px;flex:0 0 auto;}

/* ---------- 卡片 ---------- */
.card{
  background:var(--card);border-radius:var(--radius);
  box-shadow:var(--shadow-sm);padding:16px 16px 18px;margin-bottom:14px;
  border:1px solid rgba(255,255,255,.7);
}
.card-head{display:flex;align-items:center;gap:8px;font-weight:700;font-size:15px;color:var(--ink);margin-bottom:10px;}
.card-head .dot{
  width:8px;height:8px;border-radius:50%;
  background:linear-gradient(135deg,var(--brand-1),var(--brand-2));
  box-shadow:0 0 0 4px rgba(255,122,69,.14);
}

/* ---------- 按钮 ---------- */
.btn{
  appearance:none;border:0;cursor:pointer;font-family:inherit;text-align:center;text-decoration:none;
  font-size:16px;font-weight:700;border-radius:999px;padding:14px 22px;
  transition:transform .12s ease,box-shadow .2s ease,opacity .2s;
  color:#fff;background:#ccc;display:inline-flex;align-items:center;justify-content:center;
}
.btn:active{transform:scale(.97);}
.btn:disabled{opacity:.42;cursor:not-allowed;transform:none;}
.btn-primary{background:linear-gradient(135deg,var(--brand-1),var(--brand-2) 55%,var(--brand-3));box-shadow:0 12px 24px -10px rgba(240,86,43,.6);}
.btn-ghost{background:#fff;color:var(--ink-2);border:1.5px solid var(--line);box-shadow:none;font-weight:600;}
.btn-skip{background:#FFF3E6;color:#D97706;border:1.5px dashed #FBC98A;font-weight:600;}
.btn-block{width:100%;display:flex;}

.icon-btn{
  appearance:none;border:0;background:#fff;width:38px;height:38px;border-radius:50%;
  font-size:18px;color:var(--ink);cursor:pointer;box-shadow:var(--shadow-sm);
  display:flex;align-items:center;justify-content:center;flex:0 0 auto;text-decoration:none;
}

/* ---------- 底部条 ---------- */
.sticky-bar{
  position:fixed;left:0;right:0;bottom:0;z-index:30;max-width:480px;margin:0 auto;
  padding:12px 16px calc(24px + var(--safe-b));
  background:linear-gradient(to top,#FFF8F2 62%,rgba(255,248,242,.86) 84%,rgba(255,248,242,0));
  display:flex;gap:10px;align-items:center;
}
.sticky-bar .btn{flex:1;}
.sticky-hint{position:absolute;left:0;right:0;bottom:calc(2px + var(--safe-b));text-align:center;font-size:11px;color:var(--ink-3);}
.result-bar .btn,.quiz-bar .btn{font-size:15px;padding:13px 12px;}

/* ============================================================
 * 首页
 * ============================================================ */
.hero{position:relative;padding:28px 4px 6px;overflow:hidden;}
.hero-glow{
  position:absolute;top:-90px;right:-70px;width:240px;height:240px;border-radius:50%;
  background:radial-gradient(circle at 30% 30%,rgba(255,178,94,.5),rgba(255,122,69,.06) 70%);
  filter:blur(6px);pointer-events:none;
}
.brand{display:flex;align-items:center;gap:10px;margin-bottom:22px;position:relative;}
.brand-logo{
  width:46px;height:46px;flex:0 0 auto;border-radius:13px;background:#fff;padding:4px;
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 8px 20px -8px rgba(120,80,60,.4),0 0 0 1px rgba(255,255,255,.9) inset;
}
.brand-logo img{width:100%;height:100%;object-fit:contain;display:block;}
.brand-name{font-size:17px;font-weight:800;letter-spacing:.5px;}
.brand-sub{font-size:9.5px;letter-spacing:2.4px;color:var(--ink-3);font-weight:600;}

.hero-title{font-size:34px;line-height:1.22;font-weight:900;margin:0 0 12px;letter-spacing:-.5px;position:relative;}
.hero-title span{
  background:linear-gradient(100deg,var(--brand-3),var(--brand-2) 45%,var(--brand-1));
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.hero-desc{font-size:14px;color:var(--ink-2);margin:0 0 16px;position:relative;}

.chips{display:flex;gap:8px;flex-wrap:wrap;position:relative;}
.chip{
  font-size:12.5px;font-weight:600;color:#B4552A;background:#FFF1E5;
  border:1px solid #FFE0C7;padding:6px 12px;border-radius:999px;
}

.intro-card{margin-top:18px;}
.key-list{margin:0;padding-left:2px;list-style:none;}
.key-list li{position:relative;padding-left:20px;font-size:13.5px;color:var(--ink-2);margin-bottom:9px;}
.key-list li:last-child{margin-bottom:0;}
.key-list li::before{
  content:"";position:absolute;left:2px;top:9px;width:7px;height:7px;border-radius:50%;
  background:linear-gradient(135deg,var(--brand-1),var(--brand-2));
}
.key-list b{color:var(--brand-3);}
.mini-rules p{margin:0 0 8px;font-size:13px;color:var(--ink-2);}
.lookup-link{margin:10px 0 0 !important;font-size:13px;}
.lookup-link a{color:var(--brand-3);font-weight:700;text-decoration:none;}

/* ============================================================
 * 顶栏
 * ============================================================ */
.topbar{
  display:flex;align-items:center;gap:12px;padding:16px 0 12px;
  position:sticky;top:0;z-index:20;
  background:linear-gradient(to bottom,#FFF8F2 70%,rgba(255,248,242,0));
}
.topbar-title{font-size:16px;font-weight:700;flex:1;text-align:center;}
.topbar-right{width:38px;flex:0 0 auto;}

/* ============================================================
 * 信息填写
 * ============================================================ */
.form-card{padding:20px 16px;}
.field{margin-bottom:18px;}
.field:last-child{margin-bottom:0;}
.field label{display:block;font-size:13.5px;font-weight:700;color:var(--ink);margin-bottom:8px;}
.field .req{color:var(--brand-3);}
.field input,.field select{
  width:100%;font-family:inherit;font-size:15px;color:var(--ink);
  padding:13px 14px;border-radius:var(--radius-sm);
  border:1.5px solid var(--line);background:#FCFCFD;outline:none;
  transition:border-color .2s,box-shadow .2s,background .2s;appearance:none;
}
.field select{
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%238B92A3' stroke-width='3'><path d='M6 9l6 6 6-6'/></svg>");
  background-repeat:no-repeat;background-position:right 14px center;padding-right:38px;
}
.field input:focus,.field select:focus{border-color:var(--brand-1);background:#fff;box-shadow:0 0 0 4px rgba(255,178,94,.18);}
.note-card{background:#FFFAF2;border:1px solid #FFE7CC;}
.note-card p{margin:0;font-size:13px;color:#9A6B2F;}
.note-card p b{color:#C2410C;}

/* ============================================================
 * 答题
 * ============================================================ */
.progress-wrap{flex:1;}
.progress-meta{display:flex;justify-content:space-between;font-size:12px;color:var(--ink-3);font-weight:600;margin-bottom:6px;}
.progress-track{height:8px;border-radius:999px;background:#F1E7DF;overflow:hidden;}
.progress-fill{height:100%;width:0;border-radius:999px;background:linear-gradient(90deg,var(--brand-1),var(--brand-2));transition:width .35s cubic-bezier(.22,.8,.3,1);}

.quiz-body{padding-top:6px;}
.q-card{background:#fff;border-radius:var(--radius);padding:24px 20px 22px;box-shadow:var(--shadow);position:relative;margin-bottom:16px;overflow:hidden;}
.q-card::after{content:"";position:absolute;right:-30px;top:-30px;width:110px;height:110px;border-radius:50%;background:radial-gradient(circle,rgba(255,178,94,.22),rgba(255,178,94,0) 70%);}
.q-index{
  width:34px;height:34px;border-radius:12px;display:flex;align-items:center;justify-content:center;
  font-weight:900;font-size:16px;color:#fff;margin-bottom:14px;
  background:linear-gradient(135deg,var(--brand-1),var(--brand-2));
  box-shadow:0 8px 18px -8px rgba(240,86,43,.7);
}
.q-text{font-size:17.5px;font-weight:700;line-height:1.62;color:var(--ink);position:relative;}
.q-hint{margin-top:14px;font-size:12.5px;color:#9A6B2F;background:#FFF7EA;border-radius:10px;padding:9px 12px;border:1px dashed #F5D5A8;}

.options{display:flex;flex-direction:column;gap:10px;}
.opt{
  display:flex;align-items:center;gap:12px;background:#fff;border:1.5px solid var(--line);
  border-radius:16px;padding:14px 16px;cursor:pointer;font-size:15px;font-weight:600;color:var(--ink);
  transition:all .18s ease;box-shadow:0 2px 8px -6px rgba(120,90,70,.3);text-align:left;width:100%;font-family:inherit;
}
.opt .radio{width:21px;height:21px;border-radius:50%;border:2px solid #D8DCE6;flex:0 0 auto;display:flex;align-items:center;justify-content:center;transition:all .18s;}
.opt .radio::after{content:"";width:9px;height:9px;border-radius:50%;background:#fff;transform:scale(0);transition:transform .18s;}
.opt:active{transform:scale(.985);}
.opt.is-selected{border-color:var(--brand-2);background:linear-gradient(135deg,#FFF6EF,#FFF1E7);box-shadow:0 10px 22px -12px rgba(240,86,43,.65);}
.opt.is-selected .radio{border-color:var(--brand-2);background:var(--brand-2);}
.opt.is-selected .radio::after{transform:scale(1);}
.quiz-bar #btnPrev{flex:0 0 96px;}
.quiz-bar #btnSkip{flex:0 0 auto;font-size:13px;padding:13px 12px;}
.quiz-bar #btnNext{flex:1;}

/* ============================================================
 * 报告页
 * ============================================================ */
.report-body .app.report-app{display:block;padding:0 16px;}
.report-hero{text-align:center;padding:18px 8px 14px;}
.report-brand{font-size:11.5px;letter-spacing:.6px;color:var(--ink-3);font-weight:700;margin-bottom:10px;
  display:flex;align-items:center;justify-content:center;gap:6px;}
.report-brand img{height:22px;width:auto;display:block;flex:0 0 auto;}
.report-name{font-size:24px;font-weight:900;letter-spacing:.5px;}
.report-meta{font-size:12.5px;color:var(--ink-3);margin-top:5px;}
.report-code{margin-top:10px;font-size:11.5px;color:var(--ink-3);}
.report-code b{
  display:inline-block;margin-left:4px;padding:2px 10px;border-radius:8px;
  background:#FFF1E5;color:#B4552A;letter-spacing:2px;font-size:12.5px;
}

.score-card{text-align:center;padding:22px 16px;position:relative;overflow:hidden;}
.score-card::before{content:"";position:absolute;inset:0 0 auto 0;height:4px;background:linear-gradient(90deg,var(--brand-1),var(--brand-2),var(--brand-3));}
.score-label{font-size:13px;color:var(--ink-3);font-weight:600;}
.score-value{
  font-size:56px;font-weight:900;line-height:1.1;letter-spacing:-2px;
  background:linear-gradient(120deg,var(--brand-3),var(--brand-2) 50%,var(--brand-1));
  -webkit-background-clip:text;background-clip:text;color:transparent;margin:4px 0 2px;
}
.score-value em{font-size:20px;font-style:normal;font-weight:800;margin-left:4px;-webkit-text-fill-color:var(--ink-2);}
.score-range{font-size:12px;color:var(--ink-3);}

.score-axis{position:relative;margin:20px 6px 6px;}
.axis-zones{display:flex;height:10px;border-radius:999px;overflow:hidden;}
.zone{height:100%;}
.z1{background:#8C9BB5;}.z2{background:#5FC6B6;}.z3{background:#FFA45B;}.z4{background:#FF7A6B;}
.axis-marker{
  position:absolute;top:-7px;width:4px;height:24px;border-radius:4px;background:var(--ink);
  transform:translateX(-2px);box-shadow:0 0 0 3px rgba(42,46,58,.12);
}
.axis-labels{position:relative;height:17px;margin-top:5px;}
.axis-labels span{position:absolute;top:0;transform:translateX(-50%);font-size:10.5px;color:var(--ink-3);font-weight:600;white-space:nowrap;}
.axis-labels span:first-child{transform:translateX(0);}
.axis-labels span:last-child{transform:translateX(-100%);}

.type-badge{display:flex;align-items:center;gap:14px;margin-top:20px;padding:14px;border-radius:16px;background:#FAFBFD;border:1px solid var(--line);text-align:left;}
.type-emoji{width:56px;height:56px;border-radius:16px;flex:0 0 auto;display:flex;align-items:center;justify-content:center;font-size:30px;background:#fff;box-shadow:var(--shadow-sm);}
.type-name{font-size:19px;font-weight:900;}
.type-tagline{font-size:12.5px;color:var(--ink-2);margin-top:2px;}
.type-desc{font-size:13.5px;color:var(--ink-2);text-align:left;margin:14px 0 0;line-height:1.72;}

.radar-wrap{display:flex;justify-content:center;padding:4px 0 8px;}
.radar-wrap svg,.radar-svg{width:100%;max-width:400px;height:auto;overflow:visible;}

.dim-list{display:flex;flex-direction:column;gap:12px;margin-top:4px;}
.dim-item{display:flex;flex-direction:column;gap:6px;}
.dim-top{display:flex;align-items:center;gap:8px;font-size:13.5px;font-weight:700;}
.dim-top .d-icon{font-size:15px;}
.dim-top .d-name{flex:1;}
.dim-top .d-score{font-size:12px;color:var(--ink-3);font-weight:700;}
.dim-bar{height:8px;border-radius:999px;background:#F1F3F8;overflow:hidden;}
.dim-bar span{
  display:block;height:100%;border-radius:999px;
  transform-origin:left center;
  animation:barGrow .85s cubic-bezier(.22,.8,.3,1) both;
}
@keyframes barGrow{from{transform:scaleX(0);}to{transform:scaleX(1);}}
.dim-desc{font-size:11.5px;color:var(--ink-3);}
.fine-print{font-size:11px;color:var(--ink-3);margin-top:12px;line-height:1.6;}

.advice-block{margin-bottom:16px;}
.advice-block:last-child{margin-bottom:0;}
.advice-title{
  font-size:13px;font-weight:800;color:var(--brand-3);margin-bottom:8px;
  display:inline-block;padding:3px 10px;background:#FFF1E7;border-radius:8px;
}
.advice-list{margin:0;padding:0;list-style:none;}
.advice-list li{position:relative;padding-left:22px;font-size:13.5px;color:var(--ink-2);margin-bottom:9px;line-height:1.68;}
.advice-list li:last-child{margin-bottom:0;}
.advice-list li::before{content:"✓";position:absolute;left:0;top:0;color:var(--ok);font-weight:900;font-size:12px;}
.score-note{font-size:13px;color:var(--ink-2);margin:0;line-height:1.75;}

.review-toggle{
  width:100%;background:none;border:0;font-family:inherit;font-size:14.5px;font-weight:700;
  color:var(--ink);display:flex;justify-content:space-between;align-items:center;cursor:pointer;padding:2px;
}
.review-toggle .caret{color:var(--ink-3);transition:transform .25s;}
.review-toggle.open .caret{transform:rotate(180deg);}
.review-list{margin-top:14px;border-top:1px dashed var(--line);padding-top:12px;display:flex;flex-direction:column;gap:10px;max-height:420px;overflow-y:auto;}
.rev-item{font-size:12.5px;color:var(--ink-2);border-bottom:1px solid #F7F8FA;padding-bottom:9px;}
.rev-item:last-child{border-bottom:0;padding-bottom:0;}
.rev-q{font-weight:700;color:var(--ink);margin-bottom:3px;line-height:1.6;}
.rev-a{display:flex;justify-content:space-between;gap:8px;}
.rev-a .p{font-weight:700;}
.p-pos{color:var(--ok);}.p-neg{color:var(--bad);}.p-zero{color:var(--ink-3);}

.sign-card{background:#FCFCFD;}
.sign-row{display:flex;align-items:flex-end;font-size:13.5px;color:var(--ink-2);margin-bottom:14px;gap:8px;}
.sign-row span:first-child{flex:0 0 auto;font-weight:700;color:var(--ink);}
.sign-line{flex:1;border-bottom:1px solid #DDE1E8;height:20px;min-width:60px;}
.sign-note{font-size:11.5px;color:var(--ink-3);line-height:1.65;}

/* ---------- 查询码弹层 ---------- */
.modal{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;padding:24px;}
.modal[hidden]{display:none;}
.modal-mask{position:absolute;inset:0;background:rgba(30,25,22,.45);backdrop-filter:blur(2px);}
.modal-card{
  position:relative;background:#fff;border-radius:20px;padding:24px 22px;width:100%;max-width:360px;
  box-shadow:0 30px 70px -24px rgba(60,40,30,.5);animation:fadeUp .28s ease;
}
.modal-card h3{margin:0 0 6px;font-size:18px;}
.modal-card p{margin:0 0 16px;font-size:13px;color:var(--ink-3);}
.modal-card input{
  width:100%;padding:13px 14px;border:1.5px solid var(--line);border-radius:12px;
  font-size:16px;letter-spacing:3px;text-align:center;font-family:inherit;text-transform:uppercase;
  background:#FCFCFD;outline:none;
}
.modal-card input:focus{border-color:var(--brand-1);background:#fff;box-shadow:0 0 0 4px rgba(255,178,94,.18);}
.modal-actions{display:flex;gap:10px;margin-top:18px;}
.modal-actions .btn{flex:1;font-size:15px;padding:12px;}

/* ---------- 提交遮罩 ---------- */
.submitting{position:fixed;inset:0;z-index:120;display:flex;align-items:center;justify-content:center;background:rgba(255,248,242,.9);backdrop-filter:blur(3px);}
.submitting[hidden]{display:none;}
.submitting-box{text-align:center;}
.submitting-box p{margin:16px 0 0;font-size:14px;color:var(--ink-2);font-weight:600;}
.spinner{
  width:44px;height:44px;margin:0 auto;border-radius:50%;
  border:4px solid #FFE0C7;border-top-color:var(--brand-2);
  animation:spin .8s linear infinite;
}
@keyframes spin{to{transform:rotate(360deg);}}

/* ---------- 404 ---------- */
.notfound{text-align:center;padding:90px 12px 40px;}
.nf-emoji{font-size:46px;margin-bottom:12px;}
.nf-emoji img{width:80px;height:auto;display:block;margin:0 auto;}
.notfound h2{font-size:20px;margin:0 0 8px;}
.notfound p{font-size:13.5px;color:var(--ink-3);margin:0 0 22px;}
.nf-form{display:flex;gap:8px;max-width:340px;margin:0 auto;}
.nf-form input{
  flex:1;padding:12px 14px;border:1.5px solid var(--line);border-radius:12px;font-size:15px;
  font-family:inherit;text-transform:uppercase;letter-spacing:2px;text-align:center;outline:none;background:#fff;
}
.nf-form input:focus{border-color:var(--brand-1);box-shadow:0 0 0 4px rgba(255,178,94,.18);}
.nf-form .btn{padding:12px 22px;font-size:15px;}
.nf-link{margin-top:22px !important;}
.nf-link a{color:var(--brand-3);font-weight:700;text-decoration:none;font-size:13.5px;}

/* ---------- Toast ---------- */
.toast{
  position:fixed;left:50%;bottom:120px;transform:translate(-50%,16px);
  background:rgba(42,46,58,.92);color:#fff;font-size:13.5px;font-weight:600;
  padding:11px 20px;border-radius:999px;opacity:0;pointer-events:none;
  transition:opacity .28s,transform .28s;z-index:99;max-width:80vw;text-align:center;
}
.toast.show{opacity:1;transform:translate(-50%,0);}

/* ---------- 打印 ---------- */
@media print{
  body{background:#fff;}
  .phone{display:block;}
  .app{max-width:none;}
  .topbar,.sticky-bar,.toast,.modal,.submitting{display:none !important;}
  .screen:not(.is-active){display:none !important;}
  .report-app{padding:0 !important;}
  .card{box-shadow:none;border:1px solid #E6E8EE;break-inside:avoid;}
  .spacer-bottom{display:none;}
  .review-list[hidden]{display:flex !important;}
  .hero-glow,.q-card::after{display:none;}
  .dim-bar span{animation:none !important;}
  @page{margin:12mm;}
}

/* ============================================================
 * 多量表补充样式
 * ============================================================ */

/* 量表标识 */
.scale-tag{
  display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:800;
  padding:6px 14px;border-radius:999px;margin-bottom:14px;position:relative;
}

/* 机构专属入口的所属机构标签 */
.org-tag{
  display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:700;
  padding:5px 13px;border-radius:999px;margin:0 0 12px;
  background:rgba(255,255,255,.82);color:var(--ink-2);
  border:1px solid rgba(0,0,0,.06);backdrop-filter:blur(4px);
}
.org-tag::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--brand-3);}

/* 表单辅助 */
.hint-inline{font-weight:600;color:var(--ink-3);font-size:11.5px;margin-left:4px;}
.field-hint{margin:7px 2px 0;font-size:11.5px;color:var(--ink-3);line-height:1.6;}

/* 是 / 否 两选项：并排大按钮 */
.options-yesno{flex-direction:row;gap:12px;}
.options-yesno .opt{
  flex:1;justify-content:center;padding:22px 10px;font-size:17px;font-weight:800;border-radius:18px;
}
.options-yesno .opt .radio{display:none;}

/* 学习情况问卷 */
.survey-opts{display:flex;flex-wrap:wrap;gap:8px;}
.survey-opt{
  appearance:none;font-family:inherit;cursor:pointer;font-size:13px;font-weight:600;
  padding:9px 14px;border-radius:999px;border:1.5px solid var(--line);background:#FCFCFD;color:var(--ink-2);
  transition:all .16s ease;
}
.survey-opt.is-selected{
  border-color:var(--brand-2);background:linear-gradient(135deg,#FFF6EF,#FFF1E7);
  color:var(--brand-3);box-shadow:0 8px 18px -12px rgba(240,86,43,.7);
}
.field textarea{
  width:100%;font-family:inherit;font-size:15px;color:var(--ink);line-height:1.7;
  padding:13px 14px;border-radius:var(--radius-sm);border:1.5px solid var(--line);
  background:#FCFCFD;outline:none;resize:vertical;transition:border-color .2s,box-shadow .2s;
}
.field textarea:focus{border-color:var(--brand-1);background:#fff;box-shadow:0 0 0 4px rgba(255,178,94,.18);}

/* ============================================================
 * 测评中心（首页）
 * ============================================================ */
.hub-hero{padding:26px 4px 4px;text-align:left;}
.hub-title{font-size:28px;font-weight:900;line-height:1.3;margin:0 0 8px;letter-spacing:-.4px;}
.hub-desc{font-size:13.5px;color:var(--ink-2);margin:0;}
.hub-list{display:flex;flex-direction:column;gap:14px;margin-top:16px;}
.hub-card{
  display:block;text-decoration:none;color:inherit;background:#fff;border-radius:var(--radius);
  padding:18px 18px 16px;box-shadow:var(--shadow-sm);border:1px solid rgba(255,255,255,.8);
  position:relative;overflow:hidden;transition:transform .16s ease,box-shadow .2s;
}
.hub-card:active{transform:scale(.985);}
.hub-card::before{content:"";position:absolute;left:0;top:0;bottom:0;width:5px;background:var(--hub-color,#FF7A45);}
.hub-top{display:flex;align-items:flex-start;gap:12px;}
.hub-emoji{
  width:48px;height:48px;border-radius:15px;flex:0 0 auto;display:flex;align-items:center;justify-content:center;
  font-size:25px;background:var(--hub-tint,#FFF3EA);
}
.hub-name{font-size:16.5px;font-weight:900;line-height:1.35;}
.hub-sub{font-size:12px;color:var(--ink-3);margin-top:3px;font-weight:600;}
.hub-body{font-size:12.5px;color:var(--ink-2);margin:12px 0 0;line-height:1.68;}
.hub-meta{display:flex;flex-wrap:wrap;gap:7px;margin-top:12px;}
.hub-pill{
  font-size:11px;font-weight:700;padding:4px 10px;border-radius:999px;
  background:#F4F6FA;color:var(--ink-2);
}
.hub-pill.done{background:#EAF9F5;color:#23877A;}
.hub-go{
  display:flex;align-items:center;justify-content:space-between;margin-top:14px;
  font-size:13px;font-weight:800;color:var(--hub-color,#F0562B);
}

/* 档案条 */
.archive-bar{
  display:flex;align-items:center;gap:10px;background:#fff;border-radius:16px;
  padding:12px 14px;box-shadow:var(--shadow-sm);margin-top:14px;border:1px dashed #E4E8F0;
}
.archive-bar .ab-ico{font-size:18px;}
.archive-bar .ab-main{flex:1;font-size:12.5px;color:var(--ink-2);line-height:1.5;}
.archive-bar .ab-main b{color:var(--ink);letter-spacing:1.4px;}
.archive-bar .ab-link{font-size:12.5px;font-weight:800;color:var(--brand-3);text-decoration:none;}

/* ============================================================
 * 报告：档案串联
 * ============================================================ */
.archive-card{background:linear-gradient(160deg,#FFFFFF,#FBFCFE);}
.archive-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px;}
.archive-code{
  font-size:11.5px;font-weight:700;color:var(--ink-3);
  background:#F4F6FA;padding:4px 10px;border-radius:8px;letter-spacing:1.6px;
}
.scale-track{display:flex;flex-direction:column;gap:10px;}
.scale-row{
  display:flex;align-items:center;gap:10px;padding:11px 12px;border-radius:14px;
  background:#FBFCFE;border:1px solid var(--line);text-decoration:none;color:inherit;
}
.scale-row.is-current{border-color:var(--brand-2);background:linear-gradient(135deg,#FFF8F3,#FFF3EA);}
.scale-row .sr-ico{font-size:18px;flex:0 0 auto;}
.scale-row .sr-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;}
.scale-row .sr-name{display:block;font-size:13px;font-weight:800;color:var(--ink);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.scale-row .sr-sub{display:block;font-size:11.5px;color:var(--ink-3);margin-top:0;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.scale-row .sr-score{font-size:15px;font-weight:900;color:var(--brand-3);flex:0 0 auto;}
.scale-row .sr-state{font-size:11px;font-weight:700;color:var(--ink-3);flex:0 0 auto;}
.scale-row .sr-go{font-size:11.5px;font-weight:800;color:var(--brand-3);flex:0 0 auto;}
.scale-row.disabled{opacity:.62;}

/* 等级徽章（家长版 / 学生版） */
.level-badge{
  display:flex;align-items:center;gap:14px;margin-top:20px;padding:15px;border-radius:16px;
  text-align:left;color:#fff;
}
.level-badge .lb-emoji{
  width:54px;height:54px;border-radius:16px;flex:0 0 auto;display:flex;align-items:center;justify-content:center;
  font-size:28px;background:rgba(255,255,255,.22);
}
.level-badge .lb-name{font-size:19px;font-weight:900;}
.level-badge .lb-tag{font-size:12.5px;color:rgba(255,255,255,.92);margin-top:2px;}
.level-summary{font-size:13.5px;color:var(--ink-2);text-align:left;margin:14px 0 0;line-height:1.74;}

/* 得分率轴（0-40） */
.score-axis.simple .axis-zones{height:12px;}
.score-axis.simple .zone{border-radius:999px;}

/* 逐题解析 */
.flag-item{
  border-left:3px solid #F0562B;padding:2px 0 2px 12px;margin-bottom:16px;
}
.flag-item:last-child{margin-bottom:0;}
.flag-q{font-size:13.5px;font-weight:800;color:var(--ink);line-height:1.62;}
.flag-tag{
  display:inline-block;font-size:10.5px;font-weight:800;padding:2px 8px;border-radius:6px;
  background:#FFF1E7;color:#C2410C;margin-left:6px;vertical-align:1px;
}
.flag-analysis{font-size:13px;color:var(--ink-2);margin:7px 0 0;line-height:1.76;}
.flag-cause{font-size:12.5px;color:var(--ink-2);margin:8px 0 0;line-height:1.7;}
.flag-cause b{color:#C2410C;font-weight:800;}
.flag-advice{
  font-size:12.5px;color:#0F766E;margin:8px 0 0;line-height:1.7;
  background:#F0FBF7;border-radius:9px;padding:8px 11px;
}
.flag-advice b{font-weight:800;}

.ok-item{
  display:flex;gap:9px;font-size:12.5px;color:var(--ink-2);line-height:1.66;
  padding:8px 0;border-bottom:1px dashed #F0F2F6;
}
.ok-item:last-child{border-bottom:0;}
.ok-item .oi-check{color:var(--ok);font-weight:900;flex:0 0 auto;}

/* 维度矩阵（学生版） */
.dim-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:4px;}
.dim-cell{
  border-radius:13px;padding:11px 12px;background:#FBFCFE;border:1px solid var(--line);
}
.dim-cell .dc-top{display:flex;align-items:center;gap:6px;font-size:12.5px;font-weight:800;color:var(--ink);}
.dim-cell .dc-score{font-size:19px;font-weight:900;margin-top:5px;line-height:1.1;}
.dim-cell .dc-score small{font-size:11px;font-weight:700;color:var(--ink-3);margin-left:2px;}
.dim-cell .dc-bar{height:6px;border-radius:999px;background:#EDF0F6;margin-top:8px;overflow:hidden;}
.dim-cell .dc-bar i{display:block;height:100%;border-radius:999px;}
.dim-cell.is-weak{background:#FFF8F4;border-color:#FBD9C4;}

/* 附加问卷回显 */
.extra-list{display:flex;flex-direction:column;gap:9px;}
.extra-row{display:flex;gap:10px;font-size:13px;color:var(--ink-2);line-height:1.66;}
.extra-row .ek{flex:0 0 96px;color:var(--ink-3);font-weight:700;font-size:12.5px;}
.extra-row .ev{flex:1;color:var(--ink);white-space:pre-wrap;}

/* 报告页量表切换 */
.report-switch{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px;justify-content:center;}
.report-switch a{
  font-size:11.5px;font-weight:700;padding:5px 11px;border-radius:999px;
  background:#fff;border:1px solid var(--line);color:var(--ink-2);text-decoration:none;
}
.report-switch a.on{background:var(--brand-3);border-color:var(--brand-3);color:#fff;}

@media print{
  .scale-row,.hub-card{break-inside:avoid;}
}

/* ---------- 桌面 ---------- */
@media(min-width:560px){
  .phone{padding:24px 0;}
  .app{
    border-radius:28px;overflow:hidden;
    box-shadow:0 30px 80px -30px rgba(120,80,60,.45);
    border:1px solid #F0E6DE;background:var(--bg);
    min-height:calc(100vh - 48px);
  }
  .sticky-bar{bottom:24px;border-radius:0 0 28px 28px;}
}

