:root{
  --brand:#8b0000;
  --brand-dark:#5f0000;
}
body{
  background:linear-gradient(180deg,#f6f7fb 0%, #fff 100%);
  color:#0f172a;
}
.container{max-width:1200px;}
.container.py-4,.container.py-5{padding-top:1rem!important;padding-bottom:1rem!important;}
.card{
  border:0;
  box-shadow:0 10px 28px rgba(15,23,42,.08);
  border-radius:14px;
}
.table> :not(caption)>*>*{vertical-align:middle;}
.badge{border-radius:999px;}
.table th,.table td{padding:.42rem .48rem;font-size:.86rem;}
.table thead th{background:#f8fafc;color:#475569;font-weight:600;}
.form-control,.form-select{font-size:.88rem;padding:.42rem .55rem;border-radius:.55rem;}
.btn{font-size:.86rem;padding:.38rem .62rem;border-radius:.55rem;}
.qr-box{width:260px;height:260px;display:flex;align-items:center;justify-content:center;background:white;border-radius:18px;box-shadow:0 10px 25px rgba(0,0,0,.08);}
.btn-primary{
  background:linear-gradient(135deg,var(--brand),#cb1b1b);
  border:none;
}
.btn-primary:hover{
  background:linear-gradient(135deg,var(--brand-dark),#a70f0f);
}

/* Colorful dashboard cards */
.stat-card{border:0;border-radius:18px;box-shadow:0 10px 25px rgba(0,0,0,.10);}
.bg-grad-1{background:linear-gradient(135deg,#6a11cb,#2575fc);}
.bg-grad-2{background:linear-gradient(135deg,#11998e,#38ef7d);}
.bg-grad-3{background:linear-gradient(135deg,#f7971e,#ffd200);}
.bg-grad-4{background:linear-gradient(135deg,#ee0979,#ff6a00);}

/* Shared admin compact shell */
body.admin-page{margin:0;}
.admin-shell{display:flex;min-height:100vh;}
.admin-sidebar{
  width:212px;flex:0 0 212px;background:linear-gradient(180deg,#0f172a,#1e293b);
  color:#fff;padding:10px 10px 12px;border-right:1px solid rgba(255,255,255,.08);
  box-shadow: 6px 0 22px rgba(15,23,42,.18);
}
.admin-brand{padding:10px 10px 12px;border-bottom:1px solid rgba(255,255,255,.14);}
.admin-brand-title{font-weight:700;font-size:1rem;letter-spacing:.2px;}
.admin-brand small{color:rgba(255,255,255,.75);font-size:.74rem;}
.admin-menu{padding-top:6px;}
.admin-group-toggle{
  width:100%;
  border:0;
  margin:8px 0 4px;
  padding:6px 8px;
  border-radius:8px;
  background:rgba(255,255,255,.06);
  color:#cbd5e1;
  font-size:.68rem;
  text-transform:uppercase;
  letter-spacing:.8px;
  font-weight:700;
  display:flex;
  align-items:center;
  justify-content:space-between;
}
.admin-group-toggle span{transition:transform .2s ease;}
.admin-group-toggle.is-open span{transform:rotate(0deg);}
.admin-group-toggle:not(.is-open) span{transform:rotate(-90deg);}
.admin-group{padding-top:2px;}
.admin-link{
  display:block;color:#dbe4ff;text-decoration:none;padding:8px 9px;border-radius:8px;
  margin-bottom:4px;font-size:.83rem;transition:.2s;
}
.admin-link.sub-link{
  margin-left:8px;
  font-size:.79rem;
  padding:7px 9px;
  border-left:2px solid rgba(255,255,255,.16);
  border-radius:0 8px 8px 0;
}
.admin-link:hover,.admin-link.active{background:linear-gradient(135deg,#8b0000,#d81b1b);color:#fff;}
.admin-user{
  margin-top:10px;background:rgba(255,255,255,.09);border-radius:10px;padding:9px;font-size:.8rem;
}
.admin-main{flex:1;min-width:0;padding:12px;background:linear-gradient(180deg,#f8faff 0%, #f3f6ff 100%);}
.admin-main .card{
  background:#fff;
  border:1px solid #ebeff7;
  box-shadow:0 8px 22px rgba(15,23,42,.06);
}
.admin-main .card.bg-grad-1,
.admin-main .card.bg-grad-2,
.admin-main .card.bg-grad-3,
.admin-main .card.bg-grad-4{
  border:0;
  color:#fff;
}
.admin-main .card.bg-grad-1{background:linear-gradient(135deg,#6a11cb,#2575fc)!important;}
.admin-main .card.bg-grad-2{background:linear-gradient(135deg,#11998e,#38ef7d)!important;}
.admin-main .card.bg-grad-3{background:linear-gradient(135deg,#f7971e,#ffd200)!important;}
.admin-main .card.bg-grad-4{background:linear-gradient(135deg,#ee0979,#ff6a00)!important;}
.admin-main h4,.admin-main h5,.admin-main h6{font-weight:700;}
input:focus,select:focus,textarea:focus{
  box-shadow:0 0 0 .2rem rgba(139,0,0,.16)!important;
  border-color:#d98f8f!important;
}
@media (max-width: 991.98px){
  .admin-shell{display:block;}
  .admin-sidebar{width:100%;flex:auto;min-height:auto;}
  .admin-main{padding:8px;}
}
