/**
 * IT ME Admin — Dark Theme 2026
 * Layered surfaces, semantic tokens, WCAG-friendly contrast
 */

.dark {
  color-scheme: dark;

  /* Metronic / Tailwind semantic tokens */
  --background: oklch(15.5% 0.012 260);
  --foreground: oklch(94% 0.008 260);
  --card: oklch(18.5% 0.014 260);
  --card-foreground: oklch(94% 0.008 260);
  --popover: oklch(21% 0.015 260);
  --popover-foreground: oklch(94% 0.008 260);
  --primary: #5b9cf6;
  --primary-foreground: oklch(98% 0 0);
  --secondary: oklch(22% 0.014 260);
  --secondary-foreground: oklch(72% 0.015 260);
  --muted: oklch(22% 0.014 260);
  --muted-foreground: oklch(68% 0.018 260);
  --accent: oklch(24% 0.018 260);
  --accent-foreground: oklch(94% 0.008 260);
  --border: oklch(28% 0.016 260);
  --input: oklch(24% 0.014 260);
  --ring: #5b9cf6;
  --mono: oklch(92% 0.008 260);

  /* Admin design tokens */
  --admin-bg-base: #0f1117;
  --admin-bg-sidebar: #13161f;
  --admin-bg-surface: #1a1e28;
  --admin-bg-elevated: #222733;
  --admin-bg-input: #282e3c;
  --admin-bg-hover: #2d3444;
  --admin-border: #2e3648;
  --admin-border-strong: #3d4659;
  --admin-text: #e8eaed;
  --admin-text-secondary: #9aa3b5;
  --admin-text-muted: #6b7589;
  --admin-accent: #5b9cf6;
  --admin-accent-hover: #7ab0f8;
  --admin-accent-soft: rgba(91, 156, 246, 0.12);
  --admin-success: #34d399;
  --admin-warning: #fbbf24;
  --admin-danger: #f87171;
  --admin-radius: 10px;
  --admin-radius-sm: 6px;
}

/* ── Base typography ── */
.dark body,
body.dark {
  background-color: var(--admin-bg-base) !important;
  color: var(--admin-text) !important;
  letter-spacing: 0.01em;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
}

.dark h1,
.dark h2,
.dark h3,
.dark .kt-card-title {
  color: var(--admin-text);
  letter-spacing: -0.01em;
}

.dark .text-mono {
  color: var(--admin-text) !important;
}

.dark .text-secondary-foreground {
  color: var(--admin-text-secondary) !important;
}

/* ── Shell: sidebar & header ── */
.dark .kt-sidebar,
.demo1.dark .kt-sidebar {
  background-color: var(--admin-bg-sidebar) !important;
  border-color: var(--admin-border) !important;
  border-right: 1px solid var(--admin-border) !important;
}

.dark .kt-header {
  background-color: var(--admin-bg-sidebar) !important;
  border-bottom: 1px solid var(--admin-border) !important;
  backdrop-filter: blur(8px);
}

.dark .kt-menu-heading {
  color: var(--admin-text-muted) !important;
  letter-spacing: 0.06em;
}

.dark .kt-menu-link {
  color: var(--admin-text-secondary) !important;
  border-radius: var(--admin-radius-sm);
  transition: background-color 0.15s ease, color 0.15s ease;
}

.dark .kt-menu-link:hover {
  background-color: var(--admin-bg-hover) !important;
  color: var(--admin-text) !important;
}

.dark .kt-menu-item-active > .kt-menu-link,
.dark .kt-menu-item-active .kt-menu-link {
  background-color: var(--admin-accent-soft) !important;
  color: var(--admin-accent) !important;
  border-color: transparent !important;
}

.dark .kt-menu-item-active .kt-menu-icon,
.dark .kt-menu-item-active .kt-menu-title {
  color: var(--admin-accent) !important;
}

.dark .brand-logo-wrap {
  background: var(--admin-bg-surface) !important;
}

/* ── Cards (bento-style) ── */
.dark .kt-card {
  background-color: var(--admin-bg-surface) !important;
  border: 1px solid var(--admin-border) !important;
  border-radius: var(--admin-radius) !important;
  box-shadow: none !important;
}

.dark .kt-card-header {
  border-bottom: 1px solid var(--admin-border);
}

.dark .kt-card-title {
  font-weight: 600;
  font-size: 0.9375rem;
}

/* ── Bento stat cards ── */
.admin-stat-card {
  display: flex;
  align-items: center;
  gap: 0.875rem;
  padding: 1rem 1.125rem;
  background: var(--admin-bg-surface);
  border: 1px solid var(--admin-border);
  border-radius: var(--admin-radius);
  position: relative;
  overflow: hidden;
  transition: border-color 0.2s ease, transform 0.15s ease;
}

.admin-stat-card::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: var(--stat-accent, var(--admin-accent));
}

.admin-stat-card:hover {
  border-color: var(--admin-border-strong);
}

.admin-stat-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2.5rem;
  height: 2.5rem;
  border-radius: var(--admin-radius-sm);
  background: var(--stat-icon-bg, var(--admin-accent-soft));
  color: var(--stat-accent, var(--admin-accent));
  flex-shrink: 0;
}

.admin-stat-icon i {
  font-size: 1.125rem;
}

.admin-stat-body {
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.admin-stat-value {
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 1.2;
  color: var(--admin-text);
  letter-spacing: -0.02em;
}

.admin-stat-label {
  font-size: 0.6875rem;
  font-weight: 500;
  color: var(--admin-text-secondary);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  margin-top: 0.125rem;
}

.admin-stat-card--blue  { --stat-accent: #5b9cf6; --stat-icon-bg: rgba(91, 156, 246, 0.15); }
.admin-stat-card--green { --stat-accent: #34d399; --stat-icon-bg: rgba(52, 211, 153, 0.15); }
.admin-stat-card--amber { --stat-accent: #fbbf24; --stat-icon-bg: rgba(251, 191, 36, 0.15); }
.admin-stat-card--purple { --stat-accent: #a78bfa; --stat-icon-bg: rgba(167, 139, 250, 0.15); }

/* ── Forms ── */
.dark .kt-input,
.dark .kt-select,
.dark select,
.dark textarea {
  background-color: var(--admin-bg-input) !important;
  border-color: var(--admin-border) !important;
  color: var(--admin-text) !important;
  border-radius: var(--admin-radius-sm) !important;
}

.dark .kt-input::placeholder,
.dark textarea::placeholder {
  color: var(--admin-text-muted) !important;
}

.dark .kt-input:focus,
.dark select:focus,
.dark textarea:focus {
  border-color: var(--admin-accent) !important;
  box-shadow: 0 0 0 2px rgba(91, 156, 246, 0.2) !important;
}

.dark .kt-form-label,
.dark .kt-label,
.dark label {
  color: var(--admin-text-secondary) !important;
}

.dark .kt-select-wrapper,
.dark .kt-select.invoice-form-input,
.dark .kt-select-search,
.dark .kt-select-dropdown {
  background-color: var(--admin-bg-input) !important;
  border-color: var(--admin-border) !important;
}

.dark .kt-select-option:hover {
  background-color: var(--admin-bg-hover) !important;
}

/* ── Buttons ── */
.dark .kt-btn {
  color: var(--admin-text) !important;
  border-radius: var(--admin-radius-sm);
}

.dark .kt-btn-primary {
  background-color: var(--admin-accent) !important;
  border-color: var(--admin-accent) !important;
  color: #fff !important;
}

.dark .kt-btn-primary:hover {
  background-color: var(--admin-accent-hover) !important;
  border-color: var(--admin-accent-hover) !important;
}

.dark .kt-btn-outline {
  border-color: var(--admin-border-strong) !important;
  color: var(--admin-text) !important;
  background: transparent !important;
}

.dark .kt-btn-outline:hover {
  background-color: var(--admin-bg-hover) !important;
}

.dark .kt-btn-ghost:hover {
  background-color: var(--admin-bg-hover) !important;
}

.dark .kt-link {
  color: var(--admin-accent) !important;
}

/* ── Tables ── */
.dark .kt-table {
  background-color: var(--admin-bg-surface) !important;
  color: var(--admin-text) !important;
}

.dark .kt-table th {
  background-color: var(--admin-bg-elevated) !important;
  color: var(--admin-text-secondary) !important;
  border-color: var(--admin-border) !important;
  font-size: 0.6875rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  font-weight: 600;
}

.dark .kt-table td {
  border-color: var(--admin-border) !important;
  color: var(--admin-text) !important;
}

.dark .kt-table tbody tr {
  background-color: var(--admin-bg-surface) !important;
  border-bottom: 1px solid var(--admin-border) !important;
}

.dark .kt-table tbody tr:hover,
.dark .kt-table tbody tr:hover td {
  background-color: var(--admin-bg-hover) !important;
}

.dark .kt-table .text-muted,
.dark .kt-table .text-secondary-foreground {
  color: var(--admin-text-muted) !important;
}

.dark .kt-table .text-dark,
.dark .kt-table .fw-bold {
  color: var(--admin-text) !important;
}

.dark .kt-table .fw-semibold {
  color: var(--admin-text-secondary) !important;
}

.dark #invoicesTable th {
  background-color: var(--admin-bg-elevated) !important;
  color: var(--admin-text-secondary) !important;
  border-bottom-color: var(--admin-border) !important;
}

.dark #invoicesTable td {
  border-bottom-color: var(--admin-border) !important;
  color: var(--admin-text) !important;
}

.dark #invoicesTable tbody tr:hover {
  background-color: var(--admin-bg-hover) !important;
}

/* ── Modals ── */
.dark .kt-modal {
  background-color: rgba(0, 0, 0, 0.65) !important;
}

.dark .kt-modal-content,
.dark .kt-modal-header,
.dark .kt-modal-body,
.dark .kt-modal-footer,
.dark #customerModal > div,
.dark #invoiceModal > div,
.dark #userModal > div {
  background-color: var(--admin-bg-elevated) !important;
  border-color: var(--admin-border) !important;
  color: var(--admin-text) !important;
}

.dark #customerModal input,
.dark #customerModal textarea,
.dark #customerModal select,
.dark #invoiceModal input,
.dark #invoiceModal textarea,
.dark #invoiceModal select,
.dark #userModal input,
.dark #userModal textarea,
.dark #userModal select {
  background-color: var(--admin-bg-input) !important;
  border-color: var(--admin-border) !important;
  color: var(--admin-text) !important;
}

.dark #customerModal label,
.dark #invoiceModal label,
.dark #userModal label {
  color: var(--admin-text-secondary) !important;
}

/* ── Dropdowns ── */
.dark .kt-dropdown-menu,
.dark .kt-menu-dropdown {
  background-color: var(--admin-bg-elevated) !important;
  border: 1px solid var(--admin-border) !important;
  border-radius: var(--admin-radius-sm) !important;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.4) !important;
}

.dark .kt-dropdown-menu-link,
.dark .kt-menu-dropdown .kt-menu-link {
  color: var(--admin-text) !important;
}

.dark .kt-dropdown-menu-link:hover,
.dark .kt-menu-dropdown .kt-menu-link:hover {
  background-color: var(--admin-bg-hover) !important;
}

/* ── Badges ── */
.dark .kt-badge-success {
  background-color: rgba(52, 211, 153, 0.15) !important;
  color: #6ee7b7 !important;
  border: 1px solid rgba(52, 211, 153, 0.3) !important;
}

.dark .kt-badge-info {
  background-color: rgba(91, 156, 246, 0.15) !important;
  color: #93c5fd !important;
  border: 1px solid rgba(91, 156, 246, 0.3) !important;
}

.dark .kt-badge-danger {
  background-color: rgba(248, 113, 113, 0.15) !important;
  color: #fca5a5 !important;
  border: 1px solid rgba(248, 113, 113, 0.3) !important;
}

.dark .kt-badge-warning {
  background-color: rgba(251, 191, 36, 0.15) !important;
  color: #fcd34d !important;
  border: 1px solid rgba(251, 191, 36, 0.3) !important;
}

.dark .kt-badge-primary {
  background-color: rgba(167, 139, 250, 0.15) !important;
  color: #c4b5fd !important;
  border: 1px solid rgba(167, 139, 250, 0.3) !important;
}

.dark .kt-badge-secondary {
  background-color: rgba(107, 117, 137, 0.2) !important;
  color: #9aa3b5 !important;
  border: 1px solid var(--admin-border) !important;
}

/* ── Flash / alert messages ── */
.admin-alert {
  padding: 0.625rem 1rem;
  border-radius: var(--admin-radius-sm);
  font-size: 0.875rem;
  margin-bottom: 1rem;
  border: 1px solid;
}

.admin-alert-success {
  background: rgba(52, 211, 153, 0.1);
  border-color: rgba(52, 211, 153, 0.3);
  color: #6ee7b7;
}

.admin-alert-error {
  background: rgba(248, 113, 113, 0.1);
  border-color: rgba(248, 113, 113, 0.3);
  color: #fca5a5;
}

/* ── Scrollbars ── */
.dark .kt-scrollable-x-auto {
  scrollbar-color: var(--admin-border-strong) transparent;
}

.dark .kt-scrollable-x-auto::-webkit-scrollbar-thumb {
  background-color: var(--admin-border-strong);
  border-radius: 4px;
}

/* ── Page header ── */
.dark .flex.flex-wrap.items-center.lg\:items-end.justify-between.gap-5.pb-7\.5 {
  border-bottom: 1px solid var(--admin-border);
}

/* ── Activity timeline ── */
.dark .border-s-input {
  border-color: var(--admin-border) !important;
}

.dark .bg-accent\/60 {
  background-color: var(--admin-bg-elevated) !important;
}

/* ── Auth pages ── */
.dark .login-form-container.kt-card {
  background-color: var(--admin-bg-surface) !important;
  border: 1px solid var(--admin-border) !important;
  backdrop-filter: blur(12px);
}
