/* The real admin, on top of the mockups' admin.css (a copy of mockups/assets/admin.css: keep them in step).
   No mockup strip here, and no inline styles anywhere: the pages' security policy allows only these two files. */
:root{--strip:0px}

/* Sign-in and first-time setup: one centred card on the dotted ground (from mockups/login). */
label.field{align-items:stretch}
.login{min-height:100vh;padding:var(--s6) var(--s4);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--s4)}
.login-card{width:100%;max-width:420px;display:flex;flex-direction:column;gap:var(--s5);padding:var(--s6) var(--s6) var(--s5)}
.brand{display:flex;flex-direction:column;align-items:center;gap:10px}
.login .brand img{height:96px;width:auto;display:block}
.login .brand span{font-weight:800;font-stretch:75%;font-size:15px;letter-spacing:.22em;text-transform:uppercase;color:var(--muted)}
.step{display:flex;flex-direction:column;gap:var(--s4)}
.step .head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--s3)}
.step h1{font-size:28px}
.step .count{font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);white-space:nowrap}
.step .field input{width:100%;min-height:42px;font-size:15px}
.step button.wide{width:100%;min-height:44px;font-size:16px}
.code{font-family:var(--mono);font-size:26px!important;letter-spacing:.3em;text-align:center;min-height:56px!important}
.user{display:flex;align-items:center;justify-content:space-between;gap:var(--s3);padding:8px 12px;border:1px solid var(--line);border-radius:var(--r-button);font-size:14px}
.reason{font-size:14px;color:var(--red-line)}
.where{max-width:420px;font-size:13px;color:var(--muted);text-align:center}
.where::before{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--green);margin-right:8px;vertical-align:1px}
.qr{display:flex;justify-content:center}
.qr svg{width:232px;height:232px;border-radius:6px}   /* the 4-module quiet zone stays whole */
.key{font-family:var(--mono);font-size:15px;letter-spacing:.08em;text-align:center;word-spacing:.3em;user-select:all}
.codes{display:grid;grid-template-columns:repeat(2,1fr);gap:8px 16px;font-family:var(--mono);font-size:17px;letter-spacing:.12em;
  text-align:center;padding:var(--s4);border:1px dashed var(--line);border-radius:var(--r-card);user-select:all}
.steps{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:6px;font-size:14px}

/* The shell: sign out is a form, so it can carry the session's token. */
form.inline{display:inline}
button.link{background:none;border:0;padding:0;min-height:0;color:var(--muted);font:inherit;font-size:13px;cursor:pointer;text-decoration:underline}
button.link:hover{color:var(--ink)}
button.link:active:not(:disabled){background:none;color:var(--ink)}

/* Lists and forms. */
.rows.places{--cols:minmax(0,1.6fr) minmax(0,1.2fr) auto}
.tag{display:inline-block;margin-left:8px;padding:1px 8px;border-radius:999px;border:1px solid var(--line);font-size:11px;
  font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);vertical-align:2px}
.form{display:flex;flex-direction:column;gap:var(--s4)}
.form .field input,.form .field select{width:100%}
.form .actions{display:flex;justify-content:flex-end;gap:var(--s3)}
.check{display:flex;align-items:flex-start;gap:10px;font-size:14px}
.empty{color:var(--muted);padding:var(--s4)}
td.old{color:var(--muted);text-decoration:line-through;text-decoration-color:rgba(241,233,234,.35)}
.notes{display:flex;flex-direction:column;gap:var(--s3)}
