:root {
  --ink: #171b18;
  --muted: #687069;
  --yellow: #ffca05;
  --line: #dde2dc;
  --danger: #9e3434;
}
* { box-sizing: border-box; }
body {
  margin: 0; min-height: 100vh; color: var(--ink); background: #eff2ee;
  font: 14px/1.5 Inter, ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
}
button, input { font: inherit; }
.auth-layout { min-height: 100vh; display: grid; grid-template-columns: 1.05fr .95fr; }
.auth-brand {
  padding: clamp(40px, 7vw, 100px); background: #151916; color: white;
  display: flex; flex-direction: column; justify-content: center; position: relative; overflow: hidden;
}
.auth-brand::after {
  content: ""; position: absolute; width: 420px; height: 420px; border-radius: 50%;
  background: var(--yellow); right: -250px; top: -190px; opacity: .92;
}
.logo {
  width: 54px; height: 54px; border-radius: 14px; background: var(--yellow); color: #111;
  display: grid; place-items: center; font-size: 18px; font-weight: 950; margin-bottom: 40px;
}
.eyebrow { color: #b3bcb5; text-transform: uppercase; letter-spacing: .15em; font-size: 10px; font-weight: 850; }
.auth-brand h1 { font-size: clamp(48px, 6vw, 84px); line-height: .92; letter-spacing: -.06em; margin: 15px 0 24px; }
.auth-brand p { color: #b9c2bb; font-size: 17px; max-width: 520px; }
.security-note { margin-top: 38px; padding-left: 14px; border-left: 3px solid var(--yellow); color: #dce1dd; font-size: 12px; }
.auth-card {
  width: min(470px, calc(100% - 40px)); margin: auto; padding: 42px;
  background: white; border: 1px solid var(--line); border-radius: 22px; box-shadow: 0 24px 80px rgba(20,35,24,.12);
}
.auth-card .eyebrow { color: #8a710c; }
.auth-card h2 { font-size: 30px; letter-spacing: -.04em; margin: 7px 0 5px; }
.auth-card > div > p { color: var(--muted); margin: 0 0 25px; }
form { display: grid; gap: 15px; }
label { color: var(--muted); font-size: 11px; font-weight: 750; }
input {
  display: block; width: 100%; height: 46px; margin-top: 6px; padding: 0 12px;
  border: 1px solid var(--line); border-radius: 9px; outline: 0; color: var(--ink); background: white;
}
input:focus { border-color: #c69b00; box-shadow: 0 0 0 4px rgba(255,202,5,.2); }
label small { display: block; margin-top: 5px; font-weight: 500; }
.primary {
  height: 48px; border: 0; border-radius: 9px; background: var(--yellow); color: #111;
  font-weight: 850; cursor: pointer; margin-top: 3px;
}
.primary:disabled { opacity: .6; cursor: wait; }
.message { padding: 10px 12px; border-radius: 8px; background: #fce8e7; color: var(--danger); font-size: 12px; }
.message.success { background: #e4f3e8; color: #23643e; }
.hidden { display: none !important; }
.footnote { display: block; color: var(--muted); text-align: center; margin-top: 20px; }
.back-link { display: inline-block; margin-top: 20px; color: #526057; font-size: 12px; }
@media (max-width: 800px) {
  .auth-layout { grid-template-columns: 1fr; }
  .auth-brand { min-height: 320px; padding: 40px 25px; }
  .auth-brand h1 { font-size: 52px; }
  .security-note { margin-top: 15px; }
  .auth-card { margin: 24px auto; padding: 28px 22px; }
}
