*{box-sizing:border-box;margin:0;padding:0}body.auth-body{background:var(--app-page-gradient);color:var(--color-text-base);display:grid;font-family:var(--font-family-base);min-height:100vh;padding:2rem;place-items:center;position:relative}body.auth-body:after,body.auth-body:before{background-repeat:no-repeat;content:"";inset:0;opacity:.5;pointer-events:none;position:absolute}body.auth-body:before{background-image:var(--app-page-overlay)}body.auth-body:after{background-image:none}.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>*{position:relative;z-index:1}.auth-card:after{background:linear-gradient(160deg,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:16px;display:inline-flex;height:54px;justify-content:center;width:54px}.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-form{display:grid;gap:1rem;position:relative;z-index:1}.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)}.footnote{color:var(--color-text-muted);font-size:.95rem;text-align:center}@media (max-width:560px){body.auth-body{padding:1.2rem}.auth-card{padding:1.6rem}}