/* Sign-in and sign-up share this. They are the same page with a different form,
   so the CSS lives once. Brand hexes only - the three near-misses this file used
   to carry (#e01933, #c9142c, #6b25d9) are gone. */

  :root { --red: #e31837; --purple: #5900c1; --ink: #171717; }
  * { box-sizing: border-box; margin: 0; padding: 0; }
  body {
    font-family: Geist, "Segoe UI", system-ui, Arial, sans-serif;
    min-height: 100vh; display: flex; flex-direction: column; background: var(--purple);
    -webkit-font-smoothing: antialiased;
  }
  .bar { background: var(--red); height: 92px; flex: 0 0 92px; }

  main { flex: 1; display: flex; align-items: center; justify-content: center; padding: 40px 28px; }
  .grid {
    width: 100%; max-width: 1024px; display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr);
    gap: 56px; align-items: center;
  }

  .logo { width: 332px; max-width: 100%; height: auto; display: block; }
  h1 { color: #fff; font-family: var(--font-display); font-size: 34px; font-weight: 400; margin: 26px 0 22px; letter-spacing: -.2px; }

  label { display: block; color: #fff; font-size: 12.5px; font-weight: 700; margin-bottom: 7px; }
  input {
    width: 100%; border: 0; border-radius: 6px; background: #fff; padding: 13px 15px;
    font: 500 15px Geist, Arial; color: var(--ink);
  }
  input::placeholder { color: #9a9a9a; }
  input:focus { outline: 3px solid rgba(255,255,255,.55); }
  .field + .field { margin-top: 16px; }
  /* the bare `input` rule above is written for the text fields (width:100%, padding);
     a checkbox has to opt out of all of it or it stretches across the form */
  .showpw { display: flex; align-items: center; gap: 8px; color: #fff; font-size: 12.5px;
            margin: 10px 0 0; cursor: pointer; opacity: .95; user-select: none; }
  .showpw input { width: 16px; height: 16px; flex: 0 0 16px; padding: 0; margin: 0; border-radius: 3px; accent-color: #fff; }
  .forgot { display: block; text-align: right; color: #fff; font-size: 12.5px; font-weight: 600; margin-top: 9px; text-decoration: none; opacity: .95; }
  .forgot:hover { text-decoration: underline; }
  button {
    width: 100%; margin-top: 18px; border: 0; border-radius: 6px; background: var(--red); color: #fff;
    padding: 15px; font: 700 15.5px Geist, Arial; cursor: pointer;
  }
  button:hover { background: #b81129; }
  button:disabled { opacity: .65; cursor: default; }
  .err { color: #ffe0e4; background: rgba(0,0,0,.22); border-radius: 6px; font-size: 13.5px;
         font-weight: 600; margin-top: 12px; padding: 9px 12px; display: none; }
  .err.on { display: block; }

  .art { border-radius: 26px 26px 6px 6px; overflow: hidden; }
  .art img { width: 100%; height: auto; display: block; }

  footer { background: var(--red); padding: 20px 28px; }
  footer ul {
    list-style: none; max-width: 1024px; margin: 0 auto; display: flex; justify-content: space-between;
    gap: 22px; flex-wrap: wrap;
  }
  footer li { color: #fff; font-size: 15px; font-weight: 700; }

  @media (max-width: 860px) {
    .bar { height: 56px; flex-basis: 56px; }
    .grid { grid-template-columns: minmax(0,1fr); gap: 30px; }
    .art { order: -1; max-width: 460px; margin: 0 auto; }
    main { padding: 26px 18px; }
    .logo { width: 260px; margin: 0 auto; }
    h1 { text-align: center; font-size: 25px; margin: 18px 0 18px; }
    footer ul { justify-content: center; text-align: center; gap: 10px 22px; }
    footer li { font-size: 13.5px; }
  }
  @media (max-width: 420px) { .logo { width: 220px; } footer li { font-size: 12.5px; } }
/* --- added for sign-up / Google / shared bits --- */
.alt { display:flex; align-items:center; gap:12px; margin:18px 0 4px; color:#fff; font-size:12px; opacity:.8; }
.alt::before, .alt::after { content:""; flex:1; height:1px; background:rgba(255,255,255,.35); }
.google {
  width:100%; margin-top:14px; border:0; border-radius:6px; background:#fff; color:#171717;
  padding:13px; font:700 15px Geist, Arial; cursor:pointer;
  display:flex; align-items:center; justify-content:center; gap:10px;
}
.google:hover { background:#f1f1f1; }
.google svg { width:18px; height:18px; flex:0 0 18px; }
.swap { color:#fff; font-size:13.5px; text-align:center; margin-top:18px; opacity:.95; }
.swap a { color:#fff; font-weight:700; }
.ok { color:#e9ffe9; background:rgba(0,0,0,.22); border-radius:6px; font-size:13.5px;
      font-weight:600; margin-top:12px; padding:9px 12px; display:none; }
.ok.on { display:block; }
.hint { color:#fff; font-size:12px; opacity:.8; margin-top:7px; }

/* `hidden` has to win. The UA stylesheet only gives [hidden] a plain display:none, so
   any author rule that sets display - .google and .alt both do - silently overrides it,
   and the Google button rendered on servers with no Google credentials configured. */
[hidden] { display: none !important; }
