.user-hero{
  background:
    linear-gradient(90deg,rgba(0,0,0,.88),rgba(0,0,0,.58),rgba(0,0,0,.18)),
    url('/assets/img/login-hero.png');
  background-size:cover;
  background-position:center;
}

.user-auth-wrap{
  max-width:560px;
}

.auth-card{
  background:#fff;
  border-radius:32px;
  padding:38px;
  box-shadow:0 18px 50px rgba(0,0,0,.07);
  display:flex;
  flex-direction:column;
  gap:14px;
}

.auth-card h2{
  font-size:42px;
  line-height:.95;
  margin:0 0 14px;
  text-transform:uppercase;
}

.auth-card label{
  font-weight:900;
  color:#111;
}

.auth-card input{
  height:54px;
  border-radius:16px;
  border:1px solid #ddd;
  background:#f7f7f7;
  padding:0 16px;
  font-size:16px;
  font-weight:700;
}

.auth-card button{
  margin-top:12px;
}

.auth-small{
  color:#555;
  font-size:14px;
}

.auth-small a{
  color:#111;
  font-weight:900;
}

.auth-error{
  background:#ffe1e1;
  color:#8a0000;
  border:1px solid #ffb7b7;
  border-radius:16px;
  padding:12px 14px;
  font-weight:800;
}

.user-dashboard-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:24px;
}

.user-card{
  background:#fff;
  border-radius:32px;
  padding:34px;
  box-shadow:0 18px 50px rgba(0,0,0,.07);
}

.user-card h2{
  font-size:36px;
  line-height:.95;
  margin:0 0 14px;
  text-transform:uppercase;
}

.user-card p{
  color:#444;
  line-height:1.55;
}

@media(max-width:900px){
  .user-dashboard-grid{
    grid-template-columns:1fr;
  }

  .auth-card h2,
  .user-card h2{
    font-size:32px;
  }
}

.user-card-wide{
  grid-column:1 / -1;
}

.user-card-head{
  display:flex;
  justify-content:space-between;
  gap:20px;
  align-items:flex-start;
  margin-bottom:24px;
}

.user-bookings{
  display:grid;
  gap:12px;
}

.booking-row{
  display:flex;
  justify-content:space-between;
  gap:18px;
  align-items:center;
  background:#f5f5f5;
  border-radius:20px;
  padding:18px;
}

.booking-row strong{
  display:block;
  color:#000;
  font-size:18px;
}

.booking-row span{
  display:block;
  color:#555;
  margin-top:4px;
}

.booking-row em{
  display:inline-block;
  margin-top:8px;
  color:#000;
  background:#ffd400;
  padding:5px 9px;
  border-radius:999px;
  font-size:12px;
  font-style:normal;
  font-weight:900;
}

.booking-cancel{
  border:0;
  border-radius:999px;
  padding:10px 16px;
  background:#111;
  color:#fff;
  font-weight:900;
  cursor:pointer;
}

.empty-user-state{
  background:#f5f5f5;
  border-radius:20px;
  padding:22px;
}

@media(max-width:800px){
  .user-card-head,
  .booking-row{
    flex-direction:column;
    align-items:flex-start;
  }
}

.dashboard-stats{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:18px;
  margin-bottom:28px;
}

.dashboard-stats article{
  background:#fff;
  border-radius:28px;
  padding:26px;
  box-shadow:0 18px 50px rgba(0,0,0,.07);
}

.dashboard-stats strong{
  display:block;
  font-size:46px;
  line-height:1;
  color:#000;
}

.dashboard-stats span{
  display:block;
  margin-top:8px;
  color:#555;
  font-weight:900;
}

.user-dashboard-layout{
  display:grid;
  grid-template-columns:1.2fr .8fr;
  gap:24px;
}

.user-card-wide{
  grid-column:1 / -1;
}

.user-card-head{
  display:flex;
  justify-content:space-between;
  gap:20px;
  align-items:flex-start;
  margin-bottom:24px;
}

.user-bookings,
.mini-list{
  display:grid;
  gap:12px;
}

.booking-row,
.mini-row{
  display:flex;
  justify-content:space-between;
  gap:18px;
  align-items:center;
  background:#f5f5f5;
  border-radius:20px;
  padding:18px;
}

.booking-row strong,
.mini-row strong{
  display:block;
  color:#000;
  font-size:18px;
}

.booking-row span,
.mini-row span{
  display:block;
  color:#555;
  margin-top:4px;
}

.booking-row em,
.mini-row em{
  display:inline-block;
  color:#000;
  background:#ffd400;
  padding:6px 10px;
  border-radius:999px;
  font-size:12px;
  font-style:normal;
  font-weight:900;
}

.booking-cancel{
  border:0;
  border-radius:999px;
  padding:10px 16px;
  background:#111;
  color:#fff;
  font-weight:900;
  cursor:pointer;
}

.empty-user-state{
  background:#f5f5f5;
  border-radius:20px;
  padding:22px;
}

.yellow-card{
  background:#ffd400;
}

@media(max-width:900px){
  .dashboard-stats,
  .user-dashboard-layout{
    grid-template-columns:1fr;
  }

  .user-card-head,
  .booking-row,
  .mini-row{
    flex-direction:column;
    align-items:flex-start;
  }
}

.auth-success{
  background:#dfffe7;
  color:#063d14;
  border:1px solid #b5f3c5;
  border-radius:16px;
  padding:12px 14px;
  font-weight:800;
}