/* Tela de login no visual do Fractal ID */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url(/static/fonts/montserrat-latin.woff2) format('woff2');
}

:root {
  --gray: #878787;
  --text: #464646;
  --outline: rgba(0, 0, 0, 0.23);
  --label: rgba(0, 0, 0, 0.6);
}

* { box-sizing: border-box; }
html, body { margin: 0; height: 100%; }

body.login-page {
  font-family: Montserrat, sans-serif;
  background: #fff;
  color: var(--text);
  min-height: 100vh;
  min-height: 100dvh;
}

/* Fundo: branco com faixa cinza à direita */
.login-bg { position: fixed; inset: 0; z-index: 0; }
.login-bg-side { position: absolute; top: 0; right: 0; bottom: 0; width: 29%; background: var(--gray); }

.login-wrap {
  position: relative;
  z-index: 1;
  min-height: 100vh;
  min-height: 100dvh;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px 0;
}

.login-art { width: 511px; max-width: 40vw; height: auto; margin-right: -82px; }

.login-card {
  position: relative;
  width: 540px;
  max-width: 100%;
  background: #fff;
  box-shadow: 0 0 20px 35px rgba(0, 0, 0, 0.05);
  padding: 40px 32px 24px;
}

.login-logo { display: block; width: 319px; max-width: 100%; height: auto; margin: 0 auto 35px; }

.login-form h1 { font-size: 1.7rem; font-weight: 400; margin: 0 0 34px; color: var(--text); }

.login-alert { margin: -18px 0 20px; padding: 10px 14px; border-radius: 4px; background: #f2f2f2; font-size: .9rem; }
.login-alert.error { background: #fdecea; color: #b42318; }

/* Campo com rótulo flutuante (estilo outlined) */
.field { position: relative; margin-bottom: 24px; }
.field input {
  width: 100%;
  height: 56px;
  padding: 16.5px 14px;
  font: 16px Roboto, Helvetica, Arial, sans-serif;
  color: var(--text);
  background: transparent;
  border: 1px solid var(--outline);
  border-radius: 4px;
  outline: none;
  transition: border-color .15s;
}
.field input:hover { border-color: rgba(0, 0, 0, 0.87); }
.field input:focus { border: 2px solid var(--gray); padding: 15.5px 13px; }
.field label {
  position: absolute;
  left: 14px;
  top: 16px;
  font: 16px Roboto, Helvetica, Arial, sans-serif;
  color: var(--label);
  pointer-events: none;
  background: #fff;
  padding: 0 4px;
  margin-left: -4px;
  transform-origin: left top;
  transition: transform .15s, color .15s;
}
.field input:focus + label,
.field input:not(:placeholder-shown) + label { transform: translateY(-25px) scale(.75); }
.field input:focus + label { color: var(--gray); }
.field input:-webkit-autofill + label { transform: translateY(-25px) scale(.75); }

.field input[type=password], .field input[data-revealed] { padding-right: 48px; }
.toggle-password {
  position: absolute;
  right: 12px;
  top: 50%;
  transform: translateY(-50%);
  width: 28px;
  height: 28px;
  display: grid;
  place-items: center;
  border: 0;
  border-radius: 50%;
  background: none;
  color: rgba(0, 0, 0, 0.54);
  cursor: pointer;
}
.toggle-password:hover { background: rgba(0, 0, 0, 0.04); }
.toggle-password .eye-open { display: none; }
.toggle-password[aria-pressed="true"] .eye-open { display: inline; }
.toggle-password[aria-pressed="true"] .eye-off { display: none; }

.login-actions { display: flex; justify-content: flex-end; margin-top: -9px; padding-top: 9px; padding-bottom: 15px; }
.login-submit {
  min-width: 107px;
  height: 45px;
  padding: 0 24px;
  border: 0;
  border-radius: 4.56px;
  background: var(--gray);
  color: #fcfcfc;
  font: 15.2px Arial, sans-serif;
  cursor: pointer;
  transition: background .15s;
}
.login-submit:hover { background: #6f6f6f; }
.login-submit:focus-visible { outline: 2px solid var(--text); outline-offset: 2px; }

.login-links { display: flex; justify-content: flex-end; margin-top: 17px; }
.login-links a { color: var(--gray); font-size: .9rem; text-decoration: underline; }
.login-links a:hover { color: var(--text); }

/* Telas menores: some a ilustração e o card ocupa a largura */
@media (max-width: 900px) {
  .login-art { display: none; }
}
@media (max-width: 600px) {
  .login-bg-side { width: 29%; }
  .login-card { width: 100%; padding: 40px 32px 32px; }
  .login-logo { margin-bottom: 30px; }
}
