/* 练习单 · 按章节选题（M-103）。颜色只用 tokens.css：主色 = 选中和动作，难度档沿用试卷分析的 .pa-tier 主色由浅到深，红点 = 本班错过，不用琥珀。 */
.cp{display:grid;grid-template-columns:var(--split-left,260px) minmax(0,1fr) minmax(250px,290px);gap:16px;align-items:start}
.cp-side{position:sticky;top:0;max-height:calc(100vh - 140px);overflow:auto;padding:14px}
.cp-basket{min-width:0;position:sticky;top:0}
.cp-main{min-width:0;display:flex;flex-direction:column;gap:12px}
.cp-booknote{margin:-4px 0 8px}
.cp-find{margin:4px 0 8px}

/* 练习单页头的两个页签（basket.js TABS）：和 .seg 按钮同一个样子 */
.bk-tabs a{display:inline-flex;align-items:center;min-height:44px;padding:0 14px;border-radius:var(--r-sm);font-weight:600;color:var(--muted);text-decoration:none}
.bk-tabs a:hover{color:var(--ink)}
.bk-tabs a.on{background:#fff;color:var(--ink);box-shadow:var(--sh-xs)}

/* 目录树 */
.cp-tree ul{list-style:none;margin:0;padding:0}
.cp-chs>li{border-top:1px solid var(--line)}
.cp-chs>li:first-child{border-top:0}
.cp-ch>ul{padding:0 0 6px 30px}
.cp-sec>ul{padding-left:22px}
.cp-row{display:flex;align-items:center;gap:8px;min-height:44px;font-size:14px;cursor:pointer}
.cp-row .nm{flex:1;min-width:0;line-height:1.35}
.cp-row .num{color:var(--muted);font-size:12px;font-variant-numeric:tabular-nums}
.cp-row input{width:18px;height:18px;accent-color:var(--pri);flex:none}
.cp-row.none{color:var(--faint);cursor:default}
.cp-chrow{gap:4px}
.cp-chrow>label{display:flex;align-items:center;gap:8px;flex:1;min-width:0;min-height:44px;cursor:pointer;font-weight:600}
.cp-chrow small{font-weight:400;font-size:12px}
.cp-tog{border:0;background:none;width:28px;min-height:44px;color:var(--muted);font-size:13px;flex:none;border-radius:var(--r-xs)}
.cp-tog:hover{background:var(--tonal)}
.cp-kp{font-size:13px}

/* 筛选 */
.cp-filters{display:flex;flex-direction:column;gap:10px;padding:14px 16px}
.cp-frow{display:flex;align-items:center;flex-wrap:wrap;gap:8px 10px}
.cp-frow .lbl,.cp-take .lbl{font-size:13px;color:var(--muted);min-width:2.5em}
.cp-frow .seg button .num{font-size:12px;color:var(--muted);font-weight:500;font-variant-numeric:tabular-nums}
.cp-tiers{display:inline-flex;flex-wrap:wrap;gap:6px}
.cp-tb{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 10px;border:2px solid transparent;border-radius:var(--r-sm);background:var(--tonal)}
.cp-tb .num{font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}
.cp-tb.on{border-color:var(--pri);background:#fff}
.cp-rv{display:inline-flex;align-items:center;gap:8px;min-height:44px;font-size:14px;cursor:pointer}
.cp-rv input{width:18px;height:18px;accent-color:var(--pri)}
.cp-take{display:flex;align-items:center;flex-wrap:wrap;gap:8px 10px;border-top:1px solid var(--line);padding-top:10px;font-size:14px}
.cp-filters .kpnote{margin:0}

/* 题卡：题图 + 一行元信息 */
.cp-g h3{margin:0 0 10px;font-size:16px}
.cp-g h3 small{font-size:13px;color:var(--muted);font-weight:500}
.cp-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px}
.cp-q .cp-meta{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;padding:8px 10px 0;font-size:12px;line-height:1.4}
.cp-q .cp-origin{flex-basis:100%;color:var(--muted)}
.cp-q .cp-acts{display:flex;flex-wrap:wrap;gap:6px;padding:8px 10px 10px;margin-top:auto}
.cp-rvtag,.cp-miss{display:inline-flex;align-items:center;gap:4px;color:var(--muted)}
.cp-rvtag i,.cp-miss i{width:6px;height:6px;border-radius:50%;background:var(--faint);flex:none}
.cp-miss i{background:var(--bad)}
.cp-q.rv{border-style:dashed}
.cp-more{margin-top:10px}
.cp-none{margin:0 0 4px}

/* 难度档：和试卷分析 papers.css 的 .pa-tier 同一组 token（papers.css 只在试卷分析页加载，这里给本页再挂一份，色值不变） */
.cp .pa-tier{display:inline-flex;font-size:12px;font-weight:500;border-radius:var(--r-sm);padding:1px 8px;white-space:nowrap}
.cp .pa-tier.t0{background:var(--pri-s);color:var(--pri-t)}.cp .pa-tier.t1{background:var(--pri-b);color:var(--pri-x)}.cp .pa-tier.t2{background:var(--pri-m);color:var(--pri-x)}.cp .pa-tier.t3{background:var(--pri-t);color:#fff}
.cp .pa-tier.tn{background:var(--soft);color:var(--muted)}

@media (max-width:1180px){
  .cp{grid-template-columns:var(--split-left,240px) minmax(0,1fr)}
  .cp-basket{grid-column:1 / -1;position:static}
}
@media (max-width:700px){
  .cp{grid-template-columns:minmax(0,1fr)}
  .cp-side{position:static;max-height:none}
  .cp-grid{grid-template-columns:minmax(0,1fr)}
}

/* M-112 组题：排序下拉和别的筛选行对齐 */
.cp-sort{display:inline-flex;align-items:center;gap:10px}
.cp-sort select{min-height:44px;padding:0 10px;border:1px solid var(--line);border-radius:var(--r-sm);background:#fff;font-size:14px;color:var(--ink)}
