.login-page{--lp-bg:#f5f5f7;--lp-text:#1b1d23;--lp-label:#4b4f5a;--lp-muted:#868b96;--lp-accent:#5b4bd6;--lp-card:#fff;--lp-card-border:#10121b0f;--lp-card-shadow:0 1px 2px #10121b0a,0 16px 48px #10121b14;--lp-input:#f5f5f7;--lp-input-border:#10121b14;--lp-neutral:#fff;--lp-neutral-border:#10121b1f;--lp-divider:#10121b14;background:var(--lp-bg);color:var(--lp-text);flex-direction:column;justify-content:center;align-items:center;min-height:100dvh;padding:48px 16px;display:flex}.dark .login-page{--lp-bg:#1c1f26;--lp-text:#eceef2;--lp-label:#b4b9c4;--lp-muted:#7e8492;--lp-accent:#6455e6;--lp-card:#ffffff0a;--lp-card-border:#ffffff14;--lp-card-shadow:inset 0 1px 0 #ffffff0f,0 16px 48px #00000059;--lp-input:#ffffff0d;--lp-input-border:#ffffff1a;--lp-neutral:#ffffff0a;--lp-neutral-border:#ffffff1f;--lp-divider:#ffffff14}.login-card{z-index:1;background:var(--lp-card);border:1px solid var(--lp-card-border);width:100%;max-width:400px;box-shadow:var(--lp-card-shadow);border-radius:24px;flex-direction:column;gap:16px;padding:50px 32px 28px;display:flex;position:relative}.dark .login-card{-webkit-backdrop-filter:blur(20px)saturate(160%);backdrop-filter:blur(20px)saturate(160%)}.login-title{text-align:center;color:var(--lp-text);letter-spacing:-.01em;font-size:22px;font-weight:600}.login-hint{text-align:center;color:var(--lp-muted);min-height:20px;margin-top:4px;font-size:14px}.login-label{color:var(--lp-label);padding-left:16px;font-size:13px;font-weight:500}.login-field{flex-direction:column;gap:6px;display:flex}.login-input-wrap{position:relative}.login-input{width:100%;height:46px;color:var(--lp-text);background:var(--lp-input);border:1px solid var(--lp-input-border);border-radius:9999px;outline:none;padding:0 18px;font-size:15px;transition:border-color .15s ease-out,box-shadow .15s ease-out}.login-input::placeholder{color:var(--lp-muted)}.login-input:focus{border-color:var(--lp-accent);box-shadow:0 0 0 4px #5b4bd629}.login-input.has-eye{padding-right:50px}.login-eye{width:34px;height:34px;color:var(--lp-muted);cursor:pointer;background:0 0;border-radius:9999px;justify-content:center;align-items:center;transition:background .12s,color .12s;display:flex;position:absolute;top:50%;right:6px;transform:translateY(-50%)}.login-eye:hover{color:var(--lp-label);background:#10121b0d}.dark .login-eye:hover{background:#ffffff0f}.login-error{color:var(--destructive);padding-left:16px;font-size:13px}.login-primary{background:var(--lp-accent);color:#fff;cursor:pointer;border-radius:9999px;justify-content:center;align-items:center;gap:8px;height:46px;font-size:15px;font-weight:600;transition:background .15s ease-out,transform .1s ease-out;display:flex}.login-primary:hover:not(:disabled){background:#4f40c8}.login-primary:active:not(:disabled){transform:scale(.985)}.login-primary:disabled{opacity:.6;cursor:not-allowed}.login-divider{color:var(--lp-muted);align-items:center;gap:12px;font-size:12.5px;display:flex}.login-divider:before,.login-divider:after{content:"";background:var(--lp-divider);flex:1;height:1px}.login-neutral{background:var(--lp-neutral);border:1px solid var(--lp-neutral-border);width:100%;height:46px;color:var(--lp-text);border-radius:9999px;justify-content:center;align-items:center;gap:10px;font-size:15px;font-weight:500;display:flex}.login-neutral:disabled{cursor:not-allowed;opacity:.7}.login-link{color:var(--lp-muted);cursor:pointer;align-items:center;gap:6px;margin:0 auto;font-size:14px;display:flex}.login-link:hover{color:var(--lp-text)}.login-mascot{z-index:2;margin-bottom:-40px;line-height:0;position:relative}@keyframes login-mascot-in{0%{opacity:0;transform:translateY(16px)scale(.7)}60%{opacity:1;transform:translateY(-5px)scale(1.06)}to{opacity:1;transform:none}}@keyframes login-mascot-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes login-mascot-blink{0%,93%,to{transform:scaleY(1)}95%{transform:scaleY(.1)}}@keyframes login-mascot-shake{0%,to{transform:translate(0)}20%{transform:translate(-8px)}40%{transform:translate(7px)}60%{transform:translate(-5px)}80%{transform:translate(3px)}}.login-mascot-svg{animation:.8s cubic-bezier(.34,1.56,.64,1) both login-mascot-in;overflow:visible}.login-mascot-svg.is-shaking{animation:.3s ease-in-out login-mascot-shake}.login-mascot-bob{animation:4s ease-in-out .9s infinite login-mascot-bob}.login-mascot-blink{transform-box:fill-box;transform-origin:50%;animation:5s ease-in-out 1.1s infinite login-mascot-blink}.login-mascot-eyes{transition:transform .18s ease-out}.login-mascot-fade{transition:opacity .14s ease-out}@media (prefers-reduced-motion:reduce){.login-mascot-svg,.login-mascot-svg.is-shaking,.login-mascot-bob,.login-mascot-blink{animation:none}.login-mascot-eyes,.login-mascot-fade{transition:none}}
