.cp-public{margin:0;background:#f1ece2;color:#0d212f;font-family:system-ui,sans-serif;line-height:1.6}.cp-wrap{max-width:850px;margin:40px auto;padding:0 20px}.cp-eyebrow{color:#056d84;font-weight:700}.cp-wrap h1{font-size:clamp(1.7rem,4vw,2.5rem);line-height:1.2}.cp-card{background:#fff;border:1px solid #dbe2e5;border-radius:14px;padding:24px;margin:20px 0}.cp-card h2{font-size:1.2rem;margin:16px 0}.cp-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.cp-card label{display:block;font-weight:600;margin:12px 0}.cp-card input:not([type=checkbox]),.cp-card select{display:block;box-sizing:border-box;width:100%;padding:11px;border:1px solid #a8b7c0;border-radius:7px;margin-top:5px;font:inherit;background:white;color:#0d212f}.cp-card small{display:block;font-weight:400;color:#4c606c}.cp-card button,.cp-button{display:inline-block;border:0;border-radius:7px;background:#056d84;color:white;padding:10px 16px;font:inherit;font-weight:600;cursor:pointer;text-decoration:none;margin:3px}.cp-card button:disabled{opacity:.55;cursor:wait}.cp-card .cp-secondary{background:#e8f1f4;color:#056d84}.cp-alert{padding:16px;background:#dff3e9;border-left:4px solid #168451;border-radius:6px}.cp-error{background:#fff0f0;border-color:#db2a54}.cp-card table{width:100%;border-collapse:collapse}.cp-card th,.cp-card td{padding:12px;border-bottom:1px solid #e0e5e9;text-align:left;vertical-align:top}.cp-scroll{overflow:auto}.cp-inline{display:inline}.cp-inline button{font-size:.85rem;padding:7px 10px}.cp-checks{display:flex;gap:15px;flex-wrap:wrap}.cp-checks label{font-size:.9rem;font-weight:400}.cp-card fieldset{border:1px solid #dbe2e5;border-radius:8px}.cp-muted{color:#526472;font-size:.9rem}.cp-status{display:inline-block;background:#eef2f5;border-radius:4px;padding:2px 7px}.cp-public a{color:#056d84}.cp-public .cp-button{color:#fff}footer{margin:24px 0}@media(max-width:650px){.cp-grid{grid-template-columns:1fr}.cp-wrap{margin:20px auto}.cp-card{padding:16px}}

/* ============================================================
   Mejoras de formulario y agenda (admin) + recurrencia
   ============================================================ */
.cp-form-crear fieldset{margin:16px 0;padding:14px 16px}
.cp-form-crear legend{font-weight:700;color:#056d84;padding:0 6px}
.cp-form-crear .cp-checks label{display:inline-flex;align-items:center;gap:7px;padding:8px 12px;border:1px solid #cdd8dd;border-radius:999px;background:#f8fafb;cursor:pointer;transition:border-color .15s,background .15s}
.cp-form-crear .cp-checks label:hover{border-color:#056d84}
.cp-form-crear .cp-checks input:checked+*,.cp-form-crear .cp-checks label:has(input:checked){border-color:#056d84;background:#e8f1f4;color:#044c5c;font-weight:600}
.cp-check-inline{display:inline-flex!important;align-items:center;gap:9px;font-weight:600;margin:4px 0!important}
.cp-check-inline input{width:auto!important;margin:0!important}
.cp-recurrencia{background:#f8fafb}
#cpRecurrenciaCampos{margin-top:12px;padding-top:12px;border-top:1px dashed #cdd8dd}
#cpRecurrenciaCampos[hidden]{display:none}
.cp-recurrencia .cp-checks label{padding:6px 12px}

/* Agenda: filas más legibles y estado de inscripciones a la vista */
.cp-card table th{background:#f4f7f8;font-size:.82rem;text-transform:uppercase;letter-spacing:.4px;color:#4c606c}
.cp-card tbody tr:hover{background:#f8fafb}
.cp-badge-abierto,.cp-badge-cerrado{display:inline-block;font-size:.72rem;font-weight:700;padding:2px 9px;border-radius:999px}
.cp-badge-abierto{background:#dff3e9;color:#168451}
.cp-badge-cerrado{background:#f1e3e3;color:#a12b3f}
/* Botón de borrado: color de peligro para diferenciarlo de las acciones normales. */
.cp-card .cp-danger,.cp-danger{background:#db2a54;color:#fff}
.cp-card .cp-danger:hover{background:#b71f43}

/* ============================================================
   Panel de asistencia (admin)
   ============================================================ */
/* Resumen en chips: lectura rápida del estado del curso. */
.cp-resumen{list-style:none;display:flex;flex-wrap:wrap;gap:10px;padding:0;margin:14px 0}
.cp-resumen li{display:flex;flex-direction:column;align-items:center;min-width:78px;padding:8px 12px;background:#f2f5f7;border:1px solid #e0e5e9;border-radius:10px;font-size:.78rem;font-weight:600;color:#4c606c;line-height:1.2}
.cp-resumen li span{font-size:1.3rem;font-weight:800;color:#0d212f}
.cp-resumen .cp-r-pend{background:#fff6e6;border-color:#f0d9a8}.cp-resumen .cp-r-pend span{color:#8a5a00}
.cp-resumen .cp-r-conf{background:#eaf1fb;border-color:#c3d6f2}.cp-resumen .cp-r-conf span{color:#1d4e9c}
.cp-resumen .cp-r-asis{background:#dff3e9;border-color:#a9dcc2}.cp-resumen .cp-r-asis span{color:#168451}
.cp-resumen .cp-r-aus{background:#fdeaea;border-color:#f2c0c0}.cp-resumen .cp-r-aus span{color:#a12b3f}
.cp-resumen .cp-r-cert{background:#eef0f5;border-color:#d3d8e4}.cp-resumen .cp-r-cert span{color:#3a3f66}
.cp-buscar{display:flex;align-items:flex-end;gap:10px;flex-wrap:wrap;margin:10px 0}
.cp-buscar label{margin:0}
/* Casilla de asistencia grande y clara para tomar lista con el dedo en tablet. */
.cp-td-check{text-align:center;vertical-align:middle}
.cp-check-asis{display:inline-block;cursor:pointer;margin:0}
.cp-check-asis input{position:absolute;opacity:0;width:0;height:0}
.cp-check-asis span{display:inline-block;width:30px;height:30px;border:2px solid #a8b7c0;border-radius:8px;background:#fff;position:relative;transition:.12s}
.cp-check-asis input:checked+span{background:#168451;border-color:#168451}
.cp-check-asis input:checked+span::after{content:"";position:absolute;left:9px;top:4px;width:7px;height:14px;border:solid #fff;border-width:0 3px 3px 0;transform:rotate(45deg)}
.cp-check-asis input:focus-visible+span{outline:2px solid #056d84;outline-offset:2px}
/* Barra de guardar asistencia, fija al fondo para no perderla en listas largas. */
.cp-asis-guardar{position:sticky;bottom:0;display:flex;align-items:center;gap:14px;flex-wrap:wrap;background:#fff;border-top:1px solid #e0e5e9;padding:14px 2px;margin-top:6px}
.cp-asis-guardar .cp-primary{background:#168451;font-size:1rem;padding:12px 22px}
.cp-asis-guardar .cp-primary:hover{background:#0f6b40}
@media(max-width:650px){.cp-resumen li{min-width:64px;padding:6px 9px}}

/* ============================================================
   Mejoras de UX del formulario público de inscripción
   ============================================================ */
.cp-public header{margin-bottom:8px}
.cp-public header h1{margin:6px 0}
.cp-public .cp-card h2{display:flex;align-items:center;gap:10px;font-size:1.15rem;color:#0d212f;padding-bottom:10px;border-bottom:1px solid #eef2f4;margin:4px 0 18px}
/* Numera los pasos con un círculo, tomando el "1." / "2." / "3." del texto no hace falta:
   se usa un contador para que el número quede en un círculo y el texto quede limpio. */
.cp-public form.cp-card{counter-reset:cp-paso}
.cp-public form.cp-card h2{counter-increment:cp-paso}
.cp-public form.cp-card h2::before{content:counter(cp-paso);flex:0 0 auto;width:28px;height:28px;border-radius:50%;background:#056d84;color:#fff;font-size:.95rem;font-weight:700;display:inline-flex;align-items:center;justify-content:center}
.cp-public .cp-card input:not([type=checkbox]):focus,.cp-public .cp-card select:focus{outline:none;border-color:#056d84;box-shadow:0 0 0 3px rgba(5,109,132,.15)}
.cp-public .cp-card button[type=submit]{width:100%;padding:14px;font-size:1.05rem;margin-top:18px}
.cp-public #cp-cupos{font-size:.9rem;color:#056d84;font-weight:600;margin-top:6px}
.cp-public #cp-documentos:empty::after{content:"Elegí tipo y modalidad para ver la documentación requerida.";color:#8a99a3;font-size:.9rem}
.cp-doc-item{display:flex;flex-direction:column;gap:4px;padding:12px;border:1px solid #e0e5e9;border-radius:9px;margin:10px 0;background:#fbfcfd}

/* Calendario de horarios (inscripción pública) */
.cp-calendario{margin:6px 0 14px;padding:14px;border:1px solid #dbe2e5;border-radius:12px;background:#fafcfd}
.cp-calendario button{font:inherit;cursor:pointer;border-radius:8px;border:1px solid transparent}
.cp-cal-cab{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;text-transform:capitalize}
.cp-cal-cab button{padding:6px 14px;font-size:1.2rem;background:#e8f1f4;color:#056d84}
.cp-cal-cab button:disabled{opacity:.4;cursor:default}
.cp-cal-grilla{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.cp-cal-dow{text-align:center;font-size:.8rem;font-weight:700;color:#526472}
.cp-calendario .cp-cal-dia{padding:10px 0;background:transparent;color:#9aa8b1;font-weight:600;cursor:default}
.cp-calendario .cp-cal-dia.disponible{background:#dff3e9;color:#0d5c3a;border-color:#9ad6b8;cursor:pointer}
.cp-calendario .cp-cal-dia.elegido,.cp-calendario .cp-cal-hora.elegido{background:#056d84;color:#fff;border-color:#056d84}
.cp-cal-horas{margin-top:12px}
.cp-calendario .cp-cal-hora{display:block;width:100%;text-align:left;margin:6px 0;padding:10px 12px;background:#fff;color:#0d212f;border-color:#a8b7c0}
.cp-calendario .cp-muted{color:#526472;font-size:.9rem}

/* Calendario de próximos cursos (panel) */
.cp-calendario .cp-cal-dia.hoy{outline:2px solid #056d84;outline-offset:-2px}
.cp-cal-fila{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;padding:10px 0;border-bottom:1px solid #e0e5e9}

.cp-calendario .cp-cal-dia{position:relative}
.cp-cal-num{display:block;margin:2px auto 0;min-width:22px;padding:1px 7px;border-radius:999px;background:#056d84;color:#fff;font-size:.78rem;font-weight:700;line-height:1.4}
.cp-cal-num.cero{background:#c5d2d8;color:#41525d}
.cp-cal-num.pend{background:#db2a54}
.cp-calendario .cp-cal-dia.elegido .cp-cal-num{background:#fff;color:#056d84}
