.auth-shell{--bg:#fafaf7;--bg-2:#f3f2ec;--ink:#0a0a0a;--ink-2:#2a2a28;--muted:#6b6b66;--line:#d9d8d0;--line-2:#e8e7df;--accent:oklch(58% 0.22 258);--accent-soft:oklch(58% 0.22 258/0.12);--accent-glow:oklch(68% 0.22 252);--card:#ffffff;--shadow:0 1px 0 rgba(0,0,0,0.04),0 24px 60px -20px rgba(0,0,0,0.12);--err:oklch(58% 0.22 25);--ok:oklch(64% 0.16 145);background:var(--bg);color:var(--ink);font-family:var(--font-cn-sans),"Inter Tight",system-ui,sans-serif;font-feature-settings:"ss01","cv11";-webkit-font-smoothing:antialiased;font-size:16px;line-height:1.5;transition:background .3s ease,color .3s ease;min-height:100vh;height:100vh;width:100%;overflow:hidden}.auth-shell,.auth-shell *,.auth-shell :after,.auth-shell :before{box-sizing:border-box}.auth-shell[data-theme=dark]{--bg:#13131a;--bg-2:#1c1c25;--ink:#f5f5f0;--ink-2:#d9d8d0;--muted:#9a9890;--line:#2d2d38;--line-2:#24242e;--accent:oklch(72% 0.20 250);--accent-soft:oklch(72% 0.20 250/0.16);--accent-glow:oklch(78% 0.20 245);--card:#1a1a23;--shadow:0 1px 0 rgba(255,255,255,0.04),0 24px 60px -20px rgba(0,0,0,0.5)}.auth-shell .auth-mono{font-family:var(--font-cn-mono),"IBM Plex Mono",monospace}.auth-shell .auth-serif{font-family:var(--font-cn-serif),"Source Serif 4",serif}.auth-shell a{color:inherit;text-decoration:none}.auth-shell button{font-family:inherit;cursor:pointer}.auth-shell-grid{display:grid;grid-template-columns:1.05fr 1fr;height:100vh;width:100%}@media (max-width:920px){.auth-shell-grid{grid-template-columns:1fr}.auth-shell-left{display:none}}.auth-shell-left{position:relative;background:var(--bg-2);border-right:1px solid var(--line);overflow:hidden;padding:32px 40px;display:flex;flex-direction:column;justify-content:space-between}.auth-shell-left .auth-brand{display:flex;align-items:center;gap:10px;font-weight:600;font-size:17px;letter-spacing:-.01em;z-index:3;position:relative;color:var(--ink)}.auth-brand-mark{width:22px;height:22px}.auth-brand-mark svg{width:100%;height:100%;display:block}.auth-canvas-wrap{position:absolute;inset:0;width:100%;height:100%;z-index:1}.auth-canvas-wrap canvas{width:100%;height:100%;display:block}.auth-coords{position:absolute;font-family:var(--font-cn-mono),"IBM Plex Mono",monospace;font-size:10px;letter-spacing:.06em;color:var(--muted);z-index:3;white-space:pre-line}.auth-coords.tr{top:32px;right:32px;text-align:right}.auth-coords.bl{bottom:32px;left:40px}.auth-quote{position:relative;z-index:3;max-width:520px;font-family:var(--font-cn-serif),"Source Serif 4",serif;font-size:28px;line-height:1.3;letter-spacing:-.015em;font-weight:300;margin:0 0 18px;color:var(--ink)}.auth-quote .em{color:var(--accent);font-style:italic}.auth-quote-meta{font-family:var(--font-cn-mono),"IBM Plex Mono",monospace;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);position:relative;z-index:3}.auth-shell-right{position:relative;display:flex;flex-direction:column;overflow-y:auto}.auth-right-top{display:flex;align-items:center;justify-content:space-between;padding:20px 40px;border-bottom:1px solid var(--line);gap:16px}@media (max-width:540px){.auth-right-top{padding:16px 20px}}.auth-brand-mobile{display:none;color:var(--ink)}@media (max-width:920px){.auth-brand-mobile{display:flex;align-items:center;gap:10px;font-weight:600;font-size:16px}}.auth-top-right{display:flex;align-items:center;gap:8px;margin-left:auto}.auth-toggle-group{display:flex;align-items:center;background:var(--bg-2);border:1px solid var(--line);border-radius:999px;padding:3px;font-size:11px;font-family:var(--font-cn-mono),"IBM Plex Mono",monospace;letter-spacing:.04em;text-transform:uppercase}.auth-toggle-group button{border:0;background:transparent;padding:6px 11px;border-radius:999px;color:var(--muted);font-family:inherit;font-size:inherit;letter-spacing:inherit;text-transform:inherit;transition:all .2s ease;display:grid;place-items:center}.auth-toggle-group button.active{background:var(--ink);color:var(--bg)}.auth-top-right .auth-back{font-family:var(--font-cn-mono),"IBM Plex Mono",monospace;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);transition:color .2s ease}.auth-top-right .auth-back:hover{color:var(--ink)}.auth-form-wrap{flex:1;display:flex;align-items:center;justify-content:center;padding:40px}@media (max-width:540px){.auth-form-wrap{padding:28px 20px}}.auth-form{width:100%;max-width:400px;animation:authStepIn .4s cubic-bezier(.2,.8,.2,1) both}@keyframes authStepIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.auth-eyebrow{font-family:var(--font-cn-mono),"IBM Plex Mono",monospace;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);display:flex;align-items:center;gap:12px;margin-bottom:16px}.auth-eyebrow:before{content:"";display:inline-block;width:24px;height:1px;background:var(--accent)}.auth-eyebrow.center{justify-content:center}.auth-eyebrow.center:before{display:none}.auth-h1{font-size:36px;line-height:1.05;letter-spacing:-.025em;font-weight:400;margin:0 0 10px;color:var(--ink)}.auth-h1 .em{font-style:italic;font-family:var(--font-cn-serif),"Source Serif 4",serif;font-weight:300;color:var(--accent)}.auth-sub{font-size:15px;color:var(--muted);margin:0 0 28px;line-height:1.5}.auth-sub strong{color:var(--ink);font-weight:500}.auth-sso{display:grid;gap:10px;margin-bottom:22px}.auth-sso button{width:100%;height:46px;border:1px solid var(--line);border-radius:12px;background:var(--card);color:var(--ink);font-size:14.5px;font-weight:500;display:flex;align-items:center;justify-content:center;gap:12px;transition:all .18s ease;position:relative}.auth-sso button:hover:not(:disabled){border-color:var(--ink);transform:translateY(-1px);box-shadow:0 6px 16px -8px rgba(0,0,0,.12)}.auth-shell[data-theme=dark] .auth-sso button:hover:not(:disabled){box-shadow:0 6px 16px -8px rgba(0,0,0,.6)}.auth-sso button:disabled{opacity:.55;cursor:not-allowed}.auth-sso button .ic{width:18px;height:18px;display:grid;place-items:center}.auth-sso button .badge{position:absolute;right:12px;font-family:var(--font-cn-mono),"IBM Plex Mono",monospace;font-size:9px;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);background:var(--accent-soft);padding:3px 7px;border-radius:999px}.auth-sso button.passkey{background:var(--ink);color:var(--bg);border-color:var(--ink)}.auth-sso button.passkey:hover:not(:disabled){background:var(--accent);border-color:var(--accent);color:#fff}.auth-divider{display:flex;align-items:center;gap:14px;margin:22px 0;font-family:var(--font-cn-mono),"IBM Plex Mono",monospace;font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}.auth-divider:after,.auth-divider:before{content:"";flex:1;height:1px;background:var(--line)}.auth-field{margin-bottom:14px}.auth-field label{display:block;font-family:var(--font-cn-mono),"IBM Plex Mono",monospace;font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:8px}.auth-input{position:relative;display:flex;align-items:center;border:1px solid var(--line);border-radius:12px;background:var(--card);transition:border-color .15s,box-shadow .15s}.auth-input:focus-within{border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-soft)}.auth-input input{flex:1;border:0;background:transparent;font-family:inherit;font-size:14.5px;color:var(--ink);outline:none;height:46px;padding:0 16px;width:100%}.auth-input input::placeholder{color:var(--muted)}.auth-input .toggle-pw{border:0;background:transparent;color:var(--muted);padding:0 14px;height:46px;display:grid;place-items:center}.auth-input .toggle-pw:hover{color:var(--ink)}.auth-input.error{border-color:var(--err)}.auth-input.error:focus-within{box-shadow:0 0 0 4px oklch(58% .22 25/.12)}.auth-field .err{font-size:12px;color:var(--err);margin-top:6px;letter-spacing:.02em}.auth-field .err,.auth-strength{font-family:var(--font-cn-mono),"IBM Plex Mono",monospace}.auth-strength{margin-top:10px;font-size:10px;letter-spacing:.06em;text-transform:uppercase}.auth-strength-bars{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;margin-bottom:6px}.auth-strength-bars span{height:3px;background:var(--line);border-radius:2px;transition:background .2s}.auth-strength-bars.s1 span:nth-child(-n+1){background:var(--err)}.auth-strength-bars.s2 span:nth-child(-n+2),.auth-strength-bars.s3 span:nth-child(-n+3){background:oklch(72% .16 75)}.auth-strength-bars.s4 span{background:var(--ok)}.auth-strength-label{color:var(--muted)}.auth-row-flex{justify-content:space-between;margin:6px 0 22px;font-size:13px;gap:12px}.auth-check,.auth-row-flex{display:flex;align-items:center}.auth-check{gap:9px;cursor:pointer;color:var(--ink-2)}.auth-check input{display:none}.auth-check .box{width:16px;height:16px;border:1px solid var(--line);border-radius:4px;display:grid;place-items:center;transition:all .15s;flex-shrink:0}.auth-check input:checked+.box{background:var(--ink);border-color:var(--ink)}.auth-check input:checked+.box:after{content:"";width:8px;height:4px;border:1.6px solid var(--bg);border-top:0;border-right:0;transform:rotate(-45deg) translateY(-1px)}.auth-row-flex a{color:var(--accent);font-weight:500}.auth-row-flex a:hover{text-decoration:underline}.auth-submit{width:100%;height:48px;border:0;border-radius:12px;background:var(--ink);color:var(--bg);font-family:inherit;font-size:14.5px;font-weight:500;letter-spacing:.01em;display:flex;align-items:center;justify-content:center;gap:8px;transition:all .2s;position:relative;overflow:hidden}.auth-submit:hover:not(:disabled){background:var(--accent);color:#fff}.auth-submit:disabled{opacity:.5;cursor:not-allowed}.auth-submit.loading{color:transparent}.auth-submit.loading:after{content:"";position:absolute;width:18px;height:18px;border:2px solid var(--bg);border-top:2px solid transparent;border-radius:50%;animation:authSpin .7s linear infinite}@keyframes authSpin{to{transform:rotate(1turn)}}.auth-secondary{width:100%;height:44px;border:1px solid var(--line);border-radius:12px;background:var(--card);color:var(--ink);font-family:inherit;font-size:14px;font-weight:500;display:flex;align-items:center;justify-content:center;gap:8px;transition:all .18s ease}.auth-secondary:hover:not(:disabled){border-color:var(--ink)}.auth-secondary:disabled{opacity:.5;cursor:not-allowed}.auth-alt{margin-top:22px;font-size:14px;text-align:center;color:var(--muted)}.auth-alt a{color:var(--ink);font-weight:500}.auth-alt a:hover{color:var(--accent)}.auth-alt button{border:0;background:transparent;color:var(--ink);font-weight:500;font-size:inherit;padding:0}.auth-alt button:hover{color:var(--accent)}.auth-alt button:disabled{opacity:.6;cursor:not-allowed}.auth-legal{margin-top:28px;font-size:11px;color:var(--muted);text-align:center;line-height:1.5;font-family:var(--font-cn-mono),"IBM Plex Mono",monospace;letter-spacing:.02em}.auth-legal a{color:var(--ink-2);text-decoration:underline;text-decoration-color:var(--line)}.auth-legal a:hover{color:var(--accent)}.auth-right-foot{padding:16px 40px;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;font-family:var(--font-cn-mono),"IBM Plex Mono",monospace;font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);gap:12px}@media (max-width:540px){.auth-right-foot{padding:14px 20px}}.auth-right-foot .syslog .dotok{width:6px;height:6px;border-radius:50%;background:var(--ok);display:inline-block;margin-right:6px;vertical-align:middle}.auth-lockout{display:flex;align-items:flex-start;gap:10px;padding:12px 14px;margin-bottom:18px;border:1px solid color-mix(in oklch,var(--err) 30%,transparent);background:color-mix(in oklch,var(--err) 10%,transparent);border-radius:12px;color:var(--err)}.auth-lockout-text{display:flex;flex-direction:column;gap:2px}.auth-lockout-title{font-size:13px;font-weight:600}.auth-lockout-sub{font-size:12px;opacity:.85}.auth-method-list{display:grid;gap:10px}.auth-method-card{display:flex;align-items:center;gap:12px;width:100%;padding:14px 16px;border:1px solid var(--line);border-radius:12px;background:var(--card);text-align:left;transition:all .18s ease;color:var(--ink)}.auth-method-card:hover:not(:disabled){border-color:var(--ink);transform:translateY(-1px);box-shadow:0 6px 16px -8px rgba(0,0,0,.12)}.auth-method-card:disabled{opacity:.5;cursor:not-allowed}.auth-method-card .ic{width:36px;height:36px;border-radius:10px;background:var(--accent-soft);color:var(--accent);display:grid;place-items:center;flex-shrink:0}.auth-method-card-body{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}.auth-method-card-title{font-size:14px;font-weight:500;color:var(--ink)}.auth-method-card-sub{font-size:12px;color:var(--muted)}.auth-method-card-arrow{color:var(--muted);flex-shrink:0;transition:transform .2s ease,color .2s ease}.auth-method-card:hover:not(:disabled) .auth-method-card-arrow{transform:translateX(2px);color:var(--accent)}.auth-otp{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;margin:8px 0 18px}.auth-otp input{height:52px;border:1px solid var(--line);background:var(--card);border-radius:10px;text-align:center;font-family:var(--font-cn-mono),"IBM Plex Mono",monospace;font-size:20px;font-weight:500;color:var(--ink);outline:none;transition:all .15s}.auth-otp input:focus{border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-soft)}.auth-otp input.filled{border-color:var(--ink)}.auth-otp input:disabled{opacity:.55}.auth-passkey-glyph-wrap{text-align:center;padding:32px 0}.auth-passkey-glyph{width:96px;height:96px;border-radius:50%;background:var(--accent-soft);display:grid;place-items:center;margin:0 auto 18px;position:relative;color:var(--accent)}.auth-passkey-glyph:after{content:"";position:absolute;inset:-6px;border:1px dashed var(--accent);border-radius:50%;animation:authSpin 8s linear infinite}.auth-passkey-waiting{font-family:var(--font-cn-mono),"IBM Plex Mono",monospace;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.auth-success{text-align:center;padding:20px 0}.auth-success-glyph{width:56px;height:56px;border-radius:50%;background:var(--accent-soft);display:grid;place-items:center;margin:0 auto 18px;position:relative}.auth-success-glyph:after{content:"";width:18px;height:9px;border:2.4px solid var(--accent);border-top:0;border-right:0;transform:rotate(-45deg) translateY(-2px)}