@font-face{font-family:'Inter';font-style:normal;font-weight:500;font-display:swap;src:url('/fonts/inter-500.woff2') format('woff2')}
@font-face{font-family:'Inter';font-style:normal;font-weight:700;font-display:swap;src:url('/fonts/inter-700.woff2') format('woff2')}
@font-face{font-family:'Inter';font-style:normal;font-weight:800;font-display:swap;src:url('/fonts/inter-800.woff2') format('woff2')}
@font-face{font-family:'Montserrat';font-style:normal;font-weight:400;font-display:swap;src:url('/fonts/montserrat-400.woff2') format('woff2')}
@font-face{font-family:'Montserrat';font-style:normal;font-weight:600;font-display:swap;src:url('/fonts/montserrat-600.woff2') format('woff2')}

:root{
  --ink:#000;
  --muted:#9CA3AF;
  --icon:#4B5563;
  --hover:#1f2937;
  --error-bg:#F5F5F5;
  --display:'Inter',system-ui,-apple-system,'Segoe UI',sans-serif;
  --body:'Montserrat',system-ui,-apple-system,'Segoe UI',sans-serif;
}

*,*::before,*::after{box-sizing:border-box}
html{font-size:16px}
body{
  margin:0;min-height:100vh;
  display:flex;align-items:center;justify-content:center;
  background:#fff;color:var(--ink);
  font-family:var(--body);
  padding:1.5rem;
  -webkit-font-smoothing:antialiased;
}

.auth-shell{
  width:100%;max-width:28.125rem;
  display:flex;flex-direction:column;align-items:center;gap:2.5rem;
  padding:2rem 1.5rem;
}

.auth-logo{height:5rem;width:auto;display:block}

.auth-head{display:flex;flex-direction:column;gap:.5rem;text-align:center;width:100%}
.auth-title{margin:0;font-family:var(--display);font-weight:800;font-size:2.125rem;line-height:1.44;color:var(--ink)}
.auth-subtitle{margin:0;font-family:var(--display);font-weight:700;font-size:1rem;line-height:1.5625;color:var(--ink)}

.auth-error{
  width:100%;
  background:var(--error-bg);border-left:4px solid var(--ink);border-radius:.25rem;
  padding:.75rem 1rem;
  font-family:var(--body);font-size:.875rem;line-height:1.4;color:var(--ink);
}

.auth-form{display:flex;flex-direction:column;gap:1.5rem;width:100%}

.field{
  display:flex;align-items:center;gap:.75rem;
  background:#fff;border:2px solid var(--ink);border-radius:.5rem;
  padding:1rem 1.5rem;
  transition:box-shadow .2s;
}
.field:focus-within{box-shadow:0 0 0 2px rgba(0,0,0,.1)}
.field input{
  flex:1;min-width:0;
  border:0;outline:none;background:transparent;
  font-family:var(--body);font-weight:400;font-size:1rem;line-height:1.5;color:var(--ink);
}
.field input::placeholder{color:var(--muted)}
.field input.code{letter-spacing:.4rem;text-align:center;font-size:1.25rem}

.pw-toggle{
  flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;
  border:0;background:transparent;padding:0;margin:0;cursor:pointer;
  color:var(--icon);transition:color .2s;
}
.pw-toggle:hover{color:var(--ink)}
.pw-toggle svg{width:1.25rem;height:1.25rem;display:block}
.pw-toggle .icon-hide{display:none}
.pw-toggle.is-revealed .icon-show{display:none}
.pw-toggle.is-revealed .icon-hide{display:block}

.auth-actions{display:flex;flex-direction:column;align-items:center;gap:1.5rem;width:100%}

.sso-link{
  display:inline-flex;align-items:center;gap:.25rem;
  font-family:var(--display);font-weight:500;font-size:.875rem;
  color:var(--ink);text-decoration:none;
}
.sso-link:hover{text-decoration:underline}
.sso-link svg{width:.625rem;height:.625rem}

.btn-primary{
  width:19.8125rem;max-width:100%;height:4.5625rem;
  border:2px solid var(--ink);border-radius:70px;
  background:var(--ink);color:#fff;cursor:pointer;
  font-family:var(--body);font-weight:600;font-size:1.125rem;letter-spacing:.02em;
  transition:background .2s,box-shadow .2s;
}
.btn-primary:hover{background:var(--hover);box-shadow:0 10px 15px -3px rgba(0,0,0,.1)}
.btn-primary:disabled{opacity:.5;cursor:not-allowed}

.btn-secondary{
  width:19.8125rem;max-width:100%;height:4.5625rem;
  border:2px solid var(--ink);border-radius:70px;
  background:#fff;color:var(--ink);cursor:pointer;
  font-family:var(--body);font-weight:600;font-size:1.125rem;letter-spacing:.02em;
  transition:background .2s,color .2s;
}
.btn-secondary:hover{background:var(--ink);color:#fff}

.btn-row{display:flex;gap:1rem;width:100%}
.btn-row .btn-primary,.btn-row .btn-secondary{width:auto;flex:1;height:3.5rem;font-size:1rem}

.consent-lead{margin:0;font-family:var(--body);font-size:1rem;line-height:1.5;text-align:center;color:var(--ink)}
.scopes{margin:0;width:100%;list-style:none;padding:0;display:flex;flex-direction:column;gap:.5rem}
.scopes li{
  font-family:var(--body);font-size:.9375rem;color:var(--ink);
  background:var(--error-bg);border-radius:.5rem;padding:.625rem .875rem;
}

.forgot-link{
  font-family:var(--display);font-weight:500;font-size:.875rem;
  color:var(--ink);text-decoration:none;text-align:center;
}
.forgot-link:hover{text-decoration:underline}

.continue-link{
  font-family:var(--display);font-weight:600;font-size:1rem;
  color:var(--ink);text-decoration:none;
}
.continue-link:hover{text-decoration:underline}

.qr-code{
  width:13.75rem;height:13.75rem;display:block;margin:0 auto;
  border:2px solid var(--ink);border-radius:.5rem;padding:.5rem;background:#fff;
}

.secret-key{
  width:100%;margin:0;
  font-family:var(--body);font-weight:600;font-size:1rem;letter-spacing:.1rem;text-align:center;color:var(--ink);
  background:var(--error-bg);border-radius:.5rem;padding:.75rem 1rem;cursor:pointer;word-break:break-all;
}

.codes-grid{
  margin:0;width:100%;list-style:none;padding:0;
  display:grid;grid-template-columns:1fr 1fr;gap:.5rem;
}
.code-item{
  font-family:var(--body);font-weight:600;font-size:.9375rem;letter-spacing:.05rem;text-align:center;color:var(--ink);
  background:var(--error-bg);border-radius:.5rem;padding:.625rem .5rem;
}

.mfa-status{
  width:100%;background:var(--error-bg);border-left:4px solid var(--ink);border-radius:.25rem;padding:.75rem 1rem;
}
.mfa-status p{margin:0;font-family:var(--body);font-size:.9375rem;line-height:1.4;color:var(--ink)}

.mfa-actions{display:flex;flex-direction:column;align-items:center;gap:1.5rem;width:100%}
