:root {
  --rm-page: #eef3f0;
  --rm-sidebar: #f8fbf9;
  --rm-surface: #ffffff;
  --rm-surface-2: #f7faf8;
  --rm-input: #eff5f1;
  --rm-accent: #228b22;
  --rm-accent-rgb: 34, 139, 34;
  --rm-accent-strong: #176b1b;
  --rm-accent-soft: rgba(34, 139, 34, .1);
  --rm-mint: #16835b;
  --rm-mint-soft: rgba(22, 131, 91, .1);
  --rm-coral: #d45f45;
  --rm-coral-soft: rgba(212, 95, 69, .09);
  --rm-amber: #b78320;
  --rm-amber-soft: rgba(183, 131, 32, .1);
  --rm-blue: #3576cb;
  --rm-blue-soft: rgba(53, 118, 203, .09);
  --rm-text-1: #172033;
  --rm-text-2: #526078;
  --rm-text-3: #728096;
  --rm-text-faint: #8793a6;
  --rm-divider: rgba(51, 65, 85, .12);
  --rm-divider-soft: rgba(51, 65, 85, .07);
}

[data-bs-theme="dark"] {
  --rm-page: #0b101a;
  --rm-sidebar: #080c14;
  --rm-surface: #131a27;
  --rm-surface-2: #0e1420;
  --rm-input: #151d2b;
  --rm-accent: #47c96b;
  --rm-accent-rgb: 71, 201, 107;
  --rm-accent-strong: #6bdd8a;
  --rm-accent-soft: rgba(71, 201, 107, .13);
  --rm-mint: #6fe3b0;
  --rm-mint-soft: rgba(111, 227, 176, .12);
  --rm-coral: #f0876b;
  --rm-coral-soft: rgba(240, 135, 107, .1);
  --rm-amber: #e7b65a;
  --rm-amber-soft: rgba(231, 182, 90, .12);
  --rm-blue: #7da8f0;
  --rm-blue-soft: rgba(125, 168, 240, .1);
  --rm-text-1: #eef2f8;
  --rm-text-2: #98a4b7;
  --rm-text-3: #6b7688;
  --rm-text-faint: #5f6b80;
  --rm-divider: rgba(148, 163, 184, .13);
  --rm-divider-soft: rgba(148, 163, 184, .07);
  --bs-body-bg: var(--rm-page);
  --bs-body-color: var(--rm-text-1);
  --bs-card-bg: var(--rm-surface);
  --bs-border-color: var(--rm-divider);
  --bs-secondary-color: var(--rm-text-2);
}

:root,
[data-color-theme="Blue_Theme"]:root,
[data-bs-theme="light"][data-color-theme="Blue_Theme"]:root,
[data-bs-theme="dark"][data-color-theme="Blue_Theme"]:root {
  --bs-primary: var(--rm-accent);
  --bs-primary-rgb: var(--rm-accent-rgb);
  --bs-light-primary: var(--rm-accent-soft);
  --bs-primary-bg-subtle: var(--rm-accent-soft);
  --bs-link-color: var(--rm-accent);
  --bs-link-hover-color: var(--rm-accent-strong);
}

body {
  background: var(--rm-page);
  color: var(--rm-text-1);
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
}

code, .font-monospace { font-family: "SFMono-Regular", Consolas, "Liberation Mono", monospace !important; }
a { transition: color .2s ease; }
.text-muted { color: var(--rm-text-3) !important; }
.text-primary { color: var(--rm-accent) !important; }
.bg-primary { background-color: var(--rm-accent) !important; }
.bg-primary-subtle { background-color: var(--rm-accent-soft) !important; }
.border-primary { border-color: var(--rm-accent) !important; }

[data-color-theme="Blue_Theme"]:root .btn-primary,
[data-bs-theme="light"][data-color-theme="Blue_Theme"]:root .btn-primary,
[data-bs-theme="dark"][data-color-theme="Blue_Theme"]:root .btn-primary,
.btn-primary {
  --bs-btn-bg: var(--rm-accent);
  --bs-btn-border-color: var(--rm-accent);
  --bs-btn-hover-bg: var(--rm-accent-strong);
  --bs-btn-hover-border-color: var(--rm-accent-strong);
  --bs-btn-color: #07110a;
  --bs-btn-hover-color: #07110a;
  --bs-btn-active-color: #07110a;
  color: #07110a !important;
}

.btn { border-radius: 8px; font-size: 12px; font-weight: 700; }
.btn-outline-primary {
  --bs-btn-color: var(--rm-accent);
  --bs-btn-border-color: rgba(var(--rm-accent-rgb), .55);
  --bs-btn-hover-bg: var(--rm-accent);
  --bs-btn-hover-border-color: var(--rm-accent);
  --bs-btn-hover-color: #07110a;
}
.btn-secondary, .btn-outline-secondary, .btn-light {
  --bs-btn-bg: var(--rm-input);
  --bs-btn-color: var(--rm-text-2);
  --bs-btn-border-color: var(--rm-divider);
  --bs-btn-hover-bg: var(--rm-surface);
  --bs-btn-hover-color: var(--rm-text-1);
  --bs-btn-hover-border-color: rgba(var(--rm-accent-rgb), .35);
}

/* Shared shell */
.left-sidebar { background: var(--rm-sidebar) !important; border-right: 1px solid var(--rm-divider-soft); }
.brand-logo { height: 72px; padding: 0 21px !important; }
.brand-logo .logo-img img { width: 145px; }
.sidebar-nav { padding: 8px 14px 24px !important; }
.sidebar-nav .nav-small-cap { color: var(--rm-text-faint) !important; font-size: 10px !important; font-weight: 700; letter-spacing: .12em; padding: 22px 11px 8px !important; }
.sidebar-nav .nav-small-cap-icon { display: none; }
.sidebar-nav ul .sidebar-item .sidebar-link { border-radius: 8px; color: var(--rm-text-2); font-size: 13px; font-weight: 600; gap: 12px; margin: 2px 0; padding: 10px 11px; transition: color .2s ease, background .2s ease; }
.sidebar-nav ul .sidebar-item .sidebar-link:hover { background: rgba(var(--rm-accent-rgb), .06); color: var(--rm-text-1); }
.sidebar-nav ul .sidebar-item .sidebar-link.active { background: var(--rm-accent-soft) !important; color: var(--rm-accent) !important; }
.sidebar-nav .sidebar-link.bg-transparent:hover { background: var(--rm-coral-soft) !important; color: var(--rm-coral); }
.topbar { background: var(--rm-page) !important; border-bottom: 1px solid var(--rm-divider-soft); height: 57px; }
.topbar .navbar { min-height: 56px; }
.topbar .nav-link { color: var(--rm-text-2); }
.topbar .user-profile-img > div, .profile-dropdown .bg-primary { background: var(--rm-accent) !important; color: #07110a !important; }
.body-wrapper > .container-fluid { max-width: 1480px; padding: 28px 28px 56px; }

@media (min-width: 1200px) {
  .left-sidebar { left: 0 !important; width: 232px !important; }
  [data-layout=vertical] .page-wrapper { margin-left: 232px !important; }
}

/* Common surfaces */
.card, .modal-content, .dropdown-menu { background: var(--rm-surface); border: 1px solid var(--rm-divider); color: var(--rm-text-1); }
.card { border-radius: 14px; box-shadow: none !important; }
.card-header { background: transparent; border-color: var(--rm-divider-soft); }
.modal-content { border-radius: 13px; }
.modal-header, .modal-footer { border-color: var(--rm-divider); }
.dropdown-menu { border-radius: 10px; }
.alert { border: 1px solid var(--rm-divider); border-radius: 9px; }
.radial-gradient { background: var(--rm-page) !important; }
.auth-card .card { box-shadow: 0 24px 60px -24px rgba(0, 0, 0, .55); }
.auth-card .card-body { padding: 34px; }
.auth-card .text-dark { color: var(--rm-text-2) !important; }
.auth-card .bg-body { background: var(--rm-surface) !important; color: var(--rm-text-2) !important; }

/* Existing breadcrumb banners become clean page headers */
.body-wrapper > .container-fluid > .card.bg-info-subtle,
.body-wrapper > .container-fluid > .card.bg-primary-subtle {
  background: transparent !important;
  border: 0;
  border-radius: 0;
  margin-bottom: 24px !important;
}
.body-wrapper > .container-fluid > .card.bg-info-subtle > .card-body,
.body-wrapper > .container-fluid > .card.bg-primary-subtle > .card-body { padding: 0 !important; }
.body-wrapper > .container-fluid > .card.bg-info-subtle h4,
.body-wrapper > .container-fluid > .card.bg-primary-subtle h4 { color: var(--rm-text-1); font-size: 24px; font-weight: 800 !important; letter-spacing: -.3px; margin-bottom: 5px !important; }
.breadcrumb { font-size: 11px; margin: 0; }
.breadcrumb-item, .breadcrumb-item.active { color: var(--rm-text-3); }
.breadcrumb-item a { color: var(--rm-text-3) !important; }
.breadcrumb-item a:hover { color: var(--rm-accent) !important; }

/* Forms */
.form-control, .form-select, .input-group-text {
  background-color: var(--rm-input);
  border-color: var(--rm-divider);
  color: var(--rm-text-1);
  border-radius: 8px;
}
.form-control:focus, .form-select:focus {
  background-color: var(--rm-input);
  border-color: var(--rm-accent);
  box-shadow: 0 0 0 .2rem rgba(var(--rm-accent-rgb), .14);
  color: var(--rm-text-1);
}
.form-control::placeholder { color: var(--rm-text-faint); }
.form-label { color: var(--rm-text-2); font-size: 11px; font-weight: 700; }
.form-text { color: var(--rm-text-3); }
.form-check-input { background-color: var(--rm-input); border-color: var(--rm-divider); }
.form-check-input:checked { background-color: var(--rm-accent); border-color: var(--rm-accent); }

/* Tables and DataTables */
.card:has(.table-responsive) { background: var(--rm-surface); border-color: var(--rm-divider); overflow: hidden; }
.card:has(.table-responsive) > .card-body { padding: 20px; }
.card:has(.table-responsive) .card-title { color: var(--rm-text-1); font-size: 16px; font-weight: 800 !important; letter-spacing: -.15px; }
.table-responsive {
  background: var(--rm-surface-2);
  border: 1px solid var(--rm-divider);
  border-radius: 12px;
  overflow-x: auto;
  overflow-y: hidden;
}
.table {
  --bs-table-bg: var(--rm-surface-2);
  --bs-table-color: var(--rm-text-2);
  --bs-table-border-color: var(--rm-divider-soft);
  margin-bottom: 0;
}
.table > thead { background: color-mix(in srgb, var(--rm-page) 82%, var(--rm-surface)); }
.table > thead th {
  background: transparent;
  border-bottom: 1px solid var(--rm-divider);
  color: var(--rm-text-faint);
  font-size: 10.5px;
  font-weight: 800;
  letter-spacing: .075em;
  padding: 14px 16px;
  text-transform: uppercase;
  white-space: nowrap;
}
.table > tbody td {
  background: transparent;
  border-color: var(--rm-divider-soft);
  color: var(--rm-text-2);
  font-size: 13px;
  line-height: 1.45;
  min-height: 58px;
  padding: 15px 16px;
  vertical-align: middle;
}
.table > tbody tr:last-child td { border-bottom: 0; }
.table > tbody td:first-child { color: var(--rm-text-1); font-weight: 650; }
.table-hover > tbody > tr:hover > * { --bs-table-accent-bg: color-mix(in srgb, var(--rm-accent-soft) 42%, var(--rm-surface-2)); color: var(--rm-text-1); }
.table code { color: var(--rm-text-1); font-size: 12px; }
.badge { border-radius: 6px; font-size: 10.5px; font-weight: 700; padding: 5px 9px; }
.table .btn-sm {
  align-items: center;
  border-radius: 7px;
  display: inline-flex;
  height: 31px;
  justify-content: center;
  min-width: 31px;
  padding: 5px 8px;
}
.table .btn-primary { background: var(--rm-accent-soft) !important; border-color: rgba(var(--rm-accent-rgb), .25) !important; color: var(--rm-accent) !important; }
.table .btn-primary:hover { background: var(--rm-accent) !important; color: #07110a !important; }
.table .btn-secondary { background: var(--rm-input) !important; border-color: var(--rm-divider) !important; color: var(--rm-text-2) !important; }
.table .btn-danger { background: var(--rm-coral-soft) !important; border-color: color-mix(in srgb, var(--rm-coral) 25%, transparent) !important; color: var(--rm-coral) !important; }
.bg-success-subtle { background: var(--rm-mint-soft) !important; }
.text-success { color: var(--rm-mint) !important; }
.bg-warning-subtle { background: var(--rm-amber-soft) !important; }
.text-warning { color: var(--rm-amber) !important; }
.bg-danger-subtle { background: var(--rm-coral-soft) !important; }
.text-danger { color: var(--rm-coral) !important; }
.bg-info-subtle { background: var(--rm-blue-soft) !important; }
.text-info { color: var(--rm-blue) !important; }
.dataTables_wrapper {
  background: var(--rm-surface-2);
  border: 1px solid var(--rm-divider);
  border-radius: 12px;
  overflow: hidden;
  padding: 14px 14px 0;
}
.table-responsive > .dataTables_wrapper { border: 0; border-radius: 0; }
.dataTables_wrapper .dataTables_length,
.dataTables_wrapper .dataTables_filter,
.dataTables_wrapper .dataTables_info,
.dataTables_wrapper .dataTables_paginate { color: var(--rm-text-3) !important; font-size: 11.5px; padding-bottom: 12px; }
.dataTables_wrapper .dataTables_filter input,
.dataTables_wrapper .dataTables_length select { background: var(--rm-input) !important; border: 1px solid var(--rm-divider) !important; border-radius: 8px; color: var(--rm-text-1) !important; min-height: 34px; }
.dataTables_wrapper table.dataTable { border-collapse: collapse !important; margin-top: 12px !important; }
.page-link { background: var(--rm-input); border-color: var(--rm-divider); border-radius: 6px !important; color: var(--rm-text-2); margin: 0 2px; }
.active > .page-link, .page-link.active { background: var(--rm-accent); border-color: var(--rm-accent); color: #07110a; }

/* Dashboard */
.rm-page-header { align-items: flex-end; display: flex; gap: 20px; justify-content: space-between; margin-bottom: 22px; }
.rm-eyebrow { color: var(--rm-accent); font-size: 10px; font-weight: 800; letter-spacing: .12em; margin: 0 0 7px; text-transform: uppercase; }
.rm-page-header h1 { color: var(--rm-text-1); font-size: 24px; font-weight: 800; letter-spacing: -.3px; margin: 0 0 5px; }
.rm-page-header > div > p:last-child { color: var(--rm-text-3); font-size: 12px; margin: 0; }
.rm-period { align-items: center; background: var(--rm-accent-soft); border: 1px solid rgba(var(--rm-accent-rgb), .25); border-radius: 7px; color: var(--rm-accent); display: inline-flex; font-size: 11px; font-weight: 700; gap: 6px; padding: 7px 11px; }
.rm-stat-grid { display: grid; gap: 14px; grid-template-columns: repeat(4, minmax(0, 1fr)); margin-bottom: 18px; }
.rm-stat-card { align-items: center; background: var(--rm-surface); border: 1px solid var(--rm-divider); border-radius: 12px; display: flex; gap: 13px; min-height: 104px; padding: 17px; }
.rm-stat-icon { align-items: center; background: var(--rm-accent-soft); border-radius: 9px; color: var(--rm-accent); display: flex; flex: 0 0 42px; font-size: 20px; height: 42px; justify-content: center; }
.rm-stat-card:nth-child(2) .rm-stat-icon { background: var(--rm-mint-soft); color: var(--rm-mint); }
.rm-stat-card:nth-child(3) .rm-stat-icon { background: var(--rm-blue-soft); color: var(--rm-blue); }
.rm-stat-card:nth-child(4) .rm-stat-icon { background: var(--rm-amber-soft); color: var(--rm-amber); }
.rm-stat-card strong { color: var(--rm-text-1); display: block; font-size: 19px; font-weight: 800; line-height: 1.2; }
.rm-stat-card span { color: var(--rm-text-3); font-size: 10.5px; }
.rm-action-panel { background: var(--rm-surface-2); border: 1px solid var(--rm-divider); border-radius: 12px; padding: 18px; }
.rm-action-panel header { margin-bottom: 14px; }
.rm-action-panel h2 { font-size: 15px; font-weight: 800; margin: 0 0 3px; }
.rm-action-panel header p { color: var(--rm-text-3); font-size: 10.5px; margin: 0; }
.rm-action-grid { display: grid; gap: 10px; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.rm-action { align-items: center; background: var(--rm-input); border: 1px solid var(--rm-divider); border-radius: 9px; color: var(--rm-text-2); display: flex; font-size: 11.5px; font-weight: 700; gap: 9px; min-height: 48px; padding: 11px 13px; text-decoration: none; transition: color .2s ease, border-color .2s ease, background .2s ease; }
.rm-action iconify-icon { color: var(--rm-accent); font-size: 18px; }
.rm-action:hover { background: var(--rm-accent-soft); border-color: rgba(var(--rm-accent-rgb), .35); color: var(--rm-accent); }

@media (max-width: 1199px) {
  .rm-stat-grid, .rm-action-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 767px) {
  .body-wrapper > .container-fluid { padding: 20px 16px 40px; }
  .rm-page-header { align-items: flex-start; flex-direction: column; }
  .rm-stat-grid, .rm-action-grid { grid-template-columns: 1fr; }
  .rm-stat-card { min-height: 88px; }
  .table-responsive { border-radius: 10px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; }
}
