/* Self-contained: styles.css is not a public path (api/session.py PUBLIC_PATHS), so the few values we need are copied here.
   System fonts only: the sign-in page makes no third-party request. */
:root { --ink:#16211d; --muted:#566660; --soft:#d6ded9; --accent:#1456d9; --bad:#a8261d; --bg:#eef2f0; --card:#fff;
  --font-ui:"Public Sans", "Segoe UI", system-ui, -apple-system, Roboto, Arial, sans-serif;
  --font-serif:"Source Serif 4", "Iowan Old Style", "Palatino Linotype", Georgia, serif; }
* { box-sizing: border-box; }
body { font-family:var(--font-ui); font-size:14px; line-height:1.45; margin:0; color:var(--ink); background:linear-gradient(160deg,#e3ecff 0%,var(--bg) 55%);
  min-height:100vh; display:flex; align-items:center; justify-content:center; padding:16px; }
.card { width:100%; max-width:400px; background:var(--card); border:1px solid var(--soft); border-radius:18px;
  padding:32px 30px 28px; box-shadow:0 18px 40px rgba(20,35,29,.1); }
.brand { display:flex; align-items:center; gap:12px; margin-bottom:6px; }
.brand-mark { width:42px; height:42px; flex:0 0 42px; border-radius:12px; background:var(--accent); color:#fff; display:flex; align-items:center; justify-content:center; }
h1 { font-family:var(--font-serif); font-size:24px; margin:0; }
.tagline { margin:0 0 6px; color:var(--muted); }
h2 { font-size:15px; margin:14px 0 6px; color:var(--muted); font-weight:600; }
form { display:flex; flex-direction:column; gap:6px; }
form[hidden] { display:none; }
label { font-size:12px; font-weight:600; color:var(--muted); margin-top:10px; }
input { font:inherit; min-height:46px; padding:0 12px; border:1px solid #9aa8a1; border-radius:10px; width:100%; color:var(--ink); }
input:focus-visible, button:focus-visible { outline:3px solid var(--accent); outline-offset:2px; }
button { font:inherit; cursor:pointer; border-radius:10px; min-height:44px; padding:0 16px; margin-top:14px; border:1px solid #b5c0ba; background:#fff; }
button.primary { min-height:48px; margin-top:20px; background:var(--accent); border-color:var(--accent); color:#fff; font-weight:700; font-size:15px; }
#changeUser { min-height:0; padding:0; border:0; }
.hint { font-size:12px; color:var(--muted); margin:0; }
#msg { min-height:1.2em; margin:14px 0 0; font-size:13px; color:var(--bad); }
.foot { margin:6px 0 0; font-size:12px; color:var(--muted); text-align:center; }
