/* Eduka · Acceso institucional premium. Capa aislada: no modifica los estilos globales. */
/* La página del ingreso ocupa toda la pantalla: el marco angosto de LayoutSesion (440 px, centrado) se abre para ella. */
.ek-sesion:has(.ek-login-page) { padding: 0; place-items: stretch; }
.ek-sesion-marco:has(.ek-login-page) { max-width: none; }
.ek-login-page {
    --ek-login-ink: #10254a;
    --ek-login-muted: #5f708d;
    --ek-login-line: #dce6f4;
    --ek-login-surface: #ffffff;
    --ek-login-canvas: #f3f7fd;
    --ek-login-blue: #1769f6;
    --ek-login-green: #12a86b;
    min-height: 100svh;
    display: grid;
    grid-template-columns: minmax(0, 1.04fr) minmax(390px, .96fr);
    align-items: stretch;
    color: var(--ek-login-ink);
    background:
        radial-gradient(ellipse at 14% 10%, rgba(42, 128, 255, .13), transparent 38%),
        radial-gradient(ellipse at 88% 92%, rgba(18, 168, 107, .09), transparent 34%),
        var(--ek-login-canvas);
    overflow: hidden;
}
.ek-login-hero {
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    min-height: 100svh;
    padding: clamp(2rem, 5vw, 5.5rem);
    isolation: isolate;
}
.ek-login-hero::before,
.ek-login-hero::after {
    position: absolute;
    z-index: -1;
    content: "";
    border: 1px solid rgba(42, 128, 255, .12);
    border-radius: 50%;
    pointer-events: none;
}
.ek-login-hero::before {
    width: 35rem;
    height: 35rem;
    right: -13rem;
    top: 12%;
    box-shadow: 0 0 0 3rem rgba(42, 128, 255, .025), 0 0 0 7rem rgba(42, 128, 255, .02);
}
.ek-login-hero::after {
    width: 22rem;
    height: 22rem;
    right: -7rem;
    bottom: -8rem;
    border-color: rgba(18, 168, 107, .16);
}
.ek-login-kicker {
    display: inline-flex;
    align-items: center;
    gap: .6rem;
    width: fit-content;
    padding: .55rem .85rem;
    border: 1px solid rgba(23, 105, 246, .14);
    border-radius: 999px;
    background: rgba(255,255,255,.68);
    color: #24559a;
    font-size: .78rem;
    font-weight: 700;
    letter-spacing: .045em;
}
.ek-login-kicker::before {
    content: "";
    width: .48rem;
    height: .48rem;
    border-radius: 50%;
    background: var(--ek-login-green);
    box-shadow: 0 0 0 4px rgba(18,168,107,.12);
}
.ek-login-hero-copy { max-width: 39rem; margin: auto 0; padding: 3rem 0; }
.ek-login-hero h2 {
    max-width: 11ch;
    margin: 0 0 1.25rem;
    color: var(--ek-login-ink);
    font-size: clamp(2.7rem, 5vw, 5.2rem);
    font-weight: 700;
    letter-spacing: -.065em;
    line-height: 1.03;
}
.ek-login-hero h2 span {
    display: block;
    color: var(--ek-login-blue);
}
.ek-login-hero-copy > p {
    max-width: 31rem;
    margin: 0;
    color: var(--ek-login-muted);
    font-size: clamp(1rem, 1.25vw, 1.15rem);
    line-height: 1.75;
}
.ek-login-beneficios {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .75rem;
    max-width: 42rem;
    margin-top: 2.25rem;
}
.ek-login-beneficio {
    padding: 1rem;
    border: 1px solid rgba(143, 164, 197, .23);
    border-radius: 1rem;
    background: rgba(255,255,255,.58);
    backdrop-filter: blur(12px);
}
.ek-login-beneficio strong { display: block; margin-bottom: .35rem; font-size: .88rem; }
.ek-login-beneficio span { display: block; color: var(--ek-login-muted); font-size: .75rem; line-height: 1.5; }
.ek-login-hero-foot { color: var(--ek-login-muted); font-size: .78rem; }
.ek-login-panel {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: clamp(1.25rem, 4vw, 4.5rem);
    background: rgba(255,255,255,.56);
    border-left: 1px solid rgba(143, 164, 197, .16);
}
.ek-login-panel-inner { width: 100%; max-width: 29rem; }
.ek-login-panel .ek-tarjeta-sesion {
    width: 100%;
    max-width: none;
    padding: clamp(1.5rem, 3vw, 2.5rem);
    border: 1px solid rgba(143, 164, 197, .25);
    border-radius: 1.5rem;
    background: var(--ek-login-surface);
    box-shadow: 0 24px 70px rgba(24, 53, 99, .09), 0 2px 8px rgba(24, 53, 99, .035);
}
.ek-login-panel .ek-sesion-cabecera { text-align: center; margin-bottom: 1.75rem; }
.ek-login-panel .ek-sesion-cabecera h1 {
    margin: 1rem 0 .45rem;
    color: var(--ek-login-ink);
    font-size: clamp(1.75rem, 3vw, 2.15rem);
    font-weight: 700;
    letter-spacing: -.04em;
}
.ek-login-panel .ek-sesion-cabecera p { color: var(--ek-login-muted); line-height: 1.6; }
.ek-login-panel .ek-campo label { display: block; margin-bottom: .5rem; color: var(--ek-login-ink); font-size: .86rem; font-weight: 650; }
.ek-login-panel .ek-input-icono {
    display: flex;
    align-items: center;
    gap: .65rem;
    min-height: 3.15rem;
    padding: 0 .85rem;
    border: 1px solid var(--ek-login-line);
    border-radius: .85rem;
    background: var(--ek-login-surface);
    transition: border-color .18s ease, box-shadow .18s ease;
}
.ek-login-panel .ek-input-icono:focus-within {
    border-color: var(--ek-login-blue);
    box-shadow: 0 0 0 4px rgba(23,105,246,.1);
}
.ek-login-panel .ek-input-icono .ek-input {
    min-width: 0;
    width: 100%;
    border: 0;
    outline: 0;
    background: transparent;
    color: var(--ek-login-ink);
    box-shadow: none;
}
.ek-login-panel .ek-input-icono .ek-input::placeholder { color: #8a9ab4; }
.ek-login-panel .ek-sesion-recordar { margin: 1rem 0 1.15rem; font-size: .82rem; }
.ek-login-panel .ek-sesion-formulario > button,
.ek-login-panel .ek-sesion-formulario .ek-boton-google,
.ek-login-panel .ek-sesion-recordada .ek-boton-google { width: 100%; }
.ek-login-panel .ek-sesion-notas {
    display: grid;
    gap: .8rem;
    margin: 1.5rem 0 0;
    padding: 1.15rem 0 0;
    border-top: 1px solid var(--ek-login-line);
    list-style: none;
}
.ek-login-panel .ek-sesion-notas li {
    display: flex;
    align-items: flex-start;
    gap: .65rem;
    color: var(--ek-login-muted);
    font-size: .76rem;
    line-height: 1.55;
}
.ek-login-panel .ek-sesion-notas li :first-child { flex: 0 0 auto; color: var(--ek-login-green); }
.ek-login-panel-inner > .ek-sesion-pie {
    margin: 1.25rem 0 0;
    color: var(--ek-login-muted);
    font-size: .72rem;
    text-align: center;
}
.ek-login-panel .ek-aviso { margin-bottom: 1rem; border-radius: .85rem; }
.ek-login-panel .ek-sesion-otra { display: block; margin-top: 1rem; text-align: center; }
.ek-login-panel .ek-sesion-cuenta {
    display: flex;
    align-items: center;
    gap: .8rem;
    margin-bottom: 1rem;
    padding: .9rem;
    border: 1px solid var(--ek-login-line);
    border-radius: .9rem;
}
.ek-login-panel .ek-sesion-cuenta span { display: grid; gap: .15rem; min-width: 0; }
.ek-login-panel .ek-sesion-cuenta small { color: var(--ek-login-muted); }
.ek-login-panel .ek-sesion-cuenta strong { overflow-wrap: anywhere; }
html[data-tema="oscuro"] .ek-login-page,
html[data-tema="dark"] .ek-login-page {
    --ek-login-ink: #edf4ff;
    --ek-login-muted: #a9bad4;
    --ek-login-line: #2a3d59;
    --ek-login-surface: #101d31;
    --ek-login-canvas: #081426;
    background:
        radial-gradient(ellipse at 14% 10%, rgba(42, 128, 255, .18), transparent 38%),
        radial-gradient(ellipse at 88% 92%, rgba(18, 168, 107, .12), transparent 34%),
        var(--ek-login-canvas);
}
html[data-tema="oscuro"] .ek-login-panel,
html[data-tema="dark"] .ek-login-panel { background: rgba(9, 22, 40, .58); border-left-color: rgba(143,164,197,.13); }
html[data-tema="oscuro"] .ek-login-kicker,
html[data-tema="dark"] .ek-login-kicker,
html[data-tema="oscuro"] .ek-login-beneficio,
html[data-tema="dark"] .ek-login-beneficio { background: rgba(16, 29, 49, .72); color: #c4d8f6; border-color: rgba(143,164,197,.18); }
html[data-tema="oscuro"] .ek-login-hero h2 span,
html[data-tema="dark"] .ek-login-hero h2 span { color: #54a1ff; }
@media (prefers-color-scheme: dark) {
    html:not([data-tema="claro"]) .ek-login-page {
        --ek-login-ink: #edf4ff;
        --ek-login-muted: #a9bad4;
        --ek-login-line: #2a3d59;
        --ek-login-surface: #101d31;
        --ek-login-canvas: #081426;
        background: radial-gradient(ellipse at 14% 10%, rgba(42,128,255,.18), transparent 38%), var(--ek-login-canvas);
    }
    html:not([data-tema="claro"]) .ek-login-panel { background: rgba(9,22,40,.58); border-left-color: rgba(143,164,197,.13); }
    html:not([data-tema="claro"]) .ek-login-kicker,
    html:not([data-tema="claro"]) .ek-login-beneficio { background: rgba(16,29,49,.72); color: #c4d8f6; border-color: rgba(143,164,197,.18); }
}
@media (max-width: 900px) {
    .ek-login-page { grid-template-columns: minmax(0, 1fr); }
    .ek-login-hero { min-height: auto; padding: 1.5rem clamp(1.25rem, 5vw, 3rem) 1rem; }
    .ek-login-hero-copy { padding: 2.5rem 0 1.5rem; }
    .ek-login-hero h2 { max-width: 13ch; font-size: clamp(2.3rem, 8vw, 3.6rem); }
    .ek-login-beneficios { margin-top: 1.4rem; }
    .ek-login-hero-foot { display: none; }
    .ek-login-panel { padding: 1rem clamp(1rem, 5vw, 3rem) 2rem; border-left: 0; background: transparent; }
    .ek-login-panel-inner { max-width: 33rem; }
}
@media (max-width: 480px) {
    .ek-login-hero { padding-top: 1.25rem; }
    .ek-login-hero-copy { padding: 1.7rem 0 1rem; }
    .ek-login-hero-copy > p { font-size: .92rem; }
    .ek-login-beneficios { grid-template-columns: 1fr; gap: .5rem; margin-top: 1rem; }
    .ek-login-beneficio { display: flex; align-items: center; gap: .75rem; padding: .7rem .85rem; }
    .ek-login-beneficio strong { margin: 0; }
    .ek-login-beneficio span { margin-left: auto; max-width: 55%; text-align: right; }
    .ek-login-panel .ek-tarjeta-sesion { padding: 1.25rem; border-radius: 1.15rem; }
}
@media (prefers-reduced-motion: reduce) {
    .ek-login-panel .ek-input-icono { transition: none; }
}
