/* ---------- Tarjeta principal ---------- */
.op-card {
  background: #fff;
  border-radius: 20px;
  box-shadow: 0 4px 14px rgba(0,0,0,0.08);
  padding: 24px;
  margin: 20px auto;
  max-width: 900px;
  font-family: 'Inter', sans-serif;
}
.op-card__header { margin-bottom: 16px; }
.op-title { font-size: 1.5rem; font-weight: 600; margin: 0; }
.op-subtitle { color: #666; font-size: 0.9rem; margin: 4px 0 0; }

/* ---------- KPIs ---------- */
.op-kpis {
  display: grid;
  grid-template-columns: repeat(auto-fit,minmax(120px,1fr));
  gap: 14px;
  margin: 20px 0;
  padding: 0;
  list-style: none;
}
.op-kpi {
  background: #f9f9f9;
  border-radius: 12px;
  text-align: center;
  padding: 12px;
}
.op-kpi__label { display:block; font-size:0.8rem; color:#555; margin-bottom:4px; }
.op-kpi__value { font-size:1.4rem; font-weight:600; }

.op-kpi--ok   { background:#e6f7ef; color:#1a7f37; }
.op-kpi--bad  { background:#fdecea; color:#d93025; }
.op-kpi--blank{ background:#f4f4f4; color:#555; }

/* ---------- Nota final ---------- */
.op-score {
  display:flex; align-items:center; justify-content:center;
  gap:8px; margin:20px 0; font-size:1.2rem;
}
.op-score__label { color:#444; }
.op-score__value { font-size:1.6rem; font-weight:700; color:#007aff; }
.op-score__scale { color:#666; }

/* ---------- Estado ---------- */
.op-status { margin:12px 0; }
.op-badge {
  display:inline-block;
  padding:4px 10px;
  border-radius:999px;
  font-size:0.75rem;
  font-weight:600;
}
.op-badge--oficial { background:#007aff; color:#fff; }
.op-badge--practica { background:#ccc; color:#333; }
.op-status__hint { display:block; font-size:0.8rem; color:#666; margin-top:4px; }

/* ---------- Metadatos ---------- */
.op-meta ul { margin:16px 0 0; padding:0; list-style:none; }
.op-meta li { font-size:0.85rem; color:#333; margin-bottom:4px; }

/* ---------- Botones ---------- */
.op-actions { display:flex; flex-wrap:wrap; gap:10px; margin-top:20px; }
.op-btn {
  background:#007aff; color:#fff; border:none;
  padding:10px 18px; border-radius:12px;
  font-size:0.9rem; cursor:pointer; transition:0.2s;
}
.op-btn:hover { background:#005bbb; }
.op-btn--ghost {
  background:#f2f2f2; color:#333;
}
.op-btn--ghost:hover { background:#e0e0e0; }

/* ---------- Errores ---------- */
.op-error { color:#d93025; font-weight:600; }
