.auth{align-items:center;background:radial-gradient(1200px 520px at 50% -10%,var(--color-primary-tint,#e8eeff) 0,transparent 70%),var(--color-paper,#f4f5fa);color:var(--color-ink,#3a3541);display:flex;flex-direction:column;font-family:var(--font-body,Inter,sans-serif);gap:var(--space-md,16px);justify-content:center;min-height:100vh;min-height:100dvh;overflow-x:clip;padding:var(--space-lg,24px) var(--space-md,16px)}.auth-card{background:var(--color-surface,#fff);border:1px solid var(--color-border-light,#f0f0f0);border-radius:var(--radius-card,12px);box-shadow:var(--shadow-card,0 4px 18px rgba(30,41,59,.07));box-sizing:border-box;padding:var(--space-xl,32px);width:100%}.auth-brand{align-items:center;display:inline-flex;gap:var(--space-xs,8px);margin-bottom:var(--space-lg,24px);text-decoration:none}.auth-brand:focus-visible{border-radius:6px;outline:2px solid var(--color-focus,#1f3c88);outline-offset:3px}.auth-mark{height:40px;-o-object-fit:contain;object-fit:contain;width:40px}.auth-wordmark{color:var(--color-display,#1a2340);font-family:var(--font-display,"Plus Jakarta Sans",sans-serif);font-size:var(--text-lg,17px);font-weight:700;letter-spacing:-.01em}.auth-head{margin-bottom:var(--space-lg,24px)}.auth-title{color:var(--color-display,#1a2340);font-family:var(--font-display,"Plus Jakarta Sans",sans-serif);font-size:var(--text-2xl,24px);font-style:normal;font-weight:700;letter-spacing:-.02em;margin:0;overflow-wrap:anywhere}.auth-lead{color:var(--color-ink-2,#7a7684);font-size:var(--text-sm,13px);line-height:1.55;margin:var(--space-2xs,4px) 0 0}.auth-form{gap:var(--space-md,16px)}.auth-field,.auth-form{display:flex;flex-direction:column}.auth-field{min-width:0}.auth-label{font-weight:600;margin-bottom:var(--space-2xs,4px)}.auth-hint,.auth-label{color:var(--color-ink-2,#7a7684);font-size:var(--text-xs,12px)}.auth-hint{line-height:1.5}.auth-err,.auth-hint{margin:var(--space-2xs,4px) 0 0}.auth-err{color:var(--color-error,#d73434);font-size:var(--text-xs,12px)}.auth-legend{color:var(--color-ink-3,#b4b2b7);font-size:11px;font-weight:700;letter-spacing:.06em;margin:0 0 var(--space-2xs,4px);text-transform:uppercase}.auth-rule{background:var(--color-border-light,#f0f0f0);border:0;height:1px;margin:0}.auth-input{background:var(--color-surface,#fff);border:1px solid var(--color-border,#e7e7ea);border-radius:var(--radius-input,8px);box-sizing:border-box;color:var(--color-ink,#3a3541);font-family:inherit;font-size:var(--text-sm,13px);line-height:1.5;min-height:var(--field-h,36px);min-width:0;padding:0 var(--space-sm,12px);transition:border-color var(--dur-fast,.14s) var(--ease-out,ease),box-shadow var(--dur-fast,.14s) var(--ease-out,ease);width:100%}.auth-input::-moz-placeholder{color:var(--color-ink-3,#b4b2b7)}.auth-input::placeholder{color:var(--color-ink-3,#b4b2b7)}.auth-input:hover:not(:disabled){border-color:var(--color-ink-3,#b4b2b7)}.auth-input:focus-visible{border-color:var(--color-primary,#1f3c88);box-shadow:0 0 0 3px color-mix(in oklab,var(--color-focus,#1f3c88) 24%,transparent);outline:none}.auth-input:disabled{cursor:not-allowed;opacity:.55}.auth-input.is-err{border-color:var(--color-error,#d73434)}.auth-input.is-err:focus-visible{box-shadow:0 0 0 3px color-mix(in oklab,var(--color-error,#d73434) 22%,transparent)}.auth-pw{display:block;min-width:0;position:relative}.auth-pw .auth-input{padding-right:40px}.auth-pw-toggle{background:none;border:0;border-radius:6px;color:var(--color-ink-3,#b4b2b7);cursor:pointer;display:grid;height:30px;place-items:center;position:absolute;right:4px;top:50%;transform:translateY(-50%);transition:background var(--dur-fast,.14s) var(--ease-out,ease),color var(--dur-fast,.14s) var(--ease-out,ease);width:30px}.auth-pw-toggle:hover{background:var(--color-surface-2,#f1f2f6);color:var(--color-ink,#3a3541)}.auth-pw-toggle:focus-visible{outline:2px solid var(--color-focus,#1f3c88);outline-offset:-2px}.auth-btn{align-items:center;background:var(--color-surface,#fff);border:1px solid var(--color-border,#e7e7ea);border-radius:var(--radius-control,8px);color:var(--color-ink,#3a3541);cursor:pointer;display:inline-flex;font-family:inherit;font-size:var(--text-sm,13px);font-weight:600;gap:6px;justify-content:center;min-height:var(--control-lg,42px);padding:0 var(--space-md,16px);text-decoration:none;transition:background var(--dur-fast,.14s) var(--ease-out,ease),border-color var(--dur-fast,.14s) var(--ease-out,ease),color var(--dur-fast,.14s) var(--ease-out,ease),transform var(--dur-fast,.14s) var(--ease-out,ease);white-space:nowrap;width:100%}.auth-btn:hover:not(:disabled){background:var(--color-surface-2,#f8f9fa);border-color:var(--color-primary,#1f3c88);color:var(--color-primary,#1f3c88)}.auth-btn:active:not(:disabled){transform:translateY(1px)}.auth-btn:focus-visible{outline:2px solid var(--color-focus,#1f3c88);outline-offset:2px}.auth-btn:disabled{cursor:not-allowed;opacity:.5}.auth-btn--primary{background:var(--color-primary,#1f3c88)}.auth-btn--primary,.auth-btn--primary:hover:not(:disabled){border-color:transparent;color:var(--color-primary-ink,#fff)}.auth-btn--primary:hover:not(:disabled){background:var(--color-primary-hover,#17306b)}.auth-btn--auto{width:auto}.auth-link{color:var(--color-primary,#1f3c88);font-weight:600;text-decoration:none}.auth-link:hover{text-decoration:underline}.auth-link:focus-visible{border-radius:3px;outline:2px solid var(--color-focus,#1f3c88);outline-offset:2px}.auth-check{align-items:flex-start;cursor:pointer;display:flex;gap:var(--space-xs,8px)}.auth-check input{height:1px;opacity:0;position:absolute;width:1px}.auth-check-box{background:var(--color-surface,#fff);border:2px solid var(--color-border,#c9c9cd);border-radius:5px;display:grid;flex:none;height:18px;margin-top:1px;place-items:center;transition:background var(--dur-fast,.14s) var(--ease-out,ease),border-color var(--dur-fast,.14s) var(--ease-out,ease);width:18px}.auth-check-box>*{color:#fff;height:12px;opacity:0;transition:opacity var(--dur-fast,.14s) var(--ease-out,ease);width:12px}.auth-check input:checked+.auth-check-box{background:var(--color-primary,#1f3c88);border-color:var(--color-primary,#1f3c88)}.auth-check input:checked+.auth-check-box>*{opacity:1}.auth-check input:focus-visible+.auth-check-box{outline:2px solid var(--color-focus,#1f3c88);outline-offset:2px}.auth-check-text{color:var(--color-ink,#3a3541);font-size:var(--text-sm,13px);line-height:1.45}.auth-notice{align-items:flex-start;border-radius:var(--radius-control,8px);display:flex;font-size:var(--text-sm,13px);gap:var(--space-xs,8px);line-height:1.5;padding:var(--space-sm,12px)}.auth-notice-ico{flex:none;height:17px;margin-top:1px;width:17px}.auth-notice-text{flex:1;min-width:0;overflow-wrap:anywhere}.auth-notice--err{background:color-mix(in oklab,var(--color-error,#d73434) 10%,transparent);color:#8e2020}.auth-notice--ok{background:color-mix(in oklab,var(--color-success,#2a904b) 10%,transparent);color:#1b5f32}.auth-notice-close{background:none;border:0;border-radius:6px;color:currentColor;cursor:pointer;display:grid;flex:none;height:24px;opacity:.7;place-items:center;width:24px}.auth-notice-close:hover{opacity:1}.auth-notice-close:focus-visible{opacity:1;outline:2px solid currentColor;outline-offset:-2px}.auth-result{align-items:center;display:flex;flex-direction:column;gap:var(--space-xs,8px);text-align:center}.auth-result-ico{border-radius:999px;display:grid;font-size:26px;height:52px;margin-bottom:var(--space-2xs,4px);place-items:center;width:52px}.auth-result-ico--ok{background:color-mix(in oklab,var(--color-success,#2a904b) 13%,transparent);color:var(--color-success,#2a904b)}.auth-result-ico--warn{background:color-mix(in oklab,var(--color-warning,#e3831f) 14%,transparent);color:var(--color-warning,#e3831f)}.auth-result-ico--err{background:color-mix(in oklab,var(--color-error,#d73434) 12%,transparent);color:var(--color-error,#d73434)}.auth-result-ico--brand{background:var(--color-primary-tint,#e8eeff);color:var(--color-primary,#1f3c88)}.auth-result-title{color:var(--color-display,#1a2340);font-family:var(--font-display,"Plus Jakarta Sans",sans-serif);font-size:var(--text-xl,20px);font-style:normal;font-weight:700;letter-spacing:-.02em;margin:0;overflow-wrap:anywhere}.auth-result-text{color:var(--color-ink-2,#7a7684);font-size:var(--text-sm,13px);line-height:1.55;margin:0;max-width:44ch}.auth-result-text strong{color:var(--color-ink,#3a3541)}.auth-result .auth-btn,.auth-result .auth-link{margin-top:var(--space-sm,12px)}.auth-loading{align-items:center;color:var(--color-ink-2,#7a7684);display:flex;flex-direction:column;font-size:var(--text-sm,13px);gap:var(--space-sm,12px);padding:var(--space-xl,32px) 0}.auth-spinner{animation:auth-spin .7s linear infinite;border:3px solid color-mix(in oklab,var(--color-primary,#1f3c88) 22%,transparent);border-radius:999px;border-top-color:var(--color-primary,#1f3c88);flex:none;height:28px;width:28px}.auth-spinner--sm{border-color:currentColor color-mix(in oklab,currentColor 30%,transparent) color-mix(in oklab,currentColor 30%,transparent);border-width:2px;height:15px;width:15px}@keyframes auth-spin{to{transform:rotate(1turn)}}.auth-rail{background:var(--color-surface-2,#f1f2f6);border-radius:999px;height:3px;margin-top:var(--space-sm,12px);overflow:hidden;position:relative;width:100%}.auth-rail:after{animation:auth-rail 1.1s var(--ease-in-out,ease) infinite;background:var(--color-primary,#1f3c88);border-radius:inherit;content:"";inset:0 auto 0 0;position:absolute;width:35%}@keyframes auth-rail{0%{transform:translate(-100%)}to{transform:translate(320%)}}.auth-foot{color:var(--color-ink-2,#7a7684);font-size:var(--text-sm,13px);margin:0;text-align:center}.auth-row{align-items:center;display:flex;flex-wrap:wrap;gap:var(--space-sm,12px);justify-content:space-between}@media(max-width:480px){.auth{padding:var(--space-md,16px) var(--space-sm,12px)}.auth-card{padding:var(--space-lg,24px) var(--space-md,16px)}}@media(prefers-reduced-motion:reduce){.auth-btn,.auth-check-box,.auth-check-box>*,.auth-input,.auth-pw-toggle{transition:none}.auth-spinner{animation-duration:1.4s}.auth-rail:after{animation:none;opacity:.5;width:100%}}
