/* =========================================
   AUTH — NEXDEN
========================================= */

.nf-auth-body,
body.nf-auth-body{

    background:#f8f3ea;
}

.nf-auth{

    min-height:100vh;

    display:flex;
    align-items:center;
    justify-content:center;

    padding:32px 16px;
}

.nf-auth-shell{

    width:100%;
    max-width:480px;

    display:flex;
    flex-direction:column;
    gap:22px;
}

.nf-auth-brand{

    text-align:center;
}

.nf-auth-logo{

    width:56px;
    height:56px;
    object-fit:contain;
}

.nf-auth-brand h1{

    margin:14px 0 6px;

    font-size:28px;
    line-height:1.2;
    color:#211404;
}

.nf-auth-subtitle{

    margin:0;

    font-size:15px;
    line-height:1.55;
    color:#6b5840;
}

.nf-auth-card{

    padding:24px 22px;

    background:#fffdf8;

    border:1px solid
    rgba(139,94,0,.12);

    border-radius:18px;

    box-shadow:0 16px 36px
    rgba(43,22,0,.08);
}

.nf-auth-card h2{

    margin:0 0 8px;

    font-size:22px;
    color:#211404;
}

.nf-auth-lead{

    margin:0 0 18px;

    font-size:14px;
    line-height:1.55;
    color:#6b5840;
}

.nf-auth-error{

    margin:0 0 14px;

    padding:10px 12px;

    border-radius:10px;

    background:#fee2e2;
    color:#b91c1c;

    font-size:13px;
    font-weight:600;
}

.nf-auth-tabs{

    display:grid;
    grid-template-columns:1fr 1fr;
    gap:8px;

    margin-bottom:18px;

    padding:4px;

    border-radius:12px;
    background:#f5efe3;
}

.nf-auth-tab{

    padding:10px 12px;

    border:none;
    border-radius:10px;

    background:transparent;

    color:#6b5840;
    font-size:14px;
    font-weight:700;

    cursor:pointer;
}

.nf-auth-tab.is-active{

    background:#fffdf8;
    color:#211404;
    box-shadow:0 2px 8px rgba(43,22,0,.06);
}

.nf-auth-form{

    display:flex;
    flex-direction:column;
    gap:14px;
}

.nf-auth-field{

    display:flex;
    flex-direction:column;
    gap:6px;
}

.nf-auth-password-wrap{

    position:relative;
}

.nf-auth-password-wrap .nf-input{

    padding-right:84px;
}

.nf-auth-toggle-password{

    position:absolute;
    top:50%;
    right:10px;

    transform:translateY(-50%);

    border:none;
    background:transparent;

    padding:4px 8px;
    border-radius:6px;

    color:#8b5e00;
    font-size:12px;
    font-weight:700;

    cursor:pointer;
}

.nf-auth-actions-row{

    display:flex;
    justify-content:flex-end;
}

.nf-auth-link-btn{

    border:none;
    background:transparent;

    padding:4px 6px;

    color:#8b5e00;
    font-size:13px;
    font-weight:700;
    text-decoration:underline;
    text-underline-offset:2px;

    cursor:pointer;
}

.nf-auth-submit{

    width:100%;
    justify-content:center;
}

.nf-auth-check{

    display:flex;
    align-items:flex-start;
    gap:10px;

    font-size:13px;
    line-height:1.45;
    color:#4a3728;
}

.nf-auth-check input{

    margin-top:3px;
}

.nf-auth-strength{

    display:flex;
    flex-direction:column;
    gap:0;

    max-height:0;
    opacity:0;
    overflow:hidden;

    margin-top:0;

    transition:
    max-height .28s ease,
    opacity .24s ease,
    margin-top .24s ease,
    gap .24s ease;
}

.nf-auth-strength.is-visible{

    max-height:240px;
    opacity:1;
    gap:8px;
    margin-top:8px;
}

.nf-auth-strength-bar{

    height:8px;

    border-radius:999px;
    background:#efe6d7;
    overflow:hidden;
}

.nf-auth-strength-fill{

    display:block;
    height:100%;
    width:0;

    border-radius:999px;
    background:#dc2626;

    transition:
    width .2s ease,
    background .2s ease;
}

.nf-auth-strength-fill.is-medium{

    width:66%;
    background:#d97706;
}

.nf-auth-strength-fill.is-strong{

    width:100%;
    background:#16a34a;
}

.nf-auth-strength-fill.is-weak{

    width:33%;
    background:#dc2626;
}

.nf-auth-strength-label{

    font-size:12px;
    font-weight:800;
    color:#8b5e00;
    text-transform:uppercase;
    letter-spacing:.04em;
}

.nf-auth-rules{

    margin:0;
    padding:0;

    list-style:none;

    display:flex;
    flex-direction:column;
    gap:4px;
}

.nf-auth-rules li{

    display:flex;
    align-items:center;
    gap:6px;

    font-size:12px;
    color:#8b7355;
}

.nf-auth-rules li::before{

    content:'○';
    flex:0 0 auto;

    font-size:11px;
    color:#c4b59a;
}

.nf-auth-rules li.is-valid{

    color:#16a34a;
    font-weight:600;
}

.nf-auth-rules li.is-valid::before{

    content:'✓';
    color:#16a34a;
}

.nf-auth-code-grid{

    display:grid;
    grid-template-columns:repeat(6,minmax(0,1fr));
    gap:8px;
}

.nf-auth-code-input{

    width:100%;
    height:48px;

    text-align:center;

    border:1px solid rgba(139,94,0,.18);
    border-radius:12px;

    background:#fff;

    font-size:20px;
    font-weight:800;
    color:#211404;
}

.nf-auth-code-input:focus{

    outline:none;
    border-color:#b45309;
    box-shadow:0 0 0 3px rgba(180,83,9,.12);
}

.nf-auth-secondary-actions{

    display:flex;
    flex-direction:column;
    gap:10px;
    align-items:center;

    margin-top:16px;
}

.nf-auth-resend-hint{

    margin:12px 0 0;

    font-size:13px;
    line-height:1.5;
    text-align:center;
    color:#6b4f2d;
    font-weight:600;
}

.nf-auth-link-btn--disabled,
.nf-auth-link-btn:disabled{

    opacity:.45;
    cursor:not-allowed;
    pointer-events:none;
}

/* =========================================
   INTERAÇÕES — IDENTIDADE NEXDEN
========================================= */

.nf-auth{

    -webkit-tap-highlight-color:transparent;
}

.nf-auth
.nf-input:hover{

    border-color:rgba(139,94,0,.28);
}

.nf-auth
.nf-input:focus,
.nf-auth
.nf-input:focus-visible{

    outline:none;
    border-color:#b45309;
    box-shadow:0 0 0 4px rgba(180,83,9,.12);
    background:#fffdf8;
}

.nf-auth-tab:hover{

    color:#211404;
    background:rgba(255,253,248,.65);
}

.nf-auth-tab:focus,
.nf-auth-tab:focus-visible{

    outline:none;
    box-shadow:0 0 0 3px rgba(180,83,9,.14);
}

.nf-auth-link-btn:hover,
.nf-auth-link-btn:focus,
.nf-auth-link-btn:focus-visible{

    color:#b45309;
    background:rgba(180,83,9,.08);
    border-radius:6px;
    outline:none;
}

.nf-auth-toggle-password:hover,
.nf-auth-toggle-password:focus,
.nf-auth-toggle-password:focus-visible{

    color:#b45309;
    background:rgba(180,83,9,.08);
    border-radius:6px;
    outline:none;
}

.nf-auth-check input[type="checkbox"]{

    accent-color:#b45309;
}

.nf-auth-check input[type="checkbox"]:focus,
.nf-auth-check input[type="checkbox"]:focus-visible{

    outline:2px solid rgba(180,83,9,.35);
    outline-offset:2px;
}

.nf-auth-inline-link{

    color:#8b5e00;
    font-weight:700;
    text-decoration:underline;
    text-underline-offset:2px;
}

.nf-auth-inline-link:hover,
.nf-auth-inline-link:focus,
.nf-auth-inline-link:focus-visible{

    color:#b45309;
    outline:none;
}

.nf-auth
.nf-btn-primary{

    background:#211404;
    color:#f3d38a;
}

.nf-auth
.nf-btn-primary:hover,
.nf-auth
.nf-btn-primary:focus,
.nf-auth
.nf-btn-primary:focus-visible{

    background:#f3d38a;
    color:#211404;
    transform:translateY(-2px);
    outline:none;
}

.nf-auth
.nf-btn-primary:disabled,
.nf-auth
.nf-auth-submit:disabled{

    background:#d9cdb8;
    color:#8b7355;
    transform:none;
    cursor:not-allowed;
    opacity:1;
    box-shadow:none;
}

.nf-auth
.nf-auth-submit.is-loading{

    opacity:.82;
    cursor:wait;
}

.nf-auth-code-input:hover{

    border-color:rgba(139,94,0,.28);
}

.nf-auth-panel:not(.nf-hidden){

    animation:nfAuthPanelIn .22s ease;
}

@keyframes nfAuthPanelIn{

    from{
        opacity:0;
        transform:translateY(6px);
    }

    to{
        opacity:1;
        transform:translateY(0);
    }
}

@media(max-width:480px){

    .nf-auth-card{

        padding:20px 16px;
    }

    .nf-auth-brand h1{

        font-size:24px;
    }

}
