/* Login page; external so the CSP can forbid inline styles (style-src 'self'). */
:root { color-scheme: dark; --bg:#0d1110; --card:#151b18; --line:#2b3731; --text:#f4f8f4; --muted:#a3b0a8; --accent:#92bca2; --accent-dark:#234b35; --danger:#f2a59a; }
* { box-sizing:border-box; }
html,body { min-height:100%; }
body { margin:0; min-height:100vh; display:flex; align-items:center; justify-content:center; padding:20px; background:radial-gradient(circle at 50% 0%, #1d3027 0, var(--bg) 52%); color:var(--text); font:400 15px/1.45 Inter,ui-sans-serif,system-ui,sans-serif; }
.card { width:min(100%,380px); padding:32px 28px 28px; border:1px solid var(--line); border-radius:20px; background:rgba(21,27,24,.94); box-shadow:0 24px 70px rgba(0,0,0,.4); text-align:center; }
.lock { width:52px; height:52px; margin:0 auto 18px; display:grid; place-items:center; border-radius:15px; background:#f7faf7; color:#1f5c3d; font-size:27px; }
.eyebrow { margin:0 0 7px; color:var(--accent); font-size:11px; letter-spacing:.16em; font-weight:800; }
h1 { margin:0; font:700 23px/1.15 Georgia,serif; }
.sub { margin:8px 0 24px; color:var(--muted); font-size:13px; }
label { display:block; text-align:left; color:var(--muted); font-size:12px; font-weight:600; }
input { width:100%; margin-top:8px; padding:13px 14px; border:1px solid var(--line); border-radius:11px; outline:none; background:#101512; color:var(--text); text-align:center; font:600 22px/1 Inter,ui-sans-serif,sans-serif; letter-spacing:.42em; }
input:focus { border-color:var(--accent); box-shadow:0 0 0 3px rgba(146,188,162,.18); }
button { width:100%; margin-top:16px; padding:12px 15px; border:0; border-radius:11px; background:var(--accent-dark); color:#f4fbf5; font:700 14px/1 Inter,ui-sans-serif,sans-serif; cursor:pointer; }
button:hover { background:#2c6546; }
.error { margin:15px 0 0; padding:10px 12px; border-radius:10px; background:rgba(181,65,53,.16); color:var(--danger); font-size:13px; }
.hint { margin:18px 0 0; color:#7d8c83; font-size:11px; }
