/* Tela de login pública - AlôBairros */
.public-login-view{
    min-height:100vh;
    transition:background-color .25s ease,color .25s ease;
}

.public-login-view .topbar{
    position:sticky;
    top:0;
    z-index:1050;
    backdrop-filter:blur(16px);
}

.public-login-view .public-header-wrap{
    min-height:78px;
}

.public-login-view .public-header-nav{
    gap:.92rem !important;
}

.public-login-view .public-header-action-btn,
.public-login-view .public-theme-toggle-btn{
    height:46px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border-radius:999px;
}

.public-login-view .public-header-action-btn{
    min-width:98px;
    font-weight:700;
}

.public-login-view .public-theme-toggle-btn{
    width:46px;
    padding:0;
}

.login-mobile-menu-toggle,
.login-mobile-nav-overlay,
.login-mobile-nav-panel{
    display:none;
}

.auth-login-page{
    min-height:calc(100vh - 79px);
    padding-top:3.25rem !important;
    padding-bottom:3.25rem !important;
}

.auth-login-grid{
    display:grid;
    grid-template-columns:minmax(0,1.06fr) minmax(360px,465px);
    gap:3.1rem;
    align-items:center;
}

.auth-login-intro{
    padding:1.5rem .75rem 1.5rem 0;
}

.auth-login-kicker{
    display:inline-flex;
    align-items:center;
    gap:.45rem;
    padding:.48rem .95rem;
    border-radius:999px;
    font-size:.76rem;
    font-weight:800;
    letter-spacing:.1em;
    text-transform:uppercase;
}

.auth-login-title{
    max-width:670px;
    margin:1.12rem 0 .92rem;
    font-size:clamp(2.45rem,4vw,3.72rem);
    line-height:1.04;
    letter-spacing:-.05em;
    font-weight:800;
}

.auth-login-text{
    max-width:638px;
    font-size:1.04rem;
    line-height:1.68;
    margin-bottom:1.65rem;
}

.auth-login-highlights{
    display:grid;
    gap:.86rem;
    max-width:640px;
}

.auth-login-highlight-card{
    display:flex;
    gap:1rem;
    align-items:center;
    padding:.92rem 1rem;
    border-radius:19px;
    transition:transform .16s ease,box-shadow .16s ease;
}

.auth-login-highlight-card:hover{
    transform:translateY(-1px);
}

.auth-login-highlight-card strong,
.auth-login-highlight-card span{
    display:block;
}

.auth-login-highlight-tag{
    font-size:.62rem !important;
    line-height:1 !important;
    font-weight:800;
    letter-spacing:.09em;
    text-transform:uppercase;
    margin-bottom:.4rem;
}

.auth-login-highlight-card strong{
    margin-bottom:.16rem;
    font-size:.96rem;
    line-height:1.24;
}

.auth-login-highlight-card span:not(.auth-login-highlight-tag){
    font-size:.83rem;
    line-height:1.42;
}

.auth-login-highlight-icon{
    width:48px;
    height:48px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border-radius:15px;
    flex:0 0 48px;
}

.auth-login-highlight-icon svg{
    width:23px;
    height:23px;
    display:block;
}

.auth-login-card-wrap{
    width:100%;
}

.auth-login-card{
    padding:1.82rem;
    border-radius:29px;
    box-shadow:0 28px 65px rgba(15,23,42,.12);
}

.auth-login-card-header{
    margin-bottom:1.35rem;
}

.auth-login-badge{
    display:inline-flex;
    align-items:center;
    padding:.44rem .82rem;
    border-radius:999px;
    font-size:.69rem;
    font-weight:800;
    letter-spacing:.09em;
    text-transform:uppercase;
    margin-bottom:.86rem;
}

.auth-login-card-header h2{
    margin:0 0 .42rem;
    font-size:1.72rem;
    line-height:1.18;
    letter-spacing:-.035em;
    font-weight:800;
}

.auth-login-card-header p{
    margin:0;
    font-size:.93rem;
    line-height:1.55;
}

.auth-google-entry{
    min-height:54px;
    border-radius:16px !important;
    font-size:.9rem;
}

.auth-google-divider{
    font-size:.82rem !important;
    gap:12px !important;
}

.auth-login-label{
    font-weight:700;
    font-size:.88rem;
    margin-bottom:.52rem;
}

.auth-login-input{
    height:55px;
    border-radius:16px;
    padding:0 1rem;
    font-size:.97rem;
    box-shadow:none !important;
}

.auth-login-options{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:1rem;
    font-size:.88rem;
}

.auth-login-check{
    display:flex;
    align-items:center;
    gap:.52rem;
    margin:0;
}

.auth-login-check .form-check-input{
    margin-top:0;
    float:none;
}

.auth-login-register-link{
    text-decoration:none;
    font-weight:700;
}

.auth-login-submit{
    height:55px;
    border:none;
    border-radius:16px;
    font-weight:800;
    font-size:.93rem;
    transition:transform .16s ease,box-shadow .16s ease;
}

.auth-login-submit:hover,
.auth-login-submit:focus{
    transform:translateY(-1px);
}

.auth-login-new-account{
    margin-top:.35rem;
    padding-top:1rem;
    border-top:1px solid #e9eff9;
}

.auth-login-new-account > span{
    display:block;
    text-align:center;
    color:#667896;
    font-size:.79rem;
    margin-bottom:.7rem;
}

.auth-login-register-actions{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:.62rem;
}

.auth-login-register-action{
    min-height:44px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:13px;
    text-decoration:none;
    font-size:.78rem;
    font-weight:800;
    transition:transform .16s ease,box-shadow .16s ease;
}

.auth-login-register-action:hover{
    transform:translateY(-1px);
}

.auth-login-admin-box{
    margin-top:1.25rem;
    padding:1rem 1.1rem;
    border-radius:18px;
    font-size:.95rem;
}

.auth-login-admin-box strong,
.auth-login-admin-box span{display:block}
.auth-login-admin-box span{margin-top:.2rem}

/* Tema claro */
.public-login-view[data-public-theme="light"]{
    background:radial-gradient(circle at 8% 82%,rgba(45,110,243,.08),transparent 34%),linear-gradient(180deg,#f9fbff 0%,#f1f6fc 100%);
    color:#071d4b;
}

.public-login-view[data-public-theme="light"] .topbar{
    background:rgba(255,255,255,.9);
    border-bottom:1px solid rgba(214,225,244,.9);
}

.public-login-view[data-public-theme="light"] .brand,
.public-login-view[data-public-theme="light"] .nav-link-custom,
.public-login-view[data-public-theme="light"] .brand-subtitle{
    color:#0f264d;
}

.public-login-view[data-public-theme="light"] .nav-link-custom:hover{color:#075bea}

.public-login-view[data-public-theme="light"] .public-theme-toggle-btn{
    background:#fff;
    border:1px solid #d9e5f8;
    color:#071d4b;
}

.public-login-view[data-public-theme="light"] .public-header-action-btn.public-topbar-login,
.public-login-view[data-public-theme="light"] .topbar .btn-outline-light{
    background:#fff;
    border:1px solid #d3def2;
    color:#071d4b;
}

.public-login-view[data-public-theme="light"] .auth-login-kicker{
    background:#e3efff;
    color:#075bea;
}

.public-login-view[data-public-theme="light"] .auth-login-text{
    color:#536b94;
}

.public-login-view[data-public-theme="light"] .auth-login-highlight-card{
    background:rgba(255,255,255,.92);
    border:1px solid #e0eaf8;
    box-shadow:0 5px 15px rgba(17,39,80,.025);
}

.public-login-view[data-public-theme="light"] .auth-login-highlight-card strong{color:#081c49}
.public-login-view[data-public-theme="light"] .auth-login-highlight-card span:not(.auth-login-highlight-tag){color:#637695}
.public-login-view[data-public-theme="light"] .auth-login-highlight-card--client .auth-login-highlight-tag{color:#075bea}
.public-login-view[data-public-theme="light"] .auth-login-highlight-card--professional .auth-login-highlight-tag{color:#079068}
.public-login-view[data-public-theme="light"] .auth-login-highlight-card--secure .auth-login-highlight-tag{color:#ec8c12}
.public-login-view[data-public-theme="light"] .auth-login-highlight-card--client .auth-login-highlight-icon{background:#eaf2ff;color:#075bea}
.public-login-view[data-public-theme="light"] .auth-login-highlight-card--professional .auth-login-highlight-icon{background:#e8f8f2;color:#079068}
.public-login-view[data-public-theme="light"] .auth-login-highlight-card--secure .auth-login-highlight-icon{background:#fff3e5;color:#ec8c12}

.public-login-view[data-public-theme="light"] .auth-login-card{
    background:#fff;
    border:1px solid #e0e9f7;
}

.public-login-view[data-public-theme="light"] .auth-login-badge{
    background:#e9fbf7;
    color:#07886c;
}

.public-login-view[data-public-theme="light"] .auth-login-card-header p,
.public-login-view[data-public-theme="light"] .auth-login-check,
.public-login-view[data-public-theme="light"] .auth-login-admin-box,
.public-login-view[data-public-theme="light"] .auth-login-admin-box span{
    color:#637695;
}

.public-login-view[data-public-theme="light"] .auth-login-input{
    background:#fff;
    border:1px solid #d4dfef;
    color:#071d4b;
}

.public-login-view[data-public-theme="light"] .auth-login-input:focus{
    border-color:#4a91ff;
    background:#fff;
}

.public-login-view[data-public-theme="light"] .auth-login-register-link{color:#075bea}

.public-login-view[data-public-theme="light"] .auth-login-submit{
    background:linear-gradient(120deg,#0d6cf2 0%,#154acb 100%);
    color:#fff;
    box-shadow:0 15px 30px rgba(14,89,220,.22);
}

.public-login-view[data-public-theme="light"] .auth-login-register-action--client{
    background:#edf4ff;
    border:1px solid #d2e1ff;
    color:#075bea;
}

.public-login-view[data-public-theme="light"] .auth-login-register-action--professional{
    background:#effaf6;
    border:1px solid #d6efe5;
    color:#087b5c;
}

.public-login-view[data-public-theme="light"] .auth-login-admin-box{
    background:#f8fbff;
    border:1px solid #dbe4f0;
}

/* Tema escuro preservado e refinado */
.public-login-view[data-public-theme="dark"]{
    background:linear-gradient(180deg,#03111f 0%,#020c17 100%);
    color:#e5eefb;
}

.public-login-view[data-public-theme="dark"] .topbar{
    background:rgba(2,12,24,.88);
    border-bottom:1px solid rgba(59,130,246,.16);
}

.public-login-view[data-public-theme="dark"] .auth-login-kicker{
    background:rgba(34,211,238,.12);
    color:#67e8f9;
}

.public-login-view[data-public-theme="dark"] .auth-login-text,
.public-login-view[data-public-theme="dark"] .auth-login-highlight-card span:not(.auth-login-highlight-tag),
.public-login-view[data-public-theme="dark"] .auth-login-card-header p,
.public-login-view[data-public-theme="dark"] .auth-login-check,
.public-login-view[data-public-theme="dark"] .auth-login-new-account > span{
    color:rgba(226,232,240,.78);
}

.public-login-view[data-public-theme="dark"] .auth-login-highlight-card{
    background:rgba(10,20,36,.78);
    border:1px solid rgba(59,130,246,.14);
}

.public-login-view[data-public-theme="dark"] .auth-login-highlight-card .auth-login-highlight-tag{color:#7dd3fc}
.public-login-view[data-public-theme="dark"] .auth-login-highlight-icon{
    background:rgba(37,99,235,.14);
    color:#93c5fd;
}

.public-login-view[data-public-theme="dark"] .auth-login-card{
    background:linear-gradient(180deg,rgba(7,20,37,.96) 0%,rgba(4,14,28,.96) 100%);
    border:1px solid rgba(59,130,246,.14);
    box-shadow:0 28px 64px rgba(0,0,0,.35);
}

.public-login-view[data-public-theme="dark"] .auth-login-badge{
    background:rgba(34,211,238,.14);
    color:#67e8f9;
}

.public-login-view[data-public-theme="dark"] .auth-login-input{
    background:rgba(255,255,255,.05);
    border:1px solid rgba(148,163,184,.22);
    color:#fff;
}

.public-login-view[data-public-theme="dark"] .auth-login-input:focus{
    border-color:rgba(96,165,250,.65);
    background:rgba(255,255,255,.06);
}

.public-login-view[data-public-theme="dark"] .auth-login-register-link{color:#7dd3fc}

.public-login-view[data-public-theme="dark"] .auth-login-submit{
    background:linear-gradient(135deg,#22d3ee 0%,#2563eb 100%);
    color:#03111f;
    box-shadow:0 16px 36px rgba(34,211,238,.18);
}

.public-login-view[data-public-theme="dark"] .auth-login-new-account{border-color:rgba(148,163,184,.17)}
.public-login-view[data-public-theme="dark"] .auth-login-register-action--client,
.public-login-view[data-public-theme="dark"] .auth-login-register-action--professional{
    background:rgba(255,255,255,.05);
    color:#e5eefb;
    border:1px solid rgba(148,163,184,.2);
}

/* Menu mobile exclusivo da tela de login */
@media (max-width: 991.98px){
    body.login-mobile-menu-open{overflow:hidden}

    .public-login-view .public-header-wrap{
        min-height:70px;
        flex-wrap:nowrap !important;
        padding-top:.62rem !important;
        padding-bottom:.62rem !important;
    }

    .public-login-view .brand img{
        max-height:38px !important;
    }

    .public-login-view .brand-subtitle{
        display:none;
    }

    .public-login-view .public-header-nav{
        display:none !important;
    }

    .login-mobile-menu-toggle{
        width:44px;
        height:44px;
        border-radius:13px;
        border:1px solid #dce6f7;
        background:#fff;
        display:inline-flex;
        align-items:center;
        justify-content:center;
        flex-direction:column;
        gap:5px;
        box-shadow:0 4px 12px rgba(10,31,70,.05);
    }

    .login-mobile-menu-toggle span{
        width:20px;
        height:2px;
        border-radius:99px;
        background:#071d4b;
        display:block;
        transition:transform .2s ease,opacity .2s ease;
    }

    .login-mobile-menu-toggle.is-open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
    .login-mobile-menu-toggle.is-open span:nth-child(2){opacity:0}
    .login-mobile-menu-toggle.is-open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

    .login-mobile-nav-overlay{
        display:block;
        position:fixed;
        inset:0;
        z-index:1060;
        background:rgba(7,22,52,.44);
        opacity:0;
        pointer-events:none;
        transition:opacity .22s ease;
    }

    .login-mobile-nav-overlay.is-open{
        opacity:1;
        pointer-events:auto;
    }

    .login-mobile-nav-panel{
        display:flex;
        position:fixed;
        z-index:1061;
        top:0;
        left:0;
        height:100dvh;
        width:min(84vw,330px);
        padding:1rem;
        background:#fff;
        flex-direction:column;
        transform:translateX(-103%);
        transition:transform .25s ease;
        box-shadow:20px 0 46px rgba(7,22,52,.18);
    }

    .login-mobile-nav-panel.is-open{transform:translateX(0)}

    .login-mobile-nav-header{
        display:flex;
        justify-content:space-between;
        align-items:center;
        gap:1rem;
        padding-bottom:1rem;
        border-bottom:1px solid #edf2fa;
    }

    .login-mobile-brand img{
        width:148px;
        max-height:46px;
        object-fit:contain;
        object-position:left center;
        display:block;
    }

    .login-mobile-nav-close{
        display:flex;
        align-items:center;
        justify-content:center;
        width:40px;
        height:40px;
        border:1px solid #e1e8f6;
        border-radius:12px;
        background:#f7faff;
        color:#071d4b;
        font-size:1.55rem;
        line-height:1;
    }

    .login-mobile-nav-links{
        padding:1rem 0;
        display:grid;
        gap:.35rem;
    }

    .login-mobile-nav-links a{
        min-height:48px;
        display:flex;
        align-items:center;
        padding:0 .85rem;
        border-radius:12px;
        color:#102750;
        text-decoration:none;
        font-size:.9rem;
        font-weight:700;
    }

    .login-mobile-nav-links a:hover{
        background:#f1f6ff;
        color:#075bea;
    }

    .login-mobile-nav-actions{
        margin-top:auto;
        padding-top:1rem;
        border-top:1px solid #edf2fa;
        display:grid;
        gap:.66rem;
    }

    .login-mobile-theme-action,
    .login-mobile-install-action{
        width:100%;
        min-height:48px;
        border-radius:13px;
        display:inline-flex;
        justify-content:center;
        align-items:center;
        gap:.44rem;
        font-size:.85rem;
        font-weight:800;
    }

    .login-mobile-theme-action{
        color:#102750;
        background:#fff;
        border:1px solid #dce6f7;
    }

    .login-mobile-install-action{
        color:#fff;
        border:1px solid rgba(7,74,203,.26);
        background:linear-gradient(120deg,#071d4b 0%,#0b45bf 48%,#176cf1 100%);
        box-shadow:0 10px 22px rgba(8,60,164,.19);
    }

    .login-mobile-install-action svg{
        width:15px;
        height:15px;
    }

    .public-login-view[data-public-theme="dark"] .login-mobile-menu-toggle,
    .public-login-view[data-public-theme="dark"] .login-mobile-nav-panel,
    .public-login-view[data-public-theme="dark"] .login-mobile-nav-close,
    .public-login-view[data-public-theme="dark"] .login-mobile-theme-action{
        background:#071525;
        border-color:rgba(148,163,184,.22);
        color:#e5eefb;
    }

    .public-login-view[data-public-theme="dark"] .login-mobile-menu-toggle span{background:#e5eefb}
    .public-login-view[data-public-theme="dark"] .login-mobile-nav-links a{color:#e5eefb}
    .public-login-view[data-public-theme="dark"] .login-mobile-nav-links a:hover{background:rgba(37,99,235,.15)}
    .public-login-view[data-public-theme="dark"] .login-mobile-nav-header,
    .public-login-view[data-public-theme="dark"] .login-mobile-nav-actions{border-color:rgba(148,163,184,.15)}

    .auth-login-page{
        padding-top:1.35rem !important;
        padding-bottom:2.25rem !important;
    }

    .auth-login-grid{
        display:flex;
        flex-direction:column;
        gap:1.4rem;
        align-items:stretch;
    }

    .auth-login-card-wrap{
        order:1;
    }

    .auth-login-intro{
        order:2;
        padding:0;
    }

    .auth-login-title{
        font-size:clamp(2.05rem,8vw,2.52rem);
        line-height:1.08;
        margin:.9rem 0 .7rem;
    }

    .auth-login-text{
        font-size:.92rem;
        line-height:1.58;
        margin-bottom:1.22rem;
    }

    .auth-login-highlights{
        gap:.66rem;
    }

    .auth-login-highlight-card{
        padding:.78rem .82rem;
        gap:.72rem;
        border-radius:16px;
    }

    .auth-login-highlight-icon{
        width:43px;
        height:43px;
        flex-basis:43px;
        border-radius:13px;
    }

    .auth-login-highlight-icon svg{
        width:20px;
        height:20px;
    }

    .auth-login-highlight-card strong{
        font-size:.86rem;
    }

    .auth-login-highlight-card span:not(.auth-login-highlight-tag){
        font-size:.76rem;
    }

    .auth-login-card{
        padding:1.25rem;
        border-radius:22px;
    }

    .auth-login-card-header h2{
        font-size:1.48rem;
    }
}

@media (max-width:575.98px){
    .auth-login-page .container{
        padding-left:1rem;
        padding-right:1rem;
    }

    .auth-login-title{
        font-size:1.9rem;
    }

    .auth-login-options{
        gap:.55rem;
    }

    .auth-login-register-actions{
        grid-template-columns:1fr;
    }
}
