body.route-login,
body.route-registro{
    overflow-x:hidden;
}

.auth-modal-app{
    display:none;
    pointer-events:none;
}

.auth-modal-app:target{
    display:flex;
    pointer-events:auto;
}

body.route-login .auth-modal-app,
body.route-registro .auth-modal-app,
body.route-login .access-modal,
body.route-registro .access-modal{
    display:none !important;
    pointer-events:none !important;
    visibility:hidden !important;
}

body.route-login .qb-bottom-nav,
body.route-registro .qb-bottom-nav,
body.route-login .exact-bottom-nav,
body.route-registro .exact-bottom-nav{
    display:none !important;
}

body.route-login .qb-menu,
body.route-registro .qb-menu{
    display:none !important;
}

body.route-login .wrap,
body.route-registro .wrap{
    width:min(100%, 560px) !important;
    max-width:560px !important;
    margin:0 auto !important;
    padding:0 0 30px !important;
    display:block !important;
}

body.route-login .footer,
body.route-registro .footer{
    padding-bottom:22px !important;
}

body.route-login .qb-head-actions,
body.route-registro .qb-head-actions{
    gap:10px;
}

body.route-login .auth-app-wrap,
body.route-registro .auth-app-wrap{
    position:relative;
    z-index:2;
    padding:10px 14px 18px;
}

body.route-login .auth-card-app,
body.route-registro .auth-card-app{
    position:relative;
    z-index:3;
    margin-top:-18px;
    pointer-events:auto !important;
    visibility:visible !important;
    opacity:1 !important;
}

.auth-card-app,
.auth-card-app form,
.auth-card-app input,
.auth-card-app select,
.auth-card-app textarea,
.auth-card-app button{
    pointer-events:auto !important;
    visibility:visible !important;
    opacity:1 !important;
}

.auth-card-app form{
    position:relative;
    z-index:4;
}

.auth-card-app input,
.auth-card-app select,
.auth-card-app textarea{
    position:relative;
    z-index:4;
}

.auth-card-app button{
    position:relative;
    z-index:5;
}

body.route-login .auth-card-app button,
body.route-registro .auth-card-app button{
    margin-top:4px;
}

body.route-login .auth-app-hero,
body.route-registro .auth-app-hero{
    padding-bottom:34px;
}

body.route-login .auth-links-app,
body.route-registro .auth-links-app{
    position:relative;
    z-index:4;
}

.auth-admin-hint{
    margin-top:12px !important;
    font-size:12px;
    line-height:1.45;
}

@media (max-width:760px){
    body.route-login .qb-header,
    body.route-registro .qb-header{
        position:relative !important;
        width:calc(100vw - 16px) !important;
        margin:0 auto 10px !important;
        padding-bottom:8px !important;
    }

    body.route-login .auth-app-wrap,
    body.route-registro .auth-app-wrap{
        padding-left:10px;
        padding-right:10px;
        padding-bottom:24px;
    }

    body.route-login .auth-card-app,
    body.route-registro .auth-card-app{
        margin-bottom:12px;
    }
}

body.qb-app-ui{
    min-height:100vh;
    background:
        radial-gradient(circle at top left, rgba(242, 201, 76, .18), transparent 28%),
        linear-gradient(180deg, #f4f7fc 0%, #eef2f7 36%, #f8fafc 100%);
}

.exact-page-top{
    position:sticky;
    top:0;
    z-index:180;
    padding:14px clamp(12px, 2.8vw, 24px) 0;
    background:linear-gradient(180deg, rgba(244, 247, 252, .96) 0%, rgba(244, 247, 252, .82) 72%, rgba(244, 247, 252, 0) 100%);
    backdrop-filter:blur(10px);
}

.exact-page-top-inner{
    width:min(100%, 1180px);
    margin:0 auto;
    padding:14px 16px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:14px;
    border:1px solid rgba(18, 24, 45, .08);
    border-radius:26px;
    background:rgba(255, 255, 255, .92);
    box-shadow:0 18px 40px rgba(16, 24, 40, .08);
}

.exact-page-brand{
    display:flex;
    align-items:center;
    gap:12px;
    min-width:0;
    text-decoration:none;
    color:#0f172a;
}

.exact-page-brand-mark{
    width:46px;
    height:46px;
    display:grid;
    place-items:center;
    flex:0 0 46px;
    border-radius:16px;
    background:linear-gradient(135deg, #0f172a 0%, #1d4ed8 100%);
    color:#fff;
    font-size:22px;
    box-shadow:0 14px 28px rgba(29, 78, 216, .18);
}

.exact-page-brand-copy{
    display:flex;
    flex-direction:column;
    gap:2px;
    min-width:0;
}

.exact-page-brand-copy strong{
    font-size:16px;
    line-height:1.1;
}

.exact-page-brand-copy small{
    color:#64748b;
    font-size:12px;
    line-height:1.2;
}

.exact-page-top-actions{
    display:flex;
    align-items:center;
    gap:10px;
    flex:0 0 auto;
}

.exact-page-account{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:40px;
    padding:0 14px;
    border-radius:999px;
    background:#eef4ff;
    color:#1d4ed8;
    text-decoration:none;
    font-weight:700;
    font-size:13px;
}

.exact-page-top .exact-hamburger,
.exact-page-hamburger{
    position:static;
    top:auto;
    right:auto;
    flex:0 0 auto;
}

body.qb-app-ui .wrap{
    width:min(100%, 1180px);
    margin:0 auto;
    padding:20px clamp(14px, 3vw, 32px) calc(120px + env(safe-area-inset-bottom));
}

body.route-ganador_fecha .wrap,
body.route-comunicaciones .wrap{
    width:min(100%, 1400px);
    padding:0 12px calc(120px + env(safe-area-inset-bottom));
}

body.qb-app-ui .card,
body.qb-app-ui .auth-card-app{
    max-width:100%;
}

body.qb-app-ui table{
    display:block;
    width:100%;
    overflow-x:auto;
    white-space:nowrap;
    -webkit-overflow-scrolling:touch;
}

body.qb-app-ui .footer{
    padding:18px 18px calc(104px + env(safe-area-inset-bottom));
    text-align:center;
}

.social-row-disabled{
    display:grid !important;
    grid-template-columns:repeat(2, minmax(0, 1fr));
    gap:12px;
    margin-top:16px;
}

.social-disabled{
    width:100%;
    display:flex;
    align-items:center;
    gap:10px;
    padding:14px 16px;
    border:1px dashed rgba(15, 23, 42, .18);
    border-radius:18px;
    background:rgba(255, 255, 255, .72);
    color:#334155;
    opacity:1 !important;
    cursor:not-allowed;
}

.social-disabled[disabled]{
    pointer-events:none;
}

.social-disabled strong{
    font-size:14px;
    line-height:1.1;
}

.social-disabled small{
    margin-left:auto;
    color:#64748b;
    font-size:11px;
    line-height:1.1;
}

.social-note{
    margin:10px 0 0;
    color:#64748b;
    font-size:12px;
    line-height:1.5;
    text-align:center;
}

body.exact-immersive-route .exact-page-top{
    display:none;
}

@media (min-width:900px){
    body.qb-app-ui .wrap{
        padding-top:26px;
    }
}

@media (max-width:760px){
    .exact-page-top{
        padding:10px 10px 0;
    }

    .exact-page-top-inner{
        padding:12px 13px;
        border-radius:22px;
    }

    .exact-page-brand-mark{
        width:42px;
        height:42px;
        flex-basis:42px;
        border-radius:14px;
    }

    .exact-page-brand-copy small{
        display:none;
    }

    .exact-page-account{
        min-height:38px;
        padding:0 12px;
    }

    body.qb-app-ui .wrap{
        padding:16px 12px calc(118px + env(safe-area-inset-bottom));
    }

    .social-row-disabled{
        grid-template-columns:1fr;
    }
}
