/* Sign-in, sign-up and email-link pages (login.php, signup.php).
   Fallbacks only: theme.css, loaded after, supplies the real palette and faces. */
:root{--ink:#1b1626;--ink-2:#4c4459;--ink-3:#857c93;--paper:#f8f7fb;--card:#fff;--rule:#e6e3ee;
  --accent:#5b4b8a;--soft:#efebf7;--bad:#c9425f;--bad-bg:#fdf0f2;--radius:12px;
  --shadow:0 1px 2px rgba(27,22,38,.04),0 8px 24px rgba(27,22,38,.05);
  --font-display:Georgia,serif;--font-ui:system-ui,sans-serif}
*{box-sizing:border-box}
html,body{height:100%}
body{margin:0;display:flex;flex-direction:column;min-height:100vh;
  background:var(--paper);color:var(--ink);font:15px/1.6 var(--font-ui)}

main{flex:1;display:flex;align-items:center;justify-content:center;padding:40px 16px 24px}
.shell{width:100%;max-width:404px}

.brand{text-align:center;margin-bottom:26px}
/* 325 x 56 at full size; on a narrower phone it scales down whole */
.brand img{display:block;width:min(325px,100%);height:auto;margin:0 auto 10px}
.brand .logo-dark{display:none}
[data-theme="dark"] .brand .logo-light{display:none}
[data-theme="dark"] .brand .logo-dark{display:block}
.brand .line{display:block;margin-top:6px;font-size:12px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--ink-3)}

.card{background:var(--card);border:1px solid var(--rule);border-radius:var(--radius);
  box-shadow:var(--shadow);padding:30px 30px 28px}
.card h1{font-family:var(--font-display);font-size:22px;font-weight:700;margin:0 0 4px;
  letter-spacing:-.01em}
.card .lede{margin:0 0 22px;color:var(--ink-3);font-size:14px}

.err{display:flex;gap:10px;background:var(--bad-bg);border:1px solid var(--rule);
  border-left:3px solid var(--bad);color:var(--bad);border-radius:8px;
  padding:10px 13px;font-size:14px;margin:0 0 18px}

.field{margin-bottom:16px}
.field label{display:block;font-size:13px;font-weight:500;color:var(--ink-2);margin-bottom:6px}
.field input{width:100%;height:46px;padding:0 14px;font:15px var(--font-ui);color:var(--ink);
  background:var(--card);border:1px solid var(--rule);border-radius:10px;
  transition:border-color .15s,box-shadow .15s}
.field input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--soft)}
.pw{position:relative}
.pw input{padding-right:70px}
.pw .show{position:absolute;right:6px;top:50%;transform:translateY(-50%);height:34px;
  padding:0 10px;border:0;border-radius:7px;background:none;color:var(--ink-3);
  font:500 13px var(--font-ui);cursor:pointer}
.pw .show:hover{color:var(--accent);background:var(--soft)}
.pw .show:focus-visible{outline:2px solid var(--accent);outline-offset:1px}

.install{border:1px solid var(--rule);background:none;color:var(--accent);border-radius:99px;padding:7px 16px;font:600 13px var(--font-ui);cursor:pointer}
.keep{display:flex;align-items:center;gap:9px;margin:2px 0 14px;font-size:14px;color:var(--ink-2);cursor:pointer}
.keep input{width:18px;height:18px;accent-color:var(--accent);margin:0}
.go{width:100%;height:48px;margin-top:6px;border:0;border-radius:10px;background:var(--accent);
  color:#fff;font:600 15px var(--font-ui);letter-spacing:.01em;cursor:pointer;
  transition:filter .15s}
.go:hover{filter:brightness(1.07)}
.go:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.go[disabled]{cursor:default;filter:none;opacity:.75}
/* dark mode lifts the accent to a light violet: white text on it is ~2.7:1,
   dark ink is ~6.8:1 */
[data-theme="dark"] .go{color:var(--paper)}

.note{margin:22px 0 0;padding-top:18px;border-top:1px solid var(--rule);
  font-size:13px;color:var(--ink-3);text-align:center}
.note p{margin:0 0 6px}
.note p:last-child{margin:0}

footer{text-align:center;font-size:12px;color:var(--ink-3);padding:0 16px 22px}
footer .tm{max-width:460px;margin:6px auto 0;font-size:11px;line-height:1.5}

@media (max-width:440px){
  main{padding-top:28px}
  .card{padding:24px 20px 22px}
  .brand .name{font-size:26px}
}
.field .hint{margin:6px 0 0;font-size:12px;color:var(--ink-3)}
.ok{display:flex;gap:10px;background:var(--soft);border:1px solid var(--rule);border-left:3px solid var(--accent);border-radius:8px;padding:10px 13px;font-size:14px;margin:0 0 18px}
.hp{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.field select{width:100%;height:46px;padding:0 12px;font:15px var(--font-ui);color:var(--ink);
  background:var(--card);border:1px solid var(--rule);border-radius:10px}
.field select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--soft)}
.keep.offers{align-items:flex-start;font-size:13px;line-height:1.45}
.keep.offers input{margin-top:2px;flex:none}
