:root {
  --keyora-ink: #16202b;
  --keyora-muted: #5b6b7b;
  --keyora-line: #dfe6ee;
  --keyora-bg: #eef2f6;
  --keyora-card: #ffffff;
  --keyora-accent: #1f6f5c;
  --keyora-accent-ink: #ffffff;
  --keyora-danger: #b3261e;
}
* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
/* A hidden step must always be hidden: the card rules below set display:flex,
   which outranks the UA [hidden]{display:none}. Keep the states mutually
   exclusive so only one bootstrap screen renders at a time. */
[hidden] { display: none !important; }
.operator-entry-body {
  min-height: 100vh;
  background: linear-gradient(180deg, #f6f9fb 0%, var(--keyora-bg) 100%);
  color: var(--keyora-ink);
  font-family: system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  font-size: 15px;
  line-height: 1.5;
  display: flex;
  justify-content: center;
  align-items: flex-start;
}
.operator-entry {
  width: 100%;
  max-width: 420px;
  padding: 48px 20px 64px;
  display: flex;
  flex-direction: column;
  gap: 20px;
}
.operator-entry__brand { display: flex; align-items: center; gap: 14px; }
.operator-entry__logo { width: 48px; height: 48px; object-fit: contain; }
.operator-entry__brandtext { display: flex; flex-direction: column; line-height: 1.2; }
.operator-entry__brandtext strong { font-size: 18px; font-weight: 650; }
.operator-entry__brandtext span { color: var(--keyora-muted); font-size: 13px; }
.operator-entry__card {
  background: var(--keyora-card);
  border: 1px solid var(--keyora-line);
  border-radius: 14px;
  padding: 24px;
  box-shadow: 0 1px 2px rgba(22, 32, 43, 0.04), 0 8px 24px rgba(22, 32, 43, 0.06);
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.operator-entry__card h1 { font-size: 20px; font-weight: 640; margin: 0; }
.operator-entry__card p { margin: 0; color: var(--keyora-muted); font-size: 14px; }
.operator-entry__row { display: flex; align-items: center; justify-content: space-between; }
label { display: flex; flex-direction: column; gap: 6px; font-size: 13px; font-weight: 550; color: var(--keyora-ink); }
input[type="email"], input[type="password"], input[type="text"], input[inputmode="numeric"] {
  appearance: none;
  border: 1px solid var(--keyora-line);
  border-radius: 9px;
  padding: 11px 12px;
  font-size: 15px;
  font-family: inherit;
  color: var(--keyora-ink);
  background: #fbfdfe;
}
input:focus { outline: none; border-color: var(--keyora-accent); box-shadow: 0 0 0 3px rgba(31, 111, 92, 0.15); }
.operator-entry__primary {
  appearance: none; border: 0; cursor: pointer;
  background: var(--keyora-accent); color: var(--keyora-accent-ink);
  border-radius: 9px; padding: 12px 16px; font-size: 15px; font-weight: 600; font-family: inherit;
}
.operator-entry__primary:hover { filter: brightness(1.05); }
.operator-entry__link { appearance: none; border: 0; background: none; color: var(--keyora-accent); cursor: pointer; font: inherit; padding: 0; }
.operator-entry__qr { display: flex; justify-content: center; padding: 12px; background: #fff; border: 1px solid var(--keyora-line); border-radius: 12px; }
.operator-entry__qr svg { width: 200px; height: 200px; }
.operator-entry__manual { border: 1px solid var(--keyora-line); border-radius: 9px; padding: 10px 12px; background: #fbfdfe; }
.operator-entry__manual summary { cursor: pointer; font-weight: 600; font-size: 13px; }
.operator-entry__manual code { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: 13px; word-break: break-all; }
.operator-entry__muted { color: var(--keyora-muted); }
.operator-entry__modules { border: 1px solid var(--keyora-line); border-radius: 9px; padding: 12px 14px; display: flex; flex-direction: column; gap: 8px; }
.operator-entry__modules legend { font-size: 12px; font-weight: 600; color: var(--keyora-muted); padding: 0 4px; }
.operator-entry__check { flex-direction: row; align-items: center; gap: 8px; font-weight: 500; }
.operator-entry__result { border-top: 1px solid var(--keyora-line); padding-top: 12px; font-size: 13px; display: flex; flex-direction: column; gap: 4px; }
.operator-entry__result code { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; word-break: break-all; }
.operator-entry__temp { background: #fff7ed; border: 1px solid #f4d7a8; border-radius: 8px; padding: 8px 10px; }
.operator-entry__notice { min-height: 20px; font-size: 13px; color: var(--keyora-muted); text-align: center; margin: 0; }
.operator-entry__notice.is-error { color: var(--keyora-danger); }
.operator-entry__help { font-size: 12px; color: var(--keyora-muted); margin: 0; }

/* --- Operator console shell (authenticated app surface) --- */
.operator-console-body {
  margin: 0; min-height: 100vh; background: var(--keyora-bg); color: var(--keyora-ink);
  font-family: system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  font-size: 15px; line-height: 1.5;
  display: grid; grid-template-columns: 248px 1fr; grid-template-rows: 100vh;
}
.operator-console__nav {
  background: #12261f; color: #e8f1ed; padding: 22px 16px; display: flex; flex-direction: column; gap: 6px;
  overflow-y: auto;
}
.operator-console__brand { display: flex; align-items: center; gap: 12px; padding: 0 6px 20px; }
.operator-console__brand img { width: 40px; height: 40px; object-fit: contain; }
.operator-console__brand strong { font-size: 16px; font-weight: 650; display: block; }
.operator-console__brand span { font-size: 12px; color: #9db8ad; }
.operator-console__navbtn {
  appearance: none; border: 0; background: none; color: #cde0d8; cursor: pointer; font: inherit;
  text-align: left; padding: 10px 12px; border-radius: 9px; font-weight: 550;
}
.operator-console__navbtn:hover { background: rgba(255,255,255,0.06); }
.operator-console__navbtn.is-active { background: var(--keyora-accent); color: #fff; }
.operator-console__navspacer { flex: 1; }
.operator-console__main { overflow-y: auto; padding: 32px 40px 64px; }
.operator-console__head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 24px; }
.operator-console__head h1 { font-size: 24px; font-weight: 660; margin: 0; }
.operator-console__view { max-width: 720px; display: flex; flex-direction: column; gap: 18px; }
.operator-console__panel {
  background: var(--keyora-card); border: 1px solid var(--keyora-line); border-radius: 14px; padding: 24px;
  display: flex; flex-direction: column; gap: 14px;
  box-shadow: 0 1px 2px rgba(22,32,43,0.04), 0 8px 24px rgba(22,32,43,0.06);
}
.operator-console__panel h2 { font-size: 17px; font-weight: 640; margin: 0; }
.operator-console__muted { color: var(--keyora-muted); font-size: 14px; margin: 0; }
