/* ───────────────────────── LEMS admin theme (on top of Jazzmin / AdminLTE) ───────────────────────── */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap');

:root {
  /* Somaliland flag: green · white · red, black star */
  --flag-green: #006d21; --flag-red: #d21034; --flag-black: #000;
  --lems-forest-950: #020d06; --lems-forest-900: #04190d; --lems-forest-800: #082716;
  --lems-accent: #006d21; --lems-accent-2: #007a2a;
  --lems-ink: #1c1917; --lems-ink-2: #57534e; --lems-ink-3: #a8a29e;
  --lems-surface: #ffffff; --lems-page: #f4f4f1; --lems-line: #e7e5e0;
  /* data-viz categorical slots for case status (validated palette) */
  --st-open: #e8606f; --st-under_investigation: #9a4a90; --st-referred_to_court: #b8862b; --st-closed: #006d21;
}

body, .main-header, .main-sidebar, .content-wrapper, .btn, .form-control, h1, h2, h3, h4, h5, h6 {
  font-family: 'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif !important;
}
body { -webkit-font-smoothing: antialiased; }
.content-wrapper { background: var(--lems-page) !important; }
footer.main-footer { display: none !important; }

/* Sidebar */
.main-sidebar {
  background: linear-gradient(180deg, var(--lems-forest-800) 0%, var(--lems-forest-950) 60%, #000 100%) !important;
  box-shadow: none !important;
}
.main-sidebar .brand-link { background: transparent !important; border-bottom: 1px solid rgba(255,255,255,.08) !important; padding: 1rem .9rem !important; }
.main-sidebar .brand-text { font-weight: 600 !important; letter-spacing: -.01em; color: #fff !important; }
.main-sidebar .user-panel { border-bottom: 1px solid rgba(255,255,255,.08) !important; }
.nav-sidebar .nav-link { border-radius: 10px !important; margin: 1px 8px; color: #d6d3d1 !important; font-size: .9rem; }
.nav-sidebar .nav-link:hover { background: rgba(255,255,255,.06) !important; color: #fff !important; }
.nav-sidebar .nav-link.active, .nav-sidebar > .nav-item.menu-open > .nav-link {
  background: rgba(255,255,255,.10) !important;
  color: #fff !important; box-shadow: inset 3px 0 0 var(--flag-red), inset 0 0 0 1px rgba(255,255,255,.08) !important;
}
.nav-sidebar .nav-header { color: #78716c !important; font-size: .7rem !important; letter-spacing: .14em; text-transform: uppercase; }
.nav-treeview .nav-link { padding-left: 2rem !important; }

/* Fixed sidebar must scroll when the menu is taller than the screen */
html body.layout-fixed aside.main-sidebar { height: 100vh; overflow: hidden; }
html body.layout-fixed aside.main-sidebar > .sidebar {
  height: calc(100vh - 57px) !important; min-height: 0 !important; max-height: calc(100vh - 57px) !important;
  overflow-y: auto !important; overflow-x: hidden;
  scrollbar-width: thin; scrollbar-color: rgba(255,255,255,.25) transparent;
}
.main-sidebar .sidebar::-webkit-scrollbar { width: 6px; }
.main-sidebar .sidebar::-webkit-scrollbar-thumb { background: rgba(255,255,255,.2); border-radius: 3px; }
.main-sidebar .brand-link { border-top: 4px solid; border-image: linear-gradient(90deg, var(--flag-green) 0 33.33%, #fff 33.33% 66.66%, var(--flag-red) 66.66%) 1; }

/* Top navbar */
.main-header.navbar { background: rgba(255,255,255,.85) !important; backdrop-filter: saturate(180%) blur(8px); border-bottom: 1px solid var(--lems-line) !important; }
.main-header .nav-link { color: var(--lems-ink-2) !important; font-weight: 500; }

/* Cards, tables, forms */
.card { border: 0 !important; border-radius: 16px !important; box-shadow: 0 1px 2px rgba(28,25,23,.04), 0 4px 16px rgba(28,25,23,.06) !important; }
.card-header { background: transparent !important; border-bottom: 1px solid var(--lems-line) !important; }
.content-header h1 { font-weight: 600; letter-spacing: -.02em; color: var(--lems-ink); }
.table thead th { border-top: 0 !important; border-bottom: 1px solid var(--lems-line) !important; color: var(--lems-ink-2); font-size: .75rem; font-weight: 600; text-transform: uppercase; letter-spacing: .04em; }
.table td { border-top: 1px solid #f4f4f1 !important; vertical-align: middle !important; }
#result_list tbody tr:hover { background: #fafaf9; }
.form-control, .select2-container--default .select2-selection--single {
  border-radius: 10px !important; border-color: #d6d3d1 !important; min-height: 38px;
}
.form-control:focus { border-color: var(--lems-accent) !important; box-shadow: 0 0 0 3px rgba(0,109,33,.15) !important; }
.btn { border-radius: 10px !important; font-weight: 600 !important; }
.btn-primary, .btn-success { background: linear-gradient(90deg, var(--flag-green), var(--lems-accent-2)) !important; border: 0 !important; }
.btn-danger { background: var(--flag-red) !important; border: 0 !important; }
a { color: var(--lems-accent); }
.page-item.active .page-link { background: var(--flag-green) !important; border-color: var(--flag-green) !important; }
.btn-primary:hover, .btn-success:hover { filter: brightness(1.08); }
.breadcrumb { background: transparent !important; font-size: .8rem; }

/* Login */
body.login-page {
  background: radial-gradient(1000px 520px at 10% -10%, rgba(0,109,33,.55), transparent 60%),
              radial-gradient(800px 480px at 110% 110%, rgba(210,16,52,.40), transparent 60%),
              linear-gradient(135deg, var(--lems-forest-800), #000) !important;
}
.login-page .login-box .card { border-radius: 20px !important; box-shadow: 0 30px 80px rgba(2,6,23,.5) !important; }
.login-page .login-logo, .login-page .login-logo a { color: #fff !important; font-weight: 600; }
img.login-logo { max-width: 120px !important; height: auto !important; }
.login-card-body { border-radius: 20px !important; padding: 2rem !important; }

/* ───────────── Admin home ───────────── */
.lems-home .content-header { display: none; }
.lems-dash { flex: 0 0 100%; max-width: 100%; min-width: 0; padding: 8px 4px 32px; display: flex; flex-direction: column; gap: 20px; color: var(--lems-ink); }
.lems-hero {
  position: relative; overflow: hidden; border-radius: 22px; padding: 28px 28px 22px; color: #fff;
  background: linear-gradient(135deg, var(--lems-forest-800) 0%, #06431a 45%, var(--flag-green) 100%);
  box-shadow: 0 10px 30px rgba(2,38,18,.30);
}
.lems-hero__glow { position: absolute; inset: -140px -80px auto auto; width: 340px; height: 340px; border-radius: 50%; background: rgba(210,16,52,.30); filter: blur(60px); }
.lems-hero::after { content: ''; position: absolute; left: 0; right: 0; bottom: 0; height: 6px; background: linear-gradient(90deg, var(--flag-green) 0 33.33%, #fff 33.33% 66.66%, var(--flag-red) 66.66%); }
.lems-hero__body { position: relative; min-width: 0; display: flex; flex-wrap: wrap; gap: 20px; align-items: flex-end; justify-content: space-between; }
.lems-eyebrow { font-size: .7rem; font-weight: 600; letter-spacing: .18em; text-transform: uppercase; color: #a8dcb7; }
.lems-hero__title { overflow-wrap: anywhere; font-size: 1.75rem; font-weight: 600; letter-spacing: -.02em; margin: 6px 0 4px; }
.lems-hero__sub { margin: 0; color: rgba(236,248,239,.9); font-size: .9rem; }
.lems-hero__actions { display: flex; gap: 10px; flex-wrap: wrap; }
.lems-btn { display: inline-flex; align-items: center; gap: 8px; padding: 9px 16px; border-radius: 12px; font-weight: 600; font-size: .875rem; text-decoration: none !important; transition: .15s; }
.lems-btn--light { background: #fff; color: var(--flag-green) !important; }
.lems-btn--light:hover { background: #ecf8ef; }
.lems-btn--ghost { background: rgba(255,255,255,.12); color: #fff !important; box-shadow: inset 0 0 0 1px rgba(255,255,255,.25); }
.lems-btn--ghost:hover { background: rgba(255,255,255,.2); }
.lems-hero__stats { position: relative; display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 16px; margin-top: 24px; padding-top: 18px; border-top: 1px solid rgba(255,255,255,.18); }
.lems-hero__stats strong { display: block; font-size: 1.75rem; font-weight: 600; line-height: 1; letter-spacing: -.02em; }
.lems-hero__stats span { font-size: .75rem; color: rgba(236,248,239,.8); }

.lems-kpis { display: grid; grid-template-columns: repeat(6, minmax(0,1fr)); gap: 14px; }
.lems-kpi { position: relative; overflow: hidden; display: flex; flex-direction: column; gap: 4px; padding: 18px; border-radius: 18px; color: #fff !important; text-decoration: none !important; box-shadow: 0 4px 16px rgba(28,25,23,.10); transition: transform .15s, box-shadow .15s; }
.lems-kpi:hover { transform: translateY(-2px); box-shadow: 0 10px 24px rgba(28,25,23,.18); }
.lems-kpi::after { content: ''; position: absolute; right: -30px; top: -30px; width: 110px; height: 110px; border-radius: 50%; background: rgba(255,255,255,.12); filter: blur(10px); }
.lems-kpi__icon { position: absolute; right: 16px; top: 16px; opacity: .85; font-size: 1.05rem; }
.lems-kpi__label { font-size: .78rem; font-weight: 500; color: rgba(255,255,255,.85); }
.lems-kpi__value { font-size: 2rem; font-weight: 600; letter-spacing: -.02em; line-height: 1.1; }
.lems-kpi__hint { font-size: .72rem; color: rgba(255,255,255,.75); }
.lems-kpi--red { background: linear-gradient(135deg, #e8324f, #d21034 55%, #730f24); }
.lems-kpi--crimson { background: linear-gradient(135deg, #8c0d26, #4a0a17 55%, #000); }
.lems-kpi--bronze { background: linear-gradient(135deg, #c9962f, #9c7020 55%, #4f3a10); }
.lems-kpi--green { background: linear-gradient(135deg, #14943f, #006d21 55%, #032612); }
.lems-kpi--forest { background: linear-gradient(135deg, #04561c, #0d3a20 55%, #020d06); }
.lems-kpi--charcoal { background: linear-gradient(135deg, #3b3b39, #232322 55%, #000); }

.lems-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 20px; }
.lems-span-2 { grid-column: span 2; }
.lems-card { min-width: 0; background: var(--lems-surface); border-radius: 18px; padding: 20px; box-shadow: 0 1px 2px rgba(28,25,23,.04), 0 4px 16px rgba(28,25,23,.06); }
.lems-card__head { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 14px; }
.lems-card__head h2 { font-size: 1rem; font-weight: 600; margin: 0; letter-spacing: -.01em; }
.lems-card__head p { margin: 2px 0 0; font-size: .75rem; color: var(--lems-ink-3); }
.lems-link { font-size: .8rem; font-weight: 600; color: var(--flag-green) !important; }
.lems-table { width: 100%; font-size: .875rem; }
.lems-table th { font-size: .72rem; font-weight: 600; color: var(--lems-ink-3); text-transform: uppercase; letter-spacing: .04em; padding: 8px 10px; border-bottom: 1px solid var(--lems-line); }
.lems-table td { padding: 10px; border-bottom: 1px solid #f4f4f1; }
.lems-table tr:last-child td { border-bottom: 0; }
.lems-mono { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .8rem; font-weight: 600; }
.lems-muted { color: var(--lems-ink-2); }
.lems-pill { white-space: nowrap; display: inline-flex; align-items: center; gap: 6px; padding: 2px 9px; border-radius: 999px; font-size: .72rem; font-weight: 600; background: #f4f4f1; color: var(--lems-ink); }
.lems-pill::before { content: ''; width: 7px; height: 7px; border-radius: 50%; background: currentColor; }
.lems-pill--open::before { background: var(--st-open); }
.lems-pill--under_investigation::before { background: var(--st-under_investigation); }
.lems-pill--referred_to_court::before { background: var(--st-referred_to_court); }
.lems-pill--closed::before { background: var(--st-closed); }
.lems-bars { list-style: none; padding: 0; margin: 0 0 8px; display: flex; flex-direction: column; gap: 14px; }
.lems-bars__row { display: flex; justify-content: space-between; font-size: .85rem; margin-bottom: 6px; color: var(--lems-ink-2); }
.lems-bars__row strong { color: var(--lems-ink); font-weight: 600; }
.lems-bars__row em { font-style: normal; color: var(--lems-ink-3); font-weight: 500; margin-left: 6px; font-size: .75rem; }
.lems-bars__track { height: 8px; border-radius: 999px; background: #ecebe6; overflow: hidden; }
.lems-bars__fill { height: 100%; border-radius: 999px; }
.lems-dot { display: inline-block; width: 9px; height: 9px; border-radius: 3px; margin-right: 8px; }
.lems-dot--open { background: var(--st-open); }
.lems-dot--under_investigation { background: var(--st-under_investigation); }
.lems-dot--referred_to_court { background: var(--st-referred_to_court); }
.lems-dot--closed { background: var(--st-closed); }
.lems-subhead { margin: 18px 0 8px; padding-top: 14px; border-top: 1px solid var(--lems-line); font-size: .72rem; font-weight: 600; text-transform: uppercase; letter-spacing: .06em; color: var(--lems-ink-3); }
.lems-list { list-style: none; margin: 0; padding: 0; }
.lems-list li { display: flex; justify-content: space-between; padding: 7px 0; font-size: .85rem; color: var(--lems-ink-2); border-bottom: 1px solid #f4f4f1; }
.lems-list li:last-child { border-bottom: 0; }
.lems-list strong { color: var(--lems-ink); }
.lems-feed { list-style: none; margin: 0; padding: 0; }
.lems-feed__item { position: relative; display: flex; gap: 12px; padding: 0 0 14px 0; font-size: .875rem; }
.lems-feed__item:not(:last-child)::before { content: ''; position: absolute; left: 5px; top: 16px; bottom: 0; width: 1px; background: var(--lems-line); }
.lems-feed__dot { flex-shrink: 0; width: 11px; height: 11px; margin-top: 5px; border-radius: 50%; background: #a8a29e; box-shadow: 0 0 0 3px #fff; position: relative; z-index: 1; }
.lems-feed--create .lems-feed__dot { background: var(--flag-green); }
.lems-feed--update .lems-feed__dot { background: #b8862b; }
.lems-feed--delete .lems-feed__dot { background: var(--flag-red); }
.lems-feed--login .lems-feed__dot, .lems-feed--logout .lems-feed__dot { background: #57534e; }
.lems-feed__item small { color: var(--lems-ink-3); }
.lems-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.lems-actions a { display: flex; flex-direction: column; gap: 8px; padding: 14px; border-radius: 14px; background: #fafaf9; color: var(--lems-ink) !important; font-size: .82rem; font-weight: 600; text-decoration: none !important; box-shadow: inset 0 0 0 1px var(--lems-line); transition: .15s; }
.lems-actions a i { font-size: 1.05rem; color: var(--flag-green); }
.lems-actions a:hover { background: #ecf8ef; box-shadow: inset 0 0 0 1px #a8dcb7; }
.lems-modules { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 14px; }
.lems-module { border-radius: 14px; padding: 14px; box-shadow: inset 0 0 0 1px var(--lems-line); }
.lems-module__title { font-size: .72rem; font-weight: 600; text-transform: uppercase; letter-spacing: .06em; color: var(--lems-ink-3); margin-bottom: 8px; }
.lems-module__row { display: flex; justify-content: space-between; align-items: center; padding: 5px 0; font-size: .875rem; }
.lems-module__row a { color: var(--lems-ink) !important; }
.lems-module__row a i { width: 20px; color: var(--lems-ink-3); margin-right: 6px; }
.lems-module__add { width: 24px; height: 24px; display: grid; place-items: center; border-radius: 8px; background: #ecf8ef; color: var(--flag-green) !important; font-size: .7rem; }

@media (max-width: 1680px) { .lems-kpis { grid-template-columns: repeat(3, minmax(0,1fr)); } }
@media (max-width: 992px) { .lems-grid { grid-template-columns: 1fr; } .lems-span-2 { grid-column: auto; } }
@media (max-width: 640px) {
  .lems-kpis { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .lems-hero__stats { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .lems-hero { padding: 22px 18px; }
  .lems-actions { grid-template-columns: 1fr; }
}
