*{box-sizing:border-box}
:root{--red:#e53935;--red-dark:#c62828;--black:#1d1d1f;--text:#242424;--muted:#666;--border:#dedede;--soft:#f8f8f8}
html{font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:#f4f4f4;color:var(--text)}
body{margin:0}
.app{max-width:760px;margin:0 auto;padding:14px 14px 50px}
.site-header{background:#fff;border-top:4px solid var(--red);border-bottom:1px solid #e5e5e5;border-radius:0 0 12px 12px;padding:12px 18px;display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:12px}
.header-brand{display:flex;align-items:center;gap:13px;min-width:0}
.header-brand img{width:132px;height:auto;display:block}
.header-info{display:flex;flex-direction:column;gap:2px;line-height:1.25}
.header-info strong{font-size:15px;color:var(--black)}
.header-info span{font-size:12px;color:#666}
.header-course{font-size:12px;font-weight:800;color:var(--red);white-space:nowrap}
.hero{background:var(--black);color:#fff;border-radius:12px;padding:24px 22px;margin-bottom:12px;border-left:5px solid var(--red)}
.eyebrow{font-size:12px;font-weight:800;letter-spacing:1.4px;color:#ff6b68;margin-bottom:4px}
.hero h1{font-size:30px;margin:4px 0 7px}
.hero p{margin:0;line-height:1.5;color:#eee}
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;margin:10px 0 14px}
.steps span{font-size:12px;text-align:center;padding:9px 3px;border-radius:9px;background:#e7e7e7;color:#666}
.steps .active{background:#ffe3e2;color:var(--red-dark);font-weight:700}
.card{background:#fff;border-radius:12px;padding:24px;box-shadow:0 3px 16px rgba(0,0,0,.06)}
h2{margin:0 0 22px;font-size:25px;color:var(--black)}
h3{margin:0 0 8px}
label{display:block;font-weight:650;margin:0 0 18px}
input[type=text],input[type=date],input[type=tel],input[type=email]{width:100%;margin-top:7px;border:1px solid #cfcfcf;border-radius:9px;padding:14px;font:inherit;font-size:16px;background:#fff;color:var(--text)}
input:focus{outline:2px solid rgba(229,57,53,.2);border-color:var(--red)}
fieldset{border:0;padding:0;margin:25px 0}
legend{font-size:18px;font-weight:750;margin-bottom:12px}
.levels{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}
.choice{margin:0;position:relative}
.choice input{position:absolute;opacity:0}
.choice span{display:block;text-align:center;border:2px solid #d8d8d8;border-radius:10px;padding:13px 6px;background:#fff;cursor:pointer;color:#333}
.choice input:checked+span{border-color:var(--red);background:#fff1f0;color:var(--red-dark);font-weight:750}
.compact{grid-template-columns:repeat(3,1fr)}
.checks{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.check{display:flex;align-items:center;gap:10px;border:2px solid #ddd;border-radius:10px;padding:14px;margin:0;font-weight:600;background:#fff}
.check input{width:20px;height:20px;accent-color:var(--red)}
.important{background:#fff4f3;border-left:5px solid var(--red);border-radius:9px;padding:15px 16px;line-height:1.5;margin:18px 0}
.note,.small{color:#666;line-height:1.5}
.actions{display:flex;justify-content:flex-end;gap:10px;margin-top:25px}
.button{border:0;border-radius:9px;padding:14px 22px;background:var(--red);color:#fff;font:700 16px inherit;cursor:pointer;text-decoration:none}
.button:hover{background:var(--red-dark)}
.button.secondary{background:#ededed;color:#333}
.summary{border:1px solid #ddd;border-radius:10px;padding:15px;margin:12px 0}
.summary p{margin:5px 0}
.privacy{display:flex;gap:10px;align-items:flex-start;font-weight:500}
.privacy input{width:20px;height:20px;flex:0 0 auto;accent-color:var(--red)}
.success{text-align:center;padding:35px 25px}
.success-icon{width:62px;height:62px;border-radius:50%;background:#ffe5e4;color:var(--red);font-size:40px;line-height:62px;margin:0 auto 16px}
.success h1{margin:0 0 15px}
.success p{line-height:1.55}
.request-number{display:inline-block;margin-top:12px;background:#f5f5f5;border-radius:9px;padding:10px 14px;font-weight:700}
@media(max-width:600px){
 .app{padding:8px 9px 35px}
 .site-header{padding:10px 12px;align-items:flex-start}
 .header-brand{gap:9px}
 .header-brand img{width:105px}
 .header-info strong{font-size:13px}
 .header-info span{font-size:11px}
 .header-course{font-size:10px}
 .hero{padding:20px 17px}
 .hero h1{font-size:27px}
 .card{padding:19px 16px}
 .levels{grid-template-columns:repeat(2,1fr)}
 .checks{grid-template-columns:1fr}
 .steps span{font-size:10px}
 .actions{justify-content:stretch}
 .button{flex:1;text-align:center}
 .compact{grid-template-columns:1fr 1fr}
}


/* v21 — botones finales robustos en móvil */
.final-actions{
    display:flex;
    flex-direction:column;
    width:100%;
    gap:12px;
    margin-top:24px;
}
.final-actions .button{
    display:block;
    width:100%;
    min-width:0;
    box-sizing:border-box;
    flex:none;
    text-align:center;
}
.add-student-button{
    order:1;
    background:#c62828 !important;
    color:#fff !important;
    border:0 !important;
    min-height:58px;
    font-size:16px;
    font-weight:850;
}
.submit-button{
    order:2;
    min-height:68px;
    margin-top:0;
    font-size:19px;
    font-weight:900;
    box-shadow:0 2px 0 rgba(0,0,0,.08);
}
@media(max-width:700px){
    .final-actions{width:100%;gap:12px;margin-top:6px}
    .final-actions .button{
        width:100%;
        min-width:0;
        margin:0;
        padding-left:12px;
        padding-right:12px;
    }
    .add-student-button{min-height:58px;font-size:15px}
    .submit-button{min-height:68px;font-size:18px}
}
