/* Login v2 — mobile-first, alinhado à home (sem fontes/ícones externos). */
:root{--blue:#0757b8;--blue-deep:#064789;--red:#dc202c;--red-deep:#b91522;--ink:#202c3c;--muted:#586576;--line:#e3e9f0;--pale:#f0f6ff;--rose:#fff0f0;--radius:24px;--shadow:0 16px 50px -24px #074a8533;color-scheme:light}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;color:var(--ink);background:#f6f9fd;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased;min-height:100vh;display:flex;flex-direction:column}
body,h1,h2,h3,p{overflow-wrap:break-word}
h1,h2,h3,p,ul{margin:0}h1,h2,h3{line-height:1.16;letter-spacing:-.04em;text-wrap:balance}h1{font-size:clamp(1.45rem,5.6vw,2rem);font-weight:800}h2{font-size:clamp(1.4rem,5vw,1.9rem);font-weight:800}
a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}img{display:block;max-width:100%;height:auto}svg{display:block}
a,button,input,label{touch-action:manipulation}button{-webkit-tap-highlight-color:transparent}
::selection{background:#dceaff;color:var(--blue-deep)}:focus-visible{outline:3px solid var(--blue);outline-offset:3px;border-radius:6px}
.container{width:min(1160px,calc(100% - 40px));margin-inline:auto}
.icon{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}
.icon-defs{position:absolute;width:0;height:0;overflow:hidden}
.text-link{display:inline-flex;align-items:center;gap:8px;color:var(--blue);font-weight:700;font-size:.9rem;min-height:44px}
.text-link .icon{width:18px;height:18px}
.eyebrow{font-size:.66rem;font-weight:750;letter-spacing:.14em;color:var(--blue);margin-bottom:8px}
.button{display:inline-flex;justify-content:center;align-items:center;gap:10px;min-height:50px;border-radius:14px;padding:12px 18px;font-size:.95rem;font-weight:750;line-height:1.4;text-align:center;border:0;transition:background .2s,transform .2s,box-shadow .2s}
.button-primary{background:var(--red);color:#fff;box-shadow:0 8px 20px -10px #c71c3866}
.button-primary:hover{background:var(--red-deep)}
.button-block{width:100%}
.button[disabled]{opacity:.7;cursor:not-allowed;transform:none!important}
.button .fa-spinner{width:18px;height:18px;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;display:inline-block;font-style:normal;animation:auth-spin .7s linear infinite}
@keyframes auth-spin{to{transform:rotate(360deg)}}

/* Topo simples */
.auth-topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 0}
.auth-topbar .brand{display:block}.auth-topbar .brand img{width:82px;height:auto}

/* Layout */
.auth-main{flex:1;display:flex;align-items:stretch;padding:4px 0 14px}
.auth-layout{display:grid;gap:18px;width:100%}

/* Painel de boas-vindas */
.auth-aside{position:relative;overflow:hidden;border-radius:16px;background:linear-gradient(135deg,var(--blue-deep),var(--blue) 55%,var(--red));color:#fff;padding:14px 16px;display:flex;flex-direction:row;align-items:center;gap:14px;isolation:isolate}
.auth-aside::after{content:"";position:absolute;right:-60px;top:-60px;width:220px;height:220px;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.14),transparent 70%);z-index:-1}
.auth-aside .aside-logo{width:46px;filter:brightness(0) invert(1);opacity:.95;flex-shrink:0}
.auth-aside .aside-text{display:flex;flex-direction:column;gap:2px;min-width:0}
.auth-aside h2{font-size:1.1rem}
.auth-aside p{color:rgba(255,255,255,.9);font-size:.8rem}

/* Cartão do formulário */
.auth-card{background:#fff;border:1px solid var(--line);border-radius:20px;padding:18px 16px;box-shadow:var(--shadow)}
.login-form-container{display:flex;flex-direction:column}

/* Seletor de tipo */
.user-type-toggle{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:14px 0}
.type-option input{position:absolute;opacity:0;pointer-events:none}
.type-box{display:flex;flex-direction:column;align-items:center;gap:6px;padding:12px 10px;border:1.5px solid var(--line);border-radius:14px;background:#fff;font-weight:700;font-size:.85rem;color:var(--ink);transition:border-color .15s,background .15s;cursor:pointer;text-align:center}
.type-box .icon{width:26px;height:26px}
.type-option input:checked + .type-box{border-color:var(--blue);background:var(--pale);color:var(--blue-deep)}
.type-option input:focus-visible + .type-box{outline:3px solid var(--blue);outline-offset:2px}

/* Formulário */
.auth-form{display:grid;gap:12px;margin-top:4px}
.field label{display:block;font-size:.8rem;font-weight:700;margin-bottom:7px}
.field-wrap{display:flex;align-items:center;gap:10px;border:1.5px solid var(--line);border-radius:13px;padding:0 14px;min-height:50px;background:#fff;transition:border-color .15s}
.field-wrap:focus-within{border-color:var(--blue)}
.field-icon{color:var(--muted);width:20px;height:20px}
.field-wrap input{flex:1;min-width:0;border:0;outline:0;background:transparent;font:inherit;font-size:.95rem;color:var(--ink)}
.field-wrap input::placeholder{color:#9aa7b6}
.pw-toggle{display:grid;place-items:center;border:0;background:transparent;color:var(--muted);padding:8px;border-radius:8px}
.pw-toggle:hover{color:var(--blue)}
.pw-toggle .icon{width:20px;height:20px}
.pw-toggle .icon-eye-off{display:none}
.pw-toggle[aria-pressed="true"] .icon-eye{display:none}
.pw-toggle[aria-pressed="true"] .icon-eye-off{display:block}

.form-options{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:.8rem}
.checkbox-label{display:inline-flex;align-items:center;gap:8px;color:var(--muted);cursor:pointer}
.checkbox-label input{width:18px;height:18px;accent-color:var(--blue)}
.forgot-password-link{color:var(--blue);font-weight:700;white-space:nowrap;min-height:44px;display:inline-flex;align-items:center}

/* Mensagens (login.js) */
.auth-message{display:flex;align-items:center;gap:10px;padding:13px 15px;border-radius:12px;font-size:.85rem;font-weight:600;margin:14px 0 0;animation:auth-slide .3s ease}
.auth-message i{display:none}
.auth-message::before{content:"";width:9px;height:9px;border-radius:50%;flex-shrink:0}
.auth-message-error{background:var(--rose);color:var(--red-deep)}.auth-message-error::before{background:var(--red)}
.auth-message-success{background:#e8f8ef;color:#0d7a3e}.auth-message-success::before{background:#18a04f}
.auth-message-warning{background:#fff6e8;color:#9a5a00}.auth-message-warning::before{background:#f59e0b}
.auth-message-info{background:var(--pale);color:var(--blue-deep)}.auth-message-info::before{background:var(--blue)}

.auth-switch{margin-top:14px;text-align:center;font-size:.85rem;color:var(--muted)}

/* Botão genérico usado pelo banner de verificação */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:12px;padding:12px 18px;font-weight:700;font-size:.9rem;cursor:pointer;color:inherit}

@keyframes auth-slide{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}
@keyframes slideUp{from{opacity:0;transform:translate(-50%,20px)}to{opacity:1;transform:translate(-50%,0)}}

/* Rodapé */
.auth-footer{border-top:1px solid var(--line);padding:12px 0;font-size:.7rem;color:var(--muted);text-align:center}

@media(min-width:768px){
  .auth-layout{grid-template-columns:.95fr 1.05fr;align-items:stretch;gap:26px}
  .auth-aside{flex-direction:column;align-items:flex-start;gap:14px;padding:40px 36px;border-radius:24px}
  .auth-aside .aside-logo{width:108px}
  .auth-aside h2{font-size:clamp(1.4rem,5vw,1.9rem)}
  .auth-aside p{font-size:.95rem}
  .auth-card{padding:36px;border-radius:24px}
  .auth-main{padding:24px 0 44px}
}
@media(hover:hover) and (prefers-reduced-motion:no-preference){.button:hover{transform:translateY(-2px)}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}
