
.sso{display:block; text-align:center; padding:11px 14px; border-radius:10px; background:var(--accent);
  color:var(--accent-ink); text-decoration:none; font-weight:600; margin:14px 0 4px}
.sso:focus-visible{outline:2px solid var(--ink); outline-offset:2px}
.or{text-align:center; color:var(--muted); font-size:13px; margin:10px 0 2px}
:root{
  --ground:#FAFAFA; --rule-bg:#F0F0F1; --surface:#FFFFFF; --surface-2:#F4F4F5;
  --ink:#18181B; --muted:#71717A; --rule:#E4E4E7; --accent:#4F46E5;
  --accent-ink:#FFFFFF; --danger:#DC2626; --danger-bg:#FEF2F2;
  --shadow:0 1px 2px rgba(24,24,27,.05), 0 20px 48px -24px rgba(24,24,27,.3);
  --sans:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
  --mono:"IBM Plex Mono",ui-monospace,Menlo,monospace;
  color-scheme:light;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --ground:#0E0F12; --rule-bg:#17181C; --surface:#17181C; --surface-2:#1E1F24;
  --ink:#ECEDEF; --muted:#9CA0A8; --rule:#2A2C33; --accent:#818CF8;
  --accent-ink:#0B0C10; --danger:#F87171; --danger-bg:#2A1A1A;
  --shadow:0 1px 2px rgba(0,0,0,.5), 0 24px 56px -26px rgba(0,0,0,.9);
  color-scheme:dark;
}}
:root[data-theme="dark"]{
  --ground:#0E0F12; --rule-bg:#17181C; --surface:#17181C; --surface-2:#1E1F24;
  --ink:#ECEDEF; --muted:#9CA0A8; --rule:#2A2C33; --accent:#818CF8;
  --accent-ink:#0B0C10; --danger:#F87171; --danger-bg:#2A1A1A;
  --shadow:0 1px 2px rgba(0,0,0,.5), 0 24px 56px -26px rgba(0,0,0,.9);
  color-scheme:dark;
}
*{box-sizing:border-box}
body{
  margin:0; min-height:100svh;
  display:flex; align-items:center; justify-content:center;
  padding:32px 20px;
  background:var(--ground);
  color:var(--ink); font-family:var(--sans); font-size:15px; line-height:30px;
  -webkit-font-smoothing:antialiased;
}
.sheet{
  width:100%; max-width:390px;
  background:var(--surface); border:1px solid var(--rule); border-radius:14px;
  padding:34px 32px 28px;
  box-shadow:var(--shadow);
}
h1{font-weight:600; font-size:22px; line-height:1.25; margin:0 0 6px; letter-spacing:-.02em}
h1 em{font-style:normal; color:var(--accent)}
.sub{font-size:13px; color:var(--muted); line-height:1.6; margin-bottom:26px}
form{display:flex; flex-direction:column; gap:18px}
.row{display:flex; flex-direction:column; gap:5px}
label{font-size:12.5px; font-weight:500; color:var(--muted)}
input[type=text],input[type=password]{
  font-family:var(--sans); font-size:14.5px; color:var(--ink);
  background:var(--surface); border:1px solid var(--rule); border-radius:8px;
  padding:10px 12px; outline:none; width:100%;
  transition:border-color .15s ease;
}
input:focus{border-color:var(--accent)}
input:-webkit-autofill{-webkit-text-fill-color:var(--ink); transition:background-color 9999s}
.pw{position:relative}
.peek{
  position:absolute; right:0; bottom:6px;
  background:none; border:0; cursor:pointer; padding:2px 0;
  font-family:var(--mono); font-size:10px; letter-spacing:.09em;
  text-transform:uppercase; color:var(--muted);
}
.peek:hover{color:var(--ink)}
button[type=submit]{
  margin-top:6px; width:100%; border-radius:6px;
  font-family:var(--sans); font-size:14px; font-weight:500; letter-spacing:.01em;
  color:var(--accent-ink); background:var(--accent);
  border:0; padding:11px 16px; cursor:pointer;
  transition:opacity .15s ease;
}
button[type=submit]:hover{opacity:.9}
.alert{
  display:flex; gap:9px; align-items:flex-start;
  background:var(--danger-bg); color:var(--danger);
  border-left:2px solid var(--danger);
  padding:9px 12px; font-size:13.5px; line-height:1.45; border-radius:0 3px 3px 0;
}
.foot{
  margin-top:24px; padding-top:14px; border-top:1px solid var(--rule);
  font-family:var(--mono); font-size:10.5px; letter-spacing:.09em;
  text-transform:uppercase; color:var(--muted);
}
.foot a{color:var(--muted)}
:focus-visible{outline:2px solid var(--accent); outline-offset:3px}
@media (prefers-reduced-motion:reduce){*{transition:none !important}}
