:root{--rojo:#d0021b;--rojo-osc:#a30015;--gris:#4a4f55;--gris-cl:#f3f4f6;--borde:#e2e4e8;--texto:#1f2328;--muted:#6b7280;--verde:#0f7b3f}
*{box-sizing:border-box}
body{margin:0;font:15px/1.45 system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;color:var(--texto);background:#f6f6f7}
a{color:var(--rojo-osc)}
.top{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 24px;background:#fff;border-bottom:3px solid var(--rojo)}
.marca{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--gris)}
.marca img{height:44px}
.marca b{font-size:22px;letter-spacing:.5px;color:var(--gris)}.marca b span{color:var(--rojo)}
.marca small{color:var(--muted);font-size:13px;border-left:1px solid var(--borde);padding-left:12px}
.top nav{display:flex;gap:4px;flex-wrap:wrap}
.top nav a{text-decoration:none;color:var(--gris);padding:8px 12px;border-radius:6px;font-weight:600}
.top nav a:hover{background:var(--gris-cl)}
main{max-width:1280px;margin:0 auto;padding:20px}
footer{text-align:center;color:var(--muted);font-size:12px;padding:24px}
.card{background:#fff;border:1px solid var(--borde);border-radius:10px;padding:18px 20px;margin-bottom:18px}
.card.estrecha{max-width:480px;margin:30px auto}
h1{font-size:22px;margin:0 0 6px}h2{font-size:18px;margin:0 0 12px}h3{font-size:15px;margin:16px 0 8px}
.sub{color:var(--muted);margin:0 0 14px}.muted{color:var(--muted)}small{font-weight:normal}
.grid2{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:18px;align-items:start}
@media(max-width:900px){.grid2{grid-template-columns:1fr}}
.form{display:grid;gap:12px}
.form.dos{grid-template-columns:1fr 1fr}.form.dos .btn{grid-column:1/-1;justify-self:start}
.form.en-linea{grid-template-columns:1fr auto;margin-bottom:14px}
.fila3{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
label{display:grid;gap:4px;font-weight:600;font-size:14px}
input,select,textarea{font:inherit;padding:8px 10px;border:1px solid #cfd3d9;border-radius:6px;background:#fff;width:100%}
input:focus,select:focus,textarea:focus{outline:2px solid #f3b0b8;border-color:var(--rojo)}
textarea{font-family:ui-monospace,Consolas,monospace;font-size:13px;margin-bottom:8px}
label.check{display:flex;align-items:center;gap:8px;font-weight:normal}label.check input{width:auto}
.btn{display:inline-block;background:var(--rojo);color:#fff;border:0;border-radius:6px;padding:9px 16px;font:inherit;font-weight:600;cursor:pointer;text-decoration:none}
.btn:hover{background:var(--rojo-osc)}.btn.grande{width:100%;padding:12px;font-size:16px}
.btn.sec{background:#fff;color:var(--gris);border:1px solid #cfd3d9}.btn.sec:hover{background:var(--gris-cl)}
.link{background:none;border:0;padding:0;font:inherit;color:var(--rojo-osc);cursor:pointer;text-decoration:underline}
.peligro{color:#b42318}
.alerta{padding:10px 14px;border-radius:8px;margin:0 0 14px;border:1px solid}
.alerta.ok{background:#ecfdf3;border-color:#a6e9c0;color:#05603a}
.alerta.error{background:#fef3f2;border-color:#fecdca;color:#b42318}
.alerta.aviso{background:#fffaeb;border-color:#fedf89;color:#93370d}
.tabla{width:100%;border-collapse:collapse;font-size:14px}
.tabla th{text-align:left;background:var(--gris-cl);color:var(--gris);font-size:12px;text-transform:uppercase;letter-spacing:.3px}
.tabla th,.tabla td{padding:7px 8px;border-bottom:1px solid var(--borde);vertical-align:middle}
.tabla.compacta input{padding:5px 7px}
.tabla .c{text-align:center}.mono{font-family:ui-monospace,Consolas,monospace}
.tabla tr.bloq td{color:#9aa0a6;background:#fafafa}
.acciones{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.acciones form{margin:0}
.scroll{overflow-x:auto}
.chip{display:inline-block;padding:2px 8px;border-radius:99px;font-size:12px;font-weight:700;background:var(--gris-cl);color:var(--gris);white-space:nowrap}
.chip.rojo{background:#fde8ea;color:var(--rojo-osc)}
.chip.aprobado{background:#dcfae6;color:var(--verde)}.chip.pendiente{background:#fef0c7;color:#93370d}
.chip.no-apto,.chip.desaprobado{background:#fee4e2;color:#b42318}
.cabecera-curso{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;align-items:center;border-left:5px solid var(--rojo)}
.contadores{display:flex;gap:18px;flex-wrap:wrap}.contadores span{color:var(--muted)}.contadores b{font-size:22px;color:var(--texto);display:block}
.contadores .verde b{color:var(--verde)}.contadores .rojo b{color:#b42318}
.tabs{display:flex;gap:4px;margin-bottom:14px;flex-wrap:wrap;border-bottom:2px solid var(--borde)}
.tabs a{padding:9px 14px;text-decoration:none;color:var(--gris);font-weight:600;border-bottom:3px solid transparent;margin-bottom:-2px}
.tabs a.activa{color:var(--rojo-osc);border-color:var(--rojo)}
.celda{border:0;border-radius:6px;padding:5px 8px;font:inherit;font-size:13px;cursor:pointer;min-width:58px}
.celda.si{background:#dcfae6;color:var(--verde);font-weight:700}.celda.no{background:#f3f4f6;color:#9aa0a6}
.celda:hover{outline:2px solid var(--rojo)}
input.nota{width:58px;text-align:center;padding:5px}input.nota.baja{background:#fee4e2;color:#b42318;font-weight:700}
.checks{border:1px solid var(--borde);border-radius:8px;padding:10px 12px;display:grid;gap:6px;max-height:380px;overflow:auto}
.checks legend{font-weight:700;padding:0 6px}
.insp{border:1px solid var(--borde);border-radius:8px;padding:10px 14px;margin-bottom:12px}.insp ol{margin:6px 0;padding-left:22px}
.captura{max-width:100%;max-height:200px;border:1px solid var(--borde);border-radius:6px;margin:6px 0}
.docs{padding-left:18px;margin:0 0 10px}.docs li{margin:4px 0}
.emitir{display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin-bottom:12px}
.img-ajuste{display:flex;gap:12px;align-items:end;flex-wrap:wrap}.img-ajuste img{max-height:56px;max-width:160px;border:1px dashed var(--borde);padding:4px}
.verif{border-radius:10px;padding:14px 18px;border:2px solid}.verif.valido{border-color:#a6e9c0;background:#f6fef9}.verif.anulado{border-color:#fecdca;background:#fef3f2}
.verif .estado{font-weight:800;margin:0 0 8px}.verif.valido .estado{color:var(--verde)}.verif.anulado .estado{color:#b42318}
.verif dl{display:grid;grid-template-columns:110px 1fr;gap:4px 10px;margin:0}.verif dt{color:var(--muted)}.verif dd{margin:0}
.nota-pie{text-align:center;margin:16px 0 0;font-size:13px}
.corto{width:70px}
/* ---- v2: página pública, pagos, interesados ---- */
.badge{display:inline-block;background:var(--rojo);color:#fff;border-radius:99px;font-size:11px;padding:1px 7px;margin-left:3px;vertical-align:1px}
.c{text-align:center}.ancho{grid-column:1/-1}.pre{white-space:normal}
.card.estrecha.ancha{max-width:720px}
.hero{text-align:center;padding:26px 14px 10px}.hero img{height:84px;max-width:90%}
.hero h1{font-size:26px;margin:14px 0 6px}.hero p{color:var(--muted);margin:0}
.catalogo{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:18px;margin:22px 0}
.curso-card{display:flex;flex-direction:column;gap:6px;background:#fff;border:1px solid var(--borde);border-top:4px solid var(--rojo);border-radius:10px;padding:18px;text-decoration:none;color:inherit;transition:box-shadow .15s}
.curso-card:hover{box-shadow:0 6px 20px rgba(0,0,0,.08)}.curso-card h2{margin:4px 0 0;font-size:20px}.curso-card .btn{margin-top:auto;text-align:center}
.curso-card .chip{align-self:flex-start}
.datos-curso{display:flex;flex-wrap:wrap;gap:6px;list-style:none;padding:0;margin:4px 0}
.datos-curso li{background:var(--gris-cl);border-radius:6px;padding:4px 9px;font-size:13px}
.datos-curso.grande li{font-size:15px;padding:7px 12px;background:#fff;border:1px solid var(--borde)}
.precio{font-size:24px;font-weight:800;color:var(--rojo-osc);margin:4px 0}.precio.grande{font-size:34px}
.prox{font-size:14px;margin:0 0 6px}
.btn.wa{background:#1fa855}.btn.wa:hover{background:#178a45}
.ficha{max-width:1000px;margin:0 auto}
.ficha-cab{background:#fff;border:1px solid var(--borde);border-left:6px solid var(--rojo);border-radius:10px;padding:22px;margin-bottom:18px}
.ficha-cab h1{font-size:28px;margin:8px 0}
.cta{display:flex;gap:10px;margin-top:14px;flex-wrap:wrap}.cta .btn.grande{width:auto;flex:1;min-width:150px;text-align:center}
.ficha-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}@media(max-width:800px){.ficha-grid{grid-template-columns:1fr}.form.dos{grid-template-columns:1fr}}
.fechas{padding-left:18px}.fechas li{margin-bottom:8px}.mods{padding-left:22px}.mods li{margin:3px 0}
details{border-bottom:1px solid var(--borde);padding:10px 0}summary{font-weight:700;cursor:pointer}details p{margin:8px 0 0}
.trampa{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
.saldos{display:flex;gap:22px;flex-wrap:wrap;margin:8px 0 12px}.saldos span{color:var(--muted);font-size:13px}.saldos b{display:block;font-size:20px;color:var(--texto)}
.saldos b.verde,.verde-t{color:var(--verde)}.saldos b.rojo,.rojo-t{color:#b42318}
.contadores .ambar b{color:#b54708}
.cuenta{border:1px solid var(--borde);border-radius:10px;padding:12px 16px;margin-bottom:14px}.cuenta h2{margin:0}
.voucher{display:flex;gap:14px;border:1px solid var(--borde);border-radius:8px;padding:10px;margin-bottom:10px;align-items:flex-start}
.voucher img{width:110px;height:140px;object-fit:cover;border-radius:6px;border:1px solid var(--borde)}.voucher p{margin:0 0 6px}
.voucher form input{max-width:260px}
.interesado{display:flex;justify-content:space-between;gap:16px;border-bottom:1px solid var(--borde);padding:12px 0;flex-wrap:wrap}.interesado p{margin:0 0 4px}
.acciones.col{flex-direction:column;align-items:flex-end}
.en-fila{display:flex;gap:6px;align-items:center;margin:0}.en-fila select,.en-fila input{width:auto}
.chip.pagado,.chip.inscrito,.chip.sin-costo{background:#dcfae6;color:var(--verde)}
.chip.matriculado,.chip.contactado{background:#e0eaff;color:#2948a3}
.chip.pago-parcial,.chip.con-deuda,.chip.nuevo{background:#fef0c7;color:#93370d}
.chip.sin-pago,.chip.observado,.chip.descartado{background:#fee4e2;color:#b42318}
@media(max-width:640px){main{padding:12px}.top{padding:8px 12px;flex-wrap:wrap}.top nav a{padding:6px 8px;font-size:14px}.marca small{display:none}}
.ficha-cab .chip{white-space:normal}
/* ---- v3: aula virtual y exámenes ---- */
.wa-mini{font-size:12px;margin-left:6px;color:#178a45}
.ambar-t{color:#b54708}
.aula{display:grid;grid-template-columns:300px minmax(0,1fr);gap:18px;align-items:start}
@media(max-width:860px){.aula{grid-template-columns:1fr}}
.aula-mods{background:#fff;border:1px solid var(--borde);border-radius:10px;overflow:hidden}
.aula-mods a{display:flex;gap:10px;padding:10px 12px;text-decoration:none;color:inherit;border-bottom:1px solid var(--borde);font-size:14px}
.aula-mods a.activa{background:#fde8ea;border-left:4px solid var(--rojo)}
.aula-mods .num{flex:0 0 26px;height:26px;border-radius:50%;background:var(--gris-cl);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:13px}
.aula-mods a.activa .num{background:var(--rojo);color:#fff}
.aula-contenido{background:#fff;border:1px solid var(--borde);border-radius:10px;padding:18px 20px}
.leccion{border:1px solid var(--borde);border-radius:10px;padding:14px;margin:12px 0}.leccion h3{margin:0 0 8px}
.leccion.vista{border-color:#a6e9c0}.leccion.vista h3{color:var(--verde)}
.video{position:relative;padding-top:56.25%;border-radius:8px;overflow:hidden;background:#000;margin-bottom:8px}
.video iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.mini-video{position:relative;width:220px;padding-top:124px;margin-top:6px}.mini-video iframe{position:absolute;inset:0;width:100%;height:100%;border:0;border-radius:6px}
.examen-card{border-left:5px solid var(--rojo)}
.examen{max-width:820px;margin:0 auto}
.reloj{position:sticky;top:0;z-index:3;background:#111;color:#fff;font-weight:800;font-size:18px;padding:8px 14px;border-radius:8px;display:inline-block;margin-bottom:10px}
.reloj.urgente{background:var(--rojo)}
.pregunta{border:1px solid var(--borde);border-radius:10px;padding:12px 14px;margin:0 0 12px}.pregunta legend{font-weight:700;padding:0 4px}
.opcion{display:flex;gap:10px;align-items:flex-start;font-weight:normal;padding:7px 4px;border-radius:6px;cursor:pointer}.opcion:hover{background:var(--gris-cl)}
.opcion input{width:auto;margin-top:3px}
.resultado{text-align:center;border-radius:12px;padding:18px;margin:10px 0}.resultado b{font-size:44px;display:block}
.resultado.aprob{background:#ecfdf3;color:var(--verde)}.resultado.desap{background:#fef3f2;color:#b42318}.resultado p{margin:2px 0}
.reglas li{margin:6px 0}
.lecciones-adm{padding-left:20px}.lecciones-adm>li{display:flex;justify-content:space-between;gap:10px;border-bottom:1px solid var(--borde);padding:8px 0}
.preg-adm{padding-left:20px}.preg-adm>li{margin-bottom:10px}.preg-adm ul{margin:4px 0;padding-left:18px;list-style:none}.preg-adm li.correcta{color:var(--verde);font-weight:700}
form.inline{display:inline}
@media(max-width:860px){.aula-contenido{order:-1}}
/* ---- simulacro ---- */
.simulacro{max-width:760px;margin:0 auto}
.sim-barra{position:sticky;top:0;z-index:3;display:flex;gap:14px;align-items:center;background:#fff;padding:6px 0 10px}
.sim-barra .reloj{position:static;margin:0}
.progreso{flex:1}.progreso span{font-size:13px;color:var(--muted);font-weight:700}.progreso div{height:8px;background:var(--gris-cl);border-radius:99px;overflow:hidden;margin-top:4px}
.progreso i{display:block;height:100%;width:0;background:var(--rojo);transition:width .2s}
.nav-sim{display:flex;justify-content:space-between;gap:10px;margin-top:10px}
.revision .op{padding:5px 8px;border-radius:6px;margin:2px 0}.revision .op.ok{background:#dcfae6;color:var(--verde);font-weight:700}.revision .op.mal{background:#fee4e2;color:#b42318}
tr.sel td{background:#fff5f6}
.banner-sim{display:flex;gap:14px;align-items:center;flex-wrap:wrap;background:#111;color:#fff;border-radius:10px;padding:14px 18px;text-decoration:none;margin:10px 0}.banner-sim span:not(.btn){flex:1;min-width:200px}
[hidden]{display:none!important}
