/* Login card — same design as the legacy server.py LOGIN_HTML (commit 4584cf3).
   Deliberately self-contained: the login page has no topbar/sidebar, so it does
   not load core.css. */
*{margin:0;padding:0;box-sizing:border-box}
body{
  font-family:'IBM Plex Sans',system-ui,sans-serif;background:#ECEFF1;color:#1b2a31;
  min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:24px;
}
.card{
  width:100%;max-width:360px;background:#fff;border:1px solid #d7dde0;border-radius:16px;
  padding:34px 26px;box-shadow:0 10px 34px rgba(0,0,0,.07);
}
.logo{font-family:'Bricolage Grotesque',sans-serif;font-weight:700;font-size:1.55rem;letter-spacing:-.01em;text-align:center}
.logo b{color:#0E6E62}
.sub{color:#5b6b73;font-size:.82rem;text-align:center;margin:8px 0 22px;line-height:1.5}
form{display:flex;flex-direction:column;gap:12px}
input{
  padding:13px 14px;border:1px solid #cdd5d8;border-radius:10px;font:inherit;font-size:1rem;
  text-align:center;background:#fbfcfc;
}
input:focus{outline:none;border-color:#0E6E62}
button{
  padding:13px;background:#0E6E62;color:#fff;border:none;border-radius:10px;font:inherit;
  font-weight:600;font-size:1rem;cursor:pointer;
}
button:active{transform:scale(.99)}
.err{color:#c0392b;font-size:.78rem;min-height:16px;text-align:center;line-height:1.5}
.err ul{list-style:none}
