*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--font:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--bg:#fff;--text:#0f172a;--text3:#94a3b8;--border:#e2e8f0;--primary:#10a37f;--primary-dark:#0d8a6b;--primary-glow:#10a37f26;--danger:#ef4444;--danger-m:#ef444414;--radius-xs:10px}body{font-family:var(--font);color:var(--text);background:#f8fafc}.login-bg{background:linear-gradient(135deg,#f0fdf9 0%,#f7f7f8 50%,#eff6ff 100%);justify-content:center;align-items:center;min-height:100vh;display:flex}.login-card{background:var(--bg);border:1px solid var(--border);border-radius:24px;width:420px;padding:48px 44px;animation:.5s cubic-bezier(.16,1,.3,1) fadeUp;box-shadow:0 24px 80px #0000001a}.logo-icon{background:var(--primary);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;display:flex}.logo-wordmark{letter-spacing:-.5px;color:var(--text);font-size:20px;font-weight:800}.logo-wordmark span{color:var(--primary)}.form-group{margin-bottom:16px}.form-label{color:var(--text);margin-bottom:6px;font-size:13px;font-weight:600;display:block}.form-input{border:1.5px solid var(--border);border-radius:var(--radius-xs);background:var(--bg);width:100%;height:44px;color:var(--text);font-family:var(--font);outline:none;padding:0 14px;font-size:14px;transition:all .15s}.form-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-glow)}.form-input.err{border-color:var(--danger)}.login-btn{background:var(--primary);color:#fff;border-radius:var(--radius-xs);width:100%;height:46px;font-family:var(--font);cursor:pointer;border:none;margin-top:8px;font-size:15px;font-weight:700;transition:all .15s}.login-btn:hover{background:var(--primary-dark);transform:translateY(-1px)}.login-btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.login-error{background:var(--danger-m);border:1px solid var(--danger);border-radius:var(--radius-xs);color:var(--danger);align-items:center;gap:8px;margin-bottom:16px;padding:10px 14px;font-size:13px;display:flex}@keyframes fadeUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{to{transform:rotate(360deg)}}
