/**
 * Página pública de confirmación de asistencia [confirmar_asistencia].
 * Autocontenida — pensada para abrirse desde un link de WhatsApp/correo,
 * mayormente en celular, sin depender de portal.css ni del tema del sitio.
 */
.cacep-pub-wrap {
    --cacep-primary:       #0b5fff;
    --cacep-primary-dark:  #0847c4;
    --cacep-primary-light: #e8effe;
    --cacep-success:       #059669;
    --cacep-success-bg:    #ecfdf5;
    --cacep-danger:        #d9342b;
    --cacep-danger-bg:     #fef2f2;
    --cacep-text:          #1e293b;
    --cacep-muted:         #64748b;
    --cacep-border:        #e2e8f0;
    --cacep-radius:        14px;

    box-sizing: border-box;
    max-width: 480px;
    margin: 2.5rem auto;
    padding: 0 1rem;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    color: var(--cacep-text);
}
.cacep-pub-wrap *, .cacep-pub-wrap *::before, .cacep-pub-wrap *::after { box-sizing: border-box; }

.cacep-pub-card {
    background: #fff;
    border: 1px solid var(--cacep-border);
    border-radius: var(--cacep-radius);
    box-shadow: 0 4px 20px rgba(15, 23, 42, .08);
    padding: 1.75rem 1.5rem;
}
.cacep-pub-card--error { text-align: center; color: var(--cacep-muted); }

.cacep-pub-header { border-bottom: 1px solid var(--cacep-border); padding-bottom: 1.1rem; margin-bottom: 1.1rem; }
.cacep-pub-eyebrow {
    display: block; font-size: .74rem; font-weight: 700; letter-spacing: .06em;
    text-transform: uppercase; color: var(--cacep-primary); margin-bottom: .4rem;
}
.cacep-pub-header h1 { margin: 0 0 .3rem; font-size: 1.3rem; line-height: 1.3; color: var(--cacep-text); }
.cacep-pub-curso { margin: 0 0 .6rem; font-size: .9rem; color: var(--cacep-muted); }
.cacep-pub-meta { display: flex; flex-wrap: wrap; gap: .5rem .9rem; }
.cacep-pub-meta span {
    display: inline-flex; align-items: center; gap: .3rem;
    font-size: .82rem; color: var(--cacep-muted);
}
.cacep-pub-meta svg { flex-shrink: 0; width: 14px; height: 14px; }

.cacep-pub-step label {
    display: block; font-size: .85rem; font-weight: 600; color: var(--cacep-muted);
    margin-bottom: .5rem;
}
.cacep-pub-step input[type="text"],
.cacep-pub-step select {
    width: 100%; padding: .75rem .9rem; border: 1.5px solid var(--cacep-border);
    border-radius: 10px; font-size: 1rem; background: #fff; color: var(--cacep-text);
    margin-bottom: .75rem;
}
.cacep-pub-step input[type="text"]:focus,
.cacep-pub-step select:focus {
    outline: none; border-color: var(--cacep-primary);
    box-shadow: 0 0 0 3px rgba(11, 95, 255, .14);
}

.cacep-pub-btn {
    display: inline-flex; align-items: center; justify-content: center; gap: .4rem;
    width: 100%; padding: .85rem 1rem; border-radius: 10px; border: 1.5px solid transparent;
    font-size: .95rem; font-weight: 700; cursor: pointer; transition: filter .15s, background .15s;
}
.cacep-pub-btn svg { width: 16px; height: 16px; flex-shrink: 0; }
.cacep-pub-btn:disabled { opacity: .6; cursor: default; }
.cacep-pub-btn--primary { background: var(--cacep-primary); color: #fff; }
.cacep-pub-btn--primary:hover:not(:disabled) { background: var(--cacep-primary-dark); }
.cacep-pub-btn--ghost { background: transparent; color: var(--cacep-muted); border-color: var(--cacep-border); }
.cacep-pub-btn--ok  { background: var(--cacep-success-bg); color: #065f46; border-color: #a7f3d0; }
.cacep-pub-btn--ok:hover  { background: var(--cacep-success); color: #fff; }
.cacep-pub-btn--no   { background: var(--cacep-danger-bg); color: #991b1b; border-color: #fecaca; }
.cacep-pub-btn--no:hover  { background: var(--cacep-danger); color: #fff; }

.cacep-pub-botones { display: flex; flex-direction: column; gap: .65rem; margin-top: .25rem; }
.cacep-pub-saludo { margin: 0 0 .3rem; font-size: .95rem; }
.cacep-pub-pregunta { margin: 0 0 .9rem; font-size: 1.05rem; font-weight: 600; }

.cacep-pub-error {
    color: var(--cacep-danger); font-size: .84rem; margin: -.35rem 0 .75rem;
}

#cacep-pub-motivo-wrap { margin-top: 1rem; padding-top: 1rem; border-top: 1px dashed var(--cacep-border); }

.cacep-pub-listo-icono {
    width: 52px; height: 52px; border-radius: 50%;
    background: var(--cacep-success-bg); color: var(--cacep-success);
    display: flex; align-items: center; justify-content: center;
    margin: 0 auto 1rem;
}
.cacep-pub-listo-icono svg { width: 26px; height: 26px; }
#cacep-pub-step-listo { text-align: center; }
#cacep-pub-listo-msg { font-size: 1rem; margin-bottom: 1.1rem; }

@media (max-width: 420px) {
    .cacep-pub-wrap { margin: 1.25rem auto; }
    .cacep-pub-card { padding: 1.35rem 1.15rem; }
}
