:root{--c:#1d4ed8;--g:#475569;--b:#cbd5e1;--ok:#166534;--mal:#b91c1c;--fondo:#f8fafc}*{box-sizing:border-box}
body{margin:0;font:16px/1.55 system-ui,sans-serif;color:#0f172a;background:var(--fondo)}
.caja{max-width:720px;margin:1.5rem auto;padding:1.25rem;background:#fff;border:1px solid var(--b);border-radius:10px}.ancha{max-width:1180px}
.barra{display:flex;gap:1rem;align-items:center;flex-wrap:wrap;padding:.6rem 1rem;background:#fff;border-bottom:1px solid var(--b)}.barra>b{font-size:1.15rem;color:var(--c)}
.barra nav{display:flex;gap:.25rem 1.25rem;flex-wrap:wrap;flex:1}.menu{display:flex;gap:.25rem .75rem;flex-wrap:wrap;list-style:none;margin:0;padding:0}
.menu a{display:inline-block;padding:.35rem .6rem;border-radius:6px;color:var(--c);text-decoration:none;font-weight:500}.menu a:hover{background:#eef2ff;text-decoration:underline}.menu a[aria-current=page]{background:var(--c);color:#fff}
a{color:var(--c)}.idioma-barra select{width:auto;padding:.3rem}
button,.btn{display:inline-block;background:var(--c);color:#fff;border:1px solid var(--c);border-radius:6px;padding:.5rem 1rem;font:inherit;cursor:pointer;text-decoration:none;min-height:40px}
button.sec,.btn.sec{background:#fff;color:var(--c)}button.sel{background:var(--c);color:#fff}button.peligro{background:#fff;color:var(--mal);border-color:var(--mal)}button:disabled{opacity:.55;cursor:default}
button.enlace{background:none;border:0;color:var(--c);text-decoration:underline;padding:.2rem;min-height:0}
input,select,textarea{width:100%;padding:.5rem;border:1px solid #64748b;border-radius:6px;font:inherit;background:#fff;color:inherit}input[type=checkbox],input[type=radio]{width:auto}input[type=color]{padding:0;height:2.4rem;width:4rem}input[type=file]{border:0;padding:.3rem 0}
label{display:block;margin:.6rem 0}.ayuda{display:block;font-size:.85rem}textarea{min-height:90px}
.casilla{display:flex;gap:.5rem;align-items:center;margin:.4rem 0}.casilla input{margin:0}
.opcion{display:flex;gap:.6rem;align-items:flex-start;margin:.35rem 0;padding:.55rem;border:1px solid var(--b);border-radius:6px}.opcion input{width:auto;margin-top:.35rem}
.par{display:grid;grid-template-columns:1fr 1fr;gap:.6rem;align-items:center}.pregunta{margin:1rem 0}.pregunta legend{font-weight:600;padding:0 .4rem}
.mut{color:var(--g);font-size:.92rem}.err{color:var(--mal)}.ok{color:var(--ok)}.grande{font-size:1.6rem;font-weight:700;margin:.2rem 0}
.aviso{background:#fef9c3;border:1px solid #ca8a04;border-radius:6px;padding:.6rem .8rem;margin:.6rem 0;color:#422006}
.aviso-zona:empty{display:none}.aviso-zona{margin:.5rem 0}
table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:.45rem;border-bottom:1px solid var(--b);font-size:.93rem;vertical-align:top}th{background:#f1f5f9}
.tabla{overflow-x:auto;margin:.6rem 0}.acciones{white-space:nowrap}.acciones button,.acciones a{margin:.1rem}
.cards{display:flex;gap:.75rem;flex-wrap:wrap;margin:.75rem 0}.card{border:1px solid var(--b);border-radius:8px;padding:.6rem 1rem;min-width:140px;background:#fff}.card b{display:block;font-size:1.4rem}
.tarjetas{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1rem;margin:1rem 0}.tarjeta{border:1px solid var(--b);border-radius:10px;padding:.9rem;background:#fff;display:flex;flex-direction:column;gap:.4rem}
.tarjeta h3{margin:.2rem 0}.portada{width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;border-radius:6px;background:#e2e8f0}.portada[hidden]{display:none}
.etiquetas{display:flex;gap:.4rem;flex-wrap:wrap;margin:.2rem 0}.etq{display:inline-block;padding:.1rem .55rem;border:1px solid var(--b);border-radius:999px;font-size:.82rem;background:#f1f5f9;color:#334155}.etq.oblig{background:#fee2e2;border-color:#b91c1c;color:#7f1d1d}
.estado-publicado{background:#dcfce7;color:#14532d}.estado-archivado{background:#e2e8f0}
.fila{display:flex;gap:1rem;flex-wrap:wrap;align-items:end}.fila>label{flex:1;min-width:150px}.fila .opcion-edit{width:100%;align-items:center}.opcion-edit input[type=text],.opcion-edit input:not([type]){flex:1}
.inline{display:inline-flex;gap:.4rem;align-items:center}.inline select{width:auto}.acciones-fila{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center}
fieldset{border:1px solid var(--b);border-radius:8px;margin:.8rem 0;padding:.6rem 1rem}legend{font-weight:600;padding:0 .4rem}
.modulo{border:1px solid var(--b);border-radius:8px;padding:.7rem 1rem;margin:.8rem 0;background:#fcfdff}.cab-modulo{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}.cab-modulo input{flex:1;min-width:160px}.num{font-weight:700}
.lecciones,.lista-lec{padding-left:1.4rem}.lista-lec li{margin:.35rem 0}.lista-lec li.abierta{background:#eef2ff;border-radius:6px}
.pestanas{display:flex;gap:.4rem;flex-wrap:wrap;margin:1rem 0;border-bottom:1px solid var(--b);padding-bottom:.6rem}
.caja-form,.caja-ia,.caja-res{border:1px solid var(--b);border-radius:8px;padding:.8rem 1rem;margin:1rem 0;background:#fff}.caja-ia{background:#f5f3ff;border-color:#a78bfa}
.dos-columnas{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:1.5rem;align-items:start}.dos-col{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.tutor{border:1px solid var(--b);border-radius:10px;padding:.8rem;background:#fff;position:sticky;top:.5rem}.chat{max-height:340px;overflow-y:auto;margin:.5rem 0}
.msg{padding:.5rem .7rem;border-radius:8px;margin:.4rem 0}.msg.yo{background:#eef2ff}.msg.tutor{background:#f1f5f9;border:0;position:static;padding:.5rem .7rem}.msg.sin-fuente{background:#fff7ed;border:1px solid #c2410c}.citas{font-size:.88rem;margin:.3rem 0 0}
.pasos{display:flex;gap:1rem;flex-wrap:wrap;margin:.4rem 0}.herramientas{display:flex;gap:.6rem;flex-wrap:wrap;align-items:center;margin:.8rem 0}
.visor-pdf{width:100%;height:70vh;border:1px solid var(--b);border-radius:6px}.video{width:100%;max-height:70vh;background:#000;border-radius:6px}.audio{width:100%}
.md{overflow-wrap:anywhere}.md h3,.md h4,.md h5{margin:1rem 0 .3rem}.md code{background:#f1f5f9;padding:.05rem .3rem;border-radius:4px}.pre{white-space:pre-wrap;overflow-wrap:anywhere}.entrega{background:#f8fafc;border:1px solid var(--b);border-radius:6px;padding:.6rem}
.prev{border:1px dashed var(--b);border-radius:6px;padding:.5rem .8rem;min-height:120px;background:#fff}.etiqueta-prev{margin:.6rem 0 .2rem;font-weight:500}
.reloj{position:sticky;top:0;background:#fff;padding:.4rem 0;font-size:1.1rem;z-index:2}.detalle{padding-left:1.2rem}.det{margin:.5rem 0}
.cola{padding-left:1.2rem}.cola li{margin:.5rem 0}
progress{width:100%;height:1rem}.progreso{margin:.4rem 0}code{overflow-wrap:anywhere}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.saltar{position:absolute;left:-999px;top:0;background:#fff;color:#000;padding:.5rem 1rem;z-index:10}.saltar:focus{left:0}
:focus-visible{outline:3px solid #f59e0b;outline-offset:2px}h2:focus,main:focus{outline:none}
.idioma{max-width:720px;margin:.5rem auto 0;text-align:right}.idioma select{width:auto}.estado-cert{font-size:1.3rem}
@media(max-width:800px){.dos-columnas,.dos-col{grid-template-columns:1fr}.tutor{position:static}}
@media(max-width:600px){.caja{margin:.5rem;padding:.8rem}.fila{display:block}.par{grid-template-columns:1fr}button,.btn{min-height:44px}.barra{gap:.5rem}.menu a{padding:.5rem .6rem}.tabla table{font-size:.85rem}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
