body { min-height:100vh;
       background:linear-gradient(135deg,#1E2761 0%,#37474F 100%);
                                  display:flex; align-items:center; justify-content:center;
       padding:24px 16px; }
.login-card { background:#fff; border-radius:12px; padding:38px 34px 30px;
              width:100%; max-width:390px;
              box-shadow:0 8px 32px rgba(0,0,0,.28); }
.login-logo  { text-align:center; margin-bottom:24px; }
.titulo      { font-size:26px; font-weight:800; color:#1E2761; letter-spacing:2px; }
.subtitulo   { font-size:10px; color:#78909C; margin-top:3px; }
.form-label  { font-size:11px; font-weight:700; color:#546E7A; margin-bottom:2px; }
.form-control{ font-size:13px; border-radius:6px; }
.form-control:focus { border-color:#1E2761;
                      box-shadow:0 0 0 2px rgba(30,39,97,.15); }
#l-empresa   { font-size:15px; font-weight:800; text-transform:uppercase;
letter-spacing:3px; text-align:center; color:#1E2761; }
.sep-lbl     { text-align:center; font-size:12px; color:#B0BEC5;
               margin:12px 0 10px; position:relative; }
.sep-lbl::before,.sep-lbl::after { content:''; position:absolute; top:50%;
                                   width:38%; height:1px; background:#ECEFF1; }
.sep-lbl::before{left:0;} .sep-lbl::after{right:0;}
.btn-login   { background:#1E2761; color:#fff; border:none; border-radius:6px;
               font-size:13px; font-weight:700; padding:10px; width:100%;
               margin-top:8px; cursor:pointer; transition:background .2s; }
.btn-login:hover    { background:#37474F; }
.btn-login:disabled { background:#90A4AE; cursor:not-allowed; }
.erro-msg { font-size:11px; color:#C62828; background:#FFEBEE;
            border-radius:6px; padding:8px 12px; margin-top:10px; display:none; }
.olho-btn { border:none; background:none; color:#78909C; position:absolute;
            right:10px; top:50%; transform:translateY(-50%);
            cursor:pointer; font-size:16px; padding:0; }
.rodape { text-align:center; font-size:9px; color:#B0BEC5; margin-top:20px; }
.spinner { display:inline-block; width:14px; height:14px;
           border:2px solid #fff; border-top-color:transparent;
           border-radius:50%; animation:spin .7s linear infinite;
           vertical-align:middle; margin-right:6px; }
@keyframes spin { to { transform:rotate(360deg); } }

/* Estilos que estavam como atributos style="" inline no HTML */
.campo-pass-wrap { position:relative; }
.campo-pass      { padding-right:38px; }
.link-interesse-wrap { text-align:center; margin-top:16px; }
.link-interesse { font-size:16px; color:#1E2761; text-decoration:none; font-weight:600; }