:root{
  --sidebar-w: 280px;
  --topbar-h: 66px;
  --sidebar-dark: #111827; /* dark sidebar */
}

* { box-sizing: border-box; }

body {
  font-family: "Figtree", system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
}

/* LIGHT background */
.bg-app{
  min-height: 100vh;
  background: linear-gradient(180deg, #f7f8fc, #eef2f7);
  color: #0b1220;
}

/* White cards */
.card-glass{
  background: #ffffff;
  border: 1px solid rgba(15,23,42,.08);
  color: #0b1220;
  border-radius: 18px;
}

.kv{
  padding: 12px 14px;
  border-radius: 16px;
  background: #ffffff;
  border: 1px solid rgba(15,23,42,.08);
}
.kv .k{ font-size: 12px; color: rgba(15,23,42,.55); }
.kv .v{ font-size: 16px; font-weight: 800; color: rgba(15,23,42,.95); }

.form-control, .form-select{
  background: #fff;
  border: 1px solid rgba(15,23,42,.12);
  color: #0b1220;
  border-radius: 14px;
}
.form-control:focus, .form-select:focus{
  border-color: rgba(37,99,235,.45);
  box-shadow: 0 0 0 .25rem rgba(37,99,235,.12);
}
.form-control::placeholder{ color: rgba(15,23,42,.40); }

/* Loader */
.loader-overlay{
  position: fixed;
  inset: 0;
  background: rgba(255,255,255,.92);
  display: grid;
  place-items: center;
  z-index: 2000;
  transition: opacity .35s ease, visibility .35s ease;
}
.loader-overlay.hide{ opacity: 0; visibility: hidden; }
.loader-card{
  text-align: center;
  padding: 22px 26px;
  border-radius: 18px;
  background: #ffffff;
  border: 1px solid rgba(15,23,42,.10);
  box-shadow: 0 20px 60px rgba(15,23,42,.12);
}

/* TOPBAR = LIGHT */
.app-topbar{
  position: fixed;
  top: 0; left: 0; right: 0;
  height: var(--topbar-h);
  display: flex;
  align-items: center;
  padding: 0 14px;
  z-index: 1200;
  background: #ffffff;
  border-bottom: 1px solid rgba(15,23,42,.10);
}
.app-topbar .brand{
  display: flex;
  align-items: center;
  gap: 10px;
  text-decoration: none;
  color: #0b1220;
}
.app-topbar .brand img{ max-height: 34px; }
.app-topbar .brand .t{ font-weight: 900; letter-spacing: .2px; }

/* SIDEBAR = DARK */
.app-sidebar{
  position: fixed;
  top: var(--topbar-h);
  left: 0;
  width: var(--sidebar-w);
  height: calc(100vh - var(--topbar-h));
  padding: 14px;
  overflow: auto;
  background: var(--sidebar-dark);
  border-right: 1px solid rgba(255,255,255,.08);
  z-index: 1100;
}
.side-card{
  border-radius: 18px;
  padding: 14px;
  background: rgba(255,255,255,.05);
  border: 1px solid rgba(255,255,255,.08);
}
.side-muted{ color: rgba(255,255,255,.65); }

.side-link{
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 12px;
  border-radius: 12px;
  text-decoration: none;
  color: rgba(255,255,255,.88);
  border: 1px solid transparent;
}
.side-link:hover{
  background: rgba(255,255,255,.08);
  border-color: rgba(255,255,255,.08);
  color: #fff;
}
.side-link.active{
  background: rgba(37,99,235,.25);
  border-color: rgba(37,99,235,.25);
  color: #fff;
}

/* Content */
.app-content{
  padding-top: calc(var(--topbar-h) + 10px);
  margin-left: var(--sidebar-w);
  min-height: 100vh;
}
@media (max-width: 991.98px){
  .app-sidebar{ display: none; }
  .app-content{ margin-left: 0; }
}

/* Table */
.table{
  color: rgba(15,23,42,.92);
}
.table thead th{
  color: rgba(15,23,42,.55);
  border-bottom: 1px solid rgba(15,23,42,.12) !important;
}
.table td, .table th{
  border-color: rgba(15,23,42,.10) !important;
}
