:root{--primary:#5d2f93;--primary-dark:#45206f;--text:#22212a;--muted:#777585;--line:#e6e3eb;--bg:#f5f5f8}
*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  overflow:hidden;
  font-family:"DM Sans",Arial,sans-serif;
  color:var(--text);
  background:var(--bg);
}

.login-page{
  display:grid;
  grid-template-columns:1.15fr 1fr;
  height:100vh;
  height:100dvh;
}

/* -------------------------------------------------- painel de boas-vindas
   Letras e logo ~150% maiores que o padrão original (pedido do Guilherme,
   testado a 1920x1080). */
.login-hero{
  position:relative;
  display:flex;
  align-items:center;
  padding:5vh 5vw;
  overflow:hidden;
  background:linear-gradient(150deg,#291741 0%,#563087 55%,#7950af 100%);
  color:#fff;
}
.login-hero:after{
  content:"";
  position:absolute;
  width:520px;
  height:520px;
  right:-220px;
  bottom:-260px;
  border:1px solid rgba(255,255,255,.16);
  border-radius:50%;
  box-shadow:0 0 0 44px rgba(255,255,255,.05),0 0 0 96px rgba(255,255,255,.035);
}
.login-hero:before{
  content:"";
  position:absolute;
  width:280px;
  height:280px;
  left:-120px;
  top:-120px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:50%;
}
.login-hero-inner{position:relative;z-index:1;max-width:690px;animation:rise .4s ease}
.login-hero-logo{height:57px;object-fit:contain;margin-bottom:clamp(28px,5.5vh,58px);filter:brightness(0) invert(1)}
.login-hero .login-eyebrow{color:#e1c5ff;font-size:15px}
.login-hero h1{
  margin:14px 0 22px;
  font:700 clamp(38px,4.6vw,62px)/1.16 Manrope,sans-serif;
  letter-spacing:-1.8px;
}
.login-hero h1 em{font-style:normal;color:#e5c5ff}
.login-hero-text{
  margin:0 0 clamp(28px,5.5vh,48px);
  max-width:630px;
  color:#ddd4e8;
  font-size:21px;
  line-height:1.6;
}
.login-hero-features{list-style:none;margin:0;padding:0;display:grid;gap:clamp(14px,2.8vh,22px)}
.login-hero-features li{display:flex;align-items:center;gap:16px;color:#f1eaff;font-size:18.5px;font-weight:600}
.login-hero-features span{
  flex:0 0 auto;
  width:46px;
  height:46px;
  display:grid;
  place-items:center;
  border-radius:13px;
  background:rgba(255,255,255,.12);
  font-size:21px;
}

/* -------------------------------------------------------- painel de login
   Letras e card ~133% maiores que o padrão original. */
.login-panel{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:22px;
  padding:4vh 5vw;
  min-width:0;
}
.login-card{
  width:100%;
  max-width:480px;
  animation:rise .35s ease .05s both;
}
.login-logo-mobile{display:none}
.login-eyebrow{margin:0;color:var(--primary);font-size:13px;font-weight:800;letter-spacing:1.2px}
.login-card h2{margin:8px 0 5px;font:700 clamp(25px,3.2vh,32px)/1.2 Manrope,sans-serif;letter-spacing:-.6px}
.login-sub{margin:0 0 clamp(21px,4vh,35px);color:var(--muted);font-size:16.5px}
.login-form{display:grid;gap:16px;text-align:left}
label{display:grid;gap:8px;color:var(--muted);font-size:14.5px;font-weight:700;text-transform:uppercase;letter-spacing:.5px}
input{
  min-height:56px;
  padding:0 17px;
  border:1px solid var(--line);
  border-radius:12px;
  font-size:18.5px;
  color:var(--text);
  outline:0;
  transition:.18s;
}
input:focus{border-color:#9a71cd;box-shadow:0 0 0 3px rgba(124,71,184,.14)}
button{
  margin-top:8px;
  min-height:58px;
  border:0;
  border-radius:12px;
  background:var(--primary);
  color:#fff;
  font-size:18.5px;
  font-weight:700;
  cursor:pointer;
  transition:.2s;
}
button:hover{background:var(--primary-dark);transform:translateY(-1px)}
button:disabled{opacity:.6;cursor:not-allowed;transform:none}
.login-hint{margin:0 0 5px;color:var(--muted);font-size:16px;line-height:1.5}
.login-error{
  margin:21px 0 0;
  padding:13px 16px;
  border-radius:11px;
  background:#fbe9e9;
  color:#9e3939;
  font-size:16.5px;
  font-weight:600;
}
.hidden{display:none!important}
.login-footer{margin:0;color:var(--muted);font-size:14px;text-align:center}
@keyframes rise{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}

@media (max-width:1180px){
  .login-hero-features{display:none}
}

@media (max-width:960px){
  body{overflow-y:auto}
  .login-page{grid-template-columns:1fr;grid-template-rows:auto 1fr;height:auto;min-height:100vh;min-height:100dvh}
  .login-hero{padding:5vh 8vw 4vh}
  .login-hero-inner{max-width:none}
  .login-hero h1{font-size:clamp(28px,6vw,36px)}
  .login-hero-text,.login-hero-features{display:none}
  .login-panel{padding:5vh 8vw 6vh}
}

@media (max-width:640px){
  .login-hero{display:none}
  .login-logo-mobile{display:block;max-height:44px;object-fit:contain;margin:0 auto 20px}
  .login-panel{padding-top:8vh}
}
