:root{--bg-deep:#0f172a;--bg-mid:#172554;--paper:#f8fafc;--ink:#0f172a;--subtle:#475569;--line:rgba(15,23,42,0.12);--accent:#e11d48;--accent-2:#f59e0b;--success:#047857;--danger:#b91c1c}*{box-sizing:border-box}body,html{margin:0;padding:0;min-height:100%;font-family:Segoe UI,Trebuchet MS,Tahoma,sans-serif;color:var(--ink);background:radial-gradient(circle at 15% 20%,#334155 0,#111827 40%,#020617 100%)}.page-shell{position:relative;min-height:100dvh;display:grid;place-items:center;padding:1.25rem;overflow:hidden}.aurora{position:absolute;width:44rem;height:44rem;border-radius:999px;background:conic-gradient(from 120deg,var(--accent),#fb7185,var(--accent-2),#fca5a5);filter:blur(72px);opacity:.18;animation:drift 8s ease-in-out infinite alternate}.auth-panel{width:min(100%,28rem);background:color-mix(in srgb,var(--paper) 95%,white 5%);border:1px solid var(--line);border-radius:1.1rem;padding:1.2rem;box-shadow:0 24px 80px rgba(2,6,23,.35);z-index:1}.auth-header h1{margin:.2rem 0;font-size:clamp(1.5rem,3.5vw,2rem)}.auth-header p{margin:.3rem 0 .8rem;color:var(--subtle)}.eyebrow{margin:0;font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.09em;color:var(--accent)}.login-card{display:grid;grid-gap:.6rem;gap:.6rem}.login-card label{font-weight:600;font-size:.92rem}.login-card input{width:100%;border:1px solid rgba(51,65,85,.4);border-radius:.72rem;padding:.72rem .85rem;font-size:.97rem;outline:none;transition:border-color .18s ease,box-shadow .18s ease}.login-card input:focus{border-color:var(--accent);box-shadow:0 0 0 4px rgba(225,29,72,.15)}.login-card button{margin-top:.4rem;border:0;border-radius:.75rem;background:linear-gradient(135deg,var(--accent),#f43f5e);color:white;font-weight:700;padding:.78rem .95rem;cursor:pointer;transition:transform .15s ease,box-shadow .18s ease,opacity .15s ease}.login-card button:hover:enabled{transform:translateY(-1px);box-shadow:0 12px 26px rgba(225,29,72,.3)}.login-card button:disabled{opacity:.7;cursor:not-allowed}.status{margin:.45rem 0 0;font-size:.9rem}.status.success{color:var(--success)}.status.error{color:var(--danger)}@keyframes drift{0%{transform:translate(-2.5rem,-1rem) scale(.95)}to{transform:translate(2.5rem,1.2rem) scale(1.05)}}@media (max-width:600px){.auth-panel{padding:1rem;border-radius:.9rem}}