.auth-shell{--auth-bg:#f6f8f3;--auth-surface:#ffffff;--auth-input:#f9fbf7;--auth-border:#ccd6c5;--auth-text:#1c2920;--auth-muted:#58665b;--auth-accent:#91c747;--auth-accent-hover:#a5d85b;--auth-contour:rgb(48 87 40/.09);--bg:246 248 243;--surface:255 255 255;--border:204 214 197;--text:28 41 32;--text-muted:88 102 91;--m2p-accent:var(--auth-accent);--m2p-accent-soft:color-mix(in srgb,var(--auth-accent) 13%,var(--auth-surface));--m2p-fast:160ms;--m2p-ease:ease;position:relative;isolation:isolate;display:flex;min-height:100dvh;flex-direction:column;overflow:clip;background:var(--auth-bg);color:var(--auth-text)}.dark .auth-shell{--auth-bg:#121a16;--auth-surface:#18221c;--auth-input:#1b2720;--auth-border:#35443a;--auth-text:#f1f5ee;--auth-muted:#a9b7aa;--auth-accent:#a9db65;--auth-accent-hover:#b9e577;--auth-contour:rgb(188 214 174/.065);--bg:18 26 22;--surface:24 34 28;--border:53 68 58;--text:241 245 238;--text-muted:169 183 170}.auth-shell:after,.auth-shell:before{content:"";position:absolute;z-index:-1;width:min(58vw,900px);height:min(85vh,820px);pointer-events:none;background:repeating-radial-gradient(ellipse at 30% 45%,transparent 0 20px,var(--auth-contour) 21px 22px,transparent 23px 35px);-webkit-mask-image:radial-gradient(ellipse,#000 15%,transparent 75%);mask-image:radial-gradient(ellipse,#000 15%,transparent 75%)}.auth-shell:before{top:-28%;left:-27%;transform:rotate(-23deg)}.auth-shell:after{right:-31%;bottom:-42%;transform:rotate(21deg)}.auth-header{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:88px;padding:20px clamp(24px,4vw,64px)}.auth-brand{display:inline-flex;align-items:center;gap:12px;font-size:18px;font-weight:750;letter-spacing:-.035em}.auth-brand-mark{display:block;width:31px;height:31px;flex:none;-o-object-fit:contain;object-fit:contain}.auth-header-link{display:inline-flex;align-items:center;gap:10px;min-height:44px;color:var(--auth-muted);font-size:13px;font-weight:600;transition:color .18s ease,transform .18s ease}.auth-header-link:hover{color:var(--auth-accent);transform:translateX(2px)}.auth-main{position:relative;z-index:1;display:grid;flex:1;place-items:center;padding:28px 20px 76px}.auth-card{width:min(100%,440px);min-width:0;padding:clamp(26px,3vw,40px);border:1px solid var(--auth-border);border-radius:18px;background:var(--auth-surface);box-shadow:0 20px 70px rgb(0 0 0/.035);animation:auth-card-enter .26s ease-out both}.dark .auth-card{box-shadow:0 20px 70px rgb(0 0 0/.12)}.auth-card--status{text-align:center}.auth-title{color:var(--auth-text);font-size:clamp(25px,3vw,31px);font-weight:720;line-height:1.16;letter-spacing:-.04em}.auth-description{margin-top:10px;color:var(--auth-muted);font-size:13px;line-height:1.55}.auth-form{display:grid;gap:18px;margin-top:28px}.auth-field>div:first-child>label,.auth-field>span:first-child{color:var(--auth-text);font-size:13px;font-weight:600}.auth-field .m2p-input{width:100%;min-height:46px;border:1px solid var(--auth-border);border-radius:9px;background:var(--auth-input);padding:10px 13px;color:var(--auth-text);font-size:14px;transition:border-color .16s ease,box-shadow .16s ease,background-color .16s ease}.auth-field .m2p-input::-moz-placeholder{color:var(--auth-muted);opacity:.7}.auth-field .m2p-input::placeholder{color:var(--auth-muted);opacity:.7}.auth-field .m2p-input:hover{border-color:color-mix(in srgb,var(--auth-accent) 55%,var(--auth-border))}.auth-field .m2p-input:focus-visible{border-color:var(--auth-accent);outline:0;box-shadow:0 0 0 3px color-mix(in srgb,var(--auth-accent) 25%,transparent)}.auth-field>span:last-child{overflow:visible;white-space:normal;font-family:inherit;font-size:11px;line-height:1.4}.auth-field-action{color:var(--auth-muted);font-size:11px;text-decoration:underline;text-underline-offset:3px;white-space:nowrap}.auth-field-action:hover{color:var(--auth-accent)}.auth-shell .password-input-reveal{display:grid;place-items:center;width:40px;min-width:40px;height:40px;min-height:40px;border-radius:7px;color:var(--auth-muted)}.auth-shell .password-input-reveal:hover{color:var(--auth-text)}.auth-shell .auth-action{display:inline-flex;align-items:center;justify-content:center;gap:10px;width:100%;min-height:46px;border-radius:9px;padding:10px 14px;font-size:13px;font-weight:700;line-height:1.3;text-align:center;transition:border-color .18s ease,background-color .18s ease,color .18s ease,transform .18s ease}.auth-shell .auth-action:not(:disabled):hover{transform:translateY(-1px)}.auth-shell .auth-action:disabled{cursor:not-allowed;opacity:.58}.auth-shell .auth-action--primary{border-color:var(--auth-accent);background:var(--auth-accent);color:#17220e}.auth-shell .auth-action--primary:not(:disabled):hover{border-color:var(--auth-accent-hover);background:var(--auth-accent-hover);color:#17220e}.auth-shell .auth-action--secondary{border-color:var(--auth-border);background:transparent;color:var(--auth-text)}.auth-shell .auth-action--secondary:not(:disabled):hover{border-color:var(--auth-accent);background:color-mix(in srgb,var(--auth-accent) 7%,var(--auth-surface))}.auth-alternative{display:grid;gap:18px;margin-top:2px}.auth-divider{display:flex;align-items:center;gap:14px;color:var(--auth-muted);font-size:11px}.auth-divider:after,.auth-divider:before{content:"";flex:1;height:1px;background:var(--auth-border)}.auth-google-mark{display:grid;place-items:center;width:20px;height:20px;flex:none;border-radius:50%;background:#fff;color:#181818;font-size:14px;font-weight:750}.auth-footer{margin-top:28px;color:var(--auth-muted);font-size:12px;line-height:1.5;text-align:center}.auth-footer a,.auth-text-link{color:var(--auth-accent);font-weight:700;text-decoration:underline;text-underline-offset:3px}.auth-footer a:hover,.auth-text-link:hover{color:var(--auth-accent-hover)}.auth-back-link{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;margin-top:18px;color:var(--auth-muted);font-size:12px}.auth-back-link:hover{color:var(--auth-accent)}.auth-status-icon{display:grid;place-items:center;width:50px;height:50px;margin:0 auto 22px;border:1px solid color-mix(in srgb,var(--auth-accent) 65%,var(--auth-border));border-radius:14px;color:var(--auth-accent)}.auth-status-icon svg{width:25px;height:25px;stroke-width:1.8}.auth-spin{animation:auth-spin 1s linear infinite}.auth-status-action{margin-top:26px}.auth-shell .m2p-inline-alert{margin:0;padding:10px 12px;border-radius:9px;font-size:12px;line-height:1.45;text-align:left}.auth-feedback-group{display:grid;gap:8px}.auth-notice{color:var(--auth-muted);font-size:12px;line-height:1.45}.auth-shell :is(a,button):focus-visible{outline:2px solid var(--auth-accent);outline-offset:3px;box-shadow:none}.auth-skeleton{height:14px;border-radius:6px;background:color-mix(in srgb,var(--auth-muted) 13%,var(--auth-surface))}.auth-skeleton+.auth-skeleton{margin-top:18px}.auth-skeleton--title{width:58%;height:28px}.auth-skeleton--copy{width:86%;height:12px}.auth-card--loading .auth-skeleton--field{width:100%;height:46px;margin-top:26px}.auth-card--loading .auth-skeleton--button{width:100%;height:46px;margin-top:26px;background:color-mix(in srgb,var(--auth-accent) 45%,var(--auth-surface))}@keyframes auth-card-enter{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes auth-spin{to{transform:rotate(1turn)}}@media (max-width:639px){.auth-header{min-height:72px;padding:16px 24px}.auth-brand{font-size:17px}.auth-brand-mark{width:29px;height:29px}.auth-header-link{display:none}.auth-main{place-items:start center;padding:max(42px,5dvh) 24px 32px}.auth-card{width:min(100%,430px);padding:0;border:0;border-radius:0;background:transparent}.auth-card,.dark .auth-card{box-shadow:none}.auth-title{font-size:28px}}@media (max-width:359px){.auth-header,.auth-main{padding-inline:18px}}@media (max-height:560px) and (min-width:640px){.auth-main{place-items:start center;padding-block:12px 24px}.auth-card{padding:22px 30px}}@media (prefers-reduced-motion:reduce){.auth-card,.auth-spin{animation:none}.auth-field .m2p-input,.auth-header-link,.auth-shell .auth-action{transition:none}.auth-header-link:hover,.auth-shell .auth-action:not(:disabled):hover{transform:none}}