/* ============================================================
   Hardeek VIMS - Bootstrap 5 app theme (offline, self-hosted)
   ============================================================ */
:root{
  --vims-primary:#4f46e5;
  --vims-primary-rgb:79,70,229;
  --vims-bg:#f4f6fb;
  --vims-bg-rgb:244,246,251;
  --vims-card:#ffffff;
  --vims-text:#0f1119;
  --vims-muted:#8a90a0;
  --vims-sidebar:#1e1b2e;
  --vims-sidebar-2:#27223a;
  --vims-sidebar-text:#b9b4cc;
  --vims-sidebar-active:#4f46e5;
  --vims-radius:14px;
  --vims-stage-0:#6b7280; /* missing */
  --vims-stage-1:#f59e0b; /* await scan */
  --vims-stage-2:#3b82f6; /* indexing */
  --vims-stage-5:#8b5cf6; /* qa completed */
  --vims-stage-7:#10b981; /* upload completed */
}
[data-bs-theme="dark"]{
  --vims-bg:#0f1117;
  --vims-bg-rgb:15,17,23;
  --vims-card:#1b1d27;
  --vims-text:#e6e9f2;
  --vims-muted:#8f96a8;
  --vims-sidebar:#15131f;
  --vims-sidebar-2:#1c1a2a;
}

html,body{height:100%;}
body{
  background:var(--vims-bg);
  font-family:"Segoe UI",system-ui,-apple-system,Roboto,"Helvetica Neue",Arial,sans-serif;
  font-size:.9rem;
  color:#1f2430;
}
[data-bs-theme="dark"] body{color:#d7dbe6;}

/* ---------- Layout ---------- */
.app-layout{min-height:100vh;}
.app-sidebar{
  position:fixed;top:0;left:0;bottom:0;width:248px;z-index:1045;
  background:linear-gradient(180deg,var(--vims-sidebar),var(--vims-sidebar-2));
  color:var(--vims-sidebar-text);
  display:flex;flex-direction:column;
  transition:transform .25s ease;
  overflow-y:auto;
}
.app-main{margin-left:248px;min-height:100vh;display:flex;flex-direction:column;transition:margin-left .25s ease;}
.app-topbar{
  position:sticky;top:0;z-index:1030;height:58px;
  background:rgba(255,255,255,.92);backdrop-filter:blur(8px);
  border-bottom:1px solid rgba(0,0,0,.06);
  display:flex;align-items:center;gap:.75rem;padding:0 1rem;
}
[data-bs-theme="dark"] .app-topbar{background:rgba(21,19,31,.92);border-bottom-color:rgba(255,255,255,.07);}
.app-content{padding:1.25rem;flex:1 1 auto;}
.app-footer{padding:.75rem 1rem;font-size:.78rem;color:#8a90a0;border-top:1px solid rgba(0,0,0,.06);}
[data-bs-theme="dark"] .app-footer{border-top-color:rgba(255,255,255,.07);}

.sidebar-brand{
  padding:1.1rem 1.25rem;font-weight:700;font-size:1.15rem;color:#fff;
  letter-spacing:.5px;border-bottom:1px solid rgba(255,255,255,.06);
  display:flex;align-items:center;gap:.5rem;
}
.sidebar-brand .brand-dot{width:10px;height:10px;border-radius:50%;background:var(--vims-primary);box-shadow:0 0 0 4px rgba(79,70,229,.25);}
.sidebar-brand small{font-weight:400;font-size:.7rem;color:var(--vims-sidebar-text);margin-left:auto;}
.sidebar-nav{padding:.75rem .6rem;flex:1;}
.sidebar-section{font-size:.68rem;text-transform:uppercase;letter-spacing:.08em;color:#6b6580;padding:.9rem .6rem .35rem;}
.sidebar-nav .nav-link{
  color:var(--vims-sidebar-text);border-radius:10px;padding:.6rem .8rem;margin-bottom:.15rem;
  display:flex;align-items:center;gap:.65rem;font-weight:500;transition:all .15s;
}
.sidebar-nav .nav-link i{font-size:1.05rem;width:1.2rem;text-align:center;}
.sidebar-nav .nav-link:hover{background:rgba(255,255,255,.06);color:#fff;}
.sidebar-nav .nav-link.active{background:var(--vims-sidebar-active);color:#fff;box-shadow:0 6px 18px -6px rgba(79,70,229,.7);}
.sidebar-nav .nav-link .badge{margin-left:auto;}

.sidebar-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:1040;display:none;}
body.sidebar-open .sidebar-backdrop{display:block;}
.mobile-bottom-nav{display:none;}

.topbar-title{font-weight:600;font-size:1rem;}
.topbar-sub{font-size:.72rem;color:#8a90a0;}
.btn-sidebar-toggle{background:transparent;border:0;font-size:1.25rem;color:#3a3f4b;padding:.25rem .4rem;border-radius:8px;}
[data-bs-theme="dark"] .btn-sidebar-toggle{color:#d7dbe6;}
.btn-sidebar-toggle:hover{background:rgba(0,0,0,.06);}

/* ---------- KPI cards ---------- */
.kpi-card{
  border:0;border-radius:var(--vims-radius);color:#fff;position:relative;overflow:hidden;
  box-shadow:0 10px 30px -14px rgba(0,0,0,.45);height:100%;
}
.kpi-card .kpi-body{padding:1.1rem 1.2rem;position:relative;z-index:1;}
.kpi-card .kpi-icon{position:absolute;right:-6px;bottom:-10px;font-size:4.2rem;opacity:.18;}
.kpi-card .kpi-label{font-size:.74rem;text-transform:uppercase;letter-spacing:.06em;opacity:.85;}
.kpi-card .kpi-value{font-size:1.95rem;font-weight:700;line-height:1.1;margin:.15rem 0;}
.kpi-card .kpi-sub{font-size:.76rem;opacity:.85;}
.kpi-card .kpi-sub .dot{width:7px;height:7px;border-radius:50%;display:inline-block;margin-right:4px;}
.bg-grad-indigo{background:linear-gradient(135deg,#6366f1,#4338ca);}
.bg-grad-amber{background:linear-gradient(135deg,#fbbf24,#d97706);}
.bg-grad-emerald{background:linear-gradient(135deg,#34d399,#059669);}
.bg-grad-violet{background:linear-gradient(135deg,#a78bfa,#7c3aed);}
.bg-grad-sky{background:linear-gradient(135deg,#38bdf8,#0284c7);}
.bg-grad-rose{background:linear-gradient(135deg,#fb7185,#e11d48);}
.bg-grad-slate{background:linear-gradient(135deg,#94a3b8,#475569);}

/* ---------- Stage pills / status ---------- */
.stage-pill{display:inline-flex;align-items:center;gap:.35rem;padding:.18rem .55rem;border-radius:30px;font-size:.72rem;font-weight:600;}
.stage-pill .dot{width:6px;height:6px;border-radius:50%;}
.s-missing{background:rgba(107,114,128,.15);color:#4b5563;}
.s-missing .dot{background:var(--vims-stage-0);}
.s-scan{background:rgba(245,158,11,.15);color:#b45309;}
.s-scan .dot{background:var(--vims-stage-1);}
.s-index{background:rgba(59,130,246,.15);color:#1d4ed8;}
.s-index .dot{background:var(--vims-stage-2);}
.s-qa{background:rgba(139,92,246,.15);color:#6d28d9;}
.s-qa .dot{background:var(--vims-stage-5);}
.s-upload{background:rgba(16,185,129,.15);color:#047857;}
.s-upload .dot{background:var(--vims-stage-7);}

.prio-high{background:rgba(225,29,72,.12);color:#be123c;font-weight:600;}
.prio-low{background:rgba(100,116,139,.12);color:#475569;font-weight:600;}

/* ---------- Tables ---------- */
.table{--bs-table-bg:transparent;margin-bottom:0;}
.table thead th{
  font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;color:#6b7280;
  border-bottom:2px solid rgba(0,0,0,.08);font-weight:600;white-space:nowrap;
}
[data-bs-theme="dark"] .table thead th{color:#9aa0ac;border-bottom-color:rgba(255,255,255,.1);}
.card-table{border:0;border-radius:var(--vims-radius);box-shadow:0 1px 3px rgba(0,0,0,.04),0 8px 24px -16px rgba(0,0,0,.25);overflow:hidden;}
.card-table .card-header{background:#fff;border-bottom:1px solid rgba(0,0,0,.06);font-weight:600;padding:.85rem 1.1rem;}
[data-bs-theme="dark"] .card-table{background:#1a1825;}
[data-bs-theme="dark"] .card-table .card-header{background:#211f2e;border-bottom-color:rgba(255,255,255,.07);}
.table tbody tr:hover{background:rgba(79,70,229,.04);}
.row-clickable{cursor:pointer;}

/* ---------- Progress ---------- */
.progress{height:8px;border-radius:30px;background:rgba(0,0,0,.08);}
.progress-bar{border-radius:30px;}

/* ---------- Login ---------- */
.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1.5rem;
  background:radial-gradient(900px 600px at 10% 10%,rgba(99,102,241,.35),transparent),radial-gradient(800px 600px at 90% 90%,rgba(16,185,129,.25),transparent),#0f1226;}
.login-card{width:100%;max-width:420px;border:0;border-radius:18px;box-shadow:0 30px 70px -20px rgba(0,0,0,.6);}
.login-logo{width:54px;height:54px;border-radius:14px;background:linear-gradient(135deg,#6366f1,#4338ca);display:flex;align-items:center;justify-content:center;color:#fff;font-size:1.5rem;margin:0 auto .9rem;box-shadow:0 12px 30px -10px rgba(79,70,229,.7);}
.form-control-lg-app{padding:.8rem 1rem;font-size:.95rem;border-radius:10px;}
.btn-login{padding:.8rem;font-weight:600;border-radius:10px;}

/* ---------- Misc ---------- */
.stat-line{display:flex;justify-content:space-between;padding:.5rem 0;border-bottom:1px dashed rgba(0,0,0,.08);font-size:.85rem;}
[data-bs-theme="dark"] .stat-line{border-bottom-color:rgba(255,255,255,.08);}
.stat-line:last-child{border-bottom:0;}
.stat-line b{font-size:1rem;}
.tab-card .card-header{padding:.6rem .8rem;}
.filter-chip{font-size:.78rem;}
.preloader{position:fixed;inset:0;background:rgba(var(--vims-bg-rgb,15,17,25),.55);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:2000;display:flex;align-items:center;justify-content:center;}
.preloader-box{background:var(--vims-card,#fff);border:1px solid rgba(0,0,0,.08);border-radius:18px;box-shadow:0 24px 60px -20px rgba(0,0,0,.45);padding:2rem 2.6rem;text-align:center;max-width:340px;}
[data-bs-theme="dark"] .preloader-box{border-color:rgba(255,255,255,.12);}
.preloader-bubbles{display:flex;gap:.5rem;justify-content:center;align-items:center;height:2.4rem;margin-bottom:.9rem;}
.preloader-bubbles span{width:.9rem;height:.9rem;border-radius:50%;background:var(--vims-primary,#4f46e5);animation:preloaderBubble 1.1s ease-in-out infinite;}
.preloader-bubbles span:nth-child(2){animation-delay:.15s;}
.preloader-bubbles span:nth-child(3){animation-delay:.3s;}
@keyframes preloaderBubble{0%,60%,100%{transform:translateY(0);opacity:.45;}30%{transform:translateY(-.7rem);opacity:1;}}
.preloader-title{font-size:1.05rem;font-weight:700;color:var(--vims-text,#0f1119);}
.preloader-sub{font-size:.82rem;color:var(--vims-muted,#8a90a0);margin-top:.2rem;}
.preloader-url{margin-top:.7rem;font-size:.72rem;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;color:var(--vims-primary,#4f46e5);background:rgba(79,70,229,.08);border-radius:30px;padding:.28rem .8rem;display:inline-block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.preloader.hide{display:none;}
.btn-icon{display:inline-flex;align-items:center;gap:.4rem;}
.empty-state{text-align:center;padding:2.5rem 1rem;color:#8a90a0;}
.empty-state i{font-size:2.6rem;display:block;margin-bottom:.6rem;opacity:.5;}

/* ---------- Reports (detail / popup pages) ---------- */
.report-head{
  display:flex;flex-wrap:wrap;gap:.6rem 1rem;align-items:center;
  padding:1rem 1.25rem;margin-bottom:1rem;border-radius:var(--vims-radius);
  background:linear-gradient(120deg,#312e81,#4f46e5 60%,#7c3aed);
  color:#fff;box-shadow:0 14px 34px -16px rgba(79,70,229,.6);
}
[data-bs-theme="dark"] .report-head{background:linear-gradient(120deg,#1e1b4b,#3730a3 60%,#5b21b6);}
.report-head-ico{width:38px;height:38px;border-radius:11px;background:rgba(255,255,255,.16);
  display:inline-flex;align-items:center;justify-content:center;font-size:1.2rem;margin-right:.35rem;}
.report-head-title{font-size:1.12rem;font-weight:700;display:flex;align-items:center;}
.report-head-sub{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.45rem;}
.meta-chip{display:inline-flex;align-items:center;gap:.35rem;background:rgba(255,255,255,.16);
  color:#fff;border-radius:30px;padding:.16rem .65rem;font-size:.74rem;font-weight:600;}
.meta-chip i{font-size:.82rem;}
.report-head-actions .btn{color:#fff;border:1px solid rgba(255,255,255,.35);font-weight:600;}
.report-head-actions .btn:hover{background:rgba(255,255,255,.16);color:#fff;border-color:rgba(255,255,255,.55);}
.report-head-actions .form-control{background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.3);
  color:#fff;border-radius:8px;}
.report-head-actions .form-control::placeholder{color:rgba(255,255,255,.65);}
.report-head-actions .form-control:focus{background:rgba(255,255,255,.2);border-color:rgba(255,255,255,.55);
  box-shadow:0 0 0 .2rem rgba(255,255,255,.15);color:#fff;}

.kpi-mini{border:0;border-radius:12px;background:#fff;box-shadow:0 6px 18px -12px rgba(0,0,0,.25);height:100%;}
[data-bs-theme="dark"] .kpi-mini{background:#1a1825;}
.kpi-mini .kpi-body{display:flex;align-items:center;gap:.75rem;padding:.85rem 1rem;}
.kpi-mini .kpi-ico{width:40px;height:40px;border-radius:11px;display:flex;align-items:center;
  justify-content:center;color:#fff;font-size:1.2rem;flex:0 0 auto;}
.kpi-mini .lbl{font-size:.66rem;text-transform:uppercase;letter-spacing:.07em;color:#8a90a0;}
.kpi-mini .val{font-size:1.35rem;font-weight:700;line-height:1.15;}
.kpi-mini .sub{font-size:.72rem;color:#8a90a0;}

.report-foot{display:flex;justify-content:space-between;flex-wrap:wrap;gap:.35rem;
  padding:.7rem 1.1rem;color:#8a90a0;font-size:.76rem;border-top:1px solid rgba(0,0,0,.06);}
[data-bs-theme="dark"] .report-foot{border-top-color:rgba(255,255,255,.07);}

/* Table refinements */
.table thead th{cursor:pointer;user-select:none;}
.table thead th:hover{color:var(--vims-primary);}
.table tbody tr{transition:background-color .12s ease;}

/* Smooth entrance */
@keyframes vimsRise{from{opacity:0;transform:translateY(8px);}to{opacity:1;transform:none;}}
.report-head{animation:vimsRise .35s ease both;}
.report-kpis .kpi-mini{animation:vimsRise .4s ease both;}
.report-kpis .kpi-mini:nth-child(1){animation-delay:.05s;}
.report-kpis .kpi-mini:nth-child(2){animation-delay:.1s;}
.report-kpis .kpi-mini:nth-child(3){animation-delay:.15s;}
.report-kpis .kpi-mini:nth-child(4){animation-delay:.2s;}
.report-table-card{animation:vimsRise .45s .12s ease both;}
.kpi-card{animation:vimsRise .4s ease both;}
.card-table{transition:box-shadow .2s ease;}
.card-table:hover{box-shadow:0 2px 6px rgba(0,0,0,.05),0 14px 34px -18px rgba(0,0,0,.35);}

@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation:none !important;transition:none !important;}
}

/* Print */
@media print{
  body{background:#fff !important;}
  .report-head-actions,.report-foot,.preloader{display:none !important;}
  .report-head{background:#f1f3f9 !important;color:#1f2430 !important;box-shadow:none !important;
    border:1px solid #d9dee9;}
  .meta-chip{background:#e5e9f2;color:#3a4157;}
  .report-head-ico{background:#e5e9f2;}
  .table-responsive{max-height:none !important;overflow:visible !important;}
  .sticky-top{position:static !important;}
  .table thead th{color:#333 !important;}
}

/* Responsive sidebar */
@media (max-width:991.98px){
  .app-sidebar{transform:translateX(-100%);}
  .app-main{margin-left:0;}
  body.sidebar-open .app-sidebar{transform:translateX(0);}
}

/* ============================================================
   SCANFLOW · Scanning Activity interface refresh
   Shared by the dashboard, reports, admin screens and report details.
   ============================================================ */
:root{
  --vims-primary:#16796f;
  --vims-primary-rgb:22,121,111;
  --vims-bg:#f3f6f5;
  --vims-bg-rgb:243,246,245;
  --vims-card:#fff;
  --vims-text:#18313a;
  --vims-muted:#78898d;
  --vims-sidebar:#102a35;
  --vims-sidebar-2:#183c43;
  --vims-sidebar-text:#b7c9c8;
  --vims-sidebar-active:#16796f;
  --vims-radius:17px;
  --bs-primary:#16796f;
  --bs-primary-rgb:22,121,111;
  --bs-link-color:#16796f;
  --bs-link-hover-color:#0d5d55;
  --bs-body-color:#18313a;
  --bs-body-bg:#f3f6f5;
}
[data-bs-theme="dark"]{
  --vims-bg:#101b20;
  --vims-bg-rgb:16,27,32;
  --vims-card:#19282e;
  --vims-text:#e7f0ef;
  --vims-muted:#95a8aa;
  --vims-sidebar:#0b171c;
  --vims-sidebar-2:#12262b;
  --bs-body-color:#e1ebea;
  --bs-body-bg:#101b20;
  --bs-border-color:#2a3c41;
  --bs-secondary-color:#9badaf;
}
html{scroll-behavior:smooth;}
body{color:var(--vims-text);background:var(--vims-bg);font-size:.92rem;}
[data-bs-theme="dark"] body{color:var(--vims-text);}
.app-layout{background:var(--vims-bg);}
.app-sidebar{width:256px;background:linear-gradient(165deg,#102a35 0%,#143b43 56%,#12504c 100%);box-shadow:10px 0 38px rgba(18,49,58,.08);}
.app-main{margin-left:256px;}
.sidebar-brand{min-height:82px;padding:1rem 1.3rem;gap:.78rem;text-decoration:none;color:#fff;border-bottom-color:rgba(255,255,255,.09);}
.sidebar-brand:hover{color:#fff;}
.brand-mark{position:relative;width:39px;height:39px;display:grid;place-items:center;flex:0 0 auto;border:1px solid rgba(157,235,218,.35);border-radius:13px;background:linear-gradient(145deg,rgba(65,205,177,.28),rgba(255,255,255,.08));color:#a0f0d8;font-size:1.25rem;box-shadow:0 7px 20px rgba(3,14,17,.2);}
.brand-beam{position:absolute;width:17px;height:1px;right:-5px;top:10px;background:#ffcb76;transform:rotate(-43deg);box-shadow:0 0 8px #ffcb76;}
.brand-copy{display:flex;flex-direction:column;line-height:1.1;}
.brand-copy strong{font-size:1.08rem;letter-spacing:.13em;color:#f5fbf9;}
.brand-copy strong span{color:#7dd9bc;}
.brand-copy small{font-size:.56rem;color:#a5bebc;letter-spacing:.16em;margin-top:.34rem;}
.sidebar-nav{padding:.65rem .75rem 1rem;}
.sidebar-section{color:#7f9d9e;font-size:.64rem;letter-spacing:.14em;padding:1.15rem .65rem .48rem;}
.sidebar-nav .nav-link{position:relative;color:#b7c9c8;padding:.67rem .82rem;margin:.16rem 0;border-radius:11px;font-size:.86rem;}
.sidebar-nav .nav-link i{color:#83a9a7;font-size:1.04rem;}
.sidebar-nav .nav-link:hover{background:rgba(231,255,248,.075);color:#fff;transform:translateX(2px);}
.sidebar-nav .nav-link:hover i{color:#a4ead1;}
.sidebar-nav .nav-link.active{background:linear-gradient(100deg,#177d70,#1b8b78);color:#fff;box-shadow:0 8px 20px -9px rgba(2,14,17,.75);}
.sidebar-nav .nav-link.active i{color:#b9f1dc;}
.sidebar-nav .nav-link.active::before{content:"";position:absolute;left:-.75rem;top:23%;height:54%;width:3px;border-radius:0 4px 4px 0;background:#ffc978;}
.sidebar-profile{display:flex;align-items:center;gap:.7rem;margin:.75rem .9rem 1rem;padding:.78rem .72rem;border:1px solid rgba(255,255,255,.1);border-radius:14px;background:rgba(6,21,25,.2);}
.profile-avatar{display:grid;place-items:center;width:35px;height:35px;border-radius:11px;color:#163f43;background:#c0eadb;font-size:1rem;}
.profile-copy{min-width:0;display:flex;flex-direction:column;line-height:1.25;}
.profile-copy strong{max-width:148px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#f0f7f4;font-size:.78rem;}
.profile-copy small{margin-top:.2rem;color:#91aeab;font-size:.66rem;}
.profile-presence{margin-left:auto;width:7px;height:7px;border-radius:50%;background:#69d6a9;box-shadow:0 0 0 4px rgba(105,214,169,.12);}
.app-topbar{height:72px;padding:0 1.5rem;background:rgba(255,255,255,.94);border-bottom:1px solid #e4ebea;box-shadow:0 3px 12px rgba(25,62,68,.025);}
[data-bs-theme="dark"] .app-topbar{background:rgba(18,32,37,.95);border-bottom-color:#263a40;}
.topbar-brandmark{display:flex;align-items:center;gap:.7rem;}
.topbar-signal{display:grid;place-items:center;width:36px;height:36px;border-radius:12px;background:#e8f5f0;color:#18796f;font-size:1rem;}
[data-bs-theme="dark"] .topbar-signal{background:#1e393a;color:#83d5bd;}
.topbar-title{font-weight:700;font-size:.91rem;letter-spacing:.01em;color:var(--vims-text);}
.topbar-sub{margin-top:.12rem;color:var(--vims-muted);font-size:.68rem;}
.btn-sidebar-toggle{font-size:1.35rem;color:#416065;padding:.38rem .55rem;}
.btn-sidebar-toggle:hover{background:#e9f2ef;color:#176f68;}
.app-content{padding:1.4rem clamp(1rem,2.25vw,2.1rem) 1.8rem;}
.page-heading{position:relative;isolation:isolate;display:flex;align-items:center;justify-content:space-between;min-height:174px;overflow:hidden;margin:0 0 1.45rem;padding:1.55rem clamp(1.2rem,2.4vw,2.15rem);border:1px solid rgba(255,255,255,.06);border-radius:22px;background:linear-gradient(112deg,#122f3a 0%,#17464b 57%,#18766a 100%);color:#fff;box-shadow:0 18px 42px -26px rgba(14,59,62,.62);}
.page-heading::before{content:"";position:absolute;z-index:-1;inset:0;background:radial-gradient(ellipse at 75% 8%,rgba(128,237,196,.2),transparent 42%),linear-gradient(90deg,transparent 45%,rgba(20,104,94,.18));}
.page-heading-copy{position:relative;z-index:1;max-width:790px;}
.page-eyebrow{display:flex;align-items:center;gap:.55rem;color:#a9d6cd;font-size:.64rem;font-weight:700;letter-spacing:.15em;}
.live-indicator{position:relative;width:7px;height:7px;border-radius:50%;background:#80e2b7;box-shadow:0 0 0 4px rgba(128,226,183,.12);}
.eyebrow-divider{color:rgba(221,243,238,.38);}
.page-heading-title{display:flex;align-items:center;gap:.75rem;margin:.55rem 0 .4rem;color:#f6fcfa;font-size:clamp(1.5rem,2.4vw,2.05rem);font-weight:700;letter-spacing:-.035em;}
.page-heading-title i{display:grid;place-items:center;width:39px;height:39px;border-radius:13px;background:rgba(230,255,247,.12);font-size:1.08rem;color:#a5ebd2;}
.page-heading-description{max-width:700px;margin:0;color:#c2d9d6;font-size:.88rem;line-height:1.55;}
.page-context{display:inline-flex;align-items:center;gap:.42rem;margin-top:.8rem;padding:.3rem .7rem;border:1px solid rgba(220,249,239,.17);border-radius:999px;background:rgba(240,255,248,.09);color:#e4f5ef;font-size:.71rem;font-weight:600;}
.page-context i{color:#9de2c8;}
.page-heading-art{position:absolute;right:clamp(1.3rem,5vw,5rem);top:50%;width:162px;height:162px;transform:translateY(-50%);display:grid;place-items:center;color:#a9e9d2;font-size:2.55rem;}
.page-heading-art>i{position:relative;z-index:2;display:grid;place-items:center;width:70px;height:70px;border:1px solid rgba(184,244,222,.33);border-radius:23px;background:linear-gradient(145deg,rgba(223,255,243,.15),rgba(223,255,243,.035));box-shadow:0 9px 36px rgba(4,29,32,.22);}
.scan-orbit{position:absolute;display:block;border:1px solid rgba(184,244,222,.16);border-radius:50%;}
.orbit-one{inset:7px;}
.orbit-two{inset:23px;border-style:dashed;animation:scanRotate 28s linear infinite;}
.orbit-three{inset:-8px;border-color:rgba(184,244,222,.09);}
@keyframes scanRotate{to{transform:rotate(360deg);}}
.dashboard-toolbar{display:flex;align-items:center;gap:.9rem;min-height:53px;padding:.55rem .65rem .55rem .8rem;border:1px solid #e4ebe8;border-radius:15px;background:#fff;box-shadow:0 5px 16px rgba(23,59,60,.035);}
[data-bs-theme="dark"] .dashboard-toolbar{background:#19282e;border-color:#2a3c41;}
.month-picker{display:flex;align-items:center;gap:.63rem;min-width:170px;cursor:pointer;}
.month-picker-icon{display:grid;place-items:center;width:34px;height:34px;border-radius:11px;background:#e8f5f0;color:#16796f;}
[data-bs-theme="dark"] .month-picker-icon{background:#22403d;color:#8bd9bf;}
.month-picker-copy{display:flex;flex-direction:column;line-height:1.2;}
.month-picker-copy small{color:var(--vims-muted);font-size:.58rem;letter-spacing:.1em;font-weight:700;}
.month-picker select{width:auto;padding:.18rem 1.2rem .18rem 0;border:0;background-color:transparent;color:var(--vims-text);font-size:.83rem;font-weight:700;box-shadow:none;cursor:pointer;appearance:none;-webkit-appearance:none;}
.month-picker-caret{margin-left:auto;color:#8da2a2;font-size:.7rem;}
.toolbar-caption{display:inline-flex;align-items:center;gap:.4rem;color:var(--vims-muted);font-size:.73rem;}
.toolbar-caption i{color:#3e9c83;}
.btn-primary{--bs-btn-bg:#16796f;--bs-btn-border-color:#16796f;--bs-btn-hover-bg:#11685f;--bs-btn-hover-border-color:#11685f;--bs-btn-active-bg:#105c55;--bs-btn-active-border-color:#105c55;--bs-btn-focus-shadow-rgb:22,121,111;font-weight:600;}
.btn-outline-primary{--bs-btn-color:#16796f;--bs-btn-border-color:#a6cbc0;--bs-btn-hover-bg:#16796f;--bs-btn-hover-border-color:#16796f;--bs-btn-active-bg:#12695f;--bs-btn-active-border-color:#12695f;--bs-btn-focus-shadow-rgb:22,121,111;font-weight:600;}
[data-bs-theme="dark"] .btn-outline-primary{--bs-btn-color:#8fdbc3;--bs-btn-border-color:#3a7569;--bs-btn-hover-bg:#16796f;--bs-btn-hover-border-color:#16796f;}
.btn{border-radius:10px;}
.btn-sm{border-radius:9px;}
.btn-light{--bs-btn-bg:#eff4f1;--bs-btn-border-color:#eff4f1;--bs-btn-hover-bg:#e4eeea;--bs-btn-hover-border-color:#e4eeea;color:#34565a;}
.kpi-card{border-radius:17px;box-shadow:0 14px 30px -20px rgba(8,42,46,.55);}
.kpi-card .kpi-body{padding:1.15rem 1.2rem;}
.kpi-card .kpi-label{font-size:.67rem;letter-spacing:.11em;font-weight:700;}
.kpi-card .kpi-value{font-size:clamp(1.55rem,2.35vw,2.05rem);letter-spacing:-.035em;}
.bg-grad-indigo{background:linear-gradient(135deg,#1d5961,#143845);}
.bg-grad-emerald{background:linear-gradient(135deg,#39b898,#167564);}
.bg-grad-amber{background:linear-gradient(135deg,#dfaa4d,#bc7437);}
.bg-grad-violet{background:linear-gradient(135deg,#537d8b,#385968);}
.bg-grad-sky{background:linear-gradient(135deg,#4b9aa6,#327281);}
.bg-grad-rose{background:linear-gradient(135deg,#d47970,#ac4e50);}
.bg-grad-slate{background:linear-gradient(135deg,#668286,#465f66);}
.card-table,.kpi-mini{border:1px solid #e4ebe8;border-radius:17px;background:#fff;box-shadow:0 7px 24px -18px rgba(13,54,57,.35);}
[data-bs-theme="dark"] .card-table,[data-bs-theme="dark"] .kpi-mini{background:#19282e;border-color:#2a3c41;}
.card-table .card-header{display:flex;align-items:center;min-height:54px;background:#fff;border-bottom:1px solid #e9efed;color:#244148;font-size:.86rem;}
[data-bs-theme="dark"] .card-table .card-header{background:#1d3035;border-bottom-color:#2a3c41;color:#e3eeeb;}
.card-table .card-header>i:first-child{color:#218575;}
.card-table .card-header .badge{background:#edf5f1!important;color:#26776c!important;font-size:.67rem;font-weight:700;}
.card-table .card-body{padding:1.1rem 1.2rem;}
.table{--bs-table-color:var(--vims-text);--bs-table-bg:transparent;}
.table thead th{padding:.72rem .8rem;background:#f5f8f6;color:#728588;font-size:.65rem;letter-spacing:.09em;border-bottom:1px solid #e4ebe8;}
[data-bs-theme="dark"] .table thead th{background:#21343a;color:#9eb1b1;border-bottom-color:#33474b;}
.table td{padding:.68rem .8rem;border-color:#edf1ef;font-size:.82rem;vertical-align:middle;}
[data-bs-theme="dark"] .table td{border-color:#283b40;}
.table tbody tr:hover{background:rgba(27,134,114,.045);}
[data-bs-theme="dark"] .table tbody tr:hover{background:rgba(109,212,178,.055);}
.table>:not(caption)>*>*{box-shadow:none;}
.table .badge.bg-light,.table .badge.text-bg-light{background:#edf3f1!important;color:#456267!important;}
.table-responsive{scrollbar-color:#b9cbc5 transparent;scrollbar-width:thin;}
.form-control,.form-select{min-height:39px;border-color:#d9e4e0;border-radius:10px;color:#28444a;background-color:#fff;font-size:.85rem;}
.form-control.form-control-sm,.form-select.form-select-sm{min-height:32px;font-size:.78rem;}
[data-bs-theme="dark"] .form-control,[data-bs-theme="dark"] .form-select{border-color:#355056;background-color:#152328;color:#e1ebea;}
.form-control:focus,.form-select:focus{border-color:#55ad97;box-shadow:0 0 0 .2rem rgba(22,121,111,.12);}
.form-label{color:#60787b!important;font-weight:600;}
[data-bs-theme="dark"] .form-label{color:#a9bfbc!important;}
.form-text{color:#819396;}
.input-group-text{border-color:#d9e4e0;border-radius:10px;color:#62807f;}
[data-bs-theme="dark"] .input-group-text{border-color:#355056;background:#21343a!important;color:#9fbcba;}
.alert{border:0;border-radius:13px;box-shadow:0 5px 18px -14px rgba(20,47,50,.25);}
.progress{height:9px;background:#edf2ef;}
[data-bs-theme="dark"] .progress{background:#26393d;}
.stage-pill{font-size:.68rem;letter-spacing:.025em;}
.stat-line{border-bottom-color:#e8eeeb;color:#496369;}
[data-bs-theme="dark"] .stat-line{color:#b4c5c4;border-bottom-color:#304247;}
.nav-tabs{gap:.28rem;border-bottom-color:#e0e9e5;}
.nav-tabs .nav-link{border:0;border-radius:9px 9px 0 0;color:#657c7e;font-size:.79rem;font-weight:600;}
.nav-tabs .nav-link:hover{color:#16796f;background:#f1f7f4;}
.nav-tabs .nav-link.active{background:#eaf5f0;color:#146f65;box-shadow:inset 0 -2px #258b76;}
[data-bs-theme="dark"] .nav-tabs{border-bottom-color:#32464a;}
[data-bs-theme="dark"] .nav-tabs .nav-link{color:#a5b9b8;}
[data-bs-theme="dark"] .nav-tabs .nav-link.active{background:#21413c;color:#9fe1c9;}
.dropdown-menu{padding:.45rem;border:1px solid #e2ebe7;border-radius:13px;box-shadow:0 16px 36px rgba(19,54,57,.14);}
[data-bs-theme="dark"] .dropdown-menu{background:#1b2c31;border-color:#34484c;}
.dropdown-item{padding:.5rem .65rem;border-radius:8px;font-size:.82rem;}
.dropdown-item.active,.dropdown-item:active{background:#e7f3ee;color:#176f64;}
.app-footer{display:flex;justify-content:space-between;gap:.75rem;padding:.8rem 1.5rem;color:#829294;border-top-color:#e1e9e6;font-size:.7rem;}
[data-bs-theme="dark"] .app-footer{border-top-color:#293b40;}
.footer-dot{padding:0 .2rem;color:#58a892;}
.footer-status{display:inline-flex;align-items:center;gap:.4rem;}
.footer-status i{color:#54ad88;font-size:.45rem;}
.table-search-wrap{position:relative;margin-left:auto;}
.table-search-wrap i{position:absolute;left:.68rem;top:50%;transform:translateY(-50%);color:#8a9b9d;font-size:.78rem;pointer-events:none;}
.table-search{width:min(230px,42vw);min-height:32px;padding:.35rem .65rem .35rem 2rem;border-radius:9px;font-size:.74rem;}
.table-search-count{margin-left:.45rem;color:#829294;font-size:.66rem;font-weight:500;white-space:nowrap;}
.report-head{background:linear-gradient(112deg,#122f3a 0%,#17464b 58%,#18766a 100%);box-shadow:0 14px 32px -18px rgba(15,77,71,.58);}
[data-bs-theme="dark"] .report-head{background:linear-gradient(112deg,#102a32 0%,#163d42 60%,#15584f 100%);}
.report-head-ico{border:1px solid rgba(193,241,222,.17);background:rgba(227,255,244,.13);color:#b1efd5;}
.report-head-title{letter-spacing:-.015em;}
.report-guidance,.search-page-note{display:flex;align-items:flex-start;gap:.6rem;margin:0 0 .75rem;padding:.65rem .82rem;border:1px solid #e2ece7;border-radius:12px;background:#f8fbf9;color:#637a7c;font-size:.73rem;line-height:1.45;}
.report-guidance>i,.search-page-note>i{flex:0 0 auto;margin-top:.05rem;color:#218575;font-size:.88rem;}
[data-bs-theme="dark"] .report-guidance,[data-bs-theme="dark"] .search-page-note{border-color:#2f4749;background:#1b2d31;color:#a9bfbb;}
.kpi-mini .kpi-body{padding:.9rem 1rem;}
.kpi-mini .lbl{color:#809396;font-weight:700;letter-spacing:.095em;}
.kpi-mini .val{color:#214148;letter-spacing:-.025em;}
[data-bs-theme="dark"] .kpi-mini .val{color:#e8f2ef;}
.login-wrap{position:relative;overflow:hidden;padding:1.25rem;background:radial-gradient(ellipse at 15% 14%,rgba(52,163,139,.36),transparent 35%),radial-gradient(ellipse at 92% 82%,rgba(232,177,97,.16),transparent 31%),linear-gradient(135deg,#0e2630,#163d43 58%,#0e6158);}
.login-wrap::before,.login-wrap::after{content:"";position:absolute;border:1px solid rgba(193,241,222,.12);border-radius:50%;pointer-events:none;}
.login-wrap::before{width:460px;height:460px;top:-255px;right:-85px;box-shadow:0 0 0 35px rgba(193,241,222,.025),0 0 0 82px rgba(193,241,222,.018);}
.login-wrap::after{width:340px;height:340px;bottom:-230px;left:7%;box-shadow:0 0 0 30px rgba(193,241,222,.025);}
.login-card{position:relative;z-index:1;max-width:470px;border:1px solid rgba(255,255,255,.6);border-radius:23px;box-shadow:0 35px 100px -38px rgba(1,19,24,.78);}
.login-logo{position:relative;width:62px;height:62px;border-radius:19px;background:linear-gradient(145deg,#1c8c78,#195769);box-shadow:0 13px 30px -10px rgba(22,121,111,.66);}
.login-logo-beam{position:absolute;right:8px;top:12px;width:19px;height:2px;border-radius:3px;background:#ffcd7d;transform:rotate(-45deg);box-shadow:0 0 9px #ffcd7d;}
.login-eyebrow{text-align:center;color:#178575;font-size:.62rem;font-weight:800;letter-spacing:.16em;margin-bottom:.45rem;}
.login-card h1{color:#183b40;font-size:1.5rem;letter-spacing:-.035em;}
.login-benefits{display:flex;justify-content:center;flex-wrap:wrap;gap:.45rem;margin-top:1.15rem;}
.login-benefits span{display:inline-flex;align-items:center;gap:.32rem;padding:.32rem .52rem;border-radius:999px;background:#eff6f2;color:#597376;font-size:.63rem;font-weight:600;}
.login-benefits i{color:#168170;}
.login-card .form-control-lg-app{min-height:46px;border-radius:0 10px 10px 0;}
.login-card .input-group-text{min-width:43px;justify-content:center;border-radius:10px 0 0 10px;background:#f2f6f3!important;}
.login-card .btn-login{min-height:47px;border-radius:11px;}
.login-card .alert{font-size:.82rem;}
.modal-content{border:1px solid #e2ebe7;border-radius:18px;box-shadow:0 24px 60px rgba(14,45,49,.2);overflow:hidden;}
[data-bs-theme="dark"] .modal-content{background:#19282e;border-color:#32464b;}
.modal-header,.modal-footer{border-color:#e7eeeb;}
[data-bs-theme="dark"] .modal-header,[data-bs-theme="dark"] .modal-footer{border-color:#2c4145;}
.empty-state{color:#829294;}
.empty-state i{color:#5ba58f;}
:focus-visible{outline:3px solid rgba(82,185,154,.55);outline-offset:2px;}

@media (min-width:1500px){.app-content{padding-right:2.5rem;padding-left:2.5rem;}.page-heading{min-height:188px;}}
@media (max-width:1199.98px){.page-heading-art{right:1.7rem;opacity:.75;}.toolbar-caption{display:none;}}
@media (max-width:991.98px){
  .app-sidebar{width:276px;transform:translateX(-102%);}
  .app-main{margin-left:0;}
  .app-topbar{height:66px;padding:0 1rem;}
  .app-content{padding:1rem 1rem calc(5.6rem + env(safe-area-inset-bottom));}
  body.sidebar-open{overflow:hidden;}
  body.sidebar-open .app-sidebar{transform:translateX(0);}
  body.sidebar-open .sidebar-backdrop{display:block;}
  .mobile-bottom-nav{position:fixed;left:0;right:0;bottom:0;z-index:1035;display:flex;justify-content:space-around;gap:.2rem;padding:.38rem .35rem calc(.38rem + env(safe-area-inset-bottom));background:rgba(255,255,255,.96);border-top:1px solid #dce8e3;box-shadow:0 -8px 24px rgba(15,54,54,.08);backdrop-filter:blur(14px);}
  [data-bs-theme="dark"] .mobile-bottom-nav{background:rgba(20,34,39,.97);border-top-color:#294147;}
  .mobile-nav-item{flex:1;min-width:0;min-height:52px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.14rem;border:0;border-radius:12px;background:transparent;color:#6f8384;text-decoration:none;font:inherit;font-size:.62rem;font-weight:600;line-height:1.15;}
  .mobile-nav-item i{font-size:1.16rem;line-height:1;}
  .mobile-nav-item.active{color:#14776e;background:#eaf5f0;}
  [data-bs-theme="dark"] .mobile-nav-item{color:#a8c0be;}
  [data-bs-theme="dark"] .mobile-nav-item.active{color:#a8ead1;background:#1d3b39;}
  .page-heading{min-height:160px;}
  .page-heading-art{right:1.15rem;transform:translateY(-50%) scale(.82);opacity:.48;}
}
@media (max-width:767.98px){
  .app-content{padding:.8rem .75rem calc(5.6rem + env(safe-area-inset-bottom));}
  .page-heading{min-height:0;margin-bottom:1rem;padding:1.2rem 1.05rem;border-radius:18px;}
  .page-heading-title{font-size:1.42rem;gap:.58rem;}
  .page-heading-title i{width:34px;height:34px;font-size:.98rem;border-radius:11px;}
  .page-heading-description{max-width:90%;font-size:.79rem;}
  .page-context{max-width:100%;font-size:.66rem;}
  .page-heading-art{right:-.2rem;transform:translateY(-50%) scale(.64);opacity:.23;}
  .dashboard-toolbar{gap:.5rem;padding:.45rem;border-radius:13px;}
  .month-picker{min-width:0;flex:1;}
  .toolbar-caption{display:none;}
  .dashboard-toolbar>.btn{white-space:nowrap;}
  .card-table .card-header{min-height:49px;padding:.7rem .85rem;}
  .card-table .card-body{padding:.9rem;}
  .table td{padding:.58rem .62rem;font-size:.77rem;}
  .table thead th{padding:.62rem;font-size:.61rem;}
  .table-search{width:min(190px,44vw);}
  .app-footer{padding:.75rem .9rem;font-size:.64rem;}
  .footer-status{display:none;}
  .report-head{padding:.8rem;border-radius:15px;}
  .report-head-actions{width:100%;}
  .report-head-actions .form-control{flex:1 1 145px;width:auto!important;}
  .report-head-title{font-size:1rem;}
  .report-head-sub{gap:.28rem;}
  .meta-chip{font-size:.65rem;padding:.15rem .52rem;}
  .report-guidance,.search-page-note{font-size:.69rem;padding:.55rem .65rem;}
}
@media (max-width:575.98px){
  .app-topbar{gap:.4rem;padding:0 .55rem;}
  .topbar-signal{display:none;}
  .topbar-title{font-size:.78rem;}
  .topbar-sub{font-size:.61rem;}
  .app-topbar .gap-2{gap:.3rem!important;}
  .app-topbar .btn-sm{padding:.35rem .47rem;font-size:.74rem;}
  .location-switcher{min-width:34px;justify-content:center;}
  .location-switcher .bi-geo-alt-fill{margin:0!important;}
  .location-switcher .dropdown-toggle::after{margin-left:.28rem;}
  .theme-toggle{display:none;}
  .page-eyebrow{font-size:.56rem;letter-spacing:.12em;}
  .page-heading-description{max-width:100%;}
  .page-heading-art{display:none;}
  .month-picker-copy small{font-size:.53rem;}
  .month-picker select{max-width:115px;font-size:.76rem;}
  .dashboard-toolbar>.btn{font-size:.7rem;padding:.36rem .48rem;}
  .table-search-wrap{width:100%;margin:.35rem 0 0;}
  .table-search{width:100%;}
  .table-search-count{display:none;}
  .card-table .card-header{flex-wrap:wrap;}
  .report-head-ico{width:33px;height:33px;}
  .report-head-actions .btn{font-size:.7rem;}
  .login-card .card-body{padding:1.55rem!important;}
}
@media print{
  .page-heading-art,.sidebar-profile,.app-sidebar,.app-topbar,.app-footer,.mobile-bottom-nav,.dashboard-toolbar,.table-search-wrap{display:none!important;}
  .app-main{margin:0!important;}
  .app-content{padding:0!important;}
}
