/* ====== 学管师试用期发展系统 · 样式 ====== */
* { box-sizing: border-box; }
:root{
  --blue:#2f6fed; --blue-d:#1f55c4; --orange:#e8833a; --green:#27a567;
  --purple:#9b59b6; --pink:#e74c6f; --ink:#222; --muted:#8a909a;
  --line:#eaecef; --bg:#f5f7fb; --card:#fff; --soft:#f0f4fb;
}
body{margin:0;font-family:-apple-system,"PingFang SC","Microsoft YaHei",Segoe UI,Roboto,sans-serif;
  background:var(--bg);color:var(--ink);font-size:14px;line-height:1.6;}
a{color:var(--blue);text-decoration:none;}
.wrap{max-width:1040px;margin:0 auto;padding:18px 20px 60px;}
.page-title{font-size:20px;margin:6px 0 14px;font-weight:700;}

/* 顶栏 — v2 导航 */
.nav-v2{display:flex;align-items:center;gap:6px;background:#fff;border-bottom:1px solid var(--line);
  padding:0 16px;position:sticky;top:0;z-index:50;height:52px;box-shadow:0 1px 2px rgba(0,0,0,.03);}
.nv-brand{font-weight:600;font-size:14px;color:var(--blue);text-decoration:none;margin-right:8px;white-space:nowrap;flex-shrink:0;}
.nv-links{display:flex;gap:2px;flex:1;overflow-x:auto;scrollbar-width:none;}
.nv-links a{display:flex;align-items:center;gap:4px;padding:6px 10px;border-radius:8px;font-size:12.5px;color:#555;text-decoration:none;white-space:nowrap;transition:all .12s;flex-shrink:0;}
.nv-links a:hover{background:#f3f4f6;color:#111;}
.nv-links a.nv-on{background:#eef2ff;color:#4338ca;font-weight:500;}
.nv-ico{font-size:14px;line-height:1;}
.nb-ok{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:50%;background:#22c55e;color:#fff;font-size:9px;font-weight:700;}
.nb-warn{font-size:11px;background:#fef3c7;color:#92400e;padding:1px 6px;border-radius:10px;font-weight:500;}
.nb-muted{font-size:11px;color:#9ca3af;padding:1px 4px;}
.nv-user{font-size:12.5px;color:var(--muted);display:flex;align-items:center;gap:4px;white-space:nowrap;margin-left:8px;flex-shrink:0;}
.nv-logout{font-size:12px;color:#9ca3af;text-decoration:none;padding:2px 6px;border-radius:4px;}
.nv-logout:hover{background:#fee2e2;color:#dc2626;}
/* 页面统一 */
.wrap.v2{padding:20px 24px;max-width:960px;margin:0 auto;}
.pg-title{font-size:15px;font-weight:500;margin-bottom:16px;color:#374151;}
/* 窄屏适配 */
@media(max-width:640px){
  .nav-v2{height:auto;padding:6px 10px;flex-wrap:wrap;gap:4px;}
  .nv-brand{font-size:13px;}
  .nv-links a{font-size:11.5px;padding:4px 8px;}
  .nv-user{font-size:11px;margin-left:0;width:100%;justify-content:flex-end;border-top:1px solid #f3f4f6;padding-top:4px;margin-top:2px;}
  .wrap.v2{padding:12px;}
}

/* 按钮 */
.btn{background:var(--blue);color:#fff;border:none;padding:10px 18px;border-radius:8px;cursor:pointer;
  font-size:14px;font-weight:600;transition:.15s;}
.btn:hover{background:var(--blue-d);}
.btn.ghost{background:#fff;color:var(--blue);border:1px solid var(--blue);}
.btn.sm{padding:6px 12px;font-size:13px;}
.btn:disabled{opacity:.5;cursor:not-allowed;}

/* 卡片/栅格 */
.card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:18px 20px;margin:14px 0;
  box-shadow:0 2px 8px rgba(30,50,90,.04);}
.card h3{margin:0 0 12px;font-size:16px;}
.card h4{margin:14px 0 6px;font-size:14.5px;color:var(--blue);}
.muted{color:var(--muted);font-size:13px;}
.sm{font-size:12px;}
.home-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
@media(max-width:760px){.home-grid{grid-template-columns:1fr;}}

/* 统计卡 */
.stat-row{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;}
@media(max-width:760px){.stat-row{grid-template-columns:1fr 1fr;}}
.stat-card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:16px;text-align:center;
  box-shadow:0 2px 8px rgba(30,50,90,.04);transition:.15s;}
.stat-card:hover{transform:translateY(-2px);border-color:var(--blue);}
.stat-card .num{font-size:26px;font-weight:800;color:var(--blue);}
.stat-card .tt{font-weight:700;margin-top:2px;}
.stat-card .ss{color:var(--muted);font-size:12px;}

/* 模块卡 */
/* 微信模拟入口 */
.wxsim-entry{display:flex;align-items:center;gap:12px;background:linear-gradient(135deg,#07c160 0%,#06ad56 100%);
  color:#fff;text-decoration:none;border-radius:14px;padding:14px 16px;margin-bottom:14px;box-shadow:0 2px 10px rgba(7,193,96,.25);}
.wxsim-entry .wxsim-ico{font-size:28px;}
.wxsim-entry .wxsim-txt{flex:1;color:#fff;line-height:1.4;}
.wxsim-entry .wxsim-txt b{font-size:16px;color:#fff;}
.wxsim-entry .wxsim-txt .muted{color:rgba(255,255,255,.85);}
.wxsim-entry .wxsim-arrow{font-size:22px;color:#fff;}
.mod-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;}
@media(max-width:760px){.mod-grid{grid-template-columns:1fr;}}
.mod-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px;display:block;
  box-shadow:0 2px 8px rgba(30,50,90,.04);transition:.15s;}
.mod-card:hover{transform:translateY(-2px);border-color:var(--blue);}
.mc-tag{display:inline-block;font-size:11.5px;background:var(--soft);color:var(--blue);padding:2px 9px;border-radius:20px;margin-bottom:8px;}
.mc-tag.tag-comm{background:#fdeee2;color:var(--orange);}
.mc-tag.tag-know{background:#e4f5ec;color:var(--green);}
.mc-title{font-weight:700;font-size:15px;margin-bottom:10px;min-height:42px;}
.mc-foot{display:flex;align-items:center;gap:8px;justify-content:space-between;}

.badge{font-size:12px;padding:2px 9px;border-radius:20px;background:var(--soft);color:#666;}
.badge.ok{background:#e4f5ec;color:var(--green);}

/* 步骤/列表 */
.steps{margin:0;padding-left:0;list-style:none;}
.steps li{padding:9px 0 9px 34px;position:relative;border-bottom:1px dashed var(--line);}
.step-no{position:absolute;left:0;top:9px;width:22px;height:22px;border-radius:50%;background:var(--blue);color:#fff;
  font-size:12px;display:flex;align-items:center;justify-content:center;font-weight:700;}

/* 闯关/测验 选项 */
.chal-q{font-weight:600;margin:10px 0;}
.opts{display:flex;flex-direction:column;gap:8px;margin:8px 0;}
.opt{text-align:left;background:#fff;border:1px solid var(--line);border-radius:10px;padding:10px 14px;cursor:pointer;
  font-size:14px;transition:.12s;color:var(--ink);}
.opt:hover:not(:disabled){border-color:var(--blue);background:var(--soft);}
.opt.right{border-color:var(--green);background:#e4f5ec;color:#1c7a4d;font-weight:600;}
.opt.wrong{border-color:var(--pink);background:#fde9ef;color:#c33b63;}
#chalFB,#turnFB,#quizFB{margin-top:10px;font-size:13.5px;}

/* 排序题 */
.order-cols{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
@media(max-width:680px){.order-cols{grid-template-columns:1fr;}}
.src-list,.ans-list{display:flex;flex-direction:column;gap:7px;min-height:40px;}
.src-list .opt{background:var(--soft);}
.ans-list .opt{background:#fff;}
.ans-item{background:#fff;border:1px solid var(--line);border-radius:8px;padding:8px 12px;font-size:13.5px;
  display:flex;align-items:center;justify-content:space-between;}
.ans-item .x{cursor:pointer;color:var(--pink);font-weight:700;}

/* 对话模拟 */
.sim-card .sim-bg{background:var(--soft);border-radius:10px;padding:12px 14px;font-size:13.5px;margin-bottom:10px;}
.sim-goal{background:#fff7ef;border:1px solid #ffe2c6;border-radius:10px;padding:10px 14px;font-size:13.5px;margin-bottom:12px;}
.sim-box{display:flex;flex-direction:column;gap:10px;min-height:30px;}
.bubble{max-width:82%;padding:10px 14px;border-radius:14px;font-size:14px;}
.bubble.other{background:#eef2f8;align-self:flex-start;border-top-left-radius:4px;}
.bubble.other .who{display:block;font-size:11.5px;color:var(--muted);margin-bottom:3px;}
.bubble.me-q{align-self:flex-start;color:var(--blue);font-weight:600;padding-left:0;}
.sim-end{margin-top:12px;padding:12px 14px;background:#e4f5ec;border-radius:10px;font-size:15px;font-weight:700;color:#1c7a4d;}
.sim-fb{margin-top:8px;color:#555;font-size:13.5px;}

/* 知识 */
.kn-sec{margin-bottom:6px;}
.kn-sec ul{margin:4px 0;padding-left:20px;}
.kn-sec li{margin:3px 0;}
.quiz{border-top:1px dashed var(--line);padding:12px 0;}

/* 雷达/维度图例 */
.dim-legend{display:flex;flex-direction:column;gap:6px;margin-top:8px;}
.dl{font-size:13px;color:#444;}
.dl .dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:6px;vertical-align:middle;}
.dl b{color:var(--ink);}

/* 里程碑 */
.ms-wrap{display:flex;flex-direction:column;gap:16px;}
.ms-head{display:flex;justify-content:space-between;font-size:14px;}
.ms-pct{color:var(--blue);font-weight:700;}
.bar{height:9px;background:var(--soft);border-radius:6px;overflow:hidden;margin:6px 0 8px;}
.bar i{display:block;height:100%;background:linear-gradient(90deg,var(--blue),var(--orange));}
.ms-items{list-style:none;margin:0;padding:0;}
.ms-items li{font-size:13px;color:#444;padding:3px 0;display:flex;gap:8px;align-items:baseline;}
.ms-tag{font-size:11px;background:var(--soft);color:#666;padding:1px 7px;border-radius:5px;white-space:nowrap;}

/* 事件列表 */
.ev-list{list-style:none;margin:0;padding:0;}
.ev-list li{font-size:13px;padding:7px 0;border-bottom:1px dashed var(--line);display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.ev-mod{font-size:11px;padding:1px 7px;border-radius:5px;background:var(--soft);color:#666;}
.ev-mod.mod-a{background:#eaf0fe;color:var(--blue);}
.ev-mod.mod-b{background:#fdeee2;color:var(--orange);}
.ev-mod.mod-c{background:#e4f5ec;color:var(--green);}
.ev-mod.mod-log{background:#f3eafb;color:var(--purple);}
.ev-score{color:var(--green);font-weight:600;}
.ev-time{color:var(--muted);font-size:11.5px;margin-left:auto;}

/* 成长日志 */
.form-row{margin:8px 0;}
select,input[type=text],input[type=date],textarea{width:100%;padding:9px 12px;border:1px solid var(--line);border-radius:9px;
  font-size:14px;font-family:inherit;background:#fff;color:var(--ink);}
textarea{resize:vertical;}
.log-list{list-style:none;margin:0;padding:0;}
.log-list li{border:1px solid var(--line);border-radius:10px;padding:12px;margin-bottom:10px;}
.log-head{display:flex;align-items:center;gap:8px;font-size:12px;margin-bottom:4px;}
.log-kind{font-size:11.5px;padding:1px 8px;border-radius:5px;background:var(--soft);color:#666;}
.log-kind.k-daily{background:#eaf0fe;color:var(--blue);}
.log-kind.k-weekly{background:#f3eafb;color:var(--purple);}
.log-kind.k-observation{background:#e4f5ec;color:var(--green);}
.log-body{font-size:13.5px;white-space:pre-wrap;}
.log-note{margin-top:6px;font-size:12.5px;color:var(--orange);background:#fff7ef;padding:6px 10px;border-radius:8px;}
.review-row{display:flex;gap:8px;margin-top:6px;}
.rv-input{flex:1;}

/* 表格 */
.tbl{width:100%;border-collapse:collapse;font-size:13px;}
.tbl th,.tbl td{padding:9px 10px;border-bottom:1px solid var(--line);text-align:left;}
.tbl th{color:var(--muted);font-weight:600;background:var(--soft);}
.mini-bar{display:inline-block;width:54px;height:7px;background:var(--soft);border-radius:5px;overflow:hidden;vertical-align:middle;margin-right:5px;}
.mini-bar i{display:block;height:100%;background:var(--blue);}

/* 登录 */
.login-card{max-width:820px;margin:40px auto;background:#fff;border:1px solid var(--line);border-radius:18px;padding:30px;box-shadow:0 6px 24px rgba(30,50,90,.06);}
.login-card h2{margin:0 0 6px;color:var(--blue);}
.login-cols{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:16px;}
@media(max-width:680px){.login-cols{grid-template-columns:1fr;}}
.login-box label{display:block;font-size:13px;color:#555;margin:12px 0 4px;}
.login-box .btn{width:100%;margin-top:6px;}
.login-box hr{border:none;border-top:1px dashed var(--line);margin:16px 0;}
.foot-note{margin-top:18px;font-size:12px;color:var(--muted);text-align:center;}

/* 数据回收 */
.per-item{display:flex;justify-content:space-between;align-items:center;padding:9px 0;border-bottom:1px dashed var(--line);}
.back{display:inline-block;color:var(--muted);font-size:13px;margin-bottom:8px;}
.back:hover{color:var(--blue);}

/* =========== v2 新增样式 =========== */
.ok{color:var(--green);} .warn{color:var(--orange);}
.badge.warn{background:#fff3e0;color:var(--orange);}
.opt.sel{border-color:var(--blue);background:var(--soft);box-shadow:inset 0 0 0 1px var(--blue);}
.bubble.me{background:var(--blue);color:#fff;align-self:flex-end;border-top-right-radius:4px;}

/* 综合考试 */
.exam{margin-top:6px;}
.eq{border-top:1px dashed var(--line);padding:14px 0;}
.q-type{font-size:11px;background:var(--soft);color:#666;padding:1px 8px;border-radius:5px;margin-left:6px;}
.fill-in{margin:6px 0;}
.eq-fb{margin-top:8px;font-size:13px;}
.exam-actions{margin:14px 0 4px;}
.exam-result{padding:12px 14px;border-radius:10px;font-size:15px;font-weight:700;margin:10px 0;}
.exam-result.pass{background:#e4f5ec;color:#1c7a4d;}
.exam-result.fail{background:#fde9ef;color:#c33b63;}
.exam-review{background:var(--soft);border-radius:10px;padding:12px 14px;}
.exam-review .rv-list{margin:6px 0 12px;padding-left:18px;font-size:13px;color:#444;}
.exam-review .rv-list li{margin:4px 0;}

/* 渠道分组 / 标签 */
.ch-group{margin:18px 0 4px;font-size:15px;color:var(--blue);}
.mc-tag.tag-kb{background:#f3eafb;color:var(--purple);}

/* 三渠道对话表现 */
.me-prompt{align-self:flex-start;color:var(--blue);font-weight:600;padding-left:0;font-size:13.5px;}
.scene-strip{font-size:12.5px;padding:8px 12px;border-radius:9px;margin-bottom:10px;}
.scene-strip.wx{background:#e7f7ee;color:#1c7a4d;border:1px solid #bfe9cd;}
.scene-strip.call{background:#e7f0fb;color:#1f55c4;border:1px solid #bcd7f6;}
.scene-strip:not(.wx):not(.call){background:#fff7ef;color:#c2691b;border:1px solid #ffe2c6;}
.sim-box.ch-wechat .bubble{box-shadow:0 1px 2px rgba(0,0,0,.06);}
.sim-box.ch-phone .bubble.other{background:#eef2f8;}
.sim-box.ch-phone .bubble.me{background:#27a567;}
.sim-box.ch-onsite .bubble{font-size:14.5px;}

/* 知识库 */
.kb-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
@media(max-width:760px){.kb-grid{grid-template-columns:1fr;}}
.kb-doclist{list-style:none;margin:0;padding:0;}
.kb-doclist li{padding:7px 0;border-bottom:1px dashed var(--line);font-size:13px;}
.kb-ans{margin-top:8px;font-size:13.5px;}
.ans-ai{background:#eef2f8;border:1px solid #bcd7f6;border-radius:10px;padding:12px 14px;white-space:pre-wrap;line-height:1.7;}
.ans-local{background:var(--soft);border-radius:10px;padding:12px 14px;}
.ans-chunk{font-size:13px;margin:5px 0;line-height:1.6;}
.ans-src{margin-top:8px;font-size:12px;color:var(--muted);}
.plan-out,.qgen-edit{margin-top:8px;width:100%;font-family:inherit;}
.plan-f{margin:6px 0 2px;}
.qgen-list{margin:10px 0;}
.qgen-item{border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin-bottom:10px;}
.qgen-q{font-weight:600;margin-bottom:6px;}
.qo{display:block;font-size:13px;padding:2px 0;color:#444;}
.qo.cor{color:var(--green);font-weight:600;}

/* ===== 沟通模拟 - 三渠道舞台 ===== */
.scene-strip{font-size:13px;color:#667;background:var(--soft);border:1px solid var(--line);border-radius:10px;padding:8px 12px;margin:4px 0 10px;}
.scene-strip.wx{border-left:3px solid #38bdf8;}
.scene-strip.call{border-left:3px solid #22c55e;}

/* 现场视频舞台 */
.vid-stage{display:flex;gap:12px;margin:6px 0 12px;align-items:stretch;}
.vid-other{flex:1;background:linear-gradient(160deg,#1f2a44,#2b3a5e);color:#fff;border-radius:14px;padding:14px;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:200px;box-shadow:inset 0 0 40px rgba(0,0,0,.25);}
.vid-other .av-svg{width:96px;height:96px;border-radius:50%;background:#fff1;margin-bottom:8px;}
.cp-name{font-weight:700;font-size:15px;}
.cp-mood{font-size:12.5px;opacity:.85;margin-top:3px;text-align:center;}
.vid-self{flex:0 0 38%;background:#0c0f17;border-radius:14px;position:relative;overflow:hidden;min-height:200px;display:flex;align-items:center;justify-content:center;}
.vid-self video{width:100%;height:100%;object-fit:cover;transform:scaleX(-1);}
.self-tag{position:absolute;left:8px;bottom:8px;background:rgba(0,0,0,.55);color:#fff;font-size:12px;padding:3px 8px;border-radius:8px;}

/* 头像与说话动画 */
.av-svg .mouth{transform-box:fill-box;transform-origin:center;transition:transform .08s;}
.av-svg.talking .mouth{animation:talk .35s infinite;}
@keyframes talk{0%,100%{transform:scaleY(1);}50%{transform:scaleY(.35);}}

/* 电话舞台 */
.call-stage{background:linear-gradient(160deg,#0f3d2e,#0b6b4f);color:#fff;border-radius:14px;padding:18px;text-align:center;margin:6px 0 12px;box-shadow:inset 0 0 40px rgba(0,0,0,.25);}
.call-stage .av-svg{width:84px;height:84px;border-radius:50%;background:#fff2;margin:0 auto 6px;}
.call-name{font-weight:700;font-size:16px;}
.call-role{font-size:12.5px;opacity:.85;}
.call-timer{font-variant-numeric:tabular-nums;font-size:22px;font-weight:700;margin:6px 0;letter-spacing:1px;}
.wave{display:flex;gap:4px;justify-content:center;align-items:flex-end;height:26px;margin:4px 0;}
.wave span{width:4px;height:6px;background:#fff8;border-radius:3px;}
.wave.active span{animation:wv .7s infinite ease-in-out;}
.wave.active span:nth-child(2){animation-delay:.1s;}
.wave.active span:nth-child(3){animation-delay:.2s;}
.wave.active span:nth-child(4){animation-delay:.3s;}
.wave.active span:nth-child(5){animation-delay:.4s;}
@keyframes wv{0%,100%{height:6px;}50%{height:24px;}}
.call-hint{font-size:12.5px;opacity:.8;margin-top:4px;}

/* 语音回答区 */
.voice-row{display:flex;align-items:center;gap:10px;margin:10px 0 4px;flex-wrap:wrap;}
.btn.mic{background:#e74c6f;color:#fff;border:none;font-weight:700;}
.btn.mic:hover{filter:brightness(.95);}
.voice-status{font-size:13px;color:var(--purple);min-height:18px;}
.bubble.me.voice{background:#ffe9f2;border-color:#f3b6d2;}
.opt.ref{outline:2px dashed var(--orange);background:#fff7ec;}


/* ===== 模拟：自由作答 / 双评分 / 验收 ===== */
.sim-note{background:var(--soft);border:1px solid var(--line);border-radius:10px;padding:8px 12px;margin:8px 0;font-size:13px;color:var(--muted);}
.child-note{font-size:12.5px;color:#b45309;background:#fffbeb;border-left:3px solid #f59e0b;padding:5px 10px;margin:4px 0 8px;border-radius:6px;}
.resp-box{margin:6px 0;}
.resp-box textarea,.voice-row{margin-top:4px;}
.voice-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:8px 0 2px;}
.voice-status{font-size:13px;color:var(--purple);min-height:18px;}
.sim-actions{margin-top:8px;}
.bubble.me.voice{background:#ffe9f2;border-color:#f3b6d2;}
.score-card{border:1px solid var(--line);border-radius:14px;padding:14px;margin:12px 0;background:#fff;}
.score-card.ai{border-left:4px solid var(--pink);}
.score-card.mt{border-left:4px solid var(--blue);}
.score-card h4{margin:0 0 6px;font-size:14px;}
.score-card .big{font-size:34px;font-weight:800;line-height:1;}
.score-card .big span{font-size:15px;font-weight:500;color:var(--muted);margin-left:3px;}
.dim-bars{margin:10px 0 4px;}
.db{display:flex;align-items:center;gap:8px;margin:5px 0;font-size:13px;}
.db span{width:74px;color:var(--muted);flex:0 0 auto;}
.db i{flex:1;height:9px;border-radius:6px;background:linear-gradient(90deg,#f472b6,#a855f7);display:block;}
.db b{width:30px;text-align:right;flex:0 0 auto;}
.db.na i.na-bar{flex:1;height:9px;border-radius:6px;background:repeating-linear-gradient(90deg,#e5e7eb,#e5e7eb 6px,#f3f4f6 6px,#f3f4f6 12px);display:block;}
.db.na b.na-t{width:auto;text-align:left;flex:0 1 auto;font-size:11.5px;color:#9ca3af;font-weight:600;white-space:nowrap;}
.demo-flag{font-size:12.5px;color:#b45309;background:#fffbeb;border-radius:8px;padding:6px 9px;margin:8px 0;}
.score-card .note{font-size:13px;color:#444;margin-top:6px;line-height:1.6;}
.pt-box{margin-top:8px;font-size:13px;}
.pt-box summary{cursor:pointer;color:var(--purple);}
.pt{font-size:12.5px;color:#555;padding:3px 0;border-bottom:1px dashed var(--line);}
.quickbar{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px;}
.quickbar .btn{text-decoration:none;}
/* 模拟 练习/测评 模式 */
.mode-badge{display:inline-block;font-size:12.5px;font-weight:600;padding:4px 10px;border-radius:999px;margin:2px 0 6px;}
.mode-badge.practice{background:#e0f2fe;color:#0369a1;border:1px solid #bae6fd;}
.mode-badge.exam{background:#fee2e2;color:#b91c1c;border:1px solid #fecaca;}
.phase-banner{display:flex;align-items:center;gap:6px;margin:14px 0 8px;padding:7px 12px;border-radius:8px;font-size:13.5px;font-weight:700;letter-spacing:.3px;}
.phase-banner.present{background:#eef2ff;color:#4338ca;border-left:4px solid #6366f1;}
.phase-banner.qa{background:#ecfdf5;color:#047857;border-left:4px solid #10b981;}
.ref-box{margin:8px 0 4px;font-size:12.5px;border:1px dashed var(--line);border-radius:8px;padding:4px 10px;background:#fafafa;}
.ref-box summary{cursor:pointer;color:var(--blue);font-weight:600;}
.ref-box>div{margin-top:3px;}
.hint-box{margin:8px 0 2px;padding:8px 12px;border-radius:8px;background:#fffbeb;border:1px solid #fde68a;color:#92400e;font-size:13px;line-height:1.6;}
.hint-box .muted{color:#a16207;}
.phase-banner.free{background:#f1f5f9;color:#0f766e;border-left:4px solid #14b8a;}
.free-continue{margin:10px 0 4px;padding:10px;border:1px solid var(--line);border-radius:10px;background:#f8fafc;}
.free-continue #resp{width:100%;}
.sim-mode-btns{display:flex;gap:8px;margin-top:10px;}
.sim-mode-btns .btn{text-decoration:none;}
/* 复合评分预览 / 明细 */
.comp-preview{background:#eef6ff;border:1px solid #cfe3ff;border-radius:10px;padding:8px 12px;margin:8px 0;font-size:13px;color:#0f3d6e;min-height:18px;}
.cb-dim{margin:8px 0;padding-bottom:6px;border-bottom:1px dashed var(--line);}
.cb-dim>b{font-size:13.5px;}
.cb{display:flex;flex-wrap:wrap;gap:4px 14px;align-items:baseline;font-size:12.5px;margin:3px 0 0 10px;}
.cb-t{font-weight:600;color:#333;min-width:120px;}
.cb-line{color:var(--muted);}
.cb-comp{color:var(--blue);}
.cb-comp b{font-size:13.5px;}
.pend{font-style:normal;color:#b45309;background:#fffbeb;border:1px solid #fde68a;border-radius:6px;padding:0 6px;font-size:11px;}
/* 对方"正在回应"打字指示器 */
.typing{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;color:var(--muted);background:#f3f4f6;border:1px solid var(--line);border-radius:999px;padding:5px 12px;margin:6px 0;}
.typing span{width:6px;height:6px;border-radius:50%;background:#9ca3af;display:inline-block;animation:ttsBlink 1.2s infinite both;}
.typing span:nth-child(2){animation-delay:.2s;}
.typing span:nth-child(3){animation-delay:.4s;}
@keyframes ttsBlink{0%,80%,100%{opacity:.25;transform:translateY(0);}40%{opacity:1;transform:translateY(-2px);}}
.sim-tts-link{margin:6px 0 2px;}
.sim-tts-link a{color:var(--blue);}
/* 语音设置页 状态卡 */
.card.ok{background:#e8f6ee;border:1px solid #b7e4c7;color:#1a7f3c;}
.card.warn{background:#fff6e5;border:1px solid #fcd9a;color:#9a6700;}
code{background:#f1f3f5;border:1px solid var(--line);border-radius:4px;padding:1px 5px;font-size:12px;font-family:Consolas,Menlo,monospace;color:#334;}
.card h3{margin-top:2px;}

/* ========================== 客户模拟模型 ========================== */
.client-card{border:1px solid #c7d2fe;background:#eef2ff;border-radius:10px;padding:8px 12px;margin:8px 0;font-size:12.5px;line-height:1.7;}
.client-card .cc-h{font-weight:600;font-size:13px;color:#4338ca;margin-bottom:2px;}
.client-card .cc-body{display:flex;gap:16px;flex-wrap:wrap;}
.client-card .cc-body b{color:#1e1b4b;}
.client-card .cc-state{margin-top:2px;color:#4f46e5;}
.client-card .cc-state #ccMood{font-weight:600;}
.client-card .cc-state #ccProg{font-weight:600;}
/* 工厂入口链接卡 */
.factory-link{margin:10px 0;padding:12px;background:#f5f3ff;border:1px solid #c7d2fe;border-radius:10px;display:flex;align-items:center;gap:12px;}
.factory-link .btn{padding:8px 16px;font-size:13px;text-decoration:none;}
/* 工厂选择器 */
.fc-preview{margin-top:8px;padding:6px 10px;background:#f9fafb;border-radius:6px;border:1px dashed #d1d5db;}

/* ========================== 知识库 v2 ========================== */
.kb-v2{display:flex;flex-direction:column;gap:12px;}
.kb-top{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:12px 16px;}
.kb-stats{display:flex;gap:20px;margin-bottom:8px;font-size:13px;}
.kb-stat b{font-size:18px;color:var(--blue);margin-right:4px;}
.kb-tabs{display:flex;gap:4px;flex-wrap:wrap;}
.kb-tab{padding:6px 14px;border:1px solid var(--line);background:var(--card);border-radius:8px;cursor:pointer;font-size:12.5px;color:var(--muted);transition:all .15s;}
.kb-tab.on{background:var(--blue);color:#fff;border-color:var(--blue);font-weight:600;}
.kb-tab:hover:not(.on){background:#f3f4f6;}
.kb-body{min-height:300px;}
.kb-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
@media(max-width:680px){.kb-grid-2{grid-template-columns:1fr;}}
.kb-list{list-style:none;padding:0;margin:4px 0;}
.kb-list li{padding:4px 0;border-bottom:1px solid var(--line);display:flex;flex-wrap:wrap;gap:4px;}
.kb-mastery-grid{display:flex;flex-wrap:wrap;gap:4px;}
.kb-mastery-item{font-size:11.5px;padding:3px 8px;border-radius:6px;color:#333;}
.kb-mastery-item.mastered{background:#dcfce7;border:1px solid #86efac;}
.kb-mastery-item.learning{background:#fef9c3;border:1px solid #fde047;}
.kb-mastery-item.new{background:#f3f4f6;border:1px solid #d1d5db;color:#666;}
.kb-quick-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:4px;}
.kb-quick-actions .btn{font-size:13px;padding:8px 16px;}
.kb-kp-list{margin-top:8px;}
.kb-kp-item{margin:4px 0;padding:6px 10px;border:1px solid var(--line);border-radius:8px;}
.kb-kp-item summary{cursor:pointer;font-weight:500;}
.kb-q-hist{max-height:400px;overflow-y:auto;margin-top:8px;}
.kb-q-item{padding:6px 10px;margin:4px 0;border-radius:8px;}
.kb-q-item.ans{background:#f0fdf4;border:1px solid #bbf7d0;}
.kb-exam-list{display:flex;flex-direction:column;gap:8px;}
.kb-exam-card{border:1px solid var(--line);border-radius:10px;padding:10px 14px;display:flex;align-items:center;gap:12px;flex-wrap:wrap;}
.kb-exam-title b{margin-right:8px;}
.kb-exam-stat{font-size:13px;}
.kb-report-gen{margin-top:12px;padding:12px;background:#f8fafc;border-radius:10px;border:1px solid var(--line);}
.kb-graph-container{border:1px solid var(--line);border-radius:10px;overflow:hidden;background:#fafbfc;}
#kbGraphSvg{display:block;}
.warning{padding:10px 14px;background:#fef3c7;border:1px solid #fde68a;border-radius:8px;color:#92400e;font-size:13px;}
hr{border:none;border-top:1px solid var(--line);margin:8px 0;}

/* 知识图谱详情面板 */
.kb-kp-detail{border:1px solid #c7d2fe;background:#eef2ff;border-radius:10px;padding:12px 16px;margin:8px 0;font-size:13px;line-height:1.7;}
.kb-kp-detail-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px;}
.kb-kp-detail-header h3{margin:0;}
.kb-kp-desc{color:#4b5563;margin:4px 0 8px;padding:6px 10px;background:#f9fafb;border-radius:6px;border-left:3px solid #6366f1;}
.kb-kp-content{color:#1f2937;margin:4px 0;padding:8px 12px;background:#fff;border:1px solid #e5e7eb;border-radius:6px;white-space:pre-wrap;}
/* 知识提炼列表改进 */
.kb-kp-item{margin:4px 0;border:1px solid var(--line);border-radius:8px;overflow:hidden;}
.kb-kp-head{display:flex;align-items:center;gap:8px;padding:8px 12px;cursor:pointer;background:#fafafa;user-select:none;transition:background .1s;}
.kb-kp-head:hover{background:#f0f0f0;}
.kb-kp-head b{flex:1;font-size:13px;}
.kb-kp-ico{font-size:16px;width:24px;text-align:center;}
.kb-kp-toggle{font-size:10px;color:#9ca3af;transition:transform .2s;}
.kb-kp-item.open .kb-kp-toggle{transform:rotate(90deg);}
.kb-kp-body{display:none;padding:8px 12px 12px;border-top:1px solid #f3f4f6;}
.kb-kp-item.open .kb-kp-body{display:block;}
.kb-kp-desc{color:#4b5563;margin:4px 0 8px;padding:6px 10px;background:#f9fafb;border-radius:6px;border-left:3px solid #6366f1;font-size:12.5px;}
.kb-kp-content{color:#1f2937;margin:4px 0;padding:8px 12px;background:#fff;border:1px solid #e5e7eb;border-radius:6px;white-space:pre-wrap;font-size:12.5px;line-height:1.7;}

/* ========================== 学习旅程仪表盘 ========================== */
.home-journey{display:flex;flex-direction:column;gap:14px;}
.hj-greeting{background:#eef2ff;border:1px solid #c7d2fe;border-radius:12px;padding:14px 18px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px;}
.hj-greeting b{font-size:16px;display:block;}
.hj-progress{text-align:right;min-width:140px;}
.hj-bar{width:140px;height:6px;background:#e0e7ff;border-radius:3px;margin-top:4px;overflow:hidden;}
.hj-bar i{display:block;height:100%;background:#6366f1;border-radius:3px;transition:width .5s;}
.hj-section h3{font-size:14px;margin:0 0 10px;font-weight:500;}
.hj-tasks{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;}
.hj-task{display:block;background:#fafafa;border:1px solid #e5e7eb;border-radius:10px;padding:12px 14px;text-decoration:none;color:inherit;transition:border-color .15s,box-shadow .15s;}
.hj-task:hover{border-color:#c7d2fe;box-shadow:0 1px 4px rgba(0,0,0,.06);}
.hj-ti{display:flex;align-items:center;gap:10px;margin-bottom:6px;}
.hj-ico{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0;}
.hj-ti b{display:block;font-size:13px;line-height:1.3;}
.hj-ti .muted{font-size:11.5px;}
.hj-tn{font-size:22px;font-weight:500;margin:4px 0 6px;color:#111827;}
.hj-tbar{height:4px;background:#e5e7eb;border-radius:2px;overflow:hidden;}
.hj-tbar i{display:block;height:100%;border-radius:2px;transition:width .5s;}
.hj-milestones{display:flex;flex-direction:column;gap:4px;}
.hj-ms{display:flex;align-items:center;gap:8px;padding:6px 10px;border-radius:6px;font-size:13px;background:#f9fafb;border:1px solid #f3f4f6;}
.hj-ms.done{background:#f0fdf4;border-color:#bbf7d0;}
.hj-ms-ico{font-size:14px;width:20px;text-align:center;}
.hj-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
@media(max-width:680px){.hj-grid-2{grid-template-columns:1fr;}}
.hj-insight{padding:10px 12px;border-radius:8px;margin:6px 0;font-size:12.5px;line-height:1.6;display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.hj-insight.warn{background:#fff7ed;border:1px solid #fed7aa;color:#9a3412;}
.hj-insight.ok{background:#f0fdf4;border:1px solid #bbf7d0;color:#166534;}
.hj-insight.info{background:#eff6ff;border:1px solid #bfdbfe;color:#1e40af;}
.hj-insight.mute{background:#f9fafb;border:1px solid #e5e7eb;color:#6b7280;}
.hj-insight .btn{font-size:11.5px;padding:3px 10px;}
.hj-events{display:flex;flex-direction:column;gap:4px;}
.hj-ev{display:flex;align-items:center;gap:10px;padding:6px 0;border-bottom:1px solid #f3f4f6;font-size:12.5px;}
.hj-ev:last-child{border:none;}
.hj-ev-badge{font-size:10px;padding:1px 6px;border-radius:4px;font-weight:500;flex-shrink:0;}
.hj-ev .muted{font-size:11px;margin-left:auto;flex-shrink:0;}

/* 主题式知识提炼 */
.kb-distill-form{margin:12px 0;}
.kb-df-label{font-size:13px;font-weight:500;display:block;margin-bottom:4px;}
.kb-df-input{width:100%;padding:10px 12px;border:1px solid #d1d5db;border-radius:8px;font-size:14px;outline:none;box-sizing:border-box;}
.kb-df-input:focus{border-color:#6366f1;box-shadow:0 0 0 3px rgba(99,102,241,.15);}
.kb-df-sources{display:flex;flex-wrap:wrap;gap:6px;padding:8px 0;}
.kb-df-src{font-size:12.5px;padding:4px 10px;border:1px solid #e5e7eb;border-radius:6px;background:#fafafa;cursor:pointer;}
.kb-df-src:hover{background:#f3f4f6;}
.kb-df-src input{margin-right:4px;vertical-align:middle;}
.kb-topic-list{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0;}
.kb-topic-item{display:flex;align-items:center;gap:8px;padding:6px 12px;border:1px solid #e5e7eb;border-radius:8px;background:#f9fafb;}
.kb-topic-tag{font-size:12.5px;font-weight:500;}
.kb-topic-graph{margin:12px 0;padding:12px 14px;border:1px solid #e5e7eb;border-radius:10px;background:#fafafa;}
.kb-tg-nodes{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0;}
.kb-tg-node{display:flex;align-items:center;gap:4px;padding:6px 10px;border:1px solid #d1d5db;border-radius:8px;background:white;cursor:pointer;transition:border-color .15s,box-shadow .15s;}
.kb-tg-node:hover{border-color:#6366f1;box-shadow:0 1px 4px rgba(99,102,241,.15);}
.kb-tg-ico{font-size:14px;}
.kb-tg-label{font-size:12px;font-weight:500;max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.kb-tg-rel{font-size:10px;color:#6366f1;background:#eef2ff;padding:1px 5px;border-radius:4px;}
.kb-tg-rels{margin:8px 0;padding:8px 12px;background:#f9fafb;border-radius:8px;font-size:12px;display:flex;flex-wrap:wrap;gap:4px;}
.kb-tg-rel-line{padding:2px 8px;border:1px solid #e5e7eb;border-radius:4px;background:white;font-size:11.5px;}
.kb-tg-cards{display:flex;flex-direction:column;gap:8px;margin:10px 0;}
.kb-tg-card{border:1px solid #e5e7eb;border-radius:10px;padding:10px 14px;background:white;}
.kb-tg-card-head{display:flex;align-items:center;gap:6px;margin-bottom:6px;}
.kb-tg-card-head b{font-size:13.5px;}
.kb-tg-card-desc{color:#4b5563;padding:4px 8px;margin:4px 0;border-left:3px solid #6366f1;background:#f9fafb;border-radius:4px;font-size:12.5px;}
.kb-tg-card-content{color:#1f2937;padding:8px 10px;margin:6px 0;background:#fafafa;border:1px solid #eee;border-radius:6px;white-space:pre-wrap;font-size:12.5px;line-height:1.7;}
/* 可执行知识卡片 */
.kg-section{margin:8px 0;}
.kg-sec-title{font-size:11.5px;font-weight:500;color:#374151;margin-bottom:4px;}
.kg-steps{display:flex;flex-direction:column;gap:4px;}
.kg-step{display:flex;align-items:flex-start;gap:8px;font-size:12.5px;line-height:1.6;padding:3px 0;}
.kg-step-num{width:20px;height:20px;border-radius:50%;background:#6366f1;color:#fff;font-size:10px;font-weight:600;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:1px;}
.kg-deliverable{background:#f0fdf4;border:1px solid #bbf7d0;border-radius:6px;padding:8px 10px;font-size:12.5px;line-height:1.6;color:#166534;}
.kg-mistakes{display:flex;flex-direction:column;gap:2px;}
.kg-mistake{font-size:12.5px;color:#dc2626;padding:3px 8px;background:#fef2f2;border-radius:4px;line-height:1.5;}
.kg-standard{background:#fefce8;border:1px solid #fde68a;border-radius:6px;padding:8px 10px;font-size:12.5px;line-height:1.6;color:#92400e;}
.kg-rel{font-size:12px;color:#4b5563;padding:6px 8px;background:#f9fafb;border-radius:6px;line-height:1.6;}
/* 知识条目删除按钮 */
.kb-del-kp{color:#9ca3af;font-size:12px;padding:2px 6px;margin-left:auto;border:none;background:transparent;cursor:pointer;border-radius:4px;line-height:1;flex-shrink:0;}
.kb-del-kp:hover{color:#dc2626;background:#fef2f2;}
.kb-tg-card-head .kb-del-kp{opacity:0;transition:opacity .15s;}
.kb-tg-card:hover .kb-del-kp{opacity:1;}

/* 闯关结果 */
.chal-result{text-align:center;padding:16px;}
.chal-result h3{font-size:16px;margin:0 0 8px;}
.cr-score{font-size:28px;font-weight:500;color:#111827;margin:8px 0;}
.cr-bar{width:200px;height:8px;background:#e5e7eb;border-radius:4px;margin:8px auto;overflow:hidden;}
.cr-bar i{display:block;height:100%;background:#6366f1;border-radius:4px;transition:width .5s;}
.chal-header{display:flex;align-items:center;gap:8px;margin-bottom:8px;}
.chal-num{font-size:12px;font-weight:500;color:#6366f1;background:#eef2ff;padding:2px 8px;border-radius:4px;}
.chal-type{font-size:11px;color:#6b7280;}
.chal .opt.sel{border-color:#6366f1;background:#eef2ff;}
#submitMulti{margin-top:6px;}
/* 家长类型选择器 */
.ps-card h3{font-size:14px;margin:0 0 4px;}
.ps-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin:6px 0;}
.ps-row select{padding:6px 10px;border:1px solid #d1d5db;border-radius:6px;font-size:13px;background:white;min-width:140px;}
.ps-row label{font-size:12.5px;color:#6b7280;flex-shrink:0;}
/* 家长角色卡选择器 */
.ps-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:8px;margin:10px 0;}
.ps-card-item{display:flex;flex-direction:column;align-items:center;gap:2px;padding:10px 6px;border:1px solid #e5e7eb;border-radius:10px;cursor:pointer;transition:all .15s;text-align:center;background:#fff;}
.ps-card-item:hover{border-color:#c7d2fe;background:#f5f7ff;}
.ps-card-item.on{border-color:#4338ca;background:#eef2ff;box-shadow:0 0 0 2px #c7d2fe;}
.ps-card-item .ps-emoji{font-size:26px;line-height:1.2;}
.ps-card-item .ps-name{font-size:13px;font-weight:600;color:#1e1b4b;}
.ps-card-item .ps-role{font-size:10.5px;color:#6b7280;line-height:1.3;}
.ps-card-item .ps-tag{font-size:9px;padding:1px 5px;border-radius:6px;margin-top:2px;line-height:1.4;}
.ps-card-item .ps-tag.norm{background:#dcfce7;color:#166534;}
.ps-card-item .ps-tag.rec{background:#fef3c7;color:#92400e;}
.ps-preview{margin:8px 0;padding:10px 12px;background:#f8fafc;border:1px solid #e5e7eb;border-radius:10px;}
.ps-preview-head{display:flex;align-items:flex-start;gap:10px;}
.ps-preview-head .ps-emoji.big{font-size:34px;line-height:1;}
.ps-preview-info b{font-size:14px;color:#1e1b4b;}
.ps-preview-talk{margin-top:6px;font-size:12px;color:#6b7280;line-height:1.5;}
.ps-agenda-row{display:flex;align-items:center;gap:8px;margin:8px 0;}
.ps-agenda-row select{padding:6px 10px;border:1px solid #d1d5db;border-radius:6px;font-size:13px;background:white;flex:1;}
.ps-select-row{margin:6px 0;}
.ps-select-row select{width:100%;padding:10px 12px;border:1px solid #c7d2fe;border-radius:8px;font-size:14px;background:white;font-weight:500;color:#1e1b4b;}
.ps-preview-info .ps-tag{display:inline-block;font-size:10px;padding:1px 7px;border-radius:6px;margin:3px 0;}
.ps-preview-info .ps-tag.norm{background:#dcfce7;color:#166534;}
.ps-preview-info .ps-tag.rec{background:#fef3c7;color:#92400e;}
.ps-preview-info .ps-tag.adv{background:#e0e7ff;color:#3730a3;}

/* 成长曲线 */
.gc-overview{background:linear-gradient(135deg,#eef2ff 0%,#f0fdf4 100%);border-radius:12px;padding:18px 20px;margin-bottom:12px;text-align:center;}
.gc-overview h2{font-size:18px;margin:0 0 4px;font-weight:500;}
.gc-overview p{margin:0;}
.gc-dim-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px;margin-bottom:14px;}
.gc-dim-card{border:1px solid #e5e7eb;border-radius:10px;padding:12px 14px;background:#fafafa;transition:border-color .2s;}
.gc-dim-card.gc-passed{border-color:#bbf7d0;background:#f0fdf4;}
.gc-dim-head{display:flex;align-items:center;gap:6px;margin-bottom:6px;}
.gc-dim-ico{font-size:16px;}
.gc-dim-label{font-size:13px;font-weight:500;}
.gc-badge{font-size:10px;padding:1px 6px;border-radius:10px;margin-left:auto;}
.gc-badge.pass{background:#22c55e;color:#fff;}
.gc-badge.pend{background:#fef3c7;color:#92400e;}
.gc-dim-score{font-size:24px;font-weight:500;color:#111827;margin:4px 0;}
.gc-dim-bar{height:5px;background:#e5e7eb;border-radius:3px;overflow:hidden;}
.gc-dim-bar i{display:block;height:100%;border-radius:3px;transition:width .5s;}
/* 里程碑时间线 */
.gc-timeline{position:relative;padding-left:16px;}
.gc-ms{position:relative;padding:4px 0 12px 16px;border-left:2px solid #e5e7eb;}
.gc-ms-last{border-left-color:transparent;}
.gc-ms-dot{position:absolute;left:-6px;top:8px;width:10px;height:10px;border-radius:50%;background:#6366f1;border:2px solid #fff;}
.gc-ms-tag{font-size:12.5px;font-weight:500;}
.gc-ms b{color:#111827;}

/* 知识问答格式化 */
.kb-q-body{font-size:13px;line-height:1.8;margin-top:4px;white-space:normal;}
.kb-q-body br+br{margin-top:8px;display:block;content:'';}
.kb-q-ans b{display:block;margin-bottom:4px;}

/* 周计划编辑器 */
.plan-actions{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap;}
.plan-week-card{margin-bottom:12px;}
.plan-week-head{display:flex;align-items:center;gap:8px;margin-bottom:10px;flex-wrap:wrap;}
.plan-week-head label{font-weight:600;font-size:14px;}
.plan-week-head input{border:1px solid var(--line);border-radius:6px;padding:4px 8px;font-size:13px;}
.plan-items{margin-left:24px;}
.plan-item-row{display:flex;align-items:flex-start;gap:8px;margin-bottom:10px;}
.plan-item-fields{display:flex;gap:10px;flex:1;flex-wrap:wrap;}
.plan-field-label{display:flex;flex-direction:column;gap:3px;font-size:12px;color:var(--muted);flex:1;min-width:180px;}
.plan-field-label input{border:1px solid var(--line);border-radius:6px;padding:7px 10px;font-size:13px;width:100%;}
.plan-item-row .btn-mini{flex-shrink:0;margin-top:20px;}
.msg-banner{background:#dbeafe;color:#1e40af;padding:10px 16px;border-radius:8px;margin-bottom:12px;font-size:13px;}
.btn.pulse{animation:pulseGlow 1.6s ease-in-out infinite;}
@keyframes pulseGlow{0%,100%{box-shadow:0 0 0 0 rgba(47,111,237,.35);}50%{box-shadow:0 0 0 6px rgba(47,111,237,0);}}

/* 知识库文档归类管理 */
.kb-cat-group{margin-bottom:12px;}
.kb-cat-head{font-weight:600;font-size:13px;color:#374151;padding:4px 0;border-bottom:1px solid var(--line);margin-bottom:6px;}
.kb-doc-row{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 0;}
.kb-doc-info{flex:1;min-width:0;}
.kb-doc-ops{display:flex;gap:4px;flex-shrink:0;}
.kb-doc-ops .btn-mini{white-space:nowrap;}

/* 学习模块编辑器 */
.sm-sec{margin-bottom:10px;background:var(--soft);}
.sm-sec-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;}
.sm-sec-t{width:100%;border:1px solid var(--line);border-radius:6px;padding:6px 10px;font-size:13px;margin-bottom:6px;font-weight:600;}
.sm-sec-b{width:100%;border:1px solid var(--line);border-radius:6px;padding:8px 10px;font-size:13px;font-family:inherit;}
.sm-q{margin-bottom:10px;background:var(--soft);}
.sm-q-q{width:100%;border:1px solid var(--line);border-radius:6px;padding:8px 10px;font-size:13px;font-family:inherit;margin-bottom:6px;}
.sm-q-exp{width:100%;border:1px solid var(--line);border-radius:6px;padding:6px 10px;font-size:12px;margin-top:6px;}
.sm-q-fill{width:60%;border:1px solid var(--line);border-radius:6px;padding:6px 10px;font-size:13px;}
.sm-q-opts{margin:6px 0;}
.sm-q-opt{display:flex;align-items:center;gap:6px;margin-bottom:4px;}
.sm-q-opt-text{flex:1;border:1px solid var(--line);border-radius:6px;padding:5px 8px;font-size:13px;}

/* 评分维度锚定文字 */
.db-anchor{display:block;font-size:10px;color:var(--muted);margin-top:1px;padding-left:2px;}
/* 参考答案卡片 */
.ref-answer{margin-top:10px;}
.ref-card{background:#f0fdf4;border:1px solid #86efac;border-radius:8px;padding:10px 14px;font-size:13px;}
.ref-body{margin-top:4px;color:#166534;line-height:1.6;}

/* AI反馈卡片信息层级 */
.ai-big-row{display:flex;align-items:center;gap:16px;margin-bottom:10px;}
.ai-big-row .big{flex-shrink:0;}
.ai-insight{font-size:14px;font-weight:600;color:#374151;padding:6px 12px;background:#fef9c3;border-radius:8px;border:1px solid #fde047;}
.ai-note{background:#f9fafb;border-radius:8px;padding:10px 14px;margin-bottom:10px;font-size:13px;color:#4b5563;line-height:1.5;border-left:3px solid #3b82f6;}
.pt-section{margin-top:12px;border-top:1px solid var(--line);padding-top:10px;}
.pt-section h4{font-size:13px;margin-bottom:8px;color:#374151;}
.pt{display:flex;align-items:flex-start;gap:8px;padding:6px 0;font-size:12px;border-bottom:1px solid #f3f4f6;}
.pt-round{background:#e5e7eb;color:#374151;padding:2px 8px;border-radius:4px;font-size:11px;font-weight:600;flex-shrink:0;}
.pt-score{font-weight:700;flex-shrink:0;width:36px;text-align:center;}
.pt-fb{color:#6b7280;line-height:1.4;}

/* 学习路径进度条 */
.path-bar{display:flex;align-items:center;justify-content:center;gap:0;padding:10px 0;margin:8px 0 12px;background:var(--soft);border-radius:12px;overflow-x:auto;}
.path-step{text-align:center;padding:6px 10px;border-radius:8px;min-width:70px;transition:all .3s;}
.path-step.done{background:#dcfce7;color:#166534;}
.path-step.active{background:#dbeafe;color:#1e40af;box-shadow:0 0 0 2px #3b82f6;}
.path-step.locked{background:#f3f4f6;color:#9ca3af;}
.path-icon{display:block;font-size:18px;margin-bottom:2px;}
.path-label{font-size:11px;font-weight:600;}
.path-name{display:block;font-size:10px;margin-top:1px;opacity:.7;}
.path-arrow{color:#d1d5db;font-size:16px;padding:0 2px;flex-shrink:0;}
.sm-q-type{border:1px solid var(--line);border-radius:6px;padding:4px 8px;font-size:13px;}

/* ========== 学员移动端适配 ========== */
@media (max-width: 768px) {
  /* 全局移动端 */
  body.mobile .login-cols { grid-template-columns: 1fr; gap: 14px; }
  body.mobile .login-card h2 { font-size: 18px; }
  body.mobile .login-box { padding: 16px; }
  body.mobile input[type="text"],
  body.mobile input[type="password"],
  body.mobile input[type="date"],
  body.mobile select,
  body.mobile textarea { font-size: 16px; min-height: 44px; }

  /* 学员专属 */
    --touch-min: 44px;
    padding-bottom: 72px;
  }
  body.trainee-mobile .nav-v2 { display: none; }

  .nav-mobile {
    display: flex; position: fixed; bottom: 0; left: 0; right: 0; z-index: 100;
    background: #fff; border-top: 1px solid var(--line);
    padding: 4px 0 env(safe-area-inset-bottom, 4px);
    justify-content: space-around; align-items: flex-start;
  }
  .nav-mobile a {
    display: flex; flex-direction: column; align-items: center; gap: 2px;
    text-decoration: none; color: #9ca3af; font-size: 10px;
    padding: 4px 6px; min-width: 52px; border-radius: 8px;
    transition: all .15s; -webkit-tap-highlight-color: transparent;
    position: relative;
  }
  .nav-mobile a.nv-on { color: #4338ca; }
  .nav-mobile .nv-ico { font-size: 20px; line-height: 1; }
  .nav-mobile .nv-label { font-weight: 500; }
  .nav-mobile .nv-dot { font-style: normal; font-size: 9px; position: absolute; top: 0; right: 4px; }

  body.trainee-mobile .wrap { padding: 12px 14px 20px; max-width: 100%; }
  body.trainee-mobile .wrap.v2 { padding: 12px 14px 80px; }
  body.trainee-mobile .pg-title { font-size: 13px; margin-bottom: 10px; }
  body.trainee-mobile .card { padding: 14px; margin: 10px 0; border-radius: 12px; }
  body.trainee-mobile .card h3 { font-size: 15px; }
  body.trainee-mobile .home-grid,
  body.trainee-mobile .mod-grid,
  body.trainee-mobile .hj-grid-2 { grid-template-columns: 1fr; gap: 10px; }
  body.trainee-mobile .stat-row { grid-template-columns: 1fr 1fr; gap: 8px; }
  body.trainee-mobile .stat-card { padding: 12px 10px; }
  body.trainee-mobile .stat-card .num { font-size: 22px; }
  body.trainee-mobile .path-bar { flex-wrap: nowrap; justify-content: flex-start; overflow-x: auto; -webkit-overflow-scrolling: touch; padding: 8px 4px; gap: 0; }
  body.trainee-mobile .path-step { min-width: 56px; padding: 4px 6px; }
  body.trainee-mobile .path-icon { font-size: 14px; }
  body.trainee-mobile .path-label { font-size: 10px; }
  body.trainee-mobile .path-name { font-size: 9px; }
  body.trainee-mobile .path-arrow { font-size: 12px; padding: 0 1px; }
  body.trainee-mobile .tbl { display: block; overflow-x: auto; -webkit-overflow-scrolling: touch; white-space: nowrap; }
  body.trainee-mobile .tbl th,
  body.trainee-mobile .tbl td { font-size: 12px; padding: 6px 8px; }
  body.trainee-mobile .btn { padding: 10px 14px; font-size: 14px; min-height: var(--touch-min); }
  body.trainee-mobile .btn.sm { padding: 8px 12px; font-size: 13px; min-height: 36px; }
  body.trainee-mobile .btn-mini { padding: 6px 10px; min-height: 32px; }
  body.trainee-mobile input[type="text"],
  body.trainee-mobile input[type="password"],
  body.trainee-mobile input[type="date"],
  body.trainee-mobile select,
  body.trainee-mobile textarea { font-size: 16px; min-height: var(--touch-min); }
  body.trainee-mobile .opt { padding: 12px 14px; font-size: 14px; min-height: var(--touch-min); }
  body.trainee-mobile .order-cols { grid-template-columns: 1fr; }
  body.trainee-mobile .sim-box { gap: 8px; }
  body.trainee-mobile .bubble { max-width: 88%; padding: 10px 12px; font-size: 14px; }
  body.trainee-mobile .sim-bg { font-size: 13px; padding: 10px 12px; }
  body.trainee-mobile .sim-goal { font-size: 13px; padding: 8px 12px; }
  body.trainee-mobile #simInput { font-size: 16px; min-height: 42px; }
  body.trainee-mobile .sim-actions { flex-wrap: wrap; gap: 6px; }
  body.trainee-mobile .sim-actions .btn { flex: 1; min-width: 60px; }
  body.trainee-mobile .score-card { padding: 14px; }
  body.trainee-mobile .score-card .big { font-size: 32px; }
  body.trainee-mobile .ai-big-row { flex-wrap: wrap; gap: 8px; }
  body.trainee-mobile .login-cols { grid-template-columns: 1fr; gap: 14px; }
  body.trainee-mobile .login-card h2 { font-size: 18px; }
  body.trainee-mobile .login-box { padding: 16px; }
  body.trainee-mobile .kn-sec ul { padding-left: 16px; }
  body.trainee-mobile .mod-card { padding: 12px; }
  body.trainee-mobile .mc-title { font-size: 14px; min-height: auto; }
  body.trainee-mobile .hj-greeting { flex-direction: column; gap: 4px; }
  body.trainee-mobile .hj-section { padding: 0; }
  body.trainee-mobile .milestone-item { padding: 8px 0; }
  body.trainee-mobile .hj-insight { padding: 10px 12px; font-size: 13px; }
  body.trainee-mobile .ap-card { padding: 16px; margin: 8px 0; }
}
@media (min-width: 769px) {
  .nav-mobile { display: none; }
}
