/* Estilos limitados a la biblioteca de vocabulario. */
.vocabulary{max-width:1200px;margin:auto;}
.vocabulary h1{font-size:30px;margin:0 0 12px;}
.vocab-note{color:var(--muted);font-size:13px;line-height:1.5;}
.vocab-note a{text-decoration:underline;}
.vocab-levels,.vocab-controls{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin:24px 0;}
.vocab-controls label{display:flex;gap:10px;align-items:center;flex-wrap:wrap;}
.vocabulary .btn,.vocabulary select{min-height:44px;}
.vocabulary select{font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:8px 12px;max-width:100%;}
.vocab-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;}
.vocab-entry{min-width:0;border:1px solid var(--line);border-radius:var(--radius);padding:20px;background:var(--surface);display:flex;flex-direction:column;gap:12px;}
.vocab-entry h2{font-size:21px;margin:0 0 4px;overflow-wrap:anywhere;}
.vocab-pos{font-size:13px;color:var(--muted);}
.vocab-entry p{margin:0;line-height:1.5;}
.vocab-translation small{display:block;font-size:11px;color:var(--muted);}
.vocab-example{flex:1;}
.vocab-learn{align-self:flex-start;}
.vocab-learn[aria-pressed="true"]{border-color:var(--text);font-weight:600;}
.vocab-practice{margin:24px 0;}
.vocab-question{border:1px solid var(--line);border-radius:16px;padding:20px;margin:20px 0;min-width:0;background:var(--surface);}
.vocab-question legend{padding:0 8px;line-height:1.5;}
.vocab-question label{display:flex;gap:12px;align-items:center;min-height:44px;cursor:pointer;}
.vocab-question input{width:18px;height:18px;flex-shrink:0;}
.vocab-feedback{line-height:1.5;}
#vocab-result{margin:24px 0;}
.vocabulary [hidden]{display:none!important;}
@media(max-width:1000px){.vocab-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:600px){.vocab-grid{grid-template-columns:minmax(0,1fr);}.vocab-controls{align-items:stretch;flex-direction:column;}.vocab-levels .btn{flex:1 1 100%;}.vocab-entry{padding:16px;}}

.internal-levels{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin:20px 0;}
.internal-level{display:flex;flex-direction:column;gap:8px;text-align:left;align-items:flex-start;}
.internal-level span{font-size:13px;line-height:1.5;}
.internal-level[aria-pressed="true"]{border-color:var(--text);}
#activity-form>label{display:flex;flex-direction:column;gap:8px;margin:12px 0;}
#activity-form input:not([type="radio"]){min-height:44px;border:1px solid var(--line);border-radius:10px;padding:10px;font:inherit;color:var(--text);background:var(--surface);width:100%;box-sizing:border-box;}
#activity-form .exercise-choice{flex-direction:row;align-items:center;min-height:44px;}
.ordering-bank{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0;}
.ordering-output{min-height:44px;padding:12px;border:1px solid var(--line);border-radius:10px;}
#activity-form button[type="submit"]{margin-top:16px;}

/* Niveles desplegables para mantener compacta la navegación. */
.vocab-nav-level>summary{font-size:13px;padding-left:6px;}
.vocab-entry[hidden]{display:none;}

/* Controles del piloto Starter, sin alterar tarjetas ni Intermediate. */
.starter-practice .starter-pairs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;}
.starter-practice .starter-pairs>div{display:flex;flex-direction:column;gap:12px;}
.starter-practice .starter-pairs .btn{min-height:48px;white-space:normal;overflow-wrap:anywhere;}
.starter-practice [aria-pressed="true"]{font-weight:600;border-color:var(--text);}
.starter-practice button:focus-visible{outline:2px solid var(--text);outline-offset:3px;}
.starter-practice button:disabled{opacity:.6;}
@media(max-width:400px){.starter-practice .starter-pairs{gap:8px;}}

/* Retroalimentación breve y estado completado, exclusivos de Starter. */
.starter-practice .pair-completed,.starter-practice .pair-completed:disabled{background:#edf7ef;border-color:#438451;color:#214d2b;opacity:1;}
.starter-practice .pair-incorrect{background:#fff0f0;border-color:#af4444;color:#762626;}
.starter-practice .pair-status{display:block;font-size:12px;margin-top:3px;}
.starter-practice .starter-pairs h2{font-size:18px;margin:0 0 8px;}
.starter-practice .starter-score{font-weight:600;}

/* Árbol Starter: tarjetas legibles y desplazamiento local en pantallas pequeñas. */
.family-tree-activity .tree-viewport{max-width:100%;overflow:auto;border:1px solid var(--line);border-radius:16px;background:var(--surface);}
.family-tree-canvas{position:relative;width:900px;height:500px;}
.tree-connections{position:absolute;inset:0;width:900px;height:500px;pointer-events:none;}
.tree-parent{fill:none;stroke:#708184;stroke-width:2;}
.tree-couple{fill:none;stroke:#957a84;stroke-width:2;stroke-dasharray:5 4;}
.tree-person{position:absolute;width:110px;min-height:80px;border:1px solid var(--line);border-radius:14px;color:var(--text);font:inherit;cursor:pointer;background:#f2f4ed;display:flex;align-items:center;flex-direction:column;justify-content:center;gap:4px;}
.tree-person.generation-2{background:#edf3f4;}.tree-person.generation-3{background:#f4eef2;}
.tree-avatar{height:32px;width:32px;fill:#899597;}
.family-tree-activity .tree-correct{background:#edf7ef;border-color:#438451;color:#214d2b;}
.family-tree-activity .tree-incorrect{background:#fff0f0;border-color:#af4444;color:#762626;}
.tree-person:focus-visible,.tree-viewport:focus-visible{outline:2px solid var(--text);outline-offset:3px;}
.tree-legend{display:flex;flex-wrap:wrap;gap:16px;font-size:13px;color:var(--muted);}
/* Exploradores anatómicos: estilos acotados al tema, sin alterar otras actividades. */
.body-explorer .body-workspace{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(220px,.8fr);gap:24px;align-items:start}
.body-explorer .body-figure{margin:0;padding:16px;border:1px solid #dbe3e6;border-radius:18px;background:#fff}
.body-explorer figcaption{font-size:14px;color:#435660;text-align:center;margin-bottom:12px}
.body-explorer .body-canvas{width:100%;max-width:460px;min-width:0;margin:auto}
.body-explorer .body-svg{display:block;width:100%;height:auto;max-width:100%;overflow:hidden;touch-action:manipulation}
.body-explorer .body-zone{cursor:pointer;outline:none;fill:#d7e6ea;stroke:#536d78;stroke-width:2;stroke-linejoin:round}
.body-explorer .body-zone:nth-child(3n){fill:#dcebe2}
.body-explorer .body-zone:hover,.body-explorer .body-zone:focus{fill:#b8d6df;stroke:#203b49;stroke-width:4}
.body-explorer .body-zone.body-correct,.body-explorer .body-correct{fill:#b6e5c8;background:#d8f3e1;stroke:#126137;border-color:#126137}
.body-explorer .body-zone.body-incorrect,.body-explorer .body-incorrect{fill:#f3c7c7;background:#fde3e3;stroke:#992b2b;border-color:#992b2b}
.body-explorer .body-art{pointer-events:none}
.body-explorer .body-outline{fill:none;stroke:#82959e;stroke-width:2;stroke-linejoin:round}
.body-explorer .body-detail{fill:none;stroke:#536d78;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.body-explorer .body-help{position:sticky;top:90px}
.body-explorer #body-feedback{min-height:44px;font-weight:600;color:#263e48}
.body-explorer summary{cursor:pointer;min-height:44px;display:flex;align-items:center;text-decoration:underline}
.body-explorer .body-labels{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}
.body-explorer .body-labels button,.body-activities .btn,.body-explorer #body-restart{min-height:44px;white-space:normal}
.body-activities{margin-top:24px;gap:10px}
.body-explorer #body-prompt:focus-visible{outline:2px solid #435660;outline-offset:4px}
@media(max-width:767px){.body-explorer .body-workspace{grid-template-columns:minmax(0,1fr);gap:16px}.body-explorer .body-help{position:static}.body-explorer .body-figure{padding:10px}.body-activities .btn{flex:1 1 145px;text-align:center}.body-explorer h2{overflow-wrap:anywhere}}

.body-explorer .body-silhouette{fill:#f4f7f8;stroke:#9daeb5;stroke-width:1;pointer-events:none}
@media(max-width:767px){.body-activities{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch}.body-activities .btn{flex:none;display:flex;align-items:center;justify-content:center;min-height:48px}}

@media(min-width:768px) and (max-width:1100px){.body-explorer .body-workspace{grid-template-columns:minmax(0,1fr)}.body-explorer .body-help{position:static}}

.body-explorer #body-prompt,.body-explorer h1{scroll-margin-top:90px}

/* Contener SVG y controles sin comprimir la proporción anatómica. */
.body-explorer .body-figure{min-width:0;box-sizing:border-box;margin:0}
.body-explorer .body-help{min-width:0;overflow-wrap:anywhere}
.body-explorer .body-svg{box-sizing:border-box}
