:root{--family:#55731d;--family2:#7f982d;--family-bg:#f4f8ed;--ink:#21302a;--muted:#6b7872;--line:#dbe4df;--paper:#fff;--danger:#a62c2c;--ok:#16633d}
*{box-sizing:border-box}body.family-page{margin:0;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:linear-gradient(145deg,var(--family-bg),#fff);color:var(--ink);min-height:100vh}.family-top{background:linear-gradient(135deg,var(--family),var(--family2));color:#fff;padding:18px 20px;box-shadow:0 8px 26px rgba(0,0,0,.12)}.family-top .inner{width:min(1050px,100%);margin:auto;display:flex;justify-content:space-between;align-items:center;gap:15px}.family-top a,.family-top button{color:#fff}.family-top form{display:inline}.family-top button{background:none;border:0;text-decoration:underline;cursor:pointer}.family-wrap{width:min(1050px,100%);margin:auto;padding:24px 18px 50px}.family-hero{background:linear-gradient(135deg,var(--family),var(--family2));color:#fff;border-radius:22px;padding:24px;margin-bottom:18px;box-shadow:0 16px 40px rgba(0,0,0,.12)}.family-hero h1{margin:0 0 6px;font-size:clamp(1.6rem,4vw,2.35rem)}.family-hero p{margin:0;opacity:.9}.family-card{background:#fff;border:1px solid var(--line);border-radius:20px;padding:20px;margin-bottom:16px;box-shadow:0 10px 28px rgba(30,60,45,.06)}.family-card h2,.family-card h3{margin-top:0}.family-note{padding:14px 16px;border-radius:14px;background:#eef6f1;border:1px solid #cce0d3;line-height:1.5;margin-bottom:16px}.family-note.error{background:#fff1f1;border-color:#e2bcbc;color:#7f2020}.family-note.ok{background:#effaf4;border-color:#bfe2ce;color:#175d3b}.family-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.family-field label{display:block;font-weight:800;font-size:.88rem;margin-bottom:6px}.family-field input,.family-field select{width:100%;border:1px solid #cbd8d1;border-radius:11px;padding:11px 12px;font:inherit;background:#fff}.family-field input:focus,.family-field select:focus{outline:none;border-color:var(--family);box-shadow:0 0 0 3px color-mix(in srgb,var(--family) 16%,transparent)}.family-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--family);color:#fff;border:0;border-radius:12px;padding:12px 16px;text-decoration:none;font-weight:850;cursor:pointer}.family-btn.secondary{background:#fff;color:var(--family);border:1px solid var(--family)}.family-btn.large{width:100%;padding:15px 18px;font-size:1rem}.family-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}.family-person{border:1px solid var(--line);border-radius:16px;padding:16px;margin-top:12px;background:#fbfdfc}.family-rel{font-size:.76rem;font-weight:900;letter-spacing:.06em;text-transform:uppercase;color:var(--family)}.family-status{display:inline-block;padding:6px 10px;border-radius:999px;font-size:.78rem;font-weight:900;background:#edf2ef;color:#52615a}.family-status.ok{background:#e6f7ed;color:#17623e}.family-data{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.family-data>div{background:#f7faf8;border-radius:12px;padding:11px}.family-data span{display:block;color:var(--muted);font-size:.75rem;font-weight:800}.family-data strong{display:block;margin-top:3px;word-break:break-word}.family-login{width:min(880px,calc(100% - 28px));margin:46px auto;display:grid;grid-template-columns:1fr 1fr;background:#fff;border:1px solid var(--line);border-radius:26px;overflow:hidden;box-shadow:0 24px 60px rgba(30,60,45,.14)}.family-login-side{padding:38px;background:linear-gradient(150deg,var(--family),var(--family2));color:#fff;display:flex;flex-direction:column;justify-content:center}.family-login-side h1{font-size:2rem;margin:0 0 10px}.family-login-form{padding:38px}.family-login-form h2{margin-top:0}.family-login-form .family-field{margin-bottom:14px}.family-code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-weight:900;letter-spacing:.08em}.family-table{width:100%;border-collapse:collapse}.family-table th,.family-table td{padding:10px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}.family-table th{font-size:.76rem;text-transform:uppercase;color:var(--muted)}.family-confirm{display:flex;gap:10px;align-items:flex-start;padding:14px;border-radius:14px;background:#f1f7f3;border:1px solid #cbded2}.family-confirm input{width:18px;height:18px;margin-top:3px}.family-footer{text-align:center;color:#7b8881;font-size:.82rem;margin-top:26px}@media(max-width:760px){.family-grid,.family-data,.family-login{grid-template-columns:1fr}.family-login{margin:20px auto}.family-login-side,.family-login-form{padding:26px}.family-top .inner{align-items:flex-start;flex-direction:column}.family-table{font-size:.88rem}.family-wrap{padding-inline:12px}}

/* =========================================================
   SAVIO PRIMARIA 2027 · ADAPTACIÓN MÓVIL FAMILIAS
   ========================================================= */

@media (max-width:760px){

    html,body{
        width:100%;
        max-width:100%;
        overflow-x:hidden;
    }

    body.family-page{
        font-size:15px;
    }

    .family-wrap,
    .mw{
        width:100%!important;
        max-width:100%!important;
        padding:12px 10px 28px!important;
        box-sizing:border-box!important;
    }

    .family-top .inner{
        width:100%!important;
        padding:10px 12px!important;
        gap:8px!important;
        flex-wrap:wrap!important;
        box-sizing:border-box!important;
    }

    .family-top strong{
        font-size:14px!important;
    }

    .family-top a,
    .family-top button{
        min-height:42px!important;
        display:inline-flex!important;
        align-items:center!important;
        justify-content:center!important;
    }

    .family-hero,
    .hero,
    .box,
    .family-card{
        width:100%!important;
        max-width:100%!important;
        box-sizing:border-box!important;
        border-radius:14px!important;
        padding:15px!important;
        margin-bottom:11px!important;
    }

    .family-hero h1,
    .hero h1{
        font-size:23px!important;
        line-height:1.12!important;
    }

    .family-hero p,
    .hero p{
        font-size:14px!important;
        line-height:1.4!important;
    }

    /* Grillas pasan a una sola columna */
    .grid,
    .family-grid,
    .family-subgrid{
        grid-template-columns:1fr!important;
        gap:10px!important;
    }

    /* Datos del alumno/responsables */
    .family-data{
        grid-template-columns:1fr!important;
        gap:10px!important;
    }

    .family-data > div{
        min-width:0!important;
    }

    /* Foto legajo */
    .photo-box{
        grid-template-columns:1fr!important;
        text-align:center!important;
    }

    .photo-box img{
        width:130px!important;
        height:165px!important;
        margin:auto!important;
    }

    /* Autorizados retiro */
    .ret-row{
        grid-template-columns:1fr!important;
        gap:7px!important;
        padding:10px!important;
        border:1px solid #dce5e0!important;
        border-radius:12px!important;
        margin-bottom:10px!important;
    }

    .ret-row small{
        grid-column:auto!important;
    }

    /* Inputs */
    input,
    select,
    textarea{
        width:100%!important;
        max-width:100%!important;
        box-sizing:border-box!important;
        font-size:16px!important; /* evita zoom automático iPhone */
    }

    input[type="checkbox"],
    input[type="radio"]{
        width:auto!important;
        min-width:20px!important;
        min-height:20px!important;
    }

    /* Botones cómodos para dedo */
    .btn,
    button,
    input[type="submit"]{
        min-height:48px!important;
        font-size:15px!important;
        padding:11px 14px!important;
        box-sizing:border-box!important;
    }

    /* Matrícula */
    .doc{
        width:100%!important;
        box-sizing:border-box!important;
        padding:14px!important;
        border-radius:13px!important;
    }

    .doc h3{
        font-size:17px!important;
        line-height:1.25!important;
    }

    .doc .file{
        width:100%!important;
        max-width:100%!important;
        margin:8px 0!important;
    }

    .savio-upload-form{
        width:100%!important;
    }

    .savio-upload-form button,
    .savio-final-send button{
        width:100%!important;
        margin-top:8px!important;
    }

    .upload-done-badge,
    .upload-pending-badge,
    .savio-upload-status{
        width:100%!important;
        box-sizing:border-box!important;
    }

    /* Descargas institucionales */
    .dl{
        display:flex!important;
        flex-direction:column!important;
        align-items:stretch!important;
        gap:9px!important;
        width:100%!important;
        box-sizing:border-box!important;
    }

    .dl .btn,
    .dl a.btn{
        width:100%!important;
        justify-content:center!important;
        text-align:center!important;
    }

    /* Checks finales */
    .check{
        display:flex!important;
        align-items:flex-start!important;
        gap:10px!important;
        line-height:1.35!important;
    }

    .check span{
        flex:1!important;
        min-width:0!important;
    }

    /* mensajes */
    .ok,
    .warn,
    .err,
    .family-note,
    .steps-note{
        width:100%!important;
        box-sizing:border-box!important;
        font-size:14px!important;
        line-height:1.4!important;
    }

    /* Envío final */
    .savio-final-wait{
        padding:16px 12px!important;
    }

    .savio-final-wait strong{
        font-size:16px!important;
    }

    /* textos largos, correos, códigos */
    .meta,
    .small,
    .obs,
    .back{
        overflow-wrap:anywhere!important;
        word-break:break-word!important;
    }
}

@media (max-width:480px){

    .family-wrap,
    .mw{
        padding:9px 8px 24px!important;
    }

    .family-hero,
    .hero,
    .box,
    .family-card{
        padding:13px!important;
        border-radius:12px!important;
    }

    .family-hero h1,
    .hero h1{
        font-size:21px!important;
    }

    .btn,
    button,
    input[type="submit"]{
        width:100%;
    }

    .family-top .inner{
        align-items:stretch!important;
    }

    .family-top .inner > div{
        width:100%!important;
    }
}
