/* ============ DEMO BANNER ============ */
.demo-banner{
  background:linear-gradient(90deg, var(--ember-deep), var(--ember));
  color:var(--ivory);
  text-align:center;
  font-size:.78rem;
  letter-spacing:.06em;
  padding:.55rem 1rem;
  position:relative;
  z-index:1200;
}
.demo-banner strong{ letter-spacing:.14em; text-transform:uppercase; }

/* ============ LOGIN PAGE ============ */
.login-wrap{
  min-height:100vh;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:3rem 1.2rem;
  background:
    linear-gradient(180deg, rgba(13,10,8,.7), rgba(13,10,8,.92)),
    url('https://images.unsplash.com/photo-1517248135467-4c7edcad34c4?q=80&w=1974&auto=format&fit=crop') center/cover fixed;
}
.login-card{
  width:100%;
  max-width:420px;
  background:var(--charcoal-3);
  border:1px solid rgba(201,162,75,.18);
  border-radius:6px;
  padding:3rem 2.4rem;
  box-shadow:0 30px 60px -20px rgba(0,0,0,.6);
}
.login-card .brand-mark{
  display:block; text-align:center; font-size:1.7rem; margin-bottom:.4rem;
}
.login-sub{
  text-align:center; color:var(--ivory-dim); font-size:.85rem;
  margin-bottom:2.2rem;
}
.login-card .form-label-custom{ display:block; }
.login-card .form-control-custom{ width:100%; margin-bottom:1.6rem; }
.login-error{
  display:none;
  background:rgba(194,65,12,.12);
  border:1px solid rgba(194,65,12,.4);
  color:#f2b48c;
  font-size:.82rem;
  padding:.7rem 1rem;
  border-radius:3px;
  margin-bottom:1.4rem;
}
.login-error.show{ display:block; }
.shake{ animation:shakeCard .4s ease; }
@keyframes shakeCard{
  0%,100%{ transform:translateX(0); }
  20%{ transform:translateX(-8px); }
  40%{ transform:translateX(8px); }
  60%{ transform:translateX(-5px); }
  80%{ transform:translateX(5px); }
}
.demo-creds{
  margin-top:2rem;
  border-top:1px dashed rgba(201,162,75,.25);
  padding-top:1.4rem;
  text-align:center;
  font-size:.78rem;
  color:var(--ivory-dim);
}
.demo-creds code{
  background:rgba(201,162,75,.12);
  color:var(--brass-soft);
  padding:.15rem .5rem;
  border-radius:3px;
  font-size:.78rem;
}
.login-back{
  display:block; text-align:center; margin-top:1.6rem;
  font-size:.78rem; letter-spacing:.1em; text-transform:uppercase; color:var(--ivory-dim);
}
.login-back:hover{ color:var(--brass-soft); }

/* ============ ADMIN SHELL ============ */
.admin-shell{ display:flex; min-height:100vh; }

.admin-sidebar{
  width:250px; flex-shrink:0;
  background:var(--smoke);
  border-right:1px solid rgba(201,162,75,.14);
  padding:1.8rem 1.4rem;
  position:sticky; top:0; height:100vh; overflow-y:auto;
}
.admin-sidebar .brand-mark{ font-size:1.3rem; display:block; margin-bottom:2.6rem; }
.admin-nav a{
  display:flex; align-items:center; gap:.8rem;
  color:var(--ivory-dim);
  font-size:.85rem; letter-spacing:.03em;
  padding:.75rem .9rem;
  border-radius:4px;
  margin-bottom:.3rem;
  transition:all .25s ease;
}
.admin-nav a i{ font-size:1.05rem; width:20px; text-align:center; color:var(--brass-soft); }
.admin-nav a:hover{ background:rgba(201,162,75,.08); color:var(--ivory); }
.admin-nav a.active{ background:rgba(194,65,12,.14); color:var(--ivory); border-left:2px solid var(--ember); }
.admin-nav .nav-divider{
  font-size:.65rem; letter-spacing:.2em; text-transform:uppercase;
  color:rgba(207,198,180,.4); margin:1.6rem 0 .6rem .9rem;
}

.admin-main{ flex:1; min-width:0; }
.admin-topbar{
  display:flex; align-items:center; justify-content:space-between;
  padding:1.4rem 2.2rem;
  border-bottom:1px solid rgba(201,162,75,.14);
  background:var(--charcoal);
  position:sticky; top:0; z-index:50;
  flex-wrap:wrap; gap:1rem;
}
.admin-topbar h1{ font-size:1.5rem; margin:0; color:var(--ivory); }
.admin-search{
  background:var(--charcoal-3); border:1px solid rgba(201,162,75,.16);
  border-radius:4px; padding:.5rem 1rem; color:var(--ivory-dim);
  font-size:.82rem; min-width:220px;
}
.admin-search:focus{ outline:none; border-color:var(--brass); color:var(--ivory); }
.admin-profile{ display:flex; align-items:center; gap:.8rem; }
.admin-avatar{
  width:38px; height:38px; border-radius:50%;
  background:linear-gradient(135deg, var(--ember), var(--brass));
  display:flex; align-items:center; justify-content:center;
  font-family:var(--font-display); font-weight:600; color:var(--charcoal); font-size:.9rem;
}
.admin-profile .name{ font-size:.85rem; color:var(--ivory); line-height:1.1; }
.admin-profile .role{ font-size:.7rem; color:var(--ivory-dim); }
.admin-logout{
  color:var(--ivory-dim); font-size:1.2rem; border:1px solid rgba(201,162,75,.2);
  width:38px; height:38px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  transition:all .25s ease;
}
.admin-logout:hover{ background:var(--ember); color:var(--ivory); border-color:var(--ember); }

.admin-content{ padding:2.2rem; }

.stat-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:1.2rem; margin-bottom:2rem; }
@media (max-width:991px){ .stat-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:575px){ .stat-grid{ grid-template-columns:1fr; } }
.stat-card{
  background:var(--charcoal-2); border:1px solid rgba(201,162,75,.14);
  border-radius:6px; padding:1.6rem;
}
.stat-card .top{ display:flex; justify-content:space-between; align-items:flex-start; margin-bottom:1rem; }
.stat-card i{ font-size:1.3rem; color:var(--brass); }
.stat-card .value{ font-family:var(--font-display); font-size:1.9rem; color:var(--ivory); }
.stat-card .label{ font-size:.78rem; color:var(--ivory-dim); letter-spacing:.03em; }
.stat-card .trend{ font-size:.72rem; margin-top:.4rem; }
.trend.up{ color:#7fbf7f; }
.trend.down{ color:#e08a6c; }

.admin-panel{
  background:var(--charcoal-2); border:1px solid rgba(201,162,75,.14);
  border-radius:6px; padding:1.8rem; margin-bottom:2rem;
}
.admin-panel h3{ font-size:1.1rem; color:var(--ivory); margin-bottom:1.4rem; }

.admin-table{ width:100%; border-collapse:collapse; font-size:.85rem; }
.admin-table th{
  text-align:left; font-size:.68rem; letter-spacing:.14em; text-transform:uppercase;
  color:var(--brass-soft); padding:.7rem .6rem; border-bottom:1px solid rgba(201,162,75,.18);
}
.admin-table td{ padding:.85rem .6rem; border-bottom:1px solid rgba(201,162,75,.08); color:var(--ivory-dim); }
.admin-table tr:hover td{ background:rgba(201,162,75,.04); }
.status-badge{
  font-size:.68rem; letter-spacing:.05em; padding:.25rem .65rem; border-radius:20px; text-transform:uppercase;
}
.status-badge.confirmed{ background:rgba(127,191,127,.14); color:#7fbf7f; }
.status-badge.pending{ background:rgba(201,162,75,.16); color:var(--brass-soft); }
.status-badge.cancelled{ background:rgba(224,138,108,.14); color:#e08a6c; }

.msg-list{ list-style:none; margin:0; padding:0; }
.msg-list li{ padding:.9rem 0; border-bottom:1px solid rgba(201,162,75,.08); }
.msg-list li:last-child{ border-bottom:none; }
.msg-list .msg-top{ display:flex; justify-content:space-between; font-size:.82rem; color:var(--ivory); margin-bottom:.3rem; }
.msg-list .msg-time{ color:rgba(207,198,180,.5); font-size:.72rem; }
.msg-list .msg-body{ font-size:.82rem; color:var(--ivory-dim); }

.chart-wrap{ height:260px; position:relative; }

@media (max-width:767px){
  .admin-shell{ flex-direction:column; }
  .admin-sidebar{ width:100%; height:auto; position:relative; padding:1.2rem; }
  .admin-nav{ display:flex; overflow-x:auto; gap:.4rem; }
  .admin-nav a{ white-space:nowrap; margin-bottom:0; }
  .admin-nav .nav-divider{ display:none; }
}
