/* ============================================================================
   Minalav · shared shell for the signed-out pages
   ========================================================================== */
:root{
  --ink:#1c1f23;
  --ink-soft:#565c66;
  --ink-faint:#8a9099;
  --line:#e3e5e9;
  --line-strong:#c9ccd2;
  --page:#fbfbfa;
  --card:#ffffff;
  --brand:#0B1F3A;
  --link:#1f4d7a;
  --red:#a4302a;
  --green:#2f6b4f;
  --amber:#8a6320;
  --sans:'IBM Plex Sans',-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;
}
*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{
  background:var(--page);
  color:var(--ink);
  font-family:var(--sans);
  font-size:15px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  min-height:100vh;
  display:flex;
  flex-direction:column;
}

/* ---- header ---- */
.mn-top{
  display:flex; align-items:center; gap:11px;
  padding:20px 26px; flex-shrink:0;
}
.mn-mark{width:29px; height:32px; flex-shrink:0;}
.mn-name{font-size:15px; font-weight:600; line-height:1.2; color:var(--brand);}
.mn-sub{font-size:12px; color:var(--ink-faint); margin-top:1px;}

/* ---- signed-in app bar ----
   ONE definition for every signed-in page. Projects and Assumptions each
   carried their own copy (.pj-bar / .as-bar) with different padding, gap and
   brand type, so the whole header visibly shrank moving between them. Any
   page-local override of .mn-name/.mn-sub reintroduces exactly that. */
.mn-bar{
  display:flex; align-items:center; gap:11px;
  padding:16px 28px; border-bottom:1px solid var(--line); background:#fff;
}
.mn-bar .spacer{flex:1;}
.mn-nav{display:flex; gap:4px; margin-left:9px;}
.mn-nav a{font-size:13px; font-weight:600; color:var(--ink-faint);
  text-decoration:none; padding:6px 12px; border-radius:6px;}
.mn-nav a:hover{color:var(--brand); background:#f4f5f7;}
.mn-nav a.on{color:var(--brand); background:#eef1f5;}

/* ---- centred card ---- */
.mn-wrap{
  flex:1; display:flex; align-items:center; justify-content:center;
  padding:8px 20px 56px;
}
.mn-card{
  background:var(--card);
  border:1px solid var(--line);
  border-radius:10px;
  padding:34px 34px 30px;
  width:100%; max-width:410px;
}
.mn-card.wide{max-width:600px;}
.mn-title{font-size:22px; font-weight:600; margin:0 0 7px; color:var(--ink);}
.mn-lede{font-size:14px; color:var(--ink-soft); margin:0 0 24px;}

/* ---- fields ---- */
.mn-f{margin-bottom:17px;}
.mn-f label{
  display:block; font-size:13.5px; font-weight:500;
  color:var(--ink); margin-bottom:6px;
}
.mn-f input{
  width:100%; height:42px; padding:0 12px;
  border:1px solid var(--line-strong); border-radius:7px;
  background:var(--card); color:var(--ink);
  font-family:var(--sans);
  /* 16px, not 15: iOS Safari auto-zooms into any focused input below 16px,
     which jerked the page in and left it zoomed with the header off-screen the
     moment a customer tapped "Work email" on a phone. */
  font-size:16px;
  transition:border-color .12s ease;
}
.mn-f input::placeholder{color:#b4b9c0;}
.mn-f input:hover{border-color:#adb2ba;}
.mn-f input:focus{
  outline:none;
  border-color:var(--ink-soft);
  box-shadow:0 0 0 3px rgba(28,31,35,.07);
}
.mn-f input:disabled{background:#f4f5f6; color:var(--ink-faint);}
.mn-hint{font-size:12.5px; color:var(--ink-faint); margin-top:6px; line-height:1.5;}

/* one-time code: wide, evenly spaced digits, easy to read back from an email */
.mn-f input.mn-code{
  font-size:24px; text-align:center; letter-spacing:8px;
  padding-left:8px; font-variant-numeric:tabular-nums; height:52px;
}
.mn-f input.mn-code::placeholder{font-size:17px; letter-spacing:4px;}

/* ---- buttons ---- */
.mn-btn{
  width:100%; height:42px;
  background:var(--brand); color:#fff;
  border:1px solid var(--brand); border-radius:7px;
  font-family:var(--sans); font-size:14.5px; font-weight:500;
  cursor:pointer; margin-top:4px;
  transition:background .12s ease;
}
.mn-btn:hover:not(:disabled){background:#132b4d;}
.mn-btn:disabled{background:#a8adb5; border-color:#a8adb5; cursor:not-allowed;}
.mn-btn:focus-visible{outline:2px solid var(--ink); outline-offset:2px;}
.mn-btn.ghost{background:var(--card); color:var(--ink); border-color:var(--line-strong);}
.mn-btn.ghost:hover:not(:disabled){background:#f6f7f8; border-color:#adb2ba;}

/* a plain text button, for things like "send it again" */
.mn-textbtn{
  background:none; border:none; padding:0;
  color:var(--link); font-family:var(--sans); font-size:13.5px;
  cursor:pointer; text-decoration:underline; text-underline-offset:2px;
}
.mn-textbtn:disabled{color:var(--ink-faint); cursor:default; text-decoration:none;}

/* ---- messages ---- */
.mn-msg{font-size:13.5px; margin-top:13px; min-height:18px; line-height:1.5; color:var(--ink-soft);}
.mn-msg.err{color:var(--red);}
.mn-msg.ok{color:var(--green);}
.mn-note{
  background:#f7f8f9; border:1px solid var(--line); border-radius:8px;
  padding:12px 14px; font-size:13.5px; color:var(--ink-soft);
  line-height:1.55; margin-bottom:20px;
}

/* ---- links / footer ---- */
.mn-links{
  margin-top:22px; padding-top:18px; border-top:1px solid var(--line);
  display:flex; justify-content:space-between; gap:12px; flex-wrap:wrap;
  font-size:13.5px; color:var(--ink-faint);
}
a{color:var(--link); text-underline-offset:2px;}
a:focus-visible{outline:2px solid var(--ink); outline-offset:2px;}
.mn-foot{
  text-align:center; font-size:12.5px; color:var(--ink-faint);
  padding:0 20px 30px; margin:0;
}

/* ============================================================================
   Split sign-in layout  ·  /login only
   ----------------------------------------------------------------------------
   Everything here is namespaced under .mn-split so the other signed-out pages
   keep the plain header-and-centred-card shell above, untouched.
   ========================================================================== */
.mn-split{flex:1; display:flex; min-height:100vh;}

/* ---- left: the dark brand panel ---- */
.mn-brand{
  position:relative; overflow:hidden;
  flex:0 0 44%; max-width:620px;
  background:#0a1730; color:#fff;
  display:flex; flex-direction:column; justify-content:center;
  padding:38px 46px 44px;
}
/* The artwork sits behind everything; the content is lifted above it. */
.mn-brand-bg{position:absolute; inset:0; width:100%; height:100%; display:block;}
.mn-brand > *:not(.mn-brand-bg){position:relative; z-index:1;}

/* The mark and the wordmark read as one unit, with the strapline hung directly
   beneath them. */
.mn-brand-lockup{display:flex; flex-direction:column; gap:16px;}
.mn-brand-name{display:flex; align-items:center; gap:18px;}
.mn-brand-name img{
  display:block; border-radius:12px; flex:none;
  width:clamp(44px,4.4vw,62px); height:auto;
}

/* Light weight at display size: the wordmark should read as calm, not shouty. */
.mn-brand-word{
  font-size:clamp(44px,5.2vw,74px); font-weight:300; letter-spacing:-.028em;
  line-height:1; margin:0; color:#fff;
}
.mn-brand-line{
  font-size:15px; line-height:1.6; margin:0;
  color:rgba(255,255,255,.62); max-width:34ch; letter-spacing:.005em;
}

/* ---- right: the form ---- */
.mn-panel{
  flex:1 1 auto; background:var(--card);
  display:flex; flex-direction:column; min-width:0;
}
.mn-panel-body{
  flex:1; display:flex; align-items:center; justify-content:center;
  padding:44px 24px 20px; width:100%;
}
/* Against a plain white half, a bordered box would be one frame too many. */
.mn-panel .mn-card{border:none; border-radius:0; padding:0; max-width:376px;}
.mn-panel .mn-foot{padding:0 24px 28px;}

/* The brand panel carries the identity on a wide screen, so the small header
   inside the form column only appears once that panel is gone. */
.mn-panel .mn-top{display:none;}

@media (max-width:900px){
  .mn-split{flex-direction:column; min-height:0;}
  .mn-brand{display:none;}
  .mn-panel .mn-top{display:flex;}
  .mn-panel-body{padding:8px 20px 20px; align-items:flex-start;}
}

/* ---- password checklist ---- */
.mn-rules{margin:8px 0 0; padding:0; list-style:none;}
.mn-rules li{
  font-size:12.5px; color:var(--ink-faint); line-height:1.7;
  padding-left:20px; position:relative;
}
.mn-rules li::before{
  content:"○"; position:absolute; left:4px; color:var(--line-strong);
}
.mn-rules li.ok{color:var(--green);}
.mn-rules li.ok::before{content:"●"; color:var(--green);}

/* ---- long form legal pages ---- */
.mn-doc{max-width:720px; margin:0 auto; padding:12px 24px 70px;}
.mn-doc h1{font-size:26px; font-weight:600; margin:0 0 6px;}
.mn-doc h2{font-size:16.5px; font-weight:600; margin:30px 0 8px;}
.mn-doc p, .mn-doc li{font-size:14.5px; color:var(--ink-soft); line-height:1.7;}
.mn-doc .meta{
  font-size:12.5px; color:var(--ink-faint); margin-bottom:26px;
  padding-bottom:14px; border-bottom:1px solid var(--line);
}
.mn-doc ol{padding-left:20px;}
.mn-doc ol li{margin-bottom:7px;}
.mn-doc .clause{margin-bottom:2px;}
.mn-fill{background:#fdf3d8; border-bottom:1px dashed #b99a45; color:#6b5518; padding:0 3px;}

/* ---- terms acceptance list ---- */
.mn-accept-item{
  display:flex; align-items:baseline; gap:10px; padding:11px 0;
  border-bottom:1px solid var(--line); font-size:14px;
}
.mn-accept-item:last-of-type{border-bottom:none;}
.mn-check{display:flex; align-items:flex-start; gap:10px; margin:18px 0 6px;}
.mn-check input{margin-top:3px; width:15px; height:15px; flex-shrink:0; accent-color:var(--brand);}
.mn-check label{font-size:13.5px; color:var(--ink-soft); line-height:1.55;}

@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important;}}
