/* ═══════════════════════════════════════════════════════════════════════
   APEX NEXUS EHR — $500M Enterprise Design System
   Palantir × Stripe × Epic — Government-grade healthcare platform
   ═══════════════════════════════════════════════════════════════════════ */
@import url('https://fonts.googleapis.com/css2?family=Sora:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap');

/* ── Core Tokens ─────────────────────────────────────────────────────── */
:root, [data-theme="premium"], [data-theme="dark"] {
  --nx-bg: #06080F;
  --nx-s1: #0A0D18;
  --nx-s2: #0F1422;
  --nx-s3: #141B2E;
  --nx-s4: #1A2338;
  --nx-b: rgba(255,255,255,0.055);
  --nx-b2: rgba(255,255,255,0.1);
  --nx-b3: rgba(255,255,255,0.16);
  --nx-t1: #EFF4FF;
  --nx-t2: #8896B0;
  --nx-t3: #44556C;
  --nx-t4: #1C2840;
  --nx-cy: #22D3EE;
  --nx-cy-d: rgba(34,211,238,0.09);
  --nx-cy-g: rgba(34,211,238,0.17);
  --nx-pu: #A78BFA;
  --nx-pu-d: rgba(167,139,250,0.1);
  --nx-vi: #818CF8;
  --nx-vi-d: rgba(129,140,248,0.1);
  --nx-gr: #34D399;
  --nx-gr-d: rgba(52,211,153,0.09);
  --nx-am: #FBBF24;
  --nx-am-d: rgba(251,191,36,0.1);
  --nx-rd: #F87171;
  --nx-rd-d: rgba(248,113,113,0.09);
  --nx-font: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
  --nx-font-head: 'Sora', var(--nx-font);
  --nx-font-mono: 'JetBrains Mono', 'SF Mono', Consolas, monospace;
  --nx-sidebar-w: 210px;
  --nx-radius: 11px;
  --nx-radius-sm: 7px;
  --nx-tr: background .2s ease, border-color .2s ease, color .18s ease;
}

/* ── Light Mode ──────────────────────────────────────────────────────── */
[data-theme="light"] {
  --nx-bg: #ECF1FA;
  --nx-s1: #FFFFFF;
  --nx-s2: #F4F7FD;
  --nx-s3: #EBF0F8;
  --nx-s4: #DDE4F0;
  --nx-b: rgba(0,0,0,0.07);
  --nx-b2: rgba(0,0,0,0.12);
  --nx-b3: rgba(0,0,0,0.18);
  --nx-t1: #0C1526;
  --nx-t2: #44556C;
  --nx-t3: #8896B0;
  --nx-t4: #C8D4E5;
  --nx-cy: #0891B2;
  --nx-cy-d: rgba(8,145,178,0.08);
  --nx-cy-g: rgba(8,145,178,0.15);
  --nx-pu: #7C3AED;
  --nx-pu-d: rgba(124,58,237,0.08);
  --nx-vi: #4F46E5;
  --nx-vi-d: rgba(79,70,229,0.08);
  --nx-gr: #059669;
  --nx-gr-d: rgba(5,150,105,0.08);
  --nx-am: #D97706;
  --nx-am-d: rgba(217,119,6,0.09);
  --nx-rd: #DC2626;
  --nx-rd-d: rgba(220,38,38,0.08);
}

/* ── Global ──────────────────────────────────────────────────────────── */
body.apex-premium {
  background: var(--nx-bg) !important;
  color: var(--nx-t1) !important;
  font-family: var(--nx-font) !important;
  font-size: 12px !important;
  line-height: 1.5 !important;
  -webkit-font-smoothing: antialiased !important;
  background-image: none !important;
}

body.apex-premium * {
  transition: var(--nx-tr);
}

/* ── Layout ──────────────────────────────────────────────────────────── */
.apex-layout {
  display: flex !important;
  height: 100vh !important;
  min-height: 700px !important;
}

/* ── Sidebar ─────────────────────────────────────────────────────────── */
.apex-sidebar, .apex-sidebar-modern {
  width: var(--nx-sidebar-w) !important;
  min-width: var(--nx-sidebar-w) !important;
  background: var(--nx-s1) !important;
  border-right: 1px solid var(--nx-b) !important;
  display: flex !important;
  flex-direction: column !important;
  height: 100% !important;
  overflow: hidden !important;
  box-shadow: none !important;
}

.sidebar-modern-header {
  padding: 14px 13px 11px !important;
  border-bottom: 1px solid var(--nx-b) !important;
  flex-shrink: 0 !important;
}

.sidebar-brand-modern {
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  text-decoration: none !important;
}

.sidebar-brand-logo {
  width: 30px !important;
  height: 30px !important;
  border-radius: 8px !important;
}

.sidebar-brand-name {
  font-family: var(--nx-font-head) !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  color: var(--nx-t1) !important;
  letter-spacing: -0.02em !important;
}

.sidebar-brand-sub {
  font-size: 9px !important;
  color: var(--nx-t3) !important;
  font-family: var(--nx-font-mono) !important;
  margin-top: 1px !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
}

/* Sidebar Nav */
.sidebar-nav-modern {
  flex: 1 !important;
  overflow-y: auto !important;
  padding: 4px 7px !important;
  scrollbar-width: none !important;
}
.sidebar-nav-modern::-webkit-scrollbar { display: none !important; }

.nav-list-modern {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
}

.nav-link-modern {
  display: flex !important;
  align-items: center !important;
  gap: 7px !important;
  padding: 6px 8px !important;
  border-radius: 6px !important;
  cursor: pointer !important;
  color: var(--nx-t2) !important;
  font-size: 11.5px !important;
  font-weight: 500 !important;
  margin-bottom: 1px !important;
  border: 1px solid transparent !important;
  text-decoration: none !important;
  transition: all 0.15s ease !important;
  border-left: none !important;
}

.nav-link-modern:hover {
  background: var(--nx-s3) !important;
  color: var(--nx-t1) !important;
  transform: translateX(2px);
}

.nav-link-modern.active {
  background: var(--nx-cy-d) !important;
  color: var(--nx-cy) !important;
  border-color: rgba(34,211,238,0.12) !important;
}

[data-theme="light"] .nav-link-modern.active {
  border-color: rgba(8,145,178,0.15) !important;
}

.nav-icon-modern {
  width: 13px !important;
  height: 13px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  font-size: 11px !important;
  flex-shrink: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  opacity: 0.7 !important;
}

.nav-link-modern.active .nav-icon-modern {
  opacity: 1 !important;
  color: var(--nx-cy) !important;
}

.nav-icon-modern.icon-blue,
.nav-icon-modern.icon-teal,
.nav-icon-modern.icon-green,
.nav-icon-modern.icon-purple,
.nav-icon-modern.icon-orange,
.nav-icon-modern.icon-pink {
  background: transparent !important;
  color: inherit !important;
}

.nav-text-modern {
  font-size: 11.5px !important;
  font-weight: inherit !important;
  flex: 1 !important;
}

/* Sidebar Footer */
.sidebar-footer-modern {
  flex-shrink: 0 !important;
  border-top: 1px solid var(--nx-b) !important;
  padding: 9px !important;
  background: var(--nx-s1) !important;
}

.footer-user-card {
  display: flex !important;
  align-items: center !important;
  gap: 7px !important;
  padding: 6px 8px !important;
  border-radius: 7px !important;
  background: var(--nx-s2) !important;
  border: 1px solid var(--nx-b) !important;
  cursor: pointer !important;
  margin-bottom: 7px !important;
}

.footer-avatar {
  width: 26px !important;
  height: 26px !important;
  border-radius: 50% !important;
  flex-shrink: 0 !important;
  background: var(--nx-cy-d) !important;
  border: 1.5px solid var(--nx-cy) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  font-size: 9px !important;
  font-weight: 700 !important;
  color: var(--nx-cy) !important;
}

.footer-user-name {
  font-size: 11px !important;
  font-weight: 600 !important;
  color: var(--nx-t1) !important;
}

.footer-user-role {
  font-size: 9px !important;
  color: var(--nx-t3) !important;
  font-family: var(--nx-font-mono) !important;
}

.hipaa-badge {
  font-size: 9px !important;
  color: var(--nx-t3) !important;
  padding: 2px 4px !important;
  background: transparent !important;
  border: none !important;
  font-family: var(--nx-font-mono) !important;
}

/* ── Topbar ──────────────────────────────────────────────────────────── */
.apex-topbar, .apex-topbar-premium, .top-header, .apex-header {
  background: var(--nx-s1) !important;
  border-bottom: 1px solid var(--nx-b) !important;
  height: 48px !important;
  padding: 0 16px !important;
  backdrop-filter: none !important;
}

.apex-topbar *, .top-header * {
  font-family: var(--nx-font) !important;
}

/* ── Main Content ─────────────────────────────────────────────────────── */
.apex-main {
  flex: 1 !important;
  display: flex !important;
  flex-direction: column !important;
  overflow: hidden !important;
  min-width: 0 !important;
  background: var(--nx-bg) !important;
}

.apex-content {
  flex: 1 !important;
  overflow-y: auto !important;
  padding: 14px 16px 18px !important;
  scrollbar-width: thin !important;
  scrollbar-color: var(--nx-s4) transparent !important;
}

/* ── Cards ────────────────────────────────────────────────────────────── */
.card, .apex-card, .stat-card, .insight-card {
  background: var(--nx-s1) !important;
  border: 1px solid var(--nx-b) !important;
  border-radius: var(--nx-radius) !important;
  box-shadow: none !important;
  overflow: hidden !important;
}

.card-header, .card-body, .card-footer {
  background: transparent !important;
  border-color: var(--nx-b) !important;
}

/* Stat Cards */
.stat-card .stat-value, .stat-card-value {
  font-size: 22px !important;
  font-weight: 700 !important;
  color: var(--nx-t1) !important;
  font-family: var(--nx-font-mono) !important;
  font-feature-settings: "tnum" !important;
  line-height: 1 !important;
}

.stat-card .stat-label, .stat-card-label {
  font-size: 9px !important;
  font-weight: 600 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  color: var(--nx-t3) !important;
  font-family: var(--nx-font-mono) !important;
  margin-bottom: 6px !important;
}

.stat-card .stat-sub {
  font-size: 10px !important;
  color: var(--nx-t3) !important;
  margin-top: 3px !important;
}

.stat-card .stat-icon {
  background: var(--nx-cy-d) !important;
  color: var(--nx-cy) !important;
  border-radius: 8px !important;
  width: 32px !important;
  height: 32px !important;
}

/* ── Typography ───────────────────────────────────────────────────────── */
h1, h2, h3, h4, h5, h6,
.main-dash-title,
.fw-bold {
  font-family: var(--nx-font-head) !important;
  color: var(--nx-t1) !important;
  letter-spacing: -0.02em !important;
}

h1.fw-bold, .main-dash-title {
  font-size: 18px !important;
  font-weight: 700 !important;
}

.text-muted {
  color: var(--nx-t3) !important;
}

/* ── Tables ───────────────────────────────────────────────────────────── */
.table, .data-table {
  color: var(--nx-t2) !important;
  font-size: 12px !important;
}

.table thead th {
  font-size: 9px !important;
  font-weight: 600 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  color: var(--nx-t3) !important;
  font-family: var(--nx-font-mono) !important;
  border-bottom: 1px solid var(--nx-b) !important;
  padding: 7px 10px !important;
}

.table tbody td {
  border-bottom: 1px solid var(--nx-b) !important;
  padding: 7px 10px !important;
}

.table tbody tr:last-child td {
  border-bottom: none !important;
}

/* ── Buttons ──────────────────────────────────────────────────────────── */
.btn-primary {
  background: var(--nx-cy-d) !important;
  border: 1px solid rgba(34,211,238,0.22) !important;
  color: var(--nx-cy) !important;
  font-size: 11px !important;
  font-weight: 500 !important;
  padding: 7px 12px !important;
  border-radius: var(--nx-radius-sm) !important;
}
.btn-primary:hover {
  background: var(--nx-cy-g) !important;
  color: var(--nx-cy) !important;
}

.btn-outline-primary {
  background: transparent !important;
  border: 1px solid var(--nx-b2) !important;
  color: var(--nx-t2) !important;
  font-size: 11px !important;
  font-weight: 500 !important;
  padding: 7px 12px !important;
  border-radius: var(--nx-radius-sm) !important;
}
.btn-outline-primary:hover {
  background: var(--nx-s3) !important;
  color: var(--nx-t1) !important;
}

/* ── Badges ───────────────────────────────────────────────────────────── */
.badge {
  font-size: 9px !important;
  font-family: var(--nx-font-mono) !important;
  font-weight: 500 !important;
  padding: 2px 7px !important;
  border-radius: 10px !important;
}

.badge.bg-primary { background: var(--nx-cy-d) !important; color: var(--nx-cy) !important; }
.badge.bg-success { background: var(--nx-gr-d) !important; color: var(--nx-gr) !important; }
.badge.bg-warning { background: var(--nx-am-d) !important; color: var(--nx-am) !important; }
.badge.bg-danger { background: var(--nx-rd-d) !important; color: var(--nx-rd) !important; }
.badge.bg-info { background: var(--nx-vi-d) !important; color: var(--nx-vi) !important; }

/* ── Forms ────────────────────────────────────────────────────────────── */
.form-control, .form-select, input[type="text"], input[type="email"], input[type="password"], textarea, select {
  background: var(--nx-s2) !important;
  border: 1px solid var(--nx-b2) !important;
  border-radius: var(--nx-radius-sm) !important;
  padding: 7px 10px !important;
  font-size: 11px !important;
  color: var(--nx-t1) !important;
  outline: none !important;
}
.form-control:focus, .form-select:focus, input:focus, textarea:focus {
  border-color: var(--nx-cy) !important;
  box-shadow: none !important;
}
.form-control::placeholder, input::placeholder, textarea::placeholder {
  color: var(--nx-t3) !important;
}

.form-label {
  font-size: 10px !important;
  font-weight: 600 !important;
  color: var(--nx-t3) !important;
  text-transform: uppercase !important;
  letter-spacing: 0.07em !important;
  font-family: var(--nx-font-mono) !important;
  margin-bottom: 4px !important;
}

/* ── Alerts ───────────────────────────────────────────────────────────── */
.apex-alert, .alert {
  border-radius: var(--nx-radius-sm) !important;
  font-size: 11px !important;
  padding: 9px 12px !important;
}

/* ── Verified Banner ──────────────────────────────────────────────────── */
.verified-banner {
  background: var(--nx-gr-d) !important;
  border: 1px solid rgba(52,211,153,0.15) !important;
  border-radius: var(--nx-radius-sm) !important;
  color: var(--nx-gr) !important;
  padding: 8px 12px !important;
}

/* ── Insight Cards ────────────────────────────────────────────────────── */
.apex-insight-grid {
  display: grid !important;
  gap: 10px !important;
}

.insight-card {
  padding: 13px !important;
}

/* ── Dropdowns ────────────────────────────────────────────────────────── */
.dropdown-menu {
  background: var(--nx-s2) !important;
  border: 1px solid var(--nx-b2) !important;
  border-radius: var(--nx-radius-sm) !important;
  box-shadow: 0 8px 24px rgba(0,0,0,0.4) !important;
}

.dropdown-item {
  color: var(--nx-t2) !important;
  font-size: 11px !important;
  padding: 6px 12px !important;
}

.dropdown-item:hover {
  background: var(--nx-s3) !important;
  color: var(--nx-t1) !important;
}

.dropdown-header {
  color: var(--nx-t3) !important;
  font-size: 10px !important;
  font-family: var(--nx-font-mono) !important;
}

/* ── Modals ───────────────────────────────────────────────────────────── */
.modal-content {
  background: var(--nx-s1) !important;
  border: 1px solid var(--nx-b) !important;
  border-radius: var(--nx-radius) !important;
}

/* ── Footer ───────────────────────────────────────────────────────────── */
.apex-footer {
  border-top: 1px solid var(--nx-b) !important;
  background: var(--nx-s1) !important;
  font-size: 9px !important;
  color: var(--nx-t3) !important;
  font-family: var(--nx-font-mono) !important;
}

/* ── Search ───────────────────────────────────────────────────────────── */
.search-container input, .global-search-input, .apex-search input {
  background: var(--nx-s2) !important;
  border: 1px solid var(--nx-b) !important;
  color: var(--nx-t1) !important;
  border-radius: var(--nx-radius-sm) !important;
  font-size: 11px !important;
}

/* ── Scrollbar ────────────────────────────────────────────────────────── */
::-webkit-scrollbar { width: 5px; height: 5px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: var(--nx-s4); border-radius: 3px; }

/* ── Numeric Precision ────────────────────────────────────────────────── */
.stat-value, .stat-card-value, .metric-value, [data-numeric],
.mono, .font-mono {
  font-feature-settings: "tnum" !important;
  font-variant-numeric: tabular-nums !important;
}

/* ── Animations ───────────────────────────────────────────────────────── */
@keyframes nx-fadein {
  from { opacity: 0; transform: translateY(4px); }
  to { opacity: 1; transform: translateY(0); }
}

@keyframes nx-pulse {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.45; }
}

.stat-card, .insight-card {
  animation: nx-fadein 0.3s ease both;
}

.row.g-3 .col-sm-6:nth-child(1) .stat-card,
.row.g-3 .col-xl-3:nth-child(1) .stat-card { animation-delay: 0ms; }
.row.g-3 .col-sm-6:nth-child(2) .stat-card,
.row.g-3 .col-xl-3:nth-child(2) .stat-card { animation-delay: 75ms; }
.row.g-3 .col-sm-6:nth-child(3) .stat-card,
.row.g-3 .col-xl-3:nth-child(3) .stat-card { animation-delay: 150ms; }
.row.g-3 .col-sm-6:nth-child(4) .stat-card,
.row.g-3 .col-xl-3:nth-child(4) .stat-card { animation-delay: 225ms; }

/* ── Responsive ───────────────────────────────────────────────────────── */
@media (max-width: 1280px) {
  .apex-sidebar, .apex-sidebar-modern {
    width: 52px !important;
    min-width: 52px !important;
  }
  .apex-sidebar .nav-text-modern,
  .apex-sidebar .sidebar-brand-text,
  .apex-sidebar .footer-user-info,
  .apex-sidebar .footer-user-name,
  .apex-sidebar .footer-user-role,
  .apex-sidebar .hipaa-badge,
  .apex-sidebar .footer-user-chevron,
  .apex-sidebar .sidebar-brand-sub {
    display: none !important;
  }
  .nav-link-modern { justify-content: center !important; padding: 8px !important; }
  .nav-icon-modern { margin: 0 !important; }
  .sidebar-modern-header { padding: 10px !important; justify-content: center !important; }
  .sidebar-brand-modern { justify-content: center !important; }
  .footer-user-card { justify-content: center !important; padding: 6px !important; }
  .sidebar-footer-modern > div:not(.footer-user-card):first-of-type { display: none !important; }
}
