/* =========================================================
   Login Modal (HOME) — acesso rápido (Estudante/Professor)
   ========================================================= */
body.modal-open{ overflow:hidden; }

.login-modal-backdrop{
  position:fixed;
  inset:0;
  background:rgba(15,23,42,.55);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  display:none;
  align-items:center;
  justify-content:center;
  padding:18px;
  z-index:2200;
}

.login-modal-backdrop.is-open{ display:flex; }

.login-modal{
  width:min(520px, 100%);
  background: var(--surface);
  border-radius:18px;
  border:1px solid rgba(15,23,42,.10);
  box-shadow:0 30px 120px rgba(2,6,23,.35);
  padding:18px 18px 16px;
  position:relative;
  transform: translateY(8px) scale(.98);
  opacity:0;
  transition: transform .18s ease, opacity .18s ease;
}

.login-modal-backdrop.is-open .login-modal{
  transform:none;
  opacity:1;
}

.login-modal-close{
  position:absolute;
  top:12px;
  right:12px;
  width:42px;
  height:42px;
  border-radius:14px;
  border:1px solid rgba(15,23,42,.10);
  background: var(--surface);
  cursor:pointer;
  display:grid;
  place-items:center;
  font-size:22px;
  line-height:1;
}

.login-modal-head{
  display:flex;
  align-items:center;
  gap:12px;
  padding-right:54px;
  margin-bottom:10px;
}
.login-modal-icon{
  width:48px;
  height:48px;
  border-radius:16px;
  display:grid;
  place-items:center;
  background: color-mix(in srgb, var(--cor-principal) 14%, #ffffff);
  color: var(--cor-principal);
  box-shadow: inset 0 0 0 1px rgba(15,23,42,.06);
  flex:0 0 auto;
  font-size:20px;
}
.login-modal-kicker{
  font-size:12px;
  font-weight:800;
  letter-spacing:.12em;
  color: var(--muted);
  text-transform:uppercase;
  margin-bottom:2px;
}
.login-modal-title{
  font-size:18px;
  font-weight:900;
  margin:0;
  color: var(--text);
}

.login-modal-error{
  background: #fff1f2;
  border:1px solid #fecdd3;
  color:#9f1239;
  padding:10px 12px;
  border-radius:14px;
  font-weight:800;
  font-size:13px;
  margin:10px 0 12px;
}

.login-modal-form .field{
  display:block;
  margin:0 0 10px;
}
.login-modal-form .field > span{
  display:block;
  font-size:12px;
  font-weight:800;
  color: var(--muted);
  margin:0 0 6px;
}
.login-modal-form input{
  width:100%;
  height:44px;
  padding:0 12px;
  border-radius:14px;
  border:1px solid rgba(15,23,42,.14);
  background: var(--surface);
  outline:none;
}
.login-modal-form input:focus{
  border-color: color-mix(in srgb, var(--cor-principal) 65%, #ffffff);
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--cor-principal) 18%, transparent);
}

.field-password{
  display:flex;
  align-items:center;
  gap:8px;
}
.field-password input{
  flex:1;
}
.pw-toggle{
  width:44px;
  height:44px;
  border-radius:14px;
  border:1px solid rgba(15,23,42,.14);
  background: var(--surface);
  cursor:pointer;
  display:grid;
  place-items:center;
  color: var(--text);
  touch-action: manipulation;
}

.login-modal-submit{
  width:100%;
  height:46px;
  border-radius:16px;
  font-weight:900;
  margin-top:2px;
}
.login-modal-submit[disabled]{
  opacity:.7;
  cursor:not-allowed;
}

.login-modal-foot{
  display:flex;
  justify-content:space-between;
  gap:12px;
  margin-top:12px;
}
.login-modal-foot a{
  font-weight:800;
  font-size:13px;
  color: var(--text);
  text-decoration:none;
}
.login-modal-foot a:hover{ text-decoration:underline; }

@media (max-width: 420px){
  .login-modal{ padding:16px 14px 14px; }
  .login-modal-close{ width:38px; height:38px; border-radius:12px; }
  .login-modal-icon{ width:44px; height:44px; border-radius:14px; }
  .login-modal-foot{ flex-direction:column; align-items:flex-start; }
}
