*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  --bg:#0A0C0F;--bg2:#0F1218;--bg3:#141820;--bg4:#1A2030;
  --border:rgba(255,255,255,0.07);--border-b:rgba(255,255,255,0.13);
  --text:#E8EAF0;--text2:#9CA3AF;--text3:#6B7280;
  --accent:#00D4AA;--ac-d:rgba(0,212,170,0.12);--ac-b:rgba(0,212,170,0.25);
  --blue:#38BDF8;--bl-d:rgba(56,189,248,0.12);--bl-b:rgba(56,189,248,0.25);
  --red:#F87171;--rd-d:rgba(248,113,113,0.12);--rd-b:rgba(248,113,113,0.28);
  --yellow:#FBBF24;--yw-d:rgba(251,191,36,0.10);--yw-b:rgba(251,191,36,0.25);
  --green:#4ADE80;
  --mono:'JetBrains Mono',monospace;--sans:'Geologica',sans-serif;
}
html,body{height:100%}
body{font-family:var(--sans);font-size:14px;background:var(--bg);color:var(--text);display:flex;min-height:100vh}
/* Левая панель — брендинг */
.auth-aside{width:46%;max-width:560px;background:linear-gradient(160deg,var(--bg2),var(--bg));border-right:1px solid var(--border);display:flex;flex-direction:column;padding:40px 48px;position:relative;overflow:hidden}
.auth-aside::before{content:'';position:absolute;top:-30%;right:-20%;width:480px;height:480px;background:radial-gradient(circle,var(--ac-d),transparent 70%);pointer-events:none}
.auth-aside-logo{display:flex;align-items:center;gap:10px;text-decoration:none;position:relative;z-index:1}
.auth-logo-mark{width:32px;height:32px;background:var(--accent);border-radius:8px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.auth-logo-mark svg{width:17px;height:17px}
.auth-logo-text{font-family:var(--mono);font-size:17px;font-weight:700}
.auth-aside-body{margin-top:auto;margin-bottom:auto;position:relative;z-index:1}
.auth-tagline{font-size:28px;font-weight:700;letter-spacing:-.02em;line-height:1.25;margin-bottom:16px}
.auth-tagline .g{color:var(--accent)}
.auth-desc{font-size:14px;color:var(--text2);line-height:1.7;max-width:380px}
.auth-features{margin-top:28px;display:flex;flex-direction:column;gap:14px}
.auth-feat{display:flex;align-items:center;gap:12px}
.auth-feat-ico{width:30px;height:30px;border-radius:8px;background:var(--ac-d);border:1px solid var(--ac-b);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.auth-feat-text{font-size:13px;color:var(--text2)}
.auth-aside-foot{position:relative;z-index:1;font-family:var(--mono);font-size:11px;color:var(--text3)}
/* Правая панель — форма */
.auth-main{flex:1;display:flex;align-items:center;justify-content:center;padding:40px 24px}
.auth-card{width:100%;max-width:380px}
.auth-mobile-logo{display:none;align-items:center;gap:9px;justify-content:center;margin-bottom:28px;text-decoration:none}
.auth-head{margin-bottom:26px}
.auth-title{font-size:23px;font-weight:700;letter-spacing:-.02em;margin-bottom:6px}
.auth-sub{font-size:13px;color:var(--text3);line-height:1.6}
.auth-sub a{color:var(--accent);text-decoration:none}
.auth-sub a:hover{text-decoration:underline}
/* form */
.fg{margin-bottom:16px}
.fl{display:flex;align-items:center;justify-content:space-between;font-size:12px;font-weight:500;color:var(--text2);margin-bottom:6px}
.fl a{font-size:11px;color:var(--accent);text-decoration:none;font-weight:400}
.fl a:hover{text-decoration:underline}
.fi{width:100%;background:var(--bg3);border:1px solid var(--border-b);border-radius:8px;padding:10px 13px;font-family:var(--sans);font-size:14px;color:var(--text);transition:border-color .2s,box-shadow .2s;outline:none}
.fi:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--ac-d)}
.fi::placeholder{color:var(--text3)}
.fi-wrap{position:relative}
.fi-icon{position:absolute;right:12px;top:50%;transform:translateY(-50%);color:var(--text3);cursor:pointer;display:flex;background:none;border:none;padding:0}
.fi-icon:hover{color:var(--text2)}
.fh{font-size:11px;color:var(--text3);margin-top:6px;line-height:1.5}
.fi.has-error{border-color:var(--rd-b);box-shadow:0 0 0 3px var(--rd-d)}
.fe{font-size:11px;color:var(--red);margin-top:6px;line-height:1.5}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;width:100%;padding:11px 16px;border-radius:8px;font-size:14px;font-weight:600;font-family:var(--sans);cursor:pointer;border:none;text-decoration:none;transition:opacity .15s,transform .1s}
.btn:hover{opacity:.9;transform:translateY(-1px)}
.btn-pr{background:var(--accent);color:#000}
.btn-gh{background:var(--bg3);color:var(--text);border:1px solid var(--border-b);font-weight:500}
.btn-sm{padding:8px 12px;font-size:13px}
/* checkbox */
.cbx{display:flex;align-items:center;gap:8px;cursor:pointer;user-select:none}
.cbx input{width:16px;height:16px;accent-color:var(--accent);cursor:pointer}
.cbx-lbl{font-size:13px;color:var(--text2)}
.cbx-lbl a{color:var(--accent);text-decoration:none}
.cbx-lbl a:hover{text-decoration:underline}
/* divider */
.auth-divider{display:flex;align-items:center;gap:12px;margin:20px 0}
.auth-divider::before,.auth-divider::after{content:'';flex:1;height:1px;background:var(--border)}
.auth-divider span{font-family:var(--mono);font-size:10px;color:var(--text3);text-transform:uppercase;letter-spacing:.08em}
/* social */
.social-row{display:flex;gap:10px}
.social-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;padding:10px;border-radius:8px;background:var(--bg3);border:1px solid var(--border-b);color:var(--text);font-size:13px;cursor:pointer;transition:border-color .15s;text-decoration:none}
.social-btn:hover{border-color:var(--border-b);background:var(--bg4)}
/* foot link */
.auth-foot{text-align:center;margin-top:24px;font-size:13px;color:var(--text3)}
.auth-foot a{color:var(--accent);text-decoration:none;font-weight:500}
.auth-foot a:hover{text-decoration:underline}
/* alert */
.alert{display:flex;align-items:flex-start;gap:10px;padding:11px 14px;border-radius:8px;font-size:13px;line-height:1.5;margin-bottom:20px}
.alert-ok{background:var(--ac-d);border:1px solid var(--ac-b);color:var(--accent)}
.alert-info{background:var(--bl-d);border:1px solid var(--bl-b);color:var(--blue)}
.alert-warn{background:var(--yw-d);border:1px solid var(--yw-b);color:var(--yellow)}
.alert-err{background:var(--rd-d);border:1px solid var(--rd-b);color:var(--red)}
.alert a{color:inherit;font-weight:600;word-break:break-all}
/* password strength */
.pw-strength{display:flex;gap:4px;margin-top:8px}
.pw-bar{flex:1;height:3px;border-radius:2px;background:var(--bg4);transition:background .2s}
.pw-bar.active-weak{background:var(--red)}
.pw-bar.active-med{background:var(--yellow)}
.pw-bar.active-strong{background:var(--accent)}
.pw-label{font-size:11px;margin-top:5px;font-family:var(--mono)}
/* success icon */
.success-ico{width:64px;height:64px;border-radius:50%;background:var(--ac-d);border:1px solid var(--ac-b);display:flex;align-items:center;justify-content:center;margin:0 auto 20px}
.mono{font-family:var(--mono)}.muted{color:var(--text3)}
.g{color:var(--accent)}.r{color:var(--red)}.y{color:var(--yellow)}
@media(max-width:840px){
  .auth-aside{display:none}
  .auth-mobile-logo{display:flex}
}

/* LIGHT THEME — mirrors app.css; honoured via the stored preference */
html[data-theme="light"]{
  --bg:#F4F6FA;--bg2:#FFFFFF;--bg3:#F1F4F8;--bg4:#E5E9F0;
  --border:rgba(15,23,42,0.09);--border-b:rgba(15,23,42,0.16);
  --text:#0F172A;--text2:#475569;--text3:#8A94A6;
  --accent:#00A98B;--ac-d:rgba(0,169,139,0.12);--ac-b:rgba(0,169,139,0.32);
  --blue:#0284C7;--bl-d:rgba(2,132,199,0.10);--bl-b:rgba(2,132,199,0.30);
  --red:#DC2626;--rd-d:rgba(220,38,38,0.09);--rd-b:rgba(220,38,38,0.30);
  --yellow:#C2740A;--yw-d:rgba(194,116,10,0.11);--yw-b:rgba(194,116,10,0.32);
  --green:#16A34A;
}
