:root{
  --color-primary:#2563eb;
  --color-secondary:#06b6d4;
  --color-dark:#0f172a;
  --color-background:#f8fafc;
  --color-card:#ffffff;
  --color-border:#e2e8f0;
  --color-text:#0f172a;
  --color-muted:#64748b;
  --color-success:#22c55e;
  --color-warning:#f59e0b;
  --color-error:#ef4444;
}
*{box-sizing:border-box}
html,body{min-height:100%}
body{margin:0;font-family:Inter,"Segoe UI",sans-serif;background:
  radial-gradient(circle at 20% 20%,rgba(37,99,235,.12),transparent 28%),
  radial-gradient(circle at 85% 18%,rgba(6,182,212,.12),transparent 24%),
  linear-gradient(180deg,#f8fafc 0%,#eef4fb 100%);
  color:var(--color-text);
}
a{color:inherit}
.auth-shell{min-height:100vh}
.auth-layout{display:grid;grid-template-columns:minmax(320px,.95fr) minmax(420px,1.05fr);min-height:100vh}
.auth-story{display:flex;flex-direction:column;justify-content:space-between;gap:2rem;padding:clamp(2rem,4vw,4rem);color:#fff;background:
  linear-gradient(155deg,rgba(15,23,42,.92),rgba(37,99,235,.82) 60%,rgba(6,182,212,.72)),
  url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240' viewBox='0 0 240 240'%3E%3Cg fill='none' stroke='rgba(255,255,255,0.08)' stroke-width='1'%3E%3Cpath d='M0 40h240M0 80h240M0 120h240M0 160h240M0 200h240'/%3E%3Cpath d='M40 0v240M80 0v240M120 0v240M160 0v240M200 0v240'/%3E%3C/g%3E%3C/svg%3E");
  background-blend-mode:screen,normal;
}
.auth-brand{display:inline-flex;align-items:center;gap:.85rem;text-decoration:none;font-size:1.05rem;font-weight:800;letter-spacing:-.03em}
.auth-brand span{color:#fff}
.auth-brand-logo{width:2.2rem;height:2.2rem;display:block;border-radius:.8rem;background:rgba(255,255,255,.08);padding:.15rem;box-shadow:0 12px 30px rgba(15,23,42,.2)}
.auth-kicker{margin:0;color:rgba(255,255,255,.74);font-size:.72rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase}
.auth-story h1{margin:.9rem 0 .8rem;max-width:14ch;font-size:clamp(2.4rem,5vw,4.6rem);line-height:.96;letter-spacing:-.06em}
.auth-story p{max-width:32rem;margin:0;color:rgba(255,255,255,.78);font-size:1rem;line-height:1.7}
.auth-story small{color:rgba(255,255,255,.58);font-size:.82rem}
.auth-panel{display:grid;place-items:center;padding:clamp(1.25rem,3vw,2.5rem)}
.auth-card{width:min(100%,480px);border:1px solid rgba(226,232,240,.9);border-radius:28px;background:rgba(255,255,255,.88);padding:clamp(1.5rem,3vw,2.2rem);box-shadow:0 24px 70px rgba(15,23,42,.08);backdrop-filter:blur(14px)}
.auth-card header h2{margin:0;font-size:1.7rem;letter-spacing:-.04em}
.auth-card header p{margin:.5rem 0 1.4rem;color:var(--color-muted);font-size:.92rem;line-height:1.6}
.auth-card form{display:grid;gap:1rem}
.auth-card label{display:grid;gap:.45rem;color:var(--color-dark);font-size:.8rem;font-weight:700}
.auth-input{width:100%;border:1px solid var(--color-border);border-radius:16px;background:#fff;padding:.9rem 1rem;color:var(--color-dark);font:inherit;transition:border-color .15s ease,box-shadow .15s ease}
.auth-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 4px rgba(37,99,235,.12);outline:0}
.auth-card button{margin-top:.25rem;border:0;border-radius:16px;background:linear-gradient(135deg,var(--color-primary),var(--color-secondary));padding:.95rem 1rem;color:#fff;font:inherit;font-weight:800;cursor:pointer;box-shadow:0 16px 34px rgba(37,99,235,.18);transition:transform .16s ease,box-shadow .16s ease}
.auth-card button:hover{transform:translateY(-1px);box-shadow:0 20px 40px rgba(37,99,235,.22)}
.auth-switch{margin:1.25rem 0 0;text-align:center;color:var(--color-muted);font-size:.86rem}
.auth-switch a{color:var(--color-primary);font-weight:800;text-decoration:none}
.auth-error{margin-bottom:1rem;border-radius:14px;background:#fff1f2;padding:.9rem 1rem;color:#b91c1c;font-size:.85rem}
.field-error{color:#b91c1c;font-size:.76rem}
.auth-card label small{color:var(--color-muted);font-size:.76rem;font-weight:500}
@media(max-width:900px){
  .auth-layout{grid-template-columns:1fr}
  .auth-story{min-height:260px}
  .auth-story h1{max-width:18ch}
}
@media(max-width:640px){
  .auth-story{padding:1.5rem}
  .auth-panel{padding:1rem}
  .auth-card{padding:1.25rem;border-radius:22px}
}
