:root { color-scheme: light; --ink:#152b25; --muted:#65736e; --green:#235b49; --line:#dbe3df; }
* { box-sizing: border-box; }
body { margin:0; min-height:100vh; font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI","Microsoft YaHei",sans-serif; color:var(--ink); background:radial-gradient(circle at 20% 15%,#e5f2eb 0,transparent 36%),linear-gradient(145deg,#f7faf8,#eef3f0); }
.login-shell { min-height:100vh; display:grid; place-items:center; padding:24px; }
.login-card { width:min(100%,420px); padding:38px; border:1px solid rgba(35,91,73,.16); border-radius:14px; background:rgba(255,255,255,.96); box-shadow:0 22px 65px rgba(25,55,45,.13); }
.brand-mark { width:48px; height:48px; display:grid; place-items:center; border-radius:10px; color:#fff; background:var(--green); font:700 25px Georgia,serif; }
.eyebrow { margin:22px 0 7px; color:var(--green); font-size:11px; font-weight:800; letter-spacing:.18em; }
h1 { margin:0; font-size:28px; letter-spacing:-.02em; }
.intro { margin:9px 0 26px; color:var(--muted); font-size:14px; line-height:1.6; }
form { display:grid; gap:17px; }
label { display:grid; gap:7px; color:#334b43; font-size:12px; font-weight:700; }
input:not([type]),input[type="text"],input[type="password"] { width:100%; min-height:46px; padding:0 13px; border:1px solid var(--line); border-radius:7px; outline:none; font:500 15px inherit; background:#fff; }
input:focus { border-color:var(--green); box-shadow:0 0 0 3px rgba(35,91,73,.1); }
.remember { grid-template-columns:18px 1fr; align-items:start; gap:10px; cursor:pointer; }
.remember input { width:17px; height:17px; margin:1px 0 0; accent-color:var(--green); }
.remember span { display:grid; gap:3px; }
.remember small { color:var(--muted); font-weight:400; }
button { min-height:47px; border:0; border-radius:7px; color:#fff; background:var(--green); font-weight:800; cursor:pointer; }
button:disabled { opacity:.65; cursor:wait; }
.error { margin:0; padding:10px 12px; border-radius:6px; color:#8a2929; background:#fff0ef; font-size:12px; }
.security-note { margin:21px 0 0; padding-top:17px; border-top:1px solid var(--line); color:var(--muted); font-size:11px; line-height:1.55; }
.password-rule { margin-top:-9px; color:var(--muted); font-size:11px; line-height:1.55; }
.google-login-button { display:flex; align-items:center; justify-content:center; gap:12px; width:100%; min-height:52px; border:1px solid #cbd5d1; border-radius:10px; background:#fff; color:#163f34; font-weight:700; text-decoration:none; }
.google-login-button:hover { border-color:#176b55; background:#f6fbf9; }
.google-login-button:focus-visible { outline:3px solid rgba(23,107,85,.22); outline-offset:2px; }
.google-g { color:#1a73e8; font-size:1.25rem; font-weight:800; }
@media (max-width:520px) { .login-card { padding:28px 22px; border-radius:10px; } .login-shell { padding:14px; } }
