/* ── LOGIN PAGE ─────────────────────────────────────────────── */
body {
  background: #f4f4f5;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 100vh;
}

.login-card {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: 40px 36px;
  width: 100%;
  max-width: 380px;
  box-shadow: 0 1px 3px rgba(0,0,0,.06);
}

.login-card h1 {
  font-size: 22px;
  font-weight: 700;
  margin: 0 0 24px;
}

.login-brand {
  font-weight: 800;
  font-size: 26px;
  text-align: center;
  margin-bottom: 28px;
  letter-spacing: -.5px;
}

#login-form .btn {
  margin-top: 8px;
  background: #000;
  color: #fff;
}

#login-form .btn:hover:not(:disabled) { background: #1c1c1e; }

.login-opts {
  display: flex;
  align-items: center;
  margin: 4px 0 16px;
  font-size: 13px;
  color: var(--text-secondary);
}

.cb-wrap {
  display: flex;
  align-items: center;
  gap: 7px;
  cursor: pointer;
}

.cb-wrap input { cursor: pointer; accent-color: var(--accent); }

/* ── MANOY — animated mascot video (white bg blends into card) ─ */
.manoy-vid {
  display: block;
  width: 132px;
  margin: -10px auto 2px;
  mix-blend-mode: multiply;       /* white bg dissolves into the card */
  pointer-events: none;
}

/* ── BOT PATROL — walks left↔right inside the login card ──────
   .bot-walk slides across the card with a little bob.
   The .bot inside flips (scaleX) each time it turns around —
   flip period = 2x the walk period, stepped, so it swaps facing
   exactly at each edge. Legs alternate like footsteps. */
.bot-walk {
  width: 180px;
  margin: 0 auto;
  animation: bot-patrol 9s ease-in-out infinite alternate;
}

.bot-walk .bot {
  margin: 0;
  animation: bot-flip 18s steps(1) infinite;   /* 2x patrol period */
}

/* little footsteps while patrolling */
.bot-walk .bot-leg {
  animation: bot-step .5s ease-in-out infinite alternate;
}
.bot-walk .bot-leg.right { animation-delay: .25s; }

@keyframes bot-patrol {
  0%   { transform: translateX(-56px) translateY(0); }
  25%  { transform: translateX(-28px) translateY(-2px); }
  50%  { transform: translateX(0)     translateY(0); }
  75%  { transform: translateX(28px)  translateY(-2px); }
  100% { transform: translateX(56px)  translateY(0); }
}

/* flip at the turnaround — 50% hits exactly when patrol reverses */
@keyframes bot-flip {
  0%, 49.999%   { transform: scaleX(1); }
  50%, 99.999%  { transform: scaleX(-1); }
  100%          { transform: scaleX(1); }
}

@keyframes bot-step {
  from { transform: translateY(0); }
  to   { transform: translateY(-4px); }
}
