/* ============================================================
   泉州经贸职业技术学院 · 项目管理实践平台
   lms.css —— 教学域样式：角色空间 / 课程学习 / 教学管理 / 企业案例 / AI 助教
   ------------------------------------------------------------
   为什么单独一个文件，而不是继续往 styles.css 里堆：
     styles.css 有 830 多行，主体是「平台功能页」（项目全生命周期那些台账）
     的版式，改动风险高；教学域是本轮新增的独立业务线，
     单独一个文件可以在不动既有样式的前提下整体增删，
     构建时由 tools/build.py 按顺序内联（lms.css 在 styles.css 之后，
     因此可以覆盖同名规则）。

   设计语言与主样式一致，复用同一套设计令牌：
     .card / .stat / .tag / .btn / .kv / .tbl / .bar / .req-note

   三条必须遵守的约束（都是 qa/probe_uiclean.mjs 在守的）：
     ① 不用 .page-hero：页头之后到第一个内容块的空白必须 ≤ 40px
        —— 那批 6:1 的插画横幅就是被这条断言挡在门外的；
     ② 顶栏不得新增 .tb-ico（断言顶栏图标恰好 2 个：日志 + 打印），
        所以 AI 助教的悬浮入口挂在 #app 上而不是顶栏；
     ③ 所有多栏容器的子项都要写 min-width:0，
        否则宽表格会把 grid 撑破（宽表 + grid 的经典问题）。
   ============================================================ */

/* ---------------- 补两个既有设计令牌的缺口 ---------------- */
/* .tag.n 在渲染器里用得很多（未提交 / 图文 / 名册占位），
   而 styles.css 里只定义了 b/m/a/r/v/c/g 七个变体 ——
   .tag 落到 n 上时没有配色，border-color 会退回 currentColor，
   看上去就是一条没有样式的灰线。这里补齐，语义与 .tag.g 一致。 */
.tag.n{color:var(--t2);background:#f1f5fb;border-color:var(--line)}
.muted{color:var(--t3)}
/* 主样式里只有 g-2-1 / g-1-2 两个非对称栅格，教师端批阅页要的是
   「表格 3 : 侧栏 1」。缺了这条规则 .grid 会退化成单列，
   表格与侧栏上下堆叠，页面被拉得很长。 */
.g-3-1{grid-template-columns:minmax(0,3fr) minmax(0,1fr)}
@media(max-width:1240px){.g-3-1{grid-template-columns:1fr}}
.lms-ul{margin:0;padding-left:17px;color:var(--t2);font-size:12.4px;line-height:1.9}
.lms-ul.sm{font-size:12.1px;line-height:1.82}
.lms-ul li{margin:1px 0}
.lms-ol{margin:0;padding-left:19px;color:var(--t1);font-size:12.5px;line-height:1.95}
.lms-ol li{margin:2px 0}

/* ============================================================
   一、角色空间
   ============================================================ */

/* 继续学习卡：左「学到哪了」+ 右进度环。
   信息顺序按学生的真实关注度排：课程名 → 上次位置 → 进度 → 按钮。 */
.lms-cont{margin-bottom:10px}
.lms-cont>.bd{display:flex;align-items:center;gap:22px;padding:15px 17px;
  background:linear-gradient(135deg,#f7faff 0%,#f2fbff 100%)}
.lms-cont__l{flex:1;min-width:0}
.lms-cont__tag{display:inline-flex;align-items:center;gap:5px;font-size:11.4px;font-weight:600;
  color:var(--c-primary);background:var(--c-primary-l);border:1px solid #c7dbff;
  padding:2px 9px;border-radius:99px}
.lms-cont__tag svg{width:12.5px;height:12.5px}
.lms-cont__t{display:block;font-size:17px;margin-top:7px;letter-spacing:.2px}
.lms-cont__s{margin:4px 0 0;font-size:12.1px;color:var(--t2)}
.lms-cont__n{margin-top:8px;font-size:12.4px;color:var(--t2)}
.lms-cont__n b{color:var(--t1)}
.lms-cont__bar{max-width:420px;margin-top:9px}
.lms-cont__r{flex:none;display:flex;align-items:center;justify-content:center;padding-right:6px}
.lms-ring{display:block}

/* 五步转化流程条 */
.lms-steps{display:flex;align-items:stretch;gap:0;flex-wrap:nowrap;overflow-x:auto;padding:2px 0 4px}
.lms-step{flex:1 1 0;min-width:118px;border:1px solid var(--line);border-radius:11px;
  background:var(--panel-2);padding:11px 12px;cursor:pointer;transition:.16s;text-align:center}
.lms-step:hover{border-color:#c7dbff;background:var(--c-primary-l)}
.lms-step.is-on{border-color:transparent;background:var(--grad);color:#fff;
  box-shadow:0 6px 18px rgba(37,99,235,.26)}
.lms-step .ic{width:30px;height:30px;margin:0 auto 6px;border-radius:9px;display:flex;
  align-items:center;justify-content:center;background:var(--c-primary-l);color:var(--c-primary)}
.lms-step .ic svg{width:16px;height:16px}
.lms-step.is-on .ic{background:rgba(255,255,255,.22);color:#fff}
.lms-step .no{display:block;font-size:11px;color:var(--t3);font-family:var(--mono);letter-spacing:.4px}
.lms-step.is-on .no{color:rgba(255,255,255,.8)}
.lms-step b{display:block;font-size:13px;margin-top:2px}
.lms-step .own{display:block;font-size:11.2px;color:var(--t3);margin-top:4px}
.lms-step.is-on .own{color:rgba(255,255,255,.82)}
.lms-stepline{flex:none;width:26px;display:flex;align-items:center;justify-content:center;color:#c3d3e8}
.lms-stepline svg{width:15px;height:15px}

/* 角色职责映射 */
.lms-rolemap{display:flex;flex-direction:column;gap:11px}
.lms-rolemap__i{display:flex;gap:10px;align-items:flex-start}
.lms-rolemap__i .av{width:30px;height:30px;flex:none;border-radius:9px;display:flex;
  align-items:center;justify-content:center;background:var(--grad);color:#fff;font-size:13px;font-weight:650}
.lms-rolemap__i .bd{min-width:0}
.lms-rolemap__i b{font-size:12.8px}
.lms-rolemap__i p{margin:2px 0 0;font-size:12.1px;color:var(--t2);line-height:1.78}

/* ============================================================
   二、课程学习
   ============================================================ */

/* 两栏学习台：左章节目录（sticky）+ 右内容。
   sticky 的 top 要避开顶栏（--tb-h）再加一点呼吸，
   否则目录顶部会被顶栏压住。 */
.lms-learn{display:grid;grid-template-columns:250px minmax(0,1fr);gap:11px;align-items:start}
.lms-learn__nav{position:sticky;top:calc(var(--tb-h) + 8px);background:var(--panel);
  border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--sh-1);overflow:hidden}
.lms-learn__ch{display:flex;align-items:center;gap:7px;padding:10px 12px;font-size:12.8px;font-weight:650;
  border-bottom:1px solid var(--line-2);background:linear-gradient(180deg,#fff,#fbfdff)}
.lms-learn__ch svg{width:14px;height:14px;color:var(--c-primary)}
.lms-learn__k{padding:7px 12px;font-size:11.6px;color:var(--t3);background:var(--panel-2);
  border-bottom:1px solid var(--line-2)}
.lms-learn__i{display:flex;align-items:center;gap:7px;padding:8px 12px;cursor:pointer;
  border-left:3px solid transparent;transition:.14s}
.lms-learn__i+.lms-learn__i{border-top:1px solid var(--line-2)}
.lms-learn__i:hover{background:var(--panel-2)}
.lms-learn__i.is-on{background:var(--c-primary-l);border-left-color:var(--c-primary)}
.lms-learn__i .no{width:19px;height:19px;flex:none;border-radius:6px;background:#eef3fa;color:var(--t2);
  font-family:var(--mono);font-size:11px;display:flex;align-items:center;justify-content:center}
.lms-learn__i.is-on .no{background:var(--c-primary);color:#fff}
.lms-learn__i .nm{flex:1;min-width:0;font-size:12.2px;color:var(--t1);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lms-learn__i.is-on .nm{font-weight:600;color:var(--c-primary-d)}
.lms-learn__i .vt{color:var(--c-mint);display:flex}
.lms-learn__i .vt svg{width:12.5px;height:12.5px}
.lms-learn__i .pc{font-family:var(--mono);font-size:11px;color:var(--t3);flex:none}
.lms-learn__main{min-width:0}

/* 章节头 */
.lms-chhead{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);
  box-shadow:var(--sh-1);padding:13px 16px;margin-bottom:10px}
.lms-chhead>div:first-child{display:flex;align-items:baseline;gap:9px;flex-wrap:wrap}
.lms-chhead .no{font-size:11.4px;font-family:var(--mono);color:var(--c-primary);
  background:var(--c-primary-l);border:1px solid #c7dbff;border-radius:99px;padding:1.5px 9px}
.lms-chhead b{font-size:16.2px}
.lms-chhead p{margin:6px 0 0;font-size:12.4px;color:var(--t2);line-height:1.78;max-width:900px}
.lms-chhead__meta{display:flex;align-items:center;gap:15px;margin-top:10px;flex-wrap:wrap;
  border-top:1px dashed var(--line);padding-top:9px}
.lms-chhead__meta>span{display:inline-flex;align-items:center;gap:5px;font-size:11.8px;color:var(--t2)}
.lms-chhead__meta svg{width:13px;height:13px;color:var(--t3)}
.lms-chhead__meta .bar-row{width:190px}

/* 视频块：深色容器让视频在任何主题下都不刺眼；
   元信息条压在视频下方、位置固定，翻章时不会跳。 */
.lms-video{background:#0b1526;border:1px solid #12233d;border-radius:var(--r);overflow:hidden;
  margin-bottom:10px;box-shadow:var(--sh-2)}
.lms-video video{display:block;width:100%;max-height:520px;background:#000}
.lms-video__meta{display:flex;align-items:center;gap:11px;padding:8px 13px;background:#0f1c31;
  border-top:1px solid #1c2f4c;color:#c6d6ea;font-size:11.8px}
.lms-video__meta svg{width:13.5px;height:13.5px;color:#67e8f9}
.lms-video__meta .btn{background:#182b47;border-color:#2a4364;color:#cfe0f5}
.lms-video__meta .btn:hover{background:#1f3552;color:#fff;border-color:#3b5b85}
.lms-vpos{font-family:var(--mono);font-size:11.4px;color:#8fa8c8}
.lms-novideo{display:flex;gap:11px;padding:13px 16px;border-radius:var(--r);margin-bottom:10px;
  border:1px solid #fde68a;background:var(--c-amber-l);color:#92400e;font-size:12.4px}
.lms-novideo svg{width:17px;height:17px;flex:none;margin-top:2px}
.lms-novideo b{display:block;margin-bottom:3px}
.lms-novideo p{margin:0;line-height:1.8;color:#a16207}

/* 本章要点 */
.lms-outline{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
.lms-outline__i{display:flex;align-items:flex-start;gap:9px;font-size:12.4px;color:var(--t1);
  padding:7px 11px;border:1px solid var(--line-2);border-radius:9px;background:var(--panel-2)}
.lms-outline__i .n{width:18px;height:18px;flex:none;border-radius:50%;background:var(--c-primary-l);
  color:var(--c-primary);font-family:var(--mono);font-size:11px;display:flex;
  align-items:center;justify-content:center}

/* 任务点 */
.lms-points{display:flex;flex-direction:column;gap:8px}
.lms-point{display:flex;align-items:center;gap:11px;padding:9px 12px;border:1px solid var(--line);
  border-radius:10px;background:var(--panel-2);transition:.14s}
.lms-point:hover{border-color:#c7dbff}
.lms-point.is-done{border-color:#a7f3d0;background:var(--c-mint-l)}
.lms-point .ic{width:30px;height:30px;flex:none;border-radius:9px;display:flex;align-items:center;
  justify-content:center;background:#eef3fa;color:var(--t2)}
.lms-point.is-done .ic{background:#d1fae5;color:#047857}
.lms-point .bd{flex:1;min-width:0}
.lms-point .bd b{display:block;font-size:12.7px;line-height:1.6}
.lms-point.is-done .bd b{color:#065f46}
.lms-point .bd p{margin:1px 0 0;font-size:11.4px;color:var(--t3)}

/* 笔记 */
.lms-note textarea{width:100%;min-height:74px;resize:vertical;font-family:inherit}
.lms-notes{margin-top:11px;display:flex;flex-direction:column;gap:8px}
.lms-notes__i{display:flex;gap:10px;align-items:flex-start;padding:8px 11px;border-radius:9px;
  background:var(--panel-2);border:1px solid var(--line-2);font-size:12.3px}
.lms-notes__i .tm{font-family:var(--mono);font-size:11px;color:var(--t3);flex:none;padding-top:1px}
.lms-notes__i .tx{flex:1;min-width:0;line-height:1.8;word-break:break-word}
.lms-notes__e{padding:14px;text-align:center;color:var(--t3);font-size:12.2px;
  border:1px dashed var(--line);border-radius:9px}
.lms-pager{display:flex;align-items:center;gap:10px;margin-top:10px}
.lms-pager .btn svg{width:13px}
.lms-pager .btn[disabled] svg{color:var(--t3)}

/* 课程卡 */
.lms-clist{display:flex;flex-direction:column;gap:10px}
.lms-ccard{display:flex;gap:12px;border:1px solid var(--line);border-radius:11px;overflow:hidden;
  background:var(--panel);cursor:pointer;transition:.16s}
.lms-ccard:hover{border-color:#c7dbff;box-shadow:var(--sh-2)}
.lms-ccard__cv{width:148px;flex:none;height:104px;background:#12233d center/cover no-repeat;position:relative}
.lms-ccard__nv{position:absolute;left:7px;bottom:7px;display:inline-flex;align-items:center;gap:4px;
  font-size:10.8px;color:#fff;background:rgba(8,24,44,.72);border-radius:99px;padding:1.5px 8px}
.lms-ccard__nv svg{width:11.5px;height:11.5px}
.lms-ccard__bd{flex:1;min-width:0;padding:11px 13px 11px 0}
.lms-ccard__bd b{display:block;font-size:13.2px}
.lms-ccard__bd p{margin:3px 0 0;font-size:11.6px;color:var(--t3)}
.lms-ccard__bd .bar-row{margin-top:9px;max-width:280px}
.lms-cbig{display:flex;border:1px solid var(--line);border-radius:12px;overflow:hidden;
  background:var(--panel);cursor:pointer;transition:.16s}
.lms-cbig:hover{border-color:#c7dbff;box-shadow:var(--sh-2)}
.lms-cbig__cv{width:230px;flex:none;background:#12233d center/cover no-repeat;position:relative}
.lms-cbig__badge{position:absolute;left:10px;bottom:10px;display:inline-flex;align-items:center;gap:5px;
  font-size:11.2px;color:#fff;background:rgba(8,24,44,.72);border-radius:99px;padding:2px 9px}
.lms-cbig__badge svg{width:12px;height:12px}
.lms-cbig__bd{flex:1;min-width:0;padding:14px 16px}
.lms-cbig__t{display:block;font-size:16px}
.lms-cbig__s{margin:4px 0 0;font-size:12px;color:var(--t2)}
.lms-cbig__d{margin:7px 0 0;font-size:12.2px;color:var(--t2);line-height:1.78;max-width:760px}
.lms-cbig__ft{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:12px;
  border-top:1px dashed var(--line);padding-top:10px}
.lms-cbig__ft>span{display:inline-flex;align-items:center;gap:5px;font-size:11.8px;color:var(--t2)}
.lms-cbig__ft svg{width:13px;height:13px;color:var(--t3)}

/* 章节行（角色空间里的紧凑列表） */
.lms-chrow{display:flex;align-items:center;gap:9px;padding:7px 10px;border-radius:9px;cursor:pointer}
.lms-chrow+.lms-chrow{border-top:1px solid var(--line-2)}
.lms-chrow:hover{background:var(--panel-2)}
.lms-chrow .no{width:20px;height:20px;flex:none;border-radius:6px;background:#eef3fa;color:var(--t2);
  font-family:var(--mono);font-size:11px;display:flex;align-items:center;justify-content:center}
.lms-chrow .nm{flex:1;min-width:0;font-size:12.4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lms-chrow .pg{width:180px;flex:none}

/* 待办列表 */
.lms-todo{display:flex;flex-direction:column;gap:8px}
.lms-todo__i{display:flex;align-items:center;gap:11px;padding:9px 12px;border:1px solid var(--line);
  border-radius:10px;background:var(--panel-2)}
.lms-todo__i .ic{width:30px;height:30px;flex:none;border-radius:9px;display:flex;align-items:center;
  justify-content:center;background:var(--c-primary-l);color:var(--c-primary)}
.lms-todo__i .bd{flex:1;min-width:0}
.lms-todo__i .bd b{display:block;font-size:12.7px}
.lms-todo__i .bd p{margin:1px 0 0;font-size:11.5px;color:var(--t3)}

/* 章节配置（可展开） */
.lms-chcfg{border:1px solid var(--line);border-radius:10px;overflow:hidden;margin-bottom:8px}
.lms-chcfg.is-open{border-color:#c7dbff;box-shadow:var(--sh-1)}
.lms-chcfg>.hd{display:flex;align-items:center;gap:9px;padding:9px 12px;cursor:pointer;
  background:linear-gradient(180deg,#fff,#fbfdff)}
.lms-chcfg>.hd:hover{background:var(--c-primary-l)}
.lms-chcfg>.hd .no{font-family:var(--mono);font-size:11.4px;color:var(--c-primary);
  background:var(--c-primary-l);border:1px solid #c7dbff;border-radius:99px;padding:1.5px 9px;flex:none}
.lms-chcfg>.hd b{font-size:12.9px;flex:1;min-width:0}
.lms-chcfg>.hd .sp{flex:1}
.lms-chcfg>.hd .arw{color:var(--t3);display:flex;transition:.2s}
.lms-chcfg.is-open>.hd .arw{transform:rotate(180deg)}
.lms-chcfg>.bd{padding:11px 12px;border-top:1px solid var(--line-2);background:var(--panel-2)}
.lms-vidmini{display:block;width:100%;max-width:520px;border-radius:9px;background:#000}

/* 学习报告里的说明块 */
.lms-kv{display:flex;gap:10px;align-items:flex-start;padding:9px 11px;border-radius:10px;
  background:var(--panel-2);border:1px solid var(--line-2)}
.lms-kv .ic{width:28px;height:28px;flex:none;border-radius:8px;display:flex;align-items:center;
  justify-content:center;background:var(--c-primary-l);color:var(--c-primary)}
.lms-kv label{display:block;font-size:11.3px;color:var(--t3)}
.lms-kv b{font-size:12.6px}

/* ============================================================
   三、作业与考试（学生作答 / 教师批阅共用）
   ============================================================ */
.lms-req{white-space:normal;font-size:12.5px;line-height:1.92;color:var(--t1);
  background:var(--panel-2);border:1px solid var(--line-2);border-radius:10px;padding:12px 14px}
.lms-rubric{margin-top:12px;border:1px solid var(--line);border-radius:10px;overflow:hidden}
.lms-rubric__t{display:flex;align-items:center;gap:7px;padding:7px 12px;font-size:12.3px;font-weight:600;
  background:var(--panel-2);border-bottom:1px solid var(--line-2)}
.lms-rubric__t svg{width:13.5px;height:13.5px;color:var(--c-primary)}
.lms-rubric__i{display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:7px 12px;font-size:12.3px;color:var(--t2)}
.lms-rubric__i+.lms-rubric__i{border-top:1px solid var(--line-2)}
.lms-rubric__i b{font-family:var(--mono);color:var(--t1);flex:none}
.lms-graded{margin-top:12px;border:1px solid #a7f3d0;background:var(--c-mint-l);border-radius:10px;
  padding:12px 14px}
.lms-graded__s{font-size:12.8px;color:#065f46}
.lms-graded__s b{font-family:var(--mono);font-size:20px;color:#047857;margin:0 2px}
.lms-graded__c{display:flex;gap:9px;margin-top:9px;padding-top:9px;border-top:1px dashed #a7f3d0}
.lms-graded__c svg{width:15px;height:15px;color:#047857;flex:none;margin-top:2px}
.lms-graded__c p{margin:2px 0 0;font-size:12.3px;color:#065f46;line-height:1.85}
.lms-graded__a{margin-top:9px;padding-top:9px;border-top:1px dashed #a7f3d0;font-size:12.3px;color:#065f46}
.lms-graded__a>div{margin-top:4px;white-space:pre-wrap;line-height:1.85}

/* 考试 */
.lms-exambar{display:flex;align-items:center;gap:9px;flex-wrap:wrap;padding:9px 13px;
  border:1px solid #c7dbff;background:var(--c-primary-l);border-radius:10px;margin-bottom:11px;
  font-size:12.4px;color:#1e3a8a;position:sticky;top:calc(var(--tb-h) + 6px);z-index:5}
.lms-exambar svg{width:15px;height:15px}
.lms-exambar .btn{margin-left:auto}
.lms-examqs{display:flex;flex-direction:column;gap:10px}
.lms-examq{border:1px solid var(--line);border-radius:11px;background:var(--panel);padding:12px 14px}
.lms-examq__h{display:flex;align-items:center;gap:8px;margin-bottom:7px}
.lms-examq__h .no{width:21px;height:21px;flex:none;border-radius:6px;background:var(--c-primary);
  color:#fff;font-family:var(--mono);font-size:11.5px;display:flex;align-items:center;justify-content:center}
.lms-examq__s{font-size:13.1px;line-height:1.82;color:var(--t1)}
.lms-examq__o{display:flex;flex-direction:column;gap:6px;margin-top:10px}
.lms-opt{display:flex;align-items:flex-start;gap:9px;padding:7px 11px;border:1px solid var(--line);
  border-radius:9px;cursor:pointer;font-size:12.5px;color:var(--t1);transition:.13s;background:var(--panel-2)}
.lms-opt:hover{border-color:#c7dbff;background:var(--c-primary-l)}
.lms-opt input{margin:3px 0 0;flex:none;accent-color:var(--c-primary)}
.lms-opt:has(input:checked){border-color:var(--c-primary);background:var(--c-primary-l);
  box-shadow:inset 0 0 0 1px var(--c-primary)}
.lms-qs{display:flex;flex-wrap:wrap;gap:8px}
.lms-qs__i{display:inline-flex;align-items:center;gap:6px;font-size:11.8px;color:var(--t2);
  border:1px solid var(--line);border-radius:99px;padding:2px 11px;background:var(--panel-2)}
.lms-qs__i b{width:17px;height:17px;border-radius:50%;background:var(--c-primary-l);color:var(--c-primary);
  font-family:var(--mono);font-size:10.5px;display:inline-flex;align-items:center;justify-content:center}

/* 交卷结果 */
.lms-result{text-align:center;padding:18px 16px;border-radius:12px;background:var(--grad-soft);
  border:1px solid #c7dbff}
.lms-result__big b{font-family:var(--mono);font-size:44px;font-weight:740;color:var(--c-primary-d);
  letter-spacing:-1.6px}
.lms-result__big span{display:block;font-size:12.2px;color:var(--t2);margin-top:2px}
.lms-result__grid{display:flex;justify-content:center;gap:26px;flex-wrap:wrap;margin-top:14px;
  border-top:1px dashed #c7dbff;padding-top:12px}
.lms-result__grid>div{min-width:88px}
.lms-result__grid label{display:block;font-size:11.4px;color:var(--t3)}
.lms-result__grid b{font-size:17px;font-family:var(--mono);color:var(--t1)}

/* 逐题解析 */
.lms-ana{border:1px solid var(--line);border-radius:11px;padding:11px 13px;margin-bottom:9px;
  background:var(--panel)}
.lms-ana.is-ok{border-color:#a7f3d0;background:#f7fffc}
.lms-ana.is-no{border-color:#fecdd3;background:#fffafb}
.lms-ana__h{display:flex;align-items:center;gap:8px;font-size:12.2px;color:var(--t2)}
.lms-ana__h .no{width:20px;height:20px;flex:none;border-radius:6px;background:#eef3fa;color:var(--t2);
  font-family:var(--mono);font-size:11px;display:flex;align-items:center;justify-content:center}
.lms-ana.is-ok .lms-ana__h .no{background:#d1fae5;color:#047857}
.lms-ana.is-no .lms-ana__h .no{background:#ffe4e6;color:#be123c}
.lms-ana__s{margin-top:7px;font-size:12.8px;line-height:1.8}
.lms-ana__o{display:flex;flex-direction:column;gap:5px;margin-top:9px}
.lms-anao{display:flex;align-items:flex-start;gap:9px;padding:6px 11px;border-radius:8px;font-size:12.3px;
  border:1px solid var(--line-2);background:var(--panel-2);color:var(--t2)}
.lms-anao.right{border-color:#a7f3d0;background:var(--c-mint-l);color:#065f46}
.lms-anao.right::after{content:"正确答案";margin-left:auto;font-size:11px;color:#047857;flex:none}
.lms-anao.wrong{border-color:#fecdd3;background:var(--c-rose-l);color:#be123c}
.lms-anao.wrong::after{content:"我的选择";margin-left:auto;font-size:11px;color:#be123c;flex:none}
.lms-ana__e{display:flex;gap:9px;margin-top:10px;padding-top:9px;border-top:1px dashed var(--line);
  font-size:12.3px;color:var(--t2);line-height:1.85}
.lms-ana__e svg{width:14.5px;height:14.5px;color:var(--c-primary);flex:none;margin-top:3px}
.lms-ana__e b{color:var(--t1)}

/* ============================================================
   四、教师端：批阅、学情、督导
   ============================================================ */
.lms-stuans{border:1px solid var(--line);border-radius:10px;overflow:hidden}
.lms-stuans__t{display:flex;align-items:center;gap:7px;padding:7px 12px;font-size:12.2px;font-weight:600;
  background:var(--panel-2);border-bottom:1px solid var(--line-2)}
.lms-stuans__t svg{width:13.5px;height:13.5px;color:var(--c-primary)}
.lms-stuans__b{padding:11px 13px;font-size:12.5px;line-height:1.9;white-space:pre-wrap;color:var(--t1);
  max-height:320px;overflow:auto;background:var(--panel)}
.lms-names{display:flex;flex-wrap:wrap;gap:6px}
.lms-name{font-size:12.1px;color:var(--t2);background:var(--panel-2);border:1px solid var(--line);
  border-radius:99px;padding:2px 11px}
.lms-yes{color:#047857;display:inline-flex}
.lms-no{color:#cbd5e1;display:inline-flex}
.lms-yes svg,.lms-no svg{width:15px;height:15px}
.lms-rolebadge{display:inline-block;font-size:11.2px;color:#fff;border-radius:99px;padding:1.5px 9px;
  white-space:nowrap;line-height:1.7}
.lms-pwd{font-family:var(--mono);font-size:11.6px;color:var(--t2)}
tr.is-off{opacity:.55}
tr.is-off .lms-pwd{text-decoration:line-through}

/* ============================================================
   五、企业案例
   ============================================================ */
.lms-chips{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:10px}
.lms-chips.v{margin-bottom:0}
.chip{display:inline-flex;align-items:center;gap:5px;border:1px solid var(--line);background:#fff;
  color:var(--t2);border-radius:99px;padding:3px 12px;font-size:11.8px;cursor:pointer;transition:.14s;
  line-height:1.7;font-family:inherit}
.chip:hover{border-color:#c7dbff;color:var(--c-primary);background:var(--c-primary-l)}
.chip.is-on{background:var(--grad);color:#fff;border-color:transparent;font-weight:550;
  box-shadow:0 3px 10px rgba(37,99,235,.24)}
.chip.static{cursor:default;background:var(--panel-2);color:var(--t2)}
.chip.static:hover{border-color:var(--line);background:var(--panel-2);color:var(--t2)}
.chip svg{width:12.5px;height:12.5px}
/* 可跳转的三列条目（实训流程图：沙盘功能 / 课程知识点）
   —— 用 <button> 画成 chip，点击直达对应模块。
   箭头默认收起，hover / focus 时才出现，避免整屏都是小箭头。 */
.chip-wrap{display:flex;flex-wrap:wrap;gap:6px;line-height:1.9}
button.chip{font-family:inherit;text-align:left}
.chip.link .chip__go{display:inline-flex;width:0;overflow:hidden;opacity:0;transition:.16s;margin-left:0}
.chip.link:hover .chip__go,.chip.link:focus-visible .chip__go{width:13px;opacity:1;margin-left:1px}
.chip.link:focus-visible{outline:2px solid var(--c-primary);outline-offset:1px}

.lms-caselist{display:flex;flex-direction:column;gap:8px;max-height:620px;overflow:auto;padding-right:2px}
.lms-caserow{display:flex;gap:10px;border:1px solid var(--line);border-radius:10px;overflow:hidden;
  cursor:pointer;transition:.15s;background:var(--panel)}
.lms-caserow:hover{border-color:#c7dbff;background:var(--c-primary-l)}
.lms-caserow.is-on{border-color:var(--c-primary);background:var(--c-primary-l);box-shadow:var(--sh-1)}
.lms-caserow .cv{width:64px;flex:none;background:#12233d center/cover no-repeat;position:relative;
  display:flex;align-items:flex-end;justify-content:center}
.lms-caserow .cv b{font-size:11px;color:#fff;background:rgba(8,24,44,.6);width:100%;text-align:center;
  padding:3px 0;letter-spacing:.5px}
.lms-caserow .bd{flex:1;min-width:0;padding:9px 11px 9px 0}
.lms-caserow .bd b{display:block;font-size:12.6px;line-height:1.5}
.lms-caserow .bd p{margin:2px 0 4px;font-size:11.3px;color:var(--t3);font-family:var(--mono)}

/* 案例详情里的分段小节 */
.lms-sec{margin-top:11px}
.lms-sec:first-child{margin-top:0}
.lms-sec h4{display:flex;align-items:center;gap:6px;font-size:12.6px;color:var(--t1);margin-bottom:5px}
.lms-sec h4 svg{width:14px;height:14px;color:var(--c-primary)}
.lms-sec p{margin:0;font-size:12.5px;line-height:1.9;color:var(--t2)}
.lms-sec--warn{padding:11px 13px;border-radius:10px;border:1px solid #fde68a;background:var(--c-amber-l)}
.lms-sec--warn h4{color:#92400e}
.lms-sec--warn h4 svg{color:#b45309}
.lms-sec--warn p{color:#a16207}
.lms-sec--ok{padding:11px 13px;border-radius:10px;border:1px solid #a7f3d0;background:var(--c-mint-l)}
.lms-sec--ok h4{color:#065f46}
.lms-sec--ok h4 svg{color:#047857}
.lms-sec--ok p{color:#047857}
.lms-2col{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 18px}

.lms-chaps{display:flex;flex-direction:column;gap:7px}
.lms-chapbtn{display:flex;align-items:center;gap:9px;width:100%;text-align:left;border:1px solid var(--line);
  background:var(--panel-2);border-radius:10px;padding:8px 12px;cursor:pointer;transition:.14s;
  font-family:inherit}
.lms-chapbtn:hover{border-color:#c7dbff;background:var(--c-primary-l)}
.lms-chapbtn .no{font-family:var(--mono);font-size:11px;color:var(--c-primary);flex:none}
.lms-chapbtn b{flex:1;min-width:0;font-size:12.6px;color:var(--t1)}
.lms-walk{border:1px solid var(--line);border-radius:10px;padding:12px 14px;background:var(--panel-2);
  margin-top:10px}
.lms-walk>b{font-size:13.4px}
.lms-walk>p{margin:3px 0 0;font-size:11.8px;color:var(--t3)}

/* ============================================================
   六、AI 助教
   ============================================================ */
/* 全站悬浮入口挂在 #app 上（不是顶栏 —— 顶栏图标数被探针锁死为 2）。
   z-index 取 40：要低于浮层宿主（modal / drawer 在 60 以上），
   否则抽屉打开时这个圆钮会压在抽屉内容上。 */
#tut-fab{position:fixed;right:20px;bottom:20px;z-index:40;display:inline-flex;align-items:center;gap:7px;
  border:none;border-radius:99px;padding:11px 17px;cursor:pointer;font-family:inherit;
  background:var(--grad);color:#fff;font-size:12.8px;font-weight:600;
  box-shadow:0 8px 24px rgba(37,99,235,.36);transition:.18s}
#tut-fab:hover{transform:translateY(-2px);box-shadow:0 12px 30px rgba(37,99,235,.44)}
#tut-fab svg{width:16px;height:16px}
.tut{display:flex;flex-direction:column;gap:12px;min-height:0}
.tut--page{padding:0}
.tut-log{display:flex;flex-direction:column;gap:12px;overflow-y:auto;padding:13px 15px;
  background:var(--panel-2);min-height:190px}
.tut--page .tut-log{height:430px}
.tut-msg{display:flex;gap:10px;align-items:flex-start}
.tut-msg.me{flex-direction:row-reverse}
.tut-av{width:28px;height:28px;flex:none;border-radius:9px;display:flex;align-items:center;
  justify-content:center;background:var(--grad);color:#fff}
.tut-av svg{width:15px;height:15px}
.tut-bd{max-width:82%;min-width:0}
.tut-msg.me .tut-bd{display:flex;justify-content:flex-end}
.tut-tx{font-size:12.6px;line-height:1.88;color:var(--t1);background:#fff;border:1px solid var(--line);
  border-radius:11px;padding:9px 13px;box-shadow:var(--sh-1);word-break:break-word}
.tut-msg.me .tut-tx{background:var(--grad);color:#fff;border-color:transparent}
.tut-tx b{color:var(--c-primary-d)}
.tut-msg.me .tut-tx b{color:#fff}
.tut-tx code{font-family:var(--mono);font-size:11.8px;background:#eef3fa;color:#1e3a8a;
  border-radius:5px;padding:1px 5px}
.tut-em{font-style:normal;font-weight:600;color:var(--c-primary-d);
  background:var(--c-primary-l);border-radius:5px;padding:0 5px}
.tut-src{margin-top:5px;font-size:11px;color:var(--t3)}
.tut-tip{display:flex;gap:8px;margin-top:8px;padding:8px 11px;border-radius:9px;
  border:1px solid #fde68a;background:var(--c-amber-l);font-size:12.1px;color:#a16207;line-height:1.8}
.tut-tip svg{width:14px;height:14px;flex:none;margin-top:3px;color:#d97706}
.tut-go{display:flex;flex-wrap:wrap;gap:7px;margin-top:9px}
.tut-cand{display:flex;flex-wrap:wrap;gap:6px;margin-top:9px;padding-top:9px;border-top:1px dashed var(--line)}
.tut-cand::before{content:"相关问题";font-size:11px;color:var(--t3);width:100%;margin-bottom:-2px}
.tut-chip{display:inline-flex;align-items:center;gap:5px;border:1px solid var(--line);background:#fff;
  color:var(--t2);border-radius:99px;padding:3px 11px;font-size:11.6px;cursor:pointer;transition:.13s;
  line-height:1.7;font-family:inherit;text-align:left}
.tut-chip:hover{border-color:#c7dbff;color:var(--c-primary);background:var(--c-primary-l)}
.tut-chip.blk{display:block;width:100%;border-radius:8px}
.tut-chip svg{width:12px;height:12px}
.tut-quick{display:flex;flex-wrap:wrap;gap:7px;padding:10px 15px 0}
.tut-in{display:flex;gap:9px;padding:10px 15px 0}
.tut-in .inp{flex:1;min-width:0}
.tut-bar{display:flex;align-items:center;gap:7px;flex-wrap:wrap;padding:9px 13px;
  border-bottom:1px solid var(--line-2);background:var(--panel-2)}
.tut-cur{display:inline-flex;align-items:center;gap:5px;font-size:11.8px;color:var(--t2);
  margin-right:auto;min-width:0}
.tut-cur b{color:var(--t1);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:280px}
.tut-cur svg{width:13px;height:13px;color:var(--c-primary)}
.tut-foot{display:flex;align-items:center;gap:8px;padding:10px 15px 13px;font-size:11.4px;
  color:var(--t3);line-height:1.7;flex-wrap:wrap}
.tut-foot svg{width:13px;height:13px;flex:none}
.tut-foot b{color:var(--t2)}

/* 整页版右侧的知识库目录 */
.tut-cat{border-bottom:1px solid var(--line-2)}
.tut-cat:last-child{border-bottom:none}
.tut-cat>.hd2{display:flex;align-items:center;gap:8px;padding:9px 12px;cursor:pointer;font-size:12.5px}
.tut-cat>.hd2:hover{background:var(--c-primary-l)}
.tut-cat>.hd2 svg{width:14.5px;height:14.5px;color:var(--c-primary);flex:none}
.tut-cat>.hd2 b{flex:1;min-width:0}
.tut-cat>.hd2 .arw{color:var(--t3);display:flex;transition:.2s}
.tut-cat.is-open>.hd2 .arw{transform:rotate(180deg)}
.tut-cat>.items{display:none;flex-direction:column;gap:6px;padding:0 12px 11px}
.tut-cat.is-open>.items{display:flex}

/* ============================================================
   八、窄屏收口
   ============================================================ */
@media(max-width:1240px){
  .lms-learn{grid-template-columns:1fr}
  .lms-learn__nav{position:static}
  .lms-outline{grid-template-columns:1fr}
  .lms-2col{grid-template-columns:1fr}
  .lms-cbig{flex-direction:column}
  .lms-cbig__cv{width:100%;height:150px}
}
@media(max-width:900px){
  .lms-cont>.bd{flex-direction:column;align-items:flex-start}
  .lms-ccard{flex-direction:column}
  .lms-ccard__cv{width:100%}
  .lms-ccard__bd{padding:0 13px 12px}
  .lms-exambar{position:static}
}

/* 打印：视频与交互控件不打印，只留内容 */
@media print{
  #tut-fab{display:none}
  .lms-video,.lms-vidmini,.lms-exambar,.lms-pager{display:none}
}
