/* M-50 日清过关（#/clear）：顶栏（班级 · 页签 · 过关率）→ 打印条 → 全班名单 | 选中学生（今天一句话 + 四步）。平板 1180 × 820 为主。
   颜色、字号、圆角、阴影都从 tokens.css 取；当前要处理的那一步卡片用 3 px 主色顶条（M-44），其余卡不加。
   颜色各一个意思：琥珀 = 欠着、等老师处理；紫 = 学生交了等批；绿 = 过关；红 = 没过、过了 48 小时。 */
.clr{flex:1;min-height:0;display:flex;flex-direction:column;gap:12px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* 顶栏 */
.clr-bar{display:flex;flex-wrap:wrap;align-items:center;gap:10px 18px;padding:12px 16px}
.clr-cname{display:grid;line-height:1.3}
.clr-cname b{font-size:16px;color:var(--ink)}
.clr-cname small{font-size:12px}
.clr-notes{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.clr-notes li{background:var(--soft);border-radius:var(--r-sm);padding:8px 12px}
.clr-notes li b{font-size:13px;margin-right:8px}
.clr-notes li p{margin:2px 0 0;font-size:14px;line-height:1.6;color:var(--ink)}
.clr-cls select{min-height:44px;max-width:min(320px,100%);padding:0 36px 0 14px;border:1px solid var(--line2);border-radius:var(--r-pill);background:var(--panel);font:inherit;font-size:14px;font-weight:600;color:var(--ink)}
.clr-tabs{flex-wrap:nowrap;overflow-x:auto}   /* 底、按钮、计数都用 studio.css 的 .tabs（C-270）；这里只留横向滚动 */
.clr-tabs button{flex:none}
.clr-rate{margin-left:auto;display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 8px}
.clr-rate .lbl{font-size:13px;color:var(--muted)}
.clr-rate b{font-size:30px;font-weight:700;line-height:1;color:var(--ok)}
.clr-rate b.zero{color:var(--faint);font-weight:500}
.clr-rate .sub{font-size:13px;color:var(--faint)}

/* 打印条 */
.clr-print{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;padding:10px 16px;background:var(--panel);border-radius:var(--r-md);font-size:13px;color:var(--muted)}
.clr-print b{color:var(--ink)}
.clr-print small{flex-basis:100%;font-size:12px}
.clr-pacts{margin-left:auto;display:flex;flex-wrap:wrap;gap:8px}

/* 第四期 C-147 巩固练习单：打印条下面一条（谁交了，点名字看照片）；名单里一个小字「巩固交了 / 没交」；详情里一张卡。
   绿 = 交了；没交用灰（巩固只记交没交，不催、不算等老师）。 */
.clr-pr{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;padding:8px 16px;background:var(--panel);border-radius:var(--r-md);font-size:13px;color:var(--muted)}
.clr-pr>b{font-size:14px;color:var(--ink)}
.clr-prt{color:var(--ink)}
.clr-prc{font-weight:600;color:var(--ink)}
.clr-prw{display:flex;flex-wrap:wrap;gap:4px}
.clr-prn{display:inline-flex;align-items:center;min-height:44px;padding:0 12px;border-radius:var(--r-pill);background:var(--ok-s);color:var(--ok);font-size:13px;font-weight:500;text-decoration:none}
a.clr-prn:hover{text-decoration:underline}
a.clr-prn:focus-visible{outline:2px solid var(--pri);outline-offset:2px}
.clr-prx{margin:0;padding:0 16px;font-size:12px;color:var(--muted)}
.clr-prs{flex:none;font-size:11px;font-weight:500;line-height:1;padding:3px 6px;border-radius:var(--r-pill);background:var(--tonal);color:var(--muted)}
.clr-prs.ok{background:var(--ok-s);color:var(--ok)}
/* M-104 线上作答：「线上 6/8」正文色（对几道是数量，不评好坏）；一道没对的灰；「线上没答」是欠着的事，琥珀 */
.clr-pro{flex:none;font-size:12px;color:var(--ink)}
.clr-pro b{font-weight:600}
.clr-pro.zero,.clr-pro.zero b{color:var(--dim);font-weight:400}
.clr-pro.due{color:var(--amber-t);font-weight:600}
.clr-r.none .clr-stats{grid-column:2}
.clr-prd{padding:12px 14px;display:grid;gap:8px}
.clr-prd .clr-sh{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px}
.clr-prd .clr-sh b{font-size:16px}
.clr-prd .clr-sh .s{font-size:13px;color:var(--muted)}
.clr-prd p{margin:0}

/* 名单 | 详情 */
.clr-body{flex:1;min-height:0;display:grid;grid-template-columns:var(--split-left,300px) minmax(0,1fr);gap:16px}
.clr-q{min-height:0;overflow:auto;padding:12px;display:flex;flex-direction:column;gap:14px}
.clr-grp h3{margin:2px 6px 6px;font-size:12px;font-weight:500;color:var(--faint);display:flex;justify-content:space-between}
.clr-grp ul{list-style:none;margin:0;padding:0;display:grid;gap:4px}
.clr-stu{width:100%;display:grid;grid-template-columns:28px minmax(0,1fr);align-items:center;gap:10px;min-height:56px;padding:6px 10px;border:1px solid transparent;border-radius:var(--r-sm);background:none;text-align:left;font:inherit;color:var(--ink)}
.clr-stu:hover{background:var(--soft);border-color:var(--line)}
.clr-stu[aria-current="true"]{background:var(--pri-s);border-color:var(--pri-b)}
.clr-who{min-width:0}
.clr-who .nm{display:flex;align-items:center;gap:8px;font-size:15px;font-weight:600;line-height:1.3}
.clr-who .st{display:block;font-size:12px;color:var(--faint);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.clr-who .st.t{color:var(--amber-t)}
.clr-pips{display:inline-flex;gap:3px;margin-left:auto}
.clr-pips i{width:9px;height:9px;border-radius:50%;background:var(--line2)}
.clr-pips i.d{background:var(--ok)}
.clr-pips i.c{background:var(--panel);box-shadow:inset 0 0 0 2px var(--pri)}

.clr-main{min-height:0;min-width:0;overflow:auto;display:flex;flex-direction:column;gap:12px;padding-bottom:8px}
.clr-mh{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 14px}
.clr-mh h2{margin:0;font-size:20px;font-weight:600;line-height:1.35}   /* 对象名 20 / 600 */
.clr-list .clr-mh h2{font-size:18px;font-weight:700}                   /* 面板大节 18 / 700 */
.clr-mh .meta{font-size:13px;color:var(--muted)}
.clr-mh .rowlink{margin-left:auto}
.clr-warn{margin:0;padding:8px 12px;border-radius:var(--r-sm);background:var(--amber-s);color:var(--amber-t);font-size:13px}

/* 今天一句话 */
.clr-say{padding:12px 14px;display:grid;gap:8px}
.clr-say.need{background:var(--amber-0)}
.clr-say label{font-size:14px;font-weight:600;display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.clr-say label .faint{font-size:12px;font-weight:400}
.clr-say textarea{width:100%;min-height:64px;resize:vertical;border:1px solid var(--line2);border-radius:var(--r-sm);padding:8px 10px;font:inherit;font-size:14px;line-height:1.6;background:var(--panel);color:var(--ink)}
.clr-row2{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;font-size:12px;color:var(--faint)}
.clr-row2 .btn{margin-left:auto}
.clr-row2 .warn{color:var(--bad);font-weight:500}

/* 四步 */
.clr-step{display:grid;grid-template-columns:30px minmax(0,1fr);gap:12px;background:var(--panel);border-radius:var(--r-md);padding:14px 16px}
.clr-step.now{box-shadow:inset 0 3px 0 var(--pri),var(--sh)}   /* 这个学生卡住的那一步：3 px 主色顶条，跟着圆角弯（M-44，2026-10-05 打磨收尾的写法） */
.clr-step.done{background:var(--soft)}
.clr-n{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;font-size:13px;font-weight:700;background:var(--tonal);color:var(--muted)}
.clr-step.done .clr-n{background:var(--ok);color:var(--panel)}
.clr-step.now .clr-n{background:var(--pri);color:var(--panel)}
.clr-n svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
.clr-sb{min-width:0}
.clr-sh{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;min-height:30px}
.clr-sh b{font-size:16px;font-weight:700}
.clr-sh .s{font-size:13px;color:var(--muted)}
.clr-sh .act{margin-left:auto;display:flex;flex-wrap:wrap;gap:8px}
.clr-si{display:grid;gap:8px;margin-top:10px}
.clr-qrow{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:8px 12px;align-items:center;padding:8px 10px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--panel)}
.clr-qrow:not(:has(.clr-qi)){grid-template-columns:minmax(0,1fr) auto}
.clr-qi{display:block;width:72px;height:48px;border-radius:var(--r-xs);overflow:hidden;background:var(--soft);border:1px solid var(--line)}
.clr-qi img{width:100%;height:100%;object-fit:cover;object-position:top left}
.clr-qn{min-width:0}
.clr-qn .qs{font-size:14px;font-weight:600}
.clr-qn small{display:block;font-size:12px;color:var(--faint)}
.clr-qrow .ops{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end;align-items:center}
.clr-media audio{height:40px;max-width:240px}
.clr-media video{max-width:240px;max-height:160px;border-radius:var(--r-xs)}
.btn.clr-ok{color:var(--ok);border-color:var(--ok-b)}
.btn.clr-no{color:var(--bad);border-color:var(--bad-b)}
.btn.clr-ok[aria-pressed="true"]{background:var(--ok);border-color:var(--ok);color:var(--panel)}
.btn.clr-no[aria-pressed="true"]{background:var(--bad);border-color:var(--bad);color:var(--panel)}
.clr-cz{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.clr-cz .lbl{font-size:12px;color:var(--faint);margin-right:2px}
.clr-cz button{min-height:44px;padding:0 12px;border:1px solid var(--line2);border-radius:var(--r-pill);background:var(--panel);font:inherit;font-size:13px;color:var(--ink)}
.clr-cz button:hover{background:var(--soft)}
.clr-cz button[aria-checked="true"]{background:var(--pri-s);border-color:var(--pri-b);color:var(--pri-t);font-weight:500}
.clr-photo{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.clr-photo a{display:block;width:72px;height:56px;border-radius:var(--r-xs);overflow:hidden;border:1px solid var(--line2);background:var(--soft)}
.clr-photo img{width:100%;height:100%;object-fit:cover}
/* M-56 每道题拍的订正照片放在那道题下面；整页拍的 / 没对上题的放在最下面（角标 .hp-tag 在 mp-grade.css） */
.clr-th{position:relative;display:block;flex:none}
.clr-qph{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.clr-qph .lbl,.clr-rest .lbl{font-size:12px;color:var(--faint);margin-right:2px}
.clr-qph a{display:block;width:72px;height:56px;border-radius:var(--r-xs);overflow:hidden;border:1px solid var(--line2);background:var(--soft)}
.clr-qph img{width:100%;height:100%;object-fit:cover}
.clr-rest{margin-top:4px}
.clr-foot{margin:2px 0 0;max-width:64ch}

/* 48 小时 / 本周清单 */
.clr-list{padding:16px 18px;display:flex;flex-direction:column;gap:12px;min-height:0;overflow:auto}
.clr-note2{margin:0;max-width:64ch}
.clr-rows{display:grid;gap:8px}
.clr-lrow{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1.6fr) auto auto;align-items:center;gap:8px 12px;padding:10px 14px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--panel)}
.clr-lrow .who{font-weight:600}
.clr-lrow .who small{display:block;font-size:12px;color:var(--faint);font-weight:400}
.clr-lrow .what{font-size:14px;color:var(--muted);min-width:0}
.clr-lrow .due{font-size:13px;font-weight:600;color:var(--amber-t);white-space:nowrap}
.clr-lrow .due.hot{color:var(--bad)}
.clr-contact{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.clr-contact input{flex:1 1 260px;min-height:44px;border:1px solid var(--line2);border-radius:var(--r-sm);padding:0 12px;font:inherit;font-size:14px;color:var(--ink)}
.clr-contacted{grid-column:1/-1;margin:0;font-size:13px;color:var(--ok)}
.clr-err{padding:20px;display:flex;flex-direction:column;align-items:flex-start;gap:8px}
.clr-err p{margin:0;color:var(--muted);max-width:64ch}

@media (max-width:900px){
  .clr-body{grid-template-columns:minmax(0,1fr)}
  .clr-body>.split-h{display:none}                                   /* 一栏时没有可拖的边；收起过的名单也照常显示 */
  .clr-q.split-off{padding:12px!important}.clr-q.split-off>*{display:block!important}
  .clr-q{max-height:none;overflow:visible}
  .clr-main{overflow:visible}
  .clr-rate{margin-left:0}
}
@media (max-width:700px){
  .clr{flex:none}
  .clr-bar{padding:10px 12px}
  .clr-cls,.clr-cls select{width:100%;max-width:none}
  .clr-tabs button{padding:0 12px}
  .clr-pacts{margin-left:0}
  .clr-step{grid-template-columns:minmax(0,1fr);padding:12px}
  .clr-n{display:none}
  .clr-sh .act{margin-left:0}
  .clr-qrow,.clr-qrow:not(:has(.clr-qi)){grid-template-columns:minmax(0,1fr)}
  .clr-qrow .ops{justify-content:flex-start}
  .clr-lrow{grid-template-columns:minmax(0,1fr) auto}
  .clr-lrow .what{grid-column:1/-1}
  .clr-media audio,.clr-media video{max-width:100%}
}
/* M-51 C-125 周卡一键通知 */
.clr-wkc{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin:6px 0 10px;font-size:13px;color:var(--muted)}
/* M-50 C-154 周评语：本周清单和周评语两块一起滚 */
.clr-wkwrap{flex:1;min-height:0;overflow:auto;display:flex;flex-direction:column;gap:12px}
.clr-wkwrap>.clr-list{flex:none;min-height:auto;overflow:visible}
.clr-wn .clr-mh{row-gap:10px}
.clr-wseg{margin-left:auto}
.clr-wseg button{min-height:44px;font-size:13px}
.clr-wseg button small{font-size:12px;font-weight:400;color:var(--faint)}
.clr-lrow.wn{grid-template-columns:minmax(0,1fr) minmax(0,2fr) auto auto}
.clr-lrow .wn-pv{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--ink)}
.wn-sync{grid-column:1/-1;margin:0;font-size:12px;color:var(--muted)}
.wn-ed{grid-column:1/-1;display:grid;gap:8px}
.wn-ed textarea{width:100%;min-height:84px;resize:vertical;border:1px solid var(--line2);border-radius:var(--r-sm);padding:8px 10px;font:inherit;font-size:14px;line-height:1.6;background:var(--panel);color:var(--ink)}
@media (max-width:700px){
  .clr-wseg{margin-left:0;width:100%;display:grid;grid-template-columns:1fr 1fr}
  .clr-wseg button{justify-content:center;flex-direction:column;gap:0;line-height:1.25;padding:4px 8px}
  .clr-wseg button small{white-space:nowrap}
  .clr-lrow.wn{grid-template-columns:minmax(0,1fr) auto auto}
  .clr-lrow.wn .what{grid-column:1/-1;grid-row:2}
}
/* M-50 B2 教师端录入：④ 每道题的知识点胶囊（改 / 补一个）、错在哪；本周清单「回家可以这样帮」；改知识点的弹层 */
.clr-kpl,.clr-how{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;font-size:13px}
.clr-kpl .lbl,.clr-how .lbl{font-size:12px;color:var(--faint);margin-right:2px}
.clr-kpl .tag{font-size:13px;padding:2px 10px;border-radius:var(--r-pill);color:var(--ink)}
.clr-kpl .rowlink{margin:-10px 0}
.clr-how input{flex:1 1 220px;min-width:0;min-height:44px;border:1px solid var(--line2);border-radius:var(--r-sm);padding:0 12px;font:inherit;font-size:14px;background:var(--panel);color:var(--ink)}
.clr-howst{font-size:12px;min-width:3em}
.clr-howst.ok{color:var(--ok)}
.clr-howst.warn{color:var(--bad)}
.clr-lrow .what .wn-pv{display:block}
.wn-tip{display:block;font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wn-tipl{font-size:14px;font-weight:600;display:flex;flex-wrap:wrap;gap:4px 8px;align-items:baseline}
.wn-tipl .faint{font-size:12px;font-weight:400}
.wn-ed input[data-tipt]{width:100%;min-height:44px;border:1px solid var(--line2);border-radius:var(--r-sm);padding:0 12px;font:inherit;font-size:14px;background:var(--panel);color:var(--ink)}
.kpp-q{margin:-6px 0 10px;max-width:64ch}
.kpp-books{margin-bottom:10px;width:fit-content}
.kpp-cols{display:grid;grid-template-columns:minmax(0,15em) minmax(0,1fr);gap:12px;max-height:min(52vh,420px)}
.kpp-chs,.kpp-kps{overflow:auto;display:flex;flex-direction:column;gap:4px;padding:2px}
.kpp-chs button,.kpp-kps button{min-height:44px;text-align:left;border:1px solid transparent;border-radius:var(--r-sm);background:none;padding:6px 10px;font:inherit;font-size:14px;color:var(--ink);display:flex;gap:8px;align-items:baseline}
.kpp-chs button .num{font-size:12px;color:var(--faint);flex:none}
.kpp-chs button:hover,.kpp-kps button:hover{background:var(--soft)}
.kpp-chs button[aria-pressed="true"]{background:var(--pri-s);border-color:var(--pri-b);color:var(--pri-t);font-weight:600}
.kpp-kps button[aria-pressed="true"]{border-color:var(--pri-b);color:var(--pri-t);font-weight:600}
.kpp-kps p{margin:8px 10px}
@media (max-width:700px){
  .kpp-cols{grid-template-columns:minmax(0,1fr);max-height:none}
  .kpp-chs{max-height:30vh}
}


/* M-57 日清过关并进「班级数据」：面板头（标题 · 时间选项 · 过关率 · 刷新）→ 打印条 → 巩固练习单 → 全班名单（一行一人，点一行开右侧抽屉）。
   颜色照旧各一个意思：琥珀 = 没过、订正没交、需关注、等老师（欠着要处理）；绿 = 过关；为 0 的数变灰。近 7 天小柱用主色浅档（数量），这天那根深一档。 */
.md-clr{padding:16px 18px;margin-bottom:16px}
.md-clr .clr{flex:none;gap:10px}
.clr-ph{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px}
.clr-ph h3{margin:0;font-size:18px;font-weight:700;line-height:1.35}
.clr-ph .clr-rate{margin-left:auto}
.clr-ph .clr-rate b{font-size:24px}
.clr-dn{flex:none;width:36px;min-height:44px;border:0;background:none;border-radius:var(--r-pill);font:inherit;font-size:18px;color:var(--muted);cursor:pointer}
.clr-dn:hover:not(:disabled){background:var(--panel);color:var(--ink)}
.clr-dn:disabled{color:var(--dim);cursor:default}
.clr-tabs .ct.zero{color:var(--dim)}
.md-clr .clr-print,.md-clr .clr-pr{background:var(--soft)}
.clr-loading{display:grid;gap:10px}
.clr-tools{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px}
.clr-gchs{display:flex;flex-wrap:wrap;gap:6px}
.clr-gch{min-height:44px;padding:0 14px;border:1px solid var(--line2);border-radius:var(--r-pill);background:var(--panel);font:inherit;font-size:13px;color:var(--muted);cursor:pointer}
.clr-gch b{font-weight:600;color:var(--ink);margin-left:2px}
.clr-gch.g-teacher b{color:var(--amber-t)}
.clr-gch:hover{border-color:var(--pri-b)}
.clr-gch[aria-pressed="true"]{background:var(--pri-s);border-color:var(--pri-b);color:var(--pri-t)}
.clr-sort{margin-left:auto;display:flex;align-items:center;gap:8px;font-size:13px;color:var(--muted)}
.clr-sort select{min-height:44px;padding:0 32px 0 12px;border:1px solid var(--line2);border-radius:var(--r-pill);background:var(--panel);font:inherit;font-size:13px;color:var(--ink)}
.clr-none{margin:0;font-size:13px;color:var(--muted)}
.clr-roster{list-style:none;margin:0;padding:0;display:grid;border-top:1px solid var(--line)}
.clr-r{display:grid;grid-template-columns:minmax(0,1fr) 84px minmax(0,190px) auto;align-items:center;gap:12px;padding:0 4px 0 0;border-bottom:1px solid var(--line)}
.clr-rm{display:grid;grid-template-columns:44px minmax(150px,1.1fr) minmax(0,1.5fr);align-items:center;gap:10px;min-height:56px;padding:6px 8px;border:0;border-radius:var(--r-sm);background:none;text-align:left;font:inherit;color:var(--ink);cursor:pointer}
button.clr-rm:hover{background:var(--soft)}
.clr-r.on .clr-rm{background:var(--pri-s)}
.clr-rm .clr-pips{margin:0}
.clr-r.none .clr-rm{grid-template-columns:44px minmax(0,1fr);cursor:default}
.clr-r.none .clr-who{grid-column:2}
.clr-r.none .nm{color:var(--muted);font-weight:500}
.clr-att{font-size:11px}
.clr-stats{display:flex;flex-wrap:wrap;align-items:center;gap:2px 6px;font-size:13px;color:var(--muted)}
.clr-stats b{color:var(--ink);font-weight:600}
.clr-stats .zero,.clr-stats b.zero{color:var(--dim);font-weight:400}
.clr-stats .sep{color:var(--dim)}
.clr-due,.clr-due b{color:var(--amber-t);font-weight:600}
.clr-spk{display:flex;align-items:flex-end;gap:3px;height:22px}
.clr-spk i{width:8px;border-radius:2px;background:var(--pri-m)}
.clr-spk i.z{background:var(--line2)}
.clr-spk i.d:not(.z){background:var(--pri)}
.clr-kp{font-size:12px;color:var(--faint);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.clr-kp a{color:var(--pri-t);text-decoration:none}
.clr-kp a:hover{text-decoration:underline}
.clr-pt{min-height:44px;padding:0 6px;font-size:13px}
.clr-rost .kpnote{margin:0}
/* 抽屉里：原来右栏的内容，竖着排 */
.clr-dr{gap:12px}
/* 每日错题统计：柱图下面一条过关率色带（每天一格，越绿过关越多；没登记的那天空着） */
.mpgrid .md-wide{grid-column:1/-1}
.md-rate{display:flex;gap:10px;margin-top:6px}
.md-rate.dense{gap:3px}
.md-rate span{flex:1;min-width:0;height:22px;border-radius:var(--r-xs);background:color-mix(in srgb,var(--ok-f) var(--p),var(--tonal));display:flex;align-items:center;justify-content:center}
.md-rate span.z{background:none;box-shadow:inset 0 0 0 1px var(--line)}   /* 没登记的那天：空格子，和「登记了但 0% 过关」的灰底分开 */
.md-rate b{font-size:11px;font-weight:500;color:var(--ink)}
.md-ratel{font-size:13px;color:var(--muted)}
.md-ratel b{color:var(--ok);font-weight:600}
@media (max-width:1100px){                                          /* 平板竖着、窄窗：一行放不下 → 小柱和常错知识点挪到第二行，和名字对齐 */
  .clr-r{grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"m m p" "s k k";column-gap:12px}
  .clr-r>.clr-rm{grid-area:m}
  .clr-r>.clr-pt{grid-area:p}
  .clr-r>.clr-spk{grid-area:s;margin:0 0 8px 62px}
  .clr-r>.clr-kp{grid-area:k;margin-bottom:8px;align-self:end}
}
@media (max-width:700px){
  .md-clr{padding:12px}
  .clr-ph .clr-rate{margin-left:0}
  .clr-sort{margin-left:0}
  .clr-rm{grid-template-columns:44px minmax(0,1fr)}
  .clr-rm .clr-stats{grid-column:2}
  .clr-r>.clr-kp{display:none}
}
.clr-ph h3+.ib{margin-left:-6px}
.md-clr .clr-list{background:none;border:0;box-shadow:none;padding:12px 0 0;border-top:1px solid var(--line);border-radius:0}   /* 面板里不再套一层卡 */
.md-clr .clr-wkwrap{gap:12px}
.clr-dr .clr-mh{padding-right:44px}                                 /* 让开抽屉右上角的关闭按钮 */
/* 2026-10-14 错题排行（班级数据最上面）：名次 · 名字 · 条 · 几道 · 过 / 没过；没错题的排最后、灰 */
.md-rank{margin-bottom:16px}
.md-rk{list-style:none;margin:0;padding:0;display:grid}
.md-rk li{display:grid;grid-template-columns:32px minmax(110px,170px) minmax(80px,1fr) 64px minmax(0,230px);align-items:center;gap:12px;min-height:40px;border-bottom:1px solid var(--line)}
.md-rk li:last-child{border-bottom:0}
.md-rk .no{font-size:13px;color:var(--faint);text-align:right}
.md-rk li:nth-child(-n+3):not(.none) .no{color:var(--ink);font-weight:700}
.md-rk .nm{display:flex;align-items:center;gap:6px;min-width:0;font-size:15px}
.md-rk .nm .tag{font-size:11px}
.md-rk .bar{height:10px;border-radius:var(--r-pill);background:var(--tonal);overflow:hidden}
.md-rk .bar i{display:block;height:100%;border-radius:var(--r-pill);background:var(--pri-m)}
.md-rk li:nth-child(-n+3) .bar i{background:var(--pri)}
.md-rk .ct{font-size:13px;color:var(--muted);white-space:nowrap}
.md-rk .ct b{font-size:16px;font-weight:700;color:var(--ink)}
.md-rk .sub{font-size:13px;color:var(--muted)}
.md-rk .sub b{color:var(--ink);font-weight:600}
.md-rk .sub .zero,.md-rk .sub b.zero{color:var(--dim);font-weight:400}
.md-rk .due,.md-rk .due b{color:var(--amber-t);font-weight:600}
.md-rk li.none .nm a{color:var(--muted);font-weight:500}
.md-rk li.none .ct{color:var(--faint)}
.clr-auto{font-size:12px;color:var(--amber-t);background:var(--amber-s);border-radius:var(--r-pill);padding:4px 10px}
@media (max-width:700px){
  .md-rk li{grid-template-columns:28px minmax(0,1fr) auto;row-gap:2px;padding:6px 0}
  .md-rk .bar{grid-column:2/-1;grid-row:2}
  .md-rk .sub{grid-column:2/-1;grid-row:3}
}

/* 2026-10-14 四方格（用户：「改回四方格，将日清过关改成和需关注学生一样」）：看板时间条 → 2×2（错题排行 · 日清过关小卡 · 按课测评 · 错题频次）→ 订正两张。
   日清小卡和原来「需关注学生」一样一人一行：头像、名字、卡在哪一步，右边等老师（琥珀，欠着要处理）/ 等学生；点「全班名单」等展开成整块（占满一行，排在四张卡后面）。 */
.md-bbar{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;margin:0 0 12px}
.md-bbar .lbl{font-size:14px;font-weight:600;color:var(--ink)}
.md-bbar small{font-size:12px}
.md-board{margin-bottom:16px}
.md-board .md-rank,.md-board .md-clr{margin-bottom:0}
.md-board .md-clr{display:flex;flex-direction:column}
.md-board .md-clr.full{grid-column:1/-1;order:5}
.md-board .md-rk li{grid-template-columns:24px minmax(64px,110px) minmax(40px,1fr) auto auto;column-gap:10px;min-height:44px}
.md-board .md-rk .sub{font-size:12px;white-space:nowrap}
.md-board .md-rk .ct b{font-size:15px}
.md-rk.fold li.more{display:none}
.md-rkall,.md-lsall{margin-top:6px;min-height:44px}
/* 日清小卡 */
.clr-card{flex:1;gap:10px}
.clr-ch{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px}
.clr-ch h3,.clr-ct{margin:0;font-size:16px;font-weight:700;line-height:1.35}
.clr-day{display:inline-flex;align-items:center}
.clr-day b{font-size:14px;font-weight:600;min-width:4.5em;text-align:center}
.clr-crate{margin-left:auto;font-size:13px;color:var(--muted)}
.clr-crate b{font-size:16px;font-weight:700;color:var(--ink)}
.clr-crate b.zero{color:var(--dim);font-weight:500}
.clr-card .clr-auto{margin:0;align-self:flex-start}
.clr-cnt{margin:0;font-size:13px;color:var(--muted)}
.clr-cnt b{color:var(--ink);font-weight:600}
.clr-cnt b.zero{color:var(--dim);font-weight:400}
.clr-cl{list-style:none;margin:0;padding:0;display:grid}
.clr-cl li{border-top:1px solid var(--line)}
.clr-cl li:first-child{border-top:0}
.clr-cr{display:grid;grid-template-columns:28px minmax(0,1fr) auto;align-items:center;gap:10px;width:100%;min-height:52px;padding:6px 8px;border:0;border-radius:var(--r-sm);background:none;text-align:left;font:inherit;color:var(--ink);cursor:pointer}
.clr-cr:hover{background:var(--soft)}
.clr-cl li.on .clr-cr{background:var(--pri-s)}
.clr-cr .clr-who{display:grid;gap:2px;min-width:0}
.clr-cr .nm{display:flex;align-items:center;gap:6px;font-size:14px;font-weight:600}
.clr-cr .st{font-size:12px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.clr-cr .st.t{color:var(--amber-t)}
.clr-cs{display:grid;justify-items:end;gap:2px}
.clr-cs .tag{font-size:11px}
.clr-cs small{font-size:12px;color:var(--muted);white-space:nowrap}
.clr-cs small b{color:var(--ink);font-weight:500}
.clr-more{align-self:flex-start;min-height:44px}
.clr-cprint{margin:0;display:flex;flex-wrap:wrap;align-items:center;gap:4px 12px;font-size:13px;padding:8px 12px;border-radius:var(--r-sm);background:var(--amber-s)}
.clr-cprint .rowlink{min-height:44px}
.clr-alldone{margin:0;display:flex;align-items:center;gap:8px;font-size:14px;color:var(--ok)}
.clr-alldone svg{width:20px;height:20px;flex:none;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.clr-alldone b{font-weight:700}
.clr-cfoot{margin-top:auto;padding-top:4px;display:flex;flex-wrap:wrap;gap:8px}
.clr-cfoot b{margin-left:4px;font-weight:600}
.clr-cfoot b.zero{color:var(--dim);font-weight:400}
.clr-fold{margin-left:4px}
/* 按课测评：一讲一行（点开看错得多的题和错的人） */
.md-ls{display:grid}
.md-ls details{border-top:1px solid var(--line)}
.md-ls details:first-child{border-top:0}
.md-ls.fold details.more{display:none}
.md-ls summary{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(48px,1fr) auto;grid-template-areas:"t b c" "s s s";align-items:center;column-gap:10px;row-gap:2px;padding:8px 6px;border-radius:var(--r-sm);cursor:pointer;list-style:none}
.md-ls summary::-webkit-details-marker{display:none}
.md-ls summary:hover{background:var(--soft)}
.md-ls .t{grid-area:t;font-size:14px;font-weight:600;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.md-ls .t small{font-size:12px;font-weight:500;color:var(--muted);margin:0 6px}
.md-ls .t small:first-child{margin-left:0}
.md-ls .bar{grid-area:b;height:10px;border-radius:var(--r-pill);background:var(--tonal);overflow:hidden}
.md-ls .bar i{display:block;height:100%;border-radius:var(--r-pill);background:var(--pri-m)}
.md-ls .ct{grid-area:c;font-size:13px;color:var(--muted);white-space:nowrap}
.md-ls .ct b{font-size:15px;font-weight:700;color:var(--ink)}
.md-ls .sub{grid-area:s;font-size:12px;color:var(--muted)}
.md-ls .sub b{color:var(--ink);font-weight:500}
.md-ls .sub b.zero{color:var(--dim);font-weight:400}
.md-ls .due,.md-ls .due b{color:var(--amber-t);font-weight:500}
.md-lsd{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:4px 6px 12px}
.md-lsd h4{margin:0 0 4px;font-size:13px;font-weight:600;color:var(--muted)}
.md-lsd ul{list-style:none;margin:0;padding:0;display:grid;gap:2px;font-size:13px}
.md-lsd p{margin:0;font-size:13px;line-height:1.7}
.md-lsd a[data-qview]{color:var(--pri-t);font-weight:600}
@media (max-width:700px){
  .md-board .md-rk li{grid-template-columns:24px minmax(0,1fr) auto;row-gap:2px;padding:6px 0}
  .md-board .md-rk .bar{grid-column:2/-1;grid-row:2}
  .md-board .md-rk .sub{grid-column:2/-1;grid-row:3;white-space:normal}
  .md-lsd{grid-template-columns:1fr}
  .md-bbar small{flex-basis:100%}
}
