/* ==========================================================================
 * 初中语文 · 互动教学平台  统一样式（浅色科技风）
 * ========================================================================== */
:root{
  --bg:#eef2f9; --card:#fff; --ink:#1e293b; --ink2:#475569; --ink3:#94a3b8;
  --line:#e6ecf7; --brand:#4f46e5; --brand2:#0ea5e9;
  --ok:#0f9d58; --okbg:#e8f8ef; --bad:#d9424a; --badbg:#fdeeee; --warn:#c47f00; --warnbg:#fff6e0;
  --r:16px; --sh:0 2px 12px rgba(30,41,59,.07); --sh2:0 12px 30px rgba(79,70,229,.18);
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;padding:0}
body{
  color:var(--ink);background:var(--bg);font-size:15px;line-height:1.65;
  font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Hiragino Sans GB","Microsoft YaHei",system-ui,sans-serif;
  background-image:radial-gradient(circle at 6% -8%,rgba(79,70,229,.14),transparent 42%),
                   radial-gradient(circle at 96% 0%,rgba(14,165,233,.13),transparent 38%);
  background-attachment:fixed;min-height:100vh;
  padding-bottom:env(safe-area-inset-bottom);
}
a{color:var(--brand);text-decoration:none}
h1,h2,h3,h4{margin:0;line-height:1.35}
button,input,select,textarea{font-family:inherit;font-size:inherit;color:inherit}

/* ---------------- 顶栏 ---------------- */
.topbar{background:linear-gradient(135deg,#4f46e5,#5b5bd6 45%,#0ea5e9);color:#fff;
  border-radius:0 0 24px 24px;box-shadow:0 8px 26px rgba(79,70,229,.24);position:relative;overflow:hidden}
.topbar::after{content:"";position:absolute;inset:0;opacity:.42;pointer-events:none;
  background-image:linear-gradient(rgba(255,255,255,.13) 1px,transparent 1px),
                   linear-gradient(90deg,rgba(255,255,255,.13) 1px,transparent 1px);
  background-size:26px 26px;
  -webkit-mask-image:radial-gradient(circle at 84% 16%,#000,transparent 62%);
  mask-image:radial-gradient(circle at 84% 16%,#000,transparent 62%)}
.tbWrap{position:relative;z-index:1;max-width:1080px;margin:0 auto;padding:16px 16px 18px;
  display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.brand{display:flex;align-items:center;gap:11px;min-width:0}
.logo{width:40px;height:40px;border-radius:12px;flex:0 0 auto;display:flex;align-items:center;justify-content:center;
  background:rgba(255,255,255,.2);border:1px solid rgba(255,255,255,.4);font-weight:800;font-size:17px}
.brand b{display:block;font-size:16.5px;font-weight:800;letter-spacing:.3px}
.brand span{display:block;font-size:12px;opacity:.88}
.tbRight{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.who{font-size:13px;background:rgba(255,255,255,.2);border:1px solid rgba(255,255,255,.36);
  border-radius:999px;padding:5px 12px;white-space:nowrap}
.ghostbtn{background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.4);color:#fff;
  border-radius:999px;padding:5px 13px;font-size:13px;cursor:pointer;transition:background .15s}
.ghostbtn:hover{background:rgba(255,255,255,.32)}

/* ---------------- 布局 ---------------- */
.wrap{max-width:1080px;margin:0 auto;padding:16px 14px 46px}
.tabs{display:flex;gap:8px;overflow-x:auto;padding:2px 0 14px;-webkit-overflow-scrolling:touch}
.tabs::-webkit-scrollbar{display:none}
.tab{border:1px solid var(--line);background:#fff;color:var(--ink2);border-radius:999px;
  padding:7px 16px;font-size:14px;font-weight:600;cursor:pointer;white-space:nowrap;transition:.15s}
.tab:hover{border-color:#c7d2fe}
.tab.on{background:linear-gradient(135deg,#4f46e5,#0ea5e9);color:#fff;border-color:transparent;
  box-shadow:0 6px 16px rgba(79,70,229,.26)}
.page{display:none}.page.on{display:block;animation:fade .25s ease}
@keyframes fade{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}
.tab .tagS{display:inline-block;font-size:10.5px;font-weight:700;border-radius:999px;padding:1px 7px;
  margin-left:5px;background:#eef2ff;color:#4338ca}
.tab.on .tagS{background:rgba(255,255,255,.24);color:#fff}

/* ---------------- 备课小助手 ---------------- */
.prep{font-size:14px}
.prep .pk{background:#fff;border:1px solid var(--line);border-radius:18px;padding:16px 17px;margin-bottom:14px;
  box-shadow:0 2px 12px rgba(30,41,59,.06)}
.prep .pk>h3{margin:0 0 3px;font-size:17px;display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.prep .pk>h3 .n{display:inline-flex;align-items:center;justify-content:center;min-width:30px;height:24px;
  border-radius:8px;background:linear-gradient(135deg,#eef2ff,#e0f2fe);color:#4338ca;font-size:12.5px;font-weight:800;padding:0 7px}
.prep .pk>p.cap{margin:0 0 10px;color:var(--ink3);font-size:12.5px}
.prep h4.ps{margin:15px 0 8px;font-size:14.5px;color:#312e81;display:flex;align-items:center;gap:7px}
.prep h4.ps::before{content:"";width:5px;height:17px;border-radius:3px;background:linear-gradient(180deg,#4f46e5,#0ea5e9)}
.prep .kv{display:grid;grid-template-columns:1fr;gap:9px}
@media(min-width:760px){.prep .kv{grid-template-columns:1fr 1fr}}
.prep .kv>div{background:#f8faff;border:1px solid #eef2ff;border-radius:13px;padding:11px 13px}
.prep .kv>div b{display:block;font-size:13px;color:#3730a3;margin-bottom:3px}
.prep .kv>div span{font-size:13px;color:var(--ink2);line-height:1.72}
.prep .plist{display:flex;flex-direction:column;gap:7px}
.prep .pl{display:flex;gap:10px;align-items:flex-start;background:#f8faff;border:1px solid #eef2ff;
  border-radius:12px;padding:9px 12px;font-size:13.2px;color:var(--ink2)}
.prep .pl .no{flex:0 0 auto;min-width:26px;height:22px;border-radius:7px;display:inline-flex;align-items:center;
  justify-content:center;background:#eef2ff;color:#4338ca;font-weight:800;font-size:12px;padding:0 6px}
.prep .pl .peri{flex:0 0 auto;font-size:11.5px;font-weight:700;color:#0f766e;background:#e6fffb;
  border-radius:999px;padding:2px 9px;margin-left:auto;white-space:nowrap}
.prep .dims{display:grid;grid-template-columns:1fr;gap:10px}
@media(min-width:760px){.prep .dims{grid-template-columns:1fr 1fr}}
.prep .dims>div{background:linear-gradient(135deg,#f7f8ff,#f2f9ff);border:1px solid #e8ecff;border-radius:14px;padding:11px 13px}
.prep .dims>div b{display:block;font-size:13.5px;color:#312e81;margin-bottom:5px}
.prep .dims ul{margin:0;padding-left:17px}
.prep .dims li{font-size:13px;color:var(--ink2);line-height:1.75;margin-bottom:3px}
.prep table.rub{width:100%;border-collapse:collapse;font-size:12.8px;margin-top:4px}
.prep table.rub th,.prep table.rub td{border:1px solid #e6e9f5;padding:7px 9px;vertical-align:top;text-align:left;line-height:1.68}
.prep table.rub th{background:#f4f6ff;color:#312e81;font-weight:700;white-space:nowrap}
.prep table.rub td.d{background:#fafbff;font-weight:700;color:#312e81;white-space:nowrap}
.prep .hw{display:flex;flex-direction:column;gap:9px}
.prep .hw .grp{border:1px solid #e8ecff;border-radius:13px;padding:11px 13px;background:#fbfcff}
.prep .hw .grp>b{display:block;font-size:13.2px;color:#312e81;margin-bottom:6px}
.prep .hw .q{font-size:13px;color:var(--ink);line-height:1.75;margin-bottom:2px;display:flex;gap:7px}
.prep .hw .q .i{flex:0 0 auto;color:#94a3b8;font-weight:700}
.prep .hw .a{font-size:12.5px;color:#0f766e;line-height:1.7;margin:0 0 7px 17px}
.prep .note{background:#fffaf0;border:1px solid #fde3b8;border-radius:12px;padding:10px 13px;font-size:13px;color:#92400e;line-height:1.75}
.prep .ops{display:flex;flex-wrap:wrap;gap:7px}
.prep .ops .op{background:#f4f6ff;border:1px solid #e6e9f5;border-radius:11px;padding:8px 11px;font-size:12.8px;color:var(--ink2);line-height:1.7}
.prep .ops .op b{color:#3730a3}

@media print{
  body.printing-prep .topbar,
  body.printing-prep .tabs,
  body.printing-prep .scopeBar,
  body.printing-prep .prepBar,
  body.printing-prep #prepPick,
  body.printing-prep .page:not(#p-prep){display:none!important}
  body.printing-prep{background:#fff}
  body.printing-prep .wrap{max-width:none;padding:0}
  body.printing-prep #prepOut{margin:0!important}
  body.printing-prep .prep .pk{box-shadow:none;border:0;border-radius:0;padding:0 0 10px;margin:0 0 10px;
    page-break-inside:auto}
  body.printing-prep .prep h4.ps{page-break-after:avoid}
  body.printing-prep .prep table.rub{page-break-inside:avoid}
  body.printing-prep .prep .pk>h3{page-break-after:avoid}
  @page{margin:14mm 12mm}
}

.card{background:var(--card);border-radius:var(--r);box-shadow:var(--sh);padding:16px;margin-bottom:15px;
  border:1px solid #f2f6fe}
.card>h3,.hd{display:flex;align-items:center;gap:9px;font-size:16px;font-weight:800;margin:0 0 12px}
.hd::before,.card>h3::before{content:"";width:5px;height:18px;border-radius:3px;flex:0 0 auto;
  background:linear-gradient(180deg,#4f46e5,#0ea5e9)}
.hd .sub{font-weight:500;font-size:12.5px;color:var(--ink3);margin-left:auto}
.muted{color:var(--ink3);font-size:13px}
.grid{display:grid;gap:12px}
.grid.c2{grid-template-columns:1fr}
.grid.c3{grid-template-columns:1fr}
.grid.c4{grid-template-columns:repeat(2,1fr)}
@media(min-width:700px){.grid.c2{grid-template-columns:1fr 1fr}.grid.c3{grid-template-columns:repeat(3,1fr)}
  .grid.c4{grid-template-columns:repeat(4,1fr)}}
@media(min-width:960px){.grid.c2.wide{grid-template-columns:1.25fr .75fr}}

/* ---------------- 统计卡 ---------------- */
.stat{background:#fff;border-radius:var(--r);box-shadow:var(--sh);padding:14px 15px;border:1px solid #f2f6fe}
.stat .lb{font-size:12.5px;color:var(--ink3);display:flex;align-items:center;gap:5px}
.stat .vl{font-size:25px;font-weight:800;letter-spacing:.5px;margin-top:3px;
  background:linear-gradient(135deg,#4f46e5,#0ea5e9);-webkit-background-clip:text;background-clip:text;color:transparent}
.stat .vl.plain{background:none;-webkit-text-fill-color:initial;color:var(--ink)}
.stat .hint{font-size:12px;color:var(--ink3);margin-top:2px}

/* ---------------- 按钮 ---------------- */
.btn{border:none;border-radius:11px;padding:9px 17px;font-size:14.5px;font-weight:700;cursor:pointer;
  background:linear-gradient(135deg,#4f46e5,#0ea5e9);color:#fff;box-shadow:0 6px 16px rgba(79,70,229,.24);
  transition:transform .15s,box-shadow .15s;white-space:nowrap}
.btn:hover{transform:translateY(-1px);box-shadow:0 10px 22px rgba(79,70,229,.3)}
.btn:active{transform:scale(.98)}
.btn.sm{padding:6px 13px;font-size:13px;border-radius:9px}
.btn.ghost{background:#fff;color:var(--brand);border:1.4px solid #c7d2fe;box-shadow:none}
.btn.ghost:hover{background:#f5f7ff}
.btn.gray{background:#f1f5f9;color:var(--ink2);box-shadow:none}
.btn.gray:hover{background:#e6ecf7}
.btn.danger{background:#fff;color:var(--bad);border:1.4px solid #f6c9c9;box-shadow:none}
.btn.danger:hover{background:var(--badbg)}
.btn.danger.solid{background:var(--bad);color:#fff;border-color:var(--bad)}
.btn.danger.solid:hover{filter:brightness(1.06)}
.btn.ok{background:linear-gradient(135deg,#0f9d58,#34c27a)}
.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}

/* ---------------- 表单 ---------------- */
.field{margin-bottom:12px}
.field label{display:block;font-size:13px;font-weight:700;color:var(--ink2);margin-bottom:5px}
.field label em{font-style:normal;color:var(--ink3);font-weight:500;font-size:12px}
input[type=text],input[type=password],input[type=number],input[type=datetime-local],select,textarea{
  width:100%;border:1.4px solid var(--line);border-radius:11px;padding:9px 12px;background:#fbfcff;
  outline:none;transition:border-color .15s,box-shadow .15s}
input:focus,select:focus,textarea:focus{border-color:#a5b4fc;background:#fff;box-shadow:0 0 0 3px rgba(79,70,229,.1)}
textarea{min-height:78px;resize:vertical;line-height:1.6}
.row{display:flex;gap:10px;flex-wrap:wrap}
.row>*{flex:1;min-width:150px}
/* 五级筛选条：学段 / 年级 / 学科 / 教材版本 / 教材名称 */
.fbar5{display:grid;grid-template-columns:repeat(auto-fit,minmax(122px,1fr));gap:9px;align-items:end;margin-bottom:12px}
.fbar2{display:grid;grid-template-columns:1fr 1fr;gap:9px;align-items:end;margin-bottom:12px}
.fbar2>.field{margin:0}
@media(max-width:430px){.fbar2{grid-template-columns:1fr}}
.fbar5>.field{margin:0}
.fbar5 select{padding:9px 10px;font-size:13.5px}
@media(max-width:430px){.fbar5{grid-template-columns:1fr 1fr}.fbar5>.field:last-child{grid-column:1/-1}}
/* 新建授课任务：开放 / 截止时间选项等宽一行，节省空间 */
.radRow{display:grid;gap:2px 8px;margin-bottom:2px}
.radRow .chk{align-items:center;white-space:nowrap;padding:5px 6px;font-size:13.5px;margin:0}
.radRow2{grid-template-columns:1fr 1fr}
.radRow3{grid-template-columns:1fr 1fr 1fr}
@media(max-width:560px){.radRow3{grid-template-columns:1fr}}
/* 新建授课任务 · AI 课包选择：顶栏（筛选按钮 + 搜索框）一行；列表仿学生端课包列表 */
.tpBar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:10px}
.tpBar .btn{flex:0 0 auto}
.tpBar input[type=text]{flex:1;min-width:160px}
#nMods .chk .id{display:none}
#nMods .chk{background:#fff;border:1px solid #e5eaf5;border-radius:10px;padding:8px 10px;transition:border-color .15s,box-shadow .15s}
#nMods .chk:hover{border-color:#4f46e5;box-shadow:0 2px 8px rgba(79,70,229,.10)}

/* ---------------- 徽标 ---------------- */
.tag{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:700;border-radius:999px;padding:3px 10px;
  background:#eef2ff;color:#4338ca;white-space:nowrap}
.tag.ok{background:var(--okbg);color:var(--ok)}
.tag.bad{background:var(--badbg);color:var(--bad)}
.tag.warn{background:var(--warnbg);color:var(--warn)}
.tag.gray{background:#f1f5f9;color:var(--ink2)}

/* ---------------- 列表项 ---------------- */
.item{display:flex;align-items:center;gap:12px;padding:12px 13px;border:1px solid var(--line);
  border-radius:14px;margin-bottom:10px;background:#fff;transition:box-shadow .15s,border-color .15s}
.item:hover{border-color:#c7d2fe;box-shadow:0 6px 18px rgba(79,70,229,.08)}
.item .no{flex:0 0 auto;min-width:42px;height:42px;padding:0 9px;border-radius:12px;display:flex;align-items:center;justify-content:center;
  font-weight:800;font-size:12.5px;white-space:nowrap;background:linear-gradient(135deg,#4f46e5,#6366f1);color:#fff;box-shadow:0 2px 6px rgba(79,70,229,.25)}
.item .body{flex:1;min-width:0}
.item .body b{display:block;font-size:15px}
.item .body .mt{font-size:12.5px;color:var(--ink3);margin-top:2px}
.item .acts{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end;flex:0 0 auto}

/* ---------------- 进度条 ---------------- */
.bar{height:8px;border-radius:999px;background:#eef2f9;overflow:hidden}
.bar>i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#4f46e5,#0ea5e9);
  transition:width .45s ease}
.bar.ok>i{background:linear-gradient(90deg,#0f9d58,#34c27a)}

/* ---------------- 表格 ---------------- */
.tbwrap{overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:12px;border:1px solid var(--line)}
table.tb{width:100%;border-collapse:collapse;font-size:13.5px;min-width:520px}
table.tb th,table.tb td{padding:9px 10px;text-align:center;border-bottom:1px solid var(--line);white-space:nowrap}
table.tb th{background:#f5f8ff;color:#4338ca;font-weight:700;position:sticky;top:0}
table.tb td.l{text-align:left;white-space:normal;min-width:190px}
table.tb tr:last-child td{border-bottom:none}
table.tb tr:hover td{background:#fafbff}
.rate{font-weight:800}
.rate.low{color:var(--bad)}
.rate.mid{color:var(--warn)}
.rate.hi{color:var(--ok)}

/* ---------------- 弹层 ---------------- */
.mask{position:fixed;inset:0;background:rgba(15,23,42,.5);backdrop-filter:blur(3px);z-index:80;
  display:none;align-items:flex-end;justify-content:center;padding:0}
.mask.on{display:flex}
@media(min-width:700px){.mask{align-items:center;padding:20px}}
.modal{background:#fff;width:100%;max-width:640px;max-height:92vh;overflow:auto;border-radius:20px 20px 0 0;
  padding:18px;animation:up .28s ease}
@media(min-width:700px){.modal{border-radius:20px}}
@keyframes up{from{transform:translateY(30px);opacity:.4}to{transform:none;opacity:1}}
.modal .mhd{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}
.modal .mhd h3{font-size:17px;font-weight:800}
.xbtn{border:none;background:#f1f5f9;color:var(--ink2);width:30px;height:30px;border-radius:50%;cursor:pointer;
  font-size:16px;line-height:1;display:flex;align-items:center;justify-content:center}
.xbtn:hover{background:#e6ecf7}
.mfoot{display:flex;gap:10px;justify-content:flex-end;margin-top:16px;flex-wrap:wrap}

/* ---------------- 登录页 ---------------- */
.loginWrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:22px 16px}
.loginBox{width:100%;max-width:430px}
.loginBox .hdTop{text-align:center;color:#fff;margin-bottom:18px}
.loginBox .hdTop .logo{width:56px;height:56px;margin:0 auto 12px;font-size:22px;border-radius:18px;
  background:rgba(255,255,255,.22);border:1px solid rgba(255,255,255,.45);color:#fff}
.loginBox .hdTop h1{font-size:21px;font-weight:800;color:var(--ink)}
.loginBox .hdTop p{margin:5px 0 0;font-size:13px;color:var(--ink2)}
.roleSel{display:flex;gap:10px;margin-bottom:14px}
.roleSel button{flex:1;border:1.6px solid var(--line);background:#fff;border-radius:13px;padding:12px 8px;cursor:pointer;
  font-weight:700;font-size:14.5px;color:var(--ink2);transition:.15s}
.roleSel button.on{border-color:var(--brand);color:var(--brand);background:#f5f7ff;box-shadow:0 6px 16px rgba(79,70,229,.14)}
.err{background:var(--badbg);color:var(--bad);border-radius:11px;padding:9px 12px;font-size:13.5px;margin-bottom:12px;display:none}
.err.on{display:block}
.notice{background:#f5f8ff;border:1px dashed #c7d2fe;border-radius:12px;padding:11px 13px;font-size:13px;color:var(--ink2);line-height:1.75}
.notice b{color:var(--brand)}

/* ---------------- 错题卡 ---------------- */
.wcard{border:1px solid var(--line);border-radius:15px;padding:14px;margin-bottom:12px;background:#fff}
.wcard.st-open{border-left:4px solid var(--bad)}
.wcard.st-corrected{border-left:4px solid #f0b429}
.wcard.st-mastered{border-left:4px solid var(--ok)}
.wcard .wq{font-size:14.8px;line-height:1.7;margin:8px 0}
.wcard .wline{font-size:13.5px;margin:5px 0;color:var(--ink2)}
.wcard .wline .pick{color:var(--bad);font-weight:700}
.wcard .wline .rgt{color:var(--ok);font-weight:700}
.wcard .wexp{background:#f8fafc;border-radius:11px;padding:10px 12px;font-size:13.5px;line-height:1.75;
  color:var(--ink2);margin-top:8px}
.wcard .wexp b{color:var(--ink)}
.optbtn{display:flex;align-items:center;gap:10px;width:100%;text-align:left;border:1.5px solid var(--line);
  background:#fff;border-radius:12px;padding:10px 13px;margin-bottom:9px;cursor:pointer;font-size:14.5px;
  transition:.15s;line-height:1.55}
.optbtn:hover{border-color:#c7d2fe;background:#fafbff}
.optbtn .k{flex:0 0 auto;width:25px;height:25px;border-radius:8px;background:#eef2ff;color:#4338ca;
  font-weight:800;font-size:13px;display:flex;align-items:center;justify-content:center}
.optbtn.on{border-color:var(--brand);background:#f5f7ff}
.optbtn.on .k{background:var(--brand);color:#fff}
.optbtn.ok{border-color:var(--ok);background:var(--okbg)}
.optbtn.ok .k{background:var(--ok);color:#fff}
.optbtn.bad{border-color:var(--bad);background:var(--badbg)}
.optbtn.bad .k{background:var(--bad);color:#fff}
.optbtn:disabled{cursor:default}
.optbtn.dim{opacity:.62}

/* ---------------- 搜索关键字高亮 ---------------- */
mark.kw{background:#fff1a8;color:#92400e;border-radius:4px;padding:0 3px;font-weight:700}

/* ---------------- 查看结果 · 完整结果详情 ---------------- */
.resultDetail{background:#fff;border-radius:20px;max-width:760px;width:100%;max-height:88vh;overflow:auto;
  padding:22px 20px 18px;position:relative;text-align:left;box-shadow:0 24px 60px rgba(15,23,42,.35);
  animation:fade .22s ease}
.resultDetail .rdClose{position:absolute;top:12px;right:14px;width:32px;height:32px;border-radius:50%;
  background:#f1f5f9;color:#64748b;display:flex;align-items:center;justify-content:center;font-size:15px;
  cursor:pointer;user-select:none}
.resultDetail .rdClose:hover{background:#e2e8f0;color:#334155}
.resultDetail .rdSum{text-align:center;padding:2px 0 12px;border-bottom:1px dashed #e2e8f0;margin-bottom:14px}
.resultDetail .rdSum .big{font-size:50px;font-weight:800;line-height:1;
  background:linear-gradient(135deg,#4f46e5,#0ea5e9);-webkit-background-clip:text;background-clip:text;color:transparent}
.resultDetail .rdSum .stars{font-size:24px;letter-spacing:5px;color:#dfe6f3;margin:6px 0}
.resultDetail .rdSum .stars i{font-style:normal}.resultDetail .rdSum .stars i.on{color:#f5a623}
.resultDetail .rdSum .rsay{font-size:13.5px;color:var(--ink2);line-height:1.75;margin:8px 0 2px}
.resultDetail .rdSec{margin-bottom:14px}
.resultDetail .rdSec h4{margin:0 0 9px;font-size:15px;color:var(--ink);display:flex;align-items:center}
.ptChips{display:flex;flex-wrap:wrap;gap:8px}
.ptChip{display:inline-flex;align-items:center;gap:6px;background:#f5f7ff;border:1px solid #dbe3fb;
  border-radius:999px;padding:5px 12px;font-size:12.8px;font-weight:700;color:#3730a3}
.ptChip i{font-style:normal;font-weight:600;color:#64748b}
.rdItem{border:1px solid #e2e8f0;border-radius:13px;padding:12px 13px;margin-bottom:10px;background:#fcfdff}
.rdItem.ok{border-left:4px solid var(--ok)}
.rdItem.bad{border-left:4px solid var(--bad)}
.rdHead{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:7px}
.rdNo{font-weight:800;font-size:13.5px;color:var(--ink)}
.rdVerdict{font-size:12.5px;font-weight:700;border-radius:999px;padding:2px 10px}
.rdItem.ok .rdVerdict{background:var(--okbg);color:#166534}
.rdItem.bad .rdVerdict{background:var(--badbg);color:#9b1c1c}
.rdTag{font-size:11.5px;color:#475569;background:#eef2f7;border-radius:999px;padding:2px 9px}
.rdQ{font-size:14.5px;font-weight:600;color:var(--ink);line-height:1.65;margin-bottom:8px}
.rdAns{font-size:13.5px;margin-top:7px;display:flex;gap:9px;align-items:baseline}
.rdAns span{color:var(--ink3);flex:0 0 auto}
.rdAns b.good{color:#15803d}
.rdAns b.badTxt{color:#dc2626}
.rdExp{margin-top:8px;font-size:13px;color:#7c4a03;background:#fff8eb;border:1px solid #fde8b8;
  border-radius:10px;padding:8px 11px;line-height:1.7}

/* ---------------- 播放器 ---------------- */
.playWrap{display:flex;flex-direction:column;height:100vh}
.playBar{flex:0 0 auto;background:linear-gradient(135deg,#4f46e5,#0ea5e9);color:#fff;
  padding:10px 14px;display:flex;align-items:center;gap:12px;padding-top:calc(10px + env(safe-area-inset-top))}
.playBar .ttl{flex:1;min-width:0;font-weight:700;font-size:15px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.playBar .cd{font-size:13px;font-weight:800;background:rgba(255,255,255,.2);border:1px solid rgba(255,255,255,.4);
  border-radius:999px;padding:4px 12px;white-space:nowrap}
.playBar .cd.warn{background:rgba(255,236,204,.95);border-color:#f0b429;color:#8a5a00}
.playBar .cd.dead{background:#fee2e2;border-color:#f0a6a6;color:#9b1c1c}
.playBar button{background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.4);color:#fff;
  border-radius:999px;padding:5px 13px;font-size:13px;cursor:pointer}
.playFrame{flex:1;border:none;width:100%;background:#fff}
.resultMask{position:fixed;inset:0;background:rgba(15,23,42,.55);backdrop-filter:blur(4px);z-index:90;
  display:none;align-items:center;justify-content:center;padding:18px}
.resultMask.on{display:flex}
.resultBox{background:#fff;border-radius:22px;padding:26px 22px;max-width:420px;width:100%;text-align:center;
  animation:up .3s ease}
.resultBox .big{font-size:52px;font-weight:800;line-height:1;
  background:linear-gradient(135deg,#4f46e5,#0ea5e9);-webkit-background-clip:text;background-clip:text;color:transparent}
.resultBox .stars{font-size:26px;letter-spacing:5px;color:#dfe6f3;margin:8px 0}
.resultBox .stars i{font-style:normal}.resultBox .stars i.on{color:#f5a623}
.resultBox .rsay{font-size:14px;color:var(--ink2);line-height:1.75;margin:10px 0 4px}

/* ---------------- 其他 ---------------- */
.empty{text-align:center;color:var(--ink3);padding:34px 12px;font-size:14px}
.empty .ico{font-size:34px;display:block;margin-bottom:8px;opacity:.5}
.chapterGrp{border:1px solid var(--line);border-radius:14px;overflow:hidden;margin-bottom:10px}
.chapterGrp>.ch{background:#f5f8ff;padding:9px 13px;font-weight:800;font-size:14px;color:#4338ca;
  display:flex;align-items:center;gap:9px;cursor:pointer}
.chapterGrp>.ch .cnt{margin-left:auto;font-size:12px;font-weight:600;color:var(--ink3)}
.chapterGrp>.list{padding:9px 12px;display:grid;gap:7px}
/* ===== 章节折叠：点章节抬头收起 / 展开课包清单 ===== */
.chapterGrp>.ch{cursor:pointer;user-select:none;align-items:center;display:flex}
.chapterGrp>.ch .fold{flex:0 0 auto;width:18px;height:18px;margin-right:6px;display:inline-flex;align-items:center;justify-content:center;
  font-size:11px;font-weight:800;color:#6366f1;background:#e0e7ff;border-radius:5px;transition:transform .18s}
.chapterGrp>.ch:hover .fold{background:#c7d2fe}
.chapterGrp.folded>.list{display:none}
.chapterGrp.folded>.ch .fold{transform:rotate(-90deg)}
.chapterGrp.folded>.ch{color:#64748b}
.chapterGrp>.ch .nq{margin-left:8px;font-size:11.5px;font-weight:700;color:#6366f1;background:#eef2ff;
  border:1px solid #e0e7ff;border-radius:999px;padding:1px 8px;line-height:1.5}
@media(min-width:700px){.chapterGrp>.list{grid-template-columns:1fr 1fr}}
.modpick{border:1px solid var(--line);border-radius:14px;padding:9px 12px;display:grid;gap:7px;
 max-height:230px;overflow:auto}
@media(min-width:700px){.modpick{grid-template-columns:1fr 1fr 1fr}}
.chk{display:flex;align-items:flex-start;gap:9px;font-size:14px;padding:6px 8px;border-radius:9px;
  cursor:pointer;transition:background .12s;line-height:1.5}
.chk:hover{background:#f7f9ff}
.chk input{width:17px;height:17px;margin:2px 0 0;flex:0 0 auto;accent-color:var(--brand)}
.chk .id{font-weight:800;color:#4338ca;font-size:12.5px;background:#eef2ff;border-radius:6px;
  padding:1px 6px;flex:0 0 auto;margin-top:1px}
.countdownChip{font-size:12.5px;font-weight:700;border-radius:999px;padding:3px 10px;background:#eef2ff;color:#4338ca;white-space:nowrap}
.countdownChip.warn{background:var(--warnbg);color:var(--warn)}
.countdownChip.dead{background:var(--badbg);color:var(--bad)}
.toast{position:fixed;left:50%;bottom:28px;transform:translateX(-50%) translateY(20px);z-index:120;
  background:#1e293b;color:#fff;font-size:14px;padding:10px 20px;border-radius:999px;opacity:0;
  transition:.25s;pointer-events:none;max-width:86vw;text-align:center}
.toast.on{opacity:1;transform:translateX(-50%)}
.detailBox{background:#f8fafc;border-radius:12px;padding:10px 12px;font-size:13px;color:var(--ink2);
  line-height:1.8;margin-top:9px}
.detailBox b{color:var(--ink)}
.timeline{border-left:2px solid var(--line);margin-left:8px;padding-left:16px}
.timeline .tl{position:relative;padding-bottom:15px}
.timeline .tl::before{content:"";position:absolute;left:-23px;top:6px;width:10px;height:10px;border-radius:50%;
  background:#c7d2fe;border:2px solid #fff;box-shadow:0 0 0 2px #c7d2fe}
.timeline .tl.ok::before{background:#34c27a;box-shadow:0 0 0 2px #34c27a}
.timeline .tl .t{font-size:12.5px;color:var(--ink3)}
.timeline .tl .c{font-size:14px}

/* ==========================================================================
 * 管理台（平台 / 学校） · 作用域与角色
 * ========================================================================== */
.roleChip{display:inline-flex;align-items:center;font-size:11.5px;font-weight:800;border-radius:999px;
  padding:2px 10px;background:#eef2ff;color:#4338ca;white-space:nowrap}
.roleChip.sys{background:#fdeeee;color:#c02f37}
.roleChip.school{background:#e6fffb;color:#0f766e}
.roleChip.leader{background:#fff6e0;color:#a16400}
.roleChip.grade{background:#f3e8ff;color:#6d28d9}
.roleChip.teacher{background:#eef2ff;color:#4338ca}
.natureChip{display:inline-flex;align-items:center;font-size:11.5px;font-weight:800;border-radius:999px;
  padding:2px 10px;background:#f1f5f9;color:#334155;white-space:nowrap}
.natureChip.p{background:#e8f8ef;color:#0f9d58}
.natureChip.j{background:#eef2ff;color:#4338ca}
.natureChip.s{background:#e0f2fe;color:#0369a1}
.natureChip.c{background:#fdf2f8;color:#9d174d}
.natureChip.pj{background:#eef7ff;color:#1d4ed8}
.natureChip.pjs{background:#f4f0ff;color:#6d28d9}
/* 表单内联提示 */
.field .hint{font-size:12px;color:var(--ink3);margin-top:5px;line-height:1.5}

/* 作用域切换条 */
.scopeBar{display:flex;gap:9px;flex-wrap:wrap;align-items:center;background:linear-gradient(135deg,#f7f9ff,#f2fbff);
  border:1px solid #e2e9ff;border-radius:15px;padding:11px 13px;margin-bottom:14px}
.scopeBar .lab{font-size:12.5px;font-weight:800;color:#4338ca;white-space:nowrap}
.scopeBar .sp{font-size:12.5px;color:var(--ink2);margin-left:auto;white-space:nowrap}
.seg{display:inline-flex;border:1.4px solid #c7d2fe;border-radius:11px;overflow:hidden;background:#fff}
.seg button{border:none;background:#fff;color:#4338ca;font-size:13px;font-weight:700;padding:6px 13px;cursor:pointer;
  white-space:nowrap;transition:.15s}
.seg button+button{border-left:1.4px solid #c7d2fe}
.seg button:hover{background:#f5f7ff}
.seg button.on{background:linear-gradient(135deg,#4f46e5,#0ea5e9);color:#fff}

/* 学校卡 */
.schCard{background:#fff;border:1px solid var(--line);border-radius:16px;padding:14px 15px;box-shadow:var(--sh);
  display:flex;flex-direction:column;gap:9px;transition:.15s}
.schCard:hover{border-color:#c7d2fe;box-shadow:0 8px 22px rgba(79,70,229,.1)}
.schCard.sel{border-color:#4f46e5;box-shadow:0 0 0 3px rgba(79,70,229,.15),0 8px 22px rgba(79,70,229,.12);background:#f5f6ff}
#schoolList .schCard{cursor:pointer}
.schCard .sc-h{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.schCard .sc-h b{font-size:16px;font-weight:800}
.schCard .sc-m{font-size:12.5px;color:var(--ink3)}
.schCard .sc-g{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-top:2px}
.schCard .sc-g>div{background:#f8faff;border:1px solid #eef2ff;border-radius:11px;padding:7px 9px;text-align:center}
.schCard .sc-g b{display:block;font-size:17px;font-weight:800;color:#312e81;line-height:1.25}
.schCard .sc-g span{font-size:11.5px;color:var(--ink3)}
.schCard .sc-acts{display:flex;gap:7px;flex-wrap:wrap;margin-top:2px}

/* 迷你柱状图 */
.mini{display:flex;flex-direction:column;gap:8px}
.mini .mi{display:grid;grid-template-columns:112px 1fr 62px;gap:9px;align-items:center;font-size:12.8px}
.mini .mi .nm{color:var(--ink2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mini .mi .tr{height:16px;border-radius:999px;background:#eef2f9;overflow:hidden}
.mini .mi .tr>i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#4f46e5,#0ea5e9)}
.mini .mi .tr>i.warn{background:linear-gradient(90deg,#f0b429,#f8d477)}
.mini .mi .tr>i.bad{background:linear-gradient(90deg,#d9424a,#f0838a)}
.mini .mi .tr>i.ok{background:linear-gradient(90deg,#0f9d58,#34c27a)}
.mini .mi .vl{text-align:right;font-weight:800;color:#312e81}
@media(max-width:520px){.mini .mi{grid-template-columns:88px 1fr 54px;font-size:12px}}

/* 备课包工具栏（生成后出现，用于打印 / 导出） */
.prepBar{position:sticky;top:8px;z-index:20;display:flex;gap:9px;flex-wrap:wrap;align-items:center;
  background:rgba(255,255,255,.97);backdrop-filter:blur(8px);border:1px solid var(--line);border-radius:15px;
  padding:10px 13px;margin-bottom:13px;box-shadow:0 8px 22px rgba(30,41,59,.09)}
.prepBar .pt{font-size:13.5px;font-weight:800;color:#312e81}
.prepBar .psub{font-size:12px;color:var(--ink3)}
.prepDone{background:var(--okbg);color:var(--ok);border-radius:11px;padding:10px 13px;font-size:13px;
  line-height:1.7;margin-bottom:13px;border:1px solid #bfe9d0}

/* 只读提示 */
.roTip{background:#fffbeb;border:1px solid #fde3b8;color:#92400e;border-radius:12px;padding:10px 13px;
  font-size:13px;line-height:1.72;margin-bottom:13px}

/* 人员行 */
.prow{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--line);
  border-radius:13px;background:#fff;margin-bottom:8px;flex-wrap:wrap}
.prow .av{flex:0 0 auto;width:36px;height:36px;border-radius:11px;display:flex;align-items:center;justify-content:center;
  font-weight:800;font-size:13px;background:linear-gradient(135deg,#eef2ff,#e0f2fe);color:#4338ca}
.prow .pb{flex:1;min-width:130px}
.prow .pb b{display:block;font-size:14.5px}
.prow .pb .mt{font-size:12.3px;color:var(--ink3);margin-top:1px}
.prow .pa{display:flex;gap:7px;flex-wrap:wrap;margin-left:auto}


/* ==========================================================================
 * 小学数学 AI 助教（教师端）
 *   ④ 运算能力智能诊断  ⑨ 分层练习与自适应  ⑩ 学业质量雷达图
 * ========================================================================== */
.maTabs{display:flex;gap:8px;overflow-x:auto;padding:2px 0 13px;-webkit-overflow-scrolling:touch}
.maTabs::-webkit-scrollbar{display:none}
.maTab{border:1.4px solid var(--line);background:#fff;color:var(--ink2);border-radius:999px;
  padding:7px 15px;font-size:13.5px;font-weight:700;cursor:pointer;white-space:nowrap;transition:.15s}
.maTab:hover{border-color:#c7d2fe;color:#4338ca}
.maTab.on{background:linear-gradient(135deg,#4f46e5,#0ea5e9);color:#fff;border-color:transparent;
  box-shadow:0 6px 16px rgba(79,70,229,.26)}

/* 卡片标题允许换行（窄屏副标题不被挤压） */
.hd{flex-wrap:wrap}
.card.hl{background:linear-gradient(135deg,#f7f9ff,#ffffff 55%,#f0f9ff);
  border:1px solid #dbe4ff;box-shadow:0 10px 26px rgba(79,70,229,.10)}

/* ---------------- KPI 指标卡 ---------------- */
.kpi{background:#fff;border:1px solid var(--line);border-radius:14px;padding:12px 13px;position:relative;overflow:hidden}
.kpi::after{content:"";position:absolute;inset:0 0 auto 0;height:3px;
  background:linear-gradient(90deg,#4f46e5,#0ea5e9);opacity:.85}
.kpi .kk{font-size:12.3px;color:var(--ink3);font-weight:600}
.kpi .kv{font-size:23px;font-weight:800;letter-spacing:.4px;margin-top:2px;color:var(--ink);line-height:1.25}
.kpi .ks{font-size:11.6px;color:var(--ink3);margin-top:3px;line-height:1.5}

/* ---------------- 小徽标 ---------------- */
.pill{display:inline-flex;align-items:center;gap:4px;font-size:11.4px;font-weight:700;
  border-radius:999px;padding:2px 9px;color:#334155;white-space:nowrap;margin:0 4px 4px 0}

/* ---------------- 表格（与 .tbwrap/table.tb 同源别名） ---------------- */
.tblWrap{overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:12px;border:1px solid var(--line)}
table.tbl{width:100%;border-collapse:collapse;font-size:13.3px;min-width:640px}
table.tbl th,table.tbl td{padding:9px 10px;text-align:center;border-bottom:1px solid var(--line);white-space:nowrap}
table.tbl th{background:#f5f8ff;color:#4338ca;font-weight:700;position:sticky;top:0;z-index:1;font-size:12.6px}
table.tbl td.l{text-align:left;white-space:normal;min-width:170px}
table.tbl tr:last-child td{border-bottom:none}
table.tbl tr:hover td{background:#fafbff}
table.tbl .lv{font-weight:800;font-size:12.8px}

/* ---------------- AI 教学建议 ---------------- */
ul.advice{list-style:none;margin:0;padding:0}
ul.advice li{position:relative;padding:9px 12px 9px 32px;background:#f8faff;border:1px solid #ecf1fb;
  border-radius:12px;font-size:13.4px;line-height:1.75;margin-bottom:8px;color:var(--ink2)}
ul.advice li::before{content:"";position:absolute;left:14px;top:15px;width:7px;height:7px;border-radius:50%;
  background:linear-gradient(135deg,#4f46e5,#0ea5e9);box-shadow:0 0 0 3px rgba(79,70,229,.12)}
ul.advice li:last-child{margin-bottom:0}
ul.advice.small li{font-size:12.9px;padding:8px 11px 8px 30px;background:#fff;margin-bottom:7px}
ul.advice.small li::before{left:13px;top:14px;width:6px;height:6px}

/* ---------------- 错题归因 ---------------- */
.attrList{display:flex;flex-direction:column;gap:9px}
.attrRow{display:grid;grid-template-columns:158px 1fr;gap:6px 12px;align-items:center;
  background:#fbfcff;border:1px solid #eef3fc;border-radius:12px;padding:10px 12px}
.attrRow .an{font-size:13.2px;font-weight:800;color:#312e81;display:flex;align-items:baseline;gap:6px}
.attrRow .an i{font-style:normal;font-size:11.5px;font-weight:700;color:#b91c1c;background:#fee2e2;
  border-radius:999px;padding:1px 8px;white-space:nowrap}
.attrRow .ab{min-width:0}
.attrRow .ad{grid-column:1/-1;font-size:12.7px;color:var(--ink2);line-height:1.72}
.attrRow .ad .muted{font-size:12px}

/* ---------------- 考点掌握度 ---------------- */
.tagList{display:flex;flex-direction:column;gap:7px}
.tagRow{display:grid;grid-template-columns:170px 1fr 54px 56px;gap:10px;align-items:center;
  padding:8px 11px;border-radius:11px;background:#fbfcff;border:1px solid #eef3fc}
.tagRow .tn{font-size:12.9px;font-weight:700;color:var(--ink2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tagRow .tb{min-width:0}
.tagRow .tv{font-size:13px;font-weight:800;text-align:right}
.tagRow .tc{font-size:11.6px;color:var(--ink3);text-align:right}

/* ---------------- 共性难题 ---------------- */
.hotList{display:flex;flex-direction:column;gap:11px}
.hotRow{background:#fff;border:1px solid #eef3fc;border-left:4px solid #f59e0b;border-radius:12px;padding:11px 13px}
.hotRow .hh{font-size:13.6px;display:flex;align-items:center;flex-wrap:wrap;gap:2px 4px}
.hotRow .hh b{color:#b45309;margin-right:4px}
.hotRow .hq{font-size:13.2px;color:var(--ink);margin-top:7px;line-height:1.72;
  background:#fffbeb;border-radius:9px;padding:8px 11px}
.hotRow .ha{font-size:12.7px;color:var(--ink2);margin-top:7px}
.hotRow .ha b{color:var(--ok)}
.hotRow .he{font-size:12.6px;color:var(--ink2);margin-top:6px;line-height:1.75;
  background:#f8faff;border-radius:9px;padding:8px 11px}
.hotRow .hw{font-size:12.1px;color:var(--ink3);margin-top:6px}

/* ---------------- 分层卡 ---------------- */
.tierCard{background:#fff;border:1px solid var(--line);border-radius:16px;padding:14px 15px;
  display:flex;flex-direction:column;box-shadow:0 2px 12px rgba(30,41,59,.06)}
.tierCard .tcn{font-size:16px;font-weight:800;letter-spacing:.3px}
.tierCard .tcg{font-size:12.2px;color:var(--ink3);margin-top:2px;min-height:34px;line-height:1.6}
.tierCard .tcv{font-size:31px;font-weight:800;color:var(--ink);line-height:1.15;margin-top:3px}
.tierCard .tcv span{font-size:12.5px;font-weight:600;color:var(--ink3);margin-left:3px}
.tierCard .tcs{font-size:12.2px;color:var(--ink2);margin-top:1px}
.tierCard .tct{font-size:12.4px;color:var(--ink2);line-height:1.7;background:#f8faff;border-radius:10px;
  padding:9px 11px;margin:10px 0 11px;flex:1}
.tierCard .btn{margin-top:auto}

/* ---------------- 自适应路径 ---------------- */
.pathRow{display:flex;align-items:stretch;gap:7px;overflow-x:auto;-webkit-overflow-scrolling:touch;padding:3px 1px 6px}
.pathRow::-webkit-scrollbar{height:6px}
.pathRow::-webkit-scrollbar-thumb{background:#dbe4f5;border-radius:999px}
.pathStep{flex:1 0 148px;max-width:220px;background:linear-gradient(160deg,#f7f9ff,#fff);
  border:1px solid #e6ecf7;border-radius:14px;padding:11px 12px}
.pathStep .pn{width:24px;height:24px;border-radius:8px;display:flex;align-items:center;justify-content:center;
  font-size:12.4px;font-weight:800;color:#fff;background:linear-gradient(135deg,#4f46e5,#0ea5e9);margin-bottom:7px}
.pathStep .pt{font-size:13.4px;font-weight:800;color:#312e81}
.pathStep .pd{font-size:12.2px;color:var(--ink2);line-height:1.7;margin-top:4px}
.pathArrow{align-self:center;color:#a5b4fc;font-size:17px;font-weight:800;flex:0 0 auto;padding:0 1px}

/* ---------------- 雷达图区 ---------------- */
.radarWrap{display:grid;grid-template-columns:1fr;gap:14px;align-items:center}
@media(min-width:700px){.radarWrap{grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr)}}
.radarWrap canvas{width:100%;max-width:560px;height:auto;display:block;margin:0 auto;
  background:radial-gradient(circle at 50% 48%,#fbfdff,transparent 72%)}
.radarSide{display:flex;flex-direction:column;gap:7px}

/* ---------------- 课时链接 / 报告 ---------------- */
.mlink{display:inline-block;font-size:12.6px;font-weight:700;color:#4338ca;background:#eef2ff;
  border-radius:8px;padding:2px 8px;transition:.15s}
.mlink:hover{background:#e0e7ff;box-shadow:0 4px 12px rgba(79,70,229,.16)}
.reportHead{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:2px}
.lvBig{font-size:20px;font-weight:800;letter-spacing:.5px;
  background:linear-gradient(135deg,#4f46e5,#0ea5e9);-webkit-background-clip:text;background-clip:text;color:transparent}
.pnText{margin:0;font-size:13.2px;color:var(--ink2);line-height:1.85;
  background:#f8faff;border-radius:11px;padding:11px 13px;border:1px dashed #dbe4ff}

/* ---------------- 通用小组块 ---------------- */
.box{background:#fff;border:1px solid var(--line);border-radius:13px;padding:12px 13px}
.box .bt{font-size:13px;font-weight:800;color:#312e81;margin-bottom:8px;display:flex;align-items:center;gap:6px}
.box .bt::before{content:"";width:4px;height:14px;border-radius:2px;
  background:linear-gradient(180deg,#4f46e5,#0ea5e9);flex:0 0 auto}

/* ---------------- 窄屏适配 ---------------- */
@media(max-width:560px){
  .kpi .kv{font-size:20px}
  .attrRow{grid-template-columns:1fr}
  .attrRow .an{justify-content:space-between}
  .tagRow{grid-template-columns:1fr auto;gap:5px 8px}
  .tagRow .tn{grid-column:1;white-space:normal}
  .tagRow .tv{grid-column:2;grid-row:1}
  .tagRow .tb{grid-column:1/-1}
  .tagRow .tc{grid-column:2}
  .pathStep{flex:1 0 84%}
  .hd .sub{margin-left:0;flex-basis:100%}
  .lvBig{font-size:17px}
  table.tbl{min-width:560px}
  /* 列表项（任务/记录卡）：标题占满整行，得分/用时/按钮换到第二行，避免中文被挤成一字一行 */
  .item{flex-wrap:wrap;row-gap:9px;padding:11px 12px}
  .item .no{flex:0 0 auto;width:auto;min-width:40px;padding:0 7px;height:42px;font-size:10.5px;word-break:keep-all;white-space:nowrap}
  .item .body{flex:1 1 calc(100% - 66px);min-width:0}
  .item .body b{font-size:15.5px;line-height:1.45}
  .item .acts{flex:0 0 auto;width:100%;margin-left:0;justify-content:flex-start;flex-wrap:wrap}
  .item .acts .muted{white-space:nowrap}
  .item .acts .btn{margin-left:auto}
  .item>.btn{margin-left:54px}
}

/* ==========================================================================
 * 家长端（孩子学习档案） + 家长注册（扫码加入）
 *   总览 / 学习记录 / 错题本 / 成绩分析　　底部导航适配平板与手机
 * ========================================================================== */
.pWrap{padding-bottom:96px}
.pnav{position:fixed;left:0;right:0;bottom:0;z-index:60;display:flex;
  background:rgba(255,255,255,.97);backdrop-filter:blur(10px);border-top:1px solid var(--line);
  padding:7px 6px calc(7px + env(safe-area-inset-bottom,0px));box-shadow:0 -6px 22px rgba(30,41,59,.08)}
.pnav .pnItem{flex:1;border:none;background:none;cursor:pointer;display:flex;flex-direction:column;
  align-items:center;gap:2px;padding:5px 2px;border-radius:12px;color:var(--ink3);transition:.15s}
.pnav .pnItem i{font-style:normal;font-size:19px;line-height:1;filter:grayscale(1);opacity:.62}
.pnav .pnItem span{font-size:11.5px;font-weight:700}
.pnav .pnItem.on{color:var(--brand);background:#f3f6ff}
.pnav .pnItem.on i{filter:none;opacity:1}
@media(min-width:700px){
  .pnav{left:50%;transform:translateX(-50%);max-width:660px;border-radius:18px 18px 0 0;border:1px solid var(--line);border-bottom:none}
}

/* 孩子信息条 */
.childBar{display:flex;gap:13px;align-items:center;background:linear-gradient(135deg,#eef2ff,#e6f7ff 60%,#fff);
  border:1px solid #dde6ff;border-radius:18px;padding:14px 15px;margin-bottom:15px;box-shadow:0 8px 24px rgba(79,70,229,.09)}
.childBar .cbAv{flex:0 0 auto;width:52px;height:52px;border-radius:17px;display:flex;align-items:center;justify-content:center;
  font-size:22px;font-weight:800;color:#fff;background:linear-gradient(135deg,#4f46e5,#0ea5e9);
  box-shadow:0 8px 18px rgba(79,70,229,.28)}
.childBar .cbBody{min-width:0;flex:1}
.childBar .cbName{font-size:17.5px;font-weight:800;display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.childBar .cbName .cbNo{font-size:12px;font-weight:700;color:#4338ca;background:#fff;border-radius:999px;padding:2px 9px}
.childBar .cbMeta{font-size:12.5px;color:var(--ink2);margin-top:3px;line-height:1.6}
.pill.pBind{background:#e8f8ef;color:#0f9d58}
.pill.pAuto{background:#fff4e5;color:#a16400}

/* KPI 补充单位样式 */
.kpi .kv .ku{font-size:12.5px;font-weight:700;color:var(--ink3);margin-left:3px}

/* 通用条形（家长端） */
.sbar{display:block;height:10px;border-radius:999px;background:#eef2f9;overflow:hidden;min-width:40px}
.sbar>i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#4f46e5,#0ea5e9)}
.sbar>i.warn{background:linear-gradient(90deg,#f0b429,#f8d477)}
.sbar>i.bad{background:linear-gradient(90deg,#d9424a,#f0838a)}
.sbar>i.ok{background:linear-gradient(90deg,#0f9d58,#34c27a)}

/* 近 14 天趋势 */
.trend{display:flex;align-items:flex-end;gap:5px;height:150px;padding:6px 1px 0}
.trend .tcol{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;height:100%;gap:3px}
.trend .tv{font-size:10.5px;color:var(--ink3);font-weight:700;height:13px;line-height:13px}
.trend .tb{flex:1;width:100%;display:flex;align-items:flex-end;justify-content:center}
.trend .tb>i{display:block;width:70%;max-width:22px;border-radius:6px 6px 3px 3px;
  background:linear-gradient(180deg,#6366f1,#0ea5e9);min-height:4px;transition:.3s}
.trend .tb>i.off{background:#e5eaf4}
.trend .tl{font-size:10px;color:var(--ink3);white-space:nowrap}
.trendFoot{font-size:12.3px;color:var(--ink3);margin-top:9px;text-align:right}

/* 面板时间分布 / 知识点掌握度 */
.panList{display:flex;flex-direction:column;gap:8px}
.panRow{display:grid;grid-template-columns:96px 1fr 68px 62px;gap:9px;align-items:center;
  padding:7px 10px;border-radius:11px;background:#fbfcff;border:1px solid #eef3fc}
.panRow .pn{font-size:12.6px;font-weight:700;color:var(--ink2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.panRow .pv{font-size:12.4px;font-weight:800;color:#312e81;text-align:right;white-space:nowrap}
.panRow .pc{font-size:11.6px;color:var(--ink3);text-align:right;white-space:nowrap}

/* 学习动态 / 记录卡 */
.recList{display:flex;flex-direction:column;gap:9px}
.recRow{display:flex;align-items:center;gap:10px;padding:11px 12px;border:1px solid var(--line);border-radius:13px;background:#fff}
.recRow .rrL{flex:1;min-width:0}
.recRow .rrL b{display:block;font-size:14.3px}
.recRow .rrL span{display:block;font-size:12.2px;color:var(--ink3);margin-top:2px}
.recRow .rrR{flex:0 0 auto;display:flex;flex-direction:column;align-items:flex-end;gap:4px}
.recRow .rrT{font-size:11.8px;color:var(--ink3)}

.recCard{padding:14px 15px}
.recCard .rcHd{display:flex;align-items:flex-start;gap:10px;justify-content:space-between}
.recCard .rcHd b{font-size:15.5px;display:block}
.recCard .rcId{font-size:12px;color:var(--ink3);font-weight:600;display:block;margin-top:2px}
.recCard .rcScore{flex:0 0 auto}
.recCard .rcMeta{font-size:12.3px;color:var(--ink3);margin-top:5px}
.recCard .rcGrid{display:grid;grid-template-columns:repeat(2,1fr);gap:7px;margin-top:10px}
.recCard .rcGrid>div{background:#f8faff;border:1px solid #eef2ff;border-radius:11px;padding:8px 10px}
.recCard .rcGrid span{display:block;font-size:11.5px;color:var(--ink3)}
.recCard .rcGrid b{font-size:13.4px}
.recCard .rcGrid em.bad{font-style:normal;color:var(--bad);font-size:11.5px}
.recCard .rcPanel{font-size:12.2px;color:var(--ink2);margin-top:9px;background:#f8fafc;border-radius:10px;padding:8px 10px}
.recCard .rcWrong{font-size:12.4px;color:#b45309;background:#fffbeb;border-radius:10px;padding:8px 10px;margin-top:8px;line-height:1.7}
.recCard .rcRight{font-size:12.4px;color:#0f9d58;background:#e8f8ef;border-radius:10px;padding:8px 10px;margin-top:8px}
@media(min-width:700px){.recCard .rcGrid{grid-template-columns:repeat(4,1fr)}}

/* 错题卡补充 */
.wbList{display:flex;flex-direction:column;gap:12px}
.wcard .wTop{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.wcard .wTop .wTag{background:#eef2ff;color:#4338ca;margin:0}
.wcard .wTop .wFrom{font-size:12px;color:var(--ink3);flex:1;min-width:120px}
.wcard .wFoot{font-size:11.8px;color:var(--ink3);margin-top:7px;padding-top:7px;border-top:1px dashed var(--line)}

/* 名次卡 */
.rankWrap{display:grid;grid-template-columns:repeat(2,1fr);gap:11px}
@media(min-width:700px){.rankWrap{grid-template-columns:repeat(4,1fr)}}
.rkBox{background:linear-gradient(160deg,#f7f9ff,#fff);border:1px solid #e6ecf7;border-radius:15px;padding:12px 13px}
.rkBox .rkL{font-size:12.3px;color:var(--ink3);font-weight:700}
.rkBox .rkV{font-size:28px;font-weight:800;color:#312e81;line-height:1.2;margin-top:3px;letter-spacing:.5px}
.rkBox .rkV em{font-style:normal;font-size:13px;font-weight:700;color:var(--ink3);margin-left:2px}
.rkBox .rkV.hl{background:linear-gradient(135deg,#4f46e5,#0ea5e9);-webkit-background-clip:text;background-clip:text;color:transparent}
.rkBox .rkS{font-size:11.8px;color:var(--ink3);margin-top:4px;line-height:1.6}

/* 对比条 */
.cmpList{display:flex;flex-direction:column;gap:9px}
.cmpRow{display:grid;grid-template-columns:88px 1fr 46px;gap:10px;align-items:center;padding:8px 11px;
  border-radius:12px;background:#fbfcff;border:1px solid #eef3fc}
.cmpRow.mine{background:linear-gradient(135deg,#eef2ff,#f0f9ff);border-color:#dbe4ff}
.cmpRow .cn{font-size:12.8px;font-weight:700;color:var(--ink2)}
.cmpRow.mine .cn{color:#3730a3}
.cmpRow .cb{height:16px;border-radius:999px;background:#eef2f9;overflow:hidden}
.cmpRow .cb>i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#a5b4fc,#7dd3fc)}
.cmpRow.mine .cb>i{background:linear-gradient(90deg,#4f46e5,#0ea5e9)}
.cmpRow .cv{font-size:14px;font-weight:800;color:#312e81;text-align:right}

/* 分数分布 */
.distList{display:flex;flex-direction:column;gap:9px}
.distRow{display:grid;grid-template-columns:118px 1fr 52px;gap:10px;align-items:center;padding:8px 11px;
  border-radius:12px;background:#fbfcff;border:1px solid #eef3fc}
.distRow.mine{background:linear-gradient(135deg,#eef2ff,#f0f9ff);border-color:#dbe4ff}
.distRow .dn{font-size:12.6px;font-weight:700;color:var(--ink2);line-height:1.4}
.distRow .dn em{display:block;font-style:normal;font-size:10.8px;color:#4338ca;font-weight:800}
.distRow .db{height:16px;border-radius:999px;background:#eef2f9;overflow:hidden}
.distRow .db>i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#c7d2fe,#a5b4fc)}
.distRow.mine .db>i{background:linear-gradient(90deg,#4f46e5,#0ea5e9)}
.distRow .dv{font-size:12.4px;color:var(--ink2);text-align:right;font-weight:700}

/* 家长指引 */
.guideBox p{font-size:13.4px;line-height:1.85;color:var(--ink2);margin:0 0 9px}
.guideBox p b{color:#312e81}
.guideTip{background:#fffbeb;border:1px solid #fde3b8;color:#92400e;border-radius:12px;padding:10px 12px;
  font-size:12.8px;line-height:1.75}

/* ---------------- 家长注册（扫码加入） ---------------- */
.regWrap{max-width:620px}
.steps{display:flex;gap:6px;margin-bottom:14px;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:2px}
.steps::-webkit-scrollbar{display:none}
.steps .stp{flex:1 0 auto;display:inline-flex;align-items:center;gap:6px;font-size:12.2px;font-weight:700;
  color:var(--ink3);background:#fff;border:1px solid var(--line);border-radius:999px;padding:6px 13px;white-space:nowrap}
.steps .stp i{font-style:normal;width:18px;height:18px;border-radius:50%;display:inline-flex;align-items:center;
  justify-content:center;font-size:11px;background:#eef2ff;color:#4338ca}
.steps .stp.on{color:#fff;background:linear-gradient(135deg,#4f46e5,#0ea5e9);border-color:transparent;
  box-shadow:0 6px 16px rgba(79,70,229,.25)}
.steps .stp.on i{background:rgba(255,255,255,.28);color:#fff}
.steps .stp.done{color:#0f9d58;border-color:#bfe9d0;background:#f2fbf6}
.steps .stp.done i{background:#0f9d58;color:#fff}

.stuPick{display:grid;grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:9px;margin-bottom:6px}
.stuItem{position:relative;text-align:left;border:1.5px solid var(--line);background:#fff;border-radius:13px;
  padding:11px 11px 11px 40px;cursor:pointer;transition:.15s;min-height:52px}
.stuItem:hover{border-color:#c7d2fe;background:#fafbff}
.stuItem .siNo{position:absolute;left:11px;top:50%;transform:translateY(-50%);width:22px;height:22px;border-radius:7px;
  display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:800;background:#eef2ff;color:#4338ca}
.stuItem .siNm{display:block;font-size:14.5px;font-weight:800;color:var(--ink)}
.stuItem .siTag{display:block;font-size:10.8px;color:var(--bad);font-weight:700;margin-top:1px;min-height:13px}
.stuItem.on{border-color:var(--brand);background:#f5f7ff;box-shadow:0 6px 16px rgba(79,70,229,.15)}
.stuItem.on .siNo{background:var(--brand);color:#fff}
.stuItem.off{opacity:.5;cursor:not-allowed;background:#f8fafc}

.bigAcc{font-size:19px;letter-spacing:1px;color:#0f5132}

/* ---------------- 二维码弹窗 ---------------- */
.qrWrap{display:grid;grid-template-columns:1fr;gap:14px;align-items:center}
@media(min-width:520px){.qrWrap{grid-template-columns:auto 1fr}}
.qrHost{display:flex;align-items:center;justify-content:center;padding:12px;background:#fff;border:1px solid var(--line);
  border-radius:15px;box-shadow:0 6px 20px rgba(30,41,59,.08)}
.qrHost svg{max-width:100%;height:auto;display:block}
.qrSide{display:flex;flex-direction:column;gap:9px;min-width:0}
.qrTarget{font-size:13.2px;font-weight:700;color:#312e81}
.qrLink{font-size:11.8px;color:var(--ink3);word-break:break-all;background:#f8faff;border:1px dashed #dbe4ff;
  border-radius:10px;padding:8px 10px;line-height:1.6}

/* ---------------- 登录页角色选择（4 项自适应换行） ---------------- */
.roleSel{flex-wrap:wrap}
.roleSel button{flex:1 1 calc(50% - 5px);min-width:120px;padding:11px 6px;font-size:13.5px}

/* ---------------- 窄屏适配（家长端） ---------------- */
@media(max-width:560px){
  .panRow{grid-template-columns:78px 1fr 60px;gap:7px}
  .panRow .pc{display:none}
  .kpi .kv{font-size:21px}
  .childBar{padding:12px 13px;gap:11px}
  .childBar .cbAv{width:46px;height:46px;border-radius:15px;font-size:19px}
  .childBar .cbName{font-size:16px}
  .rankWrap{grid-template-columns:repeat(2,1fr);gap:9px}
  .rkBox .rkV{font-size:24px}
  .cmpRow{grid-template-columns:72px 1fr 40px;gap:8px}
  .distRow{grid-template-columns:96px 1fr 46px;gap:8px}
  .distRow .dn{font-size:11.8px}
  .trend{height:130px;gap:3px}
  .trend .tl{font-size:9px}
  .trend .tv{font-size:9.5px}
  .stuPick{grid-template-columns:repeat(auto-fill,minmax(96px,1fr))}
}

/* ==========================================================================
 * 品牌理念标语 + 双学习场景（布置任务 / 自主学习） + 任务详情抽屉
 * ========================================================================== */

/* ---------------- 理念标语条 ---------------- */
.sloganBar{display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap;
  background:linear-gradient(90deg,#eef2ff,#f0f9ff 50%,#eef2ff);border-bottom:1px solid #e2e9fb;
  padding:7px 14px;font-size:12.6px;color:#3730a3;text-align:center;line-height:1.5}
.sloganBar b{font-weight:800;letter-spacing:.3px}
.sloganBar span{color:#0b6b3f;font-weight:700}
.sloganBar span::before{content:"·";color:#94a3b8;margin-right:8px}
@media(max-width:560px){.sloganBar{font-size:11.6px;gap:6px}.sloganBar span::before{display:none}}

/* 登录页标语 */
.hdTop .slogan{font-size:14.5px;font-weight:800;color:#0b6b3f;margin:7px 0 3px;letter-spacing:.5px}

/* ---------------- 两个学习场景卡片 ---------------- */
.scWrap{display:grid;grid-template-columns:1fr;gap:12px}
@media(min-width:720px){.scWrap{grid-template-columns:1fr 1fr}}
.scCard{border:1px solid var(--line);border-radius:16px;padding:13px 14px;background:#fff}
.scCard.task{border-color:#dbe4ff;background:linear-gradient(135deg,#f7f9ff,#fff 70%)}
.scCard.self{border-color:#cdeee2;background:linear-gradient(135deg,#f2fbf7,#fff 70%)}
.scCard .scHd{display:flex;align-items:center;gap:8px;margin-bottom:10px;flex-wrap:wrap}
.scCard .scHd .scIco{flex:0 0 auto;width:28px;height:28px;border-radius:9px;display:flex;align-items:center;
  justify-content:center;font-size:13px;font-weight:800;color:#fff;background:linear-gradient(135deg,#4f46e5,#0ea5e9)}
.scCard.self .scHd .scIco{background:linear-gradient(135deg,#0f9d58,#34c27a)}
.scCard .scHd b{font-size:14.6px;color:#312e81}
.scCard.self .scHd b{color:#0b6b3f}
.scCard .scHd .scTag{margin-left:auto;font-size:11.4px;font-weight:700;color:var(--ink3)}
.scKpis{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}
.scKpis>div{background:#fff;border:1px solid #eef2ff;border-radius:11px;padding:8px 9px}
.scCard.self .scKpis>div{border-color:#e6f6ee}
.scKpis span{display:block;font-size:11.2px;color:var(--ink3);font-weight:600}
.scKpis b{font-size:17.5px;color:var(--ink);line-height:1.3}
.scKpis b em{font-style:normal;font-size:11.5px;color:var(--ink3);margin-left:2px;font-weight:600}
.scFoot{font-size:12.2px;color:var(--ink2);margin-top:9px;line-height:1.7}
@media(max-width:560px){.scKpis b{font-size:15.5px}}

/* 记录来源小标 */
.srcChip{font-size:11px;font-weight:800;border-radius:999px;padding:2px 8px;white-space:nowrap;display:inline-block}
.srcChip.task{background:#eef2ff;color:#4338ca}
.srcChip.self{background:#e8f8ef;color:#0b6b3f}

/* ---------------- 分段筛选 ---------------- */
.segCtl{display:inline-flex;background:#f1f5fb;border-radius:999px;padding:3px;gap:2px;flex-wrap:wrap;margin-bottom:12px}
.segCtl button{border:none;background:none;cursor:pointer;font-size:12.6px;font-weight:700;color:var(--ink2);
  padding:6px 14px;border-radius:999px;transition:.15s;white-space:nowrap}
.segCtl button:hover{color:#3730a3}
.segCtl button.on{background:#fff;color:#3730a3;box-shadow:0 2px 8px rgba(30,41,59,.13)}

/* ---------------- 任务详情抽屉 ---------------- */
.drawerMask{position:fixed;inset:0;background:rgba(15,23,42,.45);z-index:90;opacity:0;pointer-events:none;transition:.2s}
.drawerMask.on{opacity:1;pointer-events:auto}
.drawer{position:fixed;top:0;right:0;bottom:0;width:min(920px,100%);background:#f7f9fc;z-index:91;
  transform:translateX(102%);transition:transform .26s cubic-bezier(.4,0,.2,1);display:flex;flex-direction:column;
  box-shadow:-12px 0 40px rgba(15,23,42,.2)}
.drawer.on{transform:none}
.drawer .dhd{display:flex;align-items:center;gap:10px;padding:13px 16px;background:#fff;border-bottom:1px solid var(--line);flex-wrap:wrap}
.drawer .dhd h3{margin:0;font-size:16.5px;color:#312e81}
.drawer .dhd .dsub{font-size:12.3px;color:var(--ink3)}
.drawer .dhd .xbtn{margin-left:auto}
.drawer .dbody{flex:1;overflow-y:auto;padding:14px 16px 30px;-webkit-overflow-scrolling:touch}
@media(max-width:560px){.drawer{width:100%}.drawer .dbody{padding:12px 12px 26px}}

/* 锁定提示条 */
.lockTip{display:flex;gap:9px;align-items:flex-start;font-size:12.8px;line-height:1.75;
  border-radius:12px;padding:10px 12px;margin-bottom:12px}
.lockTip.warn{background:#fffbeb;border:1px solid #fde3b8;color:#92400e}
.lockTip.ok{background:#f2fbf6;border:1px solid #cdeee2;color:#0b6b3f}
.lockTip b{font-weight:800}

/* 学生进度行 */
.pRow{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.pRow .pNm{font-weight:800;font-size:13.4px;min-width:74px}
.pRow .pNo{font-size:11.6px;color:var(--ink3)}
.miniChips{display:flex;flex-wrap:wrap;gap:4px}
.miniChip{font-size:11px;font-weight:700;border-radius:7px;padding:2px 7px;white-space:nowrap}
.miniChip.done{background:#e8f8ef;color:#0b6b3f}
.miniChip.doing{background:#fff4e5;color:#a16400}
.miniChip.todo{background:#f1f5f9;color:#64748b}
.miniChip.revoked{background:#f3f4f6;color:#9ca3af}
.miniChip.expired{background:#fee2e2;color:#b91c1c}

/* 追加内容：候选单元 */
.addPick{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:8px;
  max-height:260px;overflow-y:auto;padding:4px 2px;border:1px solid var(--line);border-radius:12px;background:#fff}
.addPick label{display:flex;gap:7px;align-items:flex-start;font-size:12.6px;line-height:1.6;padding:7px 9px;
  border-radius:9px;cursor:pointer}
.addPick label:hover{background:#f8faff}
.addPick input{margin-top:3px}
.addPick .apSub{display:block;font-size:11px;color:var(--ink3)}

/* ==================== 多端适配补强（2026-10-04） ==================== */
img,svg,canvas,video{max-width:100%}
.lockTip{line-height:1.85}
.lockTip b{white-space:nowrap}
@media(max-width:560px){
  .kpi{padding:11px 12px}
  .hdTop{flex-wrap:wrap}
  .dlCard{padding:15px 14px}
}
@media(min-width:1400px){
  .wrap{max-width:1160px}
  .tbWrap{max-width:1160px}
}

/* ==================== 品牌椰树100 logo（2026-10-04） ==================== */
.logo img{width:100%;height:100%;object-fit:contain;display:block;border-radius:inherit}
.loginLogo{display:block;margin:0 auto 12px;width:min(56%,225px);height:auto;filter:drop-shadow(0 4px 14px rgba(0,0,0,.08))}
@media(max-width:560px){.loginLogo{width:min(64%,195px)}}

/* ==================== 完整品牌 logo 页头 + AI 助教素养诊断（2026-10-04） ==================== */
/* 页头显示完整品牌 logo（白底胶囊，彩色 logo 在深色页头上清晰可读） */
.logo.wide{width:auto;height:auto;padding:5px 10px;border-radius:12px;background:#fff;
  border:1px solid rgba(255,255,255,.75);box-shadow:0 2px 10px rgba(15,23,42,.14);min-width:0}
.logo.wide img{height:34px;width:auto;object-fit:contain;display:block}
@media(max-width:560px){
  .logo.wide{padding:4px 8px}
  .logo.wide img{height:28px}
}
/* 登录页：标语升为标题位 */
.loginBox .hdTop .slogan{font-size:16.5px;font-weight:800;color:#0b6b3f;margin:2px 0 0;line-height:1.55;letter-spacing:.3px}
@media(max-width:560px){.loginBox .hdTop .slogan{font-size:15px}}

/* AI 助教 —— 学科核心素养框架 */
.litFrame{display:grid;grid-template-columns:repeat(auto-fit,minmax(228px,1fr));gap:11px}
.litItem{background:#f8fafc;border:1px solid #e8eef7;border-radius:12px;padding:12px 13px}
.litItem .ln{display:flex;align-items:center;gap:7px;font-weight:800;font-size:14px;color:#0f172a}
.litItem .ln em{flex:0 0 auto;width:19px;height:19px;border-radius:6px;background:#4f46e5;color:#fff;
  font-style:normal;font-size:11.5px;line-height:19px;text-align:center;font-weight:800}
.litItem .ld{font-size:12.6px;color:#475569;margin-top:6px;line-height:1.6}
.litItem .lo{font-size:12px;color:#0b6b3f;margin-top:6px;line-height:1.55;font-weight:600}
.litRadar{display:flex;justify-content:center;margin:4px 0 6px}
.litRadar canvas{max-width:100%;height:auto}
.dimList{display:flex;flex-direction:column;gap:13px;margin-top:8px}
.dimRow{border:1px solid #e8eef7;border-radius:12px;padding:11px 13px;background:#fff}
.dimRow .dh{display:flex;align-items:center;gap:9px;margin-bottom:7px;flex-wrap:wrap}
.dimRow .dh b{font-size:14px;color:#0f172a}
.dimRow .lvl{font-size:11.5px;font-weight:800;border:1px solid;border-radius:999px;padding:1px 9px}
.dimRow .score{margin-left:auto;font-weight:800;font-size:15px}
.dimRow .dm{font-size:12.2px;color:#64748b;margin-top:6px;line-height:1.55}
.dimRow .sug{font-size:12.6px;color:#0b6b3f;background:#f0fdf4;border-radius:9px;padding:8px 10px;margin-top:7px;line-height:1.6}
.tags2{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px}
.tags2 .tg{border:1px solid #e8eef7;border-radius:11px;padding:10px 11px;background:#fff}
.tags2 .tg b{font-size:13px;display:block;margin-bottom:7px;color:#0f172a}
.tags2 .tg span{font-size:12.4px;font-weight:800}
.tags2 .tg em{font-style:normal;font-size:11.5px;color:#94a3b8;margin-left:7px}
.advList{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:9px}
.advList li{font-size:13px;color:#334155;line-height:1.65}
.advList li b{color:#0f172a}
.advList li span{display:block;color:#475569;font-size:12.6px;margin-top:2px}

/* ==================== 学校地区三级选择 + 三级学情（2026-10-04） ==================== */
.row.three>*{min-width:120px}
#sCountyManual input{margin-top:2px}
#sRegionHint{font-size:12.5px;color:#0b6b3f;font-weight:600}
#anaGeoHint{font-size:12.5px;color:#475569}
.tb td.l b{font-weight:700}
@media(max-width:560px){
  .row.three>*{min-width:100%}
}

/* ==================== 学段/年级/学科/版本/教材 四级筛选条（学生端） ==================== */
.fbar4{display:grid;grid-template-columns:repeat(auto-fit,minmax(122px,1fr));gap:9px;align-items:end;margin-bottom:12px}
.fbar4>.field{margin:0}
.fbar4 select{padding:9px 10px;font-size:13.5px}
@media(max-width:430px){.fbar4{grid-template-columns:1fr 1fr}}

/* ==================== 学科屏幕按钮（学生端自主学习） ==================== */
.subjChips{display:flex;flex-wrap:wrap;gap:8px;margin-top:2px}
.subjChip{position:relative;display:inline-flex;align-items:center;gap:6px;border:1px solid #d8e2f0;background:#fff;
  color:#334155;font-size:13.5px;font-weight:700;padding:8px 13px;border-radius:999px;cursor:pointer;
  transition:all .16s ease;font-family:inherit;line-height:1.2}
.subjChip:hover{border-color:#9cc3ef;background:#f4f9ff;transform:translateY(-1px)}
.subjChip em{font-style:normal;font-size:11px;font-weight:800;color:#0b6b3f;background:#e8f7ee;
  border-radius:999px;padding:1px 7px;min-width:18px;text-align:center}
.subjChip em.none{color:#94a3b8;background:#f1f5f9}
.subjChip.on{background:linear-gradient(135deg,#1d7fe0,#0b6b3f);border-color:transparent;color:#fff;
  box-shadow:0 5px 14px rgba(29,127,224,.28)}
.subjChip.on em{background:rgba(255,255,255,.24);color:#fff}
.subjChip.on em.none{background:rgba(255,255,255,.24);color:#fff}

/* ==================== 任教 / 就读信息提示条（教师端 · 学生端） ==================== */
.taintInfo{font-size:12.5px;color:#0b6b3f;background:#f0fdf4;border:1px solid #d4f0de;
  border-radius:10px;padding:8px 11px;margin:2px 0 10px;line-height:1.6;font-weight:600}
.taintInfo:empty{display:none}
@media(max-width:560px){.taintInfo{font-size:12px}}

/* ================= 学生中心专属（.stu 作用域）：四张概览卡（整卡可点 + 紧凑降高） ================= */
.stu .stat{padding:9px 14px;text-align:left}
.stu .stat .lb{font-size:14px;font-weight:800;color:var(--ink);letter-spacing:.2px}
.stu .stat .lb .cico{font-style:normal;margin-right:5px;font-size:15px}
.stu .stat .hint{font-size:11px;margin-top:2px}
.stu .stat .hint b{color:var(--ink)}
/* 整卡可点击 */
.stu .stat.statLink{font-family:inherit;cursor:pointer;transition:all .15s;width:100%}
.stu .stat.statLink:hover{border-color:#9cc3ef;box-shadow:0 4px 14px rgba(59,110,220,.10);transform:translateY(-1px)}
.stu .stat.statLink:focus-visible{outline:2px solid #7fb0ef;outline-offset:1px}
/* ① 学习任务：无框两行紧凑 */
.stu .stat .lines{display:flex;flex-direction:column;gap:2px;margin-top:4px}
.stu .stat .lineItem{display:flex;align-items:baseline;gap:6px;line-height:1.35}
.stu .stat .lineItem .k{font-size:12px;font-weight:700;color:#64748b}
.stu .stat .lineItem .u{font-size:12px;color:#94a3b8}
.stu .stat .num{font-size:19px;font-weight:800;letter-spacing:.3px;line-height:1.15;color:var(--ink)}
.stu .stat .num.red{color:#e02f3f}
.stu .stat .num.green{color:#0b8a3e}
/* ② 自主学习：上次学习内容 */
.stu .stat .bigTxt{margin-top:4px;font-size:14px;font-weight:700;color:var(--ink);line-height:1.35;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.stu .stat .bigTxt.dim{color:#94a3b8;font-weight:600}
/* ③ 错题本 */
.stu .stat .wrongNum{font-size:21px;font-weight:800;color:#e02f3f;margin-top:3px;line-height:1.2}
/* ④ 排名：双格 + 平均分 */
.stu .stat .duo{display:flex;align-items:stretch;gap:14px;margin-top:4px}
.stu .stat .duoItem{flex:1;display:flex;align-items:baseline;gap:5px;background:none;
  border:none;border-radius:0;padding:0;line-height:1.3}
.stu .stat .duoItem .k{font-size:12px;font-weight:700;color:#64748b;white-space:nowrap;flex:0 0 auto}
.stu .stat .rkTotal{font-size:12px;font-weight:700;color:#94a3b8}
/* 响应式：手机 / 平板一排至少 2 张卡，大屏恢复 4 张 */
@media(max-width:959px){.stu .grid.c4{grid-template-columns:repeat(2,1fr)}}
@media(max-width:420px){
  .stu .stat{padding:7px 11px}
  .stu .stat .bigTxt{font-size:13px}
  .stu .stat .duo{gap:10px}
  .stu .stat .duoItem .k{font-size:12px}
  .stu .stat .num{font-size:16px}
  .stu .stat .rkTotal{font-size:11px}
}
/* ===== 五张功能卡一行排布（学习任务 / 自主学习 / 错题本 / 学习记录 / 学科修炼场）=====
   统一风格：白底渐变 + 立体投影 + 彩色图标块；标题行（图标+名称）+ 两行小字内容 */
.stu .grid.c5{grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}
.stu .grid.c5 .stat{padding:9px 10px;min-width:0;border-radius:12px;
  background:linear-gradient(180deg,#ffffff 0%,#f6f9ff 100%);
  border:1px solid #e2ebf7;
  box-shadow:0 3px 8px rgba(30,64,175,.10),0 1px 2px rgba(30,64,175,.08),inset 0 1px 0 #ffffff}
.stu .grid.c5 .stat:hover{border-color:#bcd4f5;box-shadow:0 5px 12px rgba(30,64,175,.16),inset 0 1px 0 #ffffff}
.stu .grid.c5 .stat .lb{font-size:12.5px;font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.stu .grid.c5 .stat .lb .cico{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;
  width:20px;height:20px;border-radius:6px;font-size:12px;font-style:normal;margin-right:4px;
  box-shadow:inset 0 -1px 2px rgba(0,0,0,.06)}
/* 五卡各自的图标底色 */
.stu #cardTask .cico{background:#fdeaea}
.stu #cardSelf .cico{background:#e8f1ff}
.stu #cardWrongCard .cico{background:#fef3e6}
.stu #cardRank .cico{background:#fdf6df}
.stu #cardXl .cico{background:#f1eaff}
/* 内容区：比标题小一号，固定两行 */
.stu .grid.c5 .stat .lines{gap:1px;margin-top:4px}
.stu .grid.c5 .stat .lineItem{gap:4px}
.stu .grid.c5 .stat .lineItem .k{font-size:10.5px}
.stu .grid.c5 .stat .lineItem .u{font-size:10.5px}
.stu .grid.c5 .stat .num{font-size:14px}
.stu .grid.c5 .stat .bigTxt{font-size:11.5px;margin-top:4px}
.stu .grid.c5 .stat .hint{font-size:10.5px;margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.stu .grid.c5 .stat .wrongNum{font-size:15px;margin-top:3px}
.stu .grid.c5 .stat .duo{gap:8px;margin-top:4px}
.stu .grid.c5 .stat .duoItem{gap:3px}
.stu .grid.c5 .stat .duoItem .k{font-size:10.5px}
.stu .grid.c5 .stat .rkTotal{font-size:10px}
/* ④ 学习记录和排名：手机端用短名「学习记录」 */
.stu .grid.c5 .stat .lb .lbShort{display:none}
/* ⑤ 学科修炼场：与其他四卡同风格，境界两行用主题紫色区分 */
.stu .stat.statXl .xlL1{color:#6d3fc4;font-weight:700}
.stu .stat.statXl .xlL2{color:#8b5cf6;font-weight:700}
@media(max-width:640px){
  /* 注：部分环境（如 Edge 中文）最小字号钳制 12px，小屏按 12px 规划宽度 */
  .stu .grid.c5{gap:4px}
  .stu .grid.c5 .stat{padding:6px 3px;text-align:center}
  .stu .grid.c5 .stat .lb{font-size:12px;letter-spacing:0;justify-content:center;flex-direction:column;gap:3px}
  .stu .grid.c5 .stat .lb .lbFull{display:none}
  .stu .grid.c5 .stat .lb .lbShort{display:inline}
  .stu .grid.c5 .stat .lb .cico{width:18px;height:18px;font-size:11px;margin-right:0;border-radius:5px}
  .stu .grid.c5 .stat .lines{align-items:center}
  .stu .grid.c5 .stat .lineItem{flex-direction:row;justify-content:center;gap:3px}
  .stu .grid.c5 .stat .lineItem .k{font-size:11px;white-space:nowrap}
  .stu .grid.c5 .stat .lineItem .u{display:none}
  .stu .grid.c5 .stat .num{font-size:13px}
  .stu .grid.c5 .stat .bigTxt{font-size:11px;text-align:center}
  .stu .grid.c5 .stat .hint{font-size:10.5px}
  .stu .grid.c5 .stat .wrongNum{font-size:14px}
  .stu .grid.c5 .stat .duo{flex-direction:column;align-items:center;gap:1px}
  .stu .grid.c5 .stat .duoItem{justify-content:center;white-space:nowrap}
  .stu .grid.c5 .stat .duoItem .k{font-size:11px}
  .stu .grid.c5 .stat .rkTotal{font-size:10px}
  .stu .stat.statXl .xlL1,.stu .stat.statXl .xlL2{white-space:normal;word-break:break-all;line-height:1.3;font-size:10.5px}
}
/* ===== 第 6 张卡：学习宠物入口，概览卡改六列 ===== */
.stu .grid.c6{grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}
/* ===== 8 卡一行（学科诊断 / 作文批改 入卡片行） ===== */
.stu .grid.c8{grid-template-columns:repeat(8,minmax(0,1fr));gap:8px}
.stu .grid.c6 .stat,.stu .grid.c8 .stat{padding:9px 10px;min-width:0;border-radius:12px}
.stu .grid.c6 .stat .lb,.stu .grid.c8 .stat .lb{font-size:12.5px;font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:flex;align-items:center}
.stu .grid.c6 .stat .lb .cico,.stu .grid.c8 .stat .lb .cico{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;font-size:12px;margin-right:4px;border-radius:6px;flex:0 0 auto}
.stu .grid.c6 .stat .lb .lbShort,.stu .grid.c8 .stat .lb .lbShort{display:none}
.stu .grid.c6 .stat .lines,.stu .grid.c8 .stat .lines{gap:1px;margin-top:4px}
.stu .grid.c6 .stat .lineItem,.stu .grid.c8 .stat .lineItem{gap:4px}
.stu .grid.c6 .stat .lineItem .k,.stu .grid.c8 .stat .lineItem .k{font-size:10.5px}
.stu .grid.c6 .stat .lineItem .u,.stu .grid.c8 .stat .lineItem .u{font-size:10.5px}
.stu .grid.c6 .stat .num,.stu .grid.c8 .stat .num{font-size:14px}
.stu .grid.c6 .stat .bigTxt,.stu .grid.c8 .stat .bigTxt{font-size:11.5px;margin-top:4px}
.stu .grid.c6 .stat .hint,.stu .grid.c8 .stat .hint{font-size:10.5px;margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.stu .grid.c6 .stat .wrongNum,.stu .grid.c8 .stat .wrongNum{font-size:15px;margin-top:3px}
.stu .grid.c6 .stat .duo,.stu .grid.c8 .stat .duo{gap:8px;margin-top:4px}
.stu .grid.c6 .stat .duoItem,.stu .grid.c8 .stat .duoItem{gap:3px}
.stu .grid.c6 .stat .duoItem .k,.stu .grid.c8 .stat .duoItem .k{font-size:10.5px}
.stu .grid.c6 .stat .rkTotal,.stu .grid.c8 .stat .rkTotal{font-size:10px}
.stu .stat.statPet .petL1{color:#b45309;font-weight:700}
.stu .stat.statPet .petL2{color:#f59e0b;font-weight:700}
.stu .stat.statDiag .hint{color:#4338ca;font-weight:700}
.stu .stat.statWc .hint{color:#be185d;font-weight:700}
/* 8 列下卡片更窄：排名行收紧防溢出 */
.stu .grid.c8 .stat .duo{gap:5px}
.stu .grid.c8 .stat .duoItem{gap:2px;white-space:nowrap}
.stu .grid.c8 .stat .duoItem .k{font-size:10px}
.stu .grid.c8 .stat .rkTotal{font-size:9.5px}
@media(max-width:1080px){.stu .grid.c6{grid-template-columns:repeat(3,minmax(0,1fr))}.stu .grid.c8{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:640px){
  .stu .grid.c6{gap:4px}
  .stu .grid.c8{gap:4px}
  .stu .grid.c6 .stat,.stu .grid.c8 .stat{padding:6px 3px;text-align:center}
  .stu .grid.c6 .stat .lb,.stu .grid.c8 .stat .lb{font-size:12px;letter-spacing:0;justify-content:center;flex-direction:column;gap:3px}
  .stu .grid.c6 .stat .lb .lbFull,.stu .grid.c8 .stat .lb .lbFull{display:none}
  .stu .grid.c6 .stat .lb .lbShort,.stu .grid.c8 .stat .lb .lbShort{display:inline}
  .stu .grid.c6 .stat .lb .cico,.stu .grid.c8 .stat .lb .cico{width:18px;height:18px;font-size:11px;margin-right:0;border-radius:5px}
  .stu .grid.c6 .stat .lines,.stu .grid.c8 .stat .lines{align-items:center}
  .stu .grid.c6 .stat .lineItem,.stu .grid.c8 .stat .lineItem{flex-direction:row;justify-content:center;gap:3px}
  .stu .grid.c6 .stat .lineItem .k,.stu .grid.c8 .stat .lineItem .k{font-size:11px;white-space:nowrap}
  .stu .grid.c6 .stat .lineItem .u,.stu .grid.c8 .stat .lineItem .u{display:none}
  .stu .grid.c6 .stat .num,.stu .grid.c8 .stat .num{font-size:13px}
  .stu .grid.c6 .stat .bigTxt,.stu .grid.c8 .stat .bigTxt{font-size:11px;text-align:center}
  .stu .grid.c6 .stat .hint,.stu .grid.c8 .stat .hint{font-size:10.5px}
  .stu .grid.c6 .stat .wrongNum,.stu .grid.c8 .stat .wrongNum{font-size:14px}
  .stu .grid.c6 .stat .duo,.stu .grid.c8 .stat .duo{flex-direction:column;align-items:center;gap:1px}
  .stu .grid.c6 .stat .duoItem,.stu .grid.c8 .stat .duoItem{justify-content:center;white-space:nowrap}
  .stu .grid.c6 .stat .duoItem .k,.stu .grid.c8 .stat .duoItem .k{font-size:11px}
  .stu .grid.c6 .stat .rkTotal,.stu .grid.c8 .stat .rkTotal{font-size:10px}
  .stu .stat.statXl .xlL1,.stu .stat.statXl .xlL2,
  .stu .stat.statPet .petL1,.stu .stat.statPet .petL2,
  .stu .stat.statDiag .hint,.stu .stat.statWc .hint{white-space:normal;word-break:break-all;line-height:1.3;font-size:10.5px}
}
/* ===== 自主学习页：顶部为「切换学段教材 + 搜索」一行（标题行已按需求移除） ===== */
.selfBar{align-items:center}
/* ===== 切换学段教材按钮 + 课包名称搜索 同排；学科一行 ===== */
.selfBar{display:flex;gap:14px;align-items:flex-end;flex-wrap:wrap;margin-bottom:12px}
.selfBar .scopeBtn{flex:0 0 auto;padding:10px 16px;font-weight:800;font-size:13.5px;color:#fff;border:none;
  background:linear-gradient(135deg,#4f7ff0,#3b62d8);box-shadow:0 3px 8px rgba(59,98,216,.25)}
.selfBar .scopeBtn:hover{filter:brightness(1.06)}
.selfBar .kwBox{flex:1;min-width:230px;margin:0}
.subjChips.oneRow{flex-wrap:nowrap;margin-top:2px}
.subjChips.oneRow .subjChip{flex:1 1 0;min-width:0;justify-content:center;padding:8px 4px;font-size:13px;white-space:nowrap;gap:4px}
.subjChips.oneRow .subjChip em{font-size:10px;padding:1px 5px;margin-left:0}
@media(max-width:640px){
  .selfBar{gap:8px}
  .selfBar .scopeBtn{padding:9px 10px;font-size:12.5px}
  .subjChips.oneRow{gap:5px;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:3px}
  .subjChips.oneRow .subjChip{flex:0 0 auto;min-width:46px;padding:8px 8px;font-size:12px;gap:3px}
  .subjChips.oneRow .subjChip em{font-size:10px;padding:0 3px}
}
/* 头部：修改密码 / 退出固定在 logo 行右侧，不换行 */
.stu .tbWrap{flex-wrap:nowrap}
.stu .tbRight{flex:0 0 auto;margin-left:auto}
.stu .brand{min-width:0}
.stu .brand b,.stu .brand span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media(max-width:640px){
  .stu .brand b{font-size:14px}
  .stu .brand span{font-size:11px}
  .stu .ghostbtn{padding:4px 10px;font-size:12px}
}

/* ================= 教师工作台专属（.tea 作用域）：双概览卡 + 头部不换行 ================= */
.tea .stat{padding:9px 15px;text-align:left}
.tea .stat .lb{font-size:14px;font-weight:800;color:var(--ink);letter-spacing:.2px}
.tea .stat .lb .cico{font-style:normal;margin-right:5px;font-size:15px}
.tea .stat .hint{font-size:11.5px;margin-top:3px}
.tea .stat .hint b{color:#e02f3f}
.tea .stat.statLink{font-family:inherit;cursor:pointer;transition:all .15s;width:100%}
.tea .stat.statLink:hover{border-color:#9cc3ef;box-shadow:0 4px 14px rgba(59,110,220,.10);transform:translateY(-1px)}
.tea .stat.statLink:focus-visible{outline:2px solid #7fb0ef;outline-offset:1px}
/* 双格数据：无边框开放式 */
.tea .stat .duo{display:flex;align-items:baseline;gap:14px;margin-top:4px;flex-wrap:wrap}
.tea .stat .duoItem{display:flex;align-items:baseline;gap:5px;line-height:1.3}
.tea .stat .duoItem .k{font-size:12.5px;font-weight:700;color:#64748b;white-space:nowrap}
.tea .stat .duoItem .u{font-size:12px;color:#94a3b8;white-space:nowrap}
.tea .stat .num{font-size:20px;font-weight:800;letter-spacing:.3px;line-height:1.15;color:var(--ink)}
.tea .stat .num.red{color:#e02f3f}
.tea .stat .num.green{color:#0b8a3e}
/* 两张卡一行排完 */
.tea .grid.c2{grid-template-columns:1fr 1fr}
/* 头部：修改密码 / 退出固定在 logo 行右侧，不换行 */
.tea .tbWrap{flex-wrap:nowrap}
.tea .tbRight{flex:0 0 auto;margin-left:auto}
.tea .brand{min-width:0}
.tea .brand b,.tea .brand span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media(max-width:640px){
  .tea .brand b{font-size:14px}
  .tea .brand span{font-size:11px}
  .tea .ghostbtn{padding:4px 10px;font-size:12px}
  .tea .stat .num{font-size:17px}
  .tea .stat .duoItem .k{font-size:11.5px}
  .tea .stat .duo{gap:10px}
}
/* 修复：品牌文字容器可收缩，避免小屏与右侧按钮重叠 */
.tea .brand>div{min-width:0;flex:1 1 auto}
.stu .brand>div{min-width:0;flex:1 1 auto}
/* 卡片与下方功能区隔开 */
.stu #myCards{margin-bottom:16px}
.tea #sumCards{margin-bottom:16px}
/* 教师端：功能页返回教学工作台链接 */
.backHome{display:inline-flex;align-items:center;gap:5px;margin:2px 0 12px;padding:5px 14px 5px 10px;
  background:#fff;border:1px solid #e5eaf3;border-radius:999px;font-size:13px;font-weight:700;color:#4a6b9d;
  cursor:pointer;user-select:none;transition:all .15s}
.backHome span{font-size:15px;font-weight:800;line-height:1}
.backHome:hover{border-color:#9cc3ef;background:#f4f9ff;color:#2c5aa8;transform:translateX(-2px)}

/* ================= 任务详情：实时进度 + 逐题矩阵 + 讲评模式 ================= */
.bar.big{height:14px;border-radius:10px}
.liveRow{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.liveRow .bar{flex:1;min-width:180px}
.liveLbl{font-size:13px;font-weight:800;color:var(--ink2);white-space:nowrap}
.livePct{font-size:21px;font-weight:800;color:var(--ink);min-width:60px;text-align:right}
.liveMeta{font-size:12.5px;color:var(--ink3)}
.liveMeta b{color:var(--ink)}
.liveDot{font-size:11.5px;font-weight:700;color:#0f9d58;background:#e8f8ef;border-radius:999px;padding:3px 10px;transition:.25s;white-space:nowrap}
.liveDot.pulse{background:#0f9d58;color:#fff;transform:scale(1.06)}
.dtTabs{display:flex;gap:6px;flex-wrap:wrap;margin:12px 0 2px}
.dtTabs button{border:1px solid var(--line);background:#fff;border-radius:999px;padding:7px 15px;font-size:13px;font-weight:700;color:var(--ink2);cursor:pointer;transition:.15s}
.dtTabs button.on{background:linear-gradient(135deg,#4f46e5,#0ea5e9);border-color:transparent;color:#fff;box-shadow:0 4px 12px rgba(79,70,229,.3)}
.progCell{display:flex;align-items:center;gap:8px}
.progPct{font-size:12.5px;min-width:40px;text-align:right}
.stuLink{color:inherit;text-decoration:none;border-bottom:1px dashed #c7d2fe;cursor:pointer}
.stuLink:hover{color:#4f46e5;border-bottom-style:solid}
/* 逐题矩阵 */
.mxMod{border:1px solid var(--line);border-radius:12px;background:#fff;margin-top:10px;overflow:hidden}
.mxMod>summary{cursor:pointer;padding:10px 13px;font-size:13.5px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.mxMod>summary .sub{font-size:12px;color:var(--ink3)}
.mxMod[open]>summary{border-bottom:1px solid var(--line);background:#f8fafc}
.mxMod .tbwrap{border:none;border-radius:0}
.mxTbl th,.mxTbl td{text-align:center;padding:7px 6px}
.mxTbl th:first-child,.mxTbl td:first-child{text-align:left;min-width:120px}
.mxTbl .mxRate td{background:#f8fafc;font-weight:800;color:var(--ink2)}
tr.mxRow.focus td{background:#f5f6ff!important}
.ansCell{display:inline-flex;align-items:center;justify-content:center;min-width:36px;height:26px;border-radius:8px;font-size:12.5px;font-weight:800;letter-spacing:.5px}
.ansCell.ok{background:#e8f8ef;color:#0b6b3f}
.ansCell.bad{background:#fee2e2;color:#b91c1c}
.ansCell.doing{background:#fff4e5;color:#a16400}
.ansCell.na{background:#f1f5f9;color:#94a3b8}
/* 按题目统计 */
.qstatCard{background:#fff;border:1px solid var(--line);border-radius:14px;padding:13px 14px;margin-top:10px}
.qstatCard.hot,.revCard.hot{border-color:#fecaca;box-shadow:0 0 0 3px rgba(239,68,68,.07)}
.qsTop,.revTop{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.qsNo{font-weight:800;color:#4f46e5;font-size:14px}
.revNo{font-weight:800;color:#4f46e5;font-size:15px}
.qsRate{font-size:13px;font-weight:800;border-radius:8px;padding:3px 10px;white-space:nowrap}
.qsRate.ok{background:#e8f8ef;color:#0b6b3f}
.qsRate.warn{background:#fff4e5;color:#a16400}
.qsRate.bad{background:#fee2e2;color:#b91c1c}
.qsRate.na{background:#f1f5f9;color:#94a3b8}
.qsQ{font-size:14.5px;font-weight:700;line-height:1.75;margin:9px 0 2px}
.qsOpt,.revOpt{display:flex;align-items:center;gap:9px;padding:6px 10px;border-radius:10px;margin-top:6px;font-size:13.5px;background:#f8fafc;border:1px solid transparent}
.qsOpt.right,.revOpt.right{background:#f0fbf4;border-color:#bfe8d2}
.revOpt.picked{background:#fff7f7;border-color:#f6c9c9}
.qsOpt .ol,.revOpt .ol{width:24px;height:24px;border-radius:7px;background:#e2e8f0;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:12.5px;flex:none}
.revOpt.right .ol{background:#0f9d58;color:#fff}
.qsOpt .ot,.revOpt .ot{flex:1;min-width:120px;line-height:1.55}
.okMark{font-size:11.5px;font-weight:800;color:#0b6b3f;white-space:nowrap}
.qsMeta{font-size:12.6px;color:var(--ink2);margin-top:10px}
.c-ok{color:#0b6b3f}
.c-bad{color:#b91c1c}
.qsStu,.rsRow{display:flex;gap:8px;align-items:flex-start;margin-top:10px;flex-wrap:wrap}
.qsStu .lbl,.rsRow .lbl{font-size:12.3px;font-weight:800;color:var(--ink3);padding-top:3px;white-space:nowrap}
.lbl.bad{color:#b91c1c}
.lbl.ok{color:#0b6b3f}
.chips{display:flex;flex-wrap:wrap;gap:5px}
.stuChip{font-size:12px;font-weight:700;border-radius:999px;padding:3px 10px}
.stuChip.bad{background:#fee2e2;color:#b91c1c}
.stuChip.ok{background:#e8f8ef;color:#0b6b3f}
.stuChip.na{background:#f1f5f9;color:#64748b}
/* 讲评模式 */
.revNav{background:#fff;border:1px solid var(--line);border-radius:14px;padding:11px 13px}
.revMods{display:flex;gap:6px;flex-wrap:wrap}
.revMod{border:1px solid var(--line);background:#f8fafc;border-radius:9px;padding:6px 11px;font-size:12.5px;font-weight:700;color:var(--ink2);cursor:pointer}
.revMod.on{background:#4f46e5;border-color:#4f46e5;color:#fff}
.revQs{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px;align-items:center}
.revQ{min-width:42px;height:30px;border-radius:9px;border:1px solid var(--line);font-weight:800;font-size:12.5px;cursor:pointer;background:#f8fafc;color:var(--ink2)}
.revQ.ok{background:#e8f8ef;color:#0b6b3f;border-color:#bfe8d2}
.revQ.warn{background:#fff4e5;color:#a16400;border-color:#f5d9a8}
.revQ.bad{background:#fee2e2;color:#b91c1c;border-color:#f6c9c9}
.revQ.na{background:#f1f5f9;color:#94a3b8}
.revQ.on{outline:3px solid rgba(79,70,229,.35);outline-offset:1px}
.revAll,.revRefresh{margin-left:auto;border:1px solid var(--line);background:#fff;border-radius:9px;padding:6px 12px;font-size:12.5px;font-weight:700;cursor:pointer;color:var(--ink2)}
.revAll.on{background:#0ea5e9;border-color:#0ea5e9;color:#fff}
.revCard{margin-top:12px;padding:16px 18px}
.revQText{font-size:19px;font-weight:800;line-height:1.8;margin:11px 0 3px}
.revOpt{font-size:15px;padding:9px 12px;margin-top:7px}
.revOpt .ol{width:28px;height:28px;font-size:13.5px}
.revFoot{display:flex;align-items:center;gap:12px;justify-content:center;margin:16px 0 4px;flex-wrap:wrap}
/* 折叠面板（详情抽屉内） */
details.reveal{border:1px solid var(--line);border-radius:10px;margin-top:9px;background:#fff}
details.reveal>summary{cursor:pointer;padding:8px 12px;font-size:12.8px;font-weight:700;color:#4f46e5;list-style:none}
details.reveal>summary::before{content:"▸ ";font-size:11px}
details.reveal[open]>summary::before{content:"▾ "}
details.reveal>div.body{padding:2px 12px 10px;font-size:13px;line-height:1.8}

/* ==========================================================================
 * 老师自建资源库 + 任务「自定义课堂环节」
 * ========================================================================== */
/* —— 环节编辑卡片（新建任务弹窗内） —— */
.segCard{border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin-bottom:10px;background:#fafaff}
.segCard .row{gap:8px;margin-bottom:6px}
.segCard textarea{width:100%;font-size:13px}
.segHd{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:6px}
.segNo{font-size:12px;font-weight:700;color:#4f46e5;background:#eef2ff;border-radius:6px;padding:2px 7px}
.segRes{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:6px}
.resChip{display:inline-flex;align-items:center;gap:5px;font-size:12.5px;color:#0f172a;
  background:#fff;border:1px solid var(--line);border-radius:999px;padding:3px 10px;text-decoration:none;line-height:1.7}
.resChip:hover{border-color:#4f46e5;color:#4f46e5}
.resChip .x{cursor:pointer;color:#94a3b8;font-weight:700;margin-left:2px}
.resChip .x:hover{color:#dc2626}
.resWrap{display:inline-flex;align-items:center;gap:4px}

/* —— 自定义环节 · 题库在线答题 —— */
.segQuizBar{display:flex;flex-wrap:wrap;align-items:center;gap:4px;margin-top:7px;font-size:12.5px;
  background:#f4f8ff;border:1px solid #dbeafe;border-radius:10px;padding:6px 10px;color:#1e3a8a}
.segQuizStat{margin-top:8px;background:#f4f8ff;border:1px solid #dbeafe;border-radius:10px;padding:8px 11px}
.qzList{margin-top:6px;display:flex;flex-direction:column;gap:4px}
.qzRow{display:flex;align-items:center;gap:8px;font-size:12.5px;padding:4px 6px;
  background:#fff;border:1px solid var(--line);border-radius:8px}
.qzNo{flex:0 0 22px;height:22px;line-height:22px;text-align:center;border-radius:6px;
  background:#eef2ff;color:#4338ca;font-weight:700;font-size:11.5px}
.qzStem{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#0f172a}
.qzRef{flex:0 0 auto;color:#0f766e;font-size:12px}
.qzRate{flex:0 0 auto;padding:1px 8px;border-radius:6px;background:#f1f5f9;color:#475569;font-size:11.5px}
.qzRate.ok{background:#dcfce7;color:#15803d}
.qzRate.bad{background:#fee2e2;color:#b91c1c}
.qzCard{border:1px solid var(--line);border-radius:12px;padding:10px 12px;margin-bottom:10px;background:#fff}
.qzCard.ok{border-color:#86efac;background:#f0fdf4}
.qzCard.bad{border-color:#fca5a5;background:#fef2f2}
.qzHead{display:flex;align-items:center;gap:6px;font-size:13px;margin-bottom:5px}
.qzStem2,.qzCard .qzStem{white-space:pre-wrap;line-height:1.75;font-size:14px;margin-bottom:7px}
.qzFigure{background:#f4f8ff;border:1px solid #dbeafe;border-radius:8px;padding:6px 9px;
  font-size:12.5px;color:#1d4ed8;margin-bottom:7px;white-space:pre-wrap}
/* 提示 / 解析：默认收起，点击展开 */
.qzToggle{display:inline-flex;align-items:center;gap:4px;font-size:12.5px;color:#1d4ed8;background:#eff6ff;
  border:1px solid #bfdbfe;border-radius:8px;padding:3px 10px;cursor:pointer;margin-bottom:6px}
.qzToggle:hover{background:#dbeafe}
.qzToggle.exp{color:#92400e;background:#fffbeb;border-color:#fde68a}
.qzToggle.exp:hover{background:#fef3c7}
.qzHint{background:#f4f8ff;border:1px solid #dbeafe;border-radius:8px;padding:7px 10px;
  font-size:12.5px;color:#1d4ed8;margin-bottom:7px;white-space:pre-wrap;line-height:1.7}
.qzHint.ans{background:#fffbeb;border-color:#fde68a;color:#713f12}
.qzHint.ans b{color:#92400e}
/* 老师端 · 选题布置 */
.qPickBar{margin-top:7px;font-size:12.5px;background:#f4f8ff;border:1px solid #dbeafe;
  border-radius:10px;padding:6px 10px;color:#1e3a8a;display:flex;align-items:center;flex-wrap:wrap;gap:4px}
.qpRow{display:flex;align-items:center;gap:8px;padding:6px 8px;border:1px solid var(--line);
  border-radius:8px;margin-bottom:5px;cursor:pointer;font-size:13px;background:#fff}
.qpRow:hover{border-color:#4f46e5}
.qpRow.on{border-color:#93c5fd;background:#f4f8ff}
.qpNo{flex:0 0 22px;height:22px;line-height:22px;text-align:center;border-radius:6px;
  background:#eef2ff;color:#4338ca;font-weight:700;font-size:11.5px}
.qpStem{flex:1;min-width:0;color:#0f172a;line-height:1.5}
.qpType{flex:0 0 auto;font-size:11.5px;color:#64748b;background:#f1f5f9;border-radius:6px;padding:1px 7px}
.qzFig{margin-bottom:7px}
.qzFig img{max-width:100%;max-height:260px;border:1px solid var(--line);border-radius:8px;background:#fff}
.qzOpt{display:flex;align-items:flex-start;gap:7px;padding:5px 8px;margin-bottom:4px;
  border:1px solid var(--line);border-radius:8px;cursor:pointer;font-size:13.5px;line-height:1.6}
.qzOpt:hover{border-color:#4f46e5;background:#f8faff}
.qzOpt.ok{border-color:#86efac;background:#f0fdf4}
.qzOpt.bad{border-color:#fca5a5;background:#fef2f2}
.qzRef2,.qzCard .qzRef{margin-top:7px;font-size:12.5px;background:#fffbeb;
  border:1px solid #fde68a;border-radius:8px;padding:6px 9px}

/* —— 资源库弹窗 —— */
.libRow{display:flex;align-items:center;gap:9px;padding:8px 6px;border-bottom:1px solid var(--line)}
.libRow:last-child{border-bottom:0}
.libIco{font-size:18px;flex:0 0 auto}
.libMeta{flex:1;min-width:0}
.libMeta b{font-size:13.3px}
.libMeta .mt{font-size:12px;color:#64748b;margin-top:2px}
.libActs{display:flex;gap:5px;flex:0 0 auto}
.libActs .btn{padding:3px 9px;font-size:12px}

/* —— 学生端 / 教师详情的环节行 —— */
.item.seg{background:#fafaff}
.item.seg .no{background:#eef2ff;color:#4f46e5}
.segRow{border:1px solid var(--line);border-radius:10px;padding:9px 11px;margin-bottom:9px;background:#fafaff}
.segRow:last-child{margin-bottom:0}

/* ==========================================================================
 * 我的资源库（整页 · 分类树 · 共享范围 · 题库）
 * ========================================================================== */
.mlTree{font-size:13.2px}
.treeRow{display:flex;align-items:center;gap:5px;padding:6px 8px;border-radius:9px;cursor:pointer;user-select:none}
.treeRow:hover{background:#f4f6ff}
.treeRow.on{background:#eef2ff;color:#4338ca;font-weight:700}
.treeRow .tw{width:16px;text-align:center;color:#94a3b8;flex:0 0 auto;font-size:11px;cursor:pointer}
.treeRow .tName{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.treeRow .tCnt{font-size:11px;color:#94a3b8;flex:0 0 auto}
.treeRow .tOps{display:none;gap:3px;flex:0 0 auto}
.treeRow:hover .tOps{display:inline-flex}
.treeRow .tOps button{border:0;background:none;cursor:pointer;font-size:12px;color:#94a3b8;padding:0 2px}
.treeRow .tOps button:hover{color:#4f46e5}
.treeKids{margin-left:18px;border-left:1px dashed var(--line);padding-left:4px}
.scopeB{display:inline-block;font-size:10.8px;font-weight:700;border-radius:5px;padding:1px 6px;margin-left:6px;vertical-align:1px}
.scopeB.private{background:#f1f5f9;color:#64748b}
.scopeB.school{background:#e8f8ef;color:#0f9d58}
.scopeB.platform{background:#fff4e5;color:#a16400}
.kindB{display:inline-block;font-size:10.8px;font-weight:700;border-radius:5px;padding:1px 6px;margin-right:5px;vertical-align:1px}
.kindB.bank{background:#eef2ff;color:#4338ca}
.kindB.material{background:#eff6ff;color:#2563eb}
.kindB.exercise{background:#fdf2f8;color:#be185d}
.qItem2{border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin-bottom:9px;background:#fbfcff}
.qItem2 .qh2{font-size:12px;color:#64748b;margin-bottom:4px;display:flex;gap:6px;align-items:center}
.qItem2 textarea{width:100%;font-size:13px;min-height:44px}
.qOpts2 input{font-size:12.8px}
.ocrProg{height:8px;border-radius:99px;background:#eef2ff;overflow:hidden;margin:8px 0}
.ocrProg i{display:block;height:100%;width:0;background:linear-gradient(90deg,#4f46e5,#0ea5e9);transition:width .3s}
/* —— 拍照录题 —— */
.phPrev{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.phPrev figure{margin:0;width:72px;text-align:center}
.phPrev img{width:72px;height:72px;object-fit:cover;border-radius:8px;border:1px solid var(--line);display:block}
.phPrev figcaption{font-size:10.5px;color:#94a3b8;margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.phStat{font-size:12.5px;padding:7px 10px;border-radius:9px;background:#eef2ff;color:#3730a3;margin:6px 0}
.phStat.warn{background:#fff7ed;color:#9a3412}
.phStat.good{background:#ecfdf5;color:#065f46}
.qItem2.warn{border-color:#fbbf24;background:#fffbeb}
.warnTag{display:inline-block;font-size:11px;padding:1px 6px;border-radius:6px;background:#fef3c7;color:#92400e;margin-left:4px}
/* —— 题图（原题照片 / 几何插图）—— */
.phThumb{width:88px;height:88px;object-fit:cover;object-position:top center;border-radius:8px;border:1px solid var(--line);cursor:zoom-in;flex:none;background:#fff}
.phThumb:hover{border-color:#6366f1;box-shadow:0 2px 10px rgba(99,102,241,.25)}
.figTag{display:inline-block;font-size:11px;padding:1px 6px;border-radius:6px;background:#eff6ff;color:#1d4ed8;margin-left:4px}
.aiTag{display:inline-block;font-size:11px;padding:1px 6px;border-radius:6px;background:#ecfdf5;color:#047857;margin-left:4px}
/* 从照片里裁出来的插图：缩略图 + 状态角标 + 看整张原图的入口 */
.phFigBox{flex:none;display:flex;flex-direction:column;align-items:center;gap:3px}
.phFigCap{font-size:11px;color:#059669;font-weight:600}
.phFigLink{border:none;background:none;padding:0;font-size:11px;color:#6366f1;cursor:pointer;text-decoration:underline}
.visChk{display:flex;align-items:flex-start;gap:6px;font-size:12.5px;color:var(--ink3);margin:6px 0;line-height:1.5}
.visChk input{margin-top:2px}
@media(max-width:760px){
  #mlBody{grid-template-columns:1fr !important}
  .libActs{flex-wrap:wrap}
}

/* ============================== 老师端 · 腾讯云 AI 批改 ============================== */
.mkPending{ text-align:center; padding:26px 10px 16px }
.mkPending .spinner{ width:34px; height:34px; margin:0 auto 12px; border:4px solid #e2e8f0;
  border-top-color:#4f46e5; border-radius:50%; animation:mkspin .9s linear infinite }
@keyframes mkspin{ to{ transform:rotate(360deg) } }
.mkErr{ color:#dc2626; font-size:13.5px; background:#fef2f2; border:1px solid #fecaca;
  border-radius:8px; padding:9px 12px; margin:8px 0 }
.mkSum{ font-size:13.5px; color:#334155; margin:6px 0 10px }
.mkSum b{ color:#4f46e5 }
.mkImgWrap{ position:relative; display:inline-block; max-width:100%; margin-bottom:12px }
.mkImgWrap img{ max-width:100%; max-height:56vh; border-radius:8px; display:block; border:1px solid #e2e8f0 }
.mkBox{ position:absolute; border:2.5px solid rgba(239,68,68,.92); border-radius:4px;
  background:rgba(239,68,68,.10); pointer-events:none }
.mkBox.ok{ border-color:rgba(34,197,94,.88); background:rgba(34,197,94,.09) }
.mkCard{ border:1px solid #e2e8f0; border-left:3px solid #cbd5e1; border-radius:10px;
  padding:10px 12px; margin-bottom:8px; background:#fff }
.mkCard.mkSub{ margin-left:18px; background:#f8fafc }
.mkStem{ font-size:13.5px; color:#0f172a; line-height:1.75; margin-bottom:6px }
.mkAI{ border-radius:8px; padding:8px 10px; margin:6px 0; font-size:13px; line-height:1.8 }
.mkAI.good{ background:#f0fdf4; border:1px solid #bbf7d0 }
.mkAI.bad{ background:#fef2f2; border:1px solid #fecaca }
.mkAI.info{ background:#f8fafc; border:1px solid #e2e8f0 }
.mkVerdict{ display:inline-block; font-size:12px; font-weight:700; border-radius:999px;
  padding:1px 10px; margin-bottom:4px }
.mkVerdict.good{ color:#15803d; background:#dcfce7 }
.mkVerdict.bad{ color:#b91c1c; background:#fee2e2 }
.mkVerdict.info{ color:#1d4ed8; background:#dbeafe }
.mkRow{ color:#334155; word-break:break-all }
.mkRow b{ color:#0f172a }
.mkKp{ display:inline-block; font-size:12px; color:#1e40af; background:#dbeafe;
  border-radius:999px; padding:1px 9px; margin:1px 4px 1px 0 }
.mkHist{ margin-top:10px; border-top:1px dashed #e2e8f0; padding-top:8px }
.mkHistT{ font-size:12px; color:#94a3b8; margin-bottom:5px }
.mkHistItem{ display:inline-block; font-size:12px; color:#334155; background:#f1f5f9;
  border:1px solid #e2e8f0; border-radius:999px; padding:2px 10px; margin:0 6px 5px 0; cursor:pointer }
.mkHistItem:hover{ background:#e0e7ff; border-color:#a5b4fc; color:#3730a3 }

/* ============================== 老师端 · 腾讯云试卷切题 ============================== */
.qsPage{ margin-bottom:14px }
.qsPageWrap{ position:relative; display:inline-block; max-width:100%; margin-bottom:10px }
.qsPageWrap img{ max-width:100%; max-height:60vh; display:block; border:1px solid #e2e8f0; border-radius:8px; opacity:.92 }
.qsBox{ position:absolute; border:2px solid rgba(79,70,229,.85); border-radius:3px;
  background:rgba(79,70,229,.08); pointer-events:auto; cursor:pointer }
.qsBox:hover{ border-color:#ef4444; background:rgba(239,68,68,.12) }
.qsCard.hl{ border-color:#4f46e5 !important; box-shadow:0 0 0 2px rgba(79,70,229,.25) }
.qsCard textarea{ width:100%; font-size:13px; margin-top:4px }

/* ============================== 资源库 · 分类视图直显题库题目 ============================== */
.catBank{ border:1px solid #e2e8f0; border-radius:12px; background:#fff; padding:10px 12px; margin-bottom:12px }
.cbHead{ display:flex; align-items:center; gap:8px; flex-wrap:wrap; padding-bottom:8px; border-bottom:1px dashed #e2e8f0 }
.cbHead b{ font-size:14px }
.cbCnt{ font-size:12px }
.cbBody{ padding-top:6px }
.cbq{ border-bottom:1px dashed #eef2f7; padding:8px 2px }
.cbq:last-child{ border-bottom:none }
.cbqHead{ display:flex; align-items:center; gap:6px; flex-wrap:wrap }
.cbqNo{ font-weight:700; font-size:13px; white-space:nowrap }
.cbqDigest{ font-size:13px; color:#334155; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; max-width:46% }
.cbqFull{ padding:6px 2px 2px }
.cbqStem{ font-size:13.5px; line-height:1.8; color:#0f172a; white-space:pre-wrap; word-break:break-all }
.cbqOpts{ display:flex; flex-wrap:wrap; gap:6px 14px; margin-top:5px }
.cbqOpt{ font-size:13px; color:#334155 }
.cbqOpt.ok{ color:#15803d; font-weight:700 }
.cbqMeta{ font-size:12.5px; color:#475569; margin-top:4px; line-height:1.7; word-break:break-all }
.cbqEdit{ padding:6px 2px }
.cbqEdit textarea{ width:100%; font-size:13px }

/* ============================== 学生名单多选 / 授课内容折叠 ============================== */
.tb tbody tr.selRow{ background:#eef2ff }
.tb tbody tr.selRow:hover{ background:#e0e7ff }
.chk input[type=radio], .chk input[type=checkbox]{ width:15px; height:15px; accent-color:#4f46e5 }
/* 顶栏「代管学校」下拉（深色顶栏内保持可读） */
#agentSchool{ background:#ffffff; color:#0f172a; border:1px solid rgba(255,255,255,.45); border-radius:8px; padding:4px 8px; font-size:13px; max-width:230px }
#agentSchool option{ color:#0f172a; background:#fff }

/* ---------------- 使用权限 / 缴费状态徽标（管理台） ---------------- */
.pill.ok{background:#e8f8ef;color:#0f9d58}
.pill.warn{background:#fff4e5;color:#a16400}
.pill.gray{background:#eef2f7;color:#64748b}

/* ---------------- 学生端顶栏 · 通关星 ---------------- */#starChip{display:inline-flex;align-items:center;gap:5px;background:rgba(255,255,255,.16);
  border:1px solid rgba(255,255,255,.4);color:#fff;border-radius:999px;padding:5px 13px;
  font-size:13px;font-weight:700;white-space:nowrap;cursor:default;transition:transform .15s}
#starChip b{color:#ffe08a;font-size:15px;font-weight:800}
#starChip .starIco{font-size:15px;line-height:1;transform:translateY(.5px)}
#starChip.gain{animation:starPop .8s ease}
@keyframes starPop{0%{transform:scale(1)}35%{transform:scale(1.22);box-shadow:0 0 18px rgba(255,224,138,.65)}100%{transform:scale(1)}}

/* ---------------- 登录页品牌徽章：logo 与标语合成一个整体（2026-10-12） ---------------- */
.loginBox{max-width:560px}
.loginBox .hdTop{margin-bottom:16px}
.hdTop .brandCapsule{display:flex;width:100%;box-sizing:border-box;align-items:center;justify-content:center;gap:12px;
  background:linear-gradient(180deg,#ffffff,#f7f9ff);border-radius:16px;
  padding:13px 20px;border:1.5px solid rgba(255,255,255,.92);
  box-shadow:0 10px 30px rgba(15,23,42,.20),0 2px 6px rgba(15,23,42,.10)}
.hdTop .brandCapsule .loginLogo{margin:0;width:auto;height:44px;flex:0 0 auto;
  filter:drop-shadow(0 2px 8px rgba(0,0,0,.08))}
.hdTop .brandTxt{font-size:19.5px;font-weight:900;color:#312e81;letter-spacing:1.2px;
  white-space:nowrap;line-height:1.25;padding-bottom:1px}
@media(max-width:560px){
  .hdTop .brandCapsule{flex-direction:column;gap:5px;padding:12px 18px}
  .hdTop .brandCapsule .loginLogo{height:42px}
  .hdTop .brandTxt{font-size:16px;letter-spacing:.7px;white-space:normal;text-align:center}
}
@media(max-width:360px){
  .hdTop .brandTxt{font-size:14.5px;letter-spacing:.4px}
}
/* 身份选择按钮 · 立体感（与品牌徽章呼应） */
.loginBox .roleSel button{background:linear-gradient(180deg,#ffffff,#f7faff);
  border:1.5px solid #e4ebf6;border-radius:13px;
  box-shadow:0 3px 10px rgba(15,23,42,.10),0 1px 3px rgba(15,23,42,.06);
  transition:transform .15s,box-shadow .15s,border-color .15s,color .15s}
.loginBox .roleSel button:hover{transform:translateY(-2px);
  box-shadow:0 8px 20px rgba(15,23,42,.14),0 2px 6px rgba(15,23,42,.08)}
.loginBox .roleSel button.on{border-color:var(--brand);
  background:linear-gradient(180deg,#ffffff,#f5f7ff);
  box-shadow:0 8px 22px rgba(79,70,229,.22),0 2px 6px rgba(79,70,229,.12)}
.loginBox .roleSel button .ri{font-style:normal;margin-right:5px}
@media(max-width:380px){.loginBox .roleSel button .ri{display:none}}

/* ---------------- 学生端概览卡 · 宠物迷你形象（2026-10-12） ---------------- */
.miniPet{display:inline-flex;align-items:center;justify-content:center;
  width:24px;height:24px;border-radius:50%;overflow:hidden;flex:0 0 auto;
  background:linear-gradient(180deg,#fff,#eef4ff);box-shadow:0 1px 4px rgba(15,23,42,.14);
  vertical-align:middle;margin-right:4px;transform:translateY(-1px)}
.miniPet svg{width:100%;height:100%;display:block}
#petTip1{display:flex;align-items:center}

/* ---------------- 学生端顶栏微调（2026-10-12 第二轮） ---------------- */
/* logo 更靠左：顶栏容器加宽 */
.stu .tbWrap{max-width:1220px}
@media(min-width:1400px){.stu .tbWrap{max-width:1220px}}
/* 通关星胶囊与右侧按钮完全等高 */
.stu .tbRight #starChip{height:30px;padding:0 13px;font-size:13px;line-height:1}
.stu .tbRight .ghostbtn{height:30px;padding:0 13px;font-size:13px;line-height:1;display:inline-flex;align-items:center}
#starChip b{font-size:14.5px}
#starChip .starIco{font-size:14px}
/* 卡片标题行的学伴形象图标 */
.stat .lb .cico.miniPet{width:22px;height:22px;margin-right:5px;transform:none;box-shadow:0 1px 3px rgba(15,23,42,.18)}

/* 自主学习列表：开始学习按钮与标题保持同一行（覆盖窄屏换行规则） */
@media(max-width:560px){
  .chapterGrp .item{flex-wrap:nowrap}
  .chapterGrp .item .body{flex:1 1 auto}
  .chapterGrp .item>.btn{flex:0 0 auto;white-space:nowrap}
}


/* ---------------- 学生端自主学习 · 筛选区重排 + 开始学习按钮（2026-10-12 第五轮） ---------------- */
/* 学科选择在上、切换学段教材+搜索框在下 */
.stu .card .selfBar{margin-bottom:2px}
.stu .card .subjChips.oneRow{margin:2px 0 12px}
/* 搜索框宽度缩小约三分之一 */
.stu .selfBar .kwBox{flex:1 1 auto;min-width:200px;max-width:62%}
/* 宠物学伴卡：标题与两行内容居中 */
.stu .stat.statPet .lb{justify-content:center}
.stu .stat.statPet .hint{text-align:center}
#petTip1{justify-content:center}
/* 课包条目整卡可点击进入学习（2026-10-12 第七轮） */
.chapterGrp .item.selfGo{cursor:pointer;transition:border-color .15s,box-shadow .15s,transform .15s}
.chapterGrp .item.selfGo:hover{border-color:#6366f1;box-shadow:0 4px 14px rgba(79,70,229,.14);transform:translateY(-1px)}
.chapterGrp .item.selfGo .body{flex:1 1 auto;min-width:0}
.chapterGrp .item.selfGo .body b{font-size:15px;font-weight:800;color:#1e293b;line-height:1.4}
.chapterGrp .item.selfGo .body .mt{margin-top:3px;font-size:12.5px;color:#64748b;line-height:1.45}
.chapterGrp .item .goArrow{flex:0 0 auto;font-size:22px;font-weight:700;color:#c7d2fe;line-height:1;transition:color .15s,transform .15s}
.chapterGrp .item.selfGo:hover .goArrow{color:#6366f1;transform:translateX(2px)}

/* 手机端：自主学习课包副标题压成一行省略（2026-10-12 第六轮） */
@media(max-width:700px){
  .chapterGrp .item .body .mt{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
}
/* 配套：允许 .body 收缩，否则 nowrap 文本会把条目撑出视口 */
@media(max-width:700px){
  .chapterGrp .item .body{min-width:0;flex:1 1 auto}
}
/* 网格轨道按 min-content 计最小宽，.item 需允许收缩到 1fr 内 */
@media(max-width:700px){
  .chapterGrp .item{min-width:0}
}
