/* Staff sign-in pages. Brand colours (brand/visual_identity.pdf); no inline styles or scripts,
   so these pages work under a strict Content-Security-Policy. */
:root { --navy: #00203E; --blue: #004ACE; --ivory: #F4F4F4; --grey: #BABFC2; }
* { box-sizing: border-box; }
body { margin: 0; font-family: Montserrat, system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  background: var(--ivory); color: var(--navy); line-height: 1.5; }
.bar { background: var(--navy); padding: 14px 16px; overflow: hidden; }
.brand { height: 36px; width: auto; aspect-ratio: 3240 / 420; object-fit: cover; margin-inline-start: calc(36px * -0.914); max-width: none; display: block; }
.card { max-width: 440px; margin: 32px auto; background: #fff; border-radius: 12px; padding: 24px 20px;
  box-shadow: 0 6px 24px rgba(0, 32, 62, .08); }
h1 { font-size: 1.5rem; margin: 0 0 .8em; }
label { display: block; font-weight: 600; margin: 0 0 14px; }
input { display: block; width: 100%; font: inherit; padding: 12px; margin-top: 6px; border: 2px solid var(--grey); border-radius: 8px; }
input:focus { outline: 3px solid var(--blue); outline-offset: 1px; border-color: var(--blue); }
button, .button { display: inline-block; width: 100%; text-align: center; font: inherit; font-weight: 700; color: #fff;
  background: var(--blue); border: 0; border-radius: 999px; padding: 13px 18px; cursor: pointer; text-decoration: none; }
button:hover, .button:hover { background: var(--navy); }
a { color: var(--blue); }
.error { background: #fdecea; color: #7a1c12; border-radius: 8px; padding: 10px 12px; }
.small { font-size: .9rem; }
.qr { display: flex; justify-content: center; margin: 8px 0; }
.qr svg { width: 220px; height: 220px; }
.codes { columns: 2; list-style: none; padding: 0; font-size: 1.05rem; }
details { margin-top: 18px; }
code { background: var(--ivory); padding: 2px 6px; border-radius: 4px; }
