:root {
    --brand-navy: #071A3D;
    --brand-navy-2: #031027;
    --brand-blue: #1261F4;
    --brand-cyan: #29B6F6;
    --brand-white: #FFFFFF;
    --brand-ink: #0B1937;
    --brand-muted: #5B6981;
    --brand-soft: #F4F7FB;
    --brand-border: #DDE6F2;
    --shadow: 0 18px 50px rgba(7, 26, 61, .10);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
    margin: 0;
    font-family: Inter, system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
    color: var(--brand-ink);
    background: #fff;
}
a { color: inherit; }
.lp { min-width: 0; overflow: hidden; }
.landing-wrap { width: min(1180px, calc(100% - 40px)); margin: 0 auto; }

.hero-shell {
    position: relative;
    min-height: 620px;
    color: #fff;
    background:
        linear-gradient(90deg, rgba(2,16,42,.98) 0%, rgba(2,20,52,.94) 35%, rgba(3,23,55,.72) 63%, rgba(2,18,46,.42) 100%),
        url('/assets/hero/plantel-stadium.jpg') center/cover no-repeat;
    border-bottom: 1px solid rgba(41,182,246,.26);
}
.hero-shell::after {
    content: "";
    position: absolute;
    inset: 0;
    background: radial-gradient(circle at 70% 65%, rgba(18,97,244,.18), transparent 36%), linear-gradient(180deg, transparent 68%, rgba(1,12,34,.52) 100%);
    pointer-events: none;
}
.hero-shell__inner { position: relative; z-index: 2; min-height: 620px; display: flex; flex-direction: column; }

.landing-nav { height: 96px; display: flex; align-items: center; justify-content: space-between; gap: 28px; }
.landing-brand { display: inline-flex; align-items: center; gap: 10px; text-decoration: none; font-weight: 800; font-size: 26px; letter-spacing: -.03em; }
.landing-brand img { width: 46px; height: 46px; object-fit: contain; }
.landing-nav__links { display: flex; align-items: center; gap: 30px; font-size: 14px; font-weight: 600; }
.landing-nav__links > a:not(.nav-button) { text-decoration: none; color: rgba(255,255,255,.78); transition: color .2s ease; }
.landing-nav__links > a:not(.nav-button):hover { color: #fff; }
.nav-button { height: 44px; padding: 0 20px; display: inline-flex; align-items: center; justify-content: center; border-radius: 12px; text-decoration: none; }
.nav-button--ghost { color: #fff !important; border: 1px solid rgba(41,182,246,.7); box-shadow: inset 0 0 0 1px rgba(18,97,244,.16); }
.nav-button--solid { color: #fff !important; background: linear-gradient(135deg, #1687FF, #1261F4); box-shadow: 0 8px 24px rgba(18,97,244,.28); }
.landing-nav__toggle { display: none; width: 44px; height: 44px; border: 1px solid rgba(255,255,255,.18); border-radius: 10px; background: rgba(255,255,255,.04); padding: 10px; }
.landing-nav__toggle span { display: block; height: 2px; margin: 4px 0; background: #fff; }

.hero-content { max-width: 690px; padding: 72px 0 44px; }
.hero-content h1 { margin: 0 0 18px; font-size: clamp(46px, 5.6vw, 72px); line-height: .98; letter-spacing: -.055em; font-weight: 800; }
.hero-content p { max-width: 610px; margin: 0 0 36px; font-size: clamp(21px, 2.2vw, 30px); line-height: 1.32; color: rgba(255,255,255,.86); letter-spacing: -.02em; }
.hero-cta { min-height: 56px; padding: 0 28px; display: inline-flex; align-items: center; gap: 24px; border-radius: 14px; background: linear-gradient(135deg, #1687FF, #1261F4); color: #fff; text-decoration: none; font-size: 18px; font-weight: 700; box-shadow: 0 14px 30px rgba(18,97,244,.32); }
.hero-cta span { font-size: 34px; line-height: 0; font-weight: 300; }

.hero-features { margin-top: auto; min-height: 116px; display: grid; grid-template-columns: repeat(4,1fr); border-top: 1px solid rgba(255,255,255,.08); }
.hero-feature { display: flex; align-items: center; gap: 15px; padding: 24px 12px; text-decoration: none; color: rgba(255,255,255,.84); font-size: 15px; font-weight: 600; }
.hero-feature:first-child { padding-left: 0; }
.hero-feature__icon { width: 45px; height: 45px; flex: 0 0 45px; border: 1.5px solid #1687FF; border-radius: 50%; display: grid; place-items: center; color: #1687FF; }
.hero-feature__icon svg { width: 26px; height: 26px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }

.section { padding: 92px 0; }
.section--soft { background: var(--brand-soft); }
.section--dark { background: radial-gradient(circle at 90% 20%, rgba(18,97,244,.22), transparent 32%), linear-gradient(135deg, #071A3D, #031027); color: #fff; }
.section-grid { display: grid; gap: 56px; align-items: center; }
.section-grid--intro { grid-template-columns: 1.25fr .75fr; }
.eyebrow { display: inline-block; margin-bottom: 14px; color: var(--brand-blue); font-size: 13px; font-weight: 800; text-transform: uppercase; letter-spacing: .14em; }
.eyebrow--light { color: #63C8FF; }
.section h2 { max-width: 790px; margin: 0 0 20px; font-size: clamp(34px, 4vw, 52px); line-height: 1.06; letter-spacing: -.045em; font-weight: 780; }
.section-lead { max-width: 760px; margin: 0; color: var(--brand-muted); font-size: 19px; line-height: 1.68; }
.section-lead--light { color: rgba(255,255,255,.72); }
.benefit-list { list-style: none; margin: 30px 0 0; padding: 0; display: grid; gap: 18px; }
.benefit-list li { position: relative; padding-left: 30px; color: #46566E; line-height: 1.6; }
.benefit-list li::before { content: ""; position: absolute; left: 0; top: .52em; width: 11px; height: 11px; border-radius: 50%; background: linear-gradient(135deg, var(--brand-blue), var(--brand-cyan)); box-shadow: 0 0 0 5px rgba(18,97,244,.08); }

.product-card { padding: 32px; border: 1px solid var(--brand-border); border-radius: 22px; background: #fff; box-shadow: var(--shadow); }
.product-card__logo { display: flex; align-items: center; gap: 12px; margin-bottom: 24px; font-size: 26px; }
.product-card__logo img { width: 46px; height: 46px; }
.metric { padding: 16px 0; display: flex; justify-content: space-between; gap: 20px; border-top: 1px solid #E7EDF6; font-size: 14px; }
.metric span { color: var(--brand-muted); }
.product-card p { margin: 20px 0 0; color: var(--brand-blue); font-weight: 700; }

.card-grid { display: grid; gap: 18px; margin-top: 40px; }
.card-grid--4 { grid-template-columns: repeat(4,1fr); }
.card-grid--3 { grid-template-columns: repeat(3,1fr); }
.info-card, .feature-card { min-height: 190px; padding: 28px; border: 1px solid var(--brand-border); border-radius: 18px; background: #fff; box-shadow: 0 10px 30px rgba(7,26,61,.04); transition: transform .2s ease, box-shadow .2s ease; }
.info-card:hover, .feature-card:hover { transform: translateY(-3px); box-shadow: var(--shadow); }
.info-card h3, .feature-card h3 { margin: 0 0 12px; font-size: 19px; letter-spacing: -.02em; }
.info-card p, .feature-card p { margin: 0; color: var(--brand-muted); line-height: 1.62; }
.feature-card span { display: block; margin-bottom: 28px; color: var(--brand-blue); font-size: 13px; font-weight: 800; letter-spacing: .12em; }

.demo-grid { display: grid; grid-template-columns: 1fr .9fr; gap: 70px; align-items: center; }
.demo-steps { display: grid; gap: 18px; }
.demo-steps > div { padding: 22px; display: grid; grid-template-columns: 44px 1fr; gap: 16px; align-items: center; border: 1px solid rgba(255,255,255,.12); border-radius: 16px; background: rgba(255,255,255,.04); }
.demo-steps strong { width: 44px; height: 44px; border-radius: 50%; display: grid; place-items: center; background: rgba(18,97,244,.18); color: #63C8FF; }
.demo-steps span { color: rgba(255,255,255,.72); line-height: 1.5; }
.demo-steps b { color: #fff; }

.pricing-panel { display: grid; grid-template-columns: 1fr auto; gap: 48px; align-items: center; }
.final-cta { padding: 34px 0; background: #06152F; color: #fff; }
.final-cta__inner { display: flex; align-items: center; justify-content: space-between; gap: 30px; }
.final-cta__inner > div:first-child { display: flex; align-items: center; gap: 12px; }
.final-cta img { width: 42px; height: 42px; }
.final-cta strong { display: block; font-size: 20px; }
.final-cta span { display: block; margin-top: 2px; color: rgba(255,255,255,.55); font-size: 12px; }
.final-cta__actions { display: flex; align-items: center; gap: 24px; }
.final-cta__actions > a:first-child { color: rgba(255,255,255,.78); text-decoration: none; }

@media (max-width: 980px) {
    .landing-nav__toggle { display: block; }
    .landing-nav__links { position: absolute; top: 82px; left: 20px; right: 20px; padding: 18px; display: none; flex-direction: column; align-items: stretch; gap: 8px; border: 1px solid rgba(255,255,255,.12); border-radius: 16px; background: rgba(3,16,39,.96); backdrop-filter: blur(14px); }
    .landing-nav__links.is-open { display: flex; }
    .landing-nav__links a { padding: 10px 12px; }
    .hero-features { grid-template-columns: repeat(2,1fr); }
    .section-grid--intro, .demo-grid { grid-template-columns: 1fr; }
    .card-grid--4 { grid-template-columns: repeat(2,1fr); }
    .card-grid--3 { grid-template-columns: repeat(2,1fr); }
    .pricing-panel { grid-template-columns: 1fr; }
}

@media (max-width: 640px) {
    .landing-wrap { width: min(100% - 28px, 1180px); }
    .hero-shell, .hero-shell__inner { min-height: 700px; }
    .landing-nav { height: 82px; }
    .landing-brand { font-size: 23px; }
    .landing-brand img { width: 40px; height: 40px; }
    .hero-content { padding-top: 64px; }
    .hero-content h1 { font-size: 48px; }
    .hero-content p { font-size: 22px; }
    .hero-features { grid-template-columns: 1fr 1fr; min-height: 160px; }
    .hero-feature { gap: 10px; padding: 18px 6px; font-size: 12px; }
    .hero-feature__icon { width: 38px; height: 38px; flex-basis: 38px; }
    .section { padding: 68px 0; }
    .section h2 { font-size: 36px; }
    .card-grid--4, .card-grid--3 { grid-template-columns: 1fr; }
    .final-cta__inner { align-items: flex-start; flex-direction: column; }
    .final-cta__actions { width: 100%; justify-content: space-between; }
}


/* AUTH */
.auth-body {
    background: linear-gradient(180deg, rgba(30,58,138,.10) 0%, var(--bg-soft) 55%, var(--bg-soft) 100%);
}

.auth {
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 32px 16px;
}

.auth-card {
    width: 100%;
    max-width: 440px;
    background: rgba(255,255,255,.92);
    border: 1px solid rgba(229,231,235,.9);
    border-radius: 12px;
    box-shadow: var(--shadow, 0 10px 30px rgba(17,24,39,.06));
    padding: 22px;
}

.auth-brand {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    margin-bottom: 16px;
}

    .auth-brand img {
        height: 34px;
    }

.auth-title {
    margin: 8px 0 4px;
    font-size: 20px;
    font-weight: 600;
    letter-spacing: -0.02em;
    text-align: center;
}

.auth-subtitle {
    margin: 0 0 16px;
    font-size: 14px;
    color: var(--muted);
    text-align: center;
    line-height: 1.5;
}

.form {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.field label {
    display: block;
    font-size: 13px;
    color: #374151;
    margin-bottom: 6px;
    font-weight: 500;
}

.input {
    width: 100%;
    height: 46px;
    border-radius: 8px;
    border: 1px solid rgba(229,231,235,.95);
    border-color: rgba(148, 163, 184, .75);
    background: rgba(255,255,255,.98);
    padding: 0 12px;
    font-size: 15px;
    color: #0f172a;
}

    .input:focus {
        border-color: rgba(37, 99, 235, .70);
        box-shadow: 0 0 0 4px rgba(37,99,235,.12);
    }

    .input:hover {
        border-color: rgba(100, 116, 139, .85);
    }

    .input:disabled {
        background: rgba(241,245,249,.9);
        border-color: rgba(148,163,184,.55);
        color: rgba(15,23,42,.55);
    }

.row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}

.checkbox {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    color: #374151;
}

.small-link {
    font-size: 13px;
    color: #374151;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.helper {
    font-size: 13px;
    color: var(--muted);
    line-height: 1.45;
    margin-top: 6px;
}

.divider {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 14px 0;
    color: var(--muted);
    font-size: 12px;
}

    .divider::before, .divider::after {
        content: "";
        flex: 1;
        height: 1px;
        background: rgba(229,231,235,.9);
    }

.auth-footer {
    margin-top: 14px;
    font-size: 13px;
    color: var(--muted);
    text-align: center;
}

.notice {
    border: 1px solid rgba(229,231,235,.9);
    background: rgba(248,250,252,.9);
    border-radius: 10px;
    padding: 12px;
    font-size: 13px;
    color: #334155;
    line-height: 1.5;
}
/* ===== FORM STATES ===== */
.field {
    position: relative;
}

.field--error .input {
    border-color: rgba(220, 38, 38, .55);
    box-shadow: 0 0 0 4px rgba(220, 38, 38, .10);
}

.field--success .input {
    border-color: rgba(22, 163, 74, .55);
    box-shadow: 0 0 0 4px rgba(22, 163, 74, .10);
}

.field-msg {
    margin-top: 6px;
    font-size: 12px;
    line-height: 1.45;
    color: var(--muted);
}

.field-msg--error {
    color: #B91C1C;
}

.field-msg--success {
    color: #15803D;
}

.field-msg:empty {
    display: none;
}
/* Alert banners (top of form) */
.alert {
    border-radius: 10px;
    padding: 12px 12px;
    border: 1px solid rgba(229,231,235,.9);
    background: rgba(248,250,252,.95);
    color: #334155;
    font-size: 13px;
    line-height: 1.55;
    display: flex;
    gap: 10px;
    align-items: flex-start;
}

.alert__title {
    font-weight: 600;
    margin: 0 0 2px 0;
}

.alert__text {
    margin: 0;
    color: #334155;
}

.alert__icon {
    width: 18px;
    height: 18px;
    margin-top: 1px;
    border-radius: 999px;
    background: rgba(148,163,184,.35);
    flex: 0 0 auto;
}

/* Variants */
.alert--error {
    border-color: rgba(220,38,38,.25);
    background: rgba(254,242,242,.85);
}

    .alert--error .alert__icon {
        background: rgba(220,38,38,.20);
    }

.alert--success {
    border-color: rgba(22,163,74,.22);
    background: rgba(240,253,244,.85);
}

    .alert--success .alert__icon {
        background: rgba(22,163,74,.18);
    }

.alert--warning {
    border-color: rgba(234,179,8,.25);
    background: rgba(254,252,232,.9);
}

    .alert--warning .alert__icon {
        background: rgba(234,179,8,.18);
    }

.alert--info {
    border-color: rgba(59,130,246,.22);
    background: rgba(239,246,255,.9);
}

    .alert--info .alert__icon {
        background: rgba(59,130,246,.16);
    }

/* Button states */
.btn[disabled], .btn.is-disabled {
    opacity: .62;
    cursor: not-allowed;
}

.btn.is-loading {
    position: relative;
    pointer-events: none;
    opacity: .78;
}

    .btn.is-loading .btn__label {
        display: inline-flex;
        align-items: center;
    }

        .btn.is-loading .btn__label::before {
            content: "";
            width: 16px;
            height: 16px;
            margin-right: 10px;
            border-radius: 999px;
            border: 2px solid rgba(255,255,255,.55);
            border-top-color: #fff;
            animation: spin .8s linear infinite;
        }
/* Spinner (CSS only) */
.spinner {
    width: 16px;
    height: 16px;
    border-radius: 999px;
    border: 2px solid rgba(255,255,255,.55);
    border-top-color: rgba(255,255,255,1);
    display: inline-block;
    animation: spin .8s linear infinite;
}

.btn--secondary .spinner {
    border-color: rgba(17,24,39,.18);
    border-top-color: rgba(17,24,39,.55);
}

@keyframes spin {
    to {
        transform: rotate(360deg);
    }
}

/* Small helper row under submit */
.form-foot {
    margin-top: 10px;
    font-size: 12px;
    color: var(--muted);
    line-height: 1.5;
}

@keyframes spin {
    to {
        transform: rotate(360deg);
    }
}

/* Deshabilitar inputs en loading */
.form.is-loading .input,
.form.is-loading button,
.form.is-loading input[type="checkbox"] {
    pointer-events: none;
}

select.input {
    background-color: rgba(255,255,255,.98);
}


/* ========================================================================== */
/* PLANTEL AUTH EXPERIENCE — aligned with the Home hero                       */
/* ========================================================================== */
.auth-body {
    min-height: 100vh;
    color: var(--brand-ink);
    background:
        radial-gradient(circle at 72% 22%, rgba(18,97,244,.28), transparent 30%),
        linear-gradient(90deg, rgba(2,16,42,.98) 0%, rgba(2,20,52,.94) 42%, rgba(3,23,55,.72) 72%, rgba(2,18,46,.58) 100%),
        url('/assets/hero/plantel-stadium.jpg') center/cover fixed no-repeat;
}

.auth-body::before {
    content: "";
    position: fixed;
    inset: 0;
    pointer-events: none;
    background:
        linear-gradient(180deg, rgba(1,10,28,.04) 0%, rgba(1,10,28,.26) 100%),
        radial-gradient(circle at 50% 100%, rgba(41,182,246,.08), transparent 36%);
}

.auth-page {
    position: relative;
    z-index: 1;
    min-height: 100vh;
    display: grid;
    grid-template-rows: auto 1fr auto;
}

.auth-topbar {
    width: min(1180px, calc(100% - 40px));
    height: 92px;
    margin: 0 auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
}

.auth-topbar__brand {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    color: #fff;
    text-decoration: none;
    font-size: 25px;
    font-weight: 800;
    letter-spacing: -.035em;
}
.auth-topbar__brand img { width: 44px; height: 44px; object-fit: contain; }

.auth-topbar__back {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: rgba(255,255,255,.72);
    font-size: 18px;
    font-weight: 600;
    text-decoration: none;
    transition: color .2s ease;
}
.auth-topbar__back:hover { color: #fff; }

.auth {
    width: min(1180px, calc(100% - 40px));
    min-height: 0;
    margin: 0 auto;
    padding: 42px 0 66px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.auth--register { align-items: flex-start; }

.auth-card {
    width: 100%;
    max-width: 600px;
    padding: 34px;
    border: 1px solid rgba(255,255,255,.52);
    border-radius: 24px;
    background: rgba(255,255,255,.965);
    box-shadow: 0 30px 80px rgba(0,10,35,.34), 0 1px 0 rgba(255,255,255,.86) inset;
    backdrop-filter: blur(18px);
}
.auth-card--compact { max-width: 520px; }
.auth-card--wide { max-width: 720px; }
.auth-card--status { text-align: left; }

.auth-brand {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 12px;
    margin: 0 0 28px;
    padding-bottom: 22px;
    border-bottom: 1px solid #E4EBF5;
}
.auth-brand img { width: 48px; height: 48px; object-fit: contain; }
.auth-brand strong {
    display: block;
    color: var(--brand-navy);
    font-size: 25px;
    line-height: 1;
    letter-spacing: -.035em;
}
.auth-brand span {
    display: block;
    margin-top: 5px;
    color: var(--brand-muted);
    font-size: 13px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .09em;
}

.auth-heading { margin-bottom: 24px; }
.auth-eyebrow {
    display: inline-block;
    margin-bottom: 10px;
    color: var(--brand-blue);
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .16em;
}
.auth-title {
    margin: 0 0 10px;
    color: var(--brand-navy);
    font-size: clamp(28px, 3vw, 38px);
    line-height: 1.04;
    font-weight: 800;
    letter-spacing: -.045em;
    text-align: left;
}
.auth-subtitle {
    margin: 0;
    color: var(--brand-muted);
    font-size: 16px;
    line-height: 1.62;
    text-align: left;
}

.form { display: flex; flex-direction: column; gap: 16px; }
.auth-form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0,1fr));
    gap: 18px;
    margin-top: 18px;
}
.auth-form-grid__full { grid-column: 1 / -1; }

.form-section-title {
    margin-top: 4px;
    padding-top: 18px;
    border-top: 1px solid #E6EDF6;
    display: flex;
    align-items: flex-start;
    gap: 12px;
}
.form-section-title > span {
    width: 30px;
    height: 30px;
    flex: 0 0 30px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: rgba(18,97,244,.09);
    color: var(--brand-blue);
    font-size: 11px;
    font-weight: 800;
}
.form-section-title strong { display: block; color: var(--brand-navy); font-size: 16px; }
.form-section-title small { display: block; margin-top: 3px; color: var(--brand-muted); font-size: 14px; line-height: 1.45; }

.field { position: relative; }
.field label {
    display: block;
    margin-bottom: 7px;
    color: #243552;
    font-size: 16px;
    font-weight: 700;
}

.input {
    width: 100%;
    height: 50px;
    padding: 0 14px;
    border: 1px solid #C9D5E6;
    border-radius: 12px;
    outline: none;
    background: #fff;
    color: #0B1937;
    font-family: inherit;
    font-size: 16px;
    transition: border-color .2s ease, box-shadow .2s ease, background .2s ease;
}
.input::placeholder { color: #94A3B8; }
.input:hover { border-color: #99ABC4; }
.input:focus {
    border-color: var(--brand-blue);
    box-shadow: 0 0 0 4px rgba(18,97,244,.10);
}
.input:disabled { color: #74849B; background: #F3F6FA; cursor: not-allowed; }
select.input { appearance: auto; }
.input--otp {
    height: 62px;
    text-align: center;
    letter-spacing: .48em;
    padding-left: calc(14px + .48em);
    font-size: 25px;
    font-weight: 800;
    font-variant-numeric: tabular-nums;
}

.helper { margin-top: 6px; color: var(--brand-muted); font-size: 14px; line-height: 1.45; }
.field-msg { display: block; margin-top: 6px; font-size: 14px; line-height: 1.4; }
.field-msg:empty { display: none; }
.field-msg--error { color: #B42318; }
.field--error .input { border-color: rgba(180,35,24,.60); box-shadow: 0 0 0 4px rgba(180,35,24,.08); }

.btn {
    min-height: 50px;
    padding: 0 18px;
    border: 0;
    border-radius: 12px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    font-family: inherit;
    font-size: 16px;
    font-weight: 750;
    text-decoration: none;
    cursor: pointer;
    transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease, background .16s ease;
}
.btn:not([disabled]):hover { transform: translateY(-1px); }
.btn--primary {
    width: 100%;
    color: #fff;
    background: linear-gradient(135deg, #1687FF, #1261F4);
    box-shadow: 0 12px 24px rgba(18,97,244,.24);
}
.btn--primary:not([disabled]):hover { box-shadow: 0 15px 30px rgba(18,97,244,.31); }
.btn--secondary {
    color: #1A3155;
    border: 1px solid #CCD8E8;
    background: #F8FAFD;
    box-shadow: none;
}
.btn--secondary:not([disabled]):hover { border-color: #A9BAD0; background: #F2F6FB; }
.btn-arrow { margin-left: auto; font-size: 26px; line-height: 0; font-weight: 300; }
.btn[disabled], .btn.is-disabled { opacity: .58; cursor: not-allowed; transform: none; }

.choice-row { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
.choice {
    position: relative;
    min-height: 70px;
    padding: 13px 14px;
    display: flex;
    align-items: center;
    gap: 10px;
    border: 1px solid #D3DEEC;
    border-radius: 12px;
    background: #fff;
    cursor: pointer;
    transition: border-color .2s ease, background .2s ease, box-shadow .2s ease;
}
.choice:hover { border-color: #9FB3CD; background: #FBFCFE; }
.choice:has(input:checked) { border-color: var(--brand-blue); background: rgba(18,97,244,.035); box-shadow: 0 0 0 3px rgba(18,97,244,.07); }
.choice input { accent-color: var(--brand-blue); }
.choice > span { min-width: 0; }
.choice b { display: block; color: #172B4D; font-size: 16px; }
.choice small { display: block; margin-top: 3px; color: var(--brand-muted); font-size: 14px; font-weight: 500; }

.alert {
    margin-bottom: 18px;
    padding: 13px 14px;
    display: flex;
    align-items: flex-start;
    gap: 10px;
    border: 1px solid #DDE6F2;
    border-radius: 12px;
    background: #F7FAFD;
    color: #334155;
    font-size: 14px;
    line-height: 1.5;
}
.alert__icon { width: 18px; height: 18px; flex: 0 0 auto; margin-top: 1px; border-radius: 50%; background: rgba(18,97,244,.18); }
.alert__title { margin: 0 0 2px; font-weight: 750; }
.alert__text { margin: 0; color: inherit; }
.alert--info { border-color: rgba(18,97,244,.18); background: rgba(18,97,244,.045); color: #214574; }
.alert--error { border-color: rgba(180,35,24,.20); background: #FFF6F5; color: #84271E; }
.alert--success { border-color: rgba(2,122,72,.18); background: #F2FBF6; color: #16633F; }
.alert--warning { border-color: rgba(181,126,0,.20); background: #FFFBEB; color: #795400; }

.auth-footer {
    margin-top: 4px;
    color: var(--brand-muted);
    font-size: 16px;
    line-height: 1.5;
    text-align: center;
}
.small-link, .auth-resend a {
    color: var(--brand-blue);
    font-size: inherit;
    font-weight: 750;
    text-decoration: none;
}
.small-link:hover, .auth-resend a:hover { text-decoration: underline; text-underline-offset: 3px; }

.auth-trust {
    margin-top: 22px;
    padding-top: 18px;
    border-top: 1px solid #E6EDF6;
    display: flex;
    align-items: flex-start;
    gap: 9px;
    color: #6A7890;
    font-size: 16px;
    line-height: 1.5;
}
.auth-trust__icon {
    width: 20px;
    height: 20px;
    flex: 0 0 20px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    color: #0E7A50;
    background: #E9F8F1;
    font-size: 11px;
    font-weight: 800;
}

.auth-destination {
    margin: -8px 0 20px;
    padding: 13px 15px;
    border: 1px solid rgba(18,97,244,.16);
    border-radius: 12px;
    background: rgba(18,97,244,.045);
    color: #153F7A;
    font-size: 18px;
    font-weight: 800;
    text-align: center;
    word-break: break-word;
}

.auth-info-line {
    padding: 12px 13px;
    display: flex;
    align-items: flex-start;
    gap: 10px;
    border-radius: 11px;
    background: #F5F8FC;
    color: #50627D;
    font-size: 16px;
    line-height: 1.5;
}
.auth-info-line > span {
    width: 18px;
    height: 18px;
    flex: 0 0 18px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    color: #fff;
    background: var(--brand-blue);
    font-size: 10px;
    font-weight: 800;
}
.auth-info-line p { margin: 0; }

.auth-info-panel {
    margin: 4px 0 20px;
    padding: 18px;
    border: 1px solid #DFE8F3;
    border-radius: 14px;
    background: #F8FAFD;
}
.auth-info-panel > strong { color: #183253; font-size: 16px; }
.auth-info-panel ul { margin: 10px 0 0; padding-left: 18px; color: #5D6E86; font-size: 15px; line-height: 1.65; }

.auth-actions-row { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
.auth-meta { color: #6B7A90; font-size: 11px; line-height: 1.5; text-align: center; }
.auth-meta--success { color: #0E7A50; }
.auth-meta--error { color: #B42318; }
.auth-resend { margin-top: 20px; display: flex; justify-content: center; gap: 6px; color: #6B7A90; font-size: 16px; }

.status-icon {
    width: 62px;
    height: 62px;
    margin: 0 0 22px;
    display: grid;
    place-items: center;
    border-radius: 18px;
}
.status-icon svg { width: 30px; height: 30px; fill: none; stroke: currentColor; stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; }
.status-icon--success { color: #0B8155; background: linear-gradient(135deg,#ECFBF4,#DDF7EB); box-shadow: 0 0 0 6px rgba(11,129,85,.05); }

.auth-page__footer {
    width: min(1180px, calc(100% - 40px));
    margin: 0 auto;
    padding: 18px 0 24px;
    color: rgba(255,255,255,.43);
    font-size: 18px;
    line-height: 1.5;
    text-align: right;
}
.auth-page__footer span { color: rgba(255,255,255,.70); font-weight: 700; }

.spinner {
    width: 16px;
    height: 16px;
    display: inline-block;
    border: 2px solid rgba(255,255,255,.48);
    border-top-color: #fff;
    border-radius: 50%;
    animation: spin .8s linear infinite;
}
.btn--secondary .spinner { border-color: rgba(11,25,55,.18); border-top-color: rgba(11,25,55,.65); }
.form.is-loading .input,
.form.is-loading button,
.form.is-loading input[type="checkbox"] { pointer-events: none; }

@media (max-width: 900px) {
    .auth-body {
        background:
            linear-gradient(180deg, rgba(2,16,42,.94), rgba(3,23,55,.88)),
            url('/assets/hero/plantel-stadium.jpg') center/cover fixed no-repeat;
    }
    .auth { justify-content: center; padding-top: 22px; }
    .auth-card--wide { max-width: 720px; }
    .auth-page__footer { text-align: center; }
}

@media (max-width: 640px) {
    .auth-topbar { width: min(100% - 28px,1180px); height: 76px; }
    .auth-topbar__brand { font-size: 21px; }
    .auth-topbar__brand img { width: 38px; height: 38px; }
    .auth-topbar__back { font-size: 0; }
    .auth-topbar__back span { font-size: 22px; }
    .auth { width: min(100% - 24px,1180px); padding: 16px 0 44px; }
    .auth-card { padding: 24px 20px; border-radius: 19px; }
    .auth-brand { margin-bottom: 23px; padding-bottom: 18px; }
    .auth-brand img { width: 43px; height: 43px; }
    .auth-brand strong { font-size: 22px; }
    .auth-title { font-size: 30px; }
    .auth-form-grid { grid-template-columns: 1fr; }
    .auth-form-grid__full { grid-column: 1; }
    .choice-row { grid-template-columns: 1fr; }
    .auth-actions-row { grid-template-columns: 1fr; }
    .auth-page__footer { width: min(100% - 28px,1180px); font-size: 9px; }
}
