/* ============================================================
   SILTEX — auth.css  (login + registro na mesma tela)
   Painel visual fixo a esquerda, formularios em cross-fade.
   ============================================================ */
:root{
    --azul-900:#06182e; --azul-800:#0a2546; --azul-700:#0f3a6e; --azul-600:#155aa8;
    --azul-500:#1f73d0; --azul-400:#6f93c3; --acento:#aab4c2;
    --verde:#3ca66a; --verde-esc:#2f8f57;
    --aco-200:#cdd5df; --aco-100:#e7ebf1; --aco-50:#f3f5f9;
    --texto:#0f1722; --texto-2:#566173;
    --ease:cubic-bezier(.22,1,.36,1);
}
*{margin:0;padding:0;box-sizing:border-box}
html,body{min-height:100%}
body{
    font-family:'Inter',sans-serif;color:var(--texto);
    background:radial-gradient(130% 90% at 100% 0%, var(--azul-700) 0%, transparent 55%),linear-gradient(160deg,var(--azul-900),#08203c);
    min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;
}
a{text-decoration:none;color:inherit}

/* ---------- SHELL ---------- */
.auth-shell{
    width:100%;max-width:920px;
    background:#fff;border-radius:24px;overflow:hidden;
    box-shadow:0 40px 100px rgba(0,0,0,.5);
    display:grid;grid-template-columns:1fr 1fr;
    animation:shellIn .6s var(--ease) both;
}
@keyframes shellIn{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}

/* ---------- PAINEL VISUAL (esquerda, fixo) ---------- */
.auth-visual{
    position:relative;overflow:hidden;color:#fff;min-height:580px;
    background:linear-gradient(160deg,var(--azul-800),var(--azul-900));
    display:flex;flex-direction:column;justify-content:space-between;padding:44px 40px;
    transition:background .6s var(--ease);
}
body.modo-reg .auth-visual{background:linear-gradient(160deg,#0c3a2a,#06231a)}
.auth-visual::before{content:'';position:absolute;inset:0;pointer-events:none;
    background-image:radial-gradient(75% 60% at 30% 20%, rgba(79,155,238,.22), transparent 70%)}
body.modo-reg .auth-visual::before{background-image:radial-gradient(75% 60% at 30% 20%, rgba(60,166,106,.25), transparent 70%)}

.av-brand{position:relative;z-index:3;display:flex;align-items:center;gap:12px}
.av-brand .logo{height:38px;object-fit:contain}
.av-brand .bn{font-family:'Archivo',sans-serif;font-weight:800;font-size:22px}
.av-brand .bn b{color:var(--azul-400)}
body.modo-reg .av-brand .bn b{color:#79d3a4}

.av-copy{position:relative;z-index:3}
.av-eyebrow{font-family:'Space Mono',monospace;font-size:11px;letter-spacing:2.5px;text-transform:uppercase;color:var(--acento);display:flex;align-items:center;gap:10px}
.av-eyebrow::before{content:'';width:24px;height:2px;background:currentColor}
.av-title{font-family:'Archivo',sans-serif;font-weight:900;font-size:34px;line-height:1.05;letter-spacing:-1px;margin-top:14px}
.av-sub{font-size:14.5px;color:var(--aco-200);margin-top:12px;max-width:300px;line-height:1.6}
/* textos que trocam por modo */
.txt-reg{display:none}
body.modo-reg .txt-login{display:none}
body.modo-reg .txt-reg{display:block}

/* ---------- FORMULARIOS (direita) — cross-fade ---------- */
.auth-forms{position:relative;min-height:580px}
.auth-pane{
    position:absolute;inset:0;padding:52px 46px;
    display:flex;flex-direction:column;justify-content:center;
    transition:opacity .45s var(--ease), transform .45s var(--ease), visibility .45s;
}
/* login visivel por padrao, registro escondido */
.paneReg{opacity:0;visibility:hidden;transform:translateX(24px);pointer-events:none}
.paneLogin{opacity:1;visibility:visible;transform:none;pointer-events:auto}
/* no modo registro inverte */
body.modo-reg .paneLogin{opacity:0;visibility:hidden;transform:translateX(-24px);pointer-events:none}
body.modo-reg .paneReg{opacity:1;visibility:visible;transform:none;pointer-events:auto}

.auth-pane h1{font-family:'Archivo',sans-serif;font-weight:800;font-size:27px;color:var(--azul-900);letter-spacing:-.5px}
.pane-sub{color:var(--texto-2);font-size:14px;margin:6px 0 24px}

.campo{margin-bottom:15px}
.campo label{display:block;font-family:'Space Mono',monospace;font-size:11px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:var(--texto-2);margin-bottom:7px}
.campo input{width:100%;padding:13px 15px;border:1.5px solid var(--aco-200);border-radius:11px;font-size:15px;font-family:inherit;transition:border-color .2s, box-shadow .2s, background .2s;background:var(--aco-50)}
.campo input:focus{outline:none;border-color:var(--azul-500);background:#fff;box-shadow:0 0 0 3px rgba(31,115,208,.12)}
.paneReg .campo input:focus{border-color:var(--verde);box-shadow:0 0 0 3px rgba(60,166,106,.15)}
.hint{font-size:11.5px;color:var(--texto-2);margin-top:6px}

.row{display:flex;align-items:center;justify-content:space-between;margin:2px 0 18px;font-size:13.5px}
.row label{display:flex;align-items:center;gap:8px;color:var(--texto-2);cursor:pointer}

.btn-sub{width:100%;padding:14px;border:none;border-radius:12px;font-family:inherit;font-weight:700;font-size:15px;cursor:pointer;transition:transform .2s, box-shadow .2s, background .2s;display:flex;align-items:center;justify-content:center;gap:9px;color:#fff}
.btn-login{background:var(--azul-600);box-shadow:0 8px 22px rgba(21,90,168,.3)}
.btn-login:hover{background:var(--azul-700);transform:translateY(-2px)}
.btn-reg{background:var(--verde);box-shadow:0 8px 22px rgba(60,166,106,.3)}
.btn-reg:hover{background:var(--verde-esc);transform:translateY(-2px)}
.btn-sub svg{width:17px;height:17px}

.switch{margin-top:20px;text-align:center;font-size:14px;color:var(--texto-2)}
.switch button{background:none;border:none;font-family:inherit;font-weight:700;font-size:14px;cursor:pointer;text-decoration:underline;text-underline-offset:3px;color:var(--azul-600)}
.paneReg .switch button{color:var(--verde-esc)}
.voltar{display:block;text-align:center;margin-top:14px;font-size:13px;color:var(--texto-2)}
.voltar:hover{color:var(--azul-600)}

.alerta{padding:12px 14px;border-radius:11px;font-size:13.5px;margin-bottom:16px;display:flex;gap:9px;align-items:flex-start}
.alerta svg{width:17px;height:17px;flex-shrink:0;margin-top:1px}
.alerta.erro{background:#fdecea;border:1px solid #f5c6cb;color:#a4262c}
.alerta.ok{background:#e6f4ea;border:1px solid #b7e0c4;color:#1c6b38}

/* ---------- MOBILE ---------- */
@media(max-width:800px){
    body{padding:0}
    .auth-shell{grid-template-columns:1fr;max-width:100%;min-height:100vh;border-radius:0;box-shadow:none}
    /* painel visual vira faixa no topo */
    .auth-visual{min-height:auto;padding:26px 24px 22px;order:-1}
    .av-copy{display:none}
    /* formularios: altura automatica, sem sobreposicao absoluta */
    .auth-forms{min-height:auto}
    .auth-pane{position:relative;inset:auto;padding:30px 24px}
    /* no mobile so mostra o pane ativo (sem cross-fade sobreposto) */
    .paneReg{display:none;transform:none}
    .paneLogin{display:flex}
    body.modo-reg .paneLogin{display:none}
    body.modo-reg .paneReg{display:flex;opacity:1;visibility:visible}
}
@media(prefers-reduced-motion:reduce){*{animation-duration:.001ms!important;transition-duration:.001ms!important}}