/* Shared sign-in look for the MySEODesk client portal (login, forgot, reset).
   Split screen, as the JMF CRM, the Life Gateway CRM and the Apollo rep portal all are:
   brand panel left, form right. Navy and gold are the real MySEODesk brand, and the navy is
   sampled from the Seal video itself (#0b1e33 at every edge) so the frame meets the panel with
   no seam. Gold is never used as text on the light panel: it fails contrast there. */
:root{
  --navy:#0b1e33;
  --navy-2:#13304f;
  --gold:#c6a961;
  --paper:#f8f7f4;
  --panel:#ffffff;
  --ink:#14202e;
  --mut:#5a6675;
  --line:#dcdfe3;
  --err:#b42318;
  --ok:#1f6f43;
  --radius:10px;
  --font:'Space Grotesk',system-ui,-apple-system,'Segoe UI',sans-serif;
}
*{box-sizing:border-box}
html,body{height:100%}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font);
  font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased}

.split{display:grid;grid-template-columns:1fr 1fr;min-height:100vh}

/* ---- brand panel ---- */
.brand{position:relative;background:var(--navy);color:#e9edf2;display:flex;flex-direction:column;
  align-items:center;justify-content:center;padding:40px 32px;overflow:hidden}
.seal{position:relative;width:100%;max-width:640px;aspect-ratio:16/9}
.seal img,.seal video{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;display:block}
/* Browsers composite video in their own colour path, a few levels off the panel navy (Chrome:
   8,33,58 vs 11,30,51), so the clip's edges are feathered and the exact poster returns on end. */
.seal video{opacity:0;transition:opacity .2s linear;-webkit-mask-image:radial-gradient(closest-side,#000 70%,transparent);mask-image:radial-gradient(closest-side,#000 70%,transparent)}
.seal video.playing{opacity:1}
.brand-foot{position:absolute;left:32px;right:32px;bottom:28px;display:flex;justify-content:space-between;
  gap:16px;font-size:12.5px;color:#a9b6c6}
.brand-foot b{color:var(--gold);font-weight:600}

/* ---- form panel ---- */
.form-side{display:flex;align-items:center;justify-content:center;padding:48px 32px}
.auth{width:100%;max-width:400px}
.kicker{font-size:12px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--navy-2);margin:0 0 10px}
h1{font-size:30px;line-height:1.15;font-weight:700;margin:0 0 8px;color:var(--ink)}
.lead{color:var(--mut);margin:0 0 26px}
.field{margin:0 0 16px}
label{display:block;font-size:13.5px;font-weight:600;margin:0 0 6px}
.inp{position:relative}
input[type=email],input[type=password],input[type=text]{width:100%;height:48px;padding:0 44px 0 14px;
  font:inherit;color:var(--ink);background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
  outline:none;transition:border-color .15s,box-shadow .15s}
input:focus{border-color:var(--navy-2);box-shadow:0 0 0 3px rgba(19,48,79,.18)}
.eye{position:absolute;right:6px;top:50%;transform:translateY(-50%);width:36px;height:36px;border:0;
  background:transparent;color:var(--mut);border-radius:8px;cursor:pointer;display:grid;place-items:center}
.eye:hover{color:var(--ink)}
.eye:focus-visible{outline:2px solid var(--navy-2);outline-offset:1px}
.ts{margin:4px 0 14px;min-height:0}
.cta{width:100%;height:50px;border:0;border-radius:var(--radius);background:var(--navy);color:#fff;
  font:inherit;font-weight:600;font-size:15.5px;cursor:pointer;transition:background .15s}
.cta:hover{background:var(--navy-2)}
.cta:focus-visible{outline:3px solid var(--gold);outline-offset:2px}
.cta[disabled]{opacity:.6;cursor:progress}
.msg{min-height:22px;margin:14px 0 0;font-size:14px}
.msg.err{color:var(--err)}
.msg.ok{color:var(--ok)}
.links{margin-top:18px;text-align:center;font-size:14px}
.links a{color:var(--navy-2);font-weight:600;text-decoration:none}
.links a:hover{text-decoration:underline}
.note{margin-top:26px;font-size:12.5px;color:var(--mut);text-align:center}
.hidden{display:none}

/* ---- phone: the seal becomes a band across the top ---- */
@media (max-width:860px){
  .split{grid-template-columns:1fr;min-height:0}
  .brand{padding:22px 16px 18px}
  .seal{max-width:360px}
  .brand-foot{display:none}
  .form-side{padding:30px 16px 40px;align-items:flex-start}
}
@media (prefers-reduced-motion:reduce){
  .seal video{display:none}
  *{transition:none!important}
}
