.auth-shell{min-block-size:100dvh;display:grid;grid-template-rows:1fr auto;place-items:center;grid-gap:var(--space-6);gap:var(--space-6);padding:var(--space-6);background:var(--color-background);position:relative;isolation:isolate}.auth-shell:after{inset-block-start:42%;inset-inline-start:50%;inline-size:min(52rem,90vw);aspect-ratio:1;transform:translate(-50%,-50%);background:radial-gradient(circle at center,color-mix(in srgb,var(--color-highlight) 15%,transparent) 0,transparent 62%)}.auth-shell:after,.auth-shell:before{content:"";position:absolute;z-index:-1;pointer-events:none}.auth-shell:before{inset-inline-start:0;inset-block-end:0;inline-size:min(38rem,60vw);block-size:min(22rem,40vh);background-image:url(/brand/pattern.svg);background-size:cover;background-position:0 100%;-webkit-mask-image:radial-gradient(120% 120% at 0 100%,#000 0,transparent 70%);mask-image:radial-gradient(120% 120% at 0 100%,#000 0,transparent 70%);opacity:.55}.auth-card{inline-size:100%;max-inline-size:25rem;align-self:center;padding:var(--space-8);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg)}.auth-brand{display:flex;align-items:center;gap:var(--space-3);-webkit-margin-after:var(--space-6);margin-block-end:var(--space-6)}.auth-brand-mark{inline-size:2.25rem;block-size:2.25rem;border-radius:var(--radius-md);background:var(--color-accent);color:var(--color-accent-on);display:grid;place-items:center;flex:none}.auth-brand-mark svg{inline-size:1.3rem;block-size:1.3rem}.auth-brand-name{font-size:var(--text-lg);letter-spacing:-.015em}.auth-brand-name,.auth-title{font-weight:var(--weight-semibold)}.auth-title{font-size:var(--text-xl);letter-spacing:-.02em;line-height:var(--leading-tight);-webkit-margin-after:var(--space-2);margin-block-end:var(--space-2)}.auth-lead{color:var(--color-text-muted);font-size:var(--text-sm);line-height:var(--leading-normal);-webkit-margin-after:var(--space-6);margin-block-end:var(--space-6)}.auth-field{display:block;-webkit-margin-after:var(--space-4);margin-block-end:var(--space-4)}.auth-input{inline-size:100%;block-size:2.75rem;padding-inline:var(--space-3);color:var(--color-text-primary);background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);transition:border-color var(--duration-fast) var(--easing)}.auth-input:hover{border-color:var(--color-accent)}.auth-hint-spaced{-webkit-margin-before:var(--space-6);margin-block-start:var(--space-6)}.auth-submit{inline-size:100%;block-size:2.75rem;-webkit-margin-before:var(--space-2);margin-block-start:var(--space-2);font-weight:var(--weight-medium);color:var(--color-accent-on);background:var(--color-accent);border:1px solid transparent;border-radius:var(--radius-md);transition:background var(--duration-fast) var(--easing)}.auth-submit:hover:not(:disabled){background:var(--color-accent-hover)}.auth-submit:disabled{opacity:.6;cursor:progress}.auth-foot{font-size:var(--text-xs);color:var(--color-text-muted);text-align:center;max-inline-size:30rem}.auth-qr{display:grid;place-items:center;padding:var(--space-4);-webkit-margin-after:var(--space-4);margin-block-end:var(--space-4);background:#ffffff;border:1px solid var(--color-border);border-radius:var(--radius-md)}.auth-qr svg{inline-size:11rem;block-size:11rem}.auth-details{-webkit-margin-after:var(--space-4);margin-block-end:var(--space-4)}.auth-summary{font-size:var(--text-xs);color:var(--color-text-muted)}.auth-secret{-webkit-margin-before:var(--space-2);margin-block-start:var(--space-2);padding:var(--space-3);word-break:break-all;border-radius:var(--radius-sm)}.auth-codes,.auth-secret{font-family:var(--font-mono);font-size:var(--text-sm);background:var(--color-surface-sunken)}.auth-codes{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:var(--space-2);gap:var(--space-2);padding:var(--space-4);margin-block:var(--space-4);border-radius:var(--radius-md);list-style:none}@media print{.auth-shell{background:none}.auth-qr,.auth-shell>:not(.auth-card),.auth-submit{display:none}.auth-card{box-shadow:none;border:none;max-inline-size:none}}