/* practice-cases.css — NRP clinical case simulator
   Mobile-first. Monitor stays compact and sticky so it's always visible
   while the user reads prompts and clicks actions below. */

/* Utility: hidden (site.css doesn't ship one) */
.hidden{display:none !important;}

/* ── Case selector (chips row) ── */
.case-picker{
  display:flex;gap:8px;overflow-x:auto;overscroll-behavior-x:contain;
  padding:4px 2px 12px;margin-bottom:12px;
  scrollbar-width:none;
}
.case-picker::-webkit-scrollbar{display:none;}
.case-pill{
  flex:none;padding:8px 14px;border-radius:20px;
  background:var(--panel);border:1.5px solid var(--line-strong);
  color:var(--ink-soft);font-family:var(--sans);font-size:.82rem;font-weight:600;
  cursor:pointer;white-space:nowrap;transition:background .15s,color .15s,border-color .15s;
  display:inline-flex;align-items:center;gap:6px;
}
.case-pill:hover{background:var(--teal-wash);border-color:var(--teal);color:var(--teal);}
.case-pill.active{background:var(--teal);border-color:var(--teal);color:#fff;}
.case-pill-num{
  font-family:var(--mono);font-size:.7rem;font-weight:700;
  background:rgba(255,255,255,0.2);padding:1px 6px;border-radius:8px;
}
.case-pill.active .case-pill-num{background:rgba(255,255,255,0.25);}
.case-pill:not(.active) .case-pill-num{background:var(--line);color:var(--ink-faint);}
.case-pill[disabled]{opacity:.35;cursor:not-allowed;}
.case-pill[disabled]:hover{background:var(--panel);border-color:var(--line-strong);color:var(--ink-soft);}

/* ── Case intro card ── */
.case-intro{
  background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
  padding:16px 18px;margin-bottom:14px;
}
.case-intro-head{
  display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:8px;
}
.case-intro-title{
  font-family:var(--sans);font-size:1rem;font-weight:800;color:var(--ink);flex:1;line-height:1.3;
}
.case-difficulty{
  padding:2px 8px;border-radius:6px;
  font-family:var(--sans);font-size:.68rem;font-weight:700;
  text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;
}
.case-difficulty.diff-basic{background:rgba(5,150,105,0.14);color:#059669;}
.case-difficulty.diff-intermediate{background:var(--amber-wash);color:var(--amber-surface,var(--amber));}
.case-difficulty.diff-advanced{background:rgba(185,28,28,0.12);color:#B91C1C;}
[data-theme="dark"] .case-difficulty.diff-basic{color:#5EC29A;}
[data-theme="dark"] .case-difficulty.diff-advanced{color:#EF8A8A;}
.case-desc{
  font-family:var(--sans);font-size:.9rem;line-height:1.55;color:var(--ink-soft);margin:0;
}

/* ── Monitor (compact sticky bar on mobile, richer panel on desktop) ── */
.monitor{
  position:sticky;top:0;z-index:20;
  background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
  padding:8px 10px;margin-bottom:12px;
  box-shadow:0 4px 12px -6px rgba(12,22,36,0.15);
  display:grid;grid-template-columns:repeat(4,1fr);gap:6px;
}
.mon-cell{
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  padding:4px 2px;text-align:center;min-width:0;
}
.mon-label{
  font-family:var(--sans);font-size:.58rem;font-weight:700;color:var(--ink-faint);
  text-transform:uppercase;letter-spacing:.06em;margin-bottom:2px;
}
.mon-val{
  font-family:var(--mono);font-size:1rem;font-weight:700;color:var(--ink);
  font-variant-numeric:tabular-nums;line-height:1;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%;
}
.mon-val.mon-val-critical{color:#B91C1C;}
.mon-val.mon-val-warn{color:var(--amber-surface,var(--amber));}
.mon-val.mon-val-good{color:#059669;}
[data-theme="dark"] .mon-val.mon-val-critical{color:#EF8A8A;}
[data-theme="dark"] .mon-val.mon-val-good{color:#5EC29A;}
.mon-timer{
  background:var(--ink);color:#fff;border-radius:6px;padding:6px 0;
}
[data-theme="dark"] .mon-timer{background:var(--panel);border:1px solid var(--line-strong);}
.mon-timer .mon-label{color:rgba(255,255,255,0.65);}
[data-theme="dark"] .mon-timer .mon-label{color:var(--ink-faint);}
.mon-timer .mon-val{color:#fff;}
[data-theme="dark"] .mon-timer .mon-val{color:var(--ink);}
.mon-timer.mon-timer-golden{background:var(--amber-surface,var(--amber));}
.mon-timer.mon-timer-golden .mon-label{color:rgba(255,255,255,0.85);}
[data-theme="dark"] .mon-timer.mon-timer-golden{background:var(--amber);color:#fff;}

@media(min-width:640px){
  .monitor{padding:12px 14px;gap:10px;}
  .mon-val{font-size:1.35rem;}
  .mon-label{font-size:.66rem;}
}
@media(min-width:900px){
  .monitor{padding:16px 18px;}
  .mon-val{font-size:1.7rem;}
}

/* ── Prompt ── */
.sim-prompt{
  background:var(--panel);border:1px solid var(--line);border-left:4px solid var(--teal);
  border-radius:10px;padding:14px 16px;margin-bottom:14px;
}
.sim-prompt-label{
  font-family:var(--sans);font-size:.68rem;font-weight:700;color:var(--teal);
  text-transform:uppercase;letter-spacing:.06em;margin-bottom:6px;display:block;
}
.sim-prompt-text{
  font-family:var(--sans);font-size:.95rem;line-height:1.5;color:var(--ink);margin:0;text-wrap:pretty;
}

/* Progress + score */
.sim-progress-row{
  display:flex;align-items:center;gap:12px;margin-bottom:14px;
  font-family:var(--sans);font-size:.75rem;color:var(--ink-faint);
}
.sim-progress-bar{
  flex:1;height:4px;background:var(--line);border-radius:2px;overflow:hidden;
}
.sim-progress-fill{
  height:100%;background:var(--teal);transition:width .3s cubic-bezier(.4,0,.2,1);
}
.sim-score{
  font-family:var(--mono);font-weight:700;color:var(--ink);
  font-variant-numeric:tabular-nums;white-space:nowrap;
}

/* ── Action buttons grid ── */
.sim-actions{
  display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-bottom:14px;
}
@media(min-width:640px){.sim-actions{grid-template-columns:repeat(4,1fr);}}
.sim-action{
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  padding:12px 8px;border-radius:10px;border:1.5px solid var(--line-strong);
  background:var(--panel);cursor:pointer;
  font-family:var(--sans);font-size:.76rem;font-weight:700;color:var(--ink);line-height:1.2;
  text-align:center;gap:6px;min-height:66px;
  transition:transform .1s ease, background .15s, border-color .15s, box-shadow .15s;
}
.sim-action:hover:not(:disabled){
  background:var(--teal-wash);border-color:var(--teal);color:var(--teal);
  transform:translateY(-1px);box-shadow:0 3px 8px -3px rgba(13,148,136,0.35);
}
.sim-action:active{transform:translateY(0);}
.sim-action:disabled{opacity:.55;cursor:default;}
.sim-action-icon{
  width:22px;height:22px;color:currentColor;flex:none;
}
.sim-action.action-correct{
  background:rgba(5,150,105,0.14);border-color:#059669;color:#059669;
  animation:actFlashOk .6s ease;
}
.sim-action.action-incorrect{
  background:rgba(185,28,28,0.1);border-color:#B91C1C;color:#B91C1C;
  animation:actFlashErr .5s ease;
}
.sim-action.action-critical{
  background:rgba(185,28,28,0.18);border-color:#B91C1C;color:#B91C1C;
  animation:actShake .35s ease;
}
@keyframes actFlashOk{0%{transform:scale(1);}40%{transform:scale(1.03);}100%{transform:scale(1);}}
@keyframes actFlashErr{0%{transform:translateX(0);}25%{transform:translateX(-3px);}75%{transform:translateX(3px);}100%{transform:translateX(0);}}
@keyframes actShake{0%,100%{transform:translateX(0);}20%{transform:translateX(-4px);}40%{transform:translateX(4px);}60%{transform:translateX(-3px);}80%{transform:translateX(3px);}}
@media(prefers-reduced-motion:reduce){
  .sim-action.action-correct,.sim-action.action-incorrect,.sim-action.action-critical{animation:none;}
}

/* ── Feedback banner ── */
.sim-feedback{
  padding:14px 16px;border-radius:10px;margin-bottom:14px;
  display:flex;gap:12px;align-items:flex-start;
  font-family:var(--sans);font-size:.88rem;line-height:1.55;
  animation:fbSlide .3s ease;
}
@keyframes fbSlide{from{opacity:0;transform:translateY(-4px);}to{opacity:1;transform:translateY(0);}}
.sim-feedback.hidden{display:none;}
.sim-feedback.fb-correct{background:rgba(5,150,105,0.1);color:var(--ink-soft);}
.sim-feedback.fb-incorrect{background:rgba(185,28,28,0.08);color:var(--ink-soft);}
.sim-feedback.fb-critical{background:rgba(185,28,28,0.18);color:var(--ink-soft);border:1px solid #B91C1C;}
.sim-feedback-icon{
  flex:none;width:22px;height:22px;margin-top:1px;
}
.sim-feedback strong{color:var(--ink);display:block;margin-bottom:4px;}

/* ── Debriefing screen ── */
.sim-debrief{
  background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
  padding:24px 20px;text-align:center;
}
.sim-debrief-badge{
  width:72px;height:72px;border-radius:50%;margin:0 auto 14px;
  display:flex;align-items:center;justify-content:center;
}
.sim-debrief.res-excellent .sim-debrief-badge{background:rgba(5,150,105,0.14);color:#059669;}
.sim-debrief.res-good .sim-debrief-badge{background:var(--teal-wash);color:var(--teal);}
.sim-debrief.res-poor .sim-debrief-badge{background:var(--amber-wash);color:var(--amber-surface,var(--amber));}
.sim-debrief h2{
  font-family:var(--sans);font-size:1.15rem;font-weight:800;margin:0 0 4px;
  text-transform:uppercase;letter-spacing:.02em;color:var(--ink);
}
.sim-debrief-score{
  font-family:var(--mono);font-size:3rem;font-weight:700;color:var(--ink);
  line-height:1.05;margin:8px 0 4px;font-variant-numeric:tabular-nums;
}
.sim-debrief-verdict{
  font-family:var(--sans);font-size:.88rem;color:var(--ink-soft);margin:0 0 20px;
}

.sim-debrief-metrics{
  display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin:16px 0 20px;
  text-align:left;
}
@media(min-width:640px){.sim-debrief-metrics{grid-template-columns:repeat(4,1fr);}}
.sim-metric{
  background:var(--paper);border-radius:8px;padding:10px 12px;
}
.sim-metric-label{
  font-family:var(--sans);font-size:.66rem;font-weight:700;color:var(--ink-faint);
  text-transform:uppercase;letter-spacing:.05em;margin-bottom:3px;
}
.sim-metric-value{
  font-family:var(--mono);font-size:1.15rem;font-weight:700;color:var(--ink);
  font-variant-numeric:tabular-nums;
}
.sim-metric-value.val-warn{color:var(--amber-surface,var(--amber));}
.sim-metric-value.val-bad{color:#B91C1C;}
.sim-metric-value.val-good{color:#059669;}
[data-theme="dark"] .sim-metric-value.val-good{color:#5EC29A;}
[data-theme="dark"] .sim-metric-value.val-bad{color:#EF8A8A;}

/* Badges earned */
.sim-badges{
  display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin:8px 0 20px;
}
.sim-badge{
  display:inline-flex;align-items:center;gap:6px;
  padding:6px 12px;border-radius:20px;
  background:linear-gradient(135deg, var(--teal-wash), transparent);
  border:1px solid var(--teal);color:var(--teal);
  font-family:var(--sans);font-size:.76rem;font-weight:700;
}
.sim-badge-icon{width:14px;height:14px;}
.sim-badge.badge-gold{
  background:linear-gradient(135deg, rgba(217,119,6,0.15), transparent);
  border-color:var(--amber-surface,var(--amber));color:var(--amber-surface,var(--amber));
}

.sim-debrief-actions{
  display:flex;gap:10px;justify-content:center;flex-wrap:wrap;
}
.sim-debrief-actions button{
  padding:11px 20px;border-radius:9px;font-family:var(--sans);font-size:.88rem;font-weight:700;cursor:pointer;
  border:1px solid var(--line-strong);background:transparent;color:var(--ink);
  transition:background .15s,opacity .15s;
}
.sim-debrief-actions .sim-primary{background:var(--teal);border-color:var(--teal);color:#fff;}
.sim-debrief-actions button:not(.sim-primary):hover{background:var(--teal-wash);}
.sim-debrief-actions .sim-primary:hover{opacity:.92;}

/* Streak badge (persists) */
.sim-streak{
  display:inline-flex;align-items:center;gap:6px;margin-left:auto;
  padding:4px 10px;border-radius:12px;
  background:var(--amber-wash);color:var(--amber-surface,var(--amber));
  font-family:var(--sans);font-size:.72rem;font-weight:700;
}
.sim-streak.hidden{display:none;}

/* Lang + reset controls row */
.sim-controls{
  display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:14px;
}
.sim-reset{
  padding:6px 12px;border-radius:8px;background:transparent;
  border:1px solid var(--line-strong);color:var(--ink-soft);
  font-family:var(--sans);font-size:.76rem;font-weight:600;cursor:pointer;
}
.sim-reset:hover{background:var(--line);color:var(--ink);}
