/* Shared by login, forgot and reset. Three pages with one look, so the sign-in
   flow never feels like it handed you off to a different site. */
:root{
  --bg:#f6f8fa;
  --panel:#fff;
  --line:#d1d9e0;
  --text:#1f2328;
  --muted:#59636e;
  --accent:#0969da;
  --danger:#cf222e;
  --ok:#1a7f37;
  --ease:cubic-bezier(.32,.72,0,1);
}

*{box-sizing:border-box}

body{
  margin:0;
  min-height:100dvh;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:24px;
  background:var(--bg);
  color:var(--text);
  font-family:system-ui,'Segoe UI',sans-serif;
  -webkit-tap-highlight-color:transparent;
}

.box{
  background:var(--panel);
  border:1px solid var(--line);
  border-radius:16px;
  box-shadow:0 1px 2px rgba(31,35,40,.05);
  padding:26px 22px;
  width:100%;
  max-width:360px;
}

h1{margin:0;font-size:19px;font-weight:600;letter-spacing:-.01em}
.sub{margin:5px 0 20px;font-size:13px;color:var(--muted)}

label{display:block;margin:14px 0 6px;font-size:13px;font-weight:500}

input{
  width:100%;
  padding:11px 12px;
  font-size:16px; /* under 16px, iOS Safari zooms the page on focus */
  font-family:inherit;
  color:var(--text);
  background:var(--bg);
  border:1px solid var(--line);
  border-radius:9px;
  transition:border-color .18s var(--ease), background .18s var(--ease);
}
input:focus{outline:none;border-color:var(--accent);background:var(--panel)}

button{
  width:100%;
  margin-top:20px;
  padding:11px;
  font-size:15px;
  font-weight:600;
  font-family:inherit;
  color:#fff;
  background:var(--accent);
  border:0;
  border-radius:9px;
  cursor:pointer;
  transition:opacity .18s var(--ease), transform .18s var(--ease);
}
button:active{transform:scale(.985)}
button:disabled{opacity:.55;cursor:default}

.msg{margin-top:14px;font-size:13px;min-height:18px;line-height:1.5}
.msg.bad{color:var(--danger)}
.msg.good{color:var(--ok)}

.link{
  display:block;
  margin-top:16px;
  font-size:13px;
  color:var(--muted);
  text-decoration:none;
  text-align:center;
}
.link:hover{color:var(--accent)}

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