/*
* CSS LOGIN PORTAL
*/
body {
    font-family: 'Poppins', sans-serif;
    font-size: 15px;
    min-height: 100vh;

    background: linear-gradient(160deg, var(--color-primary, #3BB2B8) 0%, var(--color-secondary, #32959a) 100%);
    background-attachment: fixed;
}

:root {
    --weight-strong: 600;
    --weight-bold: 700;
    --hover-duration: 0.3s;
    --index-modal: 4;
}

a {
    text-decoration: none !important;
}

.small {
    color: #666;
    font-size: 15px!important;
}


/*CONTENT*/
.login-content {
    padding: 20px;
    margin-bottom: 20px;
    border: 0px solid #ced4da;
    border-radius: 5px;
    background-color: #fff;
}

.login-content p { 
    font-family: var(--font-paragraph) !important;    
    font-size: 15px;
    color: #333;
    text-align: center;
}

.login-logo {
    text-align: center !important;
    margin: 0 auto !important;
    padding: 20px 0 !important;
}

.login-logo img {
    text-align: center !important;
    margin: 0 auto !important;
}

.login-logo h1 {
    font-family: var(--font-title) !important;
    margin-bottom: 30px;
    color: var(--color-primary);
    font-size: 25px;
    text-indent: 0;
    text-transform: uppercase;
    font-weight: 800;
    text-align: center;
}

.login-logo h1 span {
    color: var(--color-secondary);
}

.login-content h2 {
    text-align: center;
    font-weight: 800;
    color: var(--color-primary) !important;
}

.box-button {
    margin-top: 15px;
}

.btn-primary {
    border-radius: 0 !important;
    color: #fff;
    padding: 12px 0;
    text-transform: uppercase;
    background-color: var(--color-primary) !important;
    border-color: var(--color-primary) !important;
}

.btn-primary:focus {
     outline: none !important; 
     box-shadow: none !important;
}

/*FORM*/
form {
    margin-top: 30px;
}

form input {
    border-width: 1px !important;
    border-radius: 0 !important;
}

.text-right {
    text-align: right !important;
}

form label {
    color: #666 !important;
}

form input[type=text]:focus,
form input[type=email]:focus,
form input[type=password]:focus {
    outline: none !important; 
    box-shadow: 0 0 5px var(--color-primary) !important;
    border: 1px solid var(--color-primary) !important; 
    transition: 0.5s;
    background-color: #f9f9f9 !important;   
}

.btn-password {
    color: #999;
    cursor: pointer;
    position: absolute;
    top: 2px;
    right: 2px;
    height: 54px;
    display: flex;
    align-items: center;
    border-radius: 0;
}

.icon::before {
    display: inline-block;
    font-style: normal;
    font-variant: normal;
    text-rendering: auto;
    -webkit-font-smoothing: antialiased;
}

.btn-password:before {
    font-family: "Font Awesome 5 Free"; font-weight: 900; content: "\f070";
 }
 
.active:before {
    font-family: "Font Awesome 5 Free"; font-weight: 900; content: "\f06e";
 }
 
 .btn-password:focus {
    outline: none !important; 
    box-shadow: none;    
}

/*ICONS NORMALIZE*/
[class^="icon-"]:before,
[class*=" icon-"]:before {
    position: relative !important;
    top: .125em !Important;
    margin-right: .4em !Important;
}

.icon-notext:before {
    top: 0;
    margin-right: 0 !important;;
}


/** MESSAGE */
.message {
    display: block;
    margin-bottom: 20px;
    padding: 15px;
    text-align: center;
    -webkit-border-radius: 0;
    -moz-border-radius: 0;
    border-radius: 0;
    border: 1px solid #cccccc;
    font-weight: 500;
    background-color: #f9f9f9;
}

.message.success {
    color: #ffffff;
    border-color: var(--bs-success);
    background-color: var(--bs-success);
}

.message.info {
    color: #ffffff;
    border-color: var(--bs-info);
    background-color: var(--bs-info);
}

.message.warning {
    color: #ffffff;
    border-color: var(--bs-warning);
    background-color: var(--bs-warning);
}

.message.error {
    color: #ffffff;
    border-color: var(--bs-danger);
    background-color: var(--bs-danger);
}


/*DEFAULT LOAD*/
.ajax_load {
    display: none;
    position: fixed;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.5);
    z-index: calc(var(--index-modal) * 2);
}

.ajax_load_box {
    margin: auto;
    text-align: center;
    color: #ffffff;
    font-weight: var(--weight-bold);
    text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.5);
}

.ajax_load_box_circle {
    border: 16px solid #e3e3e3;
    border-top: 16px solid var(--bs-success);
    border-radius: 50%;
    margin: auto;
    width: 80px;
    height: 80px;

    -webkit-animation: spin 1.2s linear infinite;
    -o-animation: spin 1.2s linear infinite;
    animation: spin 1.2s linear infinite;
}

.ajax_load_box_title {
    margin-top: 15px;
    font-weight: var(--weight-strong);
}

@-webkit-keyframes spin {
    0% {
        -webkit-transform: rotate(0deg);
    }
    100% {
        -webkit-transform: rotate(360deg);
    }
}

@keyframes spin {
    0% {
        transform: rotate(0deg);
    }
    100% {
        transform: rotate(360deg);
    }
}

/* =========================================================
   LOGIN ADMINISTRATIVO — layout em duas colunas
   ========================================================= */
.auth-page {
    min-height: 100vh;
    display: flex;
    align-items: center;
    padding: 40px 0;
}

.auth-wrap {
    display: flex;
    max-width: 960px;
    margin: 0 auto;
    background-color: #fff;
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.25);
}

.auth-side {
    flex: 0 0 42%;
    display: flex;
    align-items: center;
    padding: 50px 40px;
    background-color: var(--color-primary, #3BB2B8);
    color: #fff;
}

.auth-side-logo {
    display: block;
    max-width: 160px;
    max-height: 70px;
    margin-bottom: 24px;
}

.auth-side-icon {
    display: block;
    font-size: 2.6rem;
    margin-bottom: 20px;
}

.auth-side h2 {
    font-family: var(--font-title), sans-serif;
    font-size: 1.5rem;
    font-weight: 700;
    color: #fff !important;
    text-align: left;
    text-transform: none;
    margin-bottom: 14px;
}

.auth-side p {
    font-family: var(--font-paragraph), sans-serif;
    font-size: 0.9rem;
    line-height: 1.6;
    opacity: 0.92;
    margin-bottom: 26px;
}

.auth-benefits {
    list-style: none;
    padding: 0;
    margin: 0;
}

.auth-benefits li {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 0;
    font-size: 0.85rem;
    border-bottom: 1px solid rgba(255, 255, 255, 0.18);
}

.auth-benefits li:last-child {
    border-bottom: none;
}

.auth-benefits i {
    font-size: 1.1rem;
}

.auth-panel {
    flex: 1 1 auto;
    padding: 50px 45px;
}

.auth-title {
    font-family: var(--font-title), sans-serif;
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--color-title, #333);
    text-align: left;
    text-transform: none;
    margin-bottom: 6px;
}

.auth-subtitle {
    color: #777;
    font-size: 0.88rem;
    margin-bottom: 4px;
}

@media (max-width: 767px) {
    .auth-page {
        padding: 20px 0;
    }
    .auth-wrap {
        border-radius: 12px;
    }
    .auth-side {
        display: none;
    }
    .auth-panel {
        padding: 34px 22px;
    }
}

/* Login administrativo moderno */
.admin-auth-page{--auth-ink:#172033;--auth-muted:#718096;--auth-border:#e7eaf0;position:relative;overflow:hidden;isolation:isolate;background:linear-gradient(145deg,#f4f5fa 0%,#eef0f8 50%,#f7f8fb 100%);padding:32px}.admin-auth-page:before{content:"";position:absolute;inset:0;z-index:-2;background-image:radial-gradient(rgba(108,92,231,.11) 1px,transparent 1px);background-size:24px 24px;mask-image:linear-gradient(90deg,#000,transparent 45%)}.admin-auth-orb{position:absolute;z-index:-1;border-radius:50%;filter:blur(2px);opacity:.7}.admin-auth-orb.orb-one{width:360px;height:360px;left:-150px;top:-130px;background:color-mix(in srgb,var(--color-primary,#6c5ce7) 20%,transparent)}.admin-auth-orb.orb-two{width:300px;height:300px;right:-100px;bottom:-130px;background:color-mix(in srgb,var(--color-secondary,#8b7cf6) 18%,transparent)}.admin-auth-container{max-width:1080px}.admin-auth-wrap{min-height:650px;display:grid;grid-template-columns:minmax(390px,.9fr) minmax(430px,1.1fr);border:1px solid rgba(255,255,255,.75);border-radius:24px;background:#fff;box-shadow:0 30px 80px rgba(23,32,51,.16);overflow:hidden}.admin-auth-side{position:relative;display:flex;flex-direction:column;align-items:stretch;justify-content:space-between;padding:48px;background:linear-gradient(155deg,var(--color-primary,#6c5ce7) 0%,color-mix(in srgb,var(--color-primary,#6c5ce7) 65%,#172033) 100%);color:#fff;overflow:hidden}.admin-auth-side:before,.admin-auth-side:after{content:"";position:absolute;border:1px solid rgba(255,255,255,.12);border-radius:50%}.admin-auth-side:before{width:330px;height:330px;right:-180px;top:-120px}.admin-auth-side:after{width:260px;height:260px;left:-150px;bottom:-130px}.admin-auth-side-inner,.admin-auth-side-footer{position:relative;z-index:1}.admin-auth-badge{display:inline-flex;align-items:center;gap:7px;border:1px solid rgba(255,255,255,.2);border-radius:20px;background:rgba(255,255,255,.09);padding:7px 10px;font-size:.66rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;margin-bottom:30px}.admin-auth-logo-wrap{display:inline-flex;align-items:center;justify-content:center;max-width:210px;min-height:72px;border-radius:14px;background:#fff;padding:12px 16px;margin-bottom:27px;box-shadow:0 10px 28px rgba(23,32,51,.14)}.admin-auth-logo-wrap .auth-side-logo{max-width:175px;max-height:55px;margin:0;object-fit:contain}.admin-auth-brand-fallback{display:flex;align-items:center;gap:11px;margin-bottom:28px;font-size:.9rem;font-weight:750}.admin-auth-brand-fallback i{width:44px;height:44px;display:grid;place-items:center;border-radius:12px;background:rgba(255,255,255,.14);font-size:1.2rem}.admin-auth-side h2{max-width:390px;font-family:'Inter',sans-serif;font-size:1.75rem;line-height:1.2;letter-spacing:-.035em;margin:0 0 13px;color:#fff!important}.admin-auth-side>div p,.admin-auth-side-inner>p{max-width:380px;font-family:'Inter',sans-serif;font-size:.82rem;line-height:1.65;color:rgba(255,255,255,.77);margin:0 0 26px}.admin-auth-side .auth-benefits{display:flex;flex-direction:column;gap:4px}.admin-auth-side .auth-benefits li{display:grid;grid-template-columns:38px 1fr;align-items:center;gap:11px;padding:10px 0;border:0}.admin-auth-side .auth-benefits li>span{width:38px;height:38px;display:grid;place-items:center;border-radius:11px;background:rgba(255,255,255,.12)}.admin-auth-side .auth-benefits i{font-size:1rem}.admin-auth-side .auth-benefits strong,.admin-auth-side .auth-benefits small{display:block}.admin-auth-side .auth-benefits strong{font-size:.73rem}.admin-auth-side .auth-benefits small{color:rgba(255,255,255,.65);font-size:.62rem;margin-top:2px}.admin-auth-side-footer{display:flex;align-items:center;gap:7px;padding-top:22px;border-top:1px solid rgba(255,255,255,.16);color:rgba(255,255,255,.7);font-size:.63rem}.admin-auth-panel{display:flex;flex-direction:column;justify-content:center;padding:44px 58px;background:#fff}.admin-auth-panel-top{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:auto}.admin-auth-panel-top a,.admin-auth-panel-top span{display:inline-flex;align-items:center;gap:6px;color:#8690a2;font-size:.64rem;font-weight:650}.admin-auth-panel-top a:hover{color:var(--color-primary,#6c5ce7)}.admin-auth-panel-top span{color:#198754;background:#effaf5;border-radius:20px;padding:6px 9px}.admin-auth-form-head{margin-top:58px}.admin-auth-kicker{display:block;color:var(--color-primary,#6c5ce7);font-size:.66rem;font-weight:800;letter-spacing:.09em;text-transform:uppercase;margin-bottom:7px}.admin-auth-panel .auth-title{font-family:'Inter',sans-serif;color:var(--auth-ink);font-size:2rem;font-weight:750;letter-spacing:-.045em;margin:0 0 8px}.admin-auth-panel .auth-subtitle{max-width:420px;color:var(--auth-muted);font-size:.78rem;line-height:1.55;margin:0}.admin-auth-mobile-icon{display:none}.admin-auth-panel .ajax_response{margin-top:17px}.admin-auth-panel .message{border:0;border-radius:10px;padding:11px 13px;font-size:.68rem;text-align:left}.admin-auth-panel form{margin-top:28px}.admin-auth-field{margin-bottom:17px}.admin-auth-field>label{display:block;color:#596579!important;font-size:.68rem;font-weight:700;margin:0 0 6px}.admin-auth-input{position:relative;display:flex;align-items:center}.admin-auth-input>i{position:absolute;left:14px;color:#9aa3b2;font-size:.9rem;z-index:1}.admin-auth-input .form-control{height:47px;border:1px solid var(--auth-border)!important;border-radius:11px!important;background:#fbfcfd!important;padding:10px 46px 10px 41px;font-family:'Inter',sans-serif;font-size:.75rem!important;color:#354052}.admin-auth-input .form-control::placeholder{color:#b0b7c3}.admin-auth-input .form-control:focus{border-color:color-mix(in srgb,var(--color-primary,#6c5ce7) 65%,#fff)!important;background:#fff!important;box-shadow:0 0 0 4px color-mix(in srgb,var(--color-primary,#6c5ce7) 10%,transparent)!important}.admin-auth-input .btn-password{position:absolute;right:7px;top:7px;width:33px;height:33px;display:grid;place-items:center;border:0;border-radius:8px;background:transparent;color:#929bad;padding:0}.admin-auth-input .btn-password:before{content:none}.admin-auth-input .btn-password:hover{background:#f0f1f5;color:var(--color-primary,#6c5ce7)}.admin-auth-input .btn-password.active i:before{content:"\f30a"}.admin-auth-panel .box-button{margin-top:22px}.admin-auth-submit{width:100%;display:flex;align-items:center;justify-content:space-between;border:0;border-radius:11px;padding:13px 15px;background:var(--color-primary,#6c5ce7);color:#fff;font-family:'Inter',sans-serif;font-size:.75rem;font-weight:750;box-shadow:0 10px 24px color-mix(in srgb,var(--color-primary,#6c5ce7) 28%,transparent);transition:.2s}.admin-auth-submit:hover{transform:translateY(-1px);filter:brightness(.96);box-shadow:0 13px 28px color-mix(in srgb,var(--color-primary,#6c5ce7) 33%,transparent)}.admin-auth-help{display:flex;align-items:flex-start;gap:7px;color:#9aa3b2!important;font-size:.62rem!important;text-align:left!important;line-height:1.5;margin:22px 0 48px}.admin-auth-help i{color:#a79ef0}
@media(max-width:900px){.admin-auth-page{padding:22px}.admin-auth-wrap{grid-template-columns:minmax(320px,.8fr) minmax(390px,1.2fr)}.admin-auth-side{padding:38px 32px}.admin-auth-panel{padding:36px 38px}}
@media(max-width:767px){.admin-auth-page{padding:18px;background:#f5f6fa}.admin-auth-page:before{mask-image:none;opacity:.45}.admin-auth-wrap{display:block;min-height:0;border-radius:19px}.admin-auth-side{display:none}.admin-auth-panel{min-height:calc(100vh - 36px);padding:24px;justify-content:center}.admin-auth-panel-top{margin:0 0 auto}.admin-auth-panel-top span{display:none}.admin-auth-form-head{margin-top:55px}.admin-auth-mobile-icon{width:46px;height:46px;display:grid;place-items:center;border-radius:13px;background:color-mix(in srgb,var(--color-primary,#6c5ce7) 12%,#fff);color:var(--color-primary,#6c5ce7);font-size:1.2rem;margin-bottom:22px}.admin-auth-panel .auth-title{font-size:1.7rem}.admin-auth-help{margin-bottom:auto}.admin-auth-orb{display:none}}
@media(max-width:390px){.admin-auth-page{padding:0}.admin-auth-wrap{border-radius:0;border:0}.admin-auth-panel{min-height:100vh;padding:21px}.admin-auth-form-head{margin-top:42px}}

/* Mantém o estado do botão de senha alinhado aos ícones oficiais do Bootstrap. */
.admin-auth-input .btn-password.active .bi-eye-slash::before{content:"\f340"}

/* Versão compacta: somente o formulário de acesso. */
.admin-auth-page .admin-auth-container{max-width:560px}.admin-auth-page .admin-auth-wrap{display:block;min-height:0;max-width:520px;margin:0 auto}.admin-auth-page .admin-auth-panel{min-height:560px;padding:54px 58px;justify-content:center}.admin-auth-page .admin-auth-form-head{margin-top:0}.admin-auth-page .admin-auth-mobile-icon{width:46px;height:46px;display:grid;place-items:center;border-radius:13px;background:color-mix(in srgb,var(--color-primary,#6c5ce7) 12%,#fff);color:var(--color-primary,#6c5ce7);font-size:1.2rem;margin-bottom:22px}
@media(max-width:767px){.admin-auth-page .admin-auth-panel{min-height:calc(100vh - 36px);padding:32px 25px}.admin-auth-page .admin-auth-form-head{margin-top:0}}
@media(max-width:390px){.admin-auth-page .admin-auth-panel{min-height:100vh;padding:25px 21px}}

/* GS V2 — LOGIN VISUAL ALIGNMENT
   Mantém a estrutura do box atual e aproxima o login da identidade visual do site.
*/
:root{
    --gs-primary:#03877c;
    --gs-dark:#024d46;
    --gs-dark-2:#015c55;
    --gs-accent:#05b59d;
    --gs-black:#050908;
    --gs-black-2:#090e0d;
    --gs-line:rgba(229,245,239,.13);
}

body{
    color:#f3f8f6;
    background:
        radial-gradient(circle at 82% 14%,rgba(3,135,124,.18),transparent 30%),
        radial-gradient(circle at 12% 82%,rgba(5,181,157,.08),transparent 28%),
        linear-gradient(180deg,#040706 0%,#07100e 50%,#040706 100%);
    background-attachment:fixed;
    position:relative;
    overflow-x:hidden;
}

body::before{
    content:"";
    position:fixed;
    inset:0;
    z-index:-2;
    pointer-events:none;
    opacity:.42;
    background-image:
        linear-gradient(rgba(255,255,255,.026) 1px,transparent 1px),
        linear-gradient(90deg,rgba(255,255,255,.026) 1px,transparent 1px);
    background-size:42px 42px;
    -webkit-mask-image:linear-gradient(to bottom,rgba(0,0,0,.95),transparent 95%);
    mask-image:linear-gradient(to bottom,rgba(0,0,0,.95),transparent 95%);
}

body::after{
    content:"";
    position:fixed;
    width:46vw;
    height:46vw;
    min-width:420px;
    min-height:420px;
    right:-20vw;
    top:8vh;
    z-index:-1;
    pointer-events:none;
    border-radius:50%;
    background:radial-gradient(circle,rgba(5,181,157,.12),transparent 66%);
    filter:blur(8px);
}

.admin-auth-page{
    --auth-ink:#10201c;
    --auth-muted:#71807b;
    --auth-border:#dce8e4;
    background:transparent;
}

.admin-auth-page::before{
    background-image:
        linear-gradient(rgba(255,255,255,.022) 1px,transparent 1px),
        linear-gradient(90deg,rgba(255,255,255,.022) 1px,transparent 1px);
    background-size:42px 42px;
    -webkit-mask-image:linear-gradient(90deg,#000,transparent 58%);
    mask-image:linear-gradient(90deg,#000,transparent 58%);
}

.admin-auth-orb.orb-one{
    background:rgba(3,135,124,.16);
}

.admin-auth-orb.orb-two{
    background:rgba(5,181,157,.10);
}

.admin-auth-wrap{
    border:1px solid rgba(229,245,239,.12);
    box-shadow:0 34px 90px rgba(0,0,0,.42);
}

.admin-auth-side{
    background:
        radial-gradient(circle at 20% 15%,rgba(5,181,157,.18),transparent 30%),
        linear-gradient(155deg,#024d46 0%,#015c55 48%,#07100e 100%);
}

.admin-auth-badge{
    border-color:rgba(5,181,157,.28);
    background:rgba(5,181,157,.08);
}

.admin-auth-side .auth-benefits li>span{
    background:rgba(5,181,157,.12);
    color:var(--gs-accent);
}

.admin-auth-side-footer{
    border-color:rgba(229,245,239,.13);
}

.admin-auth-panel{
    background:#fff;
}

.admin-auth-kicker{
    color:var(--gs-primary);
}

.admin-auth-panel-top a:hover{
    color:var(--gs-primary);
}

.admin-auth-panel-top span{
    color:#02685e;
    background:#e9f8f5;
}

.admin-auth-field:focus-within,
.admin-auth-field:has(input:focus){
    border-color:rgba(3,135,124,.55);
    box-shadow:0 0 0 3px rgba(3,135,124,.08);
}

.admin-auth-field i,
.admin-auth-field .bi{
    color:var(--gs-primary);
}

.admin-auth-submit,
.admin-auth-panel .btn-primary{
    background:var(--gs-primary)!important;
    border-color:var(--gs-primary)!important;
    color:#fff!important;
}

.admin-auth-submit:hover,
.admin-auth-panel .btn-primary:hover{
    background:var(--gs-dark-2)!important;
    border-color:var(--gs-dark-2)!important;
}

.admin-auth-submit i{
    background:var(--gs-accent);
    color:#04231e;
}

.admin-auth-panel a{
    transition:color .25s ease;
}

.admin-auth-panel a:hover{
    color:var(--gs-primary);
}

.ajax_load_box_circle{
    border-top-color:var(--gs-accent);
}

@media (max-width:767px){
    body::after{
        width:80vw;
        height:80vw;
        right:-42vw;
    }

    .admin-auth-page{
        padding:20px;
    }
}
