/* Shared chrome for the signed-out pages (login, register, forgot-password).
   These rules were copied byte-for-byte between login.html and register.html;
   a third page made that a third copy, so they live here once. Page-specific
   bits (login's inline resend link, register's success modal) stay inline. */
*{box-sizing:border-box}
body{
  margin:0; background:var(--ground); color:var(--ink); min-height:100vh;
  display:flex; align-items:center; justify-content:center;
  font-family:system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif; line-height:1.55;
}
.wrap{width:100%; max-width:360px; padding:20px}
.eyebrow{font-family:ui-monospace,Menlo,monospace; font-size:.72rem; letter-spacing:.2em;
  text-transform:uppercase; color:var(--accent); font-weight:600; margin-bottom:8px}
h1{font-size:1.5rem; letter-spacing:-.02em; margin:0 0 20px}
.card{background:var(--surface); border:1px solid var(--border); border-radius:16px;
  box-shadow:var(--shadow); padding:22px}
form{display:flex; flex-direction:column; gap:14px}
label.field{display:flex; flex-direction:column; gap:6px}
.lbl{font-family:ui-monospace,Menlo,monospace; font-size:.72rem; letter-spacing:.08em;
  text-transform:uppercase; color:var(--ink-3); font-weight:600}
input{
  font-size:1rem; padding:12px 14px; color:var(--ink);
  background:var(--surface-2); border:1.5px solid var(--border); border-radius:10px;
  font-family:ui-monospace,Menlo,monospace;
}
input:focus{outline:none; border-color:var(--accent-line)}
.pwrap{position:relative}
.pwrap input{width:100%; padding-right:42px}
.eye{position:absolute; right:6px; top:50%; transform:translateY(-50%);
  display:flex; align-items:center; justify-content:center; width:30px; height:30px;
  background:none; border:0; border-radius:8px; color:var(--ink-3); cursor:pointer; padding:0}
.eye:hover{color:var(--ink)}
.eye .eye-off{display:none}
.eye.is-visible .eye-on{display:none}
.eye.is-visible .eye-off{display:block}
button{
  font-size:1rem; font-weight:640; padding:13px; border-radius:10px; border:0; cursor:pointer;
  background:var(--accent-line); color:var(--on-accent); transition:filter .15s
}
button:hover:not(:disabled){filter:brightness(1.07)}
button:disabled{opacity:.55; cursor:not-allowed}
.banner.ok{margin-top:2px; border:1px solid var(--border); border-left:3px solid var(--good);
  background:color-mix(in srgb,var(--good-soft) 34%,var(--surface)); border-radius:10px;
  padding:10px 12px; font-size:.88rem}
.banner.err{margin-top:2px; border:1px solid var(--border); border-left:3px solid var(--risk);
  background:color-mix(in srgb,var(--risk-soft) 34%,var(--surface)); border-radius:10px;
  padding:10px 12px; font-size:.88rem}
.empty{color:var(--ink-3); font-size:.88rem; text-align:center; padding:8px 0}
.hint{font-size:.8rem; color:var(--ink-3); margin:16px 0 0}
