/* Widgets de Aplicaciones (módulos 7–12). Tokens de css/curso.css. Prefijo a-. */

.a-cam-missing {
  background: rgba(255, 255, 255, 0.06); border: 1px dashed #4b8a77; border-radius: 10px; color: #cfe2db;
  font-size: 0.88rem; margin: 0; padding: 1rem;
}
.lesson .a-cam-missing { color: var(--muted); background: var(--paper-2); border-color: var(--line); }
.lab .a-cam-missing { color: #cfe2db; background: rgba(255, 255, 255, 0.06); border-color: #4b8a77; }

.a-hint { color: #b9d2c9; font-size: 0.85rem; margin: 0.35rem 0; }
.lesson > .a-hint, .a-examen .a-hint { color: var(--muted); }

/* ---------- Pasos y opciones (en fondo oscuro de .lab) ---------- */
.a-step { border: 1px solid #2e6a58; border-radius: 10px; margin: 0.75rem 0 0; min-width: 0; padding: 0.6rem 0.8rem 0.8rem; }
.a-step legend { color: #fff; font-size: 0.9rem; font-weight: 600; padding: 0 0.3rem; }
.a-step legend span {
  background: var(--gold); border-radius: 99px; color: var(--brown); display: inline-grid; font-family: var(--mono);
  font-size: 0.75rem; height: 1.35rem; margin-right: 0.35rem; place-items: center; width: 1.35rem;
}
.a-opt {
  align-items: flex-start; border: 1px solid #2e6a58; border-radius: 8px; color: #e8f2ee; cursor: pointer; display: flex;
  font-size: 0.87rem; gap: 0.55rem; line-height: 1.45; margin-top: 0.45rem; padding: 0.5rem 0.65rem;
}
.a-opt:hover { border-color: var(--gold); }
.a-opt input { accent-color: var(--gold); flex: none; margin-top: 0.25rem; }
.a-opt:has(input:checked) { background: rgba(255, 180, 0, 0.12); border-color: var(--gold); }
.a-opt:has(input:focus-visible) { outline: 3px solid var(--gold); outline-offset: 2px; }
.a-opt strong { display: block; color: #fff; }
.a-opt small { color: #b9d2c9; display: block; font-size: 0.8rem; margin-top: 0.15rem; }
.a-sev { display: grid; gap: 0 0.5rem; grid-template-columns: repeat(auto-fit, minmax(9.5rem, 1fr)); }
.a-opt-sev { border-left-width: 5px; }
.sev-normal { border-left-color: #249597 !important; }
.sev-obs { border-left-color: #ffb400 !important; }
.sev-prog { border-left-color: #f07f1a !important; }
.sev-inm { border-left-color: #e2541c !important; }

.a-field { color: #cfe2db; display: block; font-size: 0.82rem; line-height: 1.45; margin-top: 0.5rem; min-width: 0; }
.a-field > input, .a-field > select, .a-field > output { display: block; margin-top: 0.3rem; }
.a-field > select, .a-field > input[type="number"], .a-field > input[type="text"] { width: 100%; }
.a-field input, .a-field select, .a-field textarea {
  background: var(--forest-mid); border: 1px solid #2e6a58; border-radius: 6px; color: #fff; min-width: 0;
  padding: 0.4rem 0.55rem; width: 100%;
}
.a-field textarea { resize: vertical; }
.a-inline { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.a-inline input { flex: 1 1 6rem; width: auto; }
.a-actions { align-items: center; display: flex; flex-wrap: wrap; gap: 0.6rem; margin-top: 0.9rem; }
.a-feedback:empty { display: none; }
.a-feedback { margin-top: 0.75rem; }
.a-feedback p { margin: 0.3rem 0; color: #e8f2ee; }
.a-score { font-family: var(--mono); font-weight: 600; margin: 0 0 0.4rem; }
.a-score.ok { color: #7fe0d0; }
.a-score.bad { color: #ff9b73; }
.a-crit { list-style: none; margin: 0; padding: 0; }
.a-crit li { border-left: 4px solid #4b8a77; color: #e8f2ee; font-size: 0.86rem; margin-top: 0.4rem; padding: 0.3rem 0.6rem; }
.a-crit li.ok { border-left-color: #7fe0d0; }
.a-crit li.mid { border-left-color: var(--gold); }
.a-crit li.bad { border-left-color: #ff9b73; }
.a-explica { background: rgba(255, 255, 255, 0.07); border-radius: 8px; margin: 0.75rem 0; padding: 0.6rem 0.8rem; }
.a-explica-title { color: var(--gold) !important; font-size: 0.75rem; font-weight: 700; letter-spacing: 0.06em; margin: 0 !important; text-transform: uppercase; }

/* ---------- Caso ---------- */
.a-caso-grid { display: grid; gap: 1rem; grid-template-columns: minmax(0, 1fr); }
@media (min-width: 70rem) { .a-caso-grid { grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); align-items: start; } }
.a-caso-cam { min-width: 0; }
.a-caso-title { color: #fff !important; font-weight: 600; margin: 0; }
.a-caso-title:focus { outline: none; }
.a-caso-meta { display: grid; gap: 0.25rem 0.75rem; grid-template-columns: repeat(auto-fit, minmax(8rem, 1fr)); margin: 0.5rem 0 0; }
.a-caso-meta div { min-width: 0; }
.a-caso-meta dt { color: #8fb3a6; font-size: 0.7rem; letter-spacing: 0.05em; text-transform: uppercase; }
.a-caso-meta dd { color: #fff; font-family: var(--mono); font-size: 0.82rem; margin: 0; }

/* ---------- Biblioteca / ruta ---------- */
.a-lib-list, .a-sub-route {
  display: grid; gap: 0.4rem; grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr)); list-style: none; margin: 0 0 1rem; padding: 0;
}
.a-lib-btn {
  align-items: center; background: rgba(255, 255, 255, 0.05); border: 1px solid #2e6a58; border-radius: 8px; color: #e8f2ee;
  cursor: pointer; display: flex; font-size: 0.84rem; gap: 0.5rem; padding: 0.5rem 0.65rem; text-align: left; width: 100%;
}
.a-lib-btn:hover:not(:disabled) { border-color: var(--gold); }
.a-lib-btn[aria-current="true"] { background: rgba(255, 180, 0, 0.14); border-color: var(--gold); }
.a-lib-btn:disabled { cursor: not-allowed; opacity: 0.55; }
.a-lib-n { color: var(--gold); font-family: var(--mono); font-size: 0.75rem; }
.a-lib-t { flex: 1; min-width: 0; }
.a-lib-ok { color: #7fe0d0; visibility: hidden; }
.a-lib-btn.is-done .a-lib-ok { visibility: visible; }
.a-lib-status, .a-sub-status { color: #cfe2db; font-size: 0.85rem; }

/* ---------- Parecido ---------- */
.a-par-grid { display: grid; gap: 1rem; grid-template-columns: minmax(0, 1fr); }
@media (min-width: 48rem) { .a-par-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.a-par-cell { min-width: 0; }
.a-par-label { color: #fff !important; font-weight: 600; margin: 0 0 0.4rem !important; }
.a-dot { border-radius: 99px; display: inline-block; height: 0.7rem; margin-right: 0.4rem; width: 0.7rem; }
.a-dot-0 { background: #ffb400; }
.a-dot-1 { background: #5fd0d2; }
.a-chart { background: rgba(0, 0, 0, 0.25); border-radius: 10px; margin-top: 1rem; overflow: hidden; padding: 0.5rem; }
.a-chart canvas { display: block; }

/* ---------- Subestación ---------- */
.a-sub-stage { display: grid; gap: 1rem; grid-template-columns: minmax(0, 1fr); }
@media (min-width: 70rem) { .a-sub-stage { grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); align-items: start; } }
.a-sub-envread { margin: 0.75rem 0; }
.lab .table-wrap { margin: 1rem 0 0; }
.lab .data-table { color: #e8f2ee; }
.lab .data-table caption { color: #cfe2db; font-size: 0.8rem; text-align: left; padding-bottom: 0.4rem; }
.lab .data-table th { background: rgba(255, 255, 255, 0.07); color: #fff; }
.lab .data-table th, .lab .data-table td { border-bottom-color: #2e6a58; }

/* ---------- Decisiones ---------- */
.a-dec-card { background: rgba(255, 255, 255, 0.04); border: 1px solid #2e6a58; border-radius: 12px; padding: 1rem; }
.a-dec-q { color: #fff !important; font-size: 1rem; margin: 0.5rem 0 0.75rem !important; }
.a-dec-q:focus { outline: none; }
.a-dec-opts { display: grid; gap: 0.5rem; }
.a-dec-opt {
  background: var(--forest-mid); border: 1px solid #2e6a58; border-radius: 8px; color: #e8f2ee; cursor: pointer;
  font-size: 0.88rem; line-height: 1.45; padding: 0.65rem 0.8rem; text-align: left;
}
.a-dec-opt:hover { border-color: var(--gold); }
.a-dec-log { color: #cfe2db; font-size: 0.82rem; margin: 1rem 0 0; padding-left: 1.2rem; }
.a-dec-log li { margin-top: 0.45rem; }
.a-dec-log li strong { color: #fff; }
.a-dec-log li.ok span { color: #7fe0d0; }
.a-dec-log li.mid span { color: var(--gold); }
.a-dec-log li.bad span { color: #ff9b73; }
.a-arc-label { background: #fff; border: 3px solid #111; border-radius: 6px; color: #111; margin: 0.5rem 0 0.75rem; max-width: 26rem; overflow: hidden; }
.a-arc-head { background: #f07f1a; color: #111 !important; font-weight: 700; margin: 0 !important; padding: 0.4rem 0.6rem; }
.a-arc-label dl { display: grid; gap: 0; margin: 0; padding: 0.4rem 0.6rem; }
.a-arc-label dl div { border-bottom: 1px solid #ddd; display: flex; font-size: 0.82rem; gap: 0.5rem; justify-content: space-between; padding: 0.2rem 0; }
.a-arc-label dt { color: #333; }
.a-arc-label dd { font-family: var(--mono); font-weight: 600; margin: 0; text-align: right; }
.a-arc-label figcaption { color: #555; font-size: 0.72rem; padding: 0 0.6rem 0.4rem; }

/* ---------- Ventana IR ---------- */
.a-ven-out { display: grid; gap: 0.6rem; grid-template-columns: repeat(auto-fit, minmax(9rem, 1fr)); margin-top: 1rem; }
.a-ven-big { background: rgba(0, 0, 0, 0.25); border-radius: 10px; padding: 0.6rem 0.8rem; }
.a-ven-big span { color: #b9d2c9; display: block; font-size: 0.75rem; }
.a-ven-big strong { color: #fff; font-family: var(--mono); font-size: 1.35rem; }

/* ---------- Informe ---------- */
.a-inf-grid { display: grid; gap: 0 0.9rem; grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr)); }
.a-inf-capt { margin-top: 1rem; }
.a-inf-cam { margin-top: 0.75rem; }
.a-inf-item { background: rgba(255, 255, 255, 0.04); border: 1px solid #2e6a58; border-radius: 12px; margin-top: 1rem; padding: 0.8rem; }
.a-inf-item header { align-items: center; display: flex; flex-wrap: wrap; gap: 0.6rem; }
.a-inf-item header strong { color: var(--gold); font-family: var(--mono); }
.a-inf-item header .btn-lab { margin-left: auto; padding: 0.3rem 0.7rem; }
.a-inf-imgs { display: grid; gap: 0.5rem; grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr)); margin-top: 0.6rem; }
.a-inf-imgs img { border-radius: 8px; width: 100%; }
.a-inf-calc { margin-top: 0.6rem; }
.a-inf-issues { color: #ffc6ae; font-size: 0.8rem; margin: 0.4rem 0 0; padding-left: 1.1rem; }
.a-inf-issues:empty { display: none; }
.a-sev-tag { border-left: 5px solid #4b8a77; color: #fff; font-size: 0.8rem; padding: 0.1rem 0.5rem; }

/* Vista imprimible: superpuesta en pantalla, sola en impresión. */
.a-print {
  background: #e9eeec; inset: 0; overflow: auto; padding: 1rem; position: fixed; z-index: 200;
}
.a-print-bar { display: flex; gap: 0.5rem; justify-content: flex-end; margin: 0 auto 1rem; max-width: 52rem; position: sticky; top: 0; }
.a-print-bar button {
  background: var(--forest); border: 0; border-radius: 8px; color: #fff; cursor: pointer; font-weight: 600; padding: 0.6rem 1rem;
}
.a-print-bar .a-print-close { background: #fff; border: 1px solid var(--forest); color: var(--forest); }
.a-print-page {
  background: #fff; box-shadow: 0 4px 20px rgba(0, 0, 0, 0.12); color: #14261f; font-size: 0.9rem; margin: 0 auto 1rem;
  max-width: 52rem; padding: clamp(1rem, 4vw, 2.5rem);
}
.a-print-page h1 { color: var(--forest); font-size: 1.7rem; line-height: 1.2; margin: 1.5rem 0 0.3rem; }
.a-print-page h2 { border-bottom: 2px solid var(--forest); color: var(--forest); font-size: 1.15rem; margin: 1.25rem 0 0.4rem; }
.a-print-page h3 { color: var(--forest); font-size: 0.95rem; margin: 1rem 0 0.25rem; }
.a-print-logo { height: 3rem; width: auto; }
.a-print-sub { color: #3d5c52; margin: 0; }
.a-print-dl { display: grid; gap: 0.3rem; margin: 1rem 0; }
.a-print-dl div { display: grid; gap: 0.75rem; grid-template-columns: 8rem 1fr; }
.a-print-dl dt { color: #3d5c52; font-weight: 600; }
.a-print-dl dd { margin: 0; }
.a-print-table { border-collapse: collapse; font-size: 0.82rem; margin: 0.5rem 0; width: 100%; }
.a-print-table th, .a-print-table td { border: 1px solid #c9d8d2; padding: 0.35rem 0.5rem; text-align: left; vertical-align: top; }
.a-print-table th { background: #f3f7f5; }
.a-print-imgs { display: grid; gap: 0.75rem; grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr)); margin: 0.75rem 0; }
.a-print-imgs figure { margin: 0; }
.a-print-imgs img { border: 1px solid #c9d8d2; width: 100%; }
.a-print-imgs figcaption { color: #3d5c52; font-size: 0.75rem; }
.a-print-note { border-top: 1px solid #c9d8d2; color: #3d5c52; font-size: 0.75rem; margin-top: 1.5rem; padding-top: 0.5rem; }

@media print {
  html.a-printing body > *:not(.a-print) { display: none !important; }
  html.a-printing .a-print { background: #fff; inset: auto; overflow: visible; padding: 0; position: static; }
  html.a-printing .a-print-bar { display: none; }
  html.a-printing .a-print-page { box-shadow: none; margin: 0; max-width: none; padding: 0; page-break-after: always; break-after: page; }
  html.a-printing .a-print-page:last-child { page-break-after: auto; break-after: auto; }
  @page { margin: 16mm; }
}

/* ---------- Examen ---------- */
.a-examen-start { align-items: center; display: flex; flex-wrap: wrap; gap: 1rem; margin: 1.5rem 0; }
.a-examen-start button {
  background: var(--forest); border: 0; border-radius: 8px; color: #fff; cursor: pointer; font-weight: 600; padding: 0.8rem 1.4rem;
}
.a-examen-start button:disabled { cursor: default; opacity: 0.6; }
.a-examen button.ghost {
  background: transparent; border: 1px solid var(--forest); border-radius: 8px; color: var(--forest); cursor: pointer; font-weight: 600; margin-top: 1rem; padding: 0.6rem 1.1rem;
}
.a-ex-tabs { display: flex; flex-wrap: wrap; gap: 0.4rem; margin-top: 1rem; }
.a-ex-tabs button {
  background: var(--paper-2); border: 1px solid var(--line); border-radius: 8px; color: var(--forest); cursor: pointer; font-weight: 600; padding: 0.45rem 0.9rem;
}
.a-ex-tabs button[aria-selected="true"] { background: var(--forest); border-color: var(--forest); color: #fff; }
.a-ex-st { font-family: var(--mono); font-size: 0.8rem; }
.a-ex-panel { margin-top: 0.75rem !important; }
.a-badge { flex-wrap: wrap; }
.a-badge svg { flex: none; }
.a-badge p { margin: 0; color: #fff !important; }
.a-badge-k { color: var(--gold) !important; font-family: var(--mono); font-size: 0.72rem; letter-spacing: 0.1em; text-transform: uppercase; }
.a-badge-t { font-size: 1.1rem; }
.a-badge-d { color: #cfe2db !important; font-size: 0.85rem; }
@media (prefers-reduced-motion: no-preference) {
  .a-badge { animation: a-pop 0.6s var(--ease) both; }
  @keyframes a-pop { from { opacity: 0; transform: scale(0.96); } to { opacity: 1; transform: none; } }
}

/* ---------- Diagramas SVG de lección ---------- */
.a-diagram { margin: 1.75rem 0; }
.a-diagram svg { height: auto; width: 100%; }
.a-diagram figcaption { color: var(--muted); font-size: 0.82rem; margin-top: 0.5rem; }
.a-compare { display: grid; gap: 0.75rem; grid-template-columns: minmax(0, 1fr); margin: 1.5rem 0; }
@media (min-width: 40rem) { .a-compare { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.a-compare > div { border-radius: 10px; font-size: 0.9rem; padding: 0.8rem 1rem; }
.a-compare .mal { background: var(--campo-bg); border-left: 4px solid var(--hot); }
.a-compare .bien { background: var(--tip-bg); border-left: 4px solid var(--teal); }
.a-compare p { margin: 0.3rem 0 0; }
.a-compare .k { font-size: 0.75rem; font-weight: 700; letter-spacing: 0.06em; margin: 0; text-transform: uppercase; }

/* Evaluación bloqueada hasta completar los módulos 00–11 */
.a-examen-lock { background: var(--paper-2, #eef4f1); border-left: 4px solid var(--gold, #ffb400); border-radius: 10px; flex-basis: 100%; padding: 0.9rem 1.1rem; }
.a-examen-lock p { margin: 0 0 0.4rem; }
.a-examen-lock ul { margin: 0; padding-left: 1.2rem; }
.a-examen-lock li { margin: 0.2rem 0; }

/* Certificado de finalización (js/curso-certificado.js) */
.a-cert { margin: 1.75rem 0 0.5rem; }
.a-cert-alert {
  align-items: flex-start; background: var(--warn-bg, #fff5e0); border: 1px solid #f3d48a; border-left: 5px solid var(--gold);
  border-radius: 12px; display: flex; gap: 0.9rem; padding: 1rem 1.15rem;
}
.a-cert-alert svg { flex: none; margin-top: 0.15rem; }
.a-cert-alert p { margin: 0; }
.a-cert-alert-t { color: #6b4500; font-weight: 700; }
.a-cert-alert-d { color: #5a4318; font-size: 0.95rem; margin-top: 0.25rem !important; }
.a-cert-field { display: grid; gap: 0.35rem; margin: 1.25rem 0 1rem; max-width: 30rem; }
.a-cert-field label { color: var(--forest); font-size: 0.9rem; font-weight: 600; }
.a-cert-field input { background: #fff; border: 1px solid var(--line); border-radius: 8px; font-size: 1.05rem; padding: 0.7rem 0.85rem; }
.a-cert-field input:focus { border-color: var(--teal); outline: 2px solid rgba(36, 149, 151, 0.25); }
.a-cert-field small { color: var(--muted); font-size: 0.8rem; }
.a-cert-sheet { background: #e9eeec; border-radius: 12px; padding: clamp(0.6rem, 2.5vw, 1.5rem); }
.a-cert-sheet canvas { border-radius: 4px; box-shadow: 0 10px 30px rgba(0, 36, 25, 0.18); display: block; height: auto; width: 100%; }
.a-cert-actions { align-items: center; display: flex; flex-wrap: wrap; gap: 0.75rem; margin-top: 1.1rem; }
.a-cert-actions button { border-radius: 8px; cursor: pointer; font-weight: 600; padding: 0.8rem 1.3rem; }
.a-cert-pdf { background: var(--gold); border: 0; color: var(--brown); }
.a-cert-pdf:hover:not(:disabled) { background: var(--gold-hover); }
.a-cert-png { background: transparent; border: 1px solid var(--forest); color: var(--forest); }
.a-cert-actions button:disabled { cursor: default; opacity: 0.5; }
.a-cert-ok { color: var(--teal-deep); font-size: 0.9rem; font-weight: 600; }
@media (max-width: 560px) { .a-cert-actions button { width: 100%; } }
