@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Inter+Tight:wght@500;600;700&display=swap');

:root{
  --bg:#090D18;--canvas:#0D1220;--surface:#131A2B;--raised:#182034;--overlay:#1F2740;
  --fg:#F4F6FC;--muted:#D0D5E4;--subtle:#7C87A6;--disabled:#414B67;
  --border:rgba(255,255,255,.08);--border-strong:rgba(255,255,255,.14);--border-subtle:rgba(255,255,255,.05);
  --primary:#4C75E6;--primary-hover:#6D8FEF;--primary-active:#3A5FD0;
  --lime:#CDFB3E;--danger:#F04E6E;
  --shadow-sm:0 1px 2px rgba(0,0,0,.4),0 2px 6px rgba(0,0,0,.3);
  --focus:0 0 0 2px var(--bg),0 0 0 4px #6D8FEF;
}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%;color-scheme:dark}
body{font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif;background:var(--bg);color:var(--fg);font-size:14px;line-height:1.55;letter-spacing:-.003em}
::selection{background:rgba(76,117,230,.22)}
.auth-shell{position:relative;min-height:100vh;display:flex;align-items:center;justify-content:center;overflow:hidden;padding:16px;background:var(--bg)}
.glow-blue{pointer-events:none;position:absolute;left:50%;top:-15%;width:640px;height:640px;transform:translateX(-50%);border-radius:999px;background:var(--primary);opacity:.10;filter:blur(130px)}
.glow-lime{pointer-events:none;position:absolute;right:-5%;bottom:-10%;width:420px;height:420px;border-radius:999px;background:var(--lime);opacity:.05;filter:blur(120px)}
.auth-wrap{position:relative;width:100%;max-width:460px}
.auth-wrap.signup{max-width:560px}
.brand{display:flex;align-items:center;justify-content:center;margin:0 0 32px}
.brand img{display:block;width:190px;max-width:72%;height:auto;object-fit:contain}
.card{background:var(--surface);border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow-sm);padding:32px}
.card h1{font-family:"Inter Tight",Inter,sans-serif;font-size:20px;line-height:1.3;letter-spacing:-.015em;font-weight:600;margin:0;color:var(--fg)}
.sub{margin:6px 0 0;color:var(--muted);font-size:13px}
form{margin-top:24px;display:flex;flex-direction:column;gap:16px}
.field{display:flex;flex-direction:column;gap:6px}
.label-row{display:flex;align-items:center;justify-content:space-between;gap:10px}
.field label{font-size:13px;font-weight:500;color:var(--fg)}
.field input{width:100%;height:38px;border:1px solid var(--border);border-radius:8px;background:var(--bg);color:var(--fg);padding:0 12px;font:inherit;outline:none;transition:border-color 120ms cubic-bezier(.2,.8,.2,1),box-shadow 120ms cubic-bezier(.2,.8,.2,1)}
.field input:hover{border-color:var(--border-strong)}
.field input:focus{border-color:var(--primary);box-shadow:var(--focus)}
.field input::placeholder{color:var(--subtle)}
.input-wrap{position:relative}
.input-wrap input{padding-right:40px}
.password-toggle{position:absolute;inset-block:0;right:0;width:40px;border:0;background:transparent;color:var(--subtle);cursor:pointer;font-size:12px}
.password-toggle:hover{color:var(--fg)}
.link{font-size:12px;font-weight:500;color:var(--primary);text-decoration:none}
.link:hover{text-decoration:underline}
.primary{height:38px;width:100%;border:1px solid transparent;border-radius:8px;background:var(--primary);color:#fff;font:inherit;font-weight:500;cursor:pointer;transition:background 120ms cubic-bezier(.2,.8,.2,1),transform 120ms cubic-bezier(.2,.8,.2,1)}
.primary:hover{background:var(--primary-hover)}
.primary:active{background:var(--primary-active);transform:translateY(1px)}
.primary:focus-visible{outline:none;box-shadow:var(--focus)}
.primary:disabled{opacity:.45;pointer-events:none}
.notice{min-height:0;font-size:13px;border-radius:8px}
.notice:not(:empty){padding:8px 12px;border:1px solid var(--border)}
.notice.error{color:#F98BA0;background:rgba(240,78,110,.13);border-color:rgba(240,78,110,.32)}
.notice.ok{color:var(--lime);background:rgba(205,251,62,.12);border-color:rgba(205,251,62,.30)}
.foot{text-align:center;color:var(--subtle);font-size:13px;margin-top:16px}
.foot a{font-weight:500;color:var(--primary);text-decoration:none}
.foot a:hover{text-decoration:underline}
.check-row{display:flex;align-items:flex-start;gap:10px;color:var(--muted);font-size:13px}
.check-row input{margin-top:2px;width:16px;height:16px;accent-color:var(--primary)}
.check-row a{color:var(--primary);text-decoration:none;font-weight:500}
.check-row a:hover{text-decoration:underline}
.terms{margin:0;color:var(--subtle);font-size:11px;line-height:1.5}
.stepper{margin:0 0 32px;display:flex;align-items:center;gap:8px}
.step{display:flex;align-items:center;gap:8px}
.step-dot{display:grid;place-items:center;width:24px;height:24px;border-radius:999px;background:var(--primary);color:white;font-size:11px;font-weight:600}
.step-label{font-size:12px;font-weight:500;color:var(--fg)}
.step-line{height:1px;flex:1;background:var(--border)}
.step.muted .step-dot{background:var(--raised);color:var(--subtle)}
.step.muted .step-label{color:var(--subtle)}
@media(max-width:640px){.card{padding:24px}.brand{margin-bottom:24px}.brand img{width:170px}.step-label{display:none}}