
:root { --green:#274f73; --green2:#315f86; --line:#dbe3eb; --muted:#6d7d8c; }
* { box-sizing:border-box; }
body { margin:0; min-height:100vh; display:grid; place-items:center; padding:22px; background:#f7f9fb; color:#1f2933; font-family:Arial,Helvetica,sans-serif; }
.login-shell { width:min(100%,380px); }
.login-card { background:#fff; border:1px solid var(--line); border-radius:14px; padding:24px; box-shadow:0 18px 50px rgba(30,55,80,.08); }
.brand { display:inline-grid; place-items:center; width:44px; height:44px; margin-bottom:17px; border-radius:11px; background:var(--green); color:#fff; font-size:.9rem; font-weight:800; letter-spacing:.08em; }
.eyebrow { margin:0 0 7px; color:var(--green2); font-size:.66rem; font-weight:850; letter-spacing:.14em; }
h1 { margin:0 0 9px; font-size:1.8rem; line-height:1.08; letter-spacing:-.03em; }
.lede { margin:0; color:var(--muted); font-size:.88rem; line-height:1.4; }
.error { margin-top:16px; padding:10px 12px; border:1px solid #efc5c5; background:#fff3f3; border-radius:10px; color:#8b2525; font-size:.82rem; }
form { display:grid; gap:12px; margin-top:18px; }
label { display:grid; gap:8px; }
label span { font-size:.78rem; font-weight:700; }
input { width:100%; min-height:44px; padding:8px 10px; border:1px solid #d5dfe8; border-radius:10px; font:inherit; font-size:.95rem; }
button { min-height:42px; padding:9px 16px; border:0; border-radius:999px; background:var(--green2); color:#fff; font:inherit; font-size:.82rem; font-weight:800; cursor:pointer; }
.note { margin:14px 0 0; color:var(--muted); font-size:.78rem; }
