.zc-auth{min-height:100vh;min-height:100dvh;align-items:center;justify-content:center;padding:var(--zc-space-8) var(--zc-space-5);background:var(--zc-bg-page);font-family:var(--zc-font-ui);font-size:var(--zc-type-body-sm-size);color:var(--zc-text-primary)}.zc-auth,.zc-auth__card{box-sizing:border-box;display:flex}.zc-auth__card{width:100%;max-width:420px;flex-direction:column;gap:var(--zc-space-4);background:var(--zc-bg-surface);border:1px solid var(--zc-border-default);border-radius:var(--zc-radius-md);padding:var(--zc-space-8) var(--zc-space-6);box-shadow:var(--zc-shadow-raised)}.zc-auth__mark{display:block;height:28px;width:auto;align-self:flex-start}.zc-auth__heading{margin:0;font-size:var(--zc-type-heading-size);line-height:var(--zc-type-heading-line);font-weight:800;letter-spacing:-.02em;color:var(--zc-text-primary);text-wrap:balance}.zc-auth__sub{margin:0;font-size:var(--zc-type-body-sm-size);line-height:var(--zc-type-body-sm-line);color:var(--zc-text-secondary)}.zc-auth__form{display:flex;flex-direction:column;gap:var(--zc-space-2)}.zc-auth__label{margin-top:var(--zc-space-1);font-size:var(--zc-type-label-size);font-weight:600;color:var(--zc-text-secondary)}.zc-auth__input{box-sizing:border-box;height:var(--zc-control-lg);border:1px solid var(--zc-border-control);border-radius:var(--zc-radius-sm);padding:0 var(--zc-space-3);background:var(--zc-bg-surface);font:inherit;font-size:var(--zc-font-size-16);color:var(--zc-text-primary)}.zc-auth__input::placeholder{color:var(--zc-text-muted)}.zc-auth__input:focus-visible{outline:2px solid var(--zc-focus-ring);outline-offset:1px;border-color:var(--zc-focus-ring)}.zc-auth__cta{height:var(--zc-control-lg);margin-top:var(--zc-space-2);border:1px solid transparent;border-radius:var(--zc-radius-sm);background:var(--zc-brand);color:var(--zc-text-on-brand);font:inherit;font-size:var(--zc-font-size-16);font-weight:700;cursor:pointer;transition:background-color var(--zc-duration-fast) var(--zc-ease-out)}.zc-auth__cta:hover{background:var(--zc-brand-hover)}.zc-auth__cta.is-secondary{margin-top:0;background:var(--zc-bg-surface);color:var(--zc-text-link);border-color:var(--zc-border-default)}.zc-auth__cta.is-secondary:hover{background:var(--zc-bg-hover)}.zc-auth__cta:focus-visible{outline:2px solid var(--zc-focus-ring);outline-offset:2px}.zc-auth__cta:disabled{cursor:progress;opacity:.75}.zc-auth__divider{display:flex;align-items:center;gap:var(--zc-space-3);margin:var(--zc-space-1) 0 0;font-size:var(--zc-type-caption-size);color:var(--zc-text-muted)}.zc-auth__divider:after,.zc-auth__divider:before{content:"";flex:1 1;height:1px;background:var(--zc-border-default)}.zc-auth__notice{margin:0;border-radius:var(--zc-radius-sm);padding:var(--zc-space-3) var(--zc-space-4);font-size:var(--zc-type-body-sm-size);line-height:var(--zc-type-body-sm-line)}.zc-auth__notice.is-sent{background:var(--zc-success-bg);color:var(--zc-success-fg)}.zc-auth__notice.is-refused{background:var(--zc-warning-bg);border:1px solid var(--zc-warning-border,transparent);color:var(--zc-warning-fg)}.zc-auth__link{font-weight:600;color:var(--zc-text-link);text-decoration:none}.zc-auth__link:hover{text-decoration:underline;color:var(--zc-text-link)}.zc-auth__link:focus-visible{outline:2px solid var(--zc-focus-ring);outline-offset:2px;border-radius:2px}.zc-auth__sub .zc-auth__link{text-decoration:underline;text-underline-offset:2px}.zc-auth__hint{color:var(--zc-text-secondary)}.zc-auth__fineprint,.zc-auth__hint{font-size:var(--zc-type-caption-size);line-height:var(--zc-type-caption-line)}.zc-auth__fineprint{margin:0;color:var(--zc-text-muted)}.zc-auth__hint.is-error{color:var(--zc-warning-fg);font-weight:600}a.zc-auth__cta{display:grid;place-items:center;text-decoration:none}.zc-auth__qr{justify-self:center;border-radius:var(--zc-radius-sm)}.zc-auth__key{margin:0;font-feature-settings:tabular-nums slashed-zero;font-variant-numeric:tabular-nums slashed-zero;letter-spacing:.04em;font-size:var(--zc-type-body-size);color:var(--zc-text-primary);overflow-wrap:anywhere}.zc-auth__codes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:var(--zc-space-2) var(--zc-space-4);gap:var(--zc-space-2) var(--zc-space-4);margin:0;padding:0;list-style:none}