:root {
  --cq-primary: #4f46e5;
  --cq-primary-dark: #4338ca;
  --cq-success: #16a34a;
  --cq-danger: #dc2626;
  --cq-waiting: #f97316;
  --cq-bg: #f5f7fb;
  --bs-primary: #4f46e5;
  --bs-primary-rgb: 79, 70, 229;
  --bs-link-color: #4f46e5;
}
body { background: var(--cq-bg); font-family: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; }
.btn-primary { --bs-btn-bg: var(--cq-primary); --bs-btn-border-color: var(--cq-primary);
  --bs-btn-hover-bg: var(--cq-primary-dark); --bs-btn-hover-border-color: var(--cq-primary-dark);
  --bs-btn-active-bg: var(--cq-primary-dark); --bs-btn-active-border-color: var(--cq-primary-dark); }
.text-primary { color: var(--cq-primary) !important; }
.text-bg-primary { background-color: var(--cq-primary) !important; }

.auth-body { min-height: 100vh; display: flex; align-items: center; justify-content: center; padding: 1rem;
  background: linear-gradient(135deg, #eef2ff 0%, #f5f7fb 60%); }
.auth-card { width: 100%; max-width: 420px; background: #fff; border-radius: 16px; padding: 2rem;
  box-shadow: 0 10px 40px rgba(79, 70, 229, .12); }
.brand-mark { width: 56px; height: 56px; margin: 0 auto; border-radius: 14px; display: grid; place-items: center;
  font-size: 1.6rem; color: #fff; background: var(--cq-primary); }

.app-topbar { background: #fff; border-bottom: 1px solid #e5e7eb; height: 60px; position: sticky; top: 0; z-index: 1030;
  display: flex; justify-content: space-between; }
.app-sidebar { --bs-offcanvas-width: 240px; background: #fff; }
.app-sidebar .nav-link { color: #374151; border-radius: 10px; padding: .6rem .85rem; }
.app-sidebar .nav-link.active { background: var(--cq-primary); color: #fff; }
.app-sidebar .nav-link.disabled { color: #9ca3af; }
@media (min-width: 992px) {
  .app-sidebar { position: fixed; top: 60px; bottom: 0; left: 0; width: 240px; border-right: 1px solid #e5e7eb; }
  .app-sidebar .offcanvas-body { display: flex; }
  .app-main { margin-left: 240px; }
}
.stat-card { border: 0; box-shadow: 0 1px 3px rgba(0, 0, 0, .06); border-radius: 14px; }
.stat-icon { width: 48px; height: 48px; border-radius: 12px; display: grid; place-items: center; font-size: 1.4rem; }
.card { border-radius: 14px; border-color: #eef0f4; }
