.auth{--surface:var(--panel);--ink:var(--fg);--ink-2:var(--fg-2);--ink-3:var(--fg-3);--ns:var(--st-ns);--accent-soft:var(--accent-bg);--on-accent:var(--accent-fg);--weak:var(--st-weak);--weak-soft:var(--weak-bg);min-height:100dvh;display:flex;flex-direction:column;color:var(--ink)}.auth *{box-sizing:border-box}.auth h1{font-size:28px;line-height:1.15;font-weight:600;letter-spacing:-.025em;margin:0;text-wrap:balance}.auth .top{gap:16px;min-height:64px;padding:0 28px}.auth .brand,.auth .top{display:flex;align-items:center}.auth .brand{padding:0;gap:9px;font-weight:600;font-size:15px;letter-spacing:-.01em}.auth .brand i{width:19px;height:19px;flex:none;background:var(--accent);-webkit-mask:url(/logo.svg) center/contain no-repeat;mask:url(/logo.svg) center/contain no-repeat}.auth .top .alt{margin-left:auto;font-size:14px;color:var(--ink-2)}.auth .top .alt a{color:var(--ink);font-weight:500;margin-left:4px}.auth .top .alt a:hover{text-decoration:underline;text-underline-offset:3px}.auth .wrap{flex:1;display:flex;justify-content:center;padding:clamp(32px,9vh,96px) 24px 64px}.auth .col{width:100%;max-width:380px;animation:auth-in .25s ease}@keyframes auth-in{0%{opacity:.0001;transform:translateY(4px)}to{opacity:1;transform:none}}.auth .over{font-size:13px;color:var(--ink-3);margin-bottom:6px}.auth .lead{font-size:15.5px;color:var(--ink-2);margin:8px 0 0;text-wrap:pretty}.auth .lead b{color:var(--ink);font-weight:500}.auth form{display:grid;gap:20px;margin-top:32px}.auth .f{display:grid;gap:7px}.auth .lrow{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.auth label{font-size:13.5px;font-weight:500}.auth .in{position:relative}.auth .in input{width:100%;height:44px;border:1px solid var(--line);border-radius:9px;background:var(--surface);padding:0 13px;outline:none;transition:border-color .15s}.auth .in input::placeholder{color:var(--ink-3)}.auth .in input:hover{border-color:color-mix(in srgb,var(--ink-3) 55%,var(--line))}.auth .in input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.auth .in.pw input{padding-right:62px}.auth .eye{position:absolute;right:4px;top:4px;height:36px;padding:0 10px;border-radius:7px;font-size:13px;color:var(--ink-2)}.auth .eye:hover{color:var(--ink);background:var(--hover)}.auth .hint{font-size:13px;color:var(--ink-3);display:flex;align-items:center;gap:6px}.auth .hint svg{width:14px;height:14px;stroke-width:2.2;opacity:0}.auth .hint.ok{color:var(--accent)}.auth .hint.ok svg{opacity:1}.auth .err{font-size:13px;color:var(--weak)}.auth .err a{font-weight:500;text-decoration:underline;text-underline-offset:3px}.auth .code.bad input,.auth .f.bad input{border-color:var(--weak)}.auth .code.bad input:focus,.auth .f.bad input:focus{box-shadow:0 0 0 3px var(--weak-soft)}.auth .f.bad .hint{display:none}.auth .textlink{font-size:13.5px;color:var(--ink-2)}.auth .textlink:hover{color:var(--ink);text-decoration:underline;text-underline-offset:3px}.auth .btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:44px;padding:0 16px;border-radius:9px;font-size:14.5px;font-weight:500;white-space:nowrap;border:1px solid var(--line);background:var(--surface)}.auth .btn:hover{border-color:var(--ink-3)}.auth .btn.primary{width:100%;background:var(--accent);border-color:var(--accent);color:var(--on-accent);margin-top:4px}.auth .btn.primary:hover{filter:brightness(1.08)}.auth .btn:disabled{opacity:.55;cursor:default;filter:none}.auth .spin{width:16px;height:16px;border-radius:50%;border:2px solid;border-right:2px solid transparent;animation:auth-sp .7s linear infinite}@keyframes auth-sp{to{transform:rotate(1turn)}}.auth .check{display:flex;align-items:center;gap:10px;font-size:14px;color:var(--ink-2);cursor:pointer;width:max-content}.auth .check input{width:16px;height:16px;margin:0;accent-color:var(--accent)}.auth .note{border-left:2px solid var(--accent);padding:2px 0 2px 14px;margin-top:24px;font-size:14px;color:var(--ink)}.auth .note.bad{border-color:var(--weak)}.auth .note small{display:block;color:var(--ink-2);font-size:13px}.auth .note small a{color:var(--ink);font-weight:500;text-decoration:underline;text-underline-offset:3px}.auth .note+.oauth,.auth .note+form{margin-top:24px}.auth .or{display:flex;align-items:center;gap:12px;margin:24px 0 0;font-size:13px;color:var(--ink-3)}.auth .or:after,.auth .or:before{content:"";flex:1;height:1px;background:var(--line)}.auth .oauth{display:grid;gap:10px;margin-top:32px}.auth .or+form{margin-top:20px}.auth .oauth .btn{width:100%}.auth .oauth svg{width:17px;height:17px;flex:none}.auth .oauth .gh{fill:currentColor}.auth .foot{margin-top:32px;padding-top:20px;border-top:1px solid var(--line);font-size:14px;color:var(--ink-2);display:grid;gap:8px}.auth .foot a{color:var(--ink);font-weight:500}.auth .foot a:hover{text-decoration:underline;text-underline-offset:3px}.auth .fine{font-size:12.5px;color:var(--ink-3);margin:0}.auth .code{display:flex;gap:8px;align-items:center}.auth .code input{flex:1 1 0;min-width:0;max-width:54px;height:58px;border:1px solid var(--line);border-radius:10px;background:var(--surface);text-align:center;font-size:24px;font-weight:500;font-variant-numeric:tabular-nums;outline:none;caret-color:var(--accent);padding:0}.auth .code input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.auth .code input.filled{border-color:color-mix(in srgb,var(--ink-3) 60%,var(--line))}.auth .code .dash{width:10px;height:1.5px;background:var(--ns);flex:none;margin:0 2px}.auth .code.ok input{border-color:var(--accent);color:var(--accent)}.auth .code+.err{margin-top:10px}.auth .resend{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;font-size:13.5px;color:var(--ink-3)}.auth .resend button{color:var(--ink);font-weight:500}.auth .resend button:hover{text-decoration:underline;text-underline-offset:3px}.auth .tnum{font-variant-numeric:tabular-nums}.auth .done{display:flex;align-items:center;gap:10px;margin-top:28px;color:var(--accent);font-weight:500}.auth .done svg{width:20px;height:20px;stroke-width:2.2}.auth .sent .lead{margin-top:6px}.auth .toast{position:fixed;left:50%;bottom:calc(24px + env(safe-area-inset-bottom,0px));transform:translate(-50%,12px);opacity:0;z-index:80;background:var(--ink);color:var(--bg);border-radius:10px;padding:10px 16px;font-size:14px;transition:all .25s ease;pointer-events:none;max-width:calc(100% - 32px)}.auth .toast.show{opacity:1;transform:translate(-50%)}@media (max-width:560px){.auth .top{padding:0 16px;min-height:56px}.auth .wrap{padding:28px 16px 48px}.auth h1{font-size:25px}.auth .in input{height:48px;font-size:16px}.auth .eye{top:6px}.auth .btn{height:48px}.auth .code{gap:6px}.auth .code input{height:56px}.auth .code .dash{width:8px;margin:0}}@media (prefers-reduced-motion:reduce){.auth *{animation:none!important;transition:none!important}}