*{
  box-sizing:border-box;
  margin:0;
  padding:0;
}

body{
  background:#000;
  color:#e4e4e7;
  font-family:Inter, sans-serif;
  -webkit-font-smoothing:antialiased;
}

.wrapper{
  min-height:100vh;
  display:flex;
  flex-direction:column;
}

/* Header */

header{
  border-bottom:1px solid #18181b;
}

.container{
  max-width:1152px;
  margin:auto;
  padding:20px 24px;
}

.header-inner{
  display:flex;
  justify-content:space-between;
  align-items:center;
}

.logo{
  font-size:18px;
  font-weight:600;
}

.login-link{
  font-size:14px;
  color:#a1a1aa;
  text-decoration:none;
  transition:.2s;
}

.login-link:hover{
  color:#fff;
}

/* Hero */

main{
  flex:1;
  display:flex;
  align-items:center;
}

.hero{
  max-width:768px;
  margin:auto;
  padding:0 24px;
  text-align:center;
}

.hero h2{
  font-size:48px;
  font-weight:600;
  color:#fff;
  letter-spacing:-0.02em;
}

.hero p{
  margin-top:24px;
  color:#a1a1aa;
  font-size:18px;
  line-height:1.6;
}

/* Buttons */

.actions{
  margin-top:40px;
  display:flex;
  justify-content:center;
  gap:16px;
}

.btn{
  padding:16px 24px;
  border-radius:12px;
  font-weight:500;
  text-decoration:none;
  transition:.2s;
  display:inline-block;
}

.btn-primary{
  background:#fff;
  color:#000;
}

.btn-primary:hover{
  opacity:.9;
}

.btn-secondary{
  background:#09090b;
  border:1px solid #27272a;
  color:#fff;
}

.btn-secondary:hover{
  background:#18181b;
}

.muted{
  color:#a1a1aa;
  line-height:1.6;
}

.link-secondary{
  color:#a1a1aa;
  text-decoration:none;
  transition:.2s;
}

.link-secondary:hover{
  color:#fff;
}

.form-extra {
    text-align: right;
    margin-top: 8px;
    margin-bottom: 20px;
}

.forgot-link {
    font-size: 0.9rem;
    color: #a1a1aa;
    text-decoration: none;
    transition: color 0.2s ease;
}

.forgot-link:hover {
    color: #ffffff;
    text-decoration: underline;
}



/* Footer */

footer{
  border-top:1px solid #18181b;
}

.footer-text{
  text-align:center;
  font-size:14px;
  color:#71717a;
  padding:24px;
}

/* Forms */
.forms{
  margin-top:30px;
  display:flex;
  flex-direction:column;
  gap:14px;
}

.input{
  background:#09090b;
  border:1px solid #27272a;
  border-radius:12px;
  padding:16px;
  color:#fff;
  outline:none;
  transition:.2s;
}

.input:focus{
  border-color:#3f3f46;
}

.hidden{
  display:none;
}

.pwHints{
  font-size:13px;
  color:#a1a1aa;
  line-height:1.6;
  margin-top:4px;
}


/* Alerts */
.alert{
  margin-top:20px;
  background:#18181b;
  border:1px solid #27272a;
  padding:14px;
  border-radius:10px;
  font-size:14px;
}

.alert-error{
  color:#f87171;
}

.alert-success{
  color:#4ade80;
}

