
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  --bg:#FFFFFF;--surface:#FFFFFF;--elevated:#F1F2EC;
  --border:rgba(15,18,15,0.10);
  --accent:#B6F09C;--accent-strong:#2E7D32;--accent-ink:#12240D;
  --amber:#F0B93D;
  --text:#14161C;--text-2:#585C66;--text-3:#9297A0;
  --mark-bg:#12151C;
  --error:#DC2626;--success:#16803D;
  --sans:'Geist',-apple-system,sans-serif;--mono:'Geist Mono',ui-monospace,monospace;
  --r-sm:8px;--r-md:12px;--t-fast:.13s;--t-med:.22s;--ease:cubic-bezier(.16,1,.3,1);
}
html,body{height:100%;font-family:var(--sans);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased}
body{visibility:hidden;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;padding:24px;position:relative;overflow:hidden}

.lb{position:fixed;border-radius:50%;filter:blur(60px);opacity:.24;pointer-events:none;z-index:0;animation:lbFloat 20s ease-in-out infinite}
.lb-1{width:560px;height:560px;background:radial-gradient(circle,#B6F09C,transparent 70%);top:-180px;left:-120px}
.lb-2{width:460px;height:460px;background:radial-gradient(circle,#F0B93D,transparent 70%);bottom:-140px;right:-100px;animation-delay:-7s}
.lb-3{width:300px;height:300px;background:radial-gradient(circle,#6C7BFF,transparent 70%);top:50%;left:50%;transform:translate(-50%,-50%);animation-delay:-13s}
@keyframes lbFloat{0%,100%{transform:translate(0,0) scale(1)}33%{transform:translate(30px,-40px) scale(1.06)}66%{transform:translate(-25px,25px) scale(.95)}}
.lb-3{animation:lbFloat3 20s ease-in-out infinite}
@keyframes lbFloat3{0%,100%{transform:translate(-50%,-50%) scale(1)}50%{transform:translate(calc(-50% + 35px),calc(-50% + 25px)) scale(1.08)}}

@keyframes cardIn{from{opacity:0;transform:translateY(24px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}
.auth-card{animation:cardIn .6s .08s var(--ease) both}

.back-link{position:fixed;top:22px;left:26px;display:flex;align-items:center;gap:6px;font-size:13px;color:var(--text-2);text-decoration:none;transition:color var(--t-fast);z-index:10}
.back-link:hover{color:var(--text)}

.auth-card{position:relative;z-index:1;width:100%;max-width:392px}
.auth-logo{display:flex;align-items:center;justify-content:center;margin-bottom:26px;text-decoration:none;color:var(--text)}
:root{--logo-l:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='2.5 129 383.5 86'%3E%3Cpath fill='%2310142A' d='M2.50 200L18.30 200L23.50 185L50.70 185L55.90 200L71.70 200L46.10 129L28.10 129ZM27.80 172.30L37.10 145L46.40 172.30ZM109.60 164.20L124.80 163.60C123 152.50 114 145.70 100.60 145.70C85.50 145.70 76.60 152 76.60 162.60C76.60 172.40 84.80 176 99.40 178.80C104.50 179.90 109.60 180.70 109.70 185.20C109.70 189 105.10 190.60 101.30 190.60C95.20 190.60 91.50 187.50 90.60 182.40L75.40 183.20C76.20 194.50 86.10 201.20 101.60 201.20C115.20 201.20 125.20 196.10 125.20 185.50C125.20 175.50 117.50 171.40 101.90 168.90C96.90 168.10 92.40 166.40 92.20 162.50C92 158.70 95.50 156.30 100 156.30C104.60 156.30 108.80 159.30 109.60 164.20ZM134.50 129L134.50 185.20C134.50 194.70 140.50 200 149.30 200L157.50 200L157.50 188.70L153.70 188.70C151.10 188.70 149.70 187.20 149.70 184.60L149.70 129ZM191.50 129L167 129L167 200L192.10 200C214.80 200 227.40 187.30 227.40 164.60C227.40 141.80 214.50 129 191.50 129ZM182.30 187.10L182.30 141.90L191.50 141.90C205.30 141.90 211.90 149.20 211.90 164.60C211.90 179.80 205.30 187.10 191.50 187.10ZM235.20 147L235.20 200L250.40 200L250.40 170.50C250.40 162.30 253.80 158.30 262.50 158.30L267.50 158.30L267.50 147L262.70 147C256 147 252 150.50 249.90 157.60L249.60 147ZM332.80 215L348.00 215L348.00 192.60C351.10 198.20 356.50 201.20 363.40 201.20C378.40 201.20 386.00 189.10 386.00 173.50C386.00 157.90 378.40 145.80 363.40 145.80C356.00 145.80 350.50 149 347.60 154.80L347.30 147L332.80 147ZM347.00 173.50C347.00 164.90 350.70 157.30 358.70 157.30C366.60 157.30 370.50 164.90 370.50 173.50C370.50 182.20 366.80 189.70 358.70 189.70C350.70 189.70 347.00 182.20 347.00 173.50Z'/%3E%3Cpath fill='%2365A30D' fill-rule='evenodd' d='M297.3 131.84L318.08 156.45A27.2 27.2 0 1 1 276.52 156.45ZM285.6 174A11.7 11.7 0 1 0 309 174A11.7 11.7 0 1 0 285.6 174Z'/%3E%3Cpath fill='none' stroke='%2310142A' stroke-width='2.81' stroke-linecap='round' stroke-linejoin='round' d='M297.3 166.98V174H302.21'/%3E%3C/svg%3E")}.auth-logo .mark{width:143px;height:32px;flex:none;background:var(--logo-l) center/contain no-repeat}

.tabs{display:flex;background:var(--elevated);border:1px solid var(--border);border-radius:var(--r-sm);padding:3px;gap:2px;margin-bottom:26px}
.tab{flex:1;text-align:center;padding:8px;border-radius:6px;font-size:13px;font-weight:600;cursor:pointer;color:var(--text-2);transition:all var(--t-med);user-select:none}
.tab.active{background:var(--surface);color:var(--text);box-shadow:0 1px 3px rgba(20,22,28,.12)}

.form-box{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);padding:28px;box-shadow:0 16px 40px rgba(20,22,28,.09)}
.form-title{font-size:18px;font-weight:700;letter-spacing:-.01em;margin-bottom:4px}
.form-sub{font-size:13px;color:var(--text-2);margin-bottom:22px}
.field{margin-bottom:15px}
.field label{display:block;font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text-2);margin-bottom:6px}
.field input{width:100%;background:var(--elevated);border:1px solid var(--border);color:var(--text);font-family:var(--sans);font-size:14px;padding:10px 12px;border-radius:var(--r-sm);outline:none;transition:border-color var(--t-fast),box-shadow var(--t-fast)}
.field input:focus{border-color:rgba(46,125,50,.5);box-shadow:0 0 0 4px rgba(182,240,156,.25)}
.field input::placeholder{color:var(--text-3)}
.field-opt{font-weight:500;letter-spacing:0;text-transform:none;color:var(--text-3)}
.field input.ref-input{font-family:var(--mono);font-size:13px;padding:8px 12px;letter-spacing:.04em;text-transform:uppercase}
.field input.ref-input::placeholder{font-family:var(--sans);letter-spacing:0;text-transform:none}
.field-note{font-size:12px;color:var(--text-2);margin-top:6px}
.field-note.field-err{color:var(--error)}
.field input.ref-input.bad{border-color:var(--error)}
.forgot{display:block;text-align:right;font-size:12px;color:var(--text-2);text-decoration:none;margin-top:6px;transition:color var(--t-fast)}
.forgot:hover{color:var(--text)}
.submit-btn{width:100%;display:flex;align-items:center;justify-content:center;gap:8px;margin-top:18px;padding:11px;background:var(--accent);color:var(--accent-ink);border:none;border-radius:var(--r-sm);font-size:14px;font-weight:700;font-family:var(--sans);cursor:pointer;transition:all var(--t-fast)}
.submit-btn:hover{background:#A5E888;transform:translateY(-1px)}
.submit-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}
.switch-link{text-align:center;font-size:13px;color:var(--text-2);margin-top:20px}
.switch-link a{color:var(--accent-strong);text-decoration:none;font-weight:600}
.switch-link a:hover{text-decoration:underline}

.msg{padding:10px 14px;border-radius:7px;font-size:13px;margin-bottom:16px;display:none}
.msg.err{background:rgba(220,38,38,.07);border:1px solid rgba(220,38,38,.2);color:var(--error)}
.msg.ok{background:rgba(22,128,61,.07);border:1px solid rgba(22,128,61,.2);color:var(--success)}
.msg.show{display:block}

.spin{display:inline-block;width:14px;height:14px;border:2px solid rgba(18,36,13,.3);border-top-color:var(--accent-ink);border-radius:50%;animation:spin .7s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}

#reset-form{display:none}
.terms{font-size:11px;color:var(--text-3);text-align:center;margin-top:16px;line-height:1.5}
.terms a{color:var(--text-2);text-decoration:none}
.terms a:hover{color:var(--text)}

#check-email{display:none;text-align:center}
.check-ico{width:52px;height:52px;border-radius:50%;background:rgba(182,240,156,.18);border:1px solid rgba(46,125,50,.3);display:flex;align-items:center;justify-content:center;margin:0 auto 18px}
.check-title{font-size:18px;font-weight:700;margin-bottom:8px}
.check-sub{font-size:13.5px;color:var(--text-2);line-height:1.6}
.check-btn{display:inline-flex;align-items:center;gap:6px;margin-top:20px;padding:8px 18px;background:transparent;border:1px solid var(--border);border-radius:7px;font-size:13px;font-weight:600;color:var(--text-2);cursor:pointer;font-family:var(--sans);transition:all var(--t-fast)}
.check-btn:hover{border-color:var(--text-3);color:var(--text);background:rgba(0,0,0,.03)}


.oauth-btn{width:100%;display:flex;align-items:center;justify-content:center;gap:10px;padding:10px;background:var(--surface);color:var(--text);border:1px solid rgba(15,18,15,.18);border-radius:var(--r-sm);font-size:14px;font-weight:600;font-family:var(--sans);cursor:pointer;transition:all var(--t-fast)}
.oauth-btn:hover{background:var(--elevated)}
.oauth-btn:disabled{opacity:.5;cursor:not-allowed}
.or{display:flex;align-items:center;gap:10px;margin:18px 0 16px;font-size:12px;color:var(--text-3)}
.or::before,.or::after{content:'';flex:1;height:1px;background:var(--border)}
.captcha{margin-top:16px}
.captcha-note{font-size:12px;color:var(--error);margin-top:6px}
.captcha-retry{background:none;border:none;padding:0;margin-left:4px;font:inherit;font-weight:600;color:var(--accent-strong);cursor:pointer;text-decoration:underline}
