:root{
  --ga-primary:#0d6efd;
  --ga-dark:#1f2733;
  --ga-sidebar-w:230px;
}
body{ background:#f4f6f9; }
.ga-nav{ background:var(--ga-dark); }
.ga-nav .navbar-brand{ color:#fff; }

.ga-shell{ display:flex; min-height:calc(100vh - 56px); }
.ga-sidebar{
  width:var(--ga-sidebar-w); flex:0 0 var(--ga-sidebar-w);
  background:#fff; border-right:1px solid #e5e8ee; padding:.75rem .5rem;
  position:sticky; top:56px; height:calc(100vh - 56px); overflow-y:auto;
}
.ga-main{ flex:1 1 auto; padding:1.25rem; max-width:100%; }
@media (max-width:991.98px){ .ga-main{ padding:1rem .85rem; } }

.ga-link{
  display:flex; align-items:center; gap:.6rem;
  padding:.55rem .75rem; margin:.1rem 0; border-radius:.5rem;
  color:#4a5568; text-decoration:none; font-size:.95rem; font-weight:500;
}
.ga-link i{ font-size:1.05rem; width:1.3rem; text-align:center; }
.ga-link:hover{ background:#f0f3f8; color:var(--ga-primary); }
.ga-link.active{ background:var(--ga-primary); color:#fff; }
.ga-offcanvas .ga-link{ border-radius:0; padding:.8rem 1.1rem; }

.card{ border:1px solid #e9edf3; border-radius:.7rem; }
.card-stat{ border-left:4px solid var(--ga-primary); }
.card-stat .stat-value{ font-size:1.7rem; font-weight:700; line-height:1; }
.card-stat .stat-label{ color:#7a869a; font-size:.8rem; text-transform:uppercase; letter-spacing:.03em; }

.btn-primary{ background:var(--ga-primary); border-color:var(--ga-primary); }
.btn-primary:hover{ filter:brightness(.92); background:var(--ga-primary); border-color:var(--ga-primary); }
.btn-outline-primary{ color:var(--ga-primary); border-color:var(--ga-primary); }
.btn-outline-primary:hover{ background:var(--ga-primary); border-color:var(--ga-primary); }
a{ color:var(--ga-primary); }
.page-title{ font-size:1.35rem; font-weight:700; margin:0; }
.table thead th{ font-size:.78rem; text-transform:uppercase; letter-spacing:.03em; color:#7a869a; }
.badge-soft{ background:#eef2f7; color:#42526e; font-weight:600; }
.dot{ display:inline-block; width:10px; height:10px; border-radius:50%; }
.shift-chip{ font-size:.8rem; }
.auth-wrap{ max-width:400px; margin:7vh auto; }
