:root{--bg:#f7f6f3;--panel:#fff;--line:#d4ddd6;--text:#2a2a2a;--muted:#5f6b65;--brand:#2e7d6b;--brand-2:#245f52;--cta:#1f3a5f;--cta-2:#162c49;--danger:#b91c1c;--danger-bg:#fef2f2;--danger-line:#fecaca;--ok-bg:#effaf6;--ok-line:#b7e4d2;--ok-text:#1f7a58}[data-theme=dark]{--bg:#0b1220;--panel:#0f172a;--line:#334155;--text:#e5eefb;--muted:#9eb0c8;--brand:#6fd0b8;--brand-2:#4fb29a;--cta:#2c4f7f;--cta-2:#244066;--danger:#fecaca;--danger-bg:#3a1c23;--danger-line:#7f3345;--ok-bg:#123327;--ok-line:#2f7059;--ok-text:#8ce1be}.login-page{min-height:100vh;font-family:Manrope,sans-serif;color:var(--text);display:grid;place-items:center;padding:1rem;background:radial-gradient(1200px 620px at -10% -20%,rgba(46,125,107,.16),transparent 55%),radial-gradient(800px 500px at 110% 120%,rgba(31,58,95,.17),transparent 55%),var(--bg)}.login-card{width:min(440px,100%);background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:clamp(1.2rem,3vw,2rem);box-shadow:0 20px 55px rgba(0,0,0,.14)}.login-card .logo{font-family:Cormorant Garamond,serif;font-size:2rem;line-height:1;font-weight:700;letter-spacing:.02em;color:var(--brand);margin-bottom:.8rem}.login-card .logo span{color:var(--cta)}.login-card .title{font-family:Cormorant Garamond,serif;font-size:clamp(1.9rem,6vw,2.4rem);line-height:1.1;margin-bottom:.35rem}.login-card .title em{color:var(--brand);font-style:italic}.login-card .subtitle{color:var(--muted);font-size:.92rem;line-height:1.55;margin-bottom:1.2rem}.login-card .msg{border-radius:10px;background:var(--ok-bg);border:1px solid var(--ok-line);color:var(--ok-text)}.login-card .form-errors,.login-card .msg{padding:.72rem .82rem;font-size:.82rem;margin-bottom:.85rem}.login-card .form-errors{border-radius:10px;background:var(--danger-bg);border:1px solid var(--danger-line);color:var(--danger)}.login-card .auth-form{display:grid;gap:.9rem}.login-card .field-group label{display:block;margin-bottom:.35rem;font-size:.66rem;letter-spacing:.13em;text-transform:uppercase;color:var(--muted);font-weight:800}.login-card .field-group input{width:100%;border:1px solid var(--line);border-radius:10px;padding:.8rem .88rem;font-size:.95rem;font-family:inherit;color:var(--text);background:transparent;outline:none;transition:border-color .2s,box-shadow .2s}.login-card .field-group input:focus{border-color:var(--brand);box-shadow:0 0 0 3px rgba(46,125,107,.14)}.login-card .field-group input:-webkit-autofill,.login-card .field-group input:-webkit-autofill:active,.login-card .field-group input:-webkit-autofill:hover{-webkit-text-fill-color:var(--text);caret-color:var(--text);box-shadow:0 0 0 1000px var(--panel) inset;-webkit-transition:background-color 600000s 0s,color 600000s 0s;transition:background-color 600000s 0s,color 600000s 0s}.login-card .field-group input:-webkit-autofill:focus{-webkit-text-fill-color:var(--text);caret-color:var(--text);box-shadow:0 0 0 3px rgba(46,125,107,.14),0 0 0 1000px var(--panel) inset;-webkit-transition:background-color 600000s 0s,color 600000s 0s;transition:background-color 600000s 0s,color 600000s 0s}.login-card .field-group input:-webkit-autofill{-webkit-text-fill-color:var(--text);box-shadow:0 0 0 1000px var(--panel) inset}.login-card .field-group input:autofill{-webkit-text-fill-color:var(--text);box-shadow:0 0 0 1000px var(--panel) inset}.login-card .password-toggle-wrap{position:relative}.login-card .password-toggle-wrap input{padding-right:2.8rem}.login-card .password-toggle-btn{display:inline-flex;align-items:center;justify-content:center;border:0;background:transparent;color:var(--muted);cursor:pointer;padding:.2rem;position:absolute;right:.75rem;top:50%;transform:translateY(-50%)}.login-card .password-toggle-btn:hover{color:var(--brand)}.login-card .password-toggle-btn svg{width:1.15rem;height:1.15rem;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.login-card .submit-btn{width:100%;border:1px solid var(--cta);background:var(--cta);color:#fff;border-radius:10px;padding:.86rem 1rem;cursor:pointer;font-size:.77rem;letter-spacing:.11em;text-transform:uppercase;font-weight:800;transition:background .18s,border-color .18s;margin-top:.25rem}.login-card .submit-btn:hover{background:var(--cta-2);border-color:var(--cta-2)}.login-card .submit-btn:disabled{opacity:.6;cursor:wait}.login-card .links{margin-top:1rem;display:grid;gap:.52rem}.login-card .links a{font-size:.83rem;color:var(--brand);font-weight:700;display:inline-flex;align-items:center;gap:.38rem;text-decoration:none}.login-card .links a:before{content:"→";opacity:.72}.login-card .links a:hover{color:var(--brand-2)}.login-card .back-link{margin-top:1rem;font-size:.7rem;letter-spacing:.11em;text-transform:uppercase;font-weight:700;color:var(--muted);display:inline-flex;align-items:center;gap:.4rem;text-decoration:none}.login-card .back-link:before{content:"←";font-size:.8rem}.login-card .google-btn{width:100%;display:flex;align-items:center;justify-content:center;gap:.6rem;border:1px solid var(--line);border-radius:10px;padding:.75rem 1rem;font-size:.88rem;font-weight:600;color:var(--text);background:transparent;cursor:pointer;transition:border-color .2s,background .2s;text-decoration:none;margin-bottom:.5rem}.login-card .google-btn:hover{border-color:var(--brand);background:var(--ok-bg)}.login-card .google-btn img{width:18px;height:18px}.login-card .divider{display:flex;align-items:center;gap:.8rem;margin:.6rem 0;font-size:.7rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.login-card .divider:after,.login-card .divider:before{content:"";flex:1;height:1px;background:var(--line)}.login-card .mfa-info{text-align:center;font-size:.88rem;color:var(--muted);margin-bottom:.8rem}.login-card .mfa-info strong{color:var(--text)}