/* ============================================================
   HallBook — Admin Panel Styles
   Distinct from public site: fixed dark sidebar + light workspace
   ============================================================ */

:root{
  --a-navy-950:#070f22;
  --a-navy-900:#0d1930;
  --a-navy-800:#152244;
  --a-purple:#6d3ce0;
  --a-purple-light:#8b5cf6;
  --a-gold:#d4af37;
  --a-bg:#f3f4f9;
  --a-card:#ffffff;
  --a-border:#e4e6f0;
  --a-text:#1a1f2e;
  --a-muted:#6b7280;
  --font-display:'Playfair Display', serif;
  --font-body:'Inter', sans-serif;
}

*{box-sizing:border-box;}
body{
  font-family:var(--font-body);
  background:var(--a-bg);
  color:var(--a-text);
}

/* ---------- Login screen ---------- */
.admin-login-wrap{
  min-height:100vh;
  display:flex;align-items:center;justify-content:center;
  background:
    radial-gradient(800px 400px at 15% 10%, rgba(109,60,224,.35), transparent 60%),
    radial-gradient(700px 400px at 90% 90%, rgba(212,175,55,.14), transparent 60%),
    var(--a-navy-950);
  padding:2rem;
}
.admin-login-card{
  width:100%;max-width:420px;
  background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.12);
  border-radius:20px;
  padding:2.6rem 2.4rem;
  backdrop-filter:blur(14px);
  color:#fff;
}
.admin-login-logo{
  width:54px;height:54px;border-radius:14px;
  background:linear-gradient(135deg,var(--a-purple-light),var(--a-purple));
  display:flex;align-items:center;justify-content:center;
  font-family:var(--font-display);font-weight:700;color:#fff;font-size:1.3rem;
  margin-bottom:1.2rem;
}
.admin-login-card h3{font-family:var(--font-display);color:#fff;}
.admin-login-card .form-label{color:rgba(255,255,255,.75);font-size:.85rem;}
.admin-login-card .form-control{
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.18);
  color:#fff;border-radius:10px;padding:.65rem .9rem;
}
.admin-login-card .form-control:focus{
  background:rgba(255,255,255,.09);
  border-color:var(--a-gold);
  box-shadow:0 0 0 3px rgba(212,175,55,.15);
  color:#fff;
}
.admin-login-card .form-control::placeholder{color:rgba(255,255,255,.4);}
.btn-admin-primary{
  background:linear-gradient(135deg,var(--a-purple-light),var(--a-purple));
  border:none;color:#fff;font-weight:600;border-radius:10px;padding:.7rem;
  width:100%;transition:.18s ease;
}
.btn-admin-primary:hover{transform:translateY(-1px);box-shadow:0 10px 22px rgba(109,60,224,.4);color:#fff;}
.admin-demo-creds{
  background:rgba(212,175,55,.1);
  border:1px dashed rgba(212,175,55,.4);
  border-radius:10px;padding:.8rem 1rem;font-size:.82rem;color:rgba(255,255,255,.8);
}

/* ---------- Shell layout ---------- */
.admin-shell{display:flex;min-height:100vh;}

.admin-sidebar{
  width:250px;flex:0 0 250px;
  background:var(--a-navy-950);
  color:rgba(255,255,255,.75);
  padding:1.4rem 1rem;
  position:fixed;top:0;bottom:0;left:0;
  overflow-y:auto;
  z-index:50;
}
.admin-sidebar .brand{
  display:flex;align-items:center;gap:.6rem;
  color:#fff;font-family:var(--font-display);font-size:1.25rem;font-weight:700;
  padding:.4rem .5rem 1.4rem;
  border-bottom:1px solid rgba(255,255,255,.08);
  margin-bottom:1rem;
}
.admin-sidebar .brand span{color:var(--a-gold);}
.admin-nav-link{
  display:flex;align-items:center;gap:.75rem;
  padding:.65rem .9rem;border-radius:10px;
  color:rgba(255,255,255,.68);font-size:.92rem;font-weight:500;
  margin-bottom:.2rem;
  transition:.15s ease;
}
.admin-nav-link i{width:18px;text-align:center;font-size:.95rem;}
.admin-nav-link:hover{background:rgba(255,255,255,.06);color:#fff;}
.admin-nav-link.active{
  background:linear-gradient(135deg,var(--a-purple-light),var(--a-purple));
  color:#fff;
  box-shadow:0 8px 18px rgba(109,60,224,.35);
}
.admin-nav-section{
  font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;
  color:rgba(255,255,255,.35);margin:1.1rem .6rem .4rem;
}

.admin-main{
  margin-left:250px;
  flex:1;
  min-height:100vh;
  display:flex;flex-direction:column;
}
.admin-topbar{
  background:#fff;border-bottom:1px solid var(--a-border);
  padding:.9rem 1.6rem;
  display:flex;align-items:center;justify-content:space-between;
  position:sticky;top:0;z-index:40;
}
.admin-topbar h5{margin:0;font-family:var(--font-display);}
.admin-topbar .admin-user{
  display:flex;align-items:center;gap:.6rem;
}
.admin-avatar{
  width:38px;height:38px;border-radius:50%;
  background:linear-gradient(135deg,var(--a-gold),#f0dfa0);
  display:flex;align-items:center;justify-content:center;
  font-weight:700;color:var(--a-navy-950);
}
.admin-content{padding:1.8rem;flex:1;}

/* ---------- Cards / KPIs ---------- */
.kpi-card{
  background:var(--a-card);
  border:1px solid var(--a-border);
  border-radius:16px;
  padding:1.3rem 1.4rem;
  height:100%;
  box-shadow:0 6px 18px rgba(12,26,55,.05);
}
.kpi-icon{
  width:44px;height:44px;border-radius:12px;
  display:flex;align-items:center;justify-content:center;
  color:#fff;font-size:1.1rem;margin-bottom:.8rem;
}
.kpi-num{font-family:var(--font-display);font-size:1.9rem;font-weight:700;}
.kpi-label{font-size:.82rem;color:var(--a-muted);}

.admin-panel-card{
  background:var(--a-card);
  border:1px solid var(--a-border);
  border-radius:16px;
  padding:1.5rem;
  box-shadow:0 6px 18px rgba(12,26,55,.05);
}
.admin-panel-card h6{
  font-family:var(--font-display);font-size:1.05rem;margin-bottom:1rem;
}

/* ---------- Table / badges ---------- */
.status-pill{
  font-size:.72rem;font-weight:700;padding:.3rem .7rem;border-radius:999px;
}
.status-pending{background:#fff4d6;color:#8a6600;}
.status-approved{background:#d9f7e6;color:#0a7d3f;}
.status-rejected{background:#ffe1e1;color:#b3261e;}
.status-completed{background:#e3e6ff;color:#3b3fb3;}

table.dataTable{font-size:.88rem;}
table.dataTable thead th{
  border-bottom:2px solid var(--a-border) !important;
  font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;color:var(--a-muted);
}

/* ---------- Mini calendar ---------- */
.mini-cal-day{
  aspect-ratio:1;
  border-radius:8px;
  display:flex;align-items:center;justify-content:center;
  font-size:.8rem;
  border:1px solid var(--a-border);
  position:relative;
}
.mini-cal-day.has-approved{background:#d9f7e6;border-color:#9be3bd;}
.mini-cal-day.has-pending{background:#fff4d6;border-color:#e8d38a;}
.mini-cal-day.has-rejected{background:#ffe1e1;border-color:#f0b0b0;}
.cal-legend-dot{width:10px;height:10px;border-radius:50%;display:inline-block;margin-right:.35rem;}

@media (min-width:992px){
  .col-lg-2-4{flex:0 0 20%;max-width:20%;}
}

@media (max-width: 991px){
  .admin-sidebar{
    left:-260px;transition:left .2s ease;
  }
  .admin-sidebar.open{left:0;}
  .admin-main{margin-left:0;}
}

.row-cols-7 > * {
    flex: 0 0 auto;
    width: 14.285714%;
}