/* =====================================================
   Lucid Compliances – App Skin (Mofi-aligned)
   - Role-based (RBAC) theming
   - Cards, tables, forms, badges, progress
   - Header/sidebar polish
   ===================================================== */

/* ---- Base / Resets ---- */
html, body { height: 100%; }
body {
  font-family: "Inter", Arial, sans-serif;
  background-color: #f8f9fa; /* light */
  color: #212529;
}

/* ---- Default Theme Vars (can be overridden by role themes) ---- */
:root {
  --lc-primary: #2c7be5;         /* default primary */
  --lc-primary-600: #1f66c7;     /* hover */
  --lc-accent: #22b07d;          /* accent */
}

/* =============================
   RBAC / Role-based Theme Colors
   ============================= */
/* LAD — Lucid Admin (purple) */
body.theme-lad { --lc-primary:#6f42c1; --lc-primary-600:#5a35a1; }
/* LUS — Lucid Staff (blue)   */
body.theme-lus { --lc-primary:#0d6efd; --lc-primary-600:#0b5ed7; }
/* EAD — Evaluator Admin (green) */
body.theme-ead { --lc-primary:#198754; --lc-primary-600:#146c43; }
/* EVS — Evaluator Staff (teal)  */
body.theme-evs { --lc-primary:#20c997; --lc-primary-600:#17a381; }
/* SUS — Supplier Staff (orange) */
body.theme-sus { --lc-primary:#fd7e14; --lc-primary-600:#e96f0c; }

/* ---- Primary-driven components (works without full Bootstrap) ---- */
.btn-primary,
.btn-primary:disabled,
.btn-primary.disabled { background-color: var(--lc-primary) !important; border-color: var(--lc-primary) !important; }
.btn-primary:hover,
.btn-primary:focus { background-color: var(--lc-primary-600) !important; border-color: var(--lc-primary-600) !important; }

.link-primary { color: var(--lc-primary) !important; }
.link-primary:hover { color: var(--lc-primary-600) !important; }

.badge.bg-primary,
.badge.text-bg-primary { background-color: var(--lc-primary) !important; }

.progress-bar { background-color: var(--lc-primary) !important; }

/* ---- Header (topbar) ---- */
.lc-topbar { position: sticky; top: 0; z-index: 1020; }
.lc-topbar .avatar-circle{
  display:inline-flex; align-items:center; justify-content:center;
  width:22px; height:22px; border-radius:50%;
  background: var(--lc-primary); color:#fff; font-size:12px; font-weight:600;
}

/* ---- Footer ---- */
.lc-footer{ position:relative; z-index:10; }

/* ---- Sidebar ---- */
.sidebar .nav-link { color:#495057; border-left:3px solid transparent; border-radius:0; }
.sidebar .nav-link:hover,
.sidebar .nav-link.active { color: var(--lc-primary); border-left-color: var(--lc-primary); background: rgba(0,0,0,0.02); }
.sidebar .nav .nav { margin-left: .75rem; }

/* ---- Cards ---- */
.card { border-radius: .75rem; box-shadow: 0 2px 6px rgba(0,0,0,0.05); }
.card > .card-header { border-bottom: 1px solid rgba(0,0,0,.05); background:#fff; }
.card-form .card-body { padding: 1.25rem; }

/* ---- Tables ---- */
.table th, .table td { vertical-align: middle; }
.table-hover tbody tr:hover { background-color: rgba(0,0,0,.02); }

/* ---- Badges / Pills ---- */
.badge { font-size: .8rem; padding: .4em .65em; }
.file-status-badge { font-size:.75rem; text-transform: uppercase; }

/* ---- Progress ---- */
.progress { height: .6rem; }
.progress-bar { font-size:.75rem; }

/* ---- Offcanvas (notifications panel) ---- */
.offcanvas-end { width: 360px; }

/* ---- Forms ---- */
.form-label .req { color: #dc3545; margin-left: 2px; }
.invalid-feedback { display:block; }

/* ---- Utilities ---- */
.text-muted-small { color:#6c757d; font-size:.875rem; }

/* =============================
   Domain-specific badges & chips
   ============================= */
/* Activities / File status */
.badge-file-up { background:#0d6efd; }    /* UPLOADING */
.badge-file-ok { background:#198754; }    /* VALID_OK */
.badge-file-val { background:#6c757d; }   /* VALIDATING */
.badge-file-re { background:#0dcaf0; }    /* REUPLOADED */
.badge-file-f  { background:#dc3545; }    /* VALID_FAILED */

/* Tickets */
.badge-prio-high { background:#dc3545; }
.badge-prio-med  { background:#fd7e14; }
.badge-prio-low  { background:#198754; }

/* Status chips (generic) */
.chip { display:inline-flex; align-items:center; gap:.35rem; padding:.25rem .5rem; border-radius:999px; font-size:.75rem; background:#f1f3f5; color:#495057; }
.chip .dot { width:.5rem; height:.5rem; border-radius:50%; background:#adb5bd; display:inline-block; }

/* ---- File table helpers ---- */
.table-files .col-actions { width: 220px; }
.table-files .btn { --bs-btn-padding-y: .25rem; --bs-btn-padding-x: .5rem; }

/* ---- Spacing helpers ---- */
.gap-2 { gap: .5rem; }
.gap-3 { gap: 1rem; }

/* ---- Responsive tweaks ---- */
@media (max-width: 767.98px){
  .offcanvas-end { width: 100%; }
  .table-responsive .btn { font-size:.75rem; }
}

/* space under the header and above content cards */
.page-body .lc-alerts {
  margin: 16px 16px 0 16px;
}
.page-body .lc-alerts .alert {
  box-shadow: 0 6px 24px rgba(0,0,0,.08);
}