/* ═══════════════════════════════════════
   CLINED LEARNING FEATURES v1
   Radar Chart • SM-2 • Catatan soal
   ═══════════════════════════════════════ */

/* ── Weakness Radar (ringkasan + peringkat blok) ── */
.weakness-radar-hint{margin:-4px 0 10px;font-size:12.5px;font-weight:700;color:var(--muted)}
.weakness-radar-wrap{background:var(--card);border-radius:22px;border:2px solid var(--line);border-bottom-width:4px;padding:14px;margin-bottom:6px}
.weakness-radar-empty{display:flex;flex-direction:column;align-items:center;gap:4px;padding:22px 12px;text-align:center;color:var(--muted);font-weight:700;font-size:13px;line-height:1.5}
.weakness-radar-empty b{color:var(--text);font-size:15px}
.wr-empty-ico{font-size:32px;opacity:.85}

.wr-summary{display:flex;align-items:center;gap:14px}
.wr-avg{flex:0 0 auto;min-width:82px;padding:10px 12px;border-radius:18px;text-align:center;background:var(--surface);border:2px solid var(--line)}
.wr-avg b{display:block;font-size:26px;font-weight:950;letter-spacing:-1px;line-height:1.1;color:var(--text);font-variant-numeric:tabular-nums}
.wr-avg small{display:block;margin-top:2px;font-size:10.5px;font-weight:800;color:var(--muted)}
.wr-chips{display:flex;flex-wrap:wrap;gap:6px;min-width:0}
.wr-chip{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:99px;font-size:12px;font-weight:900;border:1.5px solid transparent}
.wr-chip i{width:8px;height:8px;border-radius:50%;background:currentColor}
.wr-chip.wr-weak{color:#dc2626;background:rgba(239,68,68,.12)}
.wr-chip.wr-mid{color:#c27a00;background:rgba(245,165,36,.16)}
.wr-chip.wr-ok{color:#3f9c00;background:rgba(88,204,2,.15)}
:root.dark .wr-chip.wr-weak{color:#ff7a70}
:root.dark .wr-chip.wr-mid{color:#ffc24d}
:root.dark .wr-chip.wr-ok{color:#7be03a}

.wr-focus{display:flex;align-items:center;gap:10px;margin:12px 0 4px;padding:10px 12px;border-radius:16px;font-size:13px;font-weight:750;line-height:1.4;color:var(--text);border:1.5px solid transparent}
.wr-focus b{font-weight:950}
.wr-focus-ico{font-size:20px;flex:none}
.wr-focus.wr-weak{background:rgba(239,68,68,.10);border-color:rgba(239,68,68,.30)}
.wr-focus.wr-mid{background:rgba(245,165,36,.12);border-color:rgba(245,165,36,.35)}
.wr-focus.wr-ok{background:rgba(88,204,2,.12);border-color:rgba(88,204,2,.35)}

.weakness-radar-list{display:flex;flex-direction:column;gap:12px;margin-top:12px}
.wr-row{display:flex;gap:11px;align-items:flex-start}
.wr-rank{flex:0 0 26px;height:26px;margin-top:1px;display:grid;place-items:center;border-radius:9px;font-size:12px;font-weight:950;color:var(--muted);background:var(--surface);border:1.5px solid var(--line)}
.wr-weak .wr-rank{color:#dc2626;background:rgba(239,68,68,.12);border-color:rgba(239,68,68,.35)}
.wr-main{flex:1;min-width:0}
.wr-row-top{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin-bottom:6px}
.wr-label{font-weight:900;font-size:14px;color:var(--text);overflow-wrap:anywhere}
.wr-pct{font-weight:950;font-size:15px;font-variant-numeric:tabular-nums}
.wr-weak .wr-pct{color:#ef4444}.wr-mid .wr-pct{color:#e59400}.wr-ok .wr-pct{color:#46a900}
:root.dark .wr-mid .wr-pct{color:#ffc24d}:root.dark .wr-ok .wr-pct{color:#7be03a}
.wr-track{position:relative;height:12px;border-radius:99px;background:rgba(127,127,127,.16);overflow:visible}
.wr-fill{height:100%;border-radius:99px;transform-origin:left;animation:wrGrow .7s cubic-bezier(.2,.8,.3,1) both}
@keyframes wrGrow{from{transform:scaleX(0)}to{transform:scaleX(1)}}
.wr-weak .wr-fill{background:linear-gradient(90deg,#f87171,#ef4444)}
.wr-mid .wr-fill{background:linear-gradient(90deg,#fbbf24,#f5a524)}
.wr-ok .wr-fill{background:linear-gradient(90deg,#84e030,#58cc02)}
.wr-target{position:absolute;top:-3px;bottom:-3px;width:2px;background:repeating-linear-gradient(to bottom,rgba(127,127,127,.6) 0 4px,transparent 4px 7px);pointer-events:none}
.wr-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:7px;min-height:26px}
.wr-meta{display:flex;align-items:center;gap:7px;flex-wrap:wrap;font-size:11px;font-weight:750;color:var(--muted)}
.wr-badge{padding:2px 8px;border-radius:99px;font-size:10.5px;font-weight:900}
.wr-weak .wr-badge{color:#dc2626;background:rgba(239,68,68,.12)}
.wr-mid .wr-badge{color:#b87400;background:rgba(245,165,36,.16)}
.wr-ok .wr-badge{color:#3f9c00;background:rgba(88,204,2,.15)}
:root.dark .wr-weak .wr-badge{color:#ff7a70}:root.dark .wr-mid .wr-badge{color:#ffc24d}:root.dark .wr-ok .wr-badge{color:#7be03a}
.wr-go{flex:none;border:2px solid var(--line);border-bottom-width:3px;background:var(--card);color:#1899d6;font:inherit;font-size:12px;font-weight:900;padding:4px 11px;border-radius:12px;cursor:pointer;transition:transform .08s}
.wr-go:active{transform:translateY(2px);border-bottom-width:1px}
.wr-legend{display:flex;flex-wrap:wrap;gap:8px 14px;margin-top:14px;padding-top:12px;border-top:1.5px dashed var(--line);font-size:11px;font-weight:750;color:var(--muted)}
.wr-legend span{display:inline-flex;align-items:center;gap:5px}
.wr-dot{width:9px;height:9px;border-radius:50%;flex:none}
.wr-dot.wr-weak{background:#ef4444}.wr-dot.wr-mid{background:#f5a524}.wr-dot.wr-ok{background:#58cc02}
.wr-tick{width:2px;height:11px;flex:none;background:repeating-linear-gradient(to bottom,rgba(127,127,127,.7) 0 3px,transparent 3px 5px)}

/* ── Radar kemampuan klinis (grafik jaring laba-laba + legenda) ── */
.radar-dashboard-block{display:grid;grid-template-columns:1fr;gap:12px;margin:10px 0 16px;padding:14px;border:2px solid var(--line);border-bottom-width:4px;border-radius:22px;background:var(--card)}
@media (min-width:640px){.radar-dashboard-block{grid-template-columns:minmax(260px,1.1fr) minmax(200px,.9fr);align-items:center}}
#clinicalDashboard .radar-dashboard-block,.radar-dashboard-block{justify-items:stretch!important;min-height:0!important;overflow:visible!important}
#clinicalDashboard .radar-chart,#clinicalDashboard .radar-chart svg,.radar-chart{max-width:400px!important;overflow:visible!important}
#clinicalDashboard .radar-chart svg{aspect-ratio:380/320}
.radar-grid{fill:none;stroke:var(--line);stroke-width:1.2}
.radar-grid-outer{stroke-width:1.8;fill:rgba(127,127,127,.04)}
.radar-axis{stroke:var(--line);stroke-width:1;stroke-dasharray:3 4}
.radar-tick{fill:var(--muted);font-size:8px;font-weight:800;opacity:.7}
.radar-label{fill:var(--text);font-size:10.5px;font-weight:850}
.radar-label.is-weak{fill:#ef4444}
.radar-value{font-size:10px;font-weight:950;font-variant-numeric:tabular-nums}
.radar-value-weak{fill:#ef4444}.radar-value-mid{fill:#e59400}.radar-value-ok{fill:#46a900}
:root.dark .radar-value-mid{fill:#ffc24d}:root.dark .radar-value-ok{fill:#7be03a}
.radar-data{stroke:#46b800;stroke-width:2.6;stroke-linejoin:round;filter:drop-shadow(0 2px 6px rgba(70,184,0,.35));transform-origin:190px 158px;animation:radarPop .6s cubic-bezier(.2,.8,.3,1) both}
@keyframes radarPop{from{transform:scale(.2);opacity:0}to{transform:scale(1);opacity:1}}
.radar-dot{stroke:var(--card);stroke-width:2.5}
.radar-dot-weak{fill:#ef4444}.radar-dot-mid{fill:#f5a524}.radar-dot-ok{fill:#58cc02}
.radar-empty-text{fill:var(--text);font-size:13px;font-weight:900}
.radar-empty-sub{fill:var(--muted);font-size:10.5px;font-weight:700}
:root.dark .radar-data{stroke:#30d158}

#clinicalDashboard .radar-legend,.radar-legend{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px;overflow:visible!important;text-align:left}
.radar-score{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:6px;padding:9px 10px;border-radius:14px;background:var(--surface);border:1.5px solid var(--line);font-size:10px;min-width:0}
.radar-score-top{display:flex;align-items:baseline;justify-content:space-between;gap:6px}
.radar-score .radar-score-name{font-size:10.5px;letter-spacing:-.2px;font-weight:900;color:var(--text);display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.radar-score b{flex:none;font-size:12.5px;font-weight:950;color:var(--muted);font-variant-numeric:tabular-nums}
.radar-score small{font-size:10px;font-weight:700;color:var(--muted);opacity:1}
.radar-mini{height:6px;border-radius:99px;background:rgba(127,127,127,.18);overflow:hidden}
.radar-mini i{display:block;height:100%;border-radius:99px;background:var(--line)}
.radar-weak .radar-mini i{background:#ef4444}.radar-mid .radar-mini i{background:#f5a524}.radar-ok .radar-mini i{background:#58cc02}
.radar-weak b{color:#ef4444}.radar-mid b{color:#e59400}.radar-ok b{color:#46a900}
:root.dark .radar-mid b{color:#ffc24d}:root.dark .radar-ok b{color:#7be03a}
.radar-score.is-focus{border-color:rgba(239,68,68,.55);background:rgba(239,68,68,.08)}
.radar-none{opacity:.75}
@media (prefers-reduced-motion:reduce){.wr-fill,.radar-data{animation:none}}

/* ── Smart Review per Blok ── */
.sr-block-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 14px;
  border-radius: 16px;
  border: 1.5px solid var(--line);
  background: var(--card);
  margin-bottom: 8px;
  box-shadow: 0 2px 0 var(--line);
}
.sr-block-row.sr-block-urgent {
  border-color: #ef4444;
  background: rgba(239,68,68,.04);
  box-shadow: 0 2px 0 rgba(239,68,68,.25);
}
:root.dark .sr-block-row.sr-block-urgent {
  background: rgba(239,68,68,.08);
}
.sr-block-row.sr-block-ok {
  opacity: .7;
}
.sr-block-info { flex: 1; min-width: 0; }
.sr-block-info b {
  display: block;
  font-size: 14px;
  font-weight: 900;
  color: var(--text);
  margin-bottom: 2px;
}
.sr-block-info small {
  font-size: 11.5px;
  color: var(--muted);
  font-weight: 700;
}
.sr-block-right {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
}
.sr-due-badge {
  min-width: 32px; height: 32px;
  border-radius: 50%;
  background: #ef4444;
  color: #fff;
  font-size: 13px;
  font-weight: 900;
  display: grid;
  place-items: center;
}
.sr-block-ok .sr-due-badge {
  background: var(--brand);
}
.sr-start-btn {
  min-height: 38px;
  padding: 0 14px;
  border-radius: 13px;
  border: 2px solid var(--brand);
  border-bottom-width: 3px;
  background: var(--brand-soft);
  color: var(--brand-dark);
  font-size: 13px;
  font-weight: 900;
  cursor: pointer;
  white-space: nowrap;
  transition: transform .12s ease;
}
.sr-start-btn:active:not([disabled]) {
  transform: translateY(2px);
  border-bottom-width: 1px;
}
.sr-start-btn[disabled] {
  border-color: var(--line);
  background: var(--surface);
  color: var(--muted);
  cursor: default;
  opacity: .7;
}
:root.dark .sr-start-btn:not([disabled]) {
  background: rgba(88,204,2,.12);
  color: var(--brand);
}

/* ── Catatan per soal ── */
.soal-note-wrap {
  margin-top: 16px;
  padding: 14px;
  border-radius: 16px;
  background: var(--surface);
  border: 1.5px solid var(--line);
  border-left: 4px solid #f59e0b;
}
:root.dark .soal-note-wrap {
  background: rgba(245,158,11,.06);
  border-color: var(--line);
  border-left-color: #f59e0b;
}
.soal-note-label {
  font-size: 12px;
  font-weight: 900;
  color: #b45309;
  margin-bottom: 8px;
  letter-spacing: .02em;
}
:root.dark .soal-note-label { color: #fde68a; }
.soal-note-input {
  width: 100%;
  box-sizing: border-box;
  border: 1.5px solid var(--line);
  border-radius: 12px;
  background: var(--card);
  color: var(--text);
  font-size: 13.5px;
  font-weight: 700;
  font-family: inherit;
  padding: 10px 12px;
  resize: vertical;
  min-height: 56px;
  line-height: 1.55;
  transition: border-color .15s ease;
  outline: none;
}
.soal-note-input:focus {
  border-color: #f59e0b;
  box-shadow: 0 0 0 3px rgba(245,158,11,.15);
}
:root.dark .soal-note-input { background: var(--surface); }
.soal-note-actions {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 8px;
}
.soal-note-save {
  padding: 7px 14px;
  border-radius: 11px;
  border: 2px solid #f59e0b;
  border-bottom-width: 3px;
  background: rgba(245,158,11,.12);
  color: #b45309;
  font-size: 12px;
  font-weight: 900;
  cursor: pointer;
  transition: transform .12s ease;
}
.soal-note-save:active { transform: translateY(2px); border-bottom-width: 1px; }
:root.dark .soal-note-save { color: #fde68a; background: rgba(245,158,11,.15); }
.soal-note-status {
  font-size: 11.5px;
  font-weight: 800;
  color: var(--muted);
}
.soal-note-status.ok { color: var(--brand); }
