/* Tela de autenticação */
.auth { min-height:100vh; display:grid; grid-template-columns:1.05fr .95fr; }

.auth__brand {
  position:relative; overflow:hidden; color:#fff; padding:54px 56px;
  background:linear-gradient(150deg, var(--forest) 0%, var(--teal-700) 55%, var(--teal-500) 120%);
  display:flex; flex-direction:column; justify-content:space-between;
}
.auth__brand::after {
  content:""; position:absolute; inset:0; opacity:.5;
  background:
    radial-gradient(520px 420px at 85% 10%, rgba(255,255,255,.12), transparent 60%),
    radial-gradient(420px 360px at 10% 95%, rgba(252,246,232,.14), transparent 60%);
}
.auth__brand > * { position:relative; z-index:1; }
.auth__logo { display:flex; align-items:center; gap:13px; font-weight:700; }
.auth__logo .brand__mark { width:46px; height:46px; border-radius:13px; }
.auth__logo .brand__mark svg { width:25px; height:25px; }
.auth__logo b { font-size:18px; display:block; }
.auth__logo span { font-size:12px; color:rgba(255,255,255,.75); }
.auth__hero h1 { color:#fff; font-size:38px; line-height:1.1; letter-spacing:-.6px; max-width:11ch; }
.auth__hero p { color:rgba(255,255,255,.82); font-size:16px; margin-top:16px; max-width:42ch; }
.auth__chips { display:flex; gap:10px; flex-wrap:wrap; margin-top:26px; }
.auth__chip { display:inline-flex; align-items:center; gap:8px; font-size:13px; font-weight:600;
  background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.18); padding:8px 14px; border-radius:var(--radius-pill); }
.auth__chip svg { width:16px; height:16px; }
.auth__foot { font-size:12.5px; color:rgba(255,255,255,.7); }

.auth__panel { display:flex; align-items:center; justify-content:center; padding:40px 28px; background:var(--surface); }
.auth__card { width:100%; max-width:380px; }
.auth__card > img { height:54px; width:auto; margin-bottom:30px; }
.auth__card h2 { font-size:24px; letter-spacing:-.3px; }
.auth__card .sub { color:var(--muted); margin:6px 0 26px; font-size:14.5px; }

.auth .field { margin-bottom:18px; }
.input-icon { position:relative; }
.input-icon svg { position:absolute; left:13px; top:50%; transform:translateY(-50%); width:18px; height:18px; color:var(--faint); }
.input-icon .input { padding-left:42px; }

.auth__error {
  display:flex; gap:10px; align-items:center; background:var(--danger-bg); border:1px solid var(--danger-border);
  color:var(--danger); padding:11px 14px; border-radius:var(--radius-sm); font-size:13.5px; font-weight:500; margin-bottom:18px;
}
.auth__error svg { width:18px; height:18px; flex:none; }

.auth__hintbox { margin-top:22px; padding:13px 15px; background:var(--teal-50); border:1px dashed var(--teal-200);
  border-radius:var(--radius-sm); font-size:12.5px; color:var(--teal-700); }
.auth__hintbox b { color:var(--teal-700); }

@media (max-width:880px) {
  .auth { grid-template-columns:1fr; }
  .auth__brand { display:none; }
  .auth__panel { min-height:100vh; }
}
