/* ----------------------------------------------------------
   Reset / fontes
---------------------------------------------------------- */
body, html{
    height:100%;
    margin:0;
    padding:0;
    font-family:'Segoe UI',sans-serif;
    position:relative;
    display:flex;
    flex-direction:column;
    overflow:hidden;
}

/* ----------------------------------------------------------
   Background com opacidade
---------------------------------------------------------- */
body::before{
    content:"";
    position:fixed;
    inset:0;
    background:url('../default_sistema/img/teste_1.png') center/cover
              no-repeat fixed;
    opacity:.4;
    z-index:-1;
}

/* ----------------------------------------------------------
   Área principal (centraliza o cartão)
---------------------------------------------------------- */
main{
    flex:1;
    display:flex;
    justify-content:center;
    align-items:center;
    min-height:100vh;
}

/* ----------------------------------------------------------
   Elementos legados (container / login-box) – intactos
---------------------------------------------------------- */
.container{
    --form-width:315px;
    --aspect-ratio:1.33;
    --login-box-color:#fff;
    --input-color:#fff;

    position:relative;
    display:flex;
    justify-content:center;
    align-items:center;
    overflow:hidden;
    width:calc(var(--form-width) + 1px);
    height:calc(var(--form-width)*var(--aspect-ratio) + 1px);
    background:var(--login-box-color);
    border-radius:24px;
    box-shadow:
        0 4px 8px rgba(0,0,0,.2),
        0 8px 16px rgba(0,0,0,.2),
        0 0 8px rgba(255,255,255,.1),
        0 0 16px rgba(255,255,255,.08);
    padding:25px 0 35px;
    z-index:8;
}
.container::before{
    content:"";
    position:absolute;
    inset:-50px;
    background:conic-gradient(from 45deg,transparent 75%,red,transparent 100%);
    animation:spin 4s ease-in-out infinite;
    z-index:-2;
}
@keyframes spin{to{transform:rotate(360deg);}}

/* login-box / formulário clássico ------------------------------------- */
.login-box{
    position:absolute;
    inset:28px;
    background:var(--login-box-color);
    border-radius:24px;
    backdrop-filter:blur(15px);
    box-shadow:
        inset 0 40px 60px -8px rgba(255,255,255,.12),
        inset 4px 0 12px -6px rgba(255,255,255,.12),
        inset 0 0 12px -4px rgba(255,255,255,.12);
    z-index:10;
}
.form{display:flex;flex-direction:column;gap:10px;align-items:center}
.img_logo_login{height:100px;margin-bottom:20px}

/* campos ---------------------------------------------------------------- */
.input,.form-control{
    width:100%;
    padding:10px;
    border:1px solid #000;
    border-radius:12px;
    background:var(--input-color);
    font-size:14px;
    outline:none;
}
.input:focus,.form-control:focus{border-color:#000}

/* botões ---------------------------------------------------------------- */

#btn_login{
    background:#762282;
    color: white;
    border:none;
    font-weight:600;
    cursor:pointer;
    display:grid;
    place-content:center;
}


/* footer fixo ----------------------------------------------------------- */
footer{
    position:fixed;
    bottom:0;
    width:100%;
    padding:8px 16px;
    z-index:1000;
}
.footer-right{display:flex;justify-content:flex-end;align-items:center;gap:8px;font-size:12px}
.logo-footer{height:36px;object-fit:contain}

/* ==========================================================
   Flip-card (Login ↔ Google)
========================================================== */

/* altura do footer fixo (ajuste se mudar) */
:root{ --footer-h:56px; }

.scene{
    position:fixed;
    top:18%;
    left:50%;
    /* 50 % para cima  –  metade do footer → centro visual */
    transform:translate(-50%, calc(-50% - var(--footer-h)/2));

    width:100%;
    max-width:380px;
    perspective:1200px;
    margin:0!important;
    z-index:50;
}

.flip-card{
    position:relative;
    width:100%;
    transform-style:preserve-3d;
    transition:transform .8s cubic-bezier(.4,.2,.2,1);
}
.flip-card.flip{transform:rotateY(180deg);}

.face{
    position:absolute;inset:0;
    width:100%;
    min-height:440px;
    display:flex;flex-direction:column;justify-content:center;
    background:#ffffff;
    color:#000;
    border:1px solid #dee2e6;
    border-radius:16px;
    backface-visibility:hidden;
    padding:40px 32px;
    box-shadow:0 10px 25px rgba(0,0,0,.35);
}
.face.back{transform:rotateY(180deg);}

.logo{width:140px;margin:0 auto 16px;display:block}

.toggle-link{
    color:#d72531;
    font-size:.9rem;
    text-align:center;
    cursor:pointer;
    text-decoration:none;
    transition:opacity .2s;
}
.toggle-link:hover{text-decoration:underline;opacity:.8}

.oauth-button{
    background:#fff;
    border:1px solid #dee2e6;
    border-radius:6px;
    padding:.6rem;
    color:#000;
    text-decoration:none;
}
.oauth-button:hover{background:#f8f9fa}

/* ==========================================================
   Login Card Override (centralizado + elegante)
========================================================== */
body,
html{
    overflow-x:hidden;
    overflow-y:auto;
}

main{
    min-height:calc(100vh - var(--footer-h)) !important;
    padding:clamp(18px, 3vw, 34px) 16px calc(var(--footer-h) + 14px) !important;
}

.scene{
    position:relative !important;
    top:auto !important;
    left:auto !important;
    transform:none !important;
    width:min(100%, 370px) !important;
    margin:0 auto !important;
    perspective:none !important;
}

.flip-card{
    max-width:370px;
    transform-style:flat;
}

.face{
    position:relative !important;
    inset:auto !important;
    min-height:auto;
    background:linear-gradient(180deg, #ffffff 0%, #fcf9ff 100%);
    border:1px solid rgba(118, 34, 130, .22);
    border-radius:18px;
    padding:clamp(22px, 3vw, 30px) clamp(18px, 4vw, 26px);
    box-shadow:0 14px 32px rgba(28,20,38,.16), 0 4px 14px rgba(28,20,38,.10);
}

.face.back{
    transform:none !important;
}

.logo{
    width:clamp(130px, 35vw, 170px);
    margin:0 auto 14px;
}

.oauth-button{
    border:1px solid rgba(118, 34, 130, .22);
    border-radius:10px;
    padding:.62rem;
    font-weight:500;
    transition:all .2s ease;
}

.oauth-button:hover{
    border-color:rgba(118, 34, 130, .35);
}

@media (max-width:576px){
    main{
        padding:18px 12px calc(var(--footer-h) + 14px) !important;
    }

    .scene,
    .flip-card{
        width:min(100%, 340px) !important;
    }
}

/* ==========================================================
   Efeito de linha no card (somente /admin)
========================================================== */
.login-mode-admin .flip-card,
.login-mode-google .flip-card{
    position:relative;
    border-radius:20px;
    overflow:visible;
}

.login-mode-admin .admin-ring,
.login-mode-google .admin-ring{
    position:absolute;
    inset:-5px;
    pointer-events:none;
    z-index:6;
}

.login-mode-admin .admin-ring svg,
.login-mode-google .admin-ring svg{
    width:100%;
    height:100%;
    display:block;
    overflow:visible;
}

.login-mode-admin .admin-ring .admin-ring-track,
.login-mode-google .admin-ring .admin-ring-track{
    fill:none;
    stroke:rgba(153, 0, 153, .24);
    stroke-width:.34;
}

.login-mode-admin .admin-ring .admin-ring-segment,
.login-mode-google .admin-ring .admin-ring-segment{
    fill:none;
    stroke-dasharray:72 288;
    stroke-dashoffset:0;
    stroke-width:.6;
    stroke-linecap:round;
    filter:
      drop-shadow(0 0 3px rgba(153, 0, 153, .45))
      drop-shadow(0 0 7px rgba(201, 74, 201, .26));
    animation:adminRingStroke 3.73s linear infinite;
}

.login-mode-admin .face,
.login-mode-google .face{
    position:relative;
    z-index:4;
    border-radius:20px;
}

@keyframes adminRingStroke{
    to{
        stroke-dashoffset:-360;
    }
}
