/* 研算协议 · 个人掌握图谱（全部样式均限制在 .mastery-dashboard 内） */
.mastery-dashboard{
  --ms-ink:#172129;--ms-muted:#68747c;--ms-line:rgba(27,43,52,.13);
  --ms-paper:#f7f8f5;--ms-card:#fff;--ms-cyan:#23b9c6;--ms-blue:#3978f6;
  --ms-amber:#f3b742;--ms-red:#e85c5c;--ms-green:#39b87f;
  color:var(--ms-ink);display:grid;gap:18px;font-family:inherit;
}
.mastery-dashboard *{box-sizing:border-box}
.mastery-dashboard button{font:inherit}
.mastery-dashboard .ms-hero{
  min-height:190px;padding:30px 34px;display:flex;align-items:flex-end;justify-content:space-between;gap:24px;
  color:#fff;overflow:hidden;position:relative;background:
  linear-gradient(115deg,rgba(14,23,30,.97),rgba(27,52,65,.9)),
  repeating-linear-gradient(135deg,transparent 0 20px,rgba(255,255,255,.04) 20px 21px);
  border-left:6px solid var(--ms-cyan);box-shadow:0 14px 36px rgba(10,22,30,.14);
}
.mastery-dashboard .ms-hero:after{content:'04';position:absolute;right:22%;top:-48px;font-size:190px;font-weight:900;line-height:1;color:rgba(255,255,255,.035);pointer-events:none}
.mastery-dashboard .ms-hero>div{max-width:760px;position:relative;z-index:1}
.mastery-dashboard .ms-hero small,.mastery-dashboard .ms-block>header small{font-size:11px;font-weight:800;letter-spacing:.18em;color:#65dbe5}
.mastery-dashboard .ms-hero h2{font-size:34px;margin:7px 0 8px;letter-spacing:.02em}
.mastery-dashboard .ms-hero p{margin:0;color:rgba(255,255,255,.7);font-size:14px;line-height:1.75}
.mastery-dashboard .ms-hero>button{position:relative;z-index:1;flex:none;border:0;padding:13px 17px;background:var(--ms-cyan);color:#092c31;font-weight:900;cursor:pointer;box-shadow:7px 7px 0 rgba(0,0,0,.24)}
.mastery-dashboard .ms-hero>button:hover{transform:translateY(-2px)}
.mastery-dashboard .ms-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.mastery-dashboard .ms-stats article{min-height:104px;padding:20px 22px;background:var(--ms-card);border:1px solid var(--ms-line);display:flex;flex-direction:column;justify-content:center;position:relative;overflow:hidden}
.mastery-dashboard .ms-stats article:before{content:'';position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--ms-blue)}
.mastery-dashboard .ms-stats article:nth-child(2):before{background:var(--ms-green)}
.mastery-dashboard .ms-stats article:nth-child(3):before{background:var(--ms-amber)}
.mastery-dashboard .ms-stats article:nth-child(4):before{background:var(--ms-cyan)}
.mastery-dashboard .ms-stats b{font-size:29px;line-height:1}.mastery-dashboard .ms-stats b small{font-size:13px;color:var(--ms-muted)}
.mastery-dashboard .ms-stats span{font-size:12px;color:var(--ms-muted);margin-top:9px}
.mastery-dashboard .ms-block{background:var(--ms-card);border:1px solid var(--ms-line);padding:22px}
.mastery-dashboard .ms-block>header{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;padding-bottom:15px;border-bottom:1px solid var(--ms-line)}
.mastery-dashboard .ms-block>header h3{font-size:19px;margin:4px 0 0}
.mastery-dashboard .ms-block>header>span{font-size:12px;color:var(--ms-muted);text-align:right}
.mastery-dashboard .ms-subject-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:16px}
.mastery-dashboard .ms-subject-card{padding:16px;background:var(--ms-paper);border-top:3px solid var(--ms-blue)}
.mastery-dashboard .ms-subject-card:nth-child(2){border-color:var(--ms-cyan)}
.mastery-dashboard .ms-subject-card:nth-child(3){border-color:var(--ms-amber)}
.mastery-dashboard .ms-subject-card:nth-child(4){border-color:var(--ms-green)}
.mastery-dashboard .ms-subject-card header,.mastery-dashboard .ms-subject-card footer{display:flex;align-items:center;justify-content:space-between;gap:8px}
.mastery-dashboard .ms-subject-card header span{font-size:13px;font-weight:800}
.mastery-dashboard .ms-subject-card header b{font-size:23px}.mastery-dashboard .ms-subject-card header small{font-size:11px}
.mastery-dashboard .ms-progress{height:5px;margin:13px 0;background:#dce2e2;overflow:hidden}
.mastery-dashboard .ms-progress i{display:block;height:100%;background:linear-gradient(90deg,var(--ms-blue),var(--ms-cyan));transition:width .25s}
.mastery-dashboard .ms-subject-card footer{align-items:flex-start;font-size:10px;color:var(--ms-muted)}
.mastery-dashboard .ms-subject-card footer em{font-style:normal;color:#9a6b0b;text-align:right}
.mastery-dashboard .ms-heatmap{display:grid;grid-template-columns:repeat(auto-fill,minmax(128px,1fr));gap:8px;margin-top:16px}
.mastery-dashboard .ms-heat-cell{min-height:78px;text-align:left;padding:11px;border:1px solid var(--ms-line);background:#edf0ef;color:var(--ms-ink);cursor:default;display:grid;grid-template-columns:1fr auto;gap:4px}
.mastery-dashboard .ms-heat-cell b{font-size:12px}.mastery-dashboard .ms-heat-cell span{grid-column:1/-1;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;opacity:.75}
.mastery-dashboard .ms-heat-cell em{font-size:12px;font-style:normal;font-weight:900}
.mastery-dashboard .ms-heat-cell.ms-level-1{background:#e7f1f4}.mastery-dashboard .ms-heat-cell.ms-level-2{background:#cce9e7}.mastery-dashboard .ms-heat-cell.ms-level-3{background:#90d7c2}.mastery-dashboard .ms-heat-cell.ms-level-4{background:#39b87f;color:#fff;border-color:#2c9b6a}
.mastery-dashboard .ms-grid-two{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(320px,.8fr);gap:18px}
.mastery-dashboard .ms-review-list,.mastery-dashboard .ms-weak-list{display:grid;gap:9px;margin-top:14px}
.mastery-dashboard .ms-review-card{padding:13px;border:1px solid var(--ms-line);background:var(--ms-paper)}
.mastery-dashboard .ms-review-card>div{display:flex;align-items:center;gap:11px}.mastery-dashboard .ms-review-card>div>span{min-width:0;display:grid;gap:3px}
.mastery-dashboard .ms-review-card>div b{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mastery-dashboard .ms-review-card>div small{font-size:10px;color:var(--ms-muted)}
.mastery-dashboard .ms-level-dot{width:29px;height:29px;display:grid;place-items:center;flex:none;border-radius:50%;font-size:11px;font-style:normal;font-weight:900;background:#dde2e2}
.mastery-dashboard .ms-review-card fieldset{border:0;padding:0;margin:11px 0 0 40px;display:grid;grid-template-columns:repeat(4,1fr);gap:5px}
.mastery-dashboard .ms-review-card fieldset button{border:1px solid var(--ms-line);padding:7px 4px;background:#fff;color:var(--ms-muted);font-size:10px;cursor:pointer}
.mastery-dashboard .ms-review-card fieldset button:hover{background:var(--ms-cyan);color:#0b3034;border-color:var(--ms-cyan)}
.mastery-dashboard .ms-weak-card{min-height:57px;padding:10px 11px;display:grid;grid-template-columns:28px 1fr auto;align-items:center;gap:9px;background:var(--ms-paper);border-left:3px solid #d8dddd}
.mastery-dashboard .ms-weak-card>i{font-style:normal;font-size:10px;color:#9aa3a8}.mastery-dashboard .ms-weak-card>div{min-width:0;display:grid;gap:4px}
.mastery-dashboard .ms-weak-card b{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mastery-dashboard .ms-weak-card span{font-size:9px;color:var(--ms-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mastery-dashboard .ms-weak-card>em{font-size:10px;font-style:normal;font-weight:900;padding:5px 7px;background:#e0e4e4}
.mastery-dashboard .ms-level-1{--ms-level:#b9ccd1}.mastery-dashboard .ms-level-2{--ms-level:#61c5c8}.mastery-dashboard .ms-level-3{--ms-level:#4e95ec}.mastery-dashboard .ms-level-4{--ms-level:#36b67b}
.mastery-dashboard .ms-level-dot[class*="ms-level-"],.mastery-dashboard .ms-weak-card>em[class*="ms-level-"]{background:var(--ms-level,#dfe3e3);color:#173038}
.mastery-dashboard .ms-level-dot.ms-level-3,.mastery-dashboard .ms-level-dot.ms-level-4,.mastery-dashboard .ms-weak-card>em.ms-level-3,.mastery-dashboard .ms-weak-card>em.ms-level-4{color:#fff}
.mastery-dashboard .ms-week>div{display:grid;grid-template-columns:repeat(6,1fr);gap:1px;background:var(--ms-line);margin-top:15px}
.mastery-dashboard .ms-week article{padding:15px;background:var(--ms-paper);display:grid;gap:5px}.mastery-dashboard .ms-week article b{font-size:20px}.mastery-dashboard .ms-week article b small{font-size:10px}.mastery-dashboard .ms-week article span{font-size:10px;color:var(--ms-muted)}
.mastery-dashboard .ms-empty{min-height:110px;display:grid;place-content:center;text-align:center;gap:7px;padding:20px;color:var(--ms-muted);background:var(--ms-paper)}
.mastery-dashboard .ms-empty b{font-size:13px;color:var(--ms-ink)}.mastery-dashboard .ms-empty span{font-size:11px;line-height:1.6}
@media (max-width:980px){
  .mastery-dashboard .ms-stats,.mastery-dashboard .ms-subject-grid{grid-template-columns:repeat(2,1fr)}
  .mastery-dashboard .ms-grid-two{grid-template-columns:1fr}
  .mastery-dashboard .ms-week>div{grid-template-columns:repeat(3,1fr)}
}
@media (max-width:640px){
  .mastery-dashboard .ms-hero{min-height:0;padding:24px;display:grid}.mastery-dashboard .ms-hero h2{font-size:27px}
  .mastery-dashboard .ms-hero>button{justify-self:start}.mastery-dashboard .ms-stats{grid-template-columns:repeat(2,1fr)}
  .mastery-dashboard .ms-subject-grid{grid-template-columns:1fr}.mastery-dashboard .ms-block{padding:16px}
  .mastery-dashboard .ms-block>header{align-items:flex-start;display:grid}.mastery-dashboard .ms-block>header>span{text-align:left}
  .mastery-dashboard .ms-review-card fieldset{margin-left:0;grid-template-columns:repeat(2,1fr)}
  .mastery-dashboard .ms-week>div{grid-template-columns:repeat(2,1fr)}
}
@media (prefers-reduced-motion:reduce){.mastery-dashboard *{scroll-behavior:auto!important;transition:none!important}}

/* 掌握图谱可读性下限 */
.mastery-dashboard small{font-size:11px!important;line-height:1.5}
.mastery-dashboard button{font-size:12px!important}
.mastery-dashboard .ms-subject-card footer,.mastery-dashboard .ms-review-card>div b,
.mastery-dashboard .ms-review-card>div small,.mastery-dashboard .ms-weak-card b,
.mastery-dashboard .ms-weak-card span,.mastery-dashboard .ms-weak-card>i,
.mastery-dashboard .ms-weak-card>em,.mastery-dashboard .ms-week article span,
.mastery-dashboard .ms-week article b small{font-size:11px!important;line-height:1.5}
.mastery-dashboard .ms-review-card fieldset button{min-height:36px;font-size:12px!important}
