@import url("https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap");*{box-sizing:border-box;margin:0;padding:0}body{background:radial-gradient(circle at 12% 30%,rgba(81,69,181,.14),transparent 26%),radial-gradient(circle at 88% 10%,rgba(46,70,120,.16),transparent 26%),linear-gradient(135deg,#f6f7fb,#ecf3ff 50%,#f7f9ff);color:var(--color-text-base);display:grid;font-family:var(--font-family-base);min-height:100vh;padding:2rem;place-items:center;position:relative}body:before{background:radial-gradient(ellipse at 50% 20%,rgba(36,26,106,.08),transparent 40%);content:"";inset:10% -20% 0 -20%;pointer-events:none;position:absolute}.auth-shell{position:relative;width:min(520px,100%);z-index:1}.auth-card{background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:18px;box-shadow:0 24px 60px rgba(10,35,66,.12);display:grid;gap:1.4rem;overflow:hidden;padding:2.2rem;position:relative}.auth-card:after{background:linear-gradient(180deg,rgba(81,69,181,.05),transparent 55%);content:"";inset:0;pointer-events:none;position:absolute}.auth-brand{display:flex;gap:1rem}.auth-brand,.logo{align-items:center}.logo{background:var(--color-surface-soft);border:1px solid var(--color-border-muted);border-radius:14px;display:inline-flex;height:50px;justify-content:center;width:50px}.logo img{display:block;height:100%;-o-object-fit:contain;object-fit:contain;width:100%}.eyebrow{color:var(--color-text-muted);font-size:.85rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.auth-brand h1{color:var(--color-primary-strong);font-size:1.8rem;margin:.05rem 0}.auth-brand .lede,.callout{color:var(--color-text-secondary)}.callout{align-items:center;background:var(--color-surface-soft);border:1px solid var(--color-border-strong);border-radius:12px;display:flex;font-weight:600;gap:.6rem;padding:.9rem 1rem}.callout strong{color:var(--color-text-base)}.auth-form{display:grid;gap:1rem;position:relative;z-index:1}.auth-form label{color:var(--color-text-base);display:grid;font-weight:700;gap:.35rem}.auth-form input{background:var(--color-surface-quiet);border:1px solid var(--color-border-strong);border-radius:12px;font-size:1rem;padding:.95rem 1rem;transition:border-color .2s ease,box-shadow .2s ease,transform .1s ease}.auth-form input:focus{border-color:var(--color-primary);box-shadow:0 0 0 4px rgba(81,69,181,.15);outline:none;transform:translateY(-1px)}.actions{align-items:center;color:var(--color-text-secondary);display:flex;font-size:.95rem;justify-content:space-between}.remember{align-items:center;display:inline-flex;font-weight:600;gap:.5rem}.remember input{accent-color:var(--color-primary)}.link{color:var(--color-primary);font-weight:700}.link:hover{text-decoration:underline}.btn{background:linear-gradient(120deg,var(--color-primary-gradient-start),var(--color-primary-gradient-end));border:1px solid transparent;border-radius:12px;box-shadow:0 14px 28px rgba(36,26,106,.24);color:var(--color-text-inverse);cursor:pointer;font-weight:800;padding:.95rem 1rem;transition:transform .1s ease,box-shadow .1s ease,filter .1s ease;width:100%}.btn:hover{filter:brightness(.97);transform:translateY(-1px)}.btn:active{box-shadow:0 12px 24px rgba(36,26,106,.2);transform:translateY(0)}.ghost-btn{background:var(--color-surface-soft);border:1px solid var(--color-border-strong);border-radius:10px;color:var(--color-text-base);cursor:pointer;font-weight:700;padding:.7rem 1rem;transition:border-color .2s ease,background .2s ease}.ghost-btn:hover{border-color:var(--color-primary)}.recovery-panel{background:var(--color-surface-soft-2);border:1px dashed var(--color-border-strong);border-radius:12px;display:none;gap:.85rem;padding:1rem 1.1rem}.recovery-panel.active{display:grid}.recovery-panel p{color:var(--color-text-secondary);font-weight:600}.inline-error{background:var(--color-danger-bg);border:1px solid var(--color-danger);border-radius:10px;color:var(--color-danger-text);font-weight:700;padding:.75rem .9rem}.footnote{color:var(--color-text-muted);font-size:.95rem;text-align:center}@media (max-width:560px){body{padding:1.2rem}.auth-card{padding:1.6rem}.actions{align-items:flex-start;flex-direction:column;gap:.55rem}}