:root {
  --bg:#eef3e8; --card:#ffffff; --ink:#15211a; --muted:#5d6b5f; --line:#d3ddc9;
  --accent:#2f6b4b; --accent-ink:#fff; --accent-dark:#235138;
}
* { box-sizing:border-box; }
body { margin:0; font:15px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif; color:var(--ink); background:var(--bg); }
a { color:var(--accent); text-decoration:none; }
a:hover { text-decoration:underline; }
.card { background:var(--card); border:1px solid var(--line); border-radius:12px; padding:18px 20px; margin-bottom:18px; }
h1 { font-size:22px; margin:0 0 4px; letter-spacing:-.01em; }
.muted { color:var(--muted); }
.small { font-size:13px; }
label { display:block; font-size:13px; color:var(--muted); margin:10px 0 3px; }
input[type=password] { width:100%; padding:8px 10px; border:1px solid var(--line); border-radius:8px; font:inherit; background:#fff; color:var(--ink); }
input[type=password]:focus { outline:none; border-color:var(--accent); box-shadow:0 0 0 3px rgba(47,107,75,.15); }
button, .btn { background:var(--accent); color:var(--accent-ink); border:0; border-radius:8px; padding:9px 16px; font:inherit; font-weight:600; cursor:pointer; }
button:hover, .btn:hover { background:var(--accent-dark); }
.flash { background:#fbeceb; border:1px solid #e7bcb6; color:#9a2b1e; padding:8px 12px; border-radius:8px; margin-bottom:12px; }
.login-wrap { max-width:360px; margin:13vh auto; }
.login-wrap .brand { display:flex; align-items:center; gap:12px; margin-bottom:6px; }
.login-wrap .brand h1 { margin:0; }
.login-wrap .mark { width:40px; height:40px; }
