:root{--ink:#1c2622;--ink-soft:#4b5750;--ink-faint:#8b968e;--paper:#f3f4ef;--paper-raised:#fff;--line:#dbded4;--accent:#2f6f5e;--accent-soft:#e4eee9;--brick:#a8493b;--brick-soft:#f4e2de;--radius-s:3px;--radius-m:6px}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--paper);color:var(--ink);-webkit-font-smoothing:antialiased;font-family:IBM Plex Sans,sans-serif;font-size:14px;line-height:1.5}.auth-shell{grid-template-columns:5fr 7fr;min-height:100dvh;display:grid}.auth-aside{color:#dde3de;background:radial-gradient(120% 80% at 0% 100%, #2f6f5e61, transparent 60%), var(--ink);flex-direction:column;justify-content:space-between;height:100dvh;padding:40px 48px;display:flex;position:sticky;top:0}.auth-brand{color:#f3f4ef;letter-spacing:.2px;font-family:Fraunces,serif;font-size:22px;font-weight:500}.auth-tagline{color:#f3f4ef;max-width:380px;margin:0;font-family:Fraunces,serif;font-size:30px;font-weight:400;line-height:1.3}.auth-aside-foot{color:var(--ink-faint);font-size:12px}.auth-main{padding:32px 20px calc(32px + env(safe-area-inset-bottom,0px));flex-direction:column;justify-content:center;align-items:center;display:flex}.auth-mobile-brand{margin-bottom:22px;font-family:Fraunces,serif;font-size:24px;font-weight:500;display:none}.auth-card{background:var(--paper-raised);border:1px solid var(--line);border-radius:var(--radius-m);flex-direction:column;gap:16px;width:100%;max-width:400px;padding:32px 30px;display:flex}.auth-card h1{margin:0;font-family:Fraunces,serif;font-size:26px;font-weight:500}.auth-sub{color:var(--ink-faint);margin:-8px 0 4px;font-size:13px}.auth-sub strong{color:var(--ink);word-break:break-all;font-weight:500}.auth-step{letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin-bottom:-6px;font-size:11px;font-weight:600}.auth-card label{color:var(--ink-soft);flex-direction:column;gap:6px;font-size:12.5px;font-weight:500;display:flex}.auth-card input{border:1px solid var(--line);border-radius:var(--radius-s);width:100%;height:42px;color:var(--ink);font:inherit;background:#fff;padding:0 12px;font-size:14px;font-weight:400}.auth-card input::placeholder{color:var(--ink-faint)}.auth-card input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.auth-hint{color:var(--ink-faint);font-size:11.5px;font-weight:400}.pw-wrap{display:block;position:relative}.pw-wrap input{padding-right:44px}.pw-toggle{border-radius:var(--radius-s);width:34px;height:34px;color:var(--ink-faint);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;display:flex;position:absolute;top:4px;right:4px}.pw-toggle:hover{color:var(--ink);background:var(--paper)}.pw-toggle svg{width:17px;height:17px}.auth-btn{border:1px solid var(--ink);background:var(--ink);color:#fff;border-radius:var(--radius-s);height:44px;font:inherit;cursor:pointer;margin-top:4px;font-size:14px;font-weight:500}.auth-btn:hover:not(:disabled){background:#2a3731}.auth-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.auth-btn:disabled{opacity:.5;cursor:not-allowed}.auth-error,.auth-success{border-radius:var(--radius-s);margin:0;padding:10px 12px;font-size:13px}.auth-error{background:var(--brick-soft);color:var(--brick)}.auth-success{background:var(--accent-soft);color:var(--accent)}.auth-row{justify-content:space-between;align-items:center;gap:12px;margin-top:-6px;display:flex}.auth-link,.auth-switch a,.auth-resend button{color:var(--accent);font-weight:500;text-decoration:none}.auth-link{font-size:12.5px}.auth-link:hover,.auth-switch a:hover,.auth-resend button:hover:not(:disabled){text-decoration:underline}.auth-switch{text-align:center;color:var(--ink-faint);margin:0;font-size:13px}.code-input{justify-content:space-between;gap:8px;display:flex}.code-input input{aspect-ratio:1/1.15;text-align:center;min-width:0;height:auto;caret-color:var(--accent);padding:0;font-family:IBM Plex Mono,monospace;font-size:22px;font-weight:500}.code-input.invalid input{border-color:var(--brick)}.auth-resend{text-align:center;color:var(--ink-faint);margin:0;font-size:13px}.auth-resend button{font:inherit;cursor:pointer;background:0 0;border:0;padding:0;font-weight:500}.auth-resend button:disabled{color:var(--ink-faint);cursor:default}.auth-status{min-height:1.3em;margin:0;font-size:13px}.auth-status.error{color:var(--brick)}.auth-status.ok{color:var(--accent)}@media (max-width:900px){.auth-shell{grid-template-columns:1fr}.auth-aside{display:none}.auth-mobile-brand{display:block}}@media (max-width:480px){.auth-main{justify-content:flex-start;padding-top:40px}.auth-card{padding:24px 18px}.auth-card input{font-size:16px}.code-input{gap:6px}.code-input input{font-size:20px}}.social-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.social-btn{border:1px solid var(--line);border-radius:var(--radius-s);height:42px;color:var(--ink);font:inherit;background:#fff;justify-content:center;align-items:center;gap:9px;font-size:13px;font-weight:500;text-decoration:none;display:flex}.social-btn svg{flex-shrink:0;width:18px;height:18px}.social-btn:hover{background:var(--paper);border-color:var(--ink-faint)}.social-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.auth-divider{color:var(--ink-faint);align-items:center;gap:12px;font-size:12px;display:flex}.auth-divider:before,.auth-divider:after{content:"";background:var(--line);flex:1;height:1px}
