/* Victory navy design for the pages outside layouts/main: sign-in, Shield's
   forgot-password (magic link) pages, and the public QR complaint pages.
   Each page links this after its own <style> and scopes itself with a body
   class. Plain selectors only: complaint pages are opened from a QR sticker
   on customers' phones, often on old browsers. */

/* ---- Sign-in (body.vx-login) ---- */
body.vx-login {
  --slate:#07111f; --slate-2:#0e1c32;
  --indigo:#2b55d4; --indigo-deep:#2447bf; --peri:#9cc3ff;
  --ink:#f1f5ff; --muted:#b9c5dd;
  --glass:rgba(11,23,54,.74); --edge:rgba(156,195,255,.24);
}
html:has(body.vx-login) {background:#07111f;}
body.vx-login .orb-1 {background:radial-gradient(circle,#1d3fc4,transparent 65%);}
body.vx-login .orb-2 {background:radial-gradient(circle,#2447bf,transparent 62%);}
body.vx-login .orb-3 {background:radial-gradient(circle,#14307a,transparent 60%);}
body.vx-login .lbl, body.vx-login .chk {color:#dbe4f6;}
body.vx-login .field input::placeholder {color:#93a3c4;}
body.vx-login .btn-go {box-shadow:0 14px 34px rgba(43,85,212,.42);}
body.vx-login .btn-go:hover {box-shadow:0 18px 44px rgba(43,85,212,.52);}
body.vx-login .foot {font-size:.78rem;}
body.vx-login .stat span {font-size:.74rem;}
body.vx-login .alert-success {background:rgba(43,85,212,.16);border-color:rgba(43,85,212,.45);color:#d3e2ff;}

/* ---- Shield pages: forgot password / magic link (body.vx-auth) ---- */
body.vx-auth {
  min-height:100vh; margin:0; color:#0a1222;
  font-family:'Plus Jakarta Sans','Segoe UI',system-ui,sans-serif;
  background:linear-gradient(160deg,#0e1c32,#07111f) fixed !important;
}
body.vx-auth .vx-auth-brand {text-align:center;padding:32px 16px 0;}
body.vx-auth .vx-auth-brand span {display:inline-block;background:#fff;border-radius:14px;padding:10px 18px;box-shadow:0 14px 34px rgba(0,0,0,.45);}
body.vx-auth .vx-auth-brand img {height:48px;display:block;}
body.vx-auth .card {border:0;border-radius:18px;box-shadow:0 24px 60px rgba(0,0,0,.45);}
body.vx-auth .card-title {font-weight:800;color:#0a1222;}
body.vx-auth .card-body {color:#0a1222;}
body.vx-auth .text-muted, body.vx-auth .form-text {color:#334155 !important;}
body.vx-auth .form-control {border:1.5px solid #c2cede;border-radius:10px;}
body.vx-auth .form-control:focus {border-color:#2447bf;box-shadow:0 0 0 .2rem rgba(43,85,212,.2);}
body.vx-auth .btn-primary {background:linear-gradient(135deg,#2b55d4,#2447bf);border-color:#2447bf;font-weight:700;border-radius:10px;padding:.7rem;}
body.vx-auth .btn-primary:hover {background:#18369d;border-color:#18369d;}
body.vx-auth a:not(.btn) {color:#2447bf;font-weight:600;}
body.vx-auth main .container {padding:24px 0 !important;}
@media (max-width:575px){body.vx-auth main .container {padding:16px 0 !important;}}

/* ---- Public complaint pages (body.vx-complaint) ---- */
body.vx-complaint {background:linear-gradient(160deg,#0e1c32,#07111f);}
body.vx-complaint .card {border-radius:18px;}
body.vx-complaint h1 {color:#0a1222;}
/* The owner's standing complaint is faint text: greys go dark enough to read. */
body.vx-complaint .sub, body.vx-complaint .next, body.vx-complaint .link {color:#334155;}
body.vx-complaint .hint, body.vx-complaint .save {color:#475569;}
body.vx-complaint label {color:#1e293b;}
body.vx-complaint input:focus, body.vx-complaint textarea:focus {border-color:#2447bf;box-shadow:0 0 0 3px rgba(43,85,212,.18);}
body.vx-complaint button, body.vx-complaint a.btn {background:linear-gradient(135deg,#2b55d4,#2447bf);color:#fff;}
body.vx-complaint button.ok {background:linear-gradient(135deg,#17864a,#0f5f34);color:#fff;}
body.vx-complaint .track a, body.vx-complaint .foot a, body.vx-complaint .next b {color:#2447bf;}
body.vx-complaint .ticket, body.vx-complaint .ticketno {background:#eef3fd;border-color:#9cb8f0;color:#14307a;}
body.vx-complaint .steps li {color:#64748b;}
body.vx-complaint .steps li.done {color:#0a1222;}
body.vx-complaint .steps li.now {color:#14307a;}
body.vx-complaint .steps li.now .dot {background:#2447bf;box-shadow:0 0 0 4px rgba(43,85,212,.22);}
