.auth{min-height:100vh;display:flex;flex-direction:column;background:var(--bg);color:var(--text);font-family:var(--font-sans)}.auth__topbar{display:flex;align-items:center;justify-content:space-between;padding:16px 22px;gap:12px}.auth__brand{display:inline-flex;align-items:center;gap:8px;font-size:14px;font-weight:700;letter-spacing:-.012em;color:var(--text);text-decoration:none}.auth__brand svg,.auth__brand img{width:18px;height:18px}.auth__brand-mark{display:block;width:118px;height:26px;background:currentColor;-webkit-mask:url(/assets/quanify-wordmark.svg) no-repeat center / contain;mask:url(/assets/quanify-wordmark.svg) no-repeat center / contain}.auth__brand b{font-weight:700;color:var(--text-sec)}.auth__theme{appearance:none;cursor:pointer;width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;background:transparent;border:1px solid var(--border, rgba(38,37,30,.1));border-radius:8px;color:var(--text-sec);transition:color .16s ease,background .16s ease,border-color .16s ease}.auth__theme:hover{color:var(--text);border-color:var(--border-strong, rgba(38,37,30,.2))}.auth__theme svg{width:15px;height:15px}html[data-theme=dark] .auth__theme-glyph--sun,html:not([data-theme=dark]) .auth__theme-glyph--moon{display:inline}html[data-theme=dark] .auth__theme-glyph--moon,html:not([data-theme=dark]) .auth__theme-glyph--sun{display:none}.auth__main{flex:1 1 auto;display:flex;align-items:center;justify-content:center;padding:24px 22px 60px}.auth__card{width:100%;max-width:420px;background:var(--card, var(--bg-soft, #fff));border:1px solid var(--border, rgba(38,37,30,.1));border-radius:14px;padding:32px 30px 28px;box-shadow:0 14px 40px -18px #0000002e;animation:auth-rise .48s cubic-bezier(.22,.61,.36,1) both}html[data-theme=dark] .auth__card{box-shadow:0 14px 40px -18px #0000008c}@keyframes auth-rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.auth__icon{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;background:var(--surface-glow, rgba(38,37,30,.04));border:1px solid var(--border, rgba(38,37,30,.1));border-radius:12px;color:var(--text);margin-bottom:18px}.auth__icon svg{width:22px;height:22px}.auth__title{margin:0 0 6px;font-size:1.36rem;font-weight:600;letter-spacing:-.014em;color:var(--text)}.auth__lede{margin:0 0 22px;font-size:.82rem;line-height:1.5;color:var(--text-sec)}.auth__field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}.auth__field[hidden],.auth__divider[hidden],.auth__switch[hidden]{display:none}.auth__label{font-size:.62rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--text-sec)}.auth__input-wrap{position:relative}.auth__check{position:absolute;right:12px;top:50%;width:16px;height:16px;margin-top:-8px;display:none;pointer-events:none}.auth__check.is-loading,.auth__check.is-ok,.auth__check.is-bad{display:block}.auth__check.is-loading{border-radius:50%;border:2px solid rgba(128,130,136,.35);border-top-color:#3d9cff;animation:auth-spin .7s linear infinite}.auth__check.is-ok,.auth__check.is-bad{background:currentColor;-webkit-mask:center / contain no-repeat;mask:center / contain no-repeat}.auth__check.is-ok{color:#22c55e;-webkit-mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'><path d='M20 6 9 17l-5-5'/></svg>");mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'><path d='M20 6 9 17l-5-5'/></svg>")}.auth__check.is-bad{color:#ef4444;-webkit-mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'><path d='M18 6 6 18M6 6l12 12'/></svg>");mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'><path d='M18 6 6 18M6 6l12 12'/></svg>")}.auth__input.is-checking-ok{padding-right:36px}.auth__hint{margin:0;font-size:12px;line-height:1.45;color:var(--text-ter, rgba(128,130,136,.9))}.auth__hint.is-bad{color:#ef4444}@keyframes auth-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.auth__check.is-loading{animation:none}}.auth__input{width:100%;padding:11px 13px;background:var(--bg);border:1px solid var(--border, rgba(38,37,30,.12));border-radius:8px;color:var(--text);font:inherit;font-size:.86rem;transition:border-color .16s ease,background .16s ease,box-shadow .16s ease}.auth__input:focus{outline:none;border-color:var(--accent, rgb(245,78,0));background:var(--bg);box-shadow:0 0 0 3px var(--accent-glow, rgba(245,78,0,.18))}.auth__input::placeholder{color:var(--text-ter, rgba(38,37,30,.4))}.auth__eye{appearance:none;cursor:pointer;position:absolute;right:6px;top:50%;transform:translateY(-50%);width:30px;height:30px;display:inline-flex;align-items:center;justify-content:center;background:transparent;border:0;border-radius:6px;color:var(--text-sec);transition:color .14s ease,background .14s ease}.auth__eye:hover{color:var(--text);background:var(--surface-glow, rgba(38,37,30,.04))}.auth__eye svg{width:15px;height:15px}.auth__row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:6px 0 18px;font-size:.74rem}.auth__remember{display:inline-flex;align-items:center;gap:6px;cursor:pointer;color:var(--text-sec)}.auth__remember input{accent-color:var(--accent, rgb(245,78,0))}.auth__link{color:var(--accent, rgb(245,78,0));text-decoration:none;font-weight:600;transition:color .16s ease}.auth__link:hover{text-decoration:underline}.auth__submit{appearance:none;cursor:pointer;width:100%;padding:12px 16px;background:var(--text);color:var(--bg);border:0;border-radius:8px;font:inherit;font-size:.82rem;font-weight:600;letter-spacing:.005em;transition:transform .16s ease,box-shadow .16s ease,opacity .16s ease}.auth__submit:hover{transform:translateY(-1px);box-shadow:0 8px 22px -10px #0000004d}.auth__submit:active{transform:translateY(0)}.auth__submit:disabled{opacity:.55;pointer-events:none}.auth__msg{margin:12px 0 0;padding:9px 11px;border-radius:7px;border:1px solid transparent;font-size:.74rem;line-height:1.45}.auth__msg[hidden]{display:none}.auth__msg.is-error{color:#cf2d56;background:#cf2d5614;border-color:#cf2d5638}.auth__msg--notice{margin:0 0 16px;text-align:left}.auth__msg.is-success{color:#10b981;background:#10b98114;border-color:#10b98138}.auth__divider{display:flex;align-items:center;gap:10px;margin:22px 0 16px;font-size:.64rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--text-ter, rgba(38,37,30,.4))}.auth__divider:before,.auth__divider:after{content:"";flex:1 1 auto;height:1px;background:var(--border, rgba(38,37,30,.1))}.auth__switch{text-align:center;font-size:.78rem;color:var(--text-sec)}.auth__legal{text-align:center;margin:22px auto 0;padding-bottom:28px;max-width:360px;font-size:.66rem;line-height:1.5;color:var(--text-ter, rgba(38,37,30,.42))}.auth__legal a{color:var(--text-sec);text-decoration:underline}.auth__legal a:hover{color:var(--text)}.auth__lock{display:none;margin-bottom:18px;padding:14px 16px;background:var(--surface-glow, rgba(38,37,30,.04));border:1px solid var(--border, rgba(38,37,30,.12));border-radius:10px;text-align:left}html[data-signups-enabled="0"] .auth__lock{display:flex;gap:12px;align-items:flex-start}.auth__lock-icon{flex:0 0 28px;width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;background:var(--bg);border:1px solid var(--border, rgba(38,37,30,.1));border-radius:8px;color:var(--text)}.auth__lock-icon svg{width:14px;height:14px}.auth__lock-text{display:flex;flex-direction:column;gap:4px;min-width:0;font-size:.74rem;line-height:1.45}.auth__lock-text strong{color:var(--text);font-weight:600}.auth__lock-text span{color:var(--text-sec)}html[data-signups-enabled="0"] .auth__form[data-mode=signup]{opacity:.55;pointer-events:none;user-select:none}html[data-signups-enabled="0"] .auth__form[data-mode=signup] .auth__input,html[data-signups-enabled="0"] .auth__form[data-mode=signup] .auth__eye,html[data-signups-enabled="0"] .auth__form[data-mode=signup] .auth__submit{cursor:not-allowed!important}html[data-signups-enabled="0"] .auth__form[data-mode=signup] .auth__submit{background:var(--text-ter, rgba(38,37,30,.4));color:var(--bg)}@media(max-width:440px){.auth__card{padding:26px 22px 22px;border-radius:12px}.auth__title{font-size:1.18rem}.auth__eye{width:40px;height:40px;right:4px}.auth__remember input[type=checkbox]{width:18px;height:18px}}.auth__social[hidden]{display:none}.auth__social-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(0,1fr));gap:10px}.auth__social-btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;padding:11px 14px;border-radius:10px;border:1px solid var(--auth-border, rgba(255, 255, 255, .14));background:var(--auth-field, rgba(255, 255, 255, .04));color:inherit;font:inherit;font-size:.88rem;font-weight:500;text-decoration:none;cursor:pointer;transition:background .18s ease,border-color .18s ease,transform .18s ease}.auth__social-btn:hover{background:var(--auth-field-hover, rgba(255, 255, 255, .08));border-color:var(--auth-border-strong, rgba(255, 255, 255, .24));transform:translateY(-1px)}.auth__social-btn:active{transform:translateY(0)}.auth__social-btn:focus-visible{outline:2px solid currentColor;outline-offset:2px}.auth__social-btn[hidden]{display:none}.auth__social-btn svg{flex:0 0 auto;display:block}body.auth{--a-brand: #3e8ef6;--a-brand-hover: #5ba2ff;--a-brand-ink: #ffffff;--a-ground: #0b0b0b;--a-surface: #1a1a1a;--a-surface-hover: #242424;--a-border: #292929;--a-ink: rgba(255, 255, 255, .95);--a-ink-muted: #b4b4b4;--a-card: #141414;--a-card-shadow: 0 1px 2px rgba(0, 0, 0, .4), 0 12px 40px -18px rgba(0, 0, 0, .7);--a-font: -apple-system, BlinkMacSystemFont, "Segoe UI", Inter, "Helvetica Neue", system-ui, sans-serif;background:var(--a-ground);color:var(--a-ink)}html[data-theme=light] body.auth,body.auth[data-theme=light]{--a-brand: #0090ff;--a-brand-hover: #1a9dff;--a-brand-ink: #ffffff;--a-ground: #f6f6f8;--a-surface: #ededf1;--a-surface-hover: #e4e4e9;--a-border: #e5e5e5;--a-ink: rgba(0, 0, 0, .93);--a-ink-muted: #6b6b70;--a-card: #ffffff;--a-card-shadow: 0 1px 2px rgba(16, 24, 40, .05), 0 12px 34px -18px rgba(16, 24, 40, .16)}.auth-step{display:flex;flex-direction:column;align-items:stretch;gap:10px}.auth-step[hidden]{display:none!important}.auth-mark{align-self:center;display:inline-flex;color:var(--a-ink);margin-bottom:18px}.auth-mark svg,.auth-mark img{width:34px;height:34px}.auth-mark{width:60px;height:60px;background:currentColor;-webkit-mask:url(/assets/quanify-mark.svg) no-repeat center / contain;mask:url(/assets/quanify-mark.svg) no-repeat center / contain}.auth-welcome{margin:0 0 22px;text-align:center;font-size:1.5rem;font-weight:500;letter-spacing:-.02em;color:var(--a-ink)}.auth-welcome--form{margin-bottom:18px}.auth-btn{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;min-height:48px;padding:0 18px;border-radius:10px;border:1px solid transparent;font:inherit;font-size:.94rem;font-weight:500;text-decoration:none;cursor:pointer;transition:background-color .14s ease,border-color .14s ease,transform .14s ease}.auth-btn[hidden]{display:none!important}.auth-btn:active{transform:scale(.995)}.auth-btn--primary{background:var(--a-brand);color:var(--a-brand-ink)}.auth-btn--primary:hover{background:var(--a-brand-hover)}.auth-btn--secondary{background:var(--a-surface);color:var(--a-ink);border-color:var(--a-border)}.auth-btn--secondary:hover{background:var(--a-surface-hover)}.auth-btn:focus-visible{outline:2px solid var(--a-brand);outline-offset:2px}.auth-choice__social{display:flex;flex-direction:column;gap:10px;margin:0}.auth-choice__social[hidden],.auth-choice__social .auth__divider{display:none}.auth-fineprint{margin:16px 0 0;text-align:center;font-size:.78rem;line-height:1.5;color:var(--a-ink-muted)}.auth-fineprint a{color:var(--a-ink-muted);text-decoration:underline}.auth-fineprint a:hover{color:var(--a-ink)}.auth-back{align-self:flex-start;display:inline-flex;align-items:center;gap:5px;margin-bottom:6px;padding:4px 8px 4px 4px;border:0;border-radius:7px;background:transparent;color:var(--a-ink-muted);font:inherit;font-size:.82rem;cursor:pointer;transition:color .14s ease,background-color .14s ease}.auth-back:hover{color:var(--a-ink);background:var(--a-surface)}body.auth .auth__card{background:var(--a-card);border:1px solid var(--a-border);border-radius:16px;box-shadow:var(--a-card-shadow);max-width:400px;padding:32px 30px 28px}@media(max-width:480px){body.auth .auth__card{padding:26px 20px 22px;border-radius:14px}}body.auth .auth__input{background:var(--a-surface);border:1px solid var(--a-border);border-radius:10px;min-height:46px;color:var(--a-ink)}body.auth .auth__input:focus{border-color:var(--a-brand);box-shadow:0 0 0 3px color-mix(in srgb,var(--a-brand) 22%,transparent);outline:none}body.auth .auth__label{color:var(--a-ink-muted)}body.auth .auth__submit{min-height:48px;border-radius:10px;background:var(--a-brand);border-color:var(--a-brand);color:var(--a-brand-ink);font-weight:500}body.auth .auth__submit:hover{background:var(--a-brand-hover);border-color:var(--a-brand-hover)}body.auth .auth__link{color:var(--a-brand)}body.auth .auth__divider span{color:var(--a-ink-muted)}body.auth .auth__title,body.auth .auth__lede{color:var(--a-ink)}body.auth .auth__lede{color:var(--a-ink-muted)}body.auth:has([data-auth-step=choice]:not([hidden])) .auth__legal{display:none}body.auth,body.auth .auth-btn,body.auth .auth__input,body.auth .auth__submit{font-family:var(--a-font)}body.auth .auth-welcome{letter-spacing:-.021em;font-weight:500}body.auth .auth-btn{letter-spacing:-.006em}.auth-mark.auth-mark--word{display:block;width:168px;height:40px;margin:2px auto 22px;-webkit-mask-image:url(/assets/quanify-wordmark.svg);mask-image:url(/assets/quanify-wordmark.svg)}.auth__card--centered .auth__title,.auth__card--centered .auth__lede{text-align:center}body.auth .np{width:100%;max-width:980px;text-align:center;animation:auth-rise .48s cubic-bezier(.22,.61,.36,1) both}body.auth .np__code{margin:0 0 8px;font-size:.8rem;font-weight:500;color:var(--a-brand)}body.auth .np__title{margin:0;font-size:clamp(1.5rem,3.4vw,2rem);font-weight:600;letter-spacing:-.02em;line-height:1.15;color:var(--a-ink)}body.auth .np__sub{max-width:30rem;margin:10px auto 0;font-size:.92rem;line-height:1.5;color:var(--a-ink-muted)}body.auth .np__plans{display:grid;gap:14px;margin-top:32px;text-align:left}@media(min-width:820px){body.auth .np__plans{grid-template-columns:repeat(3,minmax(0,1fr))}}body.auth .np-plan{display:flex;flex-direction:column;padding:24px 22px 22px;border:1px solid var(--a-border);border-radius:16px;background:var(--a-card);box-shadow:var(--a-card-shadow)}body.auth .np-plan--lead{border-color:var(--a-brand)}body.auth .np-plan__tag{align-self:flex-start;margin:-4px 0 12px;padding:3px 9px;border-radius:999px;font-size:.72rem;font-weight:500;color:var(--a-brand);background:color-mix(in srgb,var(--a-brand) 12%,transparent)}body.auth .np-plan h2{margin:0;font-size:1.05rem;font-weight:600;letter-spacing:-.012em;color:var(--a-ink)}body.auth .np-plan p{margin:6px 0 0;font-size:.85rem;line-height:1.5;color:var(--a-ink-muted)}body.auth .np-plan ul{display:grid;gap:9px;margin:18px 0 22px;padding:0;list-style:none}body.auth .np-plan li{display:flex;align-items:flex-start;gap:9px;font-size:.85rem;line-height:1.4;color:var(--a-ink)}body.auth .np-plan li svg{flex:0 0 16px;width:16px;height:16px;margin-top:1px;color:var(--a-brand)}body.auth .np-plan .auth__submit{margin-top:auto}body.auth .np-plan .auth__submit:disabled{opacity:.45;cursor:default}body.auth .np__msg{min-height:1.2em;margin:16px 0 0;font-size:.85rem;color:var(--a-ink-muted)}body.auth .np__msg.is-bad{color:#e5484d}body.auth .np__foot{margin:18px 0 0;font-size:.8rem;color:var(--a-ink-muted)}body.auth .np__foot a,body.auth .np__link{appearance:none;border:0;background:none;padding:0;font:inherit;color:var(--a-ink);text-decoration:underline;cursor:pointer}body.auth .np__foot [hidden]{display:none}body.auth .auth__input--code{font-size:1.35rem;font-weight:600;letter-spacing:.32em;text-align:center;font-variant-numeric:tabular-nums}body.auth .auth__input--code::placeholder{letter-spacing:.32em;font-weight:400}body.auth .auth__code-actions{margin-top:10px;text-align:center}body.auth .auth__linkbtn{appearance:none;border:0;background:none;padding:0;font:inherit;font-size:12px;color:var(--a-brand);cursor:pointer}body.auth .auth__linkbtn:hover{text-decoration:underline}body.auth .auth__linkbtn:disabled{opacity:.5;cursor:default}body.auth .auth__forgot{margin:12px 0 0;text-align:center;font-size:12px}body.auth .auth__forgot .auth__link{color:var(--a-ink-muted)}body.auth .auth__forgot .auth__link:hover{color:var(--a-brand)}body.auth .auth__submit--link{display:block;box-sizing:border-box;text-align:center;text-decoration:none}body.auth [data-forgot-step][hidden]{display:none}body.auth .auth-agree{margin:4px 0 16px;padding:0;border:0;min-inline-size:0;display:flex;flex-direction:column;gap:8px}body.auth .auth-agree[hidden]{display:none}body.auth .auth-agree__legend{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}body.auth .auth-agree__row{position:relative;display:flex;align-items:flex-start;gap:11px;padding:11px 12px;border:1px solid var(--a-border);border-radius:10px;background:var(--a-surface);font-size:.84rem;line-height:1.45;color:var(--a-ink);text-align:left;cursor:pointer;transition:border-color .14s ease,background-color .14s ease}body.auth .auth-agree__row:hover{background:var(--a-surface-hover)}body.auth .auth-agree__row:has(.auth-agree__input:checked){border-color:color-mix(in srgb,var(--a-brand) 55%,var(--a-border))}body.auth .auth-agree__input{position:absolute;top:12px;left:12px;width:18px;height:18px;margin:0;opacity:0}body.auth .auth-agree__box{flex:0 0 18px;width:18px;height:18px;margin-top:1px;display:grid;place-items:center;border:1.5px solid color-mix(in srgb,var(--a-ink) 35%,transparent);border-radius:5px;background:var(--a-card);color:var(--a-brand-ink);transition:background-color .14s ease,border-color .14s ease}body.auth .auth-agree__box svg{width:13px;height:13px;opacity:0;transform:scale(.6);transition:opacity .14s ease,transform .16s cubic-bezier(.22,.61,.36,1)}body.auth .auth-agree__input:checked+.auth-agree__box{background:var(--a-brand);border-color:var(--a-brand)}body.auth .auth-agree__input:checked+.auth-agree__box svg{opacity:1;transform:none}body.auth .auth-agree__input:focus-visible+.auth-agree__box{box-shadow:0 0 0 3px color-mix(in srgb,var(--a-brand) 35%,transparent);border-color:var(--a-brand)}body.auth .auth-agree__text a{color:var(--a-brand);text-decoration:underline;text-underline-offset:2px}body.auth .auth-done{text-align:center}body.auth .auth-done__state[hidden]{display:none}body.auth .auth-done .auth__title{outline:none}body.auth .auth-done .auth__lede strong{color:var(--a-ink);font-weight:600}body.auth .auth-done .auth__submit{margin-top:20px}body.auth .auth-done__note{margin:14px 0 0;font-size:.82rem;line-height:1.5;color:var(--a-ink-muted)}body.auth .auth-done__hint{margin:10px 0 0;font-size:.78rem;color:var(--a-ink-muted)}body.auth .auth-done__ring{display:block;width:44px;height:44px;margin:0 auto 18px;border-radius:50%;border:3px solid color-mix(in srgb,var(--a-brand) 18%,transparent);border-top-color:var(--a-brand);animation:auth-done-spin .9s linear infinite}@keyframes auth-done-spin{to{transform:rotate(360deg)}}body.auth .auth-done__check{display:block;width:56px;height:56px;margin:0 auto 18px;fill:none;stroke:var(--a-brand);stroke-width:3;stroke-linecap:round;stroke-linejoin:round}body.auth .auth-done__check circle{stroke-dasharray:151;stroke-dashoffset:151;animation:auth-done-draw .52s cubic-bezier(.22,.61,.36,1) forwards}body.auth .auth-done__check path{stroke-dasharray:36;stroke-dashoffset:36;animation:auth-done-draw .32s cubic-bezier(.22,.61,.36,1) .42s forwards}@keyframes auth-done-draw{to{stroke-dashoffset:0}}@media(prefers-reduced-motion:reduce){body.auth .auth-done__ring{animation-duration:2.4s}body.auth .auth-done__check circle,body.auth .auth-done__check path{animation:none;stroke-dashoffset:0}body.auth .auth-agree__box svg{transition:none}}
