﻿/* Login visual final del Portal de Apoderados. No afecta guardianLifeView. */
:root {
    --guardian-purple: #18bca7;
    --guardian-purple-dark: #0f7f73;
    --guardian-blue: #0c2a73;
    --guardian-blue-dark: #061e57;
    --guardian-orange: #ff981f;
    --guardian-green: #56b750;
    --guardian-pink: #ef4f78;
    --guardian-cyan: #0ba8b7;
    --guardian-card: rgba(255, 255, 255, .9);
    --guardian-line: rgba(32, 62, 130, .15);
}

/* Ajuste final solicitado: verde cielo en lugar del azul/morado del login. */
body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) {
    --guardian-sky-green: #18bca7;
    --guardian-sky-green-dark: #0f7f73;
    --guardian-sky-green-soft: #dffaf5;
    background:
        radial-gradient(circle at 86% 50%, rgba(34, 211, 189, .36), transparent 31%),
        linear-gradient(105deg, #f7f9ff 0 55%, var(--guardian-sky-green-dark) 55% 100%) !important;
}

body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden])))::before {
    background:
        radial-gradient(circle at 0 100%, rgba(24, 188, 167, .18) 0 1px, transparent 1.5px) left bottom / 16px 16px repeat,
        radial-gradient(circle at 97% 90%, rgba(255, 255, 255, .2) 0 1px, transparent 1.5px) right bottom / 18px 18px repeat,
        linear-gradient(135deg, rgba(255, 255, 255, .88) 0 42%, rgba(255, 255, 255, .28) 55%, transparent 56%),
        linear-gradient(135deg, transparent 0 52%, rgba(24, 188, 167, .34) 52% 100%) !important;
}

body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) #guardianLoginView > .guardian-photo-panel::before {
    background:
        linear-gradient(90deg, rgba(255, 255, 255, .98) 0 23%, rgba(255, 255, 255, .78) 36%, rgba(255, 255, 255, .08) 69%, rgba(15, 127, 115, .28) 100%),
        linear-gradient(180deg, rgba(255, 255, 255, .04), rgba(15, 127, 115, .28)) !important;
}

body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) #guardianLoginView > .guardian-photo-panel::after {
    background:
        radial-gradient(circle at 0 67%, rgba(24, 188, 167, .16), transparent 29%),
        linear-gradient(180deg, transparent 0 74%, rgba(15, 127, 115, .72) 100%),
        linear-gradient(120deg, transparent 0 50%, rgba(24, 188, 167, .24) 50% 100%) !important;
}

body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-login-copy h2 span,
body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-quick-access strong,
body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-form .guardian-remember::after,
body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-password-toggle::before,
body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-input svg,
body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-quick-access svg,
body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-access-icon {
    color: var(--guardian-sky-green-dark) !important;
}

body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-login-copy h2::after,
body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-access-icon,
body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-login-footer,
body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-feature-grid article svg,
body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-protection-icon {
    background: var(--guardian-sky-green) !important;
}

body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-submit {
    background: linear-gradient(135deg, #22d3bd, var(--guardian-sky-green-dark)) !important;
}

body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-form .guardian-remember input[type="checkbox"] {
    accent-color: var(--guardian-sky-green) !important;
}

html:has(body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden])))) {
    min-height: 100%;
    overflow: hidden !important;
}

body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) {
    min-height: 100vh !important;
    min-height: 100dvh !important;
    margin: 0 !important;
    color: var(--guardian-blue-dark) !important;
    background:
        radial-gradient(circle at 86% 50%, rgba(34, 211, 189, .36), transparent 31%),
        linear-gradient(105deg, #f7f9ff 0 55%, #0f7f73 55% 100%) !important;
    font-family: Inter, "Segoe UI", Calibri, Arial, sans-serif !important;
    overflow: hidden !important;
}

body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden])))::before {
    content: "" !important;
    position: fixed !important;
    inset: 0 !important;
    z-index: 0 !important;
    pointer-events: none !important;
    background:
        radial-gradient(circle at 0 100%, rgba(24, 188, 167, .18) 0 1px, transparent 1.5px) left bottom / 16px 16px repeat,
        radial-gradient(circle at 97% 90%, rgba(255, 255, 255, .2) 0 1px, transparent 1.5px) right bottom / 18px 18px repeat,
        linear-gradient(135deg, rgba(255, 255, 255, .88) 0 42%, rgba(255, 255, 255, .28) 55%, transparent 56%),
        linear-gradient(135deg, transparent 0 52%, rgba(24, 188, 167, .34) 52% 100%) !important;
}

body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden])))::after,
body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-topbar {
    display: none !important;
}

body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) svg {
    fill: none !important;
    stroke: currentColor !important;
    stroke-width: 2 !important;
    stroke-linecap: round !important;
    stroke-linejoin: round !important;
}

body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-shell {
    position: relative !important;
    z-index: 1 !important;
    width: 100% !important;
    height: 100vh !important;
    height: 100dvh !important;
    margin: 0 !important;
    padding: 0 !important;
}

body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-login-card {
    width: 100% !important;
    height: 100% !important;
    display: grid !important;
    grid-template-columns: minmax(720px, 1fr) minmax(500px, 620px) !important;
    gap: 0 !important;
    align-items: stretch !important;
    padding: 0 !important;
    overflow: hidden !important;
}

body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-portal-brand {
    position: absolute !important;
    z-index: 4 !important;
    top: clamp(28px, 4vw, 50px) !important;
    left: clamp(34px, 4vw, 64px) !important;
    display: grid !important;
    grid-template-columns: 106px minmax(0, 1fr) !important;
    gap: 22px !important;
    align-items: center !important;
    color: var(--guardian-blue-dark) !important;
}

body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-portal-brand img {
    width: 106px !important;
    height: 130px !important;
    object-fit: contain !important;
    filter: drop-shadow(0 14px 22px rgba(4, 28, 80, .18)) !important;
}

body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-portal-brand strong {
    display: block !important;
    color: var(--guardian-blue-dark) !important;
    font-size: clamp(25px, 2.15vw, 34px) !important;
    font-weight: 900 !important;
    line-height: 1.12 !important;
    text-transform: uppercase !important;
}

body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-portal-brand span {
    position: relative !important;
    display: block !important;
    margin-top: 12px !important;
    color: var(--guardian-blue-dark) !important;
    font-size: 17px !important;
    font-weight: 500 !important;
}

body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-portal-brand span::after,
body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-photo-copy h1::after,
body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-login-copy h2::after {
    content: "" !important;
    display: block !important;
    width: 72px !important;
    height: 4px !important;
    margin-top: 12px !important;
    border-radius: 999px !important;
    background: var(--guardian-purple) !important;
}

body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-portal-brand span::after {
    background: #f3a300 !important;
}

body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-photo-panel {
    position: relative !important;
    display: grid !important;
    align-items: end !important;
    min-width: 0 !important;
    min-height: 0 !important;
    overflow: hidden !important;
    padding: 190px clamp(34px, 4vw, 64px) clamp(26px, 4vw, 48px) !important;
}

body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-photo-panel > img {
    position: absolute !important;
    inset: 0 !important;
    z-index: 0 !important;
    width: 100% !important;
    height: 100% !important;
    display: block !important;
    object-fit: cover !important;
    opacity: .34 !important;
    filter: saturate(.85) blur(.2px) !important;
}

body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-photo-panel::before {
    content: "" !important;
    position: absolute !important;
    inset: 0 !important;
    z-index: 1 !important;
    pointer-events: none !important;
    background:
        linear-gradient(90deg, rgba(255, 255, 255, .94) 0 34%, rgba(255, 255, 255, .62) 54%, rgba(255, 255, 255, .2) 100%),
        linear-gradient(180deg, rgba(255, 255, 255, .7), rgba(255, 255, 255, .18)) !important;
}

body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-photo-copy {
    position: relative !important;
    z-index: 2 !important;
    width: min(720px, 100%) !important;
    display: grid !important;
    gap: 24px !important;
    color: var(--guardian-blue-dark) !important;
}

body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-hero-emblem {
    display: none !important;
}

body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-photo-copy h1 {
    width: min(510px, 100%) !important;
    margin: 0 !important;
    color: var(--guardian-blue-dark) !important;
    font-size: clamp(48px, 4.5vw, 66px) !important;
    font-weight: 950 !important;
    line-height: 1.02 !important;
}

body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-photo-copy h1 span {
    display: block !important;
    color: var(--guardian-purple) !important;
}

body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-photo-copy > span:not(.guardian-hero-emblem) {
    width: min(380px, 100%) !important;
    color: var(--guardian-blue-dark) !important;
    font-size: 17px !important;
    font-weight: 500 !important;
    line-height: 1.45 !important;
}

body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-feature-grid {
    width: min(700px, 100%) !important;
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 12px !important;
}

body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-feature-grid article {
    min-width: 0 !important;
    min-height: 132px !important;
    display: grid !important;
    grid-template-columns: 58px minmax(0, 1fr) !important;
    grid-template-rows: auto 1fr !important;
    gap: 4px 14px !important;
    align-content: start !important;
    padding: 20px 18px !important;
    border: 1px solid rgba(255, 255, 255, .72) !important;
    border-radius: 14px !important;
    background: rgba(255, 255, 255, .82) !important;
    box-shadow: 0 18px 34px rgba(34, 50, 104, .12) !important;
    backdrop-filter: blur(10px) !important;
    -webkit-backdrop-filter: blur(10px) !important;
}

body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-feature-grid article svg {
    grid-row: 1 / span 2 !important;
    width: 48px !important;
    height: 48px !important;
    padding: 12px !important;
    border-radius: 50% !important;
    color: #fff !important;
    background: var(--guardian-purple) !important;
    box-shadow: 0 12px 20px rgba(91, 69, 238, .24) !important;
}

body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-feature-grid article:nth-child(2) svg { background: #2f7df2 !important; }
body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-feature-grid article:nth-child(3) svg { background: var(--guardian-green) !important; }
body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-feature-grid article:nth-child(4) svg { background: var(--guardian-orange) !important; }
body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-feature-grid article:nth-child(5) svg { background: var(--guardian-cyan) !important; }
body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-feature-grid article:nth-child(6) svg { background: var(--guardian-pink) !important; }

body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-feature-grid strong {
    align-self: end !important;
    color: var(--guardian-blue-dark) !important;
    font-size: 15px !important;
    font-weight: 900 !important;
    line-height: 1.2 !important;
}

body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-feature-grid span {
    color: #243b68 !important;
    font-size: 12px !important;
    line-height: 1.35 !important;
}

body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-protection-card {
    width: min(700px, 100%) !important;
    min-height: 106px !important;
    display: grid !important;
    grid-template-columns: 78px minmax(0, 1fr) !important;
    align-items: center !important;
    gap: 18px !important;
    padding: 20px 28px !important;
    border: 1px solid rgba(255, 255, 255, .78) !important;
    border-radius: 16px !important;
    background: rgba(255, 255, 255, .78) !important;
    box-shadow: 0 18px 36px rgba(34, 50, 104, .11) !important;
    backdrop-filter: blur(12px) !important;
}

body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-protection-icon {
    width: 62px !important;
    height: 62px !important;
    display: grid !important;
    place-items: center !important;
    border-radius: 16px !important;
    color: #fff !important;
    background: linear-gradient(135deg, #6e5cff, #4634df) !important;
    box-shadow: 0 15px 24px rgba(91, 69, 238, .28) !important;
}

body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-protection-icon svg {
    width: 30px !important;
    height: 30px !important;
}

body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-protection-card strong,
body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-protection-card span {
    display: block !important;
}

body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-protection-card strong {
    color: var(--guardian-blue-dark) !important;
    font-size: 17px !important;
    font-weight: 900 !important;
}

body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-protection-card span {
    margin-top: 6px !important;
    color: #35466d !important;
    font-size: 14px !important;
    line-height: 1.35 !important;
}

body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-access-panel {
    position: relative !important;
    align-self: center !important;
    justify-self: center !important;
    width: min(100%, 540px) !important;
    min-height: min(870px, calc(100dvh - 56px)) !important;
    display: grid !important;
    grid-template-rows: auto auto 76px !important;
    align-content: center !important;
    gap: 20px !important;
    margin-right: clamp(20px, 3vw, 48px) !important;
    padding: 44px 40px 0 !important;
    border: 1px solid rgba(255, 255, 255, .32) !important;
    border-radius: 32px !important;
    background: rgba(255, 255, 255, .96) !important;
    box-shadow: 0 28px 68px rgba(0, 18, 74, .34) !important;
    overflow: hidden !important;
}

body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-access-panel::before {
    content: "" !important;
    position: absolute !important;
    inset: 14px !important;
    pointer-events: none !important;
    border: 1px solid rgba(91, 69, 238, .08) !important;
    border-radius: 24px !important;
}

body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-login-copy,
body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-form,
body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-login-footer {
    position: relative !important;
    z-index: 1 !important;
}

body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-login-copy {
    display: grid !important;
    justify-items: center !important;
    gap: 14px !important;
    text-align: center !important;
}

body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-access-icon {
    width: 100px !important;
    height: 100px !important;
    display: grid !important;
    place-items: center !important;
    border-radius: 50% !important;
    color: var(--guardian-purple) !important;
    background: #ffffff !important;
    box-shadow: 0 14px 28px rgba(17, 33, 89, .12) !important;
}

body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-access-icon svg {
    width: 48px !important;
    height: 48px !important;
}

body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-login-copy .section-label {
    display: none !important;
}

body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-login-copy h2 {
    margin: 6px 0 0 !important;
    color: var(--guardian-blue-dark) !important;
    font-size: clamp(26px, 2.3vw, 36px) !important;
    font-weight: 900 !important;
    line-height: 1.2 !important;
}

body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-login-copy h2 span {
    color: var(--guardian-purple) !important;
}

body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-login-copy h2::after {
    margin-inline: auto !important;
}

body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-login-copy p {
    margin: 0 !important;
    color: #4d5c82 !important;
    font-size: 15px !important;
}

body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-form {
    display: grid !important;
    gap: 17px !important;
}

body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-form label {
    display: grid !important;
    gap: 8px !important;
    color: var(--guardian-blue-dark) !important;
    font-size: 14px !important;
    font-weight: 700 !important;
}

body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-input {
    min-height: 56px !important;
    display: grid !important;
    grid-template-columns: 40px minmax(0, 1fr) auto !important;
    align-items: center !important;
    gap: 10px !important;
    padding: 0 12px !important;
    border: 1px solid rgba(52, 78, 136, .18) !important;
    border-radius: 13px !important;
    background: rgba(255, 255, 255, .92) !important;
    box-shadow: 0 8px 18px rgba(16, 33, 89, .08) !important;
}

body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-input:focus-within {
    border-color: rgba(91, 69, 238, .45) !important;
    box-shadow: 0 0 0 4px rgba(91, 69, 238, .12), 0 12px 24px rgba(16, 33, 89, .1) !important;
}

body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-input > svg {
    width: 21px !important;
    height: 21px !important;
    justify-self: center !important;
    color: var(--guardian-blue-dark) !important;
}

html body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-form input {
    width: 100% !important;
    min-width: 0 !important;
    min-height: 54px !important;
    padding: 0 !important;
    border: 0 !important;
    outline: 0 !important;
    color: var(--guardian-blue-dark) !important;
    background: transparent !important;
    box-shadow: none !important;
    font: inherit !important;
    font-size: 15px !important;
    font-weight: 600 !important;
}

body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-form input::placeholder {
    color: #7784a6 !important;
}

html body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-password-toggle {
    width: 42px !important;
    min-width: 42px !important;
    min-height: 54px !important;
    padding: 0 !important;
    border: 0 !important;
    color: var(--guardian-blue-dark) !important;
    background: transparent !important;
    font-size: 0 !important;
}

html body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-password-toggle::before {
    content: "" !important;
    width: 22px !important;
    height: 22px !important;
    display: block !important;
    margin: auto !important;
    background: currentColor !important;
    -webkit-mask: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='black'%20stroke-width='2.2'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Cpath%20d='M2%2012s4-7%2010-7%2010%207%2010%207-4%207-10%207S2%2012%202%2012Z'/%3E%3Ccircle%20cx='12'%20cy='12'%20r='3'/%3E%3C/svg%3E") center / contain no-repeat !important;
    mask: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='black'%20stroke-width='2.2'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Cpath%20d='M2%2012s4-7%2010-7%2010%207%2010%207-4%207-10%207S2%2012%202%2012Z'/%3E%3Ccircle%20cx='12'%20cy='12'%20r='3'/%3E%3C/svg%3E") center / contain no-repeat !important;
}

body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-remember {
    display: inline-flex !important;
    grid-template-columns: none !important;
    align-items: center !important;
    gap: 8px !important;
    color: var(--guardian-blue-dark) !important;
    font-size: 13px !important;
    font-weight: 600 !important;
}

body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-remember input {
    width: 18px !important;
    min-height: 18px !important;
    height: 18px !important;
    accent-color: var(--guardian-purple) !important;
}

body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-submit {
    min-height: 54px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 12px !important;
    margin: 0 !important;
    border: 0 !important;
    border-radius: 999px !important;
    color: #fff !important;
    background: linear-gradient(135deg, #6548f4, #4c38e0) !important;
    box-shadow: 0 16px 28px rgba(91, 69, 238, .28) !important;
    font-size: 17px !important;
    font-weight: 900 !important;
}

body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-submit:hover {
    transform: translateY(-1px) !important;
    background: linear-gradient(135deg, #5d42ed, #3f2dd2) !important;
}

body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-submit svg {
    width: 18px !important;
    height: 18px !important;
}

body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-submit svg:last-child {
    display: none !important;
}

body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-quick-access {
    display: grid !important;
    gap: 12px !important;
}

body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-quick-access > span {
    display: grid !important;
    grid-template-columns: 1fr auto 1fr !important;
    align-items: center !important;
    gap: 12px !important;
    color: var(--guardian-blue-dark) !important;
    font-size: 13px !important;
    font-weight: 500 !important;
    text-align: center !important;
}

body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-quick-access > span::before,
body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-quick-access > span::after {
    content: "" !important;
    height: 1px !important;
    background: var(--guardian-line) !important;
}

body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-quick-access > div {
    min-height: 66px !important;
    display: grid !important;
    grid-template-columns: 42px minmax(0, 1fr) 24px !important;
    align-items: center !important;
    gap: 12px !important;
    padding: 11px 14px !important;
    border: 1px solid rgba(24, 188, 167, .18) !important;
    border-radius: 13px !important;
    background: rgba(255, 255, 255, .8) !important;
    box-shadow: 0 8px 18px rgba(16, 33, 89, .08) !important;
}

body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-quick-access svg {
    width: 28px !important;
    height: 28px !important;
    color: var(--guardian-purple) !important;
}

body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-quick-access svg:last-child {
    justify-self: end !important;
}

body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-quick-access p {
    margin: 0 !important;
}

body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-quick-access strong,
body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-quick-access small {
    display: block !important;
}

body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-quick-access strong {
    color: var(--guardian-purple-dark) !important;
    font-size: 14px !important;
    font-weight: 900 !important;
}

body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-quick-access small {
    margin-top: 4px !important;
    color: #5140d6 !important;
    font-size: 12px !important;
}

body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-error {
    display: none !important;
    margin: 0 !important;
    padding: 11px 12px !important;
    border: 1px solid rgba(239, 68, 68, .18) !important;
    border-left: 0 !important;
    border-radius: 11px !important;
    color: #9f1239 !important;
    background: #fff1f2 !important;
    font-size: 13px !important;
    font-weight: 700 !important;
}

body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-error.show {
    display: block !important;
}

body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-login-footer {
    align-self: end !important;
    min-height: 76px !important;
    display: grid !important;
    grid-template-columns: 42px minmax(0, 1fr) 42px !important;
    align-items: center !important;
    gap: 14px !important;
    margin-inline: -40px !important;
    padding: 14px 40px !important;
    color: #fff !important;
    background: linear-gradient(135deg, #31426e, #1d2d60) !important;
}

body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-login-footer span {
    display: grid !important;
    place-items: center !important;
    color: #fff !important;
}

body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-login-footer svg {
    width: 28px !important;
    height: 28px !important;
}

body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-login-footer p {
    margin: 0 !important;
}

body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-login-footer strong,
body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-login-footer small {
    display: block !important;
}

body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-login-footer strong {
    font-size: 14px !important;
    font-weight: 900 !important;
}

body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-login-footer small {
    margin-top: 3px !important;
    color: rgba(255, 255, 255, .82) !important;
    font-size: 12px !important;
}

@media (max-height: 820px) and (min-width: 921px) {
    body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-portal-brand {
        top: 26px !important;
        grid-template-columns: 82px minmax(0, 1fr) !important;
    }

    body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-portal-brand img {
        width: 82px !important;
        height: 102px !important;
    }

    body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-portal-brand strong {
        font-size: 26px !important;
    }

    body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-photo-panel {
        padding-top: 150px !important;
        padding-bottom: 24px !important;
    }

    body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-photo-copy {
        gap: 15px !important;
    }

    body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-photo-copy h1 {
        font-size: 48px !important;
    }

    body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-feature-grid {
        gap: 9px !important;
    }

    body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-feature-grid article {
        min-height: 100px !important;
        padding: 13px !important;
        grid-template-columns: 44px minmax(0, 1fr) !important;
    }

    body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-feature-grid article svg {
        width: 38px !important;
        height: 38px !important;
        padding: 9px !important;
    }

    body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-feature-grid strong {
        font-size: 13px !important;
    }

    body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-feature-grid span {
        font-size: 10.5px !important;
    }

    body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-protection-card {
        min-height: 80px !important;
        padding: 12px 18px !important;
    }

    body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-access-panel {
        min-height: min(690px, calc(100dvh - 34px)) !important;
        gap: 12px !important;
        padding: 24px 32px 0 !important;
    }

    body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-access-icon {
        width: 70px !important;
        height: 70px !important;
    }

    body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-access-icon svg {
        width: 34px !important;
        height: 34px !important;
    }

    body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-login-copy {
        gap: 8px !important;
    }

    body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-login-copy h2 {
        font-size: 26px !important;
    }

    body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-form {
        gap: 11px !important;
    }

    body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-input {
        min-height: 46px !important;
    }

    html body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-form input,
    html body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-password-toggle {
        min-height: 44px !important;
    }

    body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-submit {
        min-height: 46px !important;
    }

    body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-quick-access > div {
        min-height: 54px !important;
        padding: 8px 12px !important;
    }

    body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-login-footer {
        min-height: 62px !important;
        margin-inline: -32px !important;
        padding: 10px 32px !important;
    }
}

@media (max-width: 920px) {
    html:has(body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden])))) {
        overflow: auto !important;
    }

    body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) {
        min-height: 100dvh !important;
        overflow-x: hidden !important;
        overflow-y: auto !important;
        background:
            linear-gradient(180deg, rgba(247, 249, 255, .92), rgba(232, 237, 255, .95)),
            url("../images/frontis-web.jpg") center / cover no-repeat scroll !important;
    }

    body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-shell {
        height: auto !important;
        min-height: 100dvh !important;
    }

    body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-login-card {
        height: auto !important;
        min-height: 100dvh !important;
        grid-template-columns: 1fr !important;
        align-content: start !important;
        justify-items: center !important;
        padding: 18px 14px !important;
    }

    body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-portal-brand,
    body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-photo-panel {
        display: none !important;
    }

    body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-access-panel {
        width: min(100%, 430px) !important;
        min-height: 0 !important;
        margin: 0 !important;
        padding: 22px 18px 0 !important;
        gap: 14px !important;
    }

    body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-access-icon {
        width: 72px !important;
        height: 72px !important;
    }

    body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-access-icon svg {
        width: 34px !important;
        height: 34px !important;
    }

    body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-login-copy h2 {
        font-size: 25px !important;
    }

    body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-form {
        gap: 13px !important;
    }

    body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-input {
        min-height: 48px !important;
    }

    html body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-form input,
    html body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-password-toggle {
        min-height: 46px !important;
    }

    body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-submit {
        min-height: 48px !important;
    }

    body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-login-footer {
        min-height: 66px !important;
        margin-inline: -18px !important;
        padding: 10px 18px !important;
    }
}

/* Ajuste v2: iguala la referencia del portal y vence estilos antiguos con mayor especificidad. */
@media (min-width: 921px) {
    html body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-login-card {
        grid-template-columns: minmax(735px, 1fr) minmax(520px, 620px) !important;
        background:
            radial-gradient(circle at 83% 22%, rgba(255, 255, 255, .16), transparent 19%),
            linear-gradient(105deg, transparent 0 54%, #0f7f73 54% 100%) !important;
    }

    html body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-login-card > .guardian-portal-brand {
        position: absolute !important;
        z-index: 20 !important;
        top: 42px !important;
        left: 54px !important;
        width: min(650px, calc(54vw - 70px)) !important;
        display: grid !important;
        grid-template-columns: 104px minmax(0, 1fr) !important;
        gap: 22px !important;
        align-items: center !important;
        margin: 0 !important;
        padding: 0 !important;
        color: #071f5a !important;
        text-align: left !important;
        transform: none !important;
        filter: none !important;
        opacity: 1 !important;
    }

    html body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-login-card > .guardian-portal-brand img {
        width: 104px !important;
        height: 128px !important;
        object-fit: contain !important;
        display: block !important;
        filter: drop-shadow(0 14px 22px rgba(4, 28, 80, .18)) !important;
        opacity: 1 !important;
    }

    html body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-login-card > .guardian-portal-brand div {
        display: grid !important;
        gap: 10px !important;
        min-width: 0 !important;
        line-height: 1.1 !important;
    }

    html body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-login-card > .guardian-portal-brand strong {
        display: block !important;
        color: #071f5a !important;
        font-size: 30px !important;
        font-weight: 900 !important;
        line-height: 1.12 !important;
        letter-spacing: 0 !important;
        text-transform: uppercase !important;
        text-shadow: none !important;
    }

    html body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-login-card > .guardian-portal-brand span {
        position: relative !important;
        display: block !important;
        margin: 0 !important;
        color: #071f5a !important;
        font-size: 17px !important;
        font-style: normal !important;
        font-weight: 500 !important;
        line-height: 1.35 !important;
        text-shadow: none !important;
        opacity: 1 !important;
    }

    html body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-login-card > .guardian-portal-brand span::after {
        content: "" !important;
        display: block !important;
        width: 72px !important;
        height: 4px !important;
        margin-top: 12px !important;
        border-radius: 999px !important;
        background: #f4a100 !important;
    }

    html body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-photo-panel {
        padding: 220px 54px 42px !important;
        align-items: end !important;
        border-radius: 0 0 0 32px !important;
    }

    html body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-photo-panel > img {
        object-position: center center !important;
        opacity: .36 !important;
        filter: saturate(.82) brightness(1.06) blur(.1px) !important;
    }

    html body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-photo-panel::before {
        background:
            linear-gradient(90deg, rgba(255, 255, 255, .98) 0 34%, rgba(255, 255, 255, .73) 56%, rgba(255, 255, 255, .2) 100%),
            linear-gradient(180deg, rgba(255, 255, 255, .82), rgba(255, 255, 255, .24)) !important;
    }

    html body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-photo-copy {
        width: min(730px, 100%) !important;
        gap: 26px !important;
        justify-self: start !important;
        align-self: end !important;
        color: #071f5a !important;
        text-align: left !important;
    }

    html body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-photo-copy h1 {
        width: min(520px, 100%) !important;
        color: #071f5a !important;
        font-size: 58px !important;
        line-height: 1.02 !important;
        text-shadow: none !important;
    }

    html body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-photo-copy h1 span {
        color: #18bca7 !important;
    }

    html body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-photo-copy > span:not(.guardian-hero-emblem) {
        width: min(430px, 100%) !important;
        color: #10295f !important;
        font-size: 17px !important;
        font-weight: 500 !important;
        line-height: 1.5 !important;
    }

    html body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-feature-grid {
        width: min(670px, 100%) !important;
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
        gap: 12px !important;
    }

    html body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-feature-grid article {
        min-height: 126px !important;
        grid-template-columns: 58px minmax(0, 1fr) !important;
        gap: 4px 13px !important;
        padding: 19px 17px !important;
        border-radius: 14px !important;
        background: rgba(255, 255, 255, .84) !important;
        box-shadow: 0 18px 34px rgba(34, 50, 104, .12) !important;
    }

    html body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-protection-card {
        width: min(670px, 100%) !important;
    }

    html body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-access-panel {
        width: min(100%, 540px) !important;
        height: min(870px, calc(100dvh - 54px)) !important;
        min-height: 0 !important;
        align-self: center !important;
        justify-self: center !important;
        align-content: stretch !important;
        grid-template-rows: auto minmax(0, 1fr) 76px !important;
        gap: 18px !important;
        margin: 27px 36px 27px 0 !important;
        padding: 28px 40px 0 !important;
        border-radius: 32px !important;
        background: rgba(255, 255, 255, .97) !important;
        overflow: hidden !important;
        transform: none !important;
    }

    html body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-login-copy {
        gap: 12px !important;
        padding: 0 !important;
    }

    html body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-access-icon {
        width: 96px !important;
        height: 96px !important;
        margin: 0 auto !important;
        color: #18bca7 !important;
        background: #fff !important;
        box-shadow: 0 14px 28px rgba(17, 33, 89, .12) !important;
        transform: none !important;
    }

    html body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-access-icon svg {
        width: 48px !important;
        height: 48px !important;
    }

    html body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-login-copy h2 {
        color: #071f5a !important;
        font-size: 32px !important;
        line-height: 1.2 !important;
    }

    html body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-login-copy h2 span {
        color: #18bca7 !important;
    }

    html body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-form {
        align-self: start !important;
        gap: 16px !important;
        overflow: visible !important;
    }

    html body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-form .guardian-remember {
        width: auto !important;
        display: inline-flex !important;
        flex-direction: row !important;
        align-items: center !important;
        justify-content: flex-start !important;
        gap: 8px !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    html body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-form .guardian-remember input[type="checkbox"] {
        width: 18px !important;
        min-width: 18px !important;
        max-width: 18px !important;
        height: 18px !important;
        min-height: 18px !important;
        max-height: 18px !important;
        flex: 0 0 18px !important;
        margin: 0 !important;
        padding: 0 !important;
        border: 0 !important;
        accent-color: #18bca7 !important;
        appearance: auto !important;
        -webkit-appearance: checkbox !important;
    }
}

/* v29: correccion final movil, centrada y sin ancho de escritorio. */
@media (max-width: 768px) {
    html:has(body.body-portal-apoderado #guardianLoginView:not([hidden])),
    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) {
        width: 100% !important;
        max-width: 100% !important;
        height: auto !important;
        min-height: 100dvh !important;
        margin: 0 !important;
        padding: 0 !important;
        overflow-x: hidden !important;
        overflow-y: auto !important;
        background:
            linear-gradient(180deg, rgba(7, 30, 84, .7), rgba(15, 45, 143, .82)),
            url("../images/FRONTIS.JPG?v=20260803-frontis-optimized-v1") center / cover no-repeat fixed !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])),
    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) * {
        box-sizing: border-box !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden]))::before,
    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden]))::after,
    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-topbar,
    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView > .guardian-portal-brand,
    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView > .guardian-photo-panel {
        display: none !important;
        content: none !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-shell {
        position: relative !important;
        inset: auto !important;
        left: auto !important;
        right: auto !important;
        top: auto !important;
        bottom: auto !important;
        width: 100% !important;
        max-width: 100% !important;
        height: auto !important;
        min-height: 100dvh !important;
        margin: 0 !important;
        padding: 10px !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        overflow: visible !important;
        transform: none !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView.guardian-login-card {
        position: relative !important;
        inset: auto !important;
        left: auto !important;
        right: auto !important;
        top: auto !important;
        bottom: auto !important;
        width: min(100%, 360px) !important;
        max-width: calc(100vw - 20px) !important;
        height: auto !important;
        min-height: 0 !important;
        margin: 0 auto !important;
        padding: 0 !important;
        display: block !important;
        overflow: visible !important;
        border: 0 !important;
        border-radius: 0 !important;
        background: transparent !important;
        box-shadow: none !important;
        transform: none !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView > .guardian-access-panel {
        position: relative !important;
        inset: auto !important;
        grid-column: auto !important;
        width: 100% !important;
        max-width: 360px !important;
        height: auto !important;
        min-height: 0 !important;
        max-height: none !important;
        margin: 0 auto !important;
        padding: 14px 12px 0 !important;
        display: grid !important;
        grid-template-rows: auto auto auto !important;
        gap: 10px !important;
        overflow: hidden !important;
        border: 1px solid rgba(255, 255, 255, .72) !important;
        border-radius: 20px !important;
        background: rgba(255, 255, 255, .98) !important;
        box-shadow: 0 20px 48px rgba(3, 18, 56, .3) !important;
        transform: none !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView > .guardian-access-panel::before {
        inset: 8px !important;
        border-radius: 15px !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-login-copy {
        display: grid !important;
        justify-items: center !important;
        gap: 7px !important;
        padding: 0 !important;
        text-align: center !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-access-icon {
        width: 58px !important;
        height: 58px !important;
        margin: 0 auto !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-access-icon svg {
        width: 29px !important;
        height: 29px !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-login-copy h2 {
        width: 100% !important;
        max-width: 100% !important;
        margin: 0 !important;
        font-size: clamp(20px, 6vw, 24px) !important;
        line-height: 1.12 !important;
        letter-spacing: 0 !important;
        text-align: center !important;
        overflow-wrap: normal !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-login-copy h2 span {
        display: block !important;
        white-space: normal !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-login-copy h2::after {
        width: 64px !important;
        height: 3px !important;
        margin: 7px auto 0 !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-login-copy p {
        margin: 0 !important;
        font-size: 12px !important;
        line-height: 1.3 !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-form {
        display: grid !important;
        gap: 9px !important;
        width: 100% !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-form label {
        gap: 5px !important;
        font-size: 12px !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-input {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        min-height: 44px !important;
        height: 44px !important;
        grid-template-columns: 36px minmax(0, 1fr) 36px !important;
        padding: 0 7px !important;
        border-radius: 12px !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-input svg {
        width: 19px !important;
        height: 19px !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-form input,
    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-password-toggle {
        width: 100% !important;
        min-width: 0 !important;
        height: 42px !important;
        min-height: 42px !important;
        font-size: 13px !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-password-toggle {
        display: grid !important;
        place-items: center !important;
        padding: 0 !important;
        overflow: hidden !important;
        color: transparent !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-password-toggle::before {
        content: "Ver" !important;
        color: #0c2a73 !important;
        font-size: 10px !important;
        font-weight: 900 !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-form .guardian-remember {
        width: 100% !important;
        display: grid !important;
        grid-template-columns: 17px minmax(0, 1fr) !important;
        align-items: center !important;
        gap: 8px !important;
        min-width: 0 !important;
        font-size: 12px !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-form .guardian-remember input[type="checkbox"] {
        width: 16px !important;
        min-width: 16px !important;
        height: 16px !important;
        margin: 0 !important;
        appearance: auto !important;
        -webkit-appearance: checkbox !important;
        accent-color: #18bca7 !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-form .guardian-remember::after {
        grid-column: 2 !important;
        width: auto !important;
        margin-left: 0 !important;
        color: #0f7f73 !important;
        font-size: 12px !important;
        font-weight: 700 !important;
        white-space: normal !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-submit {
        width: 100% !important;
        max-width: 100% !important;
        min-height: 46px !important;
        height: 46px !important;
        grid-template-columns: 22px minmax(0, auto) 22px !important;
        justify-content: center !important;
        gap: 9px !important;
        padding: 0 12px !important;
        border-radius: 14px !important;
        font-size: 14px !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-quick-access {
        gap: 7px !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-quick-access > div {
        width: 100% !important;
        min-width: 0 !important;
        min-height: 56px !important;
        grid-template-columns: 34px minmax(0, 1fr) 16px !important;
        gap: 8px !important;
        padding: 8px 10px !important;
        border-radius: 12px !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-quick-access svg {
        width: 20px !important;
        height: 20px !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-quick-access strong {
        font-size: 12px !important;
        line-height: 1.15 !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-quick-access small {
        font-size: 10.5px !important;
        line-height: 1.25 !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-login-footer {
        min-height: 54px !important;
        width: auto !important;
        grid-template-columns: 28px minmax(0, 1fr) 28px !important;
        gap: 8px !important;
        margin: 0 -12px 0 !important;
        padding: 8px 12px !important;
        border-radius: 0 0 20px 20px !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-login-footer strong {
        font-size: 11.5px !important;
        line-height: 1.15 !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-login-footer small {
        font-size: 9.5px !important;
        line-height: 1.2 !important;
    }
}

@media (max-width: 340px) {
    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-shell {
        padding: 8px !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView.guardian-login-card {
        width: min(100%, 328px) !important;
        max-width: calc(100vw - 16px) !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView > .guardian-access-panel {
        max-width: 328px !important;
        padding: 12px 10px 0 !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-login-copy h2 {
        font-size: 19px !important;
    }
}

/* Override final: solo cambia el azul/morado del login por verde cielo. */
body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))),
html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView.guardian-login-card {
    --guardian-sky-green: #18bca7;
    --guardian-sky-green-dark: #0f7f73;
    --guardian-sky-green-soft: #dffaf5;
    background:
        radial-gradient(circle at 86% 50%, rgba(34, 211, 189, .36), transparent 31%),
        linear-gradient(105deg, #f7f9ff 0 55%, var(--guardian-sky-green-dark) 55% 100%) !important;
}

body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden])))::before {
    background:
        radial-gradient(circle at 0 100%, rgba(24, 188, 167, .18) 0 1px, transparent 1.5px) left bottom / 16px 16px repeat,
        radial-gradient(circle at 97% 90%, rgba(255, 255, 255, .2) 0 1px, transparent 1.5px) right bottom / 18px 18px repeat,
        linear-gradient(135deg, rgba(255, 255, 255, .88) 0 42%, rgba(255, 255, 255, .28) 55%, transparent 56%),
        linear-gradient(135deg, transparent 0 52%, rgba(24, 188, 167, .34) 52% 100%) !important;
}

body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) #guardianLoginView > .guardian-photo-panel::before,
html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView > .guardian-photo-panel::before {
    background:
        linear-gradient(90deg, rgba(255, 255, 255, .98) 0 23%, rgba(255, 255, 255, .78) 36%, rgba(255, 255, 255, .08) 69%, rgba(15, 127, 115, .28) 100%),
        linear-gradient(180deg, rgba(255, 255, 255, .04), rgba(15, 127, 115, .28)) !important;
}

body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) #guardianLoginView > .guardian-photo-panel::after,
html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView > .guardian-photo-panel::after {
    background:
        radial-gradient(circle at 0 67%, rgba(24, 188, 167, .16), transparent 29%),
        linear-gradient(180deg, transparent 0 74%, rgba(15, 127, 115, .72) 100%),
        linear-gradient(120deg, transparent 0 50%, rgba(24, 188, 167, .24) 50% 100%) !important;
}

body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-login-copy h2 span,
body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-quick-access strong,
body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-form .guardian-remember::after,
body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-password-toggle::before,
body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-input svg,
body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-quick-access svg,
body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-access-icon,
html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-login-copy h2 span,
html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-quick-access strong,
html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-form .guardian-remember::after,
html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-password-toggle::before,
html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-input svg,
html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-quick-access svg,
html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-access-icon {
    color: var(--guardian-sky-green-dark) !important;
}

body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-login-copy h2::after,
body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-access-icon,
body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-login-footer,
body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-feature-grid article svg,
body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-protection-icon,
html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-login-copy h2::after,
html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-access-icon,
html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-login-footer,
html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-feature-grid article svg,
html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-protection-icon {
    background: var(--guardian-sky-green) !important;
}

body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-submit,
html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-submit {
    background: linear-gradient(135deg, #22d3bd, var(--guardian-sky-green-dark)) !important;
}

body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-form .guardian-remember input[type="checkbox"],
html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-form .guardian-remember input[type="checkbox"] {
    accent-color: var(--guardian-sky-green) !important;
}

/* Verde cielo login apoderado: solo reemplaza el azul/morado dominante. */
html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) {
    --guardian-sky-green: #18bca7;
    --guardian-sky-green-dark: #0f7f73;
    --guardian-sky-green-soft: #dffaf5;
    background: linear-gradient(105deg, #fbfcff 0 54%, var(--guardian-sky-green-dark) 54% 100%) !important;
}

html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView.guardian-login-card {
    background: linear-gradient(105deg, #fbfcff 0 54%, var(--guardian-sky-green-dark) 54% 100%) !important;
}

html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView > .guardian-photo-panel::before {
    background:
        linear-gradient(90deg, rgba(255, 255, 255, .98) 0 23%, rgba(255, 255, 255, .78) 36%, rgba(255, 255, 255, .08) 69%, rgba(15, 127, 115, .28) 100%),
        linear-gradient(180deg, rgba(255, 255, 255, .04), rgba(15, 127, 115, .28)) !important;
}

html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView > .guardian-photo-panel::after {
    background:
        radial-gradient(circle at 0 67%, rgba(24, 188, 167, .16), transparent 29%),
        linear-gradient(180deg, transparent 0 74%, rgba(15, 127, 115, .72) 100%),
        linear-gradient(120deg, transparent 0 50%, rgba(24, 188, 167, .24) 50% 100%) !important;
}

html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-login-copy h2 span,
html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-quick-access strong,
html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-form .guardian-remember::after {
    color: var(--guardian-sky-green-dark) !important;
}

html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-login-copy h2::after,
html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-submit,
html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-access-icon,
html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-login-footer,
html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-feature-grid article svg,
html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-protection-icon {
    background: var(--guardian-sky-green) !important;
}

html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-submit {
    background: linear-gradient(135deg, #22d3bd, var(--guardian-sky-green-dark)) !important;
}

html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-access-icon,
html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-quick-access svg,
html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-password-toggle::before {
    color: var(--guardian-sky-green-dark) !important;
}

html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-form .guardian-remember input[type="checkbox"] {
    accent-color: var(--guardian-sky-green) !important;
}

html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-input svg {
    color: var(--guardian-sky-green-dark) !important;
}

/* v27: ajuste exclusivo para celular. Mantiene escritorio intacto. */
@media (max-width: 768px) {
    html:has(body.body-portal-apoderado #guardianLoginView:not([hidden])),
    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) {
        width: 100% !important;
        min-width: 0 !important;
        height: auto !important;
        min-height: 100dvh !important;
        margin: 0 !important;
        padding: 0 !important;
        overflow-x: hidden !important;
        overflow-y: auto !important;
        background:
            linear-gradient(180deg, rgba(5, 29, 82, .72), rgba(13, 45, 137, .78)),
            url("../images/FRONTIS.JPG?v=20260803-frontis-optimized-v1") center / cover no-repeat fixed !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden]))::before,
    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden]))::after,
    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-topbar,
    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView > .guardian-portal-brand,
    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView > .guardian-photo-panel {
        display: none !important;
        content: none !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-shell {
        position: relative !important;
        inset: auto !important;
        width: 100% !important;
        max-width: none !important;
        height: auto !important;
        min-height: 100dvh !important;
        margin: 0 !important;
        padding: max(14px, env(safe-area-inset-top)) 14px max(14px, env(safe-area-inset-bottom)) !important;
        display: grid !important;
        place-items: center !important;
        overflow: visible !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView.guardian-login-card {
        position: relative !important;
        inset: auto !important;
        width: min(100%, 420px) !important;
        max-width: 420px !important;
        height: auto !important;
        min-height: 0 !important;
        margin: 0 auto !important;
        padding: 0 !important;
        display: block !important;
        overflow: visible !important;
        border: 0 !important;
        border-radius: 0 !important;
        background: transparent !important;
        box-shadow: none !important;
        transform: none !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView > .guardian-access-panel {
        position: relative !important;
        z-index: 2 !important;
        width: 100% !important;
        max-width: 420px !important;
        height: auto !important;
        min-height: 0 !important;
        max-height: none !important;
        margin: 0 auto !important;
        padding: 18px 16px 0 !important;
        display: grid !important;
        grid-template-rows: auto auto auto !important;
        gap: 13px !important;
        overflow: hidden !important;
        border: 1px solid rgba(255, 255, 255, .74) !important;
        border-radius: 22px !important;
        background: rgba(255, 255, 255, .98) !important;
        box-shadow: 0 22px 54px rgba(3, 18, 56, .32) !important;
        transform: none !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView > .guardian-access-panel::before {
        inset: 10px !important;
        border-radius: 16px !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-login-copy {
        display: grid !important;
        justify-items: center !important;
        gap: 8px !important;
        padding: 0 !important;
        text-align: center !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-access-icon {
        width: 64px !important;
        height: 64px !important;
        margin: 0 auto !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-access-icon svg {
        width: 32px !important;
        height: 32px !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-login-copy h2 {
        margin: 0 !important;
        font-size: clamp(22px, 7vw, 29px) !important;
        line-height: 1.13 !important;
        letter-spacing: 0 !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-login-copy h2::after {
        width: 72px !important;
        height: 3px !important;
        margin: 8px auto 0 !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-login-copy p {
        margin: 0 !important;
        font-size: 13px !important;
        line-height: 1.35 !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-form {
        display: grid !important;
        gap: 11px !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-form label {
        gap: 6px !important;
        font-size: 13px !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-input {
        width: 100% !important;
        min-height: 48px !important;
        height: 48px !important;
        grid-template-columns: 40px minmax(0, 1fr) 40px !important;
        padding: 0 8px !important;
        border-radius: 12px !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-input svg {
        width: 20px !important;
        height: 20px !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-form input,
    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-password-toggle {
        width: 100% !important;
        height: 46px !important;
        min-height: 46px !important;
        font-size: 14px !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-password-toggle {
        display: grid !important;
        place-items: center !important;
        padding: 0 !important;
        overflow: hidden !important;
        color: transparent !important;
        white-space: nowrap !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-password-toggle::before {
        content: "Ver" !important;
        color: #0c2a73 !important;
        font-size: 11px !important;
        font-weight: 900 !important;
        line-height: 1 !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-form .guardian-remember {
        width: 100% !important;
        display: flex !important;
        align-items: center !important;
        gap: 8px !important;
        min-width: 0 !important;
        font-size: 13px !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-form .guardian-remember::after {
        content: "\00bfOlvidaste tu contrase\00f1a?" !important;
        margin-left: auto !important;
        color: #0f7f73 !important;
        font-size: 12px !important;
        font-weight: 700 !important;
        white-space: nowrap !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-form .guardian-remember input[type="checkbox"] {
        width: 17px !important;
        min-width: 17px !important;
        height: 17px !important;
        margin: 0 !important;
        appearance: auto !important;
        -webkit-appearance: checkbox !important;
        accent-color: #18bca7 !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-submit {
        width: 100% !important;
        min-height: 48px !important;
        height: 48px !important;
        padding: 0 16px !important;
        border-radius: 14px !important;
        font-size: 15px !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-quick-access {
        gap: 8px !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-quick-access > div {
        min-height: 58px !important;
        grid-template-columns: 38px minmax(0, 1fr) 20px !important;
        gap: 10px !important;
        padding: 9px 12px !important;
        border-radius: 12px !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-quick-access svg {
        width: 22px !important;
        height: 22px !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-quick-access strong {
        font-size: 13px !important;
        line-height: 1.15 !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-quick-access small {
        font-size: 11px !important;
        line-height: 1.25 !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-login-footer {
        min-height: 58px !important;
        grid-template-columns: 30px minmax(0, 1fr) 30px !important;
        gap: 8px !important;
        margin: 2px -16px 0 !important;
        padding: 9px 16px !important;
        border-radius: 0 0 22px 22px !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-login-footer strong {
        font-size: 12px !important;
        line-height: 1.15 !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-login-footer small {
        font-size: 10px !important;
        line-height: 1.2 !important;
    }
}

@media (max-width: 380px) {
    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-shell {
        padding: max(10px, env(safe-area-inset-top)) 10px max(10px, env(safe-area-inset-bottom)) !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView > .guardian-access-panel {
        padding: 15px 13px 0 !important;
        border-radius: 18px !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-access-icon {
        width: 58px !important;
        height: 58px !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-login-copy h2 {
        font-size: 22px !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-form .guardian-remember {
        flex-wrap: wrap !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-form .guardian-remember::after {
        width: 100% !important;
        margin-left: 25px !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-login-footer {
        margin-inline: -13px !important;
        padding-inline: 13px !important;
        border-radius: 0 0 18px 18px !important;
    }
}

/* v28: evita cualquier desborde horizontal del login en celulares angostos. */
@media (max-width: 768px) {
    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])),
    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) * {
        box-sizing: border-box !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) {
        width: 100vw !important;
        max-width: 100vw !important;
        overflow-x: hidden !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-shell {
        width: 100vw !important;
        max-width: 100vw !important;
        padding-inline: 10px !important;
        justify-items: center !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView.guardian-login-card,
    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView > .guardian-access-panel {
        width: calc(100vw - 20px) !important;
        max-width: 390px !important;
        min-width: 0 !important;
        justify-self: center !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView > .guardian-access-panel {
        padding: 16px 14px 0 !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-login-copy h2 {
        max-width: 100% !important;
        font-size: clamp(21px, 6.2vw, 27px) !important;
        line-height: 1.12 !important;
        overflow-wrap: anywhere !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-login-copy p,
    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-quick-access strong,
    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-quick-access small,
    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-login-footer strong,
    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-login-footer small {
        max-width: 100% !important;
        overflow-wrap: anywhere !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-input,
    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-submit,
    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-quick-access > div {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-form .guardian-remember {
        display: grid !important;
        grid-template-columns: 18px minmax(0, 1fr) !important;
        gap: 8px !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-form .guardian-remember::after {
        grid-column: 2 !important;
        width: auto !important;
        margin-left: 0 !important;
        white-space: normal !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-submit {
        grid-template-columns: 24px minmax(0, auto) 24px !important;
        justify-content: center !important;
        gap: 10px !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-login-footer {
        width: auto !important;
        margin-inline: -14px !important;
        padding-inline: 14px !important;
    }
}

@media (max-width: 340px) {
    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-shell {
        padding-inline: 8px !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView.guardian-login-card,
    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView > .guardian-access-panel {
        width: calc(100vw - 16px) !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-login-copy h2 {
        font-size: 20px !important;
    }
}

@media (max-height: 760px) and (min-width: 921px) {
    html body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-login-card {
        grid-template-columns: minmax(760px, 1fr) minmax(500px, 575px) !important;
    }

    html body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-login-card > .guardian-portal-brand {
        top: 28px !important;
        left: 50px !important;
        grid-template-columns: 76px minmax(0, 1fr) !important;
        gap: 18px !important;
    }

    html body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-login-card > .guardian-portal-brand img {
        width: 76px !important;
        height: 94px !important;
    }

    html body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-login-card > .guardian-portal-brand strong {
        font-size: 24px !important;
    }

    html body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-login-card > .guardian-portal-brand span {
        font-size: 14px !important;
    }

    html body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-photo-panel {
        padding: 168px 42px 18px !important;
    }

    html body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-photo-copy {
        gap: 13px !important;
    }

    html body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-photo-copy h1 {
        font-size: 46px !important;
        width: 410px !important;
    }

    html body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-photo-copy > span:not(.guardian-hero-emblem) {
        width: 390px !important;
        font-size: 15px !important;
        line-height: 1.45 !important;
    }

    html body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-feature-grid {
        width: min(700px, 100%) !important;
        gap: 8px !important;
    }

    html body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-feature-grid article {
        min-height: 106px !important;
        grid-template-columns: 44px minmax(0, 1fr) !important;
        gap: 2px 10px !important;
        padding: 12px 13px !important;
    }

    html body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-feature-grid article svg {
        width: 38px !important;
        height: 38px !important;
        padding: 9px !important;
    }

    html body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-feature-grid strong {
        font-size: 13px !important;
        line-height: 1.12 !important;
    }

    html body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-feature-grid span {
        font-size: 10px !important;
        line-height: 1.25 !important;
    }

    html body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-protection-card {
        min-height: 68px !important;
        grid-template-columns: 52px minmax(0, 1fr) !important;
        gap: 12px !important;
        padding: 9px 16px !important;
    }

    html body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-protection-icon {
        width: 46px !important;
        height: 46px !important;
        border-radius: 13px !important;
    }

    html body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-protection-icon svg {
        width: 24px !important;
        height: 24px !important;
    }

    html body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-protection-card strong {
        font-size: 14px !important;
    }

    html body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-protection-card span {
        margin-top: 2px !important;
        font-size: 11px !important;
        line-height: 1.25 !important;
    }

    html body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-access-panel {
        width: min(100%, 505px) !important;
        height: calc(100dvh - 36px) !important;
        grid-template-rows: auto minmax(0, 1fr) 58px !important;
        gap: 10px !important;
        margin: 18px 34px 18px 0 !important;
        padding: 20px 32px 0 !important;
        border-radius: 30px !important;
    }

    html body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-login-copy {
        gap: 6px !important;
    }

    html body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-access-icon {
        width: 66px !important;
        height: 66px !important;
    }

    html body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-access-icon svg {
        width: 34px !important;
        height: 34px !important;
    }

    html body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-login-copy h2 {
        margin-top: 4px !important;
        font-size: 26px !important;
    }

    html body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-login-copy h2::after {
        width: 70px !important;
        height: 4px !important;
        margin-top: 9px !important;
    }

    html body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-login-copy p {
        font-size: 13px !important;
    }

    html body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-form {
        gap: 9px !important;
    }

    html body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-form label {
        gap: 6px !important;
        font-size: 12px !important;
    }

    html body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-input {
        min-height: 45px !important;
        border-radius: 12px !important;
    }

    html body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-form input,
    html body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-password-toggle {
        min-height: 43px !important;
        font-size: 14px !important;
    }

    html body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-submit {
        min-height: 46px !important;
        font-size: 16px !important;
    }

    html body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-quick-access {
        gap: 7px !important;
    }

    html body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-quick-access > span {
        font-size: 12px !important;
    }

    html body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-quick-access > div {
        min-height: 50px !important;
        grid-template-columns: 36px minmax(0, 1fr) 20px !important;
        padding: 7px 11px !important;
    }

    html body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-quick-access svg {
        width: 25px !important;
        height: 25px !important;
    }

    html body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-quick-access strong {
        font-size: 12px !important;
    }

    html body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-quick-access small {
        margin-top: 2px !important;
        font-size: 10px !important;
    }

    html body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-login-footer {
        min-height: 58px !important;
        grid-template-columns: 34px minmax(0, 1fr) 34px !important;
        gap: 10px !important;
        margin-inline: -32px !important;
        padding: 8px 32px !important;
    }

    html body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-login-footer svg {
        width: 23px !important;
        height: 23px !important;
    }

    html body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-login-footer strong {
        font-size: 12px !important;
    }

    html body.body-portal-apoderado:not(:has(.guardian-life-view:not([hidden]))) .guardian-login-footer small {
        font-size: 10px !important;
    }
}

/* v3 PC: composicion compacta completa para navegadores de escritorio bajos. */
@media (min-width: 921px) and (max-height: 720px) {
    html:has(body.body-portal-apoderado:has(#guardianLoginView:not([hidden]))) {
        overflow: hidden !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) {
        overflow: hidden !important;
        background: linear-gradient(105deg, #fbfcff 0 58%, #0e2d8f 58% 100%) !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-shell,
    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-login-card {
        width: 100% !important;
        height: 100vh !important;
        height: 100dvh !important;
        min-height: 0 !important;
        margin: 0 !important;
        padding: 0 !important;
        overflow: hidden !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-login-card {
        display: grid !important;
        grid-template-columns: minmax(710px, 58vw) minmax(500px, 42vw) !important;
        align-items: stretch !important;
        gap: 0 !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-login-card > .guardian-portal-brand {
        position: absolute !important;
        z-index: 50 !important;
        top: 24px !important;
        left: 38px !important;
        display: grid !important;
        grid-template-columns: 86px minmax(0, 1fr) !important;
        gap: 16px !important;
        width: min(620px, calc(58vw - 56px)) !important;
        margin: 0 !important;
        padding: 0 !important;
        align-items: center !important;
        color: #071f5a !important;
        text-align: left !important;
        opacity: 1 !important;
        filter: none !important;
        transform: none !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-login-card > .guardian-portal-brand img {
        display: block !important;
        width: 86px !important;
        height: 104px !important;
        object-fit: contain !important;
        opacity: 1 !important;
        filter: drop-shadow(0 12px 20px rgba(5, 24, 70, .18)) !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-login-card > .guardian-portal-brand div {
        display: grid !important;
        gap: 7px !important;
        min-width: 0 !important;
        line-height: 1.08 !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-login-card > .guardian-portal-brand strong {
        display: block !important;
        color: #071f5a !important;
        font-size: 25px !important;
        font-weight: 950 !important;
        line-height: 1.1 !important;
        letter-spacing: 0 !important;
        text-transform: uppercase !important;
        text-shadow: none !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-login-card > .guardian-portal-brand span {
        position: relative !important;
        display: block !important;
        margin: 0 !important;
        color: #071f5a !important;
        font-size: 14px !important;
        font-weight: 600 !important;
        line-height: 1.25 !important;
        opacity: 1 !important;
        text-shadow: none !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-login-card > .guardian-portal-brand span::after {
        content: "" !important;
        display: block !important;
        width: 72px !important;
        height: 4px !important;
        margin-top: 12px !important;
        border-radius: 999px !important;
        background: #f0a000 !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-photo-panel {
        position: relative !important;
        display: grid !important;
        align-items: start !important;
        min-height: 0 !important;
        padding: 214px 36px 12px !important;
        overflow: hidden !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-photo-panel > img {
        position: absolute !important;
        inset: 0 !important;
        width: 100% !important;
        height: 100% !important;
        object-fit: cover !important;
        object-position: center center !important;
        opacity: .34 !important;
        filter: saturate(.82) brightness(1.08) !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-photo-panel::before {
        content: "" !important;
        position: absolute !important;
        inset: 0 !important;
        z-index: 1 !important;
        background:
            linear-gradient(105deg, rgba(255, 255, 255, .98) 0 45%, rgba(255, 255, 255, .72) 63%, rgba(255, 255, 255, .18) 100%),
            linear-gradient(180deg, rgba(255, 255, 255, .84), rgba(255, 255, 255, .22)) !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-photo-copy {
        position: relative !important;
        z-index: 2 !important;
        display: grid !important;
        gap: 12px !important;
        width: min(700px, 100%) !important;
        justify-self: start !important;
        align-self: start !important;
        color: #071f5a !important;
        text-align: left !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-photo-copy h1 {
        width: min(420px, 100%) !important;
        margin: 0 !important;
        color: #071f5a !important;
        font-size: 46px !important;
        font-weight: 950 !important;
        line-height: 1.02 !important;
        text-shadow: none !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-photo-copy h1 span {
        display: block !important;
        color: #18bca7 !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-photo-copy h1::after {
        width: 70px !important;
        height: 4px !important;
        margin-top: 10px !important;
        background: #18bca7 !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-photo-copy > span:not(.guardian-hero-emblem) {
        width: 390px !important;
        color: #10295f !important;
        font-size: 15px !important;
        font-weight: 600 !important;
        line-height: 1.45 !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-feature-grid {
        width: min(690px, 100%) !important;
        display: grid !important;
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
        gap: 8px !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-feature-grid article {
        min-height: 82px !important;
        display: grid !important;
        grid-template-columns: 42px minmax(0, 1fr) !important;
        grid-template-rows: auto 1fr !important;
        gap: 2px 9px !important;
        align-content: start !important;
        padding: 10px 12px !important;
        border-radius: 12px !important;
        background: rgba(255, 255, 255, .88) !important;
        box-shadow: 0 12px 24px rgba(30, 45, 95, .12) !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-feature-grid article svg {
        grid-row: 1 / span 2 !important;
        width: 36px !important;
        height: 36px !important;
        padding: 9px !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-feature-grid strong {
        font-size: 12px !important;
        line-height: 1.12 !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-feature-grid span {
        font-size: 9.5px !important;
        line-height: 1.18 !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-protection-card {
        display: none !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-access-panel {
        position: relative !important;
        width: min(100%, 500px) !important;
        height: calc(100dvh - 28px) !important;
        min-height: 0 !important;
        display: grid !important;
        grid-template-rows: auto minmax(0, 1fr) 54px !important;
        align-self: start !important;
        justify-self: center !important;
        align-content: stretch !important;
        gap: 8px !important;
        margin: 14px 30px 14px 0 !important;
        padding: 16px 32px 0 !important;
        border-radius: 28px !important;
        overflow: hidden !important;
        background: rgba(255, 255, 255, .97) !important;
        box-shadow: 0 22px 54px rgba(0, 18, 74, .32) !important;
        transform: none !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-login-copy {
        display: grid !important;
        justify-items: center !important;
        gap: 6px !important;
        padding: 0 !important;
        text-align: center !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-access-icon {
        width: 58px !important;
        height: 58px !important;
        margin: 0 auto !important;
        color: #18bca7 !important;
        background: #fff !important;
        box-shadow: 0 10px 22px rgba(17, 33, 89, .12) !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-access-icon svg {
        width: 30px !important;
        height: 30px !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-login-copy h2 {
        margin: 4px 0 0 !important;
        color: #071f5a !important;
        font-size: 25px !important;
        font-weight: 900 !important;
        line-height: 1.16 !important;
        text-align: center !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-login-copy h2 span {
        color: #18bca7 !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-login-copy h2::after {
        width: 70px !important;
        height: 4px !important;
        margin: 8px auto 0 !important;
        background: #18bca7 !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-login-copy p {
        margin: 0 !important;
        color: #536083 !important;
        font-size: 12px !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-form {
        display: grid !important;
        align-self: start !important;
        gap: 8px !important;
        min-height: 0 !important;
        overflow: hidden !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-form label {
        display: grid !important;
        gap: 5px !important;
        color: #071f5a !important;
        font-size: 12px !important;
        font-weight: 800 !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-input {
        min-height: 40px !important;
        grid-template-columns: 42px minmax(0, 1fr) 42px !important;
        gap: 0 !important;
        padding: 0 !important;
        border-radius: 11px !important;
        background: #eef4ff !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-input > svg {
        width: 21px !important;
        height: 21px !important;
        justify-self: center !important;
        color: #071f5a !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-form input {
        width: 100% !important;
        min-width: 0 !important;
        min-height: 40px !important;
        height: 40px !important;
        padding: 0 !important;
        border: 0 !important;
        background: transparent !important;
        box-shadow: none !important;
        color: #071f5a !important;
        font-size: 14px !important;
        font-weight: 700 !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-password-toggle {
        width: 42px !important;
        min-width: 42px !important;
        height: 40px !important;
        min-height: 40px !important;
        padding: 0 !important;
        border: 0 !important;
        color: transparent !important;
        background: transparent !important;
        font-size: 0 !important;
        overflow: hidden !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-password-toggle::before {
        content: "" !important;
        width: 22px !important;
        height: 22px !important;
        display: block !important;
        margin: auto !important;
        background: #071f5a !important;
        -webkit-mask: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='black'%20stroke-width='2.2'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Cpath%20d='M2%2012s4-7%2010-7%2010%207%2010%207-4%207-10%207S2%2012%202%2012Z'/%3E%3Ccircle%20cx='12'%20cy='12'%20r='3'/%3E%3C/svg%3E") center / contain no-repeat !important;
        mask: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='black'%20stroke-width='2.2'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Cpath%20d='M2%2012s4-7%2010-7%2010%207%2010%207-4%207-10%207S2%2012%202%2012Z'/%3E%3Ccircle%20cx='12'%20cy='12'%20r='3'/%3E%3C/svg%3E") center / contain no-repeat !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-form .guardian-remember {
        width: auto !important;
        display: inline-flex !important;
        grid-template-columns: none !important;
        flex-direction: row !important;
        align-items: center !important;
        justify-content: flex-start !important;
        gap: 8px !important;
        margin: 0 !important;
        padding: 0 !important;
        font-size: 12px !important;
        line-height: 1 !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-form .guardian-remember input[type="checkbox"] {
        width: 17px !important;
        min-width: 17px !important;
        max-width: 17px !important;
        height: 17px !important;
        min-height: 17px !important;
        max-height: 17px !important;
        flex: 0 0 17px !important;
        margin: 0 !important;
        padding: 0 !important;
        appearance: auto !important;
        -webkit-appearance: checkbox !important;
        accent-color: #18bca7 !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-submit {
        min-height: 44px !important;
        height: 44px !important;
        margin: 0 !important;
        border-radius: 999px !important;
        background: linear-gradient(135deg, #684af4, #4935df) !important;
        color: #fff !important;
        font-size: 15px !important;
        font-weight: 900 !important;
        box-shadow: 0 12px 24px rgba(91, 69, 238, .28) !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-quick-access {
        display: grid !important;
        gap: 6px !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-quick-access > span {
        font-size: 12px !important;
        line-height: 1 !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-quick-access > div {
        min-height: 44px !important;
        grid-template-columns: 34px minmax(0, 1fr) 18px !important;
        gap: 8px !important;
        padding: 6px 10px !important;
        border-radius: 11px !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-quick-access svg {
        width: 23px !important;
        height: 23px !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-quick-access strong {
        font-size: 12px !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-quick-access small {
        margin-top: 1px !important;
        font-size: 10px !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-login-footer {
        min-height: 54px !important;
        display: grid !important;
        grid-template-columns: 34px minmax(0, 1fr) 34px !important;
        gap: 9px !important;
        margin-inline: -32px !important;
        padding: 7px 32px !important;
        align-self: end !important;
        background: linear-gradient(135deg, #31426e, #1d2d60) !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-login-footer svg {
        width: 22px !important;
        height: 22px !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-login-footer strong {
        font-size: 12px !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-login-footer small {
        font-size: 10px !important;
    }
}

/* v4 replica referencia: mantiene proporciones del mockup enviado en escritorio. */
@media (min-width: 921px) {
    html:has(body.body-portal-apoderado:has(#guardianLoginView:not([hidden]))) {
        min-height: 100% !important;
        overflow-x: hidden !important;
        overflow-y: auto !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) {
        min-height: 100vh !important;
        margin: 0 !important;
        overflow-x: hidden !important;
        overflow-y: auto !important;
        background:
            radial-gradient(circle at 96% 86%, rgba(103, 85, 255, .52), transparent 28%),
            radial-gradient(circle at 71% -8%, rgba(255, 255, 255, .18), transparent 24%),
            linear-gradient(105deg, #f9fbff 0 58%, #0d2d88 58% 100%) !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden]))::before {
        content: "" !important;
        position: fixed !important;
        inset: 0 !important;
        z-index: 0 !important;
        pointer-events: none !important;
        background:
            radial-gradient(circle at 3% 85%, rgba(112, 99, 255, .2) 0 1px, transparent 1.6px) left bottom / 17px 17px repeat,
            radial-gradient(circle at 97% 86%, rgba(255, 255, 255, .22) 0 1px, transparent 1.7px) right bottom / 18px 18px repeat,
            linear-gradient(120deg, transparent 0 51%, rgba(118, 113, 219, .28) 51% 67%, transparent 67%),
            radial-gradient(ellipse at 78% 5%, rgba(1, 19, 84, .92) 0 25%, transparent 26%) !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-shell {
        position: relative !important;
        z-index: 1 !important;
        width: 100% !important;
        height: auto !important;
        min-height: 100vh !important;
        margin: 0 !important;
        padding: 0 !important;
        overflow: visible !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView.guardian-login-card {
        position: relative !important;
        width: 100% !important;
        height: auto !important;
        min-height: 900px !important;
        display: grid !important;
        grid-template-columns: minmax(760px, 58.2vw) minmax(520px, 41.8vw) !important;
        gap: 0 !important;
        align-items: stretch !important;
        margin: 0 !important;
        padding: 0 !important;
        overflow: hidden !important;
        border-radius: 0 32px 32px 0 !important;
        background: transparent !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView > .guardian-portal-brand {
        position: absolute !important;
        z-index: 30 !important;
        top: 48px !important;
        left: 62px !important;
        width: min(680px, calc(58vw - 82px)) !important;
        display: grid !important;
        grid-template-columns: 112px minmax(0, 1fr) !important;
        gap: 24px !important;
        align-items: center !important;
        margin: 0 !important;
        padding: 0 !important;
        color: #081f58 !important;
        text-align: left !important;
        opacity: 1 !important;
        filter: none !important;
        transform: none !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView > .guardian-portal-brand img {
        width: 112px !important;
        height: 138px !important;
        display: block !important;
        object-fit: contain !important;
        opacity: 1 !important;
        filter: drop-shadow(0 16px 24px rgba(8, 31, 88, .18)) !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView > .guardian-portal-brand div {
        display: grid !important;
        gap: 12px !important;
        min-width: 0 !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView > .guardian-portal-brand strong {
        display: block !important;
        color: #081f58 !important;
        font-size: 27px !important;
        font-weight: 900 !important;
        line-height: 1.18 !important;
        letter-spacing: 0 !important;
        text-transform: uppercase !important;
        text-shadow: none !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView > .guardian-portal-brand span {
        display: block !important;
        margin: 0 !important;
        color: #1d2e65 !important;
        font-size: 16px !important;
        font-weight: 500 !important;
        line-height: 1.35 !important;
        opacity: 1 !important;
        text-shadow: none !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView > .guardian-portal-brand span::after {
        content: "" !important;
        display: block !important;
        width: 70px !important;
        height: 4px !important;
        margin-top: 12px !important;
        border-radius: 999px !important;
        background: #f0a000 !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-photo-panel {
        position: relative !important;
        display: grid !important;
        align-items: start !important;
        min-height: 900px !important;
        padding: 240px 60px 56px !important;
        overflow: hidden !important;
        background: #f8faff !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-photo-panel > img {
        position: absolute !important;
        inset: 0 !important;
        z-index: 0 !important;
        width: 100% !important;
        height: 100% !important;
        display: block !important;
        object-fit: cover !important;
        object-position: center center !important;
        opacity: .46 !important;
        filter: saturate(.78) brightness(1.08) blur(.2px) !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-photo-panel::before {
        content: "" !important;
        position: absolute !important;
        inset: 0 !important;
        z-index: 1 !important;
        pointer-events: none !important;
        background:
            linear-gradient(90deg, rgba(255, 255, 255, .98) 0 28%, rgba(255, 255, 255, .72) 55%, rgba(255, 255, 255, .34) 100%),
            linear-gradient(180deg, rgba(255, 255, 255, .82), rgba(255, 255, 255, .2)) !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-photo-copy {
        position: relative !important;
        z-index: 2 !important;
        width: min(700px, 100%) !important;
        display: grid !important;
        gap: 30px !important;
        justify-self: start !important;
        align-self: start !important;
        color: #081f58 !important;
        text-align: left !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-photo-copy h1 {
        width: min(520px, 100%) !important;
        margin: 0 !important;
        color: #081f58 !important;
        font-size: 56px !important;
        font-weight: 950 !important;
        line-height: 1.04 !important;
        letter-spacing: 0 !important;
        text-shadow: none !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-photo-copy h1 span {
        display: block !important;
        color: #18bca7 !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-photo-copy h1::after {
        content: "" !important;
        display: block !important;
        width: 66px !important;
        height: 4px !important;
        margin-top: 18px !important;
        border-radius: 999px !important;
        background: #8d80ff !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-photo-copy > span:not(.guardian-hero-emblem) {
        width: min(440px, 100%) !important;
        color: #263865 !important;
        font-size: 17px !important;
        font-weight: 500 !important;
        line-height: 1.5 !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-feature-grid {
        width: min(670px, 100%) !important;
        display: grid !important;
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
        gap: 14px !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-feature-grid article {
        min-height: 144px !important;
        display: grid !important;
        grid-template-columns: 62px minmax(0, 1fr) !important;
        grid-template-rows: auto 1fr !important;
        gap: 6px 16px !important;
        align-content: start !important;
        padding: 20px 18px !important;
        border: 1px solid rgba(255, 255, 255, .72) !important;
        border-radius: 14px !important;
        background: rgba(255, 255, 255, .86) !important;
        box-shadow: 0 18px 34px rgba(37, 50, 105, .13) !important;
        backdrop-filter: blur(10px) !important;
        -webkit-backdrop-filter: blur(10px) !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-feature-grid article svg {
        grid-row: 1 / span 2 !important;
        width: 50px !important;
        height: 50px !important;
        padding: 12px !important;
        border-radius: 50% !important;
        color: #fff !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-feature-grid strong {
        color: #081f58 !important;
        font-size: 15px !important;
        font-weight: 900 !important;
        line-height: 1.2 !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-feature-grid span {
        color: #30436e !important;
        font-size: 12px !important;
        line-height: 1.42 !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-protection-card {
        width: min(670px, 100%) !important;
        min-height: 116px !important;
        display: grid !important;
        grid-template-columns: 78px minmax(0, 1fr) !important;
        align-items: center !important;
        gap: 18px !important;
        padding: 20px 26px !important;
        border-radius: 16px !important;
        border: 1px solid rgba(255, 255, 255, .76) !important;
        background: rgba(255, 255, 255, .78) !important;
        box-shadow: 0 18px 36px rgba(34, 50, 104, .11) !important;
        backdrop-filter: blur(12px) !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-protection-icon {
        width: 62px !important;
        height: 62px !important;
        border-radius: 16px !important;
        color: #fff !important;
        background: linear-gradient(135deg, #6b58ff, #4b35df) !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-access-panel {
        position: relative !important;
        z-index: 2 !important;
        width: min(540px, calc(100% - 74px)) !important;
        height: auto !important;
        min-height: 820px !important;
        display: grid !important;
        grid-template-rows: auto minmax(0, 1fr) 76px !important;
        align-content: stretch !important;
        align-self: start !important;
        justify-self: center !important;
        gap: 22px !important;
        margin: 56px 38px 40px 0 !important;
        padding: 28px 40px 0 !important;
        border: 1px solid rgba(255, 255, 255, .34) !important;
        border-radius: 34px !important;
        background: rgba(255, 255, 255, .98) !important;
        box-shadow: 0 28px 68px rgba(0, 18, 74, .32) !important;
        overflow: hidden !important;
        transform: none !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-access-panel::before {
        content: "" !important;
        position: absolute !important;
        inset: 14px !important;
        pointer-events: none !important;
        border: 1px solid rgba(91, 69, 238, .09) !important;
        border-radius: 25px !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-login-copy,
    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-form,
    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-login-footer {
        position: relative !important;
        z-index: 1 !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-login-copy {
        display: grid !important;
        justify-items: center !important;
        gap: 14px !important;
        padding: 0 !important;
        text-align: center !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-access-icon {
        width: 108px !important;
        height: 108px !important;
        display: grid !important;
        place-items: center !important;
        margin: 0 auto !important;
        border-radius: 50% !important;
        color: #18bca7 !important;
        background: #fff !important;
        box-shadow: 0 14px 28px rgba(17, 33, 89, .12) !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-access-icon svg {
        width: 52px !important;
        height: 52px !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-login-copy h2 {
        margin: 6px 0 0 !important;
        color: #081f58 !important;
        font-size: 32px !important;
        font-weight: 900 !important;
        line-height: 1.2 !important;
        text-align: center !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-login-copy h2 span {
        color: #18bca7 !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-login-copy h2::after {
        content: "" !important;
        width: 82px !important;
        height: 4px !important;
        display: block !important;
        margin: 14px auto 0 !important;
        border-radius: 999px !important;
        background: #18bca7 !important;
        box-shadow: 18px 0 0 -1px #18bca7 !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-login-copy p {
        margin: 0 !important;
        color: #4d5b80 !important;
        font-size: 16px !important;
        font-weight: 400 !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-form {
        display: grid !important;
        align-self: start !important;
        gap: 18px !important;
        min-height: 0 !important;
        overflow: visible !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-form label {
        display: grid !important;
        gap: 9px !important;
        color: #081f58 !important;
        font-size: 14px !important;
        font-weight: 700 !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-input {
        min-height: 58px !important;
        display: grid !important;
        grid-template-columns: 46px minmax(0, 1fr) 46px !important;
        align-items: center !important;
        gap: 0 !important;
        padding: 0 12px !important;
        border: 1px solid rgba(52, 78, 136, .18) !important;
        border-radius: 13px !important;
        background: rgba(255, 255, 255, .94) !important;
        box-shadow: 0 8px 18px rgba(16, 33, 89, .08) !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-input > svg {
        width: 22px !important;
        height: 22px !important;
        justify-self: center !important;
        color: #081f58 !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-form input {
        width: 100% !important;
        min-width: 0 !important;
        height: 56px !important;
        min-height: 56px !important;
        padding: 0 !important;
        border: 0 !important;
        outline: 0 !important;
        background: transparent !important;
        box-shadow: none !important;
        color: #081f58 !important;
        font-size: 15px !important;
        font-weight: 500 !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-form input::placeholder {
        color: #7784a6 !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-password-toggle {
        width: 46px !important;
        min-width: 46px !important;
        height: 56px !important;
        min-height: 56px !important;
        padding: 0 !important;
        border: 0 !important;
        color: transparent !important;
        background: transparent !important;
        font-size: 0 !important;
        overflow: hidden !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-password-toggle::before {
        content: "" !important;
        width: 23px !important;
        height: 23px !important;
        display: block !important;
        margin: auto !important;
        background: #081f58 !important;
        -webkit-mask: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='black'%20stroke-width='2.2'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Cpath%20d='M2%2012s4-7%2010-7%2010%207%2010%207-4%207-10%207S2%2012%202%2012Z'/%3E%3Ccircle%20cx='12'%20cy='12'%20r='3'/%3E%3C/svg%3E") center / contain no-repeat !important;
        mask: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='black'%20stroke-width='2.2'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Cpath%20d='M2%2012s4-7%2010-7%2010%207%2010%207-4%207-10%207S2%2012%202%2012Z'/%3E%3Ccircle%20cx='12'%20cy='12'%20r='3'/%3E%3C/svg%3E") center / contain no-repeat !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-form .guardian-remember {
        width: 100% !important;
        display: flex !important;
        grid-template-columns: none !important;
        flex-direction: row !important;
        align-items: center !important;
        justify-content: flex-start !important;
        gap: 8px !important;
        margin: 0 !important;
        padding: 0 !important;
        color: #081f58 !important;
        font-size: 14px !important;
        font-weight: 500 !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-form .guardian-remember::after {
        content: "\00bfOlvidaste tu contrase\00f1 a?" !important;
        margin-left: auto !important;
        color: #0f7f73 !important;
        font-weight: 500 !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-form .guardian-remember input[type="checkbox"] {
        width: 18px !important;
        min-width: 18px !important;
        max-width: 18px !important;
        height: 18px !important;
        min-height: 18px !important;
        max-height: 18px !important;
        flex: 0 0 18px !important;
        margin: 0 !important;
        padding: 0 !important;
        appearance: auto !important;
        -webkit-appearance: checkbox !important;
        accent-color: #18bca7 !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-submit {
        min-height: 56px !important;
        height: 56px !important;
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        gap: 12px !important;
        margin: 0 !important;
        border: 0 !important;
        border-radius: 999px !important;
        color: #fff !important;
        background: linear-gradient(135deg, #6548f4, #4c38e0) !important;
        box-shadow: 0 16px 28px rgba(91, 69, 238, .28) !important;
        font-size: 18px !important;
        font-weight: 900 !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-submit svg:last-child {
        display: none !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-quick-access {
        display: grid !important;
        gap: 12px !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-quick-access > span {
        display: grid !important;
        grid-template-columns: 1fr auto 1fr !important;
        align-items: center !important;
        gap: 12px !important;
        color: #1e316b !important;
        font-size: 14px !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-quick-access > div {
        min-height: 78px !important;
        display: grid !important;
        grid-template-columns: 48px minmax(0, 1fr) 24px !important;
        align-items: center !important;
        gap: 12px !important;
        padding: 12px 16px !important;
        border: 1px solid rgba(24, 188, 167, .18) !important;
        border-radius: 13px !important;
        background: rgba(255, 255, 255, .82) !important;
        box-shadow: 0 8px 18px rgba(16, 33, 89, .08) !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-quick-access svg {
        width: 30px !important;
        height: 30px !important;
        color: #18bca7 !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-quick-access strong {
        color: #4b35df !important;
        font-size: 15px !important;
        font-weight: 900 !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-quick-access small {
        margin-top: 4px !important;
        color: #5140d6 !important;
        font-size: 12px !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-error {
        margin: 0 !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-login-footer {
        align-self: end !important;
        min-height: 76px !important;
        display: grid !important;
        grid-template-columns: 42px minmax(0, 1fr) 42px !important;
        align-items: center !important;
        gap: 14px !important;
        margin-inline: -40px !important;
        padding: 14px 40px !important;
        color: #fff !important;
        background: linear-gradient(135deg, #31426e, #1d2d60) !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-login-footer svg {
        width: 28px !important;
        height: 28px !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-login-footer strong {
        color: #fff !important;
        font-size: 14px !important;
        font-weight: 900 !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-login-footer small {
        color: rgba(255, 255, 255, .82) !important;
        font-size: 12px !important;
    }
}

@media (min-width: 921px) and (max-width: 1320px) {
    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView.guardian-login-card {
        grid-template-columns: minmax(690px, 57.5vw) minmax(500px, 42.5vw) !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView > .guardian-portal-brand {
        left: 46px !important;
        grid-template-columns: 98px minmax(0, 1fr) !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView > .guardian-portal-brand img {
        width: 98px !important;
        height: 120px !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-photo-panel {
        padding-inline: 46px !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-access-panel {
        width: min(510px, calc(100% - 46px)) !important;
        margin-right: 24px !important;
        padding-inline: 34px !important;
    }
}

/* v5 notebook/all-in-one: misma composicion de referencia, ajustada completa al alto visible. */
@media (min-width: 921px) and (max-height: 780px) {
    html:has(body.body-portal-apoderado:has(#guardianLoginView:not([hidden]))) {
        min-height: 100% !important;
        overflow: hidden !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) {
        min-height: 100vh !important;
        min-height: 100dvh !important;
        overflow: hidden !important;
        background:
            radial-gradient(circle at 97% 88%, rgba(104, 85, 255, .52), transparent 28%),
            linear-gradient(105deg, #fbfcff 0 58%, #0d2d88 58% 100%) !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden]))::before {
        background:
            radial-gradient(circle at 3% 88%, rgba(112, 99, 255, .18) 0 1px, transparent 1.6px) left bottom / 17px 17px repeat,
            radial-gradient(circle at 97% 86%, rgba(255, 255, 255, .2) 0 1px, transparent 1.7px) right bottom / 18px 18px repeat,
            linear-gradient(120deg, transparent 0 51%, rgba(118, 113, 219, .26) 51% 67%, transparent 67%),
            radial-gradient(ellipse at 78% -4%, rgba(1, 19, 84, .9) 0 24%, transparent 25%) !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-shell,
    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView.guardian-login-card {
        width: 100% !important;
        height: 100vh !important;
        height: 100dvh !important;
        min-height: 0 !important;
        margin: 0 !important;
        padding: 0 !important;
        overflow: hidden !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView.guardian-login-card {
        display: grid !important;
        grid-template-columns: minmax(680px, 58.2vw) minmax(500px, 41.8vw) !important;
        gap: 0 !important;
        align-items: stretch !important;
        background: transparent !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView > .guardian-portal-brand {
        position: absolute !important;
        z-index: 60 !important;
        top: clamp(14px, 3.2vh, 28px) !important;
        left: clamp(34px, 3.2vw, 48px) !important;
        width: min(620px, calc(58vw - 60px)) !important;
        display: grid !important;
        grid-template-columns: clamp(70px, 6.4vw, 88px) minmax(0, 1fr) !important;
        gap: clamp(13px, 1.4vw, 18px) !important;
        align-items: center !important;
        margin: 0 !important;
        padding: 0 !important;
        color: #081f58 !important;
        opacity: 1 !important;
        filter: none !important;
        transform: none !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView > .guardian-portal-brand img {
        width: clamp(70px, 6.4vw, 88px) !important;
        height: clamp(84px, 7.9vw, 106px) !important;
        display: block !important;
        object-fit: contain !important;
        opacity: 1 !important;
        filter: drop-shadow(0 12px 20px rgba(5, 24, 70, .18)) !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView > .guardian-portal-brand strong {
        color: #081f58 !important;
        font-size: clamp(21px, 2vw, 27px) !important;
        font-weight: 950 !important;
        line-height: 1.1 !important;
        letter-spacing: 0 !important;
        text-transform: uppercase !important;
        text-shadow: none !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView > .guardian-portal-brand span {
        color: #1d2e65 !important;
        font-size: clamp(12px, 1.1vw, 15px) !important;
        font-weight: 600 !important;
        line-height: 1.25 !important;
        opacity: 1 !important;
        text-shadow: none !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView > .guardian-portal-brand span::after {
        width: 70px !important;
        height: 4px !important;
        margin-top: clamp(8px, 1vh, 12px) !important;
        background: #f0a000 !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-photo-panel {
        position: relative !important;
        display: grid !important;
        align-items: start !important;
        min-height: 0 !important;
        height: 100% !important;
        padding: clamp(118px, 22vh, 160px) clamp(34px, 3.6vw, 52px) clamp(10px, 2vh, 22px) !important;
        overflow: hidden !important;
        background: #f8faff !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-photo-panel > img {
        position: absolute !important;
        inset: 0 !important;
        width: 100% !important;
        height: 100% !important;
        object-fit: cover !important;
        object-position: center center !important;
        opacity: .43 !important;
        filter: saturate(.8) brightness(1.08) blur(.15px) !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-photo-panel::before {
        background:
            linear-gradient(90deg, rgba(255, 255, 255, .98) 0 30%, rgba(255, 255, 255, .74) 56%, rgba(255, 255, 255, .28) 100%),
            linear-gradient(180deg, rgba(255, 255, 255, .78), rgba(255, 255, 255, .18)) !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-photo-copy {
        position: relative !important;
        z-index: 2 !important;
        width: min(690px, 100%) !important;
        display: grid !important;
        gap: clamp(8px, 1.7vh, 14px) !important;
        justify-self: start !important;
        align-self: start !important;
        color: #081f58 !important;
        text-align: left !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-photo-copy h1 {
        width: min(430px, 100%) !important;
        margin: 0 !important;
        color: #081f58 !important;
        font-size: clamp(38px, 4.1vw, 50px) !important;
        font-weight: 950 !important;
        line-height: 1.02 !important;
        letter-spacing: 0 !important;
        text-shadow: none !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-photo-copy h1 span {
        display: block !important;
        color: #18bca7 !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-photo-copy h1::after {
        width: 68px !important;
        height: 4px !important;
        margin-top: clamp(8px, 1.4vh, 13px) !important;
        background: #8d80ff !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-photo-copy > span:not(.guardian-hero-emblem) {
        width: min(395px, 100%) !important;
        color: #263865 !important;
        font-size: clamp(13px, 1.25vw, 15px) !important;
        font-weight: 600 !important;
        line-height: 1.42 !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-feature-grid {
        width: min(690px, 100%) !important;
        display: grid !important;
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
        gap: clamp(7px, 1.2vh, 10px) !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-feature-grid article {
        min-height: clamp(70px, 12.8vh, 98px) !important;
        display: grid !important;
        grid-template-columns: clamp(36px, 4vw, 48px) minmax(0, 1fr) !important;
        grid-template-rows: auto 1fr !important;
        gap: 2px clamp(8px, 1vw, 12px) !important;
        align-content: start !important;
        padding: clamp(8px, 1.5vh, 13px) clamp(10px, 1.2vw, 14px) !important;
        border-radius: 12px !important;
        background: rgba(255, 255, 255, .88) !important;
        box-shadow: 0 12px 24px rgba(30, 45, 95, .12) !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-feature-grid article svg {
        width: clamp(34px, 3.5vw, 42px) !important;
        height: clamp(34px, 3.5vw, 42px) !important;
        padding: clamp(8px, .9vw, 10px) !important;
        border-radius: 50% !important;
        color: #fff !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-feature-grid strong {
        color: #081f58 !important;
        font-size: clamp(11px, 1vw, 13px) !important;
        font-weight: 900 !important;
        line-height: 1.12 !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-feature-grid span {
        color: #30436e !important;
        font-size: clamp(9px, .82vw, 10.5px) !important;
        line-height: 1.22 !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-protection-card {
        width: min(690px, 100%) !important;
        min-height: clamp(54px, 9vh, 72px) !important;
        display: grid !important;
        grid-template-columns: clamp(44px, 4.6vw, 58px) minmax(0, 1fr) !important;
        align-items: center !important;
        gap: clamp(10px, 1.2vw, 14px) !important;
        padding: clamp(8px, 1.3vh, 12px) clamp(14px, 1.8vw, 20px) !important;
        border-radius: 14px !important;
        background: rgba(255, 255, 255, .8) !important;
        box-shadow: 0 12px 26px rgba(34, 50, 104, .1) !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-protection-icon {
        width: clamp(42px, 4.4vw, 54px) !important;
        height: clamp(42px, 4.4vw, 54px) !important;
        border-radius: 14px !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-protection-icon svg {
        width: clamp(22px, 2.2vw, 28px) !important;
        height: clamp(22px, 2.2vw, 28px) !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-protection-card strong {
        color: #081f58 !important;
        font-size: clamp(12px, 1.1vw, 14px) !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-protection-card span {
        margin-top: 2px !important;
        color: #30436e !important;
        font-size: clamp(10px, .9vw, 12px) !important;
        line-height: 1.25 !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-access-panel {
        position: relative !important;
        z-index: 2 !important;
        width: min(500px, calc(100% - 44px)) !important;
        height: calc(100dvh - clamp(24px, 4vh, 44px)) !important;
        min-height: 0 !important;
        display: grid !important;
        grid-template-rows: auto minmax(0, 1fr) clamp(50px, 8.5vh, 62px) !important;
        align-content: stretch !important;
        align-self: center !important;
        justify-self: center !important;
        gap: clamp(6px, 1.2vh, 12px) !important;
        margin: clamp(12px, 2vh, 22px) clamp(22px, 2.4vw, 34px) clamp(12px, 2vh, 22px) 0 !important;
        padding: clamp(12px, 2vh, 20px) clamp(26px, 2.6vw, 34px) 0 !important;
        border-radius: 30px !important;
        background: rgba(255, 255, 255, .98) !important;
        box-shadow: 0 22px 54px rgba(0, 18, 74, .32) !important;
        overflow: hidden !important;
        transform: none !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-access-panel::before {
        inset: 12px !important;
        border-radius: 24px !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-login-copy {
        display: grid !important;
        justify-items: center !important;
        gap: clamp(5px, 1vh, 9px) !important;
        padding: 0 !important;
        text-align: center !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-access-icon {
        width: clamp(56px, 9.5vh, 76px) !important;
        height: clamp(56px, 9.5vh, 76px) !important;
        margin: 0 auto !important;
        border-radius: 50% !important;
        color: #18bca7 !important;
        background: #fff !important;
        box-shadow: 0 12px 24px rgba(17, 33, 89, .12) !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-access-icon svg {
        width: clamp(30px, 4.8vh, 40px) !important;
        height: clamp(30px, 4.8vh, 40px) !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-login-copy h2 {
        margin: 2px 0 0 !important;
        color: #081f58 !important;
        font-size: clamp(24px, 4vh, 30px) !important;
        font-weight: 900 !important;
        line-height: 1.15 !important;
        text-align: center !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-login-copy h2 span {
        color: #18bca7 !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-login-copy h2::after {
        width: 74px !important;
        height: 4px !important;
        margin: clamp(6px, 1.1vh, 10px) auto 0 !important;
        background: #18bca7 !important;
        box-shadow: 18px 0 0 -1px #18bca7 !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-login-copy p {
        margin: 0 !important;
        color: #4d5b80 !important;
        font-size: clamp(12px, 2vh, 14px) !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-form {
        display: grid !important;
        align-self: start !important;
        gap: clamp(6px, 1.2vh, 10px) !important;
        min-height: 0 !important;
        overflow: hidden !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-form label {
        display: grid !important;
        gap: clamp(4px, .8vh, 6px) !important;
        color: #081f58 !important;
        font-size: clamp(11px, 1.9vh, 13px) !important;
        font-weight: 800 !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-input {
        min-height: clamp(39px, 6.8vh, 48px) !important;
        height: clamp(39px, 6.8vh, 48px) !important;
        grid-template-columns: 42px minmax(0, 1fr) 42px !important;
        gap: 0 !important;
        padding: 0 10px !important;
        border-radius: 12px !important;
        background: rgba(255, 255, 255, .94) !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-input > svg {
        width: 21px !important;
        height: 21px !important;
        justify-self: center !important;
        color: #081f58 !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-form input {
        width: 100% !important;
        min-width: 0 !important;
        height: clamp(38px, 6.6vh, 46px) !important;
        min-height: clamp(38px, 6.6vh, 46px) !important;
        padding: 0 !important;
        border: 0 !important;
        outline: 0 !important;
        background: transparent !important;
        box-shadow: none !important;
        color: #081f58 !important;
        font-size: clamp(13px, 2vh, 15px) !important;
        font-weight: 600 !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-password-toggle {
        width: 42px !important;
        min-width: 42px !important;
        height: clamp(38px, 6.6vh, 46px) !important;
        min-height: clamp(38px, 6.6vh, 46px) !important;
        padding: 0 !important;
        border: 0 !important;
        color: transparent !important;
        background: transparent !important;
        font-size: 0 !important;
        overflow: hidden !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-password-toggle::before {
        width: 22px !important;
        height: 22px !important;
        background: #081f58 !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-form .guardian-remember {
        width: 100% !important;
        display: flex !important;
        grid-template-columns: none !important;
        align-items: center !important;
        gap: 8px !important;
        margin: 0 !important;
        padding: 0 !important;
        color: #081f58 !important;
        font-size: clamp(12px, 1.8vh, 13px) !important;
        font-weight: 600 !important;
        line-height: 1 !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-form .guardian-remember::after {
        content: "\00bfOlvidaste tu contrase\00f1 a?" !important;
        margin-left: auto !important;
        color: #0f7f73 !important;
        font-weight: 500 !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-form .guardian-remember input[type="checkbox"] {
        width: 17px !important;
        min-width: 17px !important;
        max-width: 17px !important;
        height: 17px !important;
        min-height: 17px !important;
        max-height: 17px !important;
        flex: 0 0 17px !important;
        margin: 0 !important;
        padding: 0 !important;
        appearance: auto !important;
        -webkit-appearance: checkbox !important;
        accent-color: #18bca7 !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-submit {
        min-height: clamp(40px, 7vh, 48px) !important;
        height: clamp(40px, 7vh, 48px) !important;
        margin: 0 !important;
        border-radius: 999px !important;
        background: linear-gradient(135deg, #6548f4, #4c38e0) !important;
        color: #fff !important;
        font-size: clamp(14px, 2.2vh, 16px) !important;
        font-weight: 900 !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-submit svg:last-child {
        display: none !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-quick-access {
        display: grid !important;
        gap: clamp(5px, 1vh, 8px) !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-quick-access > span {
        display: grid !important;
        grid-template-columns: 1fr auto 1fr !important;
        align-items: center !important;
        gap: 10px !important;
        color: #1e316b !important;
        font-size: clamp(11px, 1.8vh, 13px) !important;
        line-height: 1 !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-quick-access > div {
        min-height: clamp(44px, 7.8vh, 58px) !important;
        display: grid !important;
        grid-template-columns: 36px minmax(0, 1fr) 20px !important;
        align-items: center !important;
        gap: 8px !important;
        padding: 7px 11px !important;
        border-radius: 12px !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-quick-access svg {
        width: 24px !important;
        height: 24px !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-quick-access strong {
        font-size: clamp(12px, 1.9vh, 13px) !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-quick-access small {
        margin-top: 2px !important;
        font-size: clamp(10px, 1.6vh, 11px) !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-login-footer {
        min-height: clamp(50px, 8.5vh, 62px) !important;
        display: grid !important;
        grid-template-columns: 34px minmax(0, 1fr) 34px !important;
        gap: 10px !important;
        margin-inline: calc(clamp(26px, 2.6vw, 34px) * -1) !important;
        padding: 8px clamp(26px, 2.6vw, 34px) !important;
        color: #fff !important;
        background: linear-gradient(135deg, #31426e, #1d2d60) !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-login-footer svg {
        width: 23px !important;
        height: 23px !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-login-footer strong {
        color: #fff !important;
        font-size: clamp(11px, 1.8vh, 12px) !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-login-footer small {
        color: rgba(255, 255, 255, .82) !important;
        font-size: clamp(9px, 1.5vh, 10px) !important;
    }
}

@media (min-width: 921px) and (max-height: 640px) {
    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-protection-card {
        display: none !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-photo-panel {
        padding-top: clamp(110px, 20vh, 136px) !important;
    }
}

/* v6 top-fit: elimina franja superior y aprovecha pantallas de notebook/All-in-One. */
@media (min-width: 921px) and (max-height: 780px) {
    html:has(body.body-portal-apoderado:has(#guardianLoginView:not([hidden]))) {
        width: 100% !important;
        height: 100% !important;
        min-height: 100% !important;
        margin: 0 !important;
        padding: 0 !important;
        overflow: hidden !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) {
        width: 100% !important;
        height: 100vh !important;
        height: 100dvh !important;
        min-height: 0 !important;
        margin: 0 !important;
        padding: 0 !important;
        display: block !important;
        overflow: hidden !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-topbar {
        display: none !important;
        height: 0 !important;
        min-height: 0 !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-shell {
        position: fixed !important;
        z-index: 1 !important;
        inset: 0 !important;
        width: 100vw !important;
        height: 100vh !important;
        height: 100dvh !important;
        min-height: 0 !important;
        margin: 0 !important;
        padding: 0 !important;
        overflow: hidden !important;
        transform: none !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView.guardian-login-card {
        position: absolute !important;
        inset: 0 !important;
        width: 100vw !important;
        height: 100vh !important;
        height: 100dvh !important;
        min-height: 0 !important;
        margin: 0 !important;
        padding: 0 !important;
        display: grid !important;
        grid-template-columns: minmax(670px, 58.2vw) minmax(495px, 41.8vw) !important;
        overflow: hidden !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView > .guardian-portal-brand {
        top: clamp(8px, 1.8vh, 16px) !important;
        left: clamp(34px, 3.2vw, 48px) !important;
        grid-template-columns: clamp(88px, 8vw, 110px) minmax(0, 1fr) !important;
        gap: clamp(12px, 1.3vw, 16px) !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView > .guardian-portal-brand img {
        width: clamp(88px, 8vw, 110px) !important;
        height: clamp(106px, 9.8vw, 132px) !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView > .guardian-portal-brand strong {
        font-size: clamp(20px, 1.9vw, 25px) !important;
        line-height: 1.08 !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView > .guardian-portal-brand span {
        font-size: clamp(12px, 1vw, 14px) !important;
        line-height: 1.2 !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView > .guardian-portal-brand span::after {
        width: 70px !important;
        margin-top: 7px !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-photo-panel {
        height: 100vh !important;
        height: 100dvh !important;
        padding: clamp(95px, 18vh, 124px) clamp(34px, 3.4vw, 48px) 8px !important;
        align-items: start !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-photo-copy {
        gap: clamp(7px, 1.25vh, 10px) !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-photo-copy h1 {
        font-size: clamp(36px, 3.85vw, 46px) !important;
        line-height: 1.01 !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-photo-copy h1::after {
        margin-top: 7px !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-photo-copy > span:not(.guardian-hero-emblem) {
        font-size: clamp(12px, 1.12vw, 14px) !important;
        line-height: 1.35 !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-feature-grid {
        gap: 7px !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-feature-grid article {
        min-height: clamp(64px, 11.6vh, 88px) !important;
        padding: clamp(7px, 1.1vh, 10px) clamp(9px, 1vw, 12px) !important;
        grid-template-columns: clamp(34px, 3.6vw, 42px) minmax(0, 1fr) !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-feature-grid article svg {
        width: clamp(32px, 3.2vw, 38px) !important;
        height: clamp(32px, 3.2vw, 38px) !important;
        padding: 8px !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-feature-grid strong {
        font-size: clamp(10.5px, .95vw, 12px) !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-feature-grid span {
        font-size: clamp(8.8px, .78vw, 9.8px) !important;
        line-height: 1.16 !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-protection-card {
        min-height: clamp(46px, 7.6vh, 60px) !important;
        padding: 7px 14px !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-protection-icon {
        width: clamp(38px, 4vw, 46px) !important;
        height: clamp(38px, 4vw, 46px) !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-access-panel {
        width: min(486px, calc(100% - 36px)) !important;
        height: calc(100dvh - 16px) !important;
        align-self: start !important;
        margin: 8px clamp(18px, 2.2vw, 28px) 8px 0 !important;
        padding: clamp(10px, 1.6vh, 14px) clamp(24px, 2.3vw, 30px) 0 !important;
        gap: clamp(5px, .85vh, 8px) !important;
        border-radius: 28px !important;
        grid-template-rows: auto minmax(0, 1fr) clamp(46px, 7.4vh, 54px) !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-access-panel::before {
        inset: 11px !important;
        border-radius: 22px !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-login-copy {
        gap: clamp(4px, .7vh, 6px) !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-access-icon {
        width: clamp(50px, 8vh, 64px) !important;
        height: clamp(50px, 8vh, 64px) !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-access-icon svg {
        width: clamp(27px, 4.2vh, 34px) !important;
        height: clamp(27px, 4.2vh, 34px) !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-login-copy h2 {
        font-size: clamp(22px, 3.5vh, 27px) !important;
        line-height: 1.12 !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-login-copy h2::after {
        margin-top: 5px !important;
        width: 70px !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-login-copy p {
        font-size: clamp(11px, 1.7vh, 13px) !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-form {
        gap: clamp(5px, .85vh, 7px) !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-form label {
        gap: 4px !important;
        font-size: clamp(10.5px, 1.65vh, 12px) !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-input {
        min-height: clamp(36px, 6vh, 42px) !important;
        height: clamp(36px, 6vh, 42px) !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-form input,
    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-password-toggle {
        height: clamp(35px, 5.8vh, 40px) !important;
        min-height: clamp(35px, 5.8vh, 40px) !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-submit {
        min-height: clamp(38px, 6.4vh, 44px) !important;
        height: clamp(38px, 6.4vh, 44px) !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-quick-access {
        gap: 4px !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-quick-access > div {
        min-height: clamp(38px, 6.6vh, 48px) !important;
        padding: 5px 10px !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-login-footer {
        min-height: clamp(44px, 7.3vh, 52px) !important;
        padding-block: 6px !important;
    }
}

/* v8: insignia mas grande en escritorio y login movil dedicado. */
@media (min-width: 921px) {
    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView > .guardian-portal-brand {
        grid-template-columns: clamp(132px, 10vw, 156px) minmax(0, 1fr) !important;
        gap: clamp(18px, 1.8vw, 26px) !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView > .guardian-portal-brand img {
        width: clamp(132px, 10vw, 156px) !important;
        height: clamp(158px, 12vw, 188px) !important;
        object-fit: contain !important;
        transform: scale(1.08) !important;
        transform-origin: center center !important;
    }
}

@media (max-width: 920px) {
    html:has(body.body-portal-apoderado:has(#guardianLoginView:not([hidden]))) {
        min-height: 100% !important;
        overflow-x: hidden !important;
        overflow-y: auto !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) {
        min-height: 100dvh !important;
        margin: 0 !important;
        padding: 0 !important;
        overflow-x: hidden !important;
        overflow-y: auto !important;
        background:
            linear-gradient(180deg, rgba(247, 249, 255, .92), rgba(235, 239, 255, .96)),
            url("../images/frontis-web.jpg") center / cover no-repeat fixed !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-topbar {
        display: none !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-shell {
        width: 100% !important;
        height: auto !important;
        min-height: 100dvh !important;
        margin: 0 !important;
        padding: 12px !important;
        overflow: visible !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView.guardian-login-card {
        width: 100% !important;
        height: auto !important;
        min-height: calc(100dvh - 24px) !important;
        display: grid !important;
        grid-template-columns: 1fr !important;
        align-content: start !important;
        gap: 12px !important;
        margin: 0 !important;
        padding: 0 !important;
        overflow: visible !important;
        background: transparent !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView > .guardian-portal-brand {
        position: relative !important;
        z-index: 5 !important;
        top: auto !important;
        left: auto !important;
        width: min(100%, 430px) !important;
        display: grid !important;
        grid-template-columns: 96px minmax(0, 1fr) !important;
        gap: 14px !important;
        align-items: center !important;
        justify-self: center !important;
        margin: 0 auto !important;
        padding: 8px 6px 2px !important;
        color: #081f58 !important;
        text-align: left !important;
        opacity: 1 !important;
        filter: none !important;
        transform: none !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView > .guardian-portal-brand img {
        width: 96px !important;
        height: 116px !important;
        display: block !important;
        object-fit: contain !important;
        opacity: 1 !important;
        filter: drop-shadow(0 10px 18px rgba(8, 31, 88, .18)) !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView > .guardian-portal-brand strong {
        display: block !important;
        color: #081f58 !important;
        font-size: clamp(18px, 5.6vw, 24px) !important;
        font-weight: 950 !important;
        line-height: 1.08 !important;
        letter-spacing: 0 !important;
        text-transform: uppercase !important;
        text-shadow: none !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView > .guardian-portal-brand span {
        display: block !important;
        margin-top: 6px !important;
        color: #1d2e65 !important;
        font-size: clamp(12px, 3.5vw, 14px) !important;
        font-weight: 600 !important;
        line-height: 1.25 !important;
        opacity: 1 !important;
        text-shadow: none !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView > .guardian-portal-brand span::after {
        content: "" !important;
        display: block !important;
        width: 68px !important;
        height: 4px !important;
        margin-top: 8px !important;
        border-radius: 999px !important;
        background: #f0a000 !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-photo-panel {
        display: none !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-access-panel {
        position: relative !important;
        z-index: 2 !important;
        width: min(100%, 430px) !important;
        height: auto !important;
        min-height: 0 !important;
        display: grid !important;
        grid-template-rows: auto auto auto !important;
        align-content: start !important;
        justify-self: center !important;
        gap: 14px !important;
        margin: 0 auto !important;
        padding: 18px 18px 0 !important;
        border-radius: 24px !important;
        background: rgba(255, 255, 255, .98) !important;
        box-shadow: 0 18px 44px rgba(0, 18, 74, .22) !important;
        overflow: hidden !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-access-panel::before {
        inset: 10px !important;
        border-radius: 18px !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-login-copy {
        gap: 8px !important;
        padding: 0 !important;
        text-align: center !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-access-icon {
        width: 68px !important;
        height: 68px !important;
        margin: 0 auto !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-access-icon svg {
        width: 34px !important;
        height: 34px !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-login-copy h2 {
        margin: 2px 0 0 !important;
        font-size: clamp(23px, 7vw, 29px) !important;
        line-height: 1.15 !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-login-copy h2::after {
        width: 72px !important;
        margin-top: 8px !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-login-copy p {
        font-size: 13px !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-form {
        display: grid !important;
        gap: 12px !important;
        overflow: visible !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-form label {
        gap: 6px !important;
        font-size: 13px !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-input {
        min-height: 48px !important;
        height: 48px !important;
        grid-template-columns: 40px minmax(0, 1fr) 40px !important;
        padding: 0 8px !important;
        border-radius: 12px !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-form input,
    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-password-toggle {
        height: 46px !important;
        min-height: 46px !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-form .guardian-remember {
        width: 100% !important;
        display: flex !important;
        align-items: center !important;
        gap: 8px !important;
        font-size: 13px !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-form .guardian-remember::after {
        content: "\00bfOlvidaste tu contrase\00f1 a?" !important;
        margin-left: auto !important;
        color: #0f7f73 !important;
        font-weight: 500 !important;
        white-space: nowrap !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-form .guardian-remember input[type="checkbox"] {
        width: 17px !important;
        min-width: 17px !important;
        max-width: 17px !important;
        height: 17px !important;
        min-height: 17px !important;
        max-height: 17px !important;
        flex: 0 0 17px !important;
        margin: 0 !important;
        padding: 0 !important;
        appearance: auto !important;
        -webkit-appearance: checkbox !important;
        accent-color: #18bca7 !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-submit {
        min-height: 48px !important;
        height: 48px !important;
        font-size: 15px !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-quick-access {
        gap: 8px !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-quick-access > div {
        min-height: 58px !important;
        grid-template-columns: 38px minmax(0, 1fr) 20px !important;
        padding: 8px 12px !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-quick-access strong {
        font-size: 13px !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-quick-access small {
        font-size: 11px !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-login-footer {
        min-height: 58px !important;
        grid-template-columns: 30px minmax(0, 1fr) 30px !important;
        gap: 8px !important;
        margin-inline: -18px !important;
        padding: 8px 18px !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-login-footer strong {
        font-size: 12px !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-login-footer small {
        font-size: 10px !important;
    }
}

@media (max-width: 380px) {
    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-shell {
        padding: 10px !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView > .guardian-portal-brand {
        grid-template-columns: 82px minmax(0, 1fr) !important;
        gap: 10px !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView > .guardian-portal-brand img {
        width: 82px !important;
        height: 100px !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView > .guardian-portal-brand strong {
        font-size: 18px !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-form .guardian-remember {
        align-items: flex-start !important;
        flex-wrap: wrap !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-form .guardian-remember::after {
        width: 100% !important;
        margin-left: 25px !important;
    }
}

/* v9: solo aumenta la insignia del liceo. */
@media (min-width: 921px) {
    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView > .guardian-portal-brand {
        grid-template-columns: clamp(176px, 13vw, 210px) minmax(0, 1fr) !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView > .guardian-portal-brand img {
        width: clamp(176px, 13vw, 210px) !important;
        height: clamp(212px, 15.5vw, 252px) !important;
        transform: none !important;
    }
}

@media (max-width: 920px) {
    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView > .guardian-portal-brand {
        grid-template-columns: 142px minmax(0, 1fr) !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView > .guardian-portal-brand img {
        width: 142px !important;
        height: 172px !important;
    }
}

@media (max-width: 380px) {
    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView > .guardian-portal-brand {
        grid-template-columns: 124px minmax(0, 1fr) !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView > .guardian-portal-brand img {
        width: 124px !important;
        height: 150px !important;
    }
}

/* v10: en movil se elimina marca superior; en escritorio se fija insignia grande. */
@media (min-width: 921px) {
    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView > .guardian-portal-brand {
        grid-template-columns: 190px minmax(0, 1fr) !important;
        gap: 28px !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView > .guardian-portal-brand img {
        width: 190px !important;
        min-width: 190px !important;
        max-width: 190px !important;
        height: 228px !important;
        min-height: 228px !important;
        max-height: 228px !important;
        object-fit: contain !important;
        transform: none !important;
    }
}

@media (max-width: 920px) {
    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView > .guardian-portal-brand {
        display: none !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView.guardian-login-card {
        gap: 0 !important;
    }
}

/* v11: insignia proporcionada en escritorio, sin tapar el contenido. */
@media (min-width: 921px) {
    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView > .guardian-portal-brand {
        grid-template-columns: 112px minmax(0, 1fr) !important;
        gap: 18px !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView > .guardian-portal-brand img {
        width: 112px !important;
        min-width: 112px !important;
        max-width: 112px !important;
        height: 136px !important;
        min-height: 136px !important;
        max-height: 136px !important;
        object-fit: contain !important;
        transform: none !important;
    }
}

@media (min-width: 921px) and (max-height: 780px) {
    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView > .guardian-portal-brand {
        grid-template-columns: 104px minmax(0, 1fr) !important;
        gap: 16px !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView > .guardian-portal-brand img {
        width: 104px !important;
        min-width: 104px !important;
        max-width: 104px !important;
        height: 126px !important;
        min-height: 126px !important;
        max-height: 126px !important;
    }
}

/* v12: respira mejor el encabezado del login y baja un poco la insignia en escritorio. */
@media (min-width: 921px) {
    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView > .guardian-portal-brand {
        grid-template-columns: 100px minmax(0, 1fr) !important;
        gap: 18px !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView > .guardian-portal-brand img {
        width: 100px !important;
        min-width: 100px !important;
        max-width: 100px !important;
        height: 122px !important;
        min-height: 122px !important;
        max-height: 122px !important;
    }
}

@media (min-width: 921px) and (max-height: 780px) {
    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView > .guardian-portal-brand {
        top: clamp(18px, 3vh, 26px) !important;
        grid-template-columns: 92px minmax(0, 1fr) !important;
        gap: 15px !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView > .guardian-portal-brand img {
        width: 92px !important;
        min-width: 92px !important;
        max-width: 92px !important;
        height: 112px !important;
        min-height: 112px !important;
        max-height: 112px !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-photo-panel {
        padding-top: clamp(130px, 20vh, 150px) !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-photo-copy {
        gap: clamp(10px, 1.7vh, 14px) !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-feature-grid {
        gap: 10px !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-feature-grid article {
        min-height: clamp(76px, 12.6vh, 92px) !important;
        padding: clamp(9px, 1.35vh, 12px) clamp(11px, 1.15vw, 14px) !important;
    }
}

/* v13: panel fotografico del portal igual al login de intranet, con textos de apoderado. */
@media (min-width: 921px) {
    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-photo-panel {
        position: relative !important;
        min-width: 0 !important;
        min-height: 100dvh !important;
        display: grid !important;
        align-items: stretch !important;
        padding: 0 !important;
        overflow: hidden !important;
        color: #08255f !important;
        background: #f8fbff !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-photo-panel > img {
        position: absolute !important;
        inset: 0 !important;
        z-index: 0 !important;
        width: 100% !important;
        height: 100% !important;
        display: block !important;
        object-fit: cover !important;
        object-position: center center !important;
        opacity: 1 !important;
        filter: none !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-photo-panel::after {
        content: "" !important;
        position: absolute !important;
        inset: 0 !important;
        z-index: 1 !important;
        pointer-events: none !important;
        background:
            linear-gradient(90deg, rgba(255, 255, 255, .98) 0 23%, rgba(255, 255, 255, .78) 36%, rgba(255, 255, 255, .08) 69%, rgba(15, 127, 115, .26) 100%),
            linear-gradient(180deg, rgba(255, 255, 255, .04), rgba(15, 127, 115, .28)) !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-photo-panel::before {
        content: "" !important;
        position: absolute !important;
        inset: 0 !important;
        z-index: 2 !important;
        pointer-events: none !important;
        background:
            radial-gradient(circle at 0 67%, rgba(4, 71, 157, .18), transparent 29%),
            linear-gradient(180deg, transparent 0 74%, rgba(15, 127, 115, .74) 100%),
            linear-gradient(120deg, transparent 0 50%, rgba(24, 188, 167, .22) 50% 100%) !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView > .guardian-portal-brand {
        position: absolute !important;
        z-index: 4 !important;
        top: clamp(24px, 2.7vw, 34px) !important;
        left: clamp(24px, 3vw, 42px) !important;
        width: min(820px, calc(58vw - 48px)) !important;
        display: grid !important;
        grid-template-columns: 94px minmax(0, 1fr) !important;
        align-items: center !important;
        gap: 18px !important;
        margin: 0 !important;
        padding: 0 !important;
        color: #08255f !important;
        text-align: left !important;
        filter: none !important;
        transform: none !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView > .guardian-portal-brand img {
        width: 94px !important;
        min-width: 94px !important;
        max-width: 94px !important;
        height: 116px !important;
        min-height: 116px !important;
        max-height: 116px !important;
        display: block !important;
        object-fit: contain !important;
        filter: drop-shadow(0 8px 14px rgba(2, 35, 88, .16)) !important;
        transform: none !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView > .guardian-portal-brand strong {
        display: block !important;
        margin: 0 !important;
        color: #08255f !important;
        font-size: clamp(28px, 2.25vw, 36px) !important;
        font-weight: 950 !important;
        line-height: 1.08 !important;
        text-transform: uppercase !important;
        text-shadow: none !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView > .guardian-portal-brand span {
        position: relative !important;
        display: block !important;
        margin: 12px 0 0 !important;
        color: #08255f !important;
        font-size: clamp(15px, 1.25vw, 18px) !important;
        font-style: italic !important;
        font-weight: 650 !important;
        line-height: 1.25 !important;
        opacity: 1 !important;
        text-shadow: none !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView > .guardian-portal-brand span::after,
    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-photo-copy h1::after {
        content: "" !important;
        display: block !important;
        width: 58px !important;
        height: 4px !important;
        margin-top: 12px !important;
        border-radius: 999px !important;
        background: #f5a000 !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-photo-copy {
        position: relative !important;
        z-index: 3 !important;
        width: min(820px, calc(100% - 48px)) !important;
        min-height: 100% !important;
        display: grid !important;
        align-content: start !important;
        gap: 18px !important;
        padding: clamp(165px, 22vh, 210px) clamp(24px, 3vw, 42px) clamp(28px, 3vw, 42px) !important;
        color: #08255f !important;
        text-align: left !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-hero-emblem,
    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-feature-grid,
    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-protection-card {
        display: none !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-photo-copy h1 {
        width: min(440px, 100%) !important;
        margin: 0 0 0 !important;
        color: #08255f !important;
        font-size: clamp(42px, 3.75vw, 56px) !important;
        font-weight: 950 !important;
        line-height: 1.06 !important;
        text-shadow: none !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-photo-copy h1 span {
        display: block !important;
        color: #f5a000 !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-photo-copy > span:not(.guardian-hero-emblem) {
        width: min(390px, 100%) !important;
        color: #08255f !important;
        font-size: clamp(15px, 1.25vw, 18px) !important;
        font-weight: 700 !important;
        line-height: 1.55 !important;
        text-shadow: none !important;
    }
}

@media (min-width: 921px) and (max-height: 780px) {
    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView > .guardian-portal-brand {
        top: clamp(14px, 2.2vh, 24px) !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-photo-copy {
        padding-top: clamp(154px, 23vh, 176px) !important;
    }
}

/* v15: corrige el login del Portal Apoderado para ocupar el alto completo y dejar la capa azul sobre la foto. */
@media (min-width: 921px) {
    html:has(body.body-portal-apoderado #guardianLoginView:not([hidden])),
    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])),
    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-shell,
    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView.guardian-login-card {
        width: 100% !important;
        height: 100vh !important;
        height: 100dvh !important;
        min-height: 100vh !important;
        min-height: 100dvh !important;
        margin: 0 !important;
        padding: 0 !important;
        overflow: hidden !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView.guardian-login-card {
        position: fixed !important;
        inset: 0 !important;
        z-index: 10 !important;
        display: grid !important;
        grid-template-columns: minmax(760px, 1fr) minmax(520px, 598px) !important;
        align-items: stretch !important;
        gap: 0 !important;
        background:
            radial-gradient(circle at 83% 22%, rgba(255, 255, 255, .16), transparent 19%),
            linear-gradient(105deg, #fbfcff 0 54%, #0f7f73 54% 100%) !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView > .guardian-photo-panel {
        position: relative !important;
        min-height: 100dvh !important;
        padding: 0 !important;
        border-radius: 0 !important;
        overflow: hidden !important;
        background: #f8fbff !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView > .guardian-photo-panel > img {
        position: absolute !important;
        inset: 0 !important;
        z-index: 0 !important;
        width: 100% !important;
        height: 100% !important;
        object-fit: cover !important;
        object-position: center center !important;
        opacity: 1 !important;
        filter: none !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView > .guardian-photo-panel::after {
        content: "" !important;
        position: absolute !important;
        inset: 0 !important;
        z-index: 1 !important;
        pointer-events: none !important;
        background:
            linear-gradient(90deg, rgba(255, 255, 255, .98) 0 23%, rgba(255, 255, 255, .78) 36%, rgba(255, 255, 255, .08) 69%, rgba(15, 127, 115, .26) 100%),
            linear-gradient(180deg, rgba(255, 255, 255, .04), rgba(15, 127, 115, .28)) !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView > .guardian-photo-panel::before {
        content: "" !important;
        position: absolute !important;
        inset: 0 !important;
        z-index: 2 !important;
        pointer-events: none !important;
        background:
            radial-gradient(circle at 0 67%, rgba(4, 71, 157, .18), transparent 29%),
            linear-gradient(180deg, transparent 0 74%, rgba(15, 127, 115, .74) 100%),
            linear-gradient(120deg, transparent 0 50%, rgba(24, 188, 167, .24) 50% 100%) !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView > .guardian-photo-panel .guardian-photo-copy {
        position: relative !important;
        z-index: 3 !important;
        min-height: 100% !important;
        padding: clamp(165px, 22vh, 210px) clamp(24px, 3vw, 42px) clamp(28px, 3vw, 42px) !important;
        align-content: start !important;
    }
}

/* v16: tarjetas informativas del login del Portal Apoderado. */
@media (min-width: 921px) {
    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView > .guardian-photo-panel .guardian-photo-copy {
        width: min(830px, calc(100% - 48px)) !important;
        gap: clamp(12px, 1.55vh, 18px) !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView .guardian-feature-grid {
        width: min(780px, 100%) !important;
        display: grid !important;
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
        gap: 12px !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView .guardian-feature-grid article {
        min-width: 0 !important;
        min-height: 108px !important;
        display: grid !important;
        grid-template-columns: 48px minmax(0, 1fr) !important;
        grid-template-rows: auto 1fr !important;
        gap: 4px 12px !important;
        align-content: start !important;
        padding: 14px 15px !important;
        border: 1px solid rgba(255, 255, 255, .72) !important;
        border-radius: 8px !important;
        background: rgba(255, 255, 255, .9) !important;
        box-shadow: 0 14px 30px rgba(15, 35, 90, .14) !important;
        backdrop-filter: blur(10px) !important;
        -webkit-backdrop-filter: blur(10px) !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView .guardian-feature-grid article svg {
        grid-row: 1 / span 2 !important;
        width: 42px !important;
        height: 42px !important;
        padding: 10px !important;
        border-radius: 50% !important;
        color: #ffffff !important;
        background: #18bca7 !important;
        box-shadow: 0 10px 20px rgba(91, 69, 238, .26) !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView .guardian-feature-grid article:nth-child(2) svg {
        background: #2f7df2 !important;
        box-shadow: 0 10px 20px rgba(47, 125, 242, .24) !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView .guardian-feature-grid article:nth-child(3) svg {
        background: #56b750 !important;
        box-shadow: 0 10px 20px rgba(86, 183, 80, .24) !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView .guardian-feature-grid article:nth-child(4) svg {
        background: #ff981f !important;
        box-shadow: 0 10px 20px rgba(255, 152, 31, .24) !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView .guardian-feature-grid article:nth-child(5) svg {
        background: #0ba8b7 !important;
        box-shadow: 0 10px 20px rgba(11, 168, 183, .24) !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView .guardian-feature-grid article:nth-child(6) svg {
        background: #ef4f78 !important;
        box-shadow: 0 10px 20px rgba(239, 79, 120, .24) !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView .guardian-feature-grid strong {
        align-self: end !important;
        color: #071f5a !important;
        font-size: 14px !important;
        font-weight: 900 !important;
        line-height: 1.14 !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView .guardian-feature-grid span {
        color: #405174 !important;
        font-size: 11px !important;
        font-weight: 500 !important;
        line-height: 1.35 !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView .guardian-protection-card {
        position: relative !important;
        width: min(780px, 100%) !important;
        min-height: 92px !important;
        display: grid !important;
        grid-template-columns: 58px minmax(0, 1fr) 92px !important;
        align-items: center !important;
        gap: 18px !important;
        padding: 16px 24px !important;
        border: 1px solid rgba(255, 255, 255, .76) !important;
        border-radius: 8px !important;
        background: rgba(255, 255, 255, .9) !important;
        box-shadow: 0 16px 32px rgba(15, 35, 90, .14) !important;
        overflow: hidden !important;
        backdrop-filter: blur(10px) !important;
        -webkit-backdrop-filter: blur(10px) !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView .guardian-protection-icon {
        width: 54px !important;
        height: 54px !important;
        display: grid !important;
        place-items: center !important;
        border-radius: 14px !important;
        color: #ffffff !important;
        background: #18bca7 !important;
        box-shadow: 0 12px 22px rgba(91, 69, 238, .28) !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView .guardian-protection-icon svg {
        width: 28px !important;
        height: 28px !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView .guardian-protection-card p {
        margin: 0 !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView .guardian-protection-card strong,
    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView .guardian-protection-card span {
        display: block !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView .guardian-protection-card strong {
        color: #071f5a !important;
        font-size: 14px !important;
        font-weight: 900 !important;
        line-height: 1.2 !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView .guardian-protection-card span {
        margin-top: 5px !important;
        color: #405174 !important;
        font-size: 11px !important;
        font-weight: 500 !important;
        line-height: 1.35 !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView .guardian-protection-shield {
        justify-self: end !important;
        width: 78px !important;
        height: 78px !important;
        color: rgba(91, 69, 238, .18) !important;
        fill: rgba(91, 69, 238, .12) !important;
        stroke-width: 1.7 !important;
    }
}

@media (min-width: 921px) and (max-height: 820px) {
    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView > .guardian-photo-panel .guardian-photo-copy {
        padding-top: clamp(138px, 20vh, 158px) !important;
        gap: 10px !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView .guardian-feature-grid {
        gap: 9px !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView .guardian-feature-grid article {
        min-height: 88px !important;
        grid-template-columns: 40px minmax(0, 1fr) !important;
        padding: 10px 12px !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView .guardian-feature-grid article svg {
        width: 34px !important;
        height: 34px !important;
        padding: 8px !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView .guardian-feature-grid strong {
        font-size: 12px !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView .guardian-feature-grid span {
        font-size: 9.5px !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView .guardian-protection-card {
        min-height: 70px !important;
        grid-template-columns: 46px minmax(0, 1fr) 62px !important;
        gap: 12px !important;
        padding: 10px 16px !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView .guardian-protection-icon {
        width: 42px !important;
        height: 42px !important;
        border-radius: 12px !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView .guardian-protection-icon svg {
        width: 22px !important;
        height: 22px !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView .guardian-protection-shield {
        width: 58px !important;
        height: 58px !important;
    }
}

/* v17: las tarjetas usan el espacio horizontal disponible del panel fotografico. */
@media (min-width: 921px) {
    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView > .guardian-photo-panel .guardian-photo-copy {
        width: clamp(720px, 58vw, 880px) !important;
        max-width: none !important;
        justify-self: start !important;
        gap: clamp(16px, 1.8vh, 22px) !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView .guardian-feature-grid,
    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView .guardian-protection-card {
        width: clamp(680px, 54vw, 840px) !important;
        min-width: 680px !important;
        max-width: none !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView .guardian-feature-grid {
        grid-template-columns: repeat(3, minmax(208px, 1fr)) !important;
        gap: 14px !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView .guardian-feature-grid article {
        min-height: 116px !important;
        grid-template-columns: 52px minmax(0, 1fr) !important;
        gap: 5px 14px !important;
        padding: 16px 18px !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView .guardian-feature-grid article svg {
        width: 44px !important;
        height: 44px !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView .guardian-feature-grid strong {
        font-size: 14.5px !important;
        line-height: 1.16 !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView .guardian-feature-grid span {
        font-size: 11.5px !important;
        line-height: 1.38 !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView .guardian-protection-card {
        min-height: 94px !important;
        grid-template-columns: 62px minmax(0, 1fr) 86px !important;
        gap: 18px !important;
        padding: 17px 26px !important;
    }
}

@media (min-width: 921px) and (max-height: 820px) {
    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView > .guardian-photo-panel .guardian-photo-copy {
        width: clamp(700px, 58vw, 840px) !important;
        gap: 12px !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView .guardian-feature-grid,
    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView .guardian-protection-card {
        width: clamp(660px, 54vw, 800px) !important;
        min-width: 660px !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView .guardian-feature-grid {
        grid-template-columns: repeat(3, minmax(200px, 1fr)) !important;
        gap: 11px !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView .guardian-feature-grid article {
        min-height: 98px !important;
        grid-template-columns: 44px minmax(0, 1fr) !important;
        padding: 12px 15px !important;
    }
}

/* v18: elimina capas decorativas posteriores y pega el login al borde superior. */
html:has(body.body-portal-apoderado #guardianLoginView:not([hidden])),
html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) {
    margin: 0 !important;
    padding: 0 !important;
    width: 100% !important;
    min-width: 100% !important;
    height: 100vh !important;
    height: 100dvh !important;
    min-height: 100vh !important;
    min-height: 100dvh !important;
    overflow: hidden !important;
    background: #0f7f73 !important;
}

html body.body-portal-apoderado:has(#guardianLoginView:not([hidden]))::before,
html body.body-portal-apoderado:has(#guardianLoginView:not([hidden]))::after {
    content: none !important;
    display: none !important;
    background: none !important;
}

html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-topbar {
    display: none !important;
    height: 0 !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
}

html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-shell,
html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView.guardian-login-card {
    position: fixed !important;
    inset: 0 !important;
    top: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    left: 0 !important;
    width: 100vw !important;
    max-width: 100vw !important;
    height: 100vh !important;
    height: 100dvh !important;
    min-height: 100vh !important;
    min-height: 100dvh !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    overflow: hidden !important;
}

html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView.guardian-login-card {
    display: grid !important;
    grid-template-columns: minmax(760px, 1fr) minmax(520px, 598px) !important;
    background: linear-gradient(105deg, #fbfcff 0 54%, #0f7f73 54% 100%) !important;
}

/* v25: restaura el login a pantalla completa con portada izquierda y acceso derecho. */
@media (min-width: 921px) {
    html,
    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])),
    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-shell {
        width: 100% !important;
        height: 100vh !important;
        height: 100dvh !important;
        margin: 0 !important;
        padding: 0 !important;
        overflow: hidden !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-topbar {
        display: none !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-shell {
        position: fixed !important;
        inset: 0 !important;
        max-width: none !important;
        transform: none !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView.guardian-login-card {
        position: fixed !important;
        inset: 0 !important;
        width: 100vw !important;
        max-width: none !important;
        height: 100vh !important;
        height: 100dvh !important;
        min-height: 100vh !important;
        min-height: 100dvh !important;
        margin: 0 !important;
        padding: 0 !important;
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) minmax(500px, 598px) !important;
        align-items: stretch !important;
        gap: 0 !important;
        overflow: hidden !important;
        background: linear-gradient(105deg, #fbfcff 0 calc(100% - 598px), #0f7f73 calc(100% - 598px) 100%) !important;
        border: 0 !important;
        border-radius: 0 !important;
        box-shadow: none !important;
        transform: none !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView > .guardian-photo-panel {
        position: relative !important;
        grid-column: 1 !important;
        min-height: 100dvh !important;
        display: grid !important;
        align-items: stretch !important;
        padding: 0 !important;
        overflow: hidden !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView > .guardian-access-panel {
        position: relative !important;
        grid-column: 2 !important;
        align-self: center !important;
        justify-self: center !important;
        width: min(540px, calc(100% - 48px)) !important;
        max-width: 540px !important;
        height: auto !important;
        min-height: min(760px, calc(100dvh - 44px)) !important;
        max-height: calc(100dvh - 44px) !important;
        margin: 0 !important;
        overflow: auto !important;
        transform: none !important;
        z-index: 5 !important;
    }
}

/* v30: cierre definitivo movil, debe quedar al final del archivo. */
@media (max-width: 768px) {
    html:has(body.body-portal-apoderado #guardianLoginView:not([hidden])),
    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        height: auto !important;
        min-height: 100dvh !important;
        margin: 0 !important;
        padding: 0 !important;
        overflow-x: hidden !important;
        overflow-y: auto !important;
        background:
            linear-gradient(180deg, rgba(7, 30, 84, .7), rgba(15, 45, 143, .82)),
            url("../images/FRONTIS.JPG?v=20260803-frontis-optimized-v1") center / cover no-repeat fixed !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])),
    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) * {
        box-sizing: border-box !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden]))::before,
    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden]))::after,
    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-topbar,
    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView > .guardian-portal-brand,
    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView > .guardian-photo-panel {
        display: none !important;
        content: none !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-shell {
        position: relative !important;
        inset: auto !important;
        left: auto !important;
        right: auto !important;
        top: auto !important;
        bottom: auto !important;
        width: 100% !important;
        max-width: 100% !important;
        height: auto !important;
        min-height: 100dvh !important;
        margin: 0 !important;
        padding: 10px !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        overflow: visible !important;
        transform: none !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView.guardian-login-card {
        position: relative !important;
        inset: auto !important;
        left: auto !important;
        right: auto !important;
        top: auto !important;
        bottom: auto !important;
        width: min(100%, 360px) !important;
        max-width: calc(100vw - 20px) !important;
        height: auto !important;
        min-height: 0 !important;
        margin: 0 auto !important;
        padding: 0 !important;
        display: block !important;
        overflow: visible !important;
        border: 0 !important;
        border-radius: 0 !important;
        background: transparent !important;
        box-shadow: none !important;
        transform: none !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView > .guardian-access-panel {
        position: relative !important;
        inset: auto !important;
        grid-column: auto !important;
        width: 100% !important;
        max-width: 360px !important;
        height: auto !important;
        min-height: 0 !important;
        max-height: none !important;
        margin: 0 auto !important;
        padding: 14px 12px 0 !important;
        display: grid !important;
        grid-template-rows: auto auto auto !important;
        gap: 10px !important;
        overflow: hidden !important;
        border: 1px solid rgba(255, 255, 255, .72) !important;
        border-radius: 20px !important;
        background: rgba(255, 255, 255, .98) !important;
        box-shadow: 0 20px 48px rgba(3, 18, 56, .3) !important;
        transform: none !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView > .guardian-access-panel::before {
        inset: 8px !important;
        border-radius: 15px !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-login-copy {
        display: grid !important;
        justify-items: center !important;
        gap: 7px !important;
        padding: 0 !important;
        text-align: center !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-access-icon {
        width: 58px !important;
        height: 58px !important;
        margin: 0 auto !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-access-icon svg {
        width: 29px !important;
        height: 29px !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-login-copy h2 {
        width: 100% !important;
        max-width: 100% !important;
        margin: 0 !important;
        font-size: clamp(20px, 6vw, 24px) !important;
        line-height: 1.12 !important;
        letter-spacing: 0 !important;
        text-align: center !important;
        overflow-wrap: normal !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-login-copy h2 span {
        display: block !important;
        white-space: normal !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-login-copy h2::after {
        width: 64px !important;
        height: 3px !important;
        margin: 7px auto 0 !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-login-copy p {
        margin: 0 !important;
        font-size: 12px !important;
        line-height: 1.3 !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-form {
        display: grid !important;
        gap: 9px !important;
        width: 100% !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-form label {
        gap: 5px !important;
        font-size: 12px !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-input {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        min-height: 44px !important;
        height: 44px !important;
        grid-template-columns: 36px minmax(0, 1fr) 36px !important;
        padding: 0 7px !important;
        border-radius: 12px !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-input svg {
        width: 19px !important;
        height: 19px !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-form input,
    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-password-toggle {
        width: 100% !important;
        min-width: 0 !important;
        height: 42px !important;
        min-height: 42px !important;
        font-size: 13px !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-password-toggle {
        display: grid !important;
        place-items: center !important;
        padding: 0 !important;
        overflow: hidden !important;
        color: transparent !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-password-toggle::before {
        content: "Ver" !important;
        color: #0c2a73 !important;
        font-size: 10px !important;
        font-weight: 900 !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-form .guardian-remember {
        width: 100% !important;
        display: grid !important;
        grid-template-columns: 17px minmax(0, 1fr) !important;
        align-items: center !important;
        gap: 8px !important;
        min-width: 0 !important;
        font-size: 12px !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-form .guardian-remember input[type="checkbox"] {
        width: 16px !important;
        min-width: 16px !important;
        height: 16px !important;
        margin: 0 !important;
        appearance: auto !important;
        -webkit-appearance: checkbox !important;
        accent-color: #18bca7 !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-form .guardian-remember::after {
        grid-column: 2 !important;
        width: auto !important;
        margin-left: 0 !important;
        color: #0f7f73 !important;
        font-size: 12px !important;
        font-weight: 700 !important;
        white-space: normal !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-submit {
        width: 100% !important;
        max-width: 100% !important;
        min-height: 46px !important;
        height: 46px !important;
        grid-template-columns: 22px minmax(0, auto) 22px !important;
        justify-content: center !important;
        gap: 9px !important;
        padding: 0 12px !important;
        border-radius: 14px !important;
        font-size: 14px !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-quick-access {
        gap: 7px !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-quick-access > div {
        width: 100% !important;
        min-width: 0 !important;
        min-height: 56px !important;
        grid-template-columns: 34px minmax(0, 1fr) 16px !important;
        gap: 8px !important;
        padding: 8px 10px !important;
        border-radius: 12px !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-quick-access svg {
        width: 20px !important;
        height: 20px !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-quick-access strong {
        font-size: 12px !important;
        line-height: 1.15 !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-quick-access small {
        font-size: 10.5px !important;
        line-height: 1.25 !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-login-footer {
        min-height: 54px !important;
        width: auto !important;
        grid-template-columns: 28px minmax(0, 1fr) 28px !important;
        gap: 8px !important;
        margin: 0 -12px 0 !important;
        padding: 8px 12px !important;
        border-radius: 0 0 20px 20px !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-login-footer strong {
        font-size: 11.5px !important;
        line-height: 1.15 !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-login-footer small {
        font-size: 9.5px !important;
        line-height: 1.2 !important;
    }
}

@media (max-width: 340px) {
    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-shell {
        padding: 8px !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView.guardian-login-card {
        width: min(100%, 328px) !important;
        max-width: calc(100vw - 16px) !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) #guardianLoginView > .guardian-access-panel {
        max-width: 328px !important;
        padding: 12px 10px 0 !important;
    }

    html body.body-portal-apoderado:has(#guardianLoginView:not([hidden])) .guardian-login-copy h2 {
        font-size: 19px !important;
    }
}

