/* ═══════════════════════════════════════════════════════════
   MOZART OS — Premium Monochrome Design System
   Pure black + white opacity palette. NO accent colors.
   Loaded LAST to override all other stylesheets.
   ═══════════════════════════════════════════════════════════ */

:root {
  /* ── Backgrounds ── */
  --bg: #09090b;
  --surface: rgba(255,255,255,0.03);
  --surface-hover: rgba(255,255,255,0.05);
  --surface-active: rgba(255,255,255,0.07);
  --surface-elevated: rgba(255,255,255,0.04);

  /* ── Borders ── */
  --border: rgba(255,255,255,0.06);
  --border-hover: rgba(255,255,255,0.10);
  --border-focus: rgba(255,255,255,0.18);

  /* ── Text ── */
  --text: rgba(255,255,255,0.88);
  --text-secondary: rgba(255,255,255,0.55);
  --text-muted: rgba(255,255,255,0.30);
  --blue: rgba(255,255,255,0.75); /* NOT blue — brighter white for emphasis */

  /* ── Radius ── */
  --radius: 14px;
  --radius-sm: 10px;
  --radius-xs: 6px;
  --radius-pill: 100px;

  /* ── Transitions ── */
  --transition: 0.25s cubic-bezier(.4,0,.2,1);

  /* ── Shadows ── */
  --shadow-sm: 0 1px 3px rgba(0,0,0,0.4);
  --shadow-md: 0 4px 16px rgba(0,0,0,0.5);
  --shadow-lg: 0 8px 32px rgba(0,0,0,0.6);

  /* ── Status (semantic — kept for meaning) ── */
  --mz-success: #22c55e;
  --mz-danger: #ef4444;
  --mz-warning: #f59e0b;
  --mz-info: #38bdf8;

  /* ── Legacy aliases (for views that still use --mz-*) ── */
  --mz-bg-body: var(--bg);
  --mz-bg-card: var(--surface);
  --mz-bg-elevated: var(--surface-elevated);
  --mz-bg-sidebar: var(--bg);
  --mz-bg-topbar: var(--bg);
  --mz-bg-input: rgba(255,255,255,0.04);
  --mz-bg-hover: var(--surface-hover);
  --mz-bg-active: var(--surface-active);
  --mz-border: var(--border);
  --mz-border-hover: var(--border-hover);
  --mz-border-focus: var(--border-focus);
  --mz-text: var(--text);
  --mz-text-secondary: var(--text-secondary);
  --mz-text-muted: var(--text-muted);
  --mz-accent: var(--blue);
  --mz-accent-hover: rgba(255,255,255,0.85);
  --mz-accent-subtle: rgba(255,255,255,0.06);
  --mz-radius-sm: var(--radius-sm);
  --mz-radius-md: var(--radius);
  --mz-radius-lg: 16px;
  --mz-transition: var(--transition);
  --mz-shadow-sm: var(--shadow-sm);
  --mz-shadow-md: var(--shadow-md);
  --mz-shadow-lg: var(--shadow-lg);
}


/* ═══════════════════════════════════════
   BASE & TYPOGRAPHY
   ═══════════════════════════════════════ */

html, body,
.page-body, .main-content,
#page-body, .app-wrapper,
.content-wrapper {
  background-color: var(--bg) !important;
  color: var(--text) !important;
}

body {
  font-family: 'Manrope', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif !important;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  letter-spacing: -0.01em;
}

* { font-family: inherit; }

a { color: var(--blue); transition: var(--transition); }
a:hover { color: var(--text); }

h1, h2, h3, h4, h5, h6 {
  color: var(--text) !important;
  font-weight: 600;
  letter-spacing: -0.02em;
}

::selection {
  background: rgba(255,255,255,0.2);
  color: #fff;
}

.text-dark { color: var(--text) !important; }
.text-muted { color: var(--text-muted) !important; }
.text-secondary { color: var(--text-secondary) !important; }
.bg-white { background: var(--surface) !important; }
.bg-light { background: var(--surface) !important; }
.border { border-color: var(--border) !important; }
.b-t, .b-b, .b-l, .b-r { border-color: var(--border) !important; }


/* ═══════════════════════════════════════
   AMBIENT LAYER
   ═══════════════════════════════════════ */

#mz-grain {
  position: fixed;
  inset: 0;
  z-index: 9999;
  pointer-events: none;
  opacity: 0.035;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  background-repeat: repeat;
  background-size: 200px 200px;
}

#mz-ambient {
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  overflow: hidden;
}

#mz-ambient::before {
  content: '';
  position: absolute;
  width: 800px;
  height: 800px;
  top: 18%;
  left: 55%;
  transform: translate(-50%, -50%);
  background: radial-gradient(circle, rgba(255,255,255,0.07) 0%, rgba(120,100,180,0.03) 40%, transparent 70%);
  border-radius: 50%;
}

#mz-ambient::after {
  content: '';
  position: absolute;
  width: 600px;
  height: 600px;
  bottom: -100px;
  right: -50px;
  background: radial-gradient(circle, rgba(140,120,200,0.04) 0%, rgba(255,255,255,0.02) 40%, transparent 70%);
  border-radius: 50%;
}


/* ═══════════════════════════════════════
   NAV PILL (floating topbar replacement)
   ═══════════════════════════════════════ */

.mz-nav-pill {
  position: fixed !important;
  top: 14px !important;
  left: 50% !important;
  transform: translateX(-50%) !important;
  z-index: 1040 !important;
  background: rgba(255,255,255,0.04) !important;
  border: 1px solid var(--border) !important;
  border-radius: var(--radius-pill) !important;
  backdrop-filter: blur(24px) !important;
  -webkit-backdrop-filter: blur(24px) !important;
  padding: 5px 8px !important;
  box-shadow: 0 4px 30px rgba(0,0,0,0.3) !important;
  width: auto !important;
  max-width: calc(100vw - 280px) !important;
  height: auto !important;
  min-height: 0 !important;
}

.mz-pill-inner {
  display: flex;
  align-items: center;
  gap: 4px;
  white-space: nowrap;
}

.mz-pill-brand {
  display: flex;
  align-items: center;
  padding: 4px 10px;
  flex-shrink: 0;
}

.mz-pill-brand img {
  height: 22px;
  width: auto;
  filter: brightness(0) invert(1);
  opacity: 0.9;
}

.mz-pill-center {
  display: flex;
  align-items: center;
  gap: 2px;
  padding: 0 4px;
}

.mz-pill-center .nav-item,
.mz-pill-center > li {
  list-style: none;
}

.mz-pill-center .nav-link,
.mz-pill-center a {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 6px 10px !important;
  border-radius: var(--radius-pill) !important;
  color: var(--text-secondary) !important;
  font-size: 13px;
  font-weight: 500;
  transition: var(--transition);
}

.mz-pill-center .nav-link:hover,
.mz-pill-center a:hover {
  background: rgba(255,255,255,0.06) !important;
  color: var(--text) !important;
}

.mz-pill-center .nav-link.active,
.mz-pill-center a.active {
  background: rgba(255,255,255,0.08) !important;
  color: var(--text) !important;
}

.mz-pill-divider {
  width: 1px;
  height: 20px;
  background: var(--border);
  margin: 0 6px;
  flex-shrink: 0;
}

.mz-pill-right {
  display: flex;
  align-items: center;
  gap: 2px;
  padding-left: 4px;
}

.mz-pill-right .nav-item,
.mz-pill-right > li {
  list-style: none;
}

.mz-pill-right .nav-link,
.mz-pill-right a:not(.dropdown-item) {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  padding: 0 !important;
  border-radius: 50% !important;
  color: var(--text-secondary) !important;
  transition: var(--transition);
}

.mz-pill-right .nav-link:hover,
.mz-pill-right a:not(.dropdown-item):hover {
  background: rgba(255,255,255,0.06) !important;
  color: var(--text) !important;
}

.mz-pill-right .nav-link .icon,
.mz-pill-right .nav-link svg {
  width: 16px !important;
  height: 16px !important;
}

/* User avatar in pill */
.mz-pill-right #user-dropdown {
  display: flex;
  align-items: center;
  width: auto !important;
  padding: 3px 10px 3px 3px !important;
  border-radius: var(--radius-pill) !important;
  gap: 8px;
}

.mz-pill-right #user-dropdown .avatar-xs {
  width: 28px !important;
  height: 28px !important;
}

.mz-pill-right #user-dropdown .avatar-xs img {
  width: 28px !important;
  height: 28px !important;
  border-radius: 50%;
}

.mz-pill-right #user-dropdown .user-name {
  font-size: 13px;
  font-weight: 500;
  color: var(--text-secondary) !important;
  margin: 0 !important;
}

/* Sidebar toggle — floating button outside pill */
.mz-sidebar-toggle {
  position: fixed;
  top: 20px;
  left: 20px;
  z-index: 1041;
  width: 38px;
  height: 38px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--radius-sm);
  background: rgba(255,255,255,0.04);
  border: 1px solid var(--border);
  backdrop-filter: blur(12px);
  color: var(--text-secondary);
  cursor: pointer;
  transition: var(--transition);
}

.mz-sidebar-toggle:hover {
  background: rgba(255,255,255,0.08);
  color: var(--text);
}

/* Notification badges in pill */
.mz-pill-right .notification-badge-container .badge {
  position: absolute;
  top: 2px;
  right: 2px;
  font-size: 9px;
  min-width: 16px;
  height: 16px;
  padding: 0 4px;
  line-height: 16px;
  border-radius: 8px;
  background: var(--mz-danger) !important;
}

/* Page content offset for pill */
.page-container {
  padding-top: 10px !important;
  scrollbar-width: thin;
  scrollbar-color: rgba(255,255,255,0.04) transparent;
}
.page-container::-webkit-scrollbar { width: 3px; }
.page-container::-webkit-scrollbar-thumb { background: rgba(255,255,255,0.04); border-radius: 3px; }
.page-container::-webkit-scrollbar-thumb:hover { background: rgba(255,255,255,0.12); }


/* ═══════════════════════════════════════
   SIDEBAR
   ═══════════════════════════════════════ */

.sidebar,
.sidebar-brand,
.sidebar-scroll,
#sidebar,
.left-sidebar,
nav.sidebar {
  background: var(--bg) !important;
  border-right: 1px solid var(--border) !important;
}

/* Hide sidebar scrollbar — keep scroll functional, clean aesthetic */
.sidebar,
.sidebar *,
.sidebar-scroll,
.sidebar-scroll *,
.sidebar-off,
.sidebar-off * {
  scrollbar-width: none !important;
  -ms-overflow-style: none !important;
}
.sidebar::-webkit-scrollbar,
.sidebar *::-webkit-scrollbar,
.sidebar-scroll::-webkit-scrollbar,
.sidebar-scroll *::-webkit-scrollbar,
.sidebar-off::-webkit-scrollbar,
.sidebar-off *::-webkit-scrollbar {
  width: 0 !important;
  height: 0 !important;
  display: none !important;
}
.sidebar .ps__rail-x, .sidebar .ps__rail-y,
.sidebar-scroll .ps__rail-x, .sidebar-scroll .ps__rail-y,
.sidebar .mCSB_scrollTools, .sidebar-scroll .mCSB_scrollTools {
  display: none !important;
  opacity: 0 !important;
  width: 0 !important;
}
/* Nuke ALL scrollbars from left-menu area */
#left-menu-toggle-mask > .sidebar {
  overflow-y: auto !important;
  overflow-x: hidden !important;
  scrollbar-width: none !important;
}
#left-menu-toggle-mask > .sidebar::-webkit-scrollbar {
  display: none !important;
  width: 0 !important;
}
/* Ensure sidebar-scroll can scroll natively — override PerfectScrollbar .ps overflow:hidden */
.sidebar .sidebar-scroll,
.sidebar .sidebar-scroll.ps,
.sidebar-scroll.ps {
  overflow-y: auto !important;
  overflow-x: hidden !important;
  height: calc(100vh - 65px) !important;
  scrollbar-width: none !important;
}
.sidebar .sidebar-scroll::-webkit-scrollbar,
.sidebar .sidebar-scroll.ps::-webkit-scrollbar,
.sidebar-scroll.ps::-webkit-scrollbar {
  display: none !important;
  width: 0 !important;
}

.sidebar-menu li a,
.sidebar .nav-link,
.sidebar-menu .menu-text {
  color: var(--text-secondary) !important;
  border-radius: var(--radius-sm);
  transition: var(--transition);
  font-weight: 400;
  font-size: 13.5px;
}

.sidebar-menu li a:hover,
.sidebar .nav-link:hover {
  background: var(--surface-hover) !important;
  color: var(--text) !important;
}

.sidebar-menu li.active > a,
.sidebar .nav-link.active {
  background: rgba(255,255,255,0.06) !important;
  color: var(--text) !important;
  font-weight: 500;
}

.sidebar-menu li.active > a .menu-icon,
.sidebar-menu li.active > a svg,
.sidebar-menu li.active > a .icon {
  color: var(--text) !important;
  opacity: 1;
}

/* Section labels */
.sidebar-section-label {
  padding: 20px 16px 6px !important;
  font-size: 10px !important;
  font-weight: 600 !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  color: var(--text-muted) !important;
  list-style: none;
  pointer-events: none;
}

.sidebar-section-label:first-child {
  padding-top: 10px !important;
}

.sidebar-toggled .sidebar-section-label {
  display: none !important;
}

.sidebar .sidebar-header,
.sidebar .sidebar-title,
.sidebar .menu-section-title {
  color: var(--text-muted) !important;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}


/* ═══════════════════════════════════════
   CARDS — Glass morphism
   ═══════════════════════════════════════ */

.card {
  background: rgba(255,255,255,0.025) !important;
  border: 1px solid var(--border) !important;
  border-radius: var(--radius) !important;
  box-shadow: 0 4px 24px rgba(0,0,0,0.3), 0 0 0 1px rgba(255,255,255,0.03) !important;
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  transition: var(--transition);
  position: relative;
  overflow: hidden;
}

/* Top refraction line */
.card::before {
  content: '';
  position: absolute;
  top: 0;
  left: 24px;
  right: 24px;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,0.06), transparent);
  pointer-events: none;
  z-index: 1;
}

.card:hover {
  border-color: var(--border-hover) !important;
}

.card-header {
  background: transparent !important;
  border-bottom: 1px solid var(--border) !important;
  color: var(--text) !important;
  font-weight: 600;
}

.card-body {
  background: transparent !important;
  color: var(--text-secondary) !important;
}

.card-footer {
  background: transparent !important;
  border-top: 1px solid var(--border) !important;
}


/* ═══════════════════════════════════════
   FORMS
   ═══════════════════════════════════════ */

.form-control,
.form-select,
input[type="text"],
input[type="email"],
input[type="password"],
input[type="number"],
input[type="search"],
input[type="url"],
input[type="tel"],
textarea {
  background: rgba(255,255,255,0.04) !important;
  border: 1px solid var(--border) !important;
  border-radius: var(--radius-sm) !important;
  color: var(--text) !important;
  transition: var(--transition);
  font-size: 14px;
}

.form-control:hover,
.form-select:hover {
  border-color: var(--border-hover) !important;
}

.form-control:focus,
.form-select:focus {
  background: rgba(255,255,255,0.06) !important;
  border-color: var(--border-focus) !important;
  box-shadow: 0 0 0 3px rgba(255,255,255,0.04) !important;
  color: var(--text) !important;
}

.form-control::placeholder {
  color: var(--text-muted) !important;
}

.form-label,
label {
  color: var(--text-secondary) !important;
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.02em;
}

.form-check-input {
  background-color: rgba(255,255,255,0.06) !important;
  border-color: var(--border) !important;
}

.form-check-input:checked {
  background-color: rgba(255,255,255,0.8) !important;
  border-color: rgba(255,255,255,0.8) !important;
}


/* ═══════════════════════════════════════
   BUTTONS — White solid primary
   ═══════════════════════════════════════ */

.btn-primary,
.btn-info {
  background: rgba(255,255,255,0.9) !important;
  border-color: rgba(255,255,255,0.9) !important;
  color: #09090b !important;
  border-radius: var(--radius-sm) !important;
  font-weight: 600;
  font-size: 13px;
  transition: var(--transition);
}

.btn-primary:hover,
.btn-primary:focus,
.btn-info:hover,
.btn-info:focus {
  background: #fff !important;
  border-color: #fff !important;
  color: #09090b !important;
  box-shadow: 0 4px 20px rgba(255,255,255,0.1) !important;
}

.btn-default,
.btn-secondary,
.btn-light {
  background: rgba(255,255,255,0.04) !important;
  border: 1px solid var(--border) !important;
  color: var(--text-secondary) !important;
  border-radius: var(--radius-sm) !important;
  font-weight: 500;
  transition: var(--transition);
}

.btn-default:hover,
.btn-secondary:hover,
.btn-light:hover {
  background: rgba(255,255,255,0.08) !important;
  border-color: var(--border-hover) !important;
  color: var(--text) !important;
}

.btn-success { background: var(--mz-success) !important; border-color: var(--mz-success) !important; color: #fff !important; }
.btn-danger { background: var(--mz-danger) !important; border-color: var(--mz-danger) !important; color: #fff !important; }
.btn-warning { background: var(--mz-warning) !important; border-color: var(--mz-warning) !important; color: #000 !important; }

.btn-success:hover { background: #16a34a !important; }
.btn-danger:hover { background: #dc2626 !important; }
.btn-warning:hover { background: #d97706 !important; }

/* Outline buttons */
.btn-outline-primary {
  background: transparent !important;
  border: 1px solid var(--border) !important;
  color: var(--text) !important;
}
.btn-outline-primary:hover {
  background: rgba(255,255,255,0.06) !important;
}


/* ═══════════════════════════════════════
   TABLES
   ═══════════════════════════════════════ */

.table,
.dataTable {
  color: var(--text-secondary) !important;
}

.table thead th,
.dataTable thead th {
  background: rgba(255,255,255,0.02) !important;
  color: var(--text-muted) !important;
  border-bottom: 1px solid var(--border) !important;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.table tbody tr {
  border-bottom: 1px solid var(--border) !important;
  transition: var(--transition);
}

.table tbody tr:hover {
  background: var(--surface-hover) !important;
}

.table td,
.table th {
  border-color: var(--border) !important;
}

.table-striped > tbody > tr:nth-of-type(odd) {
  background-color: rgba(255,255,255,0.015) !important;
}


/* ═══════════════════════════════════════
   DROPDOWNS
   ═══════════════════════════════════════ */

.dropdown-menu {
  background: rgba(15,15,18,0.95) !important;
  border: 1px solid var(--border) !important;
  border-radius: var(--radius) !important;
  box-shadow: var(--shadow-lg) !important;
  backdrop-filter: blur(20px) !important;
  -webkit-backdrop-filter: blur(20px) !important;
  padding: 6px !important;
}

.dropdown-item {
  color: var(--text-secondary) !important;
  border-radius: var(--radius-xs) !important;
  padding: 8px 12px !important;
  transition: var(--transition);
  font-size: 13px;
}

.dropdown-item:hover,
.dropdown-item:focus {
  background: rgba(255,255,255,0.06) !important;
  color: var(--text) !important;
}

.dropdown-divider {
  border-color: var(--border) !important;
  margin: 4px 0 !important;
}


/* ═══════════════════════════════════════
   MODALS
   ═══════════════════════════════════════ */

/* .modal-content, .modal-header, .modal-body — moved to MODAL FORMS section below */

.modal-body {
  background: transparent !important;
  color: var(--text-secondary) !important;
}

.modal-footer {
  background: transparent !important;
  border-top: 1px solid var(--border) !important;
}

.modal-backdrop.show {
  opacity: 0.75 !important;
  background: #000 !important;
}


/* ═══════════════════════════════════════
   SELECT2
   ═══════════════════════════════════════ */

.select2-container--default .select2-selection--single,
.select2-container--default .select2-selection--multiple {
  background: rgba(255,255,255,0.04) !important;
  border: 1px solid var(--border) !important;
  border-radius: var(--radius-sm) !important;
}

.select2-container--default .select2-selection--single .select2-selection__rendered {
  color: var(--text) !important;
}

.select2-dropdown {
  background: rgba(15,15,18,0.97) !important;
  border: 1px solid var(--border) !important;
  border-radius: var(--radius-sm) !important;
  box-shadow: var(--shadow-lg) !important;
}

.select2-results__option {
  color: var(--text-secondary) !important;
  transition: var(--transition);
}

.select2-results__option--highlighted {
  background: rgba(255,255,255,0.06) !important;
  color: var(--text) !important;
}

.select2-container--default .select2-search--dropdown .select2-search__field {
  background: rgba(255,255,255,0.04) !important;
  border: 1px solid var(--border) !important;
  color: var(--text) !important;
  border-radius: var(--radius-xs) !important;
}


/* ═══════════════════════════════════════
   BADGES & PILLS
   ═══════════════════════════════════════ */

.badge {
  border-radius: var(--radius-xs);
  font-weight: 500;
  font-size: 11px;
  letter-spacing: 0.02em;
}

.badge-primary, .bg-primary {
  background: rgba(255,255,255,0.12) !important;
  color: var(--text) !important;
}
.badge-success, .bg-success { background: var(--mz-success) !important; }
.badge-danger, .bg-danger { background: var(--mz-danger) !important; }
.badge-warning, .bg-warning { background: var(--mz-warning) !important; color: #000 !important; }
.badge-info, .bg-info { background: rgba(255,255,255,0.1) !important; color: var(--text) !important; }


/* ═══════════════════════════════════════
   TABS & NAV
   ═══════════════════════════════════════ */

.nav-tabs {
  border-bottom: 1px solid var(--border) !important;
}

.nav-tabs .nav-link {
  color: var(--text-muted) !important;
  border: none !important;
  border-bottom: 2px solid transparent !important;
  transition: var(--transition);
  font-weight: 500;
  font-size: 13px;
}

.nav-tabs .nav-link:hover {
  color: var(--text) !important;
  border-color: transparent !important;
  border-bottom-color: var(--border-hover) !important;
}

.nav-tabs .nav-link.active {
  background: transparent !important;
  color: var(--text) !important;
  border-color: transparent !important;
  border-bottom-color: var(--text) !important;
}


/* ═══════════════════════════════════════
   PAGINATION
   ═══════════════════════════════════════ */

.page-link {
  background: rgba(255,255,255,0.03) !important;
  border-color: var(--border) !important;
  color: var(--text-secondary) !important;
  border-radius: var(--radius-xs) !important;
  transition: var(--transition);
}

.page-link:hover {
  background: rgba(255,255,255,0.06) !important;
  color: var(--text) !important;
}

.page-item.active .page-link {
  background: rgba(255,255,255,0.85) !important;
  border-color: rgba(255,255,255,0.85) !important;
  color: #09090b !important;
}


/* ═══════════════════════════════════════
   SCROLLBAR
   ═══════════════════════════════════════ */

::-webkit-scrollbar { width: 3px; height: 3px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb {
  background: rgba(255,255,255,0.04);
  border-radius: 3px;
}
::-webkit-scrollbar-thumb:hover { background: rgba(255,255,255,0.12); }
* { scrollbar-width: thin; scrollbar-color: rgba(255,255,255,0.04) transparent; }


/* ═══════════════════════════════════════
   DATATABLE OVERRIDES
   ═══════════════════════════════════════ */

.dataTables_wrapper .dataTables_filter input,
.dataTables_wrapper .dataTables_length select {
  background: rgba(255,255,255,0.04) !important;
  border: 1px solid var(--border) !important;
  color: var(--text) !important;
  border-radius: var(--radius-sm) !important;
}

.dataTables_wrapper .dataTables_info,
.dataTables_wrapper .dataTables_length label {
  color: var(--text-muted) !important;
}

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

table.dataTable.no-footer {
  border-bottom: 1px solid var(--border) !important;
}


/* ═══════════════════════════════════════
   ALERTS
   ═══════════════════════════════════════ */

.alert {
  border-radius: var(--radius) !important;
  border: 1px solid !important;
  backdrop-filter: blur(8px);
}

.alert-success { background: rgba(34,197,94,0.08) !important; border-color: rgba(34,197,94,0.15) !important; color: var(--mz-success) !important; }
.alert-danger { background: rgba(239,68,68,0.08) !important; border-color: rgba(239,68,68,0.15) !important; color: var(--mz-danger) !important; }
.alert-warning { background: rgba(245,158,11,0.08) !important; border-color: rgba(245,158,11,0.15) !important; color: var(--mz-warning) !important; }
.alert-info { background: rgba(56,189,248,0.08) !important; border-color: rgba(56,189,248,0.15) !important; color: var(--mz-info) !important; }


/* ═══════════════════════════════════════
   PROGRESS BARS
   ═══════════════════════════════════════ */

.progress {
  background: rgba(255,255,255,0.04) !important;
  border-radius: 6px !important;
  height: 6px !important;
}

.progress-bar {
  background: rgba(255,255,255,0.6) !important;
  border-radius: 6px !important;
}


/* ═══════════════════════════════════════
   TOOLTIP & POPOVER
   ═══════════════════════════════════════ */

.tooltip-inner {
  background: rgba(20,20,25,0.95) !important;
  border: 1px solid var(--border) !important;
  border-radius: var(--radius-xs) !important;
  color: var(--text) !important;
  font-size: 12px;
  backdrop-filter: blur(12px);
}

.popover {
  background: rgba(15,15,18,0.97) !important;
  border: 1px solid var(--border) !important;
  border-radius: var(--radius) !important;
  backdrop-filter: blur(20px);
}


/* ═══════════════════════════════════════
   BENTO GRID — Dashboard layout
   ═══════════════════════════════════════ */

.mz-bento {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  gap: 16px;
  padding: 0;
}

.mz-cell {
  grid-column: span 4;
  min-height: 0;
}

.mz-cell--wide { grid-column: span 8; }
.mz-cell--half { grid-column: span 6; }
.mz-cell--full { grid-column: span 12; }
.mz-cell--third { grid-column: span 4; }

/* Dashboard widget containers inside bento */
.mz-bento .widget-container {
  margin-bottom: 0 !important;
  padding: 0 !important;
}

.mz-bento .dashboards-row {
  display: contents;
}

/* ── Entry Animations ── */
@keyframes mzFadeUp {
  from { opacity: 0; transform: translateY(20px); }
  to   { opacity: 1; transform: translateY(0); }
}

@keyframes mzFadeIn {
  from { opacity: 0; }
  to   { opacity: 1; }
}

/* Staggered entry for bento cells */
.mz-bento .mz-cell {
  opacity: 0;
  animation: mzFadeUp 0.7s ease forwards;
}

.mz-bento .mz-cell:nth-child(1) { animation-delay: 0.05s; }
.mz-bento .mz-cell:nth-child(2) { animation-delay: 0.12s; }
.mz-bento .mz-cell:nth-child(3) { animation-delay: 0.19s; }
.mz-bento .mz-cell:nth-child(4) { animation-delay: 0.26s; }
.mz-bento .mz-cell:nth-child(5) { animation-delay: 0.33s; }
.mz-bento .mz-cell:nth-child(6) { animation-delay: 0.40s; }
.mz-bento .mz-cell:nth-child(7) { animation-delay: 0.47s; }

/* ── Glass Card ── */
.mz-glass {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 24px;
  position: relative;
  overflow: hidden;
  height: 100%;
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  transition: border-color var(--transition), box-shadow var(--transition);
}

.mz-glass:hover {
  border-color: var(--border-hover);
  box-shadow: 0 0 30px rgba(255,255,255,0.02);
}

.mz-glass::before {
  content: '';
  position: absolute;
  top: 0;
  left: 24px;
  right: 24px;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,0.08), transparent);
  pointer-events: none;
}

/* ── Animated Line ── */
.mz-line-track {
  width: 100%;
  max-width: 200px;
  height: 1px;
  background: rgba(255,255,255,0.06);
  position: relative;
  overflow: hidden;
  margin-bottom: 20px;
}

.mz-line-fill {
  position: absolute;
  top: 0;
  left: -40%;
  width: 40%;
  height: 100%;
  background: linear-gradient(90deg, transparent 0%, rgba(255,255,255,0.6) 50%, transparent 100%);
  animation: mzLineSweep 3s ease-in-out infinite;
}

@keyframes mzLineSweep {
  0%   { left: -40%; }
  100% { left: 100%; }
}

/* ── Greeting Card ── */
.mz-greeting-badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 6px 14px;
  border-radius: 6px;
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.12);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.12em;
  color: rgba(255,255,255,0.7);
  margin-bottom: 20px;
}

.mz-greeting-title {
  font-size: 22px;
  font-weight: 700;
  color: var(--text);
  margin: 0 0 6px 0;
  line-height: 1.3;
}

.mz-greeting-sub {
  font-size: 14px;
  color: var(--text-muted);
  margin: 0 0 20px 0;
}

.mz-greeting-footer {
  margin-top: auto;
}

.mz-greeting-date {
  font-size: 12px;
  color: var(--text-muted);
  text-transform: capitalize;
}

.mz-cell--greeting .mz-glass {
  display: flex;
  flex-direction: column;
}

/* ── Metric Cards (Revenue, Cash) ── */
.mz-metric-label {
  font-size: 12px;
  font-weight: 600;
  color: var(--text-muted);
  text-transform: uppercase;
  letter-spacing: 0.5px;
  margin-bottom: 8px;
}

.mz-metric-value {
  font-size: 28px;
  font-weight: 700;
  color: var(--text);
  line-height: 1.1;
  margin-bottom: 12px;
}

.mz-metric-chart {
  height: 40px;
  margin-bottom: 12px;
  opacity: 0.7;
}

.mz-sparkline {
  width: 100%;
  height: 100%;
}

.mz-metric-sub {
  font-size: 12px;
  color: var(--text-muted);
}

/* ── Card Title ── */
.mz-card-title {
  font-size: 14px;
  font-weight: 600;
  color: var(--text);
  margin-bottom: 16px;
}

/* ── Estado Operativo Grid ── */
.mz-status-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 16px;
}

.mz-status-item {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.mz-status-num {
  font-size: 22px;
  font-weight: 700;
  color: var(--text);
  line-height: 1.2;
}

.mz-status-label {
  font-size: 11px;
  color: var(--text-muted);
  line-height: 1.3;
}

/* ── Team Avatars ── */
.mz-team-avatars {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 14px;
}

.mz-avatar {
  width: 40px;
  height: 40px;
  border-radius: 12px;
  overflow: hidden;
  border: 1px solid var(--border);
  flex-shrink: 0;
}

.mz-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.mz-avatar--more {
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(255,255,255,0.06);
  font-size: 12px;
  font-weight: 600;
  color: var(--text-muted);
}

.mz-team-count {
  font-size: 12px;
  color: var(--text-muted);
}

/* ── Requiere Atención ── */
.mz-attention-list {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.mz-attention-item {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 12px;
  border-radius: var(--radius-sm);
  background: rgba(255,255,255,0.02);
  border: 1px solid var(--border);
  transition: background var(--transition);
}

.mz-attention-item:hover {
  background: var(--surface-hover);
}

.mz-attention-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--text-muted);
  flex-shrink: 0;
}

.mz-attention-dot--warn { background: var(--mz-warning); }
.mz-attention-dot--danger { background: var(--mz-danger); }
.mz-attention-dot--info { background: var(--mz-info); }

.mz-attention-text {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 1px;
  min-width: 0;
}

.mz-attention-title {
  font-size: 13px;
  font-weight: 500;
  color: var(--text);
}

.mz-attention-sub {
  font-size: 11px;
  color: var(--text-muted);
}

.mz-attention-action {
  font-size: 12px;
  font-weight: 600;
  color: var(--text-secondary) !important;
  text-decoration: none !important;
  padding: 4px 10px;
  border-radius: 6px;
  background: rgba(255,255,255,0.06);
  border: 1px solid var(--border);
  transition: all var(--transition);
  white-space: nowrap;
}

.mz-attention-action:hover {
  background: rgba(255,255,255,0.1);
  color: var(--text) !important;
}

/* ── AI Chat inside Bento ── */
/* ── Bento Responsive ── */
@media (max-width: 1100px) {
  .mz-cell { grid-column: span 6; }
  .mz-cell--wide { grid-column: span 12; }
  .mz-cell--greeting { grid-column: span 12; }
  .mz-metric-value { font-size: 24px; }
}

@media (max-width: 768px) {
  .mz-bento {
    grid-template-columns: 1fr;
    gap: 10px;
    padding: 12px;
  }
  .mz-cell,
  .mz-cell--wide,
  .mz-cell--half,
  .mz-cell--third,
  .mz-cell--full { grid-column: span 1; }

  .mz-glass {
    padding: 16px;
    border-radius: 12px;
  }

  /* Greeting: compact */
  .mz-cell--greeting .mz-glass { padding: 16px; }
  .mz-greeting-badge { font-size: 9px; padding: 4px 10px; margin-bottom: 10px; }
  .mz-line-track { margin-bottom: 10px; }
  .mz-greeting-title { font-size: 18px; margin-bottom: 2px; }
  .mz-greeting-sub { font-size: 12px; margin-bottom: 6px; }

  /* Metrics: compact horizontal */
  .mz-cell--revenue .mz-glass,
  .mz-cell--cash .mz-glass {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 4px 12px;
    padding: 14px 16px;
  }
  .mz-metric-label { font-size: 10px; margin-bottom: 0; width: 100%; }
  .mz-metric-value { font-size: 22px; margin-bottom: 0; }
  .mz-metric-chart { display: none; }
  .mz-metric-sub { font-size: 11px; width: 100%; }

  /* Status: 2x2 compact */
  .mz-status-grid { grid-template-columns: repeat(2, 1fr); gap: 10px; }
  .mz-status-num { font-size: 18px; }
  .mz-status-label { font-size: 10px; }

  /* Team: hide on mobile — not actionable */
  .mz-cell--team { display: none; }

  /* Attention: compact */
  .mz-attention-item { padding: 8px 10px; }
  .mz-attention-title { font-size: 12px; }
  .mz-attention-sub { font-size: 10px; }
  .mz-attention-action { font-size: 11px; padding: 3px 8px; }

  /* Dashboard header: compact */
  .dashbaord-header-area { padding: 8px 12px; margin-bottom: 8px !important; }
  .dashbaord-header-area h4 { font-size: 14px !important; }

  /* Faster animations on mobile */
  .mz-bento .mz-cell { animation-duration: 0.4s; }
}


/* ═══════════════════════════════════════
   MISC OVERRIDES
   ═══════════════════════════════════════ */

.breadcrumb {
  background: transparent !important;
}

.breadcrumb-item + .breadcrumb-item::before {
  color: var(--text-muted) !important;
}

.breadcrumb-item a { color: var(--text-muted) !important; }
.breadcrumb-item.active { color: var(--text-secondary) !important; }

hr { border-color: var(--border) !important; }

.list-group-item {
  background: transparent !important;
  border-color: var(--border) !important;
  color: var(--text-secondary) !important;
}

.list-group-item:hover {
  background: var(--surface-hover) !important;
}

code {
  background: rgba(255,255,255,0.06) !important;
  color: var(--text) !important;
  border-radius: 4px;
  padding: 2px 6px;
}

pre {
  background: rgba(255,255,255,0.03) !important;
  border: 1px solid var(--border) !important;
  border-radius: var(--radius-sm) !important;
  color: var(--text) !important;
}

/* Preloader */
.page-pre-loader,
#pre-loader {
  background: var(--bg) !important;
}

/* Empty states */
.no-result-found,
.dataTables_empty {
  color: var(--text-muted) !important;
}

/* Calendar overrides — see "FullCalendar — Comprehensive Dark Theme" section below */

/* Notification dropdown */
.notification-dropdown,
.message-dropdown {
  background: rgba(15,15,18,0.97) !important;
  border: 1px solid var(--border) !important;
  backdrop-filter: blur(20px) !important;
}

.notification-dropdown .card,
.message-dropdown .card {
  background: transparent !important;
  border: none !important;
}

.notification-dropdown .dropdown-details,
.message-dropdown .dropdown-details,
.notification-dropdown .bg-white,
.message-dropdown .bg-white {
  background: transparent !important;
}

/* Reset .list-group Bootstrap wrapper around notification content */
.notification-dropdown .dropdown-details .list-group,
.message-dropdown .dropdown-details .list-group {
  border: none !important;
  border-radius: 0 !important;
  background: transparent !important;
  padding: 0 !important;
  margin: 0 !important;
}

/* card-footer hidden — mz-notif-header has the "ver todo" link */
.notification-dropdown .card-footer,
.message-dropdown .card-footer {
  display: none !important;
}

/* User dropdown menu */
.user-dropdown-menu {
  min-width: 200px;
}

/* Page header / title area */
.page-title,
.page-header h4,
.page-header h3 {
  color: var(--text) !important;
  font-weight: 600;
}

/* Sidebar brand */
.sidebar-brand {
  background: transparent !important;
}

.sidebar-brand img {
  filter: brightness(0) invert(1);
  opacity: 0.85;
}

/* Sidebar plan + industry badges (absolute inside .brand-logo) */
.sidebar-brand.brand-logo { position: relative; overflow: visible; }
.mz-sidebar-badge {
  position: absolute;
  right: 6px;
  top: 50%;
  transform: translateY(-50%);
  display: flex;
  flex-direction: column;
  gap: 2px;
  pointer-events: none;
}
.mz-badge-plan, .mz-badge-industry {
  font-size: 6.5px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.4px;
  padding: 1px 5px;
  border-radius: 6px;
  color: rgba(255,255,255,0.5);
  line-height: 1.4;
  white-space: nowrap;
  text-align: center;
}
.mz-badge-plan {
  background: rgba(255,255,255,0.08);
  border: 1px solid rgba(255,255,255,0.12);
}
.mz-badge-industry {
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.08);
}
.sidebar-toggled .mz-sidebar-badge { display: none; }

/* Widget specific */
.widget-title {
  color: var(--text) !important;
  font-weight: 600;
  font-size: 14px;
}

/* General anchor overrides for module pages */
.page-container a:not(.btn):not(.nav-link):not(.dropdown-item) {
  color: var(--text-secondary);
}

.page-container a:not(.btn):not(.nav-link):not(.dropdown-item):hover {
  color: var(--text);
}

/* Mobile bottom menu */
.mobile-bottom-menu {
  background: rgba(9,9,11,0.95) !important;
  border-top: 1px solid var(--border) !important;
  backdrop-filter: blur(20px) !important;
}

.mobile-bottom-menu .menu-item {
  color: var(--text-secondary) !important;
}

.mobile-bottom-menu .menu-item:hover {
  color: var(--text) !important;
}

/* Dashboard header */
.dashboard-header {
  background: transparent !important;
}

/* Charts */
.chart-container {
  background: transparent !important;
}

/* Todo widget */
.todo-list .list-group-item {
  background: transparent !important;
}

/* Inline loader */
.inline-loader {
  background: transparent !important;
}

/* Icon colors */
.icon, [data-feather] {
  color: inherit;
}

/* App loader */
.app-loader .loading {
  border-color: rgba(255,255,255,0.1) !important;
  border-top-color: rgba(255,255,255,0.6) !important;
}


/* ═══════════════════════════════════════════════════════════
   APP-SPECIFIC DARK OVERRIDES
   (Replaces 1E202D.css dynamic theme — no longer injected)
   ═══════════════════════════════════════════════════════════ */

/* ── Utility Background Classes ── */
.bg-white { background-color: var(--surface) !important; }
.bg-light { background-color: var(--surface) !important; }
.bg-off-white { background: var(--surface) !important; }
.default-bg { background-color: var(--bg) !important; }
.bg-transparent-white { background: rgba(15,15,18,0.92) !important; }
.grid-bg { background: var(--surface) !important; }
.column-grid-link:hover .grid-bg { background: rgba(255,255,255,0.1) !important; }

/* ── Text Utility Classes ── */
.dark { color: var(--text) !important; }
.dark:hover, .dark:focus { color: #fff !important; }
.text-off { color: var(--text-secondary) !important; }
.text-default { color: var(--text-secondary) !important; }
.color-white { color: var(--text-secondary) !important; }
.white-link { color: var(--text-secondary) !important; }

/* ── Border Utility Classes ── */
.b-a { border-color: var(--border) !important; }
.b-t { border-color: var(--border) !important; }
.b-r { border-color: var(--border) !important; }
.b-b { border-color: var(--border) !important; }
.b-l { border-color: var(--border) !important; }
.b-r-2 { border-color: var(--border) !important; }
.b-white { border-color: var(--bg) !important; }
.border-white { border-color: var(--surface) !important; }
.border-start { border-color: var(--border) !important; }
.border-end { border-color: var(--border) !important; }
.border-top { border-color: var(--border) !important; }
.border-bottom { border-color: var(--border) !important; }

/* ── Page Title ── */
.page-title {
  background: transparent !important;
  background-color: transparent !important;
  color: var(--text) !important;
  border-color: var(--border) !important;
}

/* ── Forms — General Form Specificity ── */
.general-form .form-control {
  background-color: rgba(255,255,255,0.04) !important;
  border-color: var(--border) !important;
  color: var(--text) !important;
  transition: var(--transition) !important;
}
.general-form .form-control:focus {
  background-color: rgba(255,255,255,0.06) !important;
  border-color: var(--border-focus) !important;
}
.general-form.white .form-control {
  border-color: var(--border) !important;
  background-color: rgba(255,255,255,0.04) !important;
}
.general-form.white .form-control:focus {
  background-color: rgba(255,255,255,0.06) !important;
  border-color: var(--border-focus) !important;
}
.general-form.white .select2-container .select2-choice,
.general-form.white .select2-container-multi.form-control,
.general-form.white .select2-container-multi.form-control .select2-choices,
.general-form.white .select2-container-multi.form-control .select2-choices .select2-search-field input {
  background: rgba(255,255,255,0.04) !important;
  border-color: var(--border) !important;
}

.input-group-text {
  background-color: var(--surface) !important;
  border-color: var(--border) !important;
  color: var(--text-secondary) !important;
}

::placeholder {
  color: var(--text-muted) !important;
  opacity: 1;
}
::-ms-input-placeholder {
  color: var(--text-muted) !important;
}

/* ── Form Check Inputs ── */
.form-check-input {
  border-color: var(--border) !important;
  background-color: rgba(255,255,255,0.04) !important;
}
.form-check-input:checked {
  background-color: rgba(255,255,255,0.8) !important;
  border-color: rgba(255,255,255,0.8) !important;
}

/* ── Sidebar ALWAYS collapsed — icon-only mode ── */

/* Hide the toggle button — sidebar is always collapsed */
.sidebar-toggle,
#sidebar-toggle,
.left-menu-toggle,
.mz-sidebar-toggle-btn {
  display: none !important;
}

/* Prevent sidebar from ever expanding on hover */
.sidebar-toggled .sidebar {
  width: 56px !important;
  min-width: 56px !important;
  overflow: visible !important;
}

/* Hide menu text — icons only */
.sidebar-toggled .sidebar-menu li > a .menu-text,
.sidebar-toggled .sidebar-menu li > a .menu-name,
.sidebar-toggled .sidebar-menu li > a span:not(.menu-icon):not(.icon):not(.badge):not(.mz-sidebar-badge) {
  display: none !important;
}

/* Center icons in collapsed sidebar */
.sidebar-toggled .sidebar-menu li > a {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 10px 0 !important;
  position: relative !important;
}

/* Tooltip on hover — show module name */
.sidebar-toggled .sidebar-menu li > a::after {
  content: attr(title);
  position: absolute;
  left: calc(100% + 8px);
  top: 50%;
  transform: translateY(-50%);
  background: rgba(0, 0, 0, 0.9);
  color: rgba(255, 255, 255, 0.85);
  padding: 5px 10px;
  border-radius: 6px;
  font-size: 11px;
  font-weight: 500;
  white-space: nowrap;
  pointer-events: none;
  opacity: 0;
  transition: opacity 0.15s ease, transform 0.15s ease;
  transform: translateY(-50%) translateX(-4px);
  z-index: 9999;
  border: 1px solid rgba(255, 255, 255, 0.08);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}
.sidebar-toggled .sidebar-menu li > a:hover::after {
  opacity: 1;
  transform: translateY(-50%) translateX(0);
}

/* Hide badges in collapsed mode */
.sidebar-toggled .sidebar-menu .badge,
.sidebar-toggled .mz-sidebar-badge {
  display: none !important;
}

/* Sidebar toggled hover states */
.sidebar-toggled .sidebar-menu li:hover {
  background-color: var(--surface) !important;
}
.sidebar-toggled .sidebar-menu li:hover > a {
  box-shadow: none !important;
}
.sidebar-toggled .sidebar-menu li ul {
  background-color: var(--bg) !important;
}
.sidebar-toggled .sidebar-menu li ul li a:hover {
  background-color: var(--surface-hover) !important;
  color: var(--text) !important;
}

/* ── Submenu items ── */
.sidebar-menu li ul li a {
  color: var(--text-muted) !important;
}
.sidebar-menu li ul li a:hover {
  color: var(--text) !important;
  background-color: var(--surface-hover) !important;
}

/* ── Widget Specific ── */
.widget-details h1 { color: var(--text) !important; }
.widget-details span { color: var(--text-secondary) !important; }
.widget-container .card {
  box-shadow: none !important;
  -webkit-box-shadow: none !important;
}
.card.dashboard-icon-widget .card-body {
  border-radius: var(--radius-sm);
  background-color: transparent !important;
}
.widget,
.add-column-drop {
  border-color: var(--border) !important;
}
.widget-todo-input-box .input-group {
  border-color: var(--border) !important;
}
.widget-todo-input-box input {
  background-color: rgba(255,255,255,0.04) !important;
  color: var(--text) !important;
}
.project_and_clock_status_widget .card-body {
  background-color: transparent !important;
}

/* ── List Group — deep specificity ── */
.list-group-item:not(.active) {
  background-color: transparent !important;
  color: var(--text-secondary);
  border-color: var(--border);
}
.list-group-item:not(.active):focus,
.list-group-item:not(.active):hover {
  background: var(--surface-hover) !important;
}
.list-group-item.active {
  border-color: var(--border) !important;
}
.unread-notification {
  background-color: var(--surface) !important;
}

.settings .list-group-item:not(.active),
.help-catagory .list-group-item:not(.active) {
  background-color: var(--surface) !important;
  color: var(--text-secondary);
}
.settings .list-group-item:not(.active):hover,
.help-catagory .list-group-item:not(.active):hover {
  background: var(--surface-hover) !important;
}
.settings .list-group-item.active,
.help-catagory .list-group-item.active {
  color: var(--text) !important;
}
.settings .email-template-row.list-group-item,
.help-catagory .email-template-row.list-group-item {
  background-color: var(--surface) !important;
}

.content-sidebar .list-group .list-group-item {
  color: var(--text-secondary);
  background: transparent !important;
}

/* ── Nav Tabs ── */
.nav-tabs {
  background: transparent !important;
  border-color: var(--border) !important;
}
.nav-tabs li a:hover,
.nav-tabs li a:focus {
  color: var(--text) !important;
}
.nav-tabs li .active,
.nav-tabs li.active {
  color: var(--text) !important;
}
.nav-tabs li:not(.title-tab) a::after {
  background-color: var(--text);
}
.tab-title {
  border-bottom-color: var(--border) !important;
}

/* ── Nav Pills ── */
.nav-pills {
  background: var(--surface) !important;
}
.nav-pills li .active,
.nav-pills li.active {
  background: var(--surface-active) !important;
  color: var(--text) !important;
}

/* ── Dropdown deeper selectors ── */
.dropdown-menu:not(.notification-dropdown) .list-group-item:not(.inline-loader) {
  color: var(--text-secondary);
}
.dropdown-menu:not(.notification-dropdown) .list-group-item.active {
  color: #FFF;
}
.dashboard-dropdown .dropdown-toggle {
  background-color: var(--surface) !important;
}

/* ── Buttons — Additional States ── */
.btn-outline-light {
  background-color: var(--surface) !important;
  border-color: var(--border) !important;
  color: var(--text-secondary) !important;
}
.btn-outline-light:hover {
  background-color: var(--surface-hover) !important;
}
.btn-transparent {
  border-color: var(--border) !important;
  color: var(--text-secondary) !important;
}
.btn-transparent:hover {
  background-color: var(--surface-hover) !important;
}
.btn.active {
  background: var(--surface) !important;
}
.btn-group .btn.active {
  border-color: var(--border) !important;
}

/* ── Select2 Legacy ── */
.select2-container .select2-choice,
.select2-container .select2-choices,
.select2-container .select2-choices .select2-search-field input {
  background: rgba(255,255,255,0.04) !important;
  border-color: var(--border) !important;
  color: var(--text) !important;
}
.select2-drop {
  background: rgba(15,15,18,0.97) !important;
  border-color: var(--border) !important;
  color: var(--text) !important;
}
.select2-search input {
  background: rgba(255,255,255,0.04) !important;
  border-color: var(--border) !important;
}
.select2-search-choice {
  background: var(--surface) !important;
  border-color: var(--border) !important;
  color: var(--text) !important;
}

/* ── Modals — deeper specificity (neutralized → single rule in MODAL FORMS section) ── */
.modal .modal-dialog .modal-content {
  background-color: transparent !important;
}
.modal .modal-dialog .modal-content .modal-header {
  border-color: var(--border) !important;
}
.modal .modal-dialog .modal-content .modal-body {
  background-color: transparent !important;
}
.modal .modal-dialog .modal-content .modal-footer {
  border-color: var(--border) !important;
}
.app-modal-fixed-close-button { background: rgba(10,10,12,0.92) !important; }
.app-modal-body { background-color: transparent !important; }
.app-modal-sidebar { border-color: var(--border) !important; }
.search-modal .help-search-box {
  border-color: var(--border) !important;
  color: var(--text) !important;
}
.search-modal .help-search-box:focus {
  background-color: var(--surface) !important;
}
.modal-mask { background-color: var(--surface) !important; }
.custom-bg-modal.modal-dialog { background-color: transparent !important; }

/* ── Chat ── */
.init-chat-icon { background-color: var(--surface) !important; }
.init-chat-icon svg { color: var(--text-secondary) !important; }
.rise-chat-wrapper { background: var(--surface) !important; }
.rise-chat-wrapper .message-row { border-bottom-color: var(--border) !important; }
.rise-chat-wrapper .message-row:hover { background: var(--surface-hover) !important; }
.chat-other .chat-msg { background-color: var(--surface) !important; }
.chat-me .chat-msg { background-color: rgba(255,255,255,0.12) !important; }
.rise-chat-footer {
  background: var(--surface) !important;
  border-color: var(--border) !important;
}
.rise-chat-footer textarea {
  background: transparent !important;
  color: var(--text) !important;
}

/* ── Kanban v2 ── */
.kanban-container {
  background: transparent !important;
  border: none !important;
  display: flex !important;
  gap: 16px !important;
  padding: 0 16px 16px !important;
  margin: 0 !important;
}
.kanban-col {
  float: none !important;
  width: auto !important;
  min-width: 300px !important;
  max-width: 300px !important;
  display: flex !important;
  flex-direction: column !important;
  flex-shrink: 0 !important;
  list-style: none !important;
  margin: 0 !important;
}
.kanban-col-title {
  padding: 10px 14px !important;
  background: var(--surface) !important;
  border: 1px solid var(--glass-border, rgba(255,255,255,0.06)) !important;
  border-radius: 10px 10px 0 0 !important;
  backdrop-filter: blur(12px) !important;
  -webkit-backdrop-filter: blur(12px) !important;
  color: var(--text) !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  margin-bottom: 0 !important;
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
}
.kanban-item-count {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-width: 20px !important;
  height: 20px !important;
  padding: 0 6px !important;
  border-radius: 10px !important;
  font-size: 10px !important;
  font-weight: 700 !important;
  background: rgba(255,255,255,0.06) !important;
  color: var(--text-secondary) !important;
  float: none !important;
}
.kanban-item-list {
  scrollbar-width: thin;
  scrollbar-color: rgba(255,255,255,0.04) transparent;
  padding: 8px 0 !important;
  /* overflow-y set by JS dynamically — do NOT override with !important */
}
.kanban-item-list::-webkit-scrollbar { width: 3px !important; }
.kanban-item-list::-webkit-scrollbar-track { background: transparent !important; }
.kanban-item-list::-webkit-scrollbar-thumb { background: rgba(255,255,255,0.04) !important; border-radius: 3px !important; }
.kanban-item-list::-webkit-scrollbar-thumb:hover { background: rgba(255,255,255,0.10) !important; }

.kanban-item {
  background: rgba(255,255,255,0.025) !important;
  border: 1px solid rgba(255,255,255,0.06) !important;
  border-radius: 10px !important;
  padding: 14px !important;
  cursor: grab !important;
  transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1) !important;
  backdrop-filter: blur(12px) !important;
  -webkit-backdrop-filter: blur(12px) !important;
  color: var(--text) !important;
  display: block !important;
  width: auto !important;
  margin: 0 0 8px 0 !important;
}
.kanban-item:hover {
  background: rgba(255,255,255,0.045) !important;
  border-color: rgba(255,255,255,0.10) !important;
  transform: translateY(-1px) !important;
}
.kanban-item:active { cursor: grabbing !important; }
.kanban-sortable-ghost {
  opacity: 0.15 !important;
  border-style: dashed !important;
  box-shadow: none !important;
}
.kanban-sortable-chosen {
  opacity: 0.6 !important;
  transform: scale(1.02) !important;
  box-shadow: 0 8px 32px rgba(0,0,0,0.4) !important;
}

/* Card structure */
.mz-card-top { display: flex; align-items: flex-start; gap: 8px; margin-bottom: 8px; }
.mz-card-priority {
  width: 8px; height: 8px; min-width: 8px;
  border-radius: 50%; margin-top: 4px; flex-shrink: 0;
}
.mz-card-title {
  flex: 1; font-size: 13px; font-weight: 600;
  color: var(--text); line-height: 1.35; letter-spacing: -0.01em;
}
.mz-card-id {
  font-size: 10px; font-weight: 500; color: var(--text-muted);
  font-variant-numeric: tabular-nums; flex-shrink: 0; margin-top: 2px;
}
.mz-card-fields { display: flex; flex-direction: column; gap: 5px; margin-bottom: 10px; }
.mz-card-field { display: flex; align-items: center; gap: 8px; font-size: 11px; }
.mz-card-field-icon { width: 14px; display: flex; align-items: center; justify-content: center; color: var(--text-muted); flex-shrink: 0; }
.mz-card-field-icon i, .mz-card-field-icon svg { width: 12px; height: 12px; }
.mz-card-field-label { color: var(--text-muted); min-width: 52px; flex-shrink: 0; font-size: 11px; }
.mz-card-field-value { color: var(--text-secondary); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-size: 11px; }
.mz-card-field-value--warn { color: #f59e0b !important; }
.mz-card-field-value--danger { color: #ef4444 !important; }

.mz-card-bottom {
  display: flex; align-items: center; gap: 8px;
  padding-top: 10px; border-top: 1px solid var(--border);
}
.mz-card-assignee { display: flex; align-items: center; gap: 6px; flex: 1; min-width: 0; }
.mz-card-assignee .avatar { margin: 0 !important; }
.mz-card-assignee .avatar img { width: 22px !important; height: 22px !important; border-radius: 50% !important; }
.mz-card-assignee-name { font-size: 11px; color: var(--text-secondary); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.mz-card-labels { display: flex; gap: 4px; flex-wrap: wrap; }
.mz-card-meta-badge {
  display: inline-flex; align-items: center; gap: 3px;
  padding: 2px 6px; border-radius: 10px;
  font-size: 10px; font-weight: 600; flex-shrink: 0;
}
.mz-card-parent { font-size: 10px; color: var(--text-muted); margin-top: 6px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.mz-card-custom-fields { margin-bottom: 8px; }
.mz-card-custom-fields > div { font-size: 11px; color: var(--text-secondary); margin-top: 3px; }

/* Kanban card fade-in */
@keyframes mzCardFadeIn { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: translateY(0); } }
.kanban-item { animation: mzCardFadeIn 0.25s ease both; }

/* Kanban wrapper scroll */
#kanban-wrapper {
  scrollbar-width: thin !important;
  scrollbar-color: rgba(255,255,255,0.06) transparent !important;
}
#kanban-wrapper::-webkit-scrollbar { height: 4px !important; }
#kanban-wrapper::-webkit-scrollbar-thumb { background: rgba(255,255,255,0.06) !important; border-radius: 4px !important; }

/* Kanban input inline form */
.kanban-input .form-control {
  background: var(--surface) !important;
  border: 1px solid var(--border) !important;
  color: var(--text) !important;
  border-radius: 8px !important;
  font-size: 12px !important;
}

.milestone { border-color: var(--border) !important; }

@media (max-width: 768px) {
  .kanban-col { min-width: 280px !important; max-width: 280px !important; }
  .kanban-container { gap: 12px !important; scroll-snap-type: x mandatory !important; }
  .kanban-col { scroll-snap-align: start !important; }
}

/* ── Timeline ── */
#timeline:before {
  background-image: linear-gradient(to top, var(--bg) 0.1%, var(--bg) 99%) !important;
}
#timeline .post-content .post-date span { background: var(--surface) !important; }
#timeline .post-content .post-date:before { background: var(--surface) !important; }
#timeline .post-content .card-body { border-radius: var(--radius-sm); }
#timeline .timeline-images .file-mockup { background: var(--surface) !important; }

/* ── Datepicker ── */
.datepicker.dropdown-menu {
  border-color: var(--border) !important;
  color: var(--text) !important;
}
.datepicker-dropdown:after { border-bottom-color: var(--border) !important; }
.datepicker table tr td.day:hover,
.datepicker table tr td.focused { background: var(--surface-hover) !important; }
.datepicker table tr td.active { background: rgba(255,255,255,0.15) !important; }
.datepicker table tr td.active:hover { background: rgba(255,255,255,0.2) !important; }
.datepicker table tr td.active.active { background: var(--surface-active) !important; border-color: var(--border) !important; }
.datepicker table tr td.range { background-color: var(--surface) !important; color: var(--text) !important; }
.datepicker table tr td span.month.focused,
.datepicker table tr td span.month:hover,
.datepicker table tr td span.year.focused,
.datepicker table tr td span.year:hover { background: var(--surface-hover) !important; }
.datepicker .datepicker-switch:hover,
.datepicker .prev:hover,
.datepicker .next:hover,
.datepicker tfoot tr th:hover { background: var(--surface-hover) !important; }
.datepicker-custom-selector {
  border-color: var(--border) !important;
  background-color: var(--surface) !important;
  color: var(--text-secondary) !important;
}

/* ── Bootstrap Timepicker ── */
.bootstrap-timepicker-widget table td input {
  background: var(--surface) !important;
  color: var(--text) !important;
  border-color: var(--border) !important;
}
.bootstrap-timepicker-widget table td a { color: var(--text-secondary) !important; }
.bootstrap-timepicker-widget table td a:hover { background: var(--surface-hover) !important; }
.bootstrap-timepicker-widget:after { border-bottom-color: var(--border) !important; }

/* ── DataTable — comprehensive ── */
.dataTable:not(.js-selection-mode) tbody tr:hover td {
  background: var(--surface-hover) !important;
}
.dataTable:not(.js-selection-mode) tbody tr.active td {
  background: var(--surface-active) !important;
  color: var(--text) !important;
}
table.dataTable thead th {
  border-color: var(--border) !important;
  color: var(--text-muted) !important;
}
table.dataTable.display tbody th,
table.dataTable.display tbody td {
  border-color: var(--border) !important;
  background-color: transparent !important;
  color: var(--text-secondary) !important;
}
table.dataTable.display tfoot th,
table.dataTable.display tfoot td {
  border-color: var(--border) !important;
  background-color: var(--surface) !important;
}
table.dataTable.b-b-only tbody th,
table.dataTable.b-b-only tbody td {
  border-bottom-color: var(--border) !important;
}
table.dataTable.dtr-inline.collapsed tbody tr td.dtr-control:before {
  border-color: var(--border) !important;
  box-shadow: none !important;
}
table.dataTable.dtr-inline.collapsed tbody tr td.child {
  background: var(--bg) !important;
}
.table.table-bordered { border-color: var(--border) !important; }
table.dataTable > tbody > tr.child ul.dtr-details > li {
  border-color: var(--border) !important;
}
.table-bordered > tbody > tr > td,
.table-bordered > tbody > tr > th,
.table-bordered > tfoot > tr > td,
.table-bordered > tfoot > tr > th,
.table-bordered > thead > tr > td,
.table-bordered > thead > tr > th {
  border: 1px solid var(--border) !important;
  color: var(--text-secondary) !important;
}

.dataTables_wrapper .dataTables_paginate .paginate_button {
  background: var(--surface) !important;
  border-color: var(--border) !important;
}
.dataTables_wrapper .dataTables_paginate .paginate_button a {
  color: var(--text-secondary) !important;
}
.dataTables_wrapper .dataTables_paginate .paginate_button.active a {
  background: rgba(255,255,255,0.1) !important;
  color: var(--text) !important;
  border-color: var(--border) !important;
}
.dataTables_wrapper .dataTables_paginate .paginate_button .page-link:hover {
  background-color: var(--surface-hover) !important;
}
.dataTables_info { color: var(--text-muted) !important; }

.datatable-search,
.custom-filter-search {
  background-color: rgba(255,255,255,0.04) !important;
  border-color: var(--border) !important;
  color: var(--text) !important;
}

.page-item.disabled .page-link {
  background: var(--surface) !important;
  color: var(--text-muted) !important;
  border-color: var(--border) !important;
}

td.option a {
  background: var(--surface) !important;
  color: var(--text-secondary) !important;
  border-color: var(--border) !important;
}
td.option a:hover { color: var(--text) !important; }
td.dropdown-option button:hover {
  background: var(--surface-hover) !important;
  border-color: var(--border) !important;
}
.td-checkbox { background: var(--surface) !important; }
.td-checkbox a { background: var(--surface-hover) !important; }

.dtr-details .edit:not(.dropdown-item),
.dtr-details .delete:not(.dropdown-item) {
  background: var(--surface) !important;
  color: var(--text-secondary) !important;
  border-color: var(--border) !important;
}

table.header-style { color: var(--text) !important; }

/* ── Dropzone ── */
.dropzone { background: var(--surface) !important; border-color: var(--border) !important; }
.post-dropzone { background: var(--surface) !important; }

/* ── Summernote Editor ── */
.note-editor,
.note-editor .note-toolbar,
.note-editor .note-statusbar .note-resizebar,
.note-editor .note-toolbar .btn {
  border-color: var(--border) !important;
}
.note-editor.fullscreen { background: var(--bg) !important; }
.note-editor .dropdown-menu { color: var(--text-secondary) !important; }
.note-editor .note-palette .note-palette-title { border-color: var(--border) !important; }
.note-editor table tbody td,
.note-editor table tbody tr {
  color: var(--text-secondary) !important;
  border-color: var(--border) !important;
}
.note-editor.note-frame,
.note-editor.note-airframe { border-color: var(--border) !important; }
.note-editor.note-frame .note-btn,
.note-editor.note-airframe .note-btn {
  border-color: var(--border) !important;
  background-color: var(--surface) !important;
}
.note-editor.note-frame .note-btn:hover,
.note-editor.note-airframe .note-btn:hover {
  background-color: var(--surface-hover) !important;
}
.note-editor.note-frame .note-statusbar,
.note-editor.note-airframe .note-statusbar { border-color: var(--border) !important; }
.note-background { background-color: var(--surface) !important; }

/* ── TinyMCE Editor ── */
.tox { border-color: var(--border) !important; }
.tox .tox-tbtn:not(.tox-tbtn--bespoke) {
  background: var(--surface) !important;
}
.tox .tox-tbtn:not(.tox-tbtn--bespoke) svg { fill: var(--text-muted) !important; }
.tox .tox-tbtn:not(.tox-tbtn--bespoke).tox-tbtn--enabled { background: var(--surface-hover) !important; }
.tox .tox-menu { background-color: rgba(15,15,18,0.97) !important; }
.tox .tox-menu .tox-collection__item { color: var(--text-secondary) !important; }
.tox:not(.tox-tinymce-inline) .tox-editor-header {
  background-color: var(--surface) !important;
  border-bottom: 1px solid var(--border) !important;
}
.tox .tox-toolbar,
.tox .tox-toolbar-overflow,
.tox .tox-toolbar-primary { background-color: var(--surface) !important; }
.tox .tox-statusbar {
  background-color: var(--surface) !important;
  border-top-color: var(--border) !important;
}
.tox .tox-statusbar .tox-statusbar__wordcount,
.tox .tox-statusbar .tox-statusbar__path-item { color: var(--text-muted) !important; }
.tox .tox-edit-area__iframe {
  background-color: var(--surface) !important;
  border-color: var(--border) !important;
}

/* ── FullCalendar — Comprehensive Dark Theme ── */
/* Toolbar buttons */
.fc-button {
  background: var(--surface) !important;
  border-color: var(--border) !important;
  color: var(--text-secondary) !important;
  font-size: 13px !important;
  transition: all 0.15s ease;
}
.fc-button:hover {
  background: var(--surface-hover) !important;
  color: var(--text) !important;
}
.fc-button:focus { box-shadow: 0 0 0 2px rgba(255,255,255,0.06) !important; }
.fc-button-group .fc-button-primary,
.fc-toolbar-chunk .fc-button-primary {
  color: var(--text-secondary) !important;
  border-color: var(--border) !important;
}
.fc-button-primary.fc-button-active,
.fc-button-primary:active {
  background: rgba(255,255,255,0.1) !important;
  color: var(--text) !important;
  border-color: var(--border-hover) !important;
}
/* Toolbar title */
.fc-toolbar-title {
  color: var(--text) !important;
  font-weight: 600 !important;
  letter-spacing: -0.02em;
}
/* Grid borders */
.fc-theme-standard td,
.fc-theme-standard th { border-color: var(--border) !important; }
.fc-theme-standard .fc-scrollgrid { border-color: var(--border) !important; }
/* Column headers (Mon, Tue, etc.) */
.fc-theme-standard .fc-scrollgrid .fc-col-header .fc-day .fc-scrollgrid-sync-inner {
  background-color: var(--surface) !important;
}
.fc .fc-col-header-cell-cushion {
  color: var(--text-muted) !important;
  font-size: 12px !important;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  font-weight: 500 !important;
}
/* Day cells */
.fc .fc-daygrid-day { background: transparent !important; }
.fc .fc-daygrid-day:hover { background: var(--surface) !important; }
.fc .fc-daygrid-day.fc-day-today { background: rgba(255,255,255,0.04) !important; }
.fc .fc-daygrid-day-number {
  color: var(--text-secondary) !important;
  font-size: 13px !important;
  font-weight: 500 !important;
}
.fc .fc-day-today .fc-daygrid-day-number {
  color: var(--text) !important;
  font-weight: 600 !important;
}
.fc .fc-daygrid-day.fc-day-other { background: rgba(0,0,0,0.15) !important; }
.fc .fc-daygrid-day.fc-day-other .fc-daygrid-day-number { color: var(--text-muted) !important; }
/* Time grid */
.fc .fc-timegrid-slot { border-color: var(--border) !important; }
.fc .fc-timegrid-slot-label-cushion { color: var(--text-muted) !important; font-size: 11px !important; }
.fc .fc-timegrid-axis-cushion { color: var(--text-muted) !important; }
.fc .fc-timegrid-now-indicator-line { border-color: var(--mz-danger) !important; }
.fc .fc-timegrid-now-indicator-arrow { border-color: var(--mz-danger) !important; }
/* List view */
.fc-theme-standard .fc-list { border-color: var(--border) !important; }
.fc-theme-standard .fc-list-day-cushion {
  background-color: var(--surface) !important;
  color: var(--text-secondary) !important;
}
.fc .fc-list-day-text,
.fc .fc-list-day-side-text { color: var(--text-secondary) !important; }
.fc .fc-list-event-title a { color: var(--text) !important; }
.fc .fc-list-event-time { color: var(--text-muted) !important; }
.fc-theme-standard .fc-list-event:hover td,
.fc .fc-list-event:hover td { background-color: var(--surface-hover) !important; }
/* Event pills */
.fc-event { border-radius: 4px !important; }
.fc .fc-daygrid-event { font-size: 12px !important; }
/* More link */
.fc .fc-daygrid-more-link {
  color: var(--text-muted) !important;
  font-size: 11px !important;
}
.fc .fc-daygrid-more-link:hover { color: var(--text) !important; }
/* Popover (more events) */
.fc .fc-popover {
  background: rgba(15,15,18,0.97) !important;
  border: 1px solid var(--border) !important;
  border-radius: var(--radius-sm) !important;
  box-shadow: 0 8px 32px rgba(0,0,0,0.5) !important;
  backdrop-filter: blur(20px) !important;
  -webkit-backdrop-filter: blur(20px) !important;
}
.fc .fc-popover-header {
  background: rgba(255,255,255,0.04) !important;
  color: var(--text-secondary) !important;
  border-bottom: 1px solid var(--border) !important;
}
.fc .fc-popover-body { background: transparent !important; }

/* ── Gantt Chart ── */
.gantt .grid-header { fill: var(--surface) !important; stroke: var(--border) !important; }
.gantt .lower-text, .gantt .upper-text { fill: var(--text-secondary) !important; }
.gantt .grid-row { fill: var(--surface) !important; }
.gantt .bar-label.big { fill: var(--text) !important; }
.gantt .tick { stroke: var(--border) !important; }
.gantt .row-line { stroke: var(--border) !important; }
.gantt .today-highlight { fill: rgba(255,255,255,0.04) !important; }

/* ── Awesomplete ── */
.awesomplete ul {
  background: rgba(15,15,18,0.97) !important;
  border-color: var(--border) !important;
}
.awesomplete ul:before { background-color: rgba(15,15,18,0.97) !important; }
.awesomplete ul li { color: var(--text-secondary) !important; }
.awesomplete ul li[aria-selected=true] {
  background: rgba(255,255,255,0.1) !important;
  color: var(--text) !important;
}
.awesomplete ul li[aria-selected=false]:hover {
  background: var(--surface-hover) !important;
}

/* ── Atwho ── */
.atwho-view .cur,
.note-hint-group .active,
.note-hint-item:hover { background-color: var(--surface-hover) !important; }

/* ── Sticky Notes ── */
.sticky-note {
  background-color: var(--surface) !important;
  color: var(--text) !important;
}
.notepad { background: var(--surface) !important; }

/* ── Chart Circle ── */
.chart-circle { background: var(--surface) !important; }

/* ── Help Search ── */
.help-search-box {
  background-color: var(--surface) !important;
  border-color: var(--border) !important;
  color: var(--text) !important;
}
.help-search-box:focus { background-color: var(--surface-hover) !important; }
.help-category-box:hover { background: var(--surface-hover) !important; }

/* ── App Popover ── */
.app-popover { background: rgba(15,15,18,0.97) !important; }
.app-popover .app-popover-arrow { background: rgba(15,15,18,0.97) !important; }
.app-popover .list-group-item.active {
  background: rgba(255,255,255,0.12) !important;
  color: #FFF !important;
}

/* ── Badges — Additional ── */
.rounded-pill.badge-default,
.badge.badge-default {
  background-color: var(--surface) !important;
  color: var(--text-secondary) !important;
  border: 1px solid var(--border) !important;
}
.rounded-pill.bg-transparent,
.badge.bg-transparent {
  border-color: var(--border) !important;
  color: var(--text-secondary) !important;
}
.rounded-pill.bg-primary,
.badge.bg-primary { color: var(--text) !important; }

/* ── Checkbox ── */
.checkbox-blank:hover { background-color: var(--surface-hover) !important; }
.sub-task-icon { background-color: var(--surface) !important; }
.circle-done { color: var(--text) !important; }

/* ── Selection Handler ── */
.selection-handler-dropdown-btn.active {
  background-color: rgba(255,255,255,0.12) !important;
  color: #FFF !important;
}

/* ── Filters ── */
.filter-form { border-color: var(--border) !important; }
.filter-section-container .select2-choice,
.datatable-tools .select2-choice {
  background: var(--surface) !important;
  border-color: var(--border) !important;
  color: var(--text-secondary) !important;
}
.filter-multi-select .dropdown-toggle,
.dynamic-range-filter .dropdown-toggle {
  border-color: var(--border) !important;
  color: var(--text-secondary) !important;
}
.filter-multi-select .dropdown-toggle:hover,
.dynamic-range-filter .dropdown-toggle:hover {
  background: var(--surface-hover) !important;
}
.custom-date-range-dropdown .dropdown-toggle { border-color: var(--border) !important; }
.custom-date-range-lable { border-color: var(--border) !important; }

/* ── Custom Toolbar ── */
.custom-toolbar .select2-container .select2-choice {
  background-color: var(--surface) !important;
  border-color: var(--border) !important;
}
.custom-toolbar .dropdown-toggle { background-color: var(--surface) !important; }
.DTTT_container .btn:hover { border-color: var(--border) !important; }

/* ── File Manager ── */
.folder-item-content:hover { background: var(--surface-hover) !important; }
.folder-item-content.focus { background: var(--surface-hover) !important; }
.selected-folder-item { background: var(--surface-hover) !important; }
.file-list-view {
  background: var(--surface) !important;
  border-color: var(--border) !important;
  color: var(--text-secondary) !important;
}
.action-option {
  background-color: var(--surface) !important;
  border-color: var(--border) !important;
}

/* ── Invoice Preview ── */
.invoice-preview-container { background-color: #FFF !important; }
.invoice-preview-container table.header-style { color: #444 !important; }
.invoice-payment-amount-section { background-color: var(--surface) !important; }

/* ── Footer ── */
.footer {
  background: var(--surface) !important;
  border-color: var(--border) !important;
}

/* ── Popover ── */
.popover-body {
  background-color: transparent !important;
  color: var(--text-secondary) !important;
}

/* ── Public Navbar ── */
.public-navbar { border-color: var(--border) !important; }
.public-navbar .navbar-collapse { border-color: var(--border) !important; }

/* ── Social Links ── */
.social-link {
  border-color: var(--border) !important;
  color: var(--text-secondary) !important;
}
.social-link:hover {
  background-color: rgba(255,255,255,0.1) !important;
  border-color: rgba(255,255,255,0.15) !important;
  color: var(--text) !important;
}

/* ── Misc ── */
#generate_password { background-color: var(--surface) !important; }
i.online { border-color: var(--surface) !important; }
.highlight-toolbar { background-color: var(--surface) !important; }
.estimate_request_form.list-group-item { border: 1px solid var(--border) !important; }
input[type=color] { border-color: var(--border) !important; background-color: var(--surface) !important; }
.dashed-row .form-group { border-bottom: 1px dashed var(--border); }
.dashed-row .bd { border-bottom: 1px dotted var(--border); }
.permission-list li { border-color: var(--border) !important; }
.active-team-members-list .message-row { border-color: var(--border) !important; }
blockquote { background: var(--surface) !important; }
.box-title span { background: var(--surface) !important; }
.box-title:after { background-color: var(--border) !important; }
#profile-image-section { color: var(--text-secondary) !important; }
.support-type-label { border-color: var(--border) !important; }
.notes-grid-container .note-grid-card.card-body { background-color: transparent !important; }
.condition-field-expected_value_1:not(.empty-input-tag, .single-input-tag) {
  border: 1px dashed var(--border);
  background-color: var(--surface) !important;
}
.empty-input-tag { background-color: var(--surface) !important; }
#left-menu-topbar-button-container .nav-link { color: var(--text) !important; }

/* ── Mobile Overrides ── */
@media (max-width: 500px) {
  .sidebar .sidebar-toggle-btn { color: var(--text) !important; }
  #client-summary .box .box-content { border-color: var(--border) !important; }
}

/* ── Expense Tabs ── */
#expense-tabs.nav-pills { background-color: var(--surface) !important; }

/* ── Settings Configurator ── */
.mz-settings-card {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 24px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  transition: var(--transition);
  text-decoration: none !important;
  height: 100%;
}
.mz-settings-card:hover {
  border-color: var(--border-hover);
  background: var(--surface-hover);
}
.mz-settings-card-icon {
  width: 44px;
  height: 44px;
  border-radius: var(--radius-sm);
  background: rgba(255,255,255,0.06);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--text-secondary);
  margin-bottom: 8px;
}
.mz-settings-card h5 {
  font-size: 15px;
  font-weight: 600;
  color: var(--text) !important;
  margin: 0;
}
.mz-settings-card p {
  font-size: 12px;
  color: var(--text-muted) !important;
  margin: 0;
  line-height: 1.4;
}

/* Settings Sidebar */
.mz-settings-sidebar {
  position: sticky;
  top: 80px;
}
.mz-settings-back {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 12px;
  margin-bottom: 16px;
  color: var(--text-secondary) !important;
  font-size: 13px;
  font-weight: 500;
  border-radius: var(--radius-sm);
  transition: var(--transition);
  text-decoration: none !important;
}
.mz-settings-back:hover {
  background: var(--surface-hover);
  color: var(--text) !important;
}
.mz-settings-group-label {
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--text-muted);
  padding: 8px 12px 4px;
}
.mz-settings-nav li a {
  display: block;
  padding: 6px 12px;
  color: var(--text-secondary) !important;
  font-size: 13px;
  border-radius: var(--radius-sm);
  transition: var(--transition);
  text-decoration: none !important;
}
.mz-settings-nav li a:hover {
  background: var(--surface-hover);
  color: var(--text) !important;
}
.mz-settings-nav li a.active {
  background: rgba(255,255,255,0.06);
  color: var(--text) !important;
  font-weight: 500;
}
.mz-settings-nav-collapsed li a {
  color: var(--text-muted) !important;
  font-size: 12px;
  padding: 4px 12px;
}

/* Settings Search */
.mz-settings-search-wrapper {
  width: 260px;
}
.mz-settings-result-list a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 16px;
  border-bottom: 1px solid var(--border);
  color: var(--text-secondary) !important;
  text-decoration: none !important;
  transition: var(--transition);
}
.mz-settings-result-list a:hover {
  background: var(--surface-hover);
  color: var(--text) !important;
}
.mz-result-name {
  font-size: 13px;
  font-weight: 500;
  color: var(--text);
}
.mz-result-group {
  font-size: 11px;
  color: var(--text-muted);
}

/* ═══════════════════════════════════════
   Settings Inner Pages — Glass Treatment
   Scoped via :has(.mz-settings-sidebar)
   ═══════════════════════════════════════ */

/* --- Main content card → glass --- */
#page-content:has(.mz-settings-sidebar) > .row > .col-sm-9 > .card,
#page-content:has(.mz-settings-sidebar) > .row > [class*="col-lg-10"] > .card,
#page-content:has(.mz-settings-sidebar) > .row > .col-sm-9 > form > .card,
#page-content:has(.mz-settings-sidebar) > .row > [class*="col-lg-10"] > form > .card {
  background: var(--surface) !important;
  border: 1px solid var(--border) !important;
  border-radius: var(--radius) !important;
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  box-shadow: 0 4px 32px rgba(0,0,0,0.25);
  overflow: hidden;
}

/* Subtle top-light gradient (mimics mz-glass::before) */
#page-content:has(.mz-settings-sidebar) > .row > .col-sm-9 > .card::before,
#page-content:has(.mz-settings-sidebar) > .row > [class*="col-lg-10"] > .card::before,
#page-content:has(.mz-settings-sidebar) > .row > .col-sm-9 > form > .card::before,
#page-content:has(.mz-settings-sidebar) > .row > [class*="col-lg-10"] > form > .card::before {
  content: '';
  position: absolute;
  top: 0;
  left: 24px;
  right: 24px;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,0.08), transparent);
  pointer-events: none;
  z-index: 1;
}

/* --- Card header --- */
#page-content:has(.mz-settings-sidebar) .card-header {
  background: transparent !important;
  border-bottom: 1px solid var(--border) !important;
  padding: 20px 24px !important;
}
#page-content:has(.mz-settings-sidebar) .card-header h4 {
  color: var(--text) !important;
  font-size: 16px !important;
  font-weight: 600 !important;
  margin: 0 !important;
  letter-spacing: -0.01em;
}
#page-content:has(.mz-settings-sidebar) .card-header > div {
  color: var(--text-muted) !important;
  font-size: 13px;
  margin-top: 4px;
}

/* --- Nav tabs (ajax-tab) → pill-style --- */
#page-content:has(.mz-settings-sidebar) .nav-tabs {
  background: transparent !important;
  border-bottom: 1px solid var(--border) !important;
  padding: 0 16px !important;
  gap: 0;
}
#page-content:has(.mz-settings-sidebar) .nav-tabs > li > a {
  color: var(--text-muted) !important;
  border: none !important;
  border-bottom: 2px solid transparent !important;
  border-radius: 0 !important;
  padding: 12px 16px !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  background: transparent !important;
  transition: color var(--transition), border-color var(--transition);
  white-space: nowrap;
}
#page-content:has(.mz-settings-sidebar) .nav-tabs > li > a:hover {
  color: var(--text-secondary) !important;
  background: transparent !important;
  border-bottom-color: rgba(255,255,255,0.10) !important;
}
#page-content:has(.mz-settings-sidebar) .nav-tabs > li > a.active,
#page-content:has(.mz-settings-sidebar) .nav-tabs > li.active > a {
  color: var(--text) !important;
  background: transparent !important;
  border-bottom-color: var(--text) !important;
  box-shadow: none !important;
}
/* Title tab (invoice settings etc.) */
#page-content:has(.mz-settings-sidebar) .nav-tabs .title-tab h4 {
  color: var(--text) !important;
  font-size: 15px !important;
  font-weight: 600 !important;
}

/* --- Card body --- */
#page-content:has(.mz-settings-sidebar) .card-body {
  padding: 24px !important;
  background: transparent !important;
}

/* --- Card footer --- */
#page-content:has(.mz-settings-sidebar) .card-footer {
  background: rgba(255,255,255,0.015) !important;
  border-top: 1px solid var(--border) !important;
  padding: 16px 24px !important;
}

/* --- Dashed row form separator --- */
#page-content:has(.mz-settings-sidebar) .dashed-row .form-group {
  border-bottom-color: var(--border) !important;
  padding-bottom: 16px;
  margin-bottom: 16px;
}

/* --- Form labels --- */
#page-content:has(.mz-settings-sidebar) .form-group label,
#page-content:has(.mz-settings-sidebar) .form-group .col-form-label {
  color: var(--text-secondary) !important;
  font-size: 13px !important;
  font-weight: 500;
}

/* --- Form controls --- */
#page-content:has(.mz-settings-sidebar) .form-control {
  background: rgba(255,255,255,0.04) !important;
  border: 1px solid var(--border) !important;
  color: var(--text) !important;
  border-radius: var(--radius-sm) !important;
  font-size: 13px !important;
  transition: border-color var(--transition), box-shadow var(--transition);
}
#page-content:has(.mz-settings-sidebar) .form-control:focus {
  border-color: var(--border-focus) !important;
  box-shadow: 0 0 0 3px rgba(255,255,255,0.04) !important;
  background: rgba(255,255,255,0.06) !important;
}
#page-content:has(.mz-settings-sidebar) .form-control::placeholder {
  color: var(--text-muted) !important;
}

/* --- Select2 in settings --- */
#page-content:has(.mz-settings-sidebar) .select2-container--default .select2-selection--single {
  background: rgba(255,255,255,0.04) !important;
  border: 1px solid var(--border) !important;
  border-radius: var(--radius-sm) !important;
}
#page-content:has(.mz-settings-sidebar) .select2-container--default .select2-selection--single .select2-selection__rendered {
  color: var(--text) !important;
  font-size: 13px;
}

/* --- Switches / checkboxes --- */
#page-content:has(.mz-settings-sidebar) .form-check-input {
  background-color: rgba(255,255,255,0.08) !important;
  border-color: var(--border-hover) !important;
}
#page-content:has(.mz-settings-sidebar) .form-check-input:checked {
  background-color: var(--mz-accent) !important;
  border-color: var(--mz-accent) !important;
}

/* --- Help text / muted descriptions --- */
#page-content:has(.mz-settings-sidebar) .form-text,
#page-content:has(.mz-settings-sidebar) small.text-muted {
  color: var(--text-muted) !important;
  font-size: 12px !important;
}

/* --- Upload buttons --- */
#page-content:has(.mz-settings-sidebar) .btn-default,
#page-content:has(.mz-settings-sidebar) .file-upload.btn {
  background: rgba(255,255,255,0.06) !important;
  border: 1px solid var(--border) !important;
  color: var(--text-secondary) !important;
  border-radius: var(--radius-sm) !important;
  font-size: 12px !important;
}
#page-content:has(.mz-settings-sidebar) .btn-default:hover,
#page-content:has(.mz-settings-sidebar) .file-upload.btn:hover {
  background: rgba(255,255,255,0.10) !important;
  color: var(--text) !important;
}

/* --- Save button (primary) → accent glass --- */
#page-content:has(.mz-settings-sidebar) .card-footer .btn-primary {
  background: rgba(255,255,255,0.08) !important;
  border: 1px solid rgba(255,255,255,0.12) !important;
  color: var(--text) !important;
  border-radius: var(--radius-sm) !important;
  font-weight: 600;
  font-size: 13px;
  padding: 8px 24px;
  transition: all var(--transition);
}
#page-content:has(.mz-settings-sidebar) .card-footer .btn-primary:hover {
  background: rgba(255,255,255,0.14) !important;
  border-color: rgba(255,255,255,0.20) !important;
  box-shadow: 0 0 20px rgba(255,255,255,0.05);
}

/* --- Highlight toolbar (section labels like in modules.php) --- */
#page-content:has(.mz-settings-sidebar) .highlight-toolbar {
  color: var(--text) !important;
  font-size: 13px;
  letter-spacing: 0.02em;
}

/* --- Module cards inside modules.php --- */
#page-content:has(.mz-settings-sidebar) .card .card {
  background: rgba(255,255,255,0.02) !important;
  border: 1px solid var(--border) !important;
  border-radius: var(--radius-sm) !important;
}
#page-content:has(.mz-settings-sidebar) .card .card .card-body {
  padding: 16px !important;
}
#page-content:has(.mz-settings-sidebar) .card .card label {
  color: var(--text-secondary) !important;
}

/* --- Table inside settings (notifications, IP restriction, etc.) --- */
#page-content:has(.mz-settings-sidebar) .table {
  color: var(--text) !important;
}
#page-content:has(.mz-settings-sidebar) .table thead th {
  background: rgba(255,255,255,0.03) !important;
  border-bottom-color: var(--border) !important;
  color: var(--text-muted) !important;
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
#page-content:has(.mz-settings-sidebar) .table td {
  border-color: var(--border) !important;
  color: var(--text-secondary) !important;
  font-size: 13px;
}

/* --- Pre / code blocks in settings --- */
#page-content:has(.mz-settings-sidebar) pre {
  background: rgba(0,0,0,0.3) !important;
  border: 1px solid var(--border) !important;
  border-radius: var(--radius-sm) !important;
  color: var(--text-secondary) !important;
  padding: 12px 16px;
  font-size: 12px;
}

/* --- Integration card images (Slack, Google, etc.) --- */
#page-content:has(.mz-settings-sidebar) .card img {
  border-radius: var(--radius-xs);
}


/* ═══════════════════════════════════════
   MOBILE APP — Bottom Tab Navigator
   ═══════════════════════════════════════ */

.mz-tab-bar {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 1050;
  background: rgba(9, 9, 11, 0.92);
  border-top: 1px solid rgba(255, 255, 255, 0.06);
  backdrop-filter: blur(24px) saturate(180%);
  -webkit-backdrop-filter: blur(24px) saturate(180%);
  padding-bottom: env(safe-area-inset-bottom, 0px);
}

.mz-tab-bar-inner {
  display: flex;
  justify-content: space-around;
  align-items: center;
  height: 56px;
  max-width: 420px;
  margin: 0 auto;
  padding: 0 8px;
}

.mz-tab-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 3px;
  flex: 1;
  padding: 6px 0;
  text-decoration: none !important;
  -webkit-tap-highlight-color: transparent;
  position: relative;
  transition: all 0.2s ease;
}

.mz-tab-icon {
  width: 22px;
  height: 22px;
  color: rgba(255, 255, 255, 0.30);
  transition: all 0.2s ease;
}

.mz-tab-label {
  font-size: 10px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.30);
  letter-spacing: 0.02em;
  transition: all 0.2s ease;
  line-height: 1;
}

.mz-tab-item.active .mz-tab-icon {
  color: rgba(255, 255, 255, 0.95);
}

.mz-tab-item.active .mz-tab-label {
  color: rgba(255, 255, 255, 0.95);
  font-weight: 600;
}

.mz-tab-item.active::before {
  content: '';
  position: absolute;
  top: 2px;
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.9);
}

/* Mozart AI tab — premium white glow highlight */
.mz-tab-ai .mz-tab-icon {
  color: rgba(255, 255, 255, 0.95);
  filter: drop-shadow(0 0 6px rgba(255, 255, 255, 0.25)) drop-shadow(0 0 14px rgba(255, 255, 255, 0.10));
}
.mz-tab-ai .mz-tab-label {
  color: rgba(255, 255, 255, 0.95);
  font-weight: 600;
  text-shadow: 0 0 8px rgba(255, 255, 255, 0.15);
}
.mz-tab-ai::after {
  content: '';
  position: absolute;
  bottom: 6px;
  left: 50%;
  transform: translateX(-50%);
  width: 20px;
  height: 3px;
  border-radius: 2px;
  background: linear-gradient(90deg, rgba(255,255,255,0.4), rgba(255,255,255,0.7), rgba(255,255,255,0.4));
  box-shadow: 0 0 10px rgba(255,255,255,0.2), 0 0 20px rgba(255,255,255,0.08);
}
.mz-tab-ai:active .mz-tab-icon {
  filter: drop-shadow(0 0 10px rgba(255, 255, 255, 0.4)) drop-shadow(0 0 20px rgba(255, 255, 255, 0.15));
}
.mz-tab-icon-canvas {
  width: 24px;
  height: 24px;
  filter: drop-shadow(0 0 6px rgba(255, 255, 255, 0.25)) drop-shadow(0 0 14px rgba(255, 255, 255, 0.10));
}
.mz-tab-ai:active .mz-tab-icon-canvas {
  filter: drop-shadow(0 0 10px rgba(255, 255, 255, 0.4)) drop-shadow(0 0 20px rgba(255, 255, 255, 0.15));
}

.mz-tab-badge {
  position: absolute;
  top: 4px;
  right: 50%;
  transform: translateX(14px);
  min-width: 16px;
  height: 16px;
  border-radius: 8px;
  background: var(--mz-danger);
  color: #fff;
  font-size: 9px;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0 4px;
  line-height: 1;
}

.mz-tab-item:active {
  transform: scale(0.92);
}

.mz-tab-item:active .mz-tab-icon {
  color: rgba(255, 255, 255, 0.6);
}

/* ═══════════════════════════════════════
   MOBILE APP — Layout Adjustments
   ═══════════════════════════════════════ */

@media (max-width: 768px) {
  /* Hide floating pill topbar — tab bar replaces navigation */
  .mz-nav-pill {
    display: none !important;
  }

  .mz-sidebar-toggle {
    display: none !important;
  }

  /* Content spacing for mobile: header top + tab bar bottom */
  .page-container {
    padding-top: calc(52px + env(safe-area-inset-top, 0px)) !important;
    padding-bottom: 0 !important;
  }

  .scrollable-page {
    padding-top: 0 !important;
    padding-bottom: calc(72px + env(safe-area-inset-bottom, 0px)) !important;
  }

  /* Sidebar: fullscreen overlay on mobile, properly hidden off-screen */
  .sidebar {
    z-index: 1060 !important;
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    width: 280px !important;
    height: 100vh !important;
    transform: translateX(-100%) !important;
    transition: transform 0.3s cubic-bezier(.4,0,.2,1) !important;
  }

  /* When sidebar is opened via JS */
  .sidebar.mz-sidebar-open {
    transform: translateX(0) !important;
  }

  /* Main content: no left margin on mobile */
  .main-content {
    margin-left: 0 !important;
    width: 100% !important;
  }
}

/* Sidebar backdrop (real element, not pseudo) */
.mz-sidebar-backdrop {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 1059;
  background: rgba(0,0,0,0.6);
  opacity: 0;
  transition: opacity 0.3s ease;
  -webkit-tap-highlight-color: transparent;
}
.mz-sidebar-backdrop.active {
  display: block;
  opacity: 1;
}


/* ═══════════════════════════════════════════════════════════════
   NUCLEAR OVERRIDES — Kill ALL remaining white/light backgrounds
   from app.all.css & custom-style.css. Each rule targets a
   specific selector found in the legacy CSS audit.
   ═══════════════════════════════════════════════════════════════ */

/* ── 1. Page / Body / Root backgrounds ── */
html, body {
  background-color: var(--bg) !important;
  background: var(--bg) !important;
}

/* ── 1b. ALL intermediate containers MUST be transparent
   so #mz-ambient gradient shows through to cards ── */
.page-container,
.overflow-auto.page-container,
.scrollable-page,
.scrollable-page.main-scrollable-page,
#left-menu-toggle-mask,
.page-body, .main-content, #page-body,
.app-wrapper, .content-wrapper,
.page-wrapper,
#page-content,
.default-bg {
  background: transparent !important;
  background-color: transparent !important;
}

/* ── 2. Card & Panel — glassmorphic with visible ambient ── */
.card {
  background: rgba(255,255,255,0.025) !important;
  border: 1px solid var(--border) !important;
  border-radius: var(--radius) !important;
  backdrop-filter: blur(16px) !important;
  -webkit-backdrop-filter: blur(16px) !important;
  box-shadow: 0 4px 24px rgba(0,0,0,0.3), 0 0 0 1px rgba(255,255,255,0.03) !important;
  position: relative;
}
.card::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,0.08), transparent);
  pointer-events: none;
  z-index: 1;
}
.card-header,
.card .card-header,
.bg-white .card-header {
  background: transparent !important;
  background-color: transparent !important;
  border-bottom: 1px solid var(--border) !important;
  color: var(--text) !important;
}
.card-body,
.card .card-body {
  background: transparent !important;
  background-color: transparent !important;
  color: var(--text-secondary) !important;
}
.card-footer,
.card .card-footer {
  background: transparent !important;
  background-color: transparent !important;
  border-top: 1px solid var(--border) !important;
}
.panel, .panel-body, .box, .widget,
.dashboard-icon-widget,
.widget-container, .card-widget,
.stat-widget, .info-box {
  background: var(--surface) !important;
  background-color: var(--surface) !important;
  border-color: var(--border) !important;
}

/* ── 2b. Module page composition — floating card feel ── */
.page-wrapper {
  padding: 20px 24px !important;
}
.page-wrapper > .card,
.page-wrapper > .card:only-child {
  border-radius: var(--radius) !important;
  overflow: hidden;
}
/* Tab nav above card — integrate into glass composition */
.page-wrapper > .nav-tabs {
  background: rgba(255,255,255,0.02) !important;
  border: 1px solid var(--border) !important;
  border-bottom: none !important;
  border-radius: var(--radius) var(--radius) 0 0 !important;
  padding: 4px 12px 0 !important;
  backdrop-filter: blur(16px) !important;
  -webkit-backdrop-filter: blur(16px) !important;
  position: relative;
}
.page-wrapper > .nav-tabs::before {
  content: '';
  position: absolute;
  top: 0; left: 24px; right: 24px;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,0.08), transparent);
  pointer-events: none;
}
.page-wrapper > .nav-tabs + .card {
  border-top-left-radius: 0 !important;
  border-top-right-radius: 0 !important;
}
/* page-title bar inside cards */
.page-title {
  background: transparent !important;
  background-color: transparent !important;
  border-color: var(--border) !important;
}

/* ── 3. Navbar / Topbar — glassmorphic ── */
.navbar, .navbar-custom, .topbar, .top-bar,
.navbar-brand, header, .header,
nav.navbar, .navbar-wrapper, .app-header {
  background: rgba(9,9,11,0.85) !important;
  background-color: rgba(9,9,11,0.85) !important;
  border-color: var(--border) !important;
  backdrop-filter: blur(20px) !important;
  -webkit-backdrop-filter: blur(20px) !important;
}

/* ── 4. Sidebar — full dark ── */
.sidebar, .sidebar-brand, .sidebar-scroll,
#sidebar, .left-sidebar, nav.sidebar {
  background: var(--bg) !important;
  background-color: var(--bg) !important;
}
.sidebar-brand {
  background: var(--bg) !important;
  background-color: var(--bg) !important;
}
.sidebar-toggled .sidebar-menu li ul {
  background-color: var(--bg) !important;
}
.sidebar-menu li a:active,
.sidebar-menu li a:hover,
.sidebar-menu li a:focus {
  background-color: var(--surface-hover) !important;
}

/* ── 5. DataTable — COMPLETE nuclear override ── */
/* Stripe variant */
table.dataTable.stripe tbody tr.odd,
table.dataTable.stripe tbody tr.odd > td {
  background-color: rgba(255,255,255,0.015) !important;
}
table.dataTable.stripe tbody tr.even,
table.dataTable.stripe tbody tr.even > td {
  background-color: transparent !important;
}

/* Row-border variant */
table.dataTable.row-border tbody th,
table.dataTable.row-border tbody td {
  border-color: var(--border) !important;
  background-color: transparent !important;
}

/* Display variant */
table.dataTable.display tbody th,
table.dataTable.display tbody td {
  border-top: 1px solid var(--border) !important;
  background-color: transparent !important;
  color: var(--text-secondary) !important;
}
table.dataTable.display tfoot th,
table.dataTable.display tfoot td {
  border-top: 1px solid var(--border) !important;
  background-color: var(--surface) !important;
}

/* Hover states — override #f9f9f9 from app.all.css */
.dataTable:not(.js-selection-mode) td:hover {
  background: var(--surface-hover) !important;
}
.dataTable:not(.js-selection-mode) tbody tr:hover td {
  background: var(--surface-hover) !important;
}
.dataTable:not(.js-selection-mode) tbody tr.active td {
  background: var(--surface-active) !important;
  color: var(--text) !important;
}
.dataTable:not(.js-selection-mode) tbody tr.active .badge {
  background-color: rgba(255,255,255,0.15) !important;
}

/* Child/responsive rows */
table.dataTable.dtr-inline.collapsed tbody tr td.child {
  background: var(--surface) !important;
}
table.dataTable > tbody > tr.child ul.dtr-details > li {
  border-color: var(--border) !important;
}

/* DataTable wrapper */
.dataTables_wrapper {
  color: var(--text-secondary) !important;
}

/* DataTable toolbar */
.datatable-tools {
  background: transparent !important;
  background-color: transparent !important;
}
.compact-view-active .compact-view-left-panel .datatable-tools {
  background: transparent !important;
}

/* DataTable pagination — paginate_button override */
.dataTables_wrapper .dataTables_paginate .paginate_button {
  background: var(--surface) !important;
  border-color: var(--border) !important;
}
.dataTables_wrapper .dataTables_paginate .paginate_button a {
  color: var(--text-secondary) !important;
  background: transparent !important;
}
.dataTables_wrapper .dataTables_paginate .paginate_button.active a {
  background: rgba(255,255,255,0.12) !important;
  color: var(--text) !important;
  border-color: var(--border) !important;
}
.dataTables_wrapper .dataTables_paginate .paginate_button.disabled .page-link {
  background-color: transparent !important;
  color: var(--text-muted) !important;
}
.dataTables_wrapper .dataTables_paginate .paginate_button .page-link:hover {
  background-color: var(--surface-hover) !important;
  color: var(--text) !important;
}
.dataTables_wrapper .dataTables_paginate .pagination {
  gap: 4px;
}
.dataTables_wrapper .dataTables_paginate .paginate_button:not(:first-child):not(:last-child) a {
  color: var(--text-secondary) !important;
}

/* DataTable search focus */
.datatable-search:focus,
.custom-filter-search:focus {
  background-color: rgba(255,255,255,0.06) !important;
  border-color: var(--border-focus) !important;
  color: var(--text) !important;
}

/* DataTable export buttons */
.datatable-export a,
.datatable-export a:hover {
  background: var(--surface) !important;
  color: var(--text-secondary) !important;
  border-color: var(--border) !important;
}
.datatable-export a:hover {
  background: var(--surface-hover) !important;
  color: var(--text) !important;
}

/* DTTT buttons (export) */
button.DTTT_button,
div.DTTT_button,
a.DTTT_button,
a.DTTT_button:focus {
  background: var(--surface) !important;
  border-color: var(--border) !important;
  color: var(--text-secondary) !important;
}
a.DTTT_button:hover,
button.DTTT_button:hover {
  background: var(--surface-hover) !important;
  color: var(--text) !important;
}

/* DataTable empty state */
.dataTables_empty {
  color: var(--text-muted) !important;
  background: transparent !important;
}

/* DataTable info/length */
.dataTables_info {
  color: var(--text-muted) !important;
}
.dataTables_wrapper .dataTables_length label {
  color: var(--text-muted) !important;
}

/* Mini list pagination */
.dataTables_wrapper .datatable-tools .mini-list-pagination-container {
  border-top-color: var(--border) !important;
}

/* ── 6. Custom Toolbar — COMPLETE override ── */
.custom-toolbar {
  background: transparent !important;
}
.custom-toolbar .select2-container .select2-choice {
  background-color: var(--surface) !important;
  border-color: var(--border) !important;
  color: var(--text-secondary) !important;
}
.custom-toolbar .dropdown-toggle {
  background-color: var(--surface) !important;
  border-color: var(--border) !important;
  color: var(--text-secondary) !important;
}
.custom-toolbar .dropdown-toggle:hover {
  background-color: var(--surface-hover) !important;
}

/* ── 7. Forms — COMPLETE override (.general-form specifics) ── */
.general-form .form-control,
.general-form .form-control.white {
  background-color: rgba(255,255,255,0.04) !important;
  border-color: var(--border) !important;
  color: var(--text) !important;
}
.general-form .form-control:focus,
.general-form .form-control.white:focus {
  background-color: rgba(255,255,255,0.06) !important;
  border-color: var(--border-focus) !important;
  box-shadow: 0 0 0 3px rgba(255,255,255,0.04) !important;
}
.general-form .input-group-addon {
  background: var(--surface) !important;
  border-color: var(--border) !important;
  color: var(--text-muted) !important;
}
.input-group-text {
  background: var(--surface) !important;
  border-color: var(--border) !important;
  color: var(--text-muted) !important;
}

/* Select2 inside general-form & custom-toolbar */
.select2-container .select2-choice,
.select2-container .select2-choice .select2-search-field input {
  background: rgba(255,255,255,0.04) !important;
  color: var(--text) !important;
}
.select2-container-multi .select2-choices {
  background: rgba(255,255,255,0.04) !important;
  border-color: var(--border) !important;
}

/* Kanban form input */
.kanban-input .form-control {
  background-color: rgba(255,255,255,0.04) !important;
  border-color: var(--border) !important;
  color: var(--text) !important;
}

/* ── 8. Modals — neutralized (single authority in MODAL FORMS section) ── */
.custom-bg-modal.modal-dialog .modal-content,
.custom-bg-modal.modal-dialog {
  background: transparent !important;
  background-color: transparent !important;
  border: none !important;
  box-shadow: none !important;
}
.modal-header,
.modal-body,
.modal-footer {
  background: transparent !important;
  background-color: transparent !important;
  color: var(--text-secondary) !important;
}
.modal-header {
  border-bottom: 1px solid var(--border) !important;
}
.modal-header .modal-title {
  color: var(--text) !important;
  font-weight: 600;
}
.modal-header .btn-close,
.modal-header .close {
  filter: invert(1) !important;
  opacity: 0.5;
}
.modal-header .btn-close:hover,
.modal-header .close:hover {
  opacity: 1;
}
.modal-footer {
  border-top: 1px solid var(--border) !important;
}
.modal-backdrop.show {
  opacity: 0.75 !important;
  background: #000 !important;
}

/* Global search modal */
.global-search-modal .modal-content {
  border-radius: 20px !important;
}
.search-modal .select2-choice {
  background-color: var(--surface) !important;
  border-color: var(--border) !important;
  color: var(--text) !important;
}

/* ── 9. Buttons — .btn-default and button groups ── */
.btn-default {
  background-color: var(--surface) !important;
  border: 1px solid var(--border) !important;
  color: var(--text-secondary) !important;
}
.btn-default:hover,
.btn-default:focus {
  background-color: var(--surface-hover) !important;
  color: var(--text) !important;
}
.btn.active,
.btn.active:focus {
  background: var(--surface-active) !important;
  color: var(--text) !important;
}
.btn-group .btn {
  border-color: var(--border) !important;
}
.btn-group .btn:hover {
  background: var(--surface-hover) !important;
}
.btn-group .btn.active {
  background: var(--surface-active) !important;
  color: var(--text) !important;
}

/* ── 10. Dropdowns — reinforced ── */
.dropdown-menu,
.dropdown-menu-right,
ul.dropdown-menu {
  background: rgba(15,15,18,0.95) !important;
  background-color: rgba(15,15,18,0.95) !important;
  border: 1px solid var(--border) !important;
  backdrop-filter: blur(20px) !important;
  -webkit-backdrop-filter: blur(20px) !important;
  box-shadow: var(--shadow-lg) !important;
}
.dropdown-item,
.dropdown-menu li a {
  color: var(--text-secondary) !important;
}
.dropdown-item:hover,
.dropdown-item:focus,
.dropdown-menu li a:hover {
  background: rgba(255,255,255,0.06) !important;
  background-color: rgba(255,255,255,0.06) !important;
  color: var(--text) !important;
}

/* ── 11. Filter elements ── */
.filter-multi-select .list-group-item:not(.active):hover,
.dynamic-range-filter .list-group-item:not(.active):hover {
  background-color: var(--surface-hover) !important;
}
.filter-multi-select .list-group-item,
.dynamic-range-filter .list-group-item {
  background-color: transparent !important;
  border-color: var(--border) !important;
  color: var(--text-secondary) !important;
}
.filter-multi-select .dropdown-toggle,
.dynamic-range-filter .dropdown-toggle {
  background: var(--surface) !important;
  border-color: var(--border) !important;
  color: var(--text-secondary) !important;
}
.filter-section-container .select2-choice,
.datatable-tools .select2-choice,
.timesheet-chart-button .select2-choice,
.item-categories-filter-section .select2-choice,
.payment-received-chart .select2-choice {
  background: var(--surface) !important;
  border-color: var(--border) !important;
  color: var(--text-secondary) !important;
}

/* ── 12. Kanban boards ── */
.kanban-col-title {
  background: var(--surface) !important;
  color: var(--text) !important;
  border-color: var(--border) !important;
}
.kanban-col-footer {
  background: var(--surface) !important;
  border-color: var(--border) !important;
}
.kanban-item {
  background-color: var(--surface) !important;
  border: 1px solid var(--border) !important;
  color: var(--text-secondary) !important;
}
.kanban-item:hover,
.kanban-item:active,
.kanban-item:focus {
  background: var(--surface-hover) !important;
}

/* ── 13. Datepicker custom ── */
.datepicker-custom-selector {
  background: var(--surface) !important;
  border-color: var(--border) !important;
  color: var(--text) !important;
}
.calendar-image-preview {
  background: var(--surface) !important;
}

/* ── 14. Popover / App-Popover ── */
.app-popover {
  background: rgba(15,15,18,0.97) !important;
  border: 1px solid var(--border) !important;
  backdrop-filter: blur(20px) !important;
  -webkit-backdrop-filter: blur(20px) !important;
  box-shadow: var(--shadow-lg) !important;
}
.app-popover:before,
.app-popover .app-popover-arrow,
.app-popover::before {
  background-color: rgba(15,15,18,0.97) !important;
}

/* ── 15. Awesomplete / Autocomplete ── */
.awesomplete > ul,
.awesomplete ul {
  background: rgba(15,15,18,0.97) !important;
  border-color: var(--border) !important;
  box-shadow: var(--shadow-lg) !important;
}
.awesomplete ul li {
  color: var(--text-secondary) !important;
}
.awesomplete ul li[aria-selected=true],
.awesomplete ul li:hover,
.awesomplete ul li[aria-selected=false]:hover {
  background: var(--surface-hover) !important;
  color: var(--text) !important;
}

/* ── 16. Dropzone / Post upload ── */
.post-dropzone {
  background: var(--surface) !important;
  border-color: var(--border) !important;
}

/* ── 17. Tables — reinforced nuclear ── */
.table, .dataTable,
table.dataTable {
  color: var(--text-secondary) !important;
  border-color: var(--border) !important;
}
.table thead th, .dataTable thead th,
table.dataTable thead th {
  background: rgba(255,255,255,0.02) !important;
  background-color: rgba(255,255,255,0.02) !important;
  color: var(--text-muted) !important;
  border-color: var(--border) !important;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}
.table tbody tr {
  border-bottom: 1px solid var(--border) !important;
}
.table tbody td, .table tbody th,
.dataTable tbody td, .dataTable tbody th,
table.dataTable tbody td, table.dataTable tbody th {
  background-color: transparent !important;
  border-color: var(--border) !important;
  color: var(--text-secondary) !important;
}
.table tbody tr:hover td {
  background: var(--surface-hover) !important;
}
.table-striped > tbody > tr:nth-of-type(odd) > td {
  background-color: rgba(255,255,255,0.015) !important;
}
.table-responsive {
  background: transparent !important;
}
.table-bordered,
.table-bordered > tbody > tr > td,
.table-bordered > tbody > tr > th,
.table-bordered > tfoot > tr > td,
.table-bordered > tfoot > tr > th,
.table-bordered > thead > tr > td,
.table-bordered > thead > tr > th {
  border-color: var(--border) !important;
}

/* ── 18. Accordion / Collapse ── */
.accordion-item {
  background-color: var(--surface) !important;
  border-color: var(--border) !important;
}
.accordion-button {
  background-color: var(--surface) !important;
  color: var(--text) !important;
  border-color: var(--border) !important;
}
.accordion-button:not(.collapsed) {
  background-color: var(--surface-hover) !important;
  color: var(--text) !important;
}
.accordion-button::after {
  filter: invert(1) !important;
}
.accordion-body {
  background-color: transparent !important;
  color: var(--text-secondary) !important;
}

/* ── 19. Toast / Notification ── */
.toast {
  background: rgba(15,15,18,0.97) !important;
  border: 1px solid var(--border) !important;
  backdrop-filter: blur(20px) !important;
  -webkit-backdrop-filter: blur(20px) !important;
  box-shadow: var(--shadow-lg) !important;
  color: var(--text-secondary) !important;
}
.toast-header {
  background: transparent !important;
  border-bottom-color: var(--border) !important;
  color: var(--text) !important;
}
.toast-body {
  color: var(--text-secondary) !important;
}

/* ── 20. Offcanvas ── */
.offcanvas {
  background: rgba(15,15,18,0.97) !important;
  border-color: var(--border) !important;
  backdrop-filter: blur(24px) !important;
  -webkit-backdrop-filter: blur(24px) !important;
  color: var(--text-secondary) !important;
}
.offcanvas-header {
  border-bottom: 1px solid var(--border) !important;
  color: var(--text) !important;
}
.offcanvas-body {
  color: var(--text-secondary) !important;
}

/* ── 21. List group ── */
.list-group-item {
  background-color: transparent !important;
  border-color: var(--border) !important;
  color: var(--text-secondary) !important;
}
.list-group-item:hover {
  background-color: var(--surface-hover) !important;
}
.list-group-item.active {
  background-color: rgba(255,255,255,0.12) !important;
  border-color: var(--border) !important;
  color: var(--text) !important;
}

/* ── 22. Page title section ── */
.page-title {
  background: transparent !important;
  border-bottom: 1px solid var(--border) !important;
}
.page-title h1 {
  color: var(--text) !important;
}

/* ── 23. Tabs — reinforced ── */
.nav-tabs {
  border-bottom-color: var(--border) !important;
}
.nav-tabs .nav-link {
  color: var(--text-muted) !important;
  border-color: transparent !important;
}
.nav-tabs .nav-link:hover {
  color: var(--text-secondary) !important;
  border-color: var(--border) !important;
}
.nav-tabs .nav-link.active,
.nav-tabs .nav-item.show .nav-link {
  background-color: transparent !important;
  border-color: var(--border) var(--border) transparent !important;
  color: var(--text) !important;
}
.tab-content {
  background: transparent !important;
}

/* ── 24. Scrollbar — universal dark ── */
*::-webkit-scrollbar { width: 3px; height: 3px; }
*::-webkit-scrollbar-track { background: transparent; }
*::-webkit-scrollbar-thumb { background: rgba(255,255,255,0.06); border-radius: 3px; }
*::-webkit-scrollbar-thumb:hover { background: rgba(255,255,255,0.12); }
* { scrollbar-width: thin; scrollbar-color: rgba(255,255,255,0.06) transparent; }

/* ── 25. Form check / switch / radio ── */
.form-check-input {
  background-color: var(--surface) !important;
  border-color: var(--border) !important;
}
.form-check-input:checked {
  background-color: rgba(255,255,255,0.85) !important;
  border-color: rgba(255,255,255,0.85) !important;
}
.form-check-label {
  color: var(--text-secondary) !important;
}
.form-switch .form-check-input {
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba(255,255,255,0.3)'/%3e%3c/svg%3e") !important;
}
.form-switch .form-check-input:checked {
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23000'/%3e%3c/svg%3e") !important;
}

/* ── 26. Validation states ── */
.is-invalid, .was-validated .form-control:invalid {
  border-color: var(--mz-danger) !important;
}
.is-valid, .was-validated .form-control:valid {
  border-color: var(--mz-success) !important;
}
.invalid-feedback { color: var(--mz-danger) !important; }
.valid-feedback { color: var(--mz-success) !important; }

/* ── 27. [class*="bg-"] nuclear override ── */
[class*="bg-dark"],
[class*="bg-secondary"] {
  background-color: var(--surface) !important;
}
.bg-light {
  background-color: var(--surface) !important;
  color: var(--text-secondary) !important;
}

/* ── 28. Breadcrumb ── */
.breadcrumb {
  background-color: transparent !important;
}
.breadcrumb-item a {
  color: var(--text-muted) !important;
}
.breadcrumb-item.active {
  color: var(--text-secondary) !important;
}

/* ── 29. Label & general text ── */
label, .form-label {
  color: var(--text-secondary) !important;
}
.text-muted {
  color: var(--text-muted) !important;
}
.text-dark {
  color: var(--text) !important;
}
a {
  color: var(--text-secondary);
}
a:hover {
  color: var(--text);
}

/* ── 30. Misc legacy overrides ── */
.well {
  background: var(--surface) !important;
  border-color: var(--border) !important;
}
code {
  background-color: var(--surface) !important;
  color: var(--mz-danger) !important;
}
pre {
  background-color: var(--surface) !important;
  border-color: var(--border) !important;
  color: var(--text-secondary) !important;
}
hr {
  border-color: var(--border) !important;
  opacity: 1;
}
.border-bottom {
  border-bottom-color: var(--border) !important;
}
.border-top {
  border-top-color: var(--border) !important;
}


/* ═══════════════════════════════════════════════════════════
   FINAL TABLE PAGE DECONTAMINATION
   Every module page with a DataTable must look premium black glass.
   This kills ALL remaining grey/white from app.all.css + Bootstrap.
   ═══════════════════════════════════════════════════════════ */

/* ── Page-level: nav-tabs toolbar (the action bar above tables) ── */
.nav-tabs,
ul.nav-tabs,
.nav.nav-tabs,
.nav.nav-tabs.scrollable-tabs {
  background: transparent !important;
  background-color: transparent !important;
  border-color: var(--border) !important;
}
.nav-tabs .tab-title,
.nav-tabs .title-button-group {
  background: transparent !important;
}

/* ── Page title header ── */
.page-title {
  background: transparent !important;
  background-color: transparent !important;
  border-bottom-color: var(--border) !important;
  color: var(--text) !important;
}

/* ── Card: reinforce glassmorphic transparency ── */
.card,
.card.bg-white,
.card.default-bg {
  background: rgba(255,255,255,0.02) !important;
  background-color: rgba(255,255,255,0.02) !important;
  border: 1px solid var(--border) !important;
  box-shadow: none !important;
  -webkit-box-shadow: none !important;
}
.card-header,
.card .card-header,
.bg-white .card-header,
.card-header.bg-white {
  background: transparent !important;
  background-color: transparent !important;
  border-bottom-color: var(--border) !important;
  color: var(--text) !important;
}
.card-body,
.card .card-body,
.bg-white .card-body {
  background: transparent !important;
  background-color: transparent !important;
}
.card-footer,
.card .card-footer {
  background: transparent !important;
  background-color: transparent !important;
  border-top-color: var(--border) !important;
}

/* ── DataTable scroll body (SearchPanes plugin forces white !important) ── */
div.dataTables_scrollBody,
.dataTables_scrollBody {
  background: transparent !important;
  background-color: transparent !important;
}

/* ── DataTable cells: kill ALL white backgrounds ── */
table.dataTable tbody td,
table.dataTable tbody th,
table.dataTable.display tbody td,
table.dataTable.display tbody th,
table.dataTable.display tfoot td,
table.dataTable.display tfoot th,
table.dataTable.row-border tbody td,
table.dataTable.row-border tbody th,
table.dataTable.stripe tbody tr.odd td,
table.dataTable.stripe tbody tr.even td,
table.dataTable.b-b-only tbody td,
table.dataTable.b-b-only tbody th {
  background-color: transparent !important;
  background: transparent !important;
  color: var(--text-secondary) !important;
  border-color: var(--border) !important;
}

/* ── DataTable header: uppercase muted ── */
table.dataTable thead th,
table.dataTable thead td,
table.dataTable.display thead th {
  background: rgba(255,255,255,0.02) !important;
  color: var(--text-muted) !important;
  border-bottom-color: var(--border) !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.06em !important;
}

/* ── Hover rows — MUST use !important to beat app.all.css ── */
.dataTable:not(.js-selection-mode) tbody tr:hover td,
table.dataTable.display tbody tr:hover > .sorting_1,
table.dataTable.order-column tbody tr > .sorting_1,
table.dataTable.order-column.stripe tbody tr.odd > .sorting_1,
table.dataTable.stripe tbody tr.odd:hover td,
table.dataTable.stripe tbody tr.even:hover td {
  background: rgba(255,255,255,0.04) !important;
  background-color: rgba(255,255,255,0.04) !important;
}

/* ── Active row ── */
.dataTable:not(.js-selection-mode) tbody tr.active td,
table.dataTable tbody tr.active td {
  background: rgba(255,255,255,0.06) !important;
  color: var(--text) !important;
}

/* ── Pagination — kill white !important from app.all.css ── */
.dataTables_wrapper .dataTables_paginate .paginate_button,
.dataTables_wrapper .dataTables_paginate .paginate_button:hover {
  background: transparent !important;
  background-color: transparent !important;
  border-color: var(--border) !important;
}
.dataTables_wrapper .dataTables_paginate .paginate_button a,
.dataTables_wrapper .dataTables_paginate .paginate_button .page-link {
  color: var(--text-secondary) !important;
  background: transparent !important;
  background-color: transparent !important;
  border-color: var(--border) !important;
}
.dataTables_wrapper .dataTables_paginate .paginate_button.active a,
.dataTables_wrapper .dataTables_paginate .paginate_button.active .page-link {
  background: rgba(255,255,255,0.10) !important;
  background-color: rgba(255,255,255,0.10) !important;
  color: var(--text) !important;
  border-color: var(--border-hover) !important;
}
.dataTables_wrapper .dataTables_paginate .paginate_button .page-link:hover {
  background-color: rgba(255,255,255,0.06) !important;
  color: var(--text) !important;
}
.dataTables_wrapper .dataTables_paginate .paginate_button.disabled .page-link {
  background-color: transparent !important;
  color: var(--text-muted) !important;
  border-color: var(--border) !important;
}

/* ── Export Buttons (DTTT: Excel, Print, etc.) ── */
button.DTTT_button,
div.DTTT_button,
a.DTTT_button,
a.DTTT_button:focus,
a.DTTT_button:active {
  background: rgba(255,255,255,0.04) !important;
  background-color: rgba(255,255,255,0.04) !important;
  border-color: var(--border) !important;
  color: var(--text-secondary) !important;
}
a.DTTT_button:hover,
button.DTTT_button:hover {
  background: rgba(255,255,255,0.08) !important;
  background-color: rgba(255,255,255,0.08) !important;
  color: var(--text) !important;
}

/* ── DataTable export anchors ── */
.datatable-export a {
  background: rgba(255,255,255,0.04) !important;
  border-color: var(--border) !important;
  color: var(--text-secondary) !important;
}
.datatable-export a:hover {
  background: rgba(255,255,255,0.08) !important;
  color: var(--text) !important;
}

/* ── Custom toolbar reinforcement ── */
.custom-toolbar,
.custom-toolbar .nav,
.datatable-tools,
.filter-section-container {
  background: transparent !important;
  background-color: transparent !important;
}

/* ── DataTable responsive expand button ── */
table.dataTable.dtr-inline.collapsed > tbody > tr > td.dtr-control:before,
table.dataTable.dtr-inline.collapsed > tbody > tr > th.dtr-control:before {
  background-color: rgba(255,255,255,0.10) !important;
  border: 1px solid var(--border) !important;
  box-shadow: none !important;
  color: var(--text-secondary) !important;
}

/* ── Table wrapper / responsive container ── */
.table-responsive,
.table-responsive > .table {
  background: transparent !important;
}

/* ── Tab link active state (white bottom border, not colored) ── */
.nav-tabs .nav-link.active,
.nav-tabs .nav-item.show .nav-link {
  background: transparent !important;
  background-color: transparent !important;
  color: var(--text) !important;
  border-bottom: 2px solid rgba(255,255,255,0.5) !important;
}

/* ── btn-default/secondary reinforcement (action buttons) ── */
.btn-default,
.btn-secondary,
.btn-light,
a.btn-default,
a.btn-secondary {
  background: rgba(255,255,255,0.04) !important;
  background-color: rgba(255,255,255,0.04) !important;
  border: 1px solid var(--border) !important;
  color: var(--text-secondary) !important;
}
.btn-default:hover,
.btn-secondary:hover,
.btn-light:hover,
a.btn-default:hover,
a.btn-secondary:hover {
  background: rgba(255,255,255,0.08) !important;
  background-color: rgba(255,255,255,0.08) !important;
  border-color: var(--border-hover) !important;
  color: var(--text) !important;
}

/* ── Page title text colors ── */
h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6 {
  color: var(--text) !important;
}

/* ── .bg-white nuclear kill (Bootstrap utility) ── */
.bg-white,
.bg-white.card,
div.bg-white,
section.bg-white {
  background: transparent !important;
  background-color: transparent !important;
}

/* ── Select2 dropdown results ── */
.select2-drop,
.select2-drop-active,
.select2-results {
  background: rgba(15,15,18,0.95) !important;
  border-color: var(--border) !important;
  color: var(--text-secondary) !important;
}
.select2-results .select2-result-label {
  color: var(--text-secondary) !important;
}
.select2-results .select2-highlighted,
.select2-results .select2-result-label:hover {
  background: rgba(255,255,255,0.10) !important;
  color: var(--text) !important;
}

/* ── DataTable column ordering bg ── */
table.dataTable.order-column tbody tr > .sorting_1,
table.dataTable.order-column tbody tr > .sorting_2,
table.dataTable.order-column tbody tr > .sorting_3 {
  background-color: transparent !important;
}
table.dataTable.order-column.stripe tbody tr.odd > .sorting_1,
table.dataTable.order-column.stripe tbody tr.odd > .sorting_2 {
  background-color: rgba(255,255,255,0.015) !important;
}


/* ═══════════════════════════════════════════════════════════
   NUCLEAR COLOR PURGE — Kill ALL remaining legacy accent colors
   Monochrome palette: black + white opacity ONLY
   ═══════════════════════════════════════════════════════════ */

/* ── Widget Icon Backgrounds (stat cards: blue/orange squares → white glass) ── */
.widget-icon {
  background-color: rgba(255,255,255,0.08) !important;
  border: 1px solid var(--border) !important;
  border-radius: var(--radius-sm) !important;
}
.widget-icon .icon {
  color: var(--text-secondary) !important;
}

/* ── Background Utility Classes (colored → monochrome) ── */
.bg-orange { background: rgba(255,255,255,0.10) !important; color: var(--text) !important; }
.bg-coral { background: rgba(255,255,255,0.08) !important; color: var(--text) !important; }
.bg-dark-success { background: rgba(255,255,255,0.12) !important; color: var(--text) !important; }

/* ── Text Color Utilities (blue/teal/amber → white opacity) ── */
.text-primary { color: var(--text) !important; }
.text-info { color: var(--text-secondary) !important; }
.text-success { color: rgba(255,255,255,0.65) !important; }
.text-warning { color: rgba(255,255,255,0.55) !important; }
.text-danger { color: rgba(255,255,255,0.50) !important; }
.text-default { color: var(--text) !important; }

/* ── Color Utility Classes ── */
.color-sky { color: var(--text-secondary) !important; }
.color-plum { color: var(--text-secondary) !important; }

/* ── Progress Bars (ensure all variants are monochrome) ── */
.progress-bar-success,
.progress-bar.bg-primary,
.progress-bar.bg-info,
.progress-bar.bg-danger,
.progress-bar.bg-warning,
.progress-bar.bg-orange {
  background: rgba(255,255,255,0.5) !important;
}
.progress {
  background-color: rgba(255,255,255,0.06) !important;
  border-radius: 6px !important;
}

/* ── App Alerts / Toasts (colored → dark glass) ── */
.app-alert.alert-info,
.app-alert.alert-success,
.app-alert.alert-danger,
.app-alert.alert-warning {
  background-color: rgba(255,255,255,0.10) !important;
  border: 1px solid var(--border) !important;
  color: var(--text) !important;
  backdrop-filter: blur(12px) !important;
}

/* ── Spinner / Loading Accents (blue → white) ── */
.spinning-btn.spinning:before {
  border-right-color: rgba(255,255,255,0.5) !important;
}
.loading {
  border-top-color: rgba(255,255,255,0.3) !important;
}
.app-loader .loading,
.table-loader .loading,
.inline-loader {
  border-color: rgba(255,255,255,0.15) !important;
  border-top-color: rgba(255,255,255,0.5) !important;
}

/* ── Action Option Hovers (teal/pink → white opacity) ── */
td.option a:hover,
.action-option:hover,
.copy-file-link:hover,
.external-tickets-embedded-code:hover {
  background: rgba(255,255,255,0.12) !important;
  border-color: var(--border-hover) !important;
  color: var(--text) !important;
}
.dtr-details .edit:not(.dropdown-item):hover {
  background: rgba(255,255,255,0.12) !important;
  border-color: var(--border-hover) !important;
}
.dtr-details .delete:not(.dropdown-item):hover {
  background: rgba(255,255,255,0.08) !important;
  border-color: var(--border) !important;
}

/* ── File List View Hovers (red/teal → white opacity) ── */
.file-list-view:hover,
.file-list-view.file-download:hover {
  background: rgba(255,255,255,0.10) !important;
  border-color: var(--border-hover) !important;
  color: var(--text) !important;
}

/* ── DataTable Selected Rows (blue → white opacity) ── */
table.dataTable tbody > tr.selected,
table.dataTable tbody > tr.selected td,
table.dataTable.stripe tbody > tr.selected,
table.dataTable.hover tbody > tr.selected:hover {
  background-color: rgba(255,255,255,0.08) !important;
  color: var(--text) !important;
}

/* ── DataTable Responsive Expand Button (green → white) ── */
table.dataTable.dtr-inline.collapsed > tbody > tr > td.dtr-control:before,
table.dataTable.dtr-inline.collapsed > tbody > tr > th.dtr-control:before {
  background-color: rgba(255,255,255,0.12) !important;
  border-color: rgba(255,255,255,0.25) !important;
  box-shadow: none !important;
  color: var(--text-secondary) !important;
}

/* ── DataTable Column Reorder + SearchBuilder ── */
div.DTCR_pointer {
  background-color: rgba(255,255,255,0.2) !important;
}
select.dtsb-condition,
select.dtsb-data,
input.dtsb-value {
  border-color: var(--border) !important;
  background: var(--surface) !important;
  color: var(--text) !important;
}

/* ── DateTimePicker / Datepicker Legacy Colors ── */
.datepicker table tr td.active,
.datepicker table tr td.active:hover,
.datepicker table tr td.active:focus,
.datepicker table tr td.active.highlighted,
.datepicker table tr td.active.highlighted:hover {
  background-color: rgba(255,255,255,0.20) !important;
  border-color: transparent !important;
  color: var(--text) !important;
}
.datepicker table tr td.today,
.datepicker table tr td.today:hover {
  background-color: rgba(255,255,255,0.12) !important;
  border-color: transparent !important;
  color: var(--text) !important;
}
.datepicker table tr td.highlighted,
.datepicker table tr td.highlighted:hover {
  background-color: rgba(255,255,255,0.08) !important;
  border-color: transparent !important;
  color: var(--text) !important;
}

/* ── Misc Legacy Accents ── */
.notepad-title {
  border-left-color: rgba(255,255,255,0.2) !important;
}
.unread {
  border-left-color: rgba(255,255,255,0.3) !important;
}
.message-row.unread strong,
.message-row.unread span {
  color: var(--text) !important;
}
.comment-highlight {
  border-color: rgba(255,255,255,0.2) !important;
}
.avatar.primary-contact img {
  border-color: rgba(255,255,255,0.25) !important;
}
.star-icon,
.star-icon:hover {
  color: rgba(255,255,255,0.4) !important;
}
.unread-comments-of-tasks i {
  color: var(--text-secondary) !important;
}
.row-controller .delete {
  color: rgba(255,255,255,0.45) !important;
}
.confirmed-by-logo {
  color: rgba(255,255,255,0.6) !important;
}
.rejected-by-logo {
  color: rgba(255,255,255,0.4) !important;
}
.init-chat-icon.has-message {
  background-color: rgba(255,255,255,0.2) !important;
}
#pwa-install-message-iphone {
  background-color: rgba(255,255,255,0.1) !important;
  border: 1px solid var(--border) !important;
}

/* ── Badge Link Hovers ── */
.badge.badge-light a:hover,
.badge.badge-light a:active,
.badge.badge-light a:focus {
  color: var(--text) !important;
}

/* ── DataTable Active Row Badge Text ── */
.dataTable:not(.js-selection-mode) tbody tr.active .badge {
  color: var(--text) !important;
}

/* ── Select2 v3 Legacy ── */
.select2-results .select2-highlighted {
  background-color: rgba(255,255,255,0.12) !important;
  color: var(--text) !important;
}

/* ── Dashboard Icon Widget Card ── */
.dashboard-icon-widget .card-body {
  background: transparent !important;
}

/* ── Selection Handler ── */
.selection-handler-dropdown-btn.active:active,
.selection-handler-dropdown-btn.active:focus {
  background-color: rgba(255,255,255,0.15) !important;
}

/* ── Links — kill all blue link defaults ── */
a { color: var(--text-secondary); }
a:hover { color: var(--text); }
.card a:not(.btn),
.table a:not(.btn),
.widget-container a:not(.btn) {
  color: var(--text-secondary) !important;
}
.card a:not(.btn):hover,
.table a:not(.btn):hover,
.widget-container a:not(.btn):hover {
  color: var(--text) !important;
}


/* ═══════════════════════════════════════════════════════════
   MOZART MESSAGES — Slack-like Full-Page Messaging
   ═══════════════════════════════════════════════════════════ */

/* Kill default page padding/scroll for messages page
   Body gets .messages-page from layout, so target parent containers */
.messages-page .scrollable-page,
.messages-page .scrollable-page.main-scrollable-page {
  padding: 0 !important;
  overflow: hidden !important;
  margin: 0 !important;
  height: calc(100vh - 56px) !important;
}
@media (max-width: 768px) {
  .messages-page .scrollable-page,
  .messages-page .scrollable-page.main-scrollable-page {
    height: calc(100dvh - 52px - 72px - env(safe-area-inset-top, 0px)) !important;
    padding: 0 !important;
  }
  .messages-page .page-container {
    padding-bottom: 0 !important;
  }
}
.messages-page .page-container,
.messages-page .overflow-auto.page-container {
  overflow: hidden !important;
}
.mz-msg.page-wrapper,
#page-content.mz-msg {
  padding: 0 !important;
  margin: 0 !important;
  height: 100%;
}
.messages-page .filter-section-container { display: none !important; }

/* ── Layout ── */
.mz-msg-layout {
  display: flex;
  height: calc(100vh - 56px);
  overflow: hidden;
  position: relative;
}

/* Hide AI bottom bar on messages page — full height for chat */
.messages-page .mz-ai-bottombar { display: none !important; }

/* Hide legacy "Título:" label in modern chat view */
.mz-msg-messages .chat-message-title { display: none !important; }
/* Hide legacy js-chat-messages-title wrapper if empty after hiding title */
.mz-msg-messages #js-chat-messages-title { margin: 0; padding: 0; }

/* ── Sidebar ── */
.mz-msg-sidebar {
  width: 320px;
  min-width: 320px;
  border-right: 1px solid var(--border);
  display: flex;
  flex-direction: column;
  background: rgba(255,255,255,0.015);
  overflow: hidden;
}

.mz-msg-sidebar-header {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 16px 16px 10px;
  flex-shrink: 0;
}

.mz-msg-sidebar-home {
  width: 34px;
  height: 34px;
  border-radius: var(--radius-xs);
  border: 1px solid var(--border);
  background: var(--surface);
  color: var(--text-muted) !important;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  text-decoration: none !important;
  transition: all 0.2s ease;
}
.mz-msg-sidebar-home:hover { background: var(--surface-hover); color: var(--text) !important; }

.mz-msg-sidebar-title {
  font-size: 17px;
  font-weight: 700;
  color: var(--text);
  margin: 0;
  flex: 1;
}

.mz-msg-compose-btn {
  width: 34px;
  height: 34px;
  border-radius: var(--radius-xs);
  border: 1px solid var(--border);
  background: var(--surface);
  color: var(--text-secondary);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  flex-shrink: 0;
  transition: all 0.2s ease;
}
.mz-msg-compose-btn:hover {
  background: var(--surface-hover);
  color: var(--text);
  border-color: var(--border-hover);
}

/* ── Search ── */
.mz-msg-search {
  padding: 0 16px 12px;
  position: relative;
  flex-shrink: 0;
}

.mz-msg-search-icon {
  position: absolute;
  left: 28px;
  top: 12px;
  color: var(--text-muted);
  pointer-events: none;
}

.mz-msg-search-input {
  width: 100%;
  height: 36px;
  background: var(--surface) !important;
  border: 1px solid var(--border) !important;
  border-radius: var(--radius-sm) !important;
  padding: 0 12px 0 36px;
  font-size: 13px;
  color: var(--text) !important;
  transition: all 0.2s ease;
}
.mz-msg-search-input:focus {
  outline: none;
  border-color: var(--border-focus) !important;
  background: var(--surface-hover) !important;
}
.mz-msg-search-input::placeholder { color: var(--text-muted); }

/* ── Tabs ── */
.mz-msg-tabs {
  display: flex;
  padding: 0 16px 8px;
  gap: 4px;
  flex-shrink: 0;
}

.mz-msg-tab {
  flex: 1;
  padding: 8px 0;
  border: none;
  background: transparent;
  color: var(--text-muted);
  font-size: 12px;
  font-weight: 600;
  border-radius: var(--radius-xs);
  cursor: pointer;
  transition: all 0.2s ease;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
}
.mz-msg-tab:hover {
  color: var(--text-secondary);
  background: var(--surface);
}
.mz-msg-tab.active {
  color: var(--text);
  background: var(--surface-active);
}

/* ── Conversation List ── */
.mz-msg-list {
  flex: 1;
  overflow-y: auto;
  overflow-x: hidden;
}

.mz-msg-item {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 12px 16px;
  cursor: pointer;
  border-left: 3px solid transparent;
  transition: all 0.15s ease;
}
.mz-msg-item:hover {
  background: var(--surface-hover);
}
.mz-msg-item--active {
  background: var(--surface-active) !important;
  border-left-color: rgba(255,255,255,0.3);
}
.mz-msg-item--unread .mz-msg-item-name {
  color: var(--text) !important;
  font-weight: 700;
}
.mz-msg-item--unread .mz-msg-item-preview {
  color: var(--text-secondary) !important;
}

.mz-msg-item-avatar {
  position: relative;
  flex-shrink: 0;
}
.mz-msg-item-avatar img {
  width: 40px;
  height: 40px;
  border-radius: 10px;
  object-fit: cover;
}
.mz-msg-online-dot {
  position: absolute;
  bottom: -1px;
  right: -1px;
  width: 10px;
  height: 10px;
  background: var(--mz-success);
  border-radius: 50%;
  border: 2px solid var(--bg);
}

.mz-msg-item-body {
  flex: 1;
  min-width: 0;
}
.mz-msg-item-top {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  margin-bottom: 2px;
}
.mz-msg-item-name {
  font-size: 13px;
  font-weight: 600;
  color: var(--text-secondary);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.mz-msg-item-time {
  font-size: 11px;
  color: var(--text-muted);
  white-space: nowrap;
  flex-shrink: 0;
  margin-left: 8px;
}
.mz-msg-item-preview {
  font-size: 12px;
  color: var(--text-muted);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.mz-msg-unread-dot {
  width: 8px;
  height: 8px;
  background: rgba(255,255,255,0.5);
  border-radius: 50%;
  flex-shrink: 0;
  margin-top: 8px;
}

/* ── Main Panel ── */
.mz-msg-main {
  flex: 1;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  min-width: 0;
}

/* ── Empty State ── */
.mz-msg-empty {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
}
.mz-msg-empty-inner { text-align: center; }
.mz-msg-empty-icon {
  color: var(--text-muted);
  opacity: 0.2;
  margin-bottom: 16px;
}
.mz-msg-empty-title {
  font-size: 16px;
  font-weight: 600;
  color: var(--text-secondary);
  margin-bottom: 4px;
}
.mz-msg-empty-sub {
  font-size: 13px;
  color: var(--text-muted);
  margin: 0;
}

/* ── Chat Container ── */
.mz-msg-chat {
  flex: 1;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

/* ── Chat Header ── */
.mz-msg-chat-header {
  display: flex;
  align-items: center;
  padding: 12px 20px;
  border-bottom: 1px solid var(--border);
  flex-shrink: 0;
  gap: 12px;
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  background: rgba(255,255,255,0.015);
}
.mz-msg-chat-user {
  display: flex;
  align-items: center;
  gap: 12px;
  flex: 1;
  min-width: 0;
}
/* Home button — hidden on desktop, shown on mobile since tab bar is hidden */
.mz-msg-home-btn {
  display: none;
  flex-shrink: 0;
  width: 36px;
  height: 36px;
  border-radius: 10px;
  border: 1px solid rgba(255,255,255,0.08);
  background: rgba(255,255,255,0.04);
  color: var(--text-muted) !important;
  align-items: center;
  justify-content: center;
  text-decoration: none !important;
  transition: all 0.2s;
}
.mz-msg-home-btn:hover { background: rgba(255,255,255,0.08); color: var(--text) !important; }
.mz-msg-chat-user img {
  width: 36px;
  height: 36px;
  border-radius: 10px;
  object-fit: cover;
}
.mz-msg-chat-user-info { display: flex; flex-direction: column; }
.mz-msg-chat-user-name {
  font-size: 14px;
  font-weight: 600;
  color: var(--text);
}
.mz-msg-chat-user-status {
  font-size: 11px;
  color: var(--text-muted);
  display: flex;
  align-items: center;
  gap: 4px;
}
.mz-msg-chat-user-status .mz-msg-online-dot {
  position: static;
  width: 6px;
  height: 6px;
  border: none;
}

/* ── Messages Area ── */
.mz-msg-messages {
  flex: 1;
  overflow-y: auto;
  overflow-x: hidden;
  padding: 16px 20px;
  scroll-behavior: smooth;
}
.mz-msg-messages::-webkit-scrollbar { width: 3px; }
.mz-msg-messages::-webkit-scrollbar-thumb { background: rgba(255,255,255,0.06); border-radius: 2px; }
.mz-msg-messages::-webkit-scrollbar-thumb:hover { background: rgba(255,255,255,0.12); }

/* Typing indicator */
.mz-msg-typing {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 6px 14px;
  font-size: 12px;
  color: rgba(255,255,255,0.45);
}
.mz-msg-typing .typing-dots {
  display: flex;
  gap: 3px;
}
.mz-msg-typing .typing-dots span {
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: rgba(255,255,255,0.35);
  animation: mzTypingDot 1.4s infinite;
}
.mz-msg-typing .typing-dots span:nth-child(2) { animation-delay: 0.2s; }
.mz-msg-typing .typing-dots span:nth-child(3) { animation-delay: 0.4s; }
@keyframes mzTypingDot {
  0%,60%,100% { opacity: 0.2; transform: translateY(0); }
  30% { opacity: 0.8; transform: translateY(-3px); }
}

/* ══ Chat Bubbles — Modern Glassmorphic ══ */

/* Reset legacy grid inside bubbles */
.mz-msg-messages .chat-me .row,
.mz-msg-messages .chat-other .row {
  margin: 0 !important;
  display: flex;
  flex-direction: row;
  align-items: flex-end;
}
.mz-msg-messages .chat-me .row .col-md-12,
.mz-msg-messages .chat-other .row .col-md-12 {
  padding: 0 !important;
  flex: none;
  width: auto;
  max-width: 100%;
  display: flex;
  align-items: flex-end;
  gap: 8px;
}

/* Base message container */
.mz-msg-messages .chat-me,
.mz-msg-messages .chat-other {
  margin-bottom: 4px;
  animation: mzMsgBubbleIn 0.25s cubic-bezier(.16,1,.3,1);
}
@keyframes mzMsgBubbleIn {
  from { opacity: 0; transform: translateY(6px); }
  to { opacity: 1; transform: translateY(0); }
}

/* ── My messages (right-aligned) ── */
.mz-msg-messages .chat-me {
  display: flex;
  justify-content: flex-end;
}
.mz-msg-messages .chat-me .chat-msg {
  max-width: 420px;
  background: rgba(255,255,255,0.10);
  backdrop-filter: blur(8px);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 16px 16px 4px 16px;
  padding: 10px 14px;
  font-size: 13.5px;
  line-height: 1.6;
  color: rgba(255,255,255,0.88);
  word-wrap: break-word;
  display: inline-block;
  text-align: left;
}

/* ── Other's messages (left-aligned with avatar) ── */
.mz-msg-messages .chat-other {
  display: flex;
  justify-content: flex-start;
}
.mz-msg-messages .chat-other .avatar,
.mz-msg-messages .chat-other .avatar-xs {
  width: 28px !important;
  height: 28px !important;
  min-width: 28px;
  border-radius: 50% !important;
  overflow: hidden;
  flex-shrink: 0;
  margin: 0 !important;
  padding: 0 !important;
}
.mz-msg-messages .chat-other .avatar img,
.mz-msg-messages .chat-other .avatar-xs img {
  width: 28px !important;
  height: 28px !important;
  border-radius: 50% !important;
  object-fit: cover;
}
.mz-msg-messages .chat-other .avatar a,
.mz-msg-messages .chat-other .avatar-xs a {
  display: block;
  line-height: 0;
}
.mz-msg-messages .chat-other .chat-msg {
  max-width: 420px;
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.06);
  border-radius: 16px 16px 16px 4px;
  padding: 10px 14px;
  font-size: 13.5px;
  line-height: 1.6;
  color: rgba(255,255,255,0.82);
  word-wrap: break-word;
  display: inline-block;
}

/* Links inside bubbles */
.mz-msg-messages .chat-msg a {
  color: rgba(255,255,255,0.65) !important;
  text-decoration: underline;
  text-underline-offset: 2px;
}
.mz-msg-messages .chat-msg a:hover {
  color: rgba(255,255,255,0.9) !important;
}

/* Images inside bubbles */
.mz-msg-messages .chat-msg img:not(.avatar):not([width="28"]) {
  max-width: 100%;
  border-radius: 8px;
  margin: 6px 0;
}

/* File download links */
.mz-msg-messages .chat-msg a[href*="download"] {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 4px 10px;
  margin-top: 6px;
  border-radius: 6px;
  background: rgba(255,255,255,0.06);
  border: 1px solid rgba(255,255,255,0.10);
  text-decoration: none !important;
  font-size: 12px;
  color: rgba(255,255,255,0.6) !important;
  transition: all 0.2s;
}
.mz-msg-messages .chat-msg a[href*="download"]:hover {
  background: rgba(255,255,255,0.10);
  color: rgba(255,255,255,0.85) !important;
}

/* Timeline preview (file attachments) */
.mz-msg-messages .chat-msg .timeline-images {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  margin: 6px 0;
}
.mz-msg-messages .chat-msg .timeline-images img {
  width: 80px;
  height: 80px;
  object-fit: cover;
  border-radius: 6px;
  border: 1px solid rgba(255,255,255,0.08);
}

/* Remove legacy margins/padding on .mr10 etc. */
.mz-msg-messages .mr10 {
  margin-right: 0 !important;
}

/* Remove temp scripts visual artifacts */
.mz-msg-messages .temp-script33,
.mz-msg-messages script { display: none; }

/* Date separator */
.mz-msg-date-sep {
  text-align: center;
  padding: 16px 0 8px;
  font-size: 11px;
  font-weight: 600;
  color: var(--text-muted);
  letter-spacing: 0.03em;
}

/* Typing indicator */
.mz-msg-typing {
  padding: 4px 20px;
  font-size: 12px;
  color: var(--text-muted);
  font-style: italic;
}

/* Load more */
.mz-msg-load-more {
  text-align: center;
  padding: 8px 0 16px;
}
.mz-msg-load-more-btn {
  font-size: 12px;
  color: var(--text-muted);
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-xs);
  padding: 6px 16px;
  cursor: pointer;
  transition: all 0.2s ease;
}
.mz-msg-load-more-btn:hover {
  background: var(--surface-hover);
  color: var(--text-secondary);
}

/* ── Input Area ── */
.mz-msg-input-area {
  border-top: 1px solid rgba(255,255,255,0.06);
  padding: 12px 20px;
  flex-shrink: 0;
  background: rgba(9,9,11,0.6);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
}
.mz-msg-input-area .post-dropzone {
  background: transparent !important;
  border: none !important;
}
.mz-msg-input-row {
  display: flex;
  align-items: flex-end;
  gap: 8px;
  background: rgba(255,255,255,0.03);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 14px;
  padding: 6px 8px 6px 14px;
  transition: border-color 0.3s cubic-bezier(.16,1,.3,1);
}
.mz-msg-input-row:focus-within {
  border-color: rgba(255,255,255,0.18);
  background: rgba(255,255,255,0.04);
}

#mz-msg-textarea {
  flex: 1;
  border: none !important;
  background: transparent !important;
  color: var(--text) !important;
  font-size: 14px;
  resize: none;
  max-height: 120px;
  min-height: 24px;
  line-height: 1.5;
  padding: 4px 0;
  outline: none !important;
  box-shadow: none !important;
}
#mz-msg-textarea::placeholder { color: var(--text-muted); }

.mz-msg-file-btn { flex-shrink: 0; display: flex; align-items: center; }
/* Reset upload_button.php wrapper: .me-auto + float breaks flex layout */
.mz-msg-file-btn .me-auto {
  margin: 0 !important;
  float: none !important;
  display: flex;
  align-items: center;
}
.mz-msg-file-btn .upload-file-button {
  color: var(--text-muted) !important;
  margin: 0 !important;
  padding: 4px !important;
  min-height: auto !important;
  float: none !important;
  width: 32px;
  height: 32px;
  display: flex !important;
  align-items: center;
  justify-content: center;
  border: none !important;
  background: transparent !important;
}
/* Hide recording buttons in chat input (too noisy) */
.mz-msg-file-btn .record-start-btn,
.mz-msg-file-btn .record-end-btn,
.mz-msg-file-btn .recording-text { display: none !important; }

.mz-msg-send-btn {
  flex-shrink: 0;
  width: 34px;
  height: 34px;
  border: 1px solid rgba(255,255,255,0.15);
  background: rgba(255,255,255,0.06);
  border-radius: 50%;
  color: rgba(255,255,255,0.55);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.25s cubic-bezier(.16,1,.3,1);
  min-height: auto !important;
}
.mz-msg-send-btn:hover {
  background: rgba(255,255,255,0.14);
  border-color: rgba(255,255,255,0.25);
  color: rgba(255,255,255,0.9);
  box-shadow: 0 0 12px rgba(255,255,255,0.06);
}

/* ── Mobile back button ── */
.mz-msg-back-btn {
  border: none;
  background: transparent;
  color: var(--text-secondary);
  padding: 4px;
  cursor: pointer;
  display: none;
}

/* ── Dashboard clickable avatars ── */
.mz-avatar--clickable {
  cursor: pointer;
  transition: all 0.2s ease;
  position: relative;
}
.mz-avatar--clickable:hover {
  transform: translateY(-3px);
  box-shadow: 0 6px 16px rgba(0,0,0,0.4);
}
.mz-avatar--clickable::after {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
  border: 1px solid transparent;
  transition: border-color 0.2s ease;
}
.mz-avatar--clickable:hover::after {
  border-color: rgba(255,255,255,0.15);
}

/* ── Message list item loading skeleton ── */
.mz-msg-list-loading {
  display: flex;
  justify-content: center;
  padding: 40px 0;
}

/* ── Mobile Responsive ── */
@media (max-width: 767px) {
  /* Hide tab bar on messages page — chat has its own nav */
  .messages-page .mz-tab-bar { display: none !important; }
  /* With tab bar hidden, scrollable-page gets full height below header */
  .messages-page .scrollable-page,
  .messages-page .scrollable-page.main-scrollable-page {
    height: calc(100dvh - 52px - env(safe-area-inset-top, 0px)) !important;
  }

  .mz-msg-layout {
    height: 100%;
    position: relative;
    overflow: hidden;
  }
  .mz-msg-sidebar {
    width: 100%;
    min-width: 100%;
    position: absolute;
    inset: 0;
    z-index: 2;
    background: var(--bg);
    transition: transform 0.3s cubic-bezier(.4,0,.2,1);
  }
  .mz-msg-main {
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
  }
  .mz-msg-layout.chat-active .mz-msg-sidebar {
    transform: translateX(-100%);
  }
  .mz-msg-layout:not(.chat-active) .mz-msg-main {
    display: none;
  }
  .mz-msg-back-btn {
    display: flex !important;
  }
  .mz-msg-home-btn {
    display: flex !important;
  }
  .mz-msg-messages {
    flex: 1;
    min-height: 0; /* flex shrink fix */
  }
  .mz-msg-messages .chat-me .chat-msg,
  .mz-msg-messages .chat-other .chat-msg {
    max-width: 80vw;
  }
  .mz-msg-chat {
    height: 100%;
    display: flex;
    flex-direction: column;
  }

  /* Input area: stick to bottom, safe area since tab bar hidden */
  .mz-msg-input-area {
    flex-shrink: 0;
    padding: 8px 12px;
    padding-bottom: calc(8px + env(safe-area-inset-bottom, 0px));
  }
  .mz-msg-input-row {
    padding: 4px 6px 4px 10px;
    gap: 6px;
  }
  .mz-msg-textarea,
  #mz-msg-textarea {
    font-size: 16px !important; /* prevent iOS zoom */
    max-height: 120px;
  }
  .mz-msg-send-btn {
    min-width: 44px;
    min-height: 44px;
  }
  .mz-msg-file-btn .upload-file-button {
    min-width: 44px;
    min-height: 44px;
    display: flex !important;
    align-items: center;
    justify-content: center;
  }

  /* Search input touch target */
  .mz-msg-search-input {
    min-height: 44px;
    font-size: 16px !important;
  }

  /* Conversation items: larger tap targets */
  .mz-msg-item {
    min-height: 64px;
    padding: 12px 16px !important;
  }

  /* Hide floating chat on messages page mobile */
  .mz-msg ~ .init-chat-icon,
  .mz-msg ~ .rise-chat-wrapper {
    display: none !important;
  }

  /* Hide bottom tab bar when in messages (full immersion) */
  .mz-msg ~ #mz-bottom-tabs {
    display: none !important;
  }
}

@media (min-width: 768px) and (max-width: 1024px) {
  .mz-msg-sidebar {
    width: 280px;
    min-width: 280px;
  }
}


/* ═══════════════════════════════════════
   MOBILE APP — Global Polish
   ═══════════════════════════════════════ */

@media (max-width: 768px) {
  /* Native app feel: no overscroll bounce */
  html { overscroll-behavior: none; }
  body {
    -webkit-text-size-adjust: 100%;
    -webkit-tap-highlight-color: transparent;
  }

  /* Prevent iOS auto-zoom on input focus (must be >= 16px) */
  input[type="text"],
  input[type="email"],
  input[type="password"],
  input[type="number"],
  input[type="search"],
  input[type="url"],
  input[type="tel"],
  textarea,
  select,
  .form-control,
  .form-select {
    font-size: 16px !important;
  }

  /* Cards: tighter radius on mobile */
  .card { border-radius: 12px !important; }
  .card-body { padding: 14px !important; }

  /* Touch-friendly buttons (44px min Apple guideline) */
  .btn { min-height: 44px; }

  /* Performance: hide ambient effects on mobile */
  #mz-grain { display: none; }
  #mz-ambient::before,
  #mz-ambient::after { display: none; }

  /* No horizontal overflow */
  .page-container,
  .scrollable-page { overflow-x: hidden !important; }

  /* Modals: full-screen on mobile (app-like) */
  .modal-dialog {
    margin: 0 !important;
    max-width: 100% !important;
    min-height: 100dvh;
  }
  .modal-content {
    border-radius: 0 !important;
    min-height: 100dvh;
  }

  /* DataTables: contained horizontal scroll */
  .dataTables_wrapper { overflow-x: auto; }

  /* Page title: compact */
  .page-title h1 { font-size: 18px !important; }
  .page-title { padding: 12px 16px !important; }

  /* Top padding for fixed mobile header (only on page-container, NOT scrollable-page inside it) */
  .page-container {
    padding-top: calc(52px + env(safe-area-inset-top, 0px)) !important;
  }
  /* Bottom padding for tab bar */
  .scrollable-page {
    padding-bottom: calc(72px + env(safe-area-inset-bottom, 0px)) !important;
  }
}


/* ═══════════════════════════════════════
   MOBILE APP — Smart Header (scroll reveal)
   ═══════════════════════════════════════ */

.mz-mobile-header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 1045;
  background: rgba(9, 9, 11, 0.92);
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
  backdrop-filter: blur(20px) saturate(180%);
  -webkit-backdrop-filter: blur(20px) saturate(180%);
  padding-top: env(safe-area-inset-top, 0px);
  /* Always visible — no transform hide */
}

.mz-mobile-header-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 48px;
  padding: 0 16px;
}

.mz-mobile-header-left {
  display: flex;
  align-items: center;
}

.mz-mobile-header-logo {
  height: 22px;
  filter: brightness(0) invert(1);
  opacity: 0.85;
}

.mz-mobile-header-right {
  display: flex;
  align-items: center;
  gap: 4px;
}

.mz-mobile-header-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: 10px;
  color: rgba(255, 255, 255, 0.50);
  text-decoration: none !important;
  transition: all 0.2s ease;
  -webkit-tap-highlight-color: transparent;
}

.mz-mobile-header-btn:hover,
.mz-mobile-header-btn:active {
  background: rgba(255, 255, 255, 0.06);
  color: rgba(255, 255, 255, 0.85);
}

.mz-mobile-header-btn--logout {
  color: rgba(239, 68, 68, 0.60);
}

.mz-mobile-header-btn--logout:hover,
.mz-mobile-header-btn--logout:active {
  background: rgba(239, 68, 68, 0.10);
  color: rgba(239, 68, 68, 0.90);
}


/* ═══════════════════════════════════════════════════════════════
   Profile / Team Member View — Glass Treatment
   Scoped to the profile banner + cover widgets
   ═══════════════════════════════════════════════════════════════ */

/* Banner header: replace solid bg-primary with subtle glass */
.page-wrapper > .bg-primary.card.mb0 {
  background: rgba(255,255,255,0.03) !important;
  border: 1px solid var(--border) !important;
  border-bottom: none !important;
  border-radius: var(--radius) var(--radius) 0 0 !important;
  backdrop-filter: blur(16px) !important;
  -webkit-backdrop-filter: blur(16px) !important;
  box-shadow: 0 4px 24px rgba(0,0,0,0.3) !important;
}

/* Profile image section */
#profile-image-section {
  display: flex;
  align-items: center;
  gap: 0;
}
#profile-image-section .avatar-lg {
  width: 80px !important;
  height: 80px !important;
}
#profile-image-section .avatar-lg img {
  width: 80px !important;
  height: 80px !important;
  border-radius: 16px !important;
  border: 2px solid rgba(255,255,255,0.1) !important;
  box-shadow: 0 4px 20px rgba(0,0,0,0.4) !important;
}
#profile-image-section h4 {
  color: var(--text) !important;
  font-weight: 600 !important;
  margin-top: 8px !important;
  margin-bottom: 0 !important;
  letter-spacing: -0.02em;
}
/* Job title badge */
#profile-image-section .badge.bg-info {
  background: rgba(255,255,255,0.08) !important;
  color: var(--text-secondary) !important;
  border: 1px solid var(--border) !important;
  font-weight: 500 !important;
  font-size: 12px !important;
  padding: 4px 10px !important;
  border-radius: 6px !important;
}
/* Contact info text */
#profile-image-section .box-content p {
  color: var(--text-secondary) !important;
}
/* Upload buttons */
.profile-image-upload .btn.color-white {
  color: var(--text) !important;
  background: rgba(255,255,255,0.08) !important;
  border-radius: 8px !important;
  transition: background 0.15s ease;
}
.profile-image-upload .btn.color-white:hover {
  background: rgba(255,255,255,0.15) !important;
}

/* Cover widget boxes (project counts, time widget) */
.cover-widget .box {
  background: transparent !important;
  border-color: rgba(255,255,255,0.06) !important;
}
.cover-widget .box .box-content {
  background: transparent !important;
}
.cover-widget .box .box-content.b-r {
  border-right-color: rgba(255,255,255,0.08) !important;
}
.cover-widget .box.b-t {
  border-top-color: rgba(255,255,255,0.08) !important;
}
.cover-widget .card-body h1 {
  color: var(--text) !important;
  font-weight: 700 !important;
  font-size: 32px !important;
  letter-spacing: -0.03em;
}
.cover-widget .text-off {
  color: var(--text-muted) !important;
  font-size: 11px !important;
  letter-spacing: 0.5px;
}

/* Send Message / Reminders buttons in profile */
#profile-image-section .btn-transparent {
  color: var(--text-muted) !important;
  border: 1px solid var(--border) !important;
  border-radius: var(--radius-xs) !important;
  padding: 4px 12px !important;
  font-size: 12px !important;
  transition: all 0.15s ease;
}
#profile-image-section .btn-transparent:hover {
  color: var(--text) !important;
  background: rgba(255,255,255,0.06) !important;
  border-color: var(--border-hover) !important;
}

/* ═══════════════════════════════════════════════════════════════════
   Metric Deltas — Trend badges for KPI cards
   ═══════════════════════════════════════════════════════════════════ */
.mz-metric-delta {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.01em;
  padding: 2px 8px;
  border-radius: 4px;
  margin-top: 4px;
  line-height: 1.4;
}
.mz-metric-delta--up {
  color: var(--mz-success);
  background: color-mix(in srgb, var(--mz-success) 10%, transparent);
}
.mz-metric-delta--down {
  color: var(--mz-danger);
  background: color-mix(in srgb, var(--mz-danger) 10%, transparent);
}
.mz-metric-delta--flat {
  color: var(--text-muted);
  background: rgba(255,255,255,0.04);
}
/* Inverted semantics: up is bad (overdue, suspended) */
.mz-metric-delta--inverted.mz-metric-delta--up {
  color: var(--mz-danger);
  background: color-mix(in srgb, var(--mz-danger) 10%, transparent);
}
.mz-metric-delta--inverted.mz-metric-delta--down {
  color: var(--mz-success);
  background: color-mix(in srgb, var(--mz-success) 10%, transparent);
}
.mz-metric-delta__label {
  font-weight: 400;
  color: var(--text-muted);
  font-size: 10px;
}

/* ═══════════════════════════════════════════════════════════════════
   Clickable Metric Cards — Hover effect for filter-on-click
   ═══════════════════════════════════════════════════════════════════ */
.mz-glass--clickable {
  cursor: pointer;
  transition: transform 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease;
}
.mz-glass--clickable:hover {
  transform: translateY(-2px);
  border-color: var(--border-hover) !important;
  box-shadow: 0 4px 16px rgba(0,0,0,0.15);
}
.mz-glass--clickable:active {
  transform: translateY(0);
}

/* ═══════════════════════════════════════════════════════════════════
   Tooltip Hint on Metric Labels — Dotted underline + help cursor
   ═══════════════════════════════════════════════════════════════════ */
.mz-metric-label[title] {
  cursor: help;
  text-decoration: underline;
  text-decoration-style: dotted;
  text-underline-offset: 3px;
  text-decoration-color: var(--text-muted);
  text-decoration-thickness: 1px;
}

/* ═══════════════════════════════════════════════════════════════════
   Empty States — Centered message when module has no data
   ═══════════════════════════════════════════════════════════════════ */
.mz-empty-state {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 48px 24px;
  min-height: 240px;
}
.mz-empty-state__icon {
  width: 56px;
  height: 56px;
  border-radius: 16px;
  background: rgba(255,255,255,0.04);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--text-muted);
  margin-bottom: 16px;
}
.mz-empty-state__title {
  font-size: 16px;
  font-weight: 600;
  color: var(--text);
  margin-bottom: 8px;
  letter-spacing: -0.01em;
}
.mz-empty-state__text {
  font-size: 13px;
  color: var(--text-muted);
  max-width: 360px;
  line-height: 1.5;
  margin-bottom: 20px;
}
.mz-empty-state__cta {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 20px;
  border-radius: 8px;
  font-size: 13px;
  font-weight: 600;
  color: var(--text);
  background: rgba(255,255,255,0.08);
  border: 1px solid var(--border);
  text-decoration: none;
  transition: all 0.15s ease;
  cursor: pointer;
}
.mz-empty-state__cta:hover {
  background: rgba(255,255,255,0.12);
  border-color: var(--border-hover);
  color: var(--text);
  text-decoration: none;
}

/* ═══════════════════════════════════════════════════════════
   MODAL FORMS — Premium Glass Redesign
   Applies to ALL modals: #ajaxModal, #confirmationModal, etc.
   ═══════════════════════════════════════════════════════════ */

/* ─── Card: seamless (no visible container) ─── */
.modal-content {
  background: rgba(12, 12, 14, 0.96) !important;
  border: none !important;
  border-radius: 14px !important;
  color: var(--text) !important;
  box-shadow: 0 8px 32px rgba(0,0,0,0.4) !important;
  backdrop-filter: blur(40px) saturate(1.4) !important;
  -webkit-backdrop-filter: blur(40px) saturate(1.4) !important;
  overflow: hidden;
}
.modal-content::before { display: none !important; }

/* ─── Header ─── */
.modal-header {
  background: transparent !important;
  border-bottom: 1px solid rgba(255,255,255,0.06) !important;
  padding: 20px 24px 16px !important;
  position: relative;
}
.modal-title {
  color: var(--text) !important;
  font-size: 16px !important;
  font-weight: 600 !important;
  letter-spacing: -0.01em;
}
.modal-header .btn-close {
  filter: invert(1) !important;
  opacity: 0.35;
  transition: opacity 0.2s ease, transform 0.2s ease;
  padding: 12px !important;
}
.modal-header .btn-close:hover {
  opacity: 0.8;
  transform: scale(1.1);
}

/* ─── Body ─── */
.modal-body {
  background: transparent !important;
  color: var(--text-secondary) !important;
  padding: 20px 24px !important;
}
/* Scrollbar for tall modals */
.modal-body::-webkit-scrollbar {
  width: 4px;
}
.modal-body::-webkit-scrollbar-track {
  background: transparent;
}
.modal-body::-webkit-scrollbar-thumb {
  background: rgba(255,255,255,0.08);
  border-radius: 4px;
}
.modal-body::-webkit-scrollbar-thumb:hover {
  background: rgba(255,255,255,0.14);
}

/* ─── Footer ─── */
.modal-footer {
  background: transparent !important;
  border-top: 1px solid rgba(255,255,255,0.06) !important;
  padding: 14px 24px !important;
  gap: 8px;
}

/* ─── Backdrop ─── */
.modal-backdrop.show {
  opacity: 0.8 !important;
  background: #000 !important;
}

/* ─── Entrance animation ─── */
.modal.fade .modal-dialog {
  transform: translateY(16px) scale(0.98);
  transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.25s ease;
}
.modal.show .modal-dialog {
  transform: translateY(0) scale(1);
}

/* ═══════════════════════════════════════════════════════════
   FORM CONTROLS — Deep black inputs, white text/borders
   ═══════════════════════════════════════════════════════════ */

/* ─── Labels ─── */
.modal label,
.modal .form-label,
.modal .col-form-label {
  color: rgba(255,255,255,0.55) !important;
  font-size: 12px !important;
  font-weight: 500 !important;
  letter-spacing: 0.03em;
  margin-bottom: 4px;
}
/* Required asterisk hint */
.modal .form-group label[for]::after {
  color: rgba(255,255,255,0.15);
}

/* ─── Text inputs, textareas, selects ─── */
.modal .form-control,
.modal .form-select,
.modal select,
.modal textarea,
.modal input[type="text"],
.modal input[type="email"],
.modal input[type="number"],
.modal input[type="password"],
.modal input[type="url"],
.modal input[type="tel"],
.modal input[type="date"],
.modal input[type="search"] {
  background: rgba(255,255,255,0.03) !important;
  border: 1px solid rgba(255,255,255,0.10) !important;
  border-radius: 10px !important;
  color: rgba(255,255,255,0.88) !important;
  font-size: 14px !important;
  padding: 10px 14px !important;
  transition: border-color 0.2s ease, background 0.2s ease, box-shadow 0.2s ease;
  height: auto !important;
}
.modal textarea.form-control {
  min-height: 80px;
  resize: vertical;
}
/* Hover */
.modal .form-control:hover,
.modal .form-select:hover,
.modal select:hover,
.modal textarea:hover,
.modal input[type="text"]:hover,
.modal input[type="email"]:hover,
.modal input[type="number"]:hover,
.modal input[type="password"]:hover {
  border-color: rgba(255,255,255,0.16) !important;
  background: rgba(255,255,255,0.04) !important;
}
/* Focus */
.modal .form-control:focus,
.modal .form-select:focus,
.modal select:focus,
.modal textarea:focus,
.modal input:focus {
  background: rgba(255,255,255,0.05) !important;
  border-color: rgba(255,255,255,0.24) !important;
  color: rgba(255,255,255,0.92) !important;
  box-shadow: 0 0 0 3px rgba(255,255,255,0.04), 0 0 20px -4px rgba(255,255,255,0.06) !important;
  outline: none !important;
}
/* Placeholder */
.modal .form-control::placeholder,
.modal input::placeholder,
.modal textarea::placeholder {
  color: rgba(255,255,255,0.22) !important;
  font-weight: 400;
}

/* ─── Disabled / read-only ─── */
.modal .form-control:disabled,
.modal .form-control[readonly],
.modal input:disabled,
.modal select:disabled {
  background: rgba(255,255,255,0.02) !important;
  border-color: rgba(255,255,255,0.04) !important;
  color: rgba(255,255,255,0.30) !important;
  cursor: not-allowed;
}

/* ─── Layout: kill double-container padding ─── */
.modal .modal-body > .container-fluid,
.modal .modal-body > .container {
  padding-left: 0 !important;
  padding-right: 0 !important;
}
/* Stacked layout: label above input (no side-by-side col-md-3/9) */
.modal .form-group > .row {
  flex-direction: column;
  margin-left: 0;
  margin-right: 0;
}
.modal .form-group > .row > [class*="col-md"],
.modal .form-group > .row > [class*="col-lg"],
.modal .form-group > .row > [class*="col-sm"] {
  width: 100% !important;
  max-width: 100% !important;
  flex: 0 0 100% !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}
/* Labels in stacked mode get tighter spacing */
.modal .form-group > .row > label[class*="col-"] {
  margin-bottom: 6px;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}

/* ─── Form group spacing ─── */
.modal .form-group {
  margin-bottom: 16px;
}
.modal .form-group:last-child {
  margin-bottom: 8px;
}
/* Dashed row separators inside modals */
.modal .dashed-row .form-group {
  border-bottom-color: rgba(255,255,255,0.04) !important;
  padding-bottom: 14px;
}

/* ═══════════════════════════════════════════════════════════
   SELECT2 — Match glass inputs
   ═══════════════════════════════════════════════════════════ */
.modal .select2-container--default .select2-selection--single,
.modal .select2-container--default .select2-selection--multiple {
  background: rgba(255,255,255,0.03) !important;
  border: 1px solid rgba(255,255,255,0.10) !important;
  border-radius: 10px !important;
  min-height: 40px !important;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}
.modal .select2-container--default .select2-selection--single:hover,
.modal .select2-container--default .select2-selection--multiple:hover {
  border-color: rgba(255,255,255,0.16) !important;
}
.modal .select2-container--default.select2-container--focus .select2-selection--single,
.modal .select2-container--default.select2-container--focus .select2-selection--multiple,
.modal .select2-container--default.select2-container--open .select2-selection--single,
.modal .select2-container--default.select2-container--open .select2-selection--multiple {
  border-color: rgba(255,255,255,0.24) !important;
  box-shadow: 0 0 0 3px rgba(255,255,255,0.04) !important;
}
.modal .select2-container--default .select2-selection--single .select2-selection__rendered {
  color: rgba(255,255,255,0.88) !important;
  padding-left: 14px !important;
  line-height: 38px !important;
}
.modal .select2-container--default .select2-selection--single .select2-selection__placeholder {
  color: rgba(255,255,255,0.22) !important;
}
.modal .select2-container--default .select2-selection--single .select2-selection__arrow b {
  border-color: rgba(255,255,255,0.30) transparent transparent transparent !important;
}
.modal .select2-container--default .select2-selection--multiple .select2-selection__choice {
  background: rgba(255,255,255,0.08) !important;
  border: 1px solid rgba(255,255,255,0.12) !important;
  border-radius: 6px !important;
  color: rgba(255,255,255,0.80) !important;
  padding: 3px 8px !important;
  font-size: 12px;
}
.modal .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {
  color: rgba(255,255,255,0.40) !important;
}
.modal .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {
  color: rgba(255,255,255,0.80) !important;
}
/* Select2 dropdown (rendered outside modal, global) */
.select2-dropdown {
  background: rgba(15,15,18,0.97) !important;
  border: 1px solid rgba(255,255,255,0.10) !important;
  border-radius: 10px !important;
  box-shadow: 0 16px 48px -8px rgba(0,0,0,0.6) !important;
  backdrop-filter: blur(24px) !important;
  -webkit-backdrop-filter: blur(24px) !important;
  overflow: hidden;
}
.select2-results__option {
  color: rgba(255,255,255,0.60) !important;
  padding: 8px 14px !important;
  font-size: 13px;
  transition: background 0.15s ease, color 0.15s ease;
}
.select2-results__option--highlighted,
.select2-results__option--highlighted[aria-selected] {
  background: rgba(255,255,255,0.08) !important;
  color: rgba(255,255,255,0.92) !important;
}
.select2-results__option[aria-selected="true"] {
  background: rgba(255,255,255,0.05) !important;
  color: rgba(255,255,255,0.80) !important;
}
.select2-search--dropdown .select2-search__field {
  background: rgba(255,255,255,0.04) !important;
  border: 1px solid rgba(255,255,255,0.10) !important;
  border-radius: 8px !important;
  color: rgba(255,255,255,0.88) !important;
  padding: 8px 12px !important;
  margin: 6px !important;
}

/* ═══════════════════════════════════════════════════════════
   BUTTONS inside modals — white outline + solid primary
   ═══════════════════════════════════════════════════════════ */
.modal .btn-default,
.modal .btn-light,
.modal .btn-secondary {
  background: transparent !important;
  border: 1px solid rgba(255,255,255,0.14) !important;
  border-radius: 10px !important;
  color: rgba(255,255,255,0.60) !important;
  font-size: 13px !important;
  font-weight: 500;
  padding: 8px 18px !important;
  transition: all 0.2s ease;
}
.modal .btn-default:hover,
.modal .btn-light:hover,
.modal .btn-secondary:hover {
  background: rgba(255,255,255,0.06) !important;
  border-color: rgba(255,255,255,0.22) !important;
  color: rgba(255,255,255,0.88) !important;
}
.modal .btn-primary,
.modal .btn-info {
  background: rgba(255,255,255,0.90) !important;
  border: 1px solid rgba(255,255,255,0.90) !important;
  border-radius: 10px !important;
  color: #09090b !important;
  font-size: 13px !important;
  font-weight: 600;
  padding: 8px 22px !important;
  transition: all 0.2s ease;
}
.modal .btn-primary:hover,
.modal .btn-info:hover {
  background: #fff !important;
  border-color: #fff !important;
  color: #09090b !important;
  box-shadow: 0 4px 24px rgba(255,255,255,0.12) !important;
  transform: translateY(-1px);
}
.modal .btn-primary:active,
.modal .btn-info:active {
  transform: translateY(0);
  box-shadow: none !important;
}
.modal .btn-danger {
  background: rgba(239,68,68,0.12) !important;
  border: 1px solid rgba(239,68,68,0.25) !important;
  border-radius: 10px !important;
  color: #f87171 !important;
  font-size: 13px !important;
  font-weight: 500;
  padding: 8px 18px !important;
  transition: all 0.2s ease;
}
.modal .btn-danger:hover {
  background: rgba(239,68,68,0.20) !important;
  border-color: rgba(239,68,68,0.40) !important;
  color: #fca5a5 !important;
}

/* ═══════════════════════════════════════════════════════════
   CHECKBOXES & RADIOS — glass style
   ═══════════════════════════════════════════════════════════ */
.modal .form-check-input {
  background-color: rgba(255,255,255,0.04) !important;
  border: 1px solid rgba(255,255,255,0.14) !important;
  width: 18px;
  height: 18px;
  transition: all 0.15s ease;
}
.modal .form-check-input:hover {
  border-color: rgba(255,255,255,0.24) !important;
}
.modal .form-check-input:checked {
  background-color: rgba(255,255,255,0.85) !important;
  border-color: rgba(255,255,255,0.85) !important;
}
.modal .form-check-input:focus {
  box-shadow: 0 0 0 3px rgba(255,255,255,0.06) !important;
}
.modal .form-check-label {
  color: rgba(255,255,255,0.65) !important;
  font-size: 13px;
  padding-left: 4px;
}
.modal .form-switch .form-check-input {
  border-radius: 100px !important;
  width: 36px !important;
  height: 20px !important;
}
.modal .form-switch .form-check-input:checked {
  background-color: rgba(255,255,255,0.85) !important;
}

/* ═══════════════════════════════════════════════════════════
   DATEPICKER inside modals — glass overlay
   ═══════════════════════════════════════════════════════════ */
.datepicker {
  background: rgba(15,15,18,0.97) !important;
  border: 1px solid rgba(255,255,255,0.10) !important;
  border-radius: 12px !important;
  box-shadow: 0 16px 48px -8px rgba(0,0,0,0.6) !important;
  backdrop-filter: blur(24px) !important;
  -webkit-backdrop-filter: blur(24px) !important;
  color: rgba(255,255,255,0.80) !important;
  padding: 8px !important;
}
.datepicker table tr td,
.datepicker table tr th {
  color: rgba(255,255,255,0.55) !important;
  border-radius: 8px !important;
  transition: background 0.12s ease;
}
.datepicker table tr td:hover,
.datepicker table tr th:hover {
  background: rgba(255,255,255,0.08) !important;
  color: rgba(255,255,255,0.88) !important;
}
.datepicker table tr td.active,
.datepicker table tr td.active:hover,
.datepicker table tr td.active.active {
  background: rgba(255,255,255,0.85) !important;
  color: #09090b !important;
}
.datepicker table tr td.today,
.datepicker table tr td.today:hover {
  background: rgba(255,255,255,0.10) !important;
  color: rgba(255,255,255,0.90) !important;
}
.datepicker table tr td.day.disabled,
.datepicker table tr td.day.disabled:hover {
  color: rgba(255,255,255,0.15) !important;
}
.datepicker .datepicker-switch,
.datepicker .prev,
.datepicker .next {
  color: rgba(255,255,255,0.65) !important;
}
.datepicker .datepicker-switch:hover,
.datepicker .prev:hover,
.datepicker .next:hover {
  background: rgba(255,255,255,0.06) !important;
  color: rgba(255,255,255,0.88) !important;
}
.datepicker .dow {
  color: rgba(255,255,255,0.30) !important;
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
}

/* ═══════════════════════════════════════════════════════════
   MISC MODAL ELEMENTS
   ═══════════════════════════════════════════════════════════ */

/* Tables inside modals */
.modal .table { color: var(--text-secondary); }
.modal .table th { color: rgba(255,255,255,0.45); font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.05em; }
.modal .table td { border-color: rgba(255,255,255,0.04); }

/* Cards inside modals */
.modal .card {
  background: rgba(255,255,255,0.02) !important;
  border: 1px solid rgba(255,255,255,0.06) !important;
  border-radius: 12px !important;
}

/* Muted text & helpers */
.modal .text-muted { color: rgba(255,255,255,0.28) !important; }
.modal .help-block { color: rgba(255,255,255,0.28); font-size: 12px; }
.modal hr { border-color: rgba(255,255,255,0.06) !important; }

/* Validation errors */
.modal .error,
.modal label.error {
  color: #f87171 !important;
  font-size: 12px !important;
  font-weight: 400 !important;
  margin-top: 4px;
}
.modal .form-control.error,
.modal .is-invalid {
  border-color: rgba(248,113,113,0.35) !important;
}
.modal .form-control.error:focus,
.modal .is-invalid:focus {
  box-shadow: 0 0 0 3px rgba(248,113,113,0.08) !important;
  border-color: rgba(248,113,113,0.50) !important;
}

/* Rich text editor (TinyMCE / summernote) */
.modal .note-editor {
  background: rgba(255,255,255,0.02) !important;
  border: 1px solid rgba(255,255,255,0.10) !important;
  border-radius: 10px !important;
  overflow: hidden;
}
.modal .note-editor .note-toolbar {
  background: rgba(255,255,255,0.03) !important;
  border-bottom: 1px solid rgba(255,255,255,0.06) !important;
}
.modal .note-editor .note-toolbar .note-btn {
  background: transparent !important;
  border: none !important;
  color: rgba(255,255,255,0.50) !important;
}
.modal .note-editor .note-toolbar .note-btn:hover {
  color: rgba(255,255,255,0.80) !important;
  background: rgba(255,255,255,0.06) !important;
}
.modal .note-editor .note-editing-area .note-editable {
  background: transparent !important;
  color: rgba(255,255,255,0.80) !important;
}

/* File upload zones inside modals */
.modal .post-dropzone,
.modal .dropzone {
  border: 1px dashed rgba(255,255,255,0.12) !important;
  border-radius: 10px !important;
  background: rgba(255,255,255,0.02) !important;
  transition: border-color 0.2s ease;
}
.modal .post-dropzone:hover,
.modal .dropzone:hover {
  border-color: rgba(255,255,255,0.20) !important;
}

/* Alert inside modals */
.modal .alert {
  background: rgba(255,255,255,0.03) !important;
  border: 1px solid rgba(255,255,255,0.08) !important;
  border-radius: 10px !important;
  color: rgba(255,255,255,0.65) !important;
}

/* Input groups (appended/prepended icons) */
.modal .input-group-text {
  background: rgba(255,255,255,0.04) !important;
  border: 1px solid rgba(255,255,255,0.10) !important;
  color: rgba(255,255,255,0.40) !important;
  border-radius: 10px !important;
}

/* Color picker input */
.modal input[type="color"] {
  background: rgba(255,255,255,0.04) !important;
  border: 1px solid rgba(255,255,255,0.10) !important;
  border-radius: 8px !important;
  height: 40px !important;
  width: 60px !important;
  cursor: pointer;
}

/* Nav tabs inside modals */
.modal .nav-tabs {
  border-bottom: 1px solid rgba(255,255,255,0.06) !important;
}
.modal .nav-tabs .nav-link {
  color: rgba(255,255,255,0.40) !important;
  border: none !important;
  font-size: 13px;
  padding: 8px 14px;
}
.modal .nav-tabs .nav-link:hover {
  color: rgba(255,255,255,0.65) !important;
}
.modal .nav-tabs .nav-link.active {
  color: rgba(255,255,255,0.90) !important;
  background: transparent !important;
  border-bottom: 2px solid rgba(255,255,255,0.90) !important;
}

/* Feather icons in buttons */
.modal .btn [data-feather],
.modal .btn .icon-16 {
  vertical-align: -2px;
}

/* ═══ Project Detail — Dark Override (only rules NOT covered globally) ═══ */
/* Progress chart banner */
.project-details-view .bg-primary {
  background: rgba(255,255,255,0.04) !important;
}
/* Overview list-group items */
.project-details-view .list-group-item {
  background: transparent !important;
  border-color: var(--border) !important;
  color: var(--text-secondary) !important;
}
.project-details-view .list-group-item a {
  color: var(--text) !important;
}
/* Chart.js legend text */
.project-details-view canvas + div,
.project-details-view .chartjs-legend li {
  color: var(--text-secondary) !important;
}
/* Activity feed section */
.project-details-view .project-activity-section {
  background: var(--surface) !important;
  border: 1px solid var(--border) !important;
  border-radius: var(--radius-sm) !important;
}
.project-details-view .project-activity-section h4 {
  color: var(--text) !important;
}
/* Inline project title section tabs — horizontal scroll, underline style */
#project-tabs.nav-tabs {
  border-bottom: 1px solid var(--border) !important;
  display: flex;
  flex-wrap: nowrap !important;
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  -ms-overflow-style: none;
}
#project-tabs.nav-tabs::-webkit-scrollbar {
  display: none;
}
#project-tabs .nav-item {
  flex-shrink: 0;
}
#project-tabs .nav-link {
  color: var(--text-muted) !important;
  border: none !important;
  border-bottom: 2px solid transparent !important;
  background: transparent !important;
  padding: 8px 14px;
  font-size: 13px;
  font-weight: 500;
  white-space: nowrap;
}
#project-tabs .nav-link:hover {
  color: var(--text) !important;
  border-bottom-color: var(--border-hover) !important;
}
#project-tabs .nav-link.active {
  color: var(--text) !important;
  border-bottom-color: var(--text) !important;
  background: transparent !important;
}
/* Widget counters */
.project-details-view .card h1 {
  color: var(--text) !important;
}

/* ─── Project title: uppercase, compact ─── */
.project-title-section .page-title h1 {
  font-size: 14px !important;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  font-weight: 600;
}
.project-title-section .page-title h1 .icon {
  width: 16px !important;
  height: 16px !important;
}

/* ─── Project header buttons: monochrome ─── */
.project-title-section .btn-primary,
.project-title-section .btn-success,
.project-title-section .btn-info {
  background: rgba(255,255,255,0.06) !important;
  border: 1px solid rgba(255,255,255,0.12) !important;
  color: var(--text) !important;
  font-size: 13px;
  font-weight: 500;
  border-radius: var(--radius-sm) !important;
}
.project-title-section .btn-primary:hover,
.project-title-section .btn-success:hover,
.project-title-section .btn-info:hover {
  background: rgba(255,255,255,0.12) !important;
  border-color: rgba(255,255,255,0.20) !important;
  color: #fff !important;
}
.project-title-section .btn-danger {
  background: rgba(220,38,38,0.12) !important;
  border: 1px solid rgba(220,38,38,0.25) !important;
  color: var(--mz-danger) !important;
  font-size: 13px;
  font-weight: 500;
  border-radius: var(--radius-sm) !important;
}
.project-title-section .btn-danger:hover {
  background: rgba(220,38,38,0.20) !important;
  border-color: rgba(220,38,38,0.35) !important;
}
.project-title-section .btn-default {
  font-size: 13px;
  font-weight: 500;
}
/* Dropdown menu inside project header */
.project-title-section .dropdown-menu {
  background: rgba(12, 12, 14, 0.96) !important;
  border: 1px solid rgba(255,255,255,0.08) !important;
  border-radius: var(--radius-sm) !important;
  backdrop-filter: blur(24px) !important;
  -webkit-backdrop-filter: blur(24px) !important;
  box-shadow: 0 8px 32px rgba(0,0,0,0.5) !important;
}
.project-title-section .dropdown-menu .dropdown-item {
  color: var(--text-secondary) !important;
  font-size: 13px;
}
.project-title-section .dropdown-menu .dropdown-item:hover {
  background: rgba(255,255,255,0.06) !important;
  color: var(--text) !important;
}

/* ═══════════════════════════════════════════════════════════════
   Glass Table Variant — consolidated from 21 bento_index views
   ═══════════════════════════════════════════════════════════════ */

/* Base: no padding, overflow visible for dropdowns */
.mz-glass--table {
    padding: 0 !important;
    overflow: visible !important;
}

/* Kill legacy .card backgrounds inside glass table */
.mz-glass--table .card {
    background: transparent !important;
    border: none !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
}
.mz-glass--table .card::before { display: none !important; }

/* Table cells transparent */
.mz-glass--table .table-responsive { background: transparent !important; }
.mz-glass--table table { background: transparent !important; }
.mz-glass--table table thead th {
    background: rgba(255,255,255,0.02) !important;
    color: var(--text-muted) !important;
    border-color: var(--border) !important;
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}
.mz-glass--table table tbody td {
    background: transparent !important;
    color: var(--text-secondary) !important;
    border-color: var(--border) !important;
}
.mz-glass--table table tbody tr:hover td {
    background: var(--surface-hover) !important;
}

/* Filter section + DataTables wrapper */
.mz-glass--table .filter-section-container { background: transparent !important; }
.mz-glass--table .dataTables_wrapper { background: transparent !important; }
.mz-glass--table .dataTables_info { color: var(--text-muted) !important; }
.mz-glass--table .dataTables_paginate .paginate_button {
    color: var(--text-secondary) !important;
    background: transparent !important;
    border-color: var(--border) !important;
}
.mz-glass--table .dataTables_paginate .paginate_button.current {
    background: rgba(255,255,255,0.08) !important;
    color: var(--text) !important;
}
.mz-glass--table .dataTables_paginate .paginate_button:hover {
    background: var(--surface-hover) !important;
    color: var(--text) !important;
}
.mz-glass--table .DTTT_container .btn,
.mz-glass--table .datatable-tools .btn {
    background: rgba(255,255,255,0.04) !important;
    border-color: var(--border) !important;
    color: var(--text-secondary) !important;
}
.mz-glass--table .dataTables_length select,
.mz-glass--table .dataTables_filter input {
    background: rgba(255,255,255,0.04) !important;
    border-color: var(--border) !important;
    color: var(--text) !important;
}

/* Nav tabs inside glass card */
.mz-glass--table .nav-tabs {
    background: transparent !important;
    border-bottom: 1px solid var(--border) !important;
}
.mz-glass--table .nav-tabs .nav-link,
.mz-glass--table .nav-tabs li a {
    color: var(--text-muted) !important;
    border: none !important;
    border-bottom: 2px solid transparent !important;
    background: transparent !important;
    padding: 10px 16px !important;
    font-size: 13px;
    font-weight: 500;
}
.mz-glass--table .nav-tabs .nav-link:hover,
.mz-glass--table .nav-tabs li a:hover {
    color: var(--text) !important;
    border-bottom-color: var(--border-hover) !important;
}
.mz-glass--table .nav-tabs .nav-link.active,
.mz-glass--table .nav-tabs li.active a,
.mz-glass--table .nav-tabs li a.active {
    color: var(--text) !important;
    border-bottom-color: var(--text) !important;
}

/* Summation row */
.mz-glass--table .datatable-summation { background: transparent !important; border-color: var(--border) !important; }
.mz-glass--table .datatable-summation td { background: rgba(255,255,255,0.02) !important; color: var(--text) !important; font-weight: 600; }

/* ═══════════════════════════════════════════════════════════════
   Glass Calendar — consolidated from events/bento_index.php
   ═══════════════════════════════════════════════════════════════ */

/* Layout: Calendar + Sidebar */
.mz-cal-layout { display: flex; gap: 16px; min-height: calc(100vh - 180px); }
.mz-cal-main { flex: 1; min-width: 0; }
.mz-cal-sidebar { width: 280px; flex-shrink: 0; }
.mz-cal-layout--mobile { flex-direction: column; }
.mz-cal-layout--mobile .mz-cal-sidebar { width: 100%; }

/* Filter chips inline */
.mz-cal-filters { display: flex; align-items: center; gap: 8px; }
.mz-cal-select { max-width: 160px !important; }
.mz-cal-filter-wrap { margin-top: 0 !important; }
.mz-cal-filter-wrap .multi-select-container { margin-top: 0 !important; }

/* Glass calendar container */
.mz-glass--calendar { padding: 16px !important; overflow: visible !important; }
.mz-glass--agenda { padding: 0 !important; display: flex; flex-direction: column; height: 100%; }

/* FullCalendar Dark Override */
.mz-glass--calendar .fc { background: transparent; }
.mz-glass--calendar .fc-theme-standard td,
.mz-glass--calendar .fc-theme-standard th,
.mz-glass--calendar .fc-theme-standard .fc-scrollgrid { border-color: var(--border) !important; }

/* Header toolbar */
.mz-glass--calendar .fc-toolbar { margin-bottom: 16px !important; }
.mz-glass--calendar .fc-toolbar-title { color: var(--text) !important; font-size: 18px !important; font-weight: 600 !important; letter-spacing: -0.02em; }

/* Navigation buttons */
.mz-glass--calendar .fc-button {
    background: rgba(255,255,255,0.04) !important;
    border: 1px solid var(--border) !important;
    color: var(--text-secondary) !important;
    font-size: 13px !important;
    font-weight: 500 !important;
    padding: 6px 12px !important;
    border-radius: var(--radius-xs) !important;
    text-transform: capitalize !important;
    box-shadow: none !important;
}
.mz-glass--calendar .fc-button:hover {
    background: var(--surface-hover) !important;
    color: var(--text) !important;
}
.mz-glass--calendar .fc-button-active,
.mz-glass--calendar .fc-button.fc-button-active {
    background: rgba(255,255,255,0.10) !important;
    color: var(--text) !important;
    border-color: var(--border-hover) !important;
}
.mz-glass--calendar .fc-button-group > .fc-button { border-radius: 0 !important; }
.mz-glass--calendar .fc-button-group > .fc-button:first-child { border-radius: var(--radius-xs) 0 0 var(--radius-xs) !important; }
.mz-glass--calendar .fc-button-group > .fc-button:last-child { border-radius: 0 var(--radius-xs) var(--radius-xs) 0 !important; }

/* Today button */
.mz-glass--calendar .fc-today-button { border-radius: var(--radius-xs) !important; }
.mz-glass--calendar .fc-today-button:disabled { opacity: 0.3 !important; }

/* Day headers */
.mz-glass--calendar .fc-col-header-cell { background: transparent !important; border-color: var(--border) !important; padding: 10px 0 !important; }
.mz-glass--calendar .fc-col-header-cell-cushion {
    color: var(--text-muted) !important;
    font-size: 11px !important;
    font-weight: 600 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.5px !important;
    text-decoration: none !important;
}

/* Day cells */
.mz-glass--calendar .fc-daygrid-day { background: transparent !important; transition: background 0.15s ease; }
.mz-glass--calendar .fc-daygrid-day:hover { background: rgba(255,255,255,0.02) !important; }
.mz-glass--calendar .fc-daygrid-day-number {
    color: var(--text-secondary) !important;
    font-size: 13px !important;
    font-weight: 500 !important;
    padding: 8px 10px !important;
    text-decoration: none !important;
}

/* Today highlight */
.mz-glass--calendar .fc-day-today { background: rgba(255,255,255,0.03) !important; }
.mz-glass--calendar .fc-day-today .fc-daygrid-day-number {
    color: var(--text) !important;
    background: rgba(255,255,255,0.88);
    color: #09090b !important;
    width: 28px; height: 28px;
    border-radius: 50%;
    display: inline-flex; align-items: center; justify-content: center;
    font-weight: 700 !important; line-height: 1;
}

/* Other month days */
.mz-glass--calendar .fc-day-other .fc-daygrid-day-number { color: var(--text-muted) !important; opacity: 0.5; }

/* Events (pills) */
.mz-glass--calendar .fc-daygrid-event { border-radius: 4px !important; border: none !important; padding: 2px 6px !important; font-size: 12px !important; line-height: 1.4 !important; margin: 1px 3px !important; }
.mz-glass--calendar .fc-daygrid-event .fc-event-title { font-weight: 500; }
.mz-glass--calendar .fc-daygrid-dot-event { padding: 2px 6px !important; }
.mz-glass--calendar .fc-daygrid-dot-event:hover { background: var(--surface-hover) !important; }

/* "More" link */
.mz-glass--calendar .fc-daygrid-more-link { color: var(--text-muted) !important; font-size: 11px !important; font-weight: 600 !important; }
.mz-glass--calendar .fc-daygrid-more-link:hover { color: var(--text) !important; }

/* Popover */
.mz-glass--calendar .fc-popover {
    background: #1a1a1d !important;
    border: 1px solid var(--border-hover) !important;
    border-radius: var(--radius-sm) !important;
    box-shadow: var(--shadow-lg) !important;
}
.mz-glass--calendar .fc-popover-header { background: transparent !important; color: var(--text) !important; border-bottom: 1px solid var(--border) !important; padding: 10px 14px !important; }
.mz-glass--calendar .fc-popover-close { color: var(--text-muted) !important; }

/* Time grid (week/day views) */
.mz-glass--calendar .fc-timegrid-slot { border-color: var(--border) !important; height: 48px !important; }
.mz-glass--calendar .fc-timegrid-slot-label-cushion { color: var(--text-muted) !important; font-size: 11px !important; }
.mz-glass--calendar .fc-timegrid-axis-cushion { color: var(--text-muted) !important; font-size: 11px !important; }
.mz-glass--calendar .fc-timegrid-event { border-radius: 4px !important; border: none !important; border-left: 3px solid !important; box-shadow: none !important; }
.mz-glass--calendar .fc-timegrid-now-indicator-line { border-color: var(--mz-danger) !important; }
.mz-glass--calendar .fc-timegrid-now-indicator-arrow { border-color: var(--mz-danger) !important; color: var(--mz-danger) !important; }

/* List view */
.mz-glass--calendar .fc-list { border: none !important; }
.mz-glass--calendar .fc-list-day-cushion { background: rgba(255,255,255,0.03) !important; color: var(--text) !important; }
.mz-glass--calendar .fc-list-day-text,
.mz-glass--calendar .fc-list-day-side-text { color: var(--text-secondary) !important; text-decoration: none !important; }
.mz-glass--calendar .fc-list-event td { border-color: var(--border) !important; color: var(--text-secondary) !important; }
.mz-glass--calendar .fc-list-event:hover td { background: var(--surface-hover) !important; }
.mz-glass--calendar .fc-list-event-title a { color: var(--text) !important; text-decoration: none !important; }
.mz-glass--calendar .fc-list-empty { background: transparent !important; color: var(--text-muted) !important; }

/* Scrollbar */
.mz-glass--calendar .fc-scroller::-webkit-scrollbar { width: 6px; }
.mz-glass--calendar .fc-scroller::-webkit-scrollbar-track { background: transparent; }
.mz-glass--calendar .fc-scroller::-webkit-scrollbar-thumb { background: var(--border); border-radius: 3px; }

/* Agenda Sidebar */
.mz-agenda-header { display: flex; justify-content: space-between; align-items: center; padding: 16px 16px 12px; border-bottom: 1px solid var(--border); }
.mz-agenda-title { color: var(--text); font-size: 14px; font-weight: 600; letter-spacing: -0.01em; }
.mz-agenda-date { color: var(--text-muted); font-size: 12px; font-weight: 500; }
.mz-agenda-list { flex: 1; overflow-y: auto; padding: 8px 0; }
.mz-agenda-list::-webkit-scrollbar { width: 4px; }
.mz-agenda-list::-webkit-scrollbar-track { background: transparent; }
.mz-agenda-list::-webkit-scrollbar-thumb { background: var(--border); border-radius: 2px; }

/* Agenda day group */
.mz-agenda-day { padding: 4px 16px 0; }
.mz-agenda-day-label { color: var(--text-muted); font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.5px; padding: 8px 0 4px; }

/* Agenda event item */
.mz-agenda-item { display: flex; align-items: flex-start; gap: 10px; padding: 8px 16px; cursor: pointer; transition: background 0.15s ease; border-radius: 6px; margin: 0 4px; text-decoration: none !important; }
.mz-agenda-item:hover { background: var(--surface-hover); }
.mz-agenda-dot { width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0; margin-top: 5px; }
.mz-agenda-item-content { flex: 1; min-width: 0; }
.mz-agenda-item-title { color: var(--text); font-size: 13px; font-weight: 500; line-height: 1.3; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.mz-agenda-item-time { color: var(--text-muted); font-size: 11px; margin-top: 2px; }
.mz-agenda-empty { display: flex; flex-direction: column; align-items: center; gap: 8px; padding: 40px 16px; color: var(--text-muted); font-size: 13px; }

/* Calendar responsive */
@media (max-width: 992px) {
    .mz-cal-layout { flex-direction: column; }
    .mz-cal-sidebar { width: 100%; }
    .mz-cal-layout { min-height: auto; }
}
@media (max-width: 768px) {
    .mz-glass--calendar { padding: 8px !important; }
    .mz-glass--calendar .fc-toolbar { flex-direction: column; gap: 8px; }
    .mz-glass--calendar .fc-toolbar-title { font-size: 16px !important; }
}

/* ═══════════════════════════════════════════════════════════════
   Spotlight Search Modal
   ═══════════════════════════════════════════════════════════════ */

.mz-spotlight-active { background: rgba(0, 0, 0, 0.6) !important; }
.mz-spotlight-active .modal-dialog { margin: 60px auto 0; max-width: 680px; transform: none !important; }
.mz-spotlight-active .modal-content { background: rgba(18, 18, 24, 0.97) !important; backdrop-filter: blur(24px); -webkit-backdrop-filter: blur(24px); border: 1px solid rgba(255, 255, 255, 0.08) !important; border-radius: 16px !important; box-shadow: 0 25px 60px rgba(0, 0, 0, 0.5), 0 0 0 1px rgba(255, 255, 255, 0.05) inset !important; overflow: hidden; }
.mz-spotlight-active .modal-header { display: none !important; }
.mz-spotlight-active .modal-body { padding: 0 !important; }

/* Search input */
.mz-spotlight-search { display: flex; align-items: center; padding: 16px 20px; border-bottom: 1px solid rgba(255, 255, 255, 0.06); }
.mz-spotlight-search-icon { width: 20px; height: 20px; color: rgba(255, 255, 255, 0.35); flex-shrink: 0; }
.mz-spotlight-search input { flex: 1; background: transparent; border: none; outline: none; color: rgba(255, 255, 255, 0.9); font-size: 16px; padding: 0 14px; font-weight: 400; letter-spacing: -0.01em; }
.mz-spotlight-search input::placeholder { color: rgba(255, 255, 255, 0.25); }
.mz-spotlight-kbd { display: inline-block; padding: 2px 8px; font-size: 11px; font-family: inherit; background: rgba(255, 255, 255, 0.06); border: 1px solid rgba(255, 255, 255, 0.1); border-radius: 4px; color: rgba(255, 255, 255, 0.3); flex-shrink: 0; }

/* Filter chips */
.mz-spotlight-chips { display: flex; gap: 6px; padding: 10px 20px; border-bottom: 1px solid rgba(255, 255, 255, 0.06); overflow-x: auto; -ms-overflow-style: none; scrollbar-width: none; }
.mz-spotlight-chips::-webkit-scrollbar { display: none; }
.mz-spotlight-chip { padding: 4px 12px; border-radius: 20px; font-size: 12px; font-weight: 500; color: rgba(255, 255, 255, 0.45); background: rgba(255, 255, 255, 0.04); border: 1px solid transparent; cursor: pointer; white-space: nowrap; transition: all 0.15s; outline: none; }
.mz-spotlight-chip:hover { color: rgba(255, 255, 255, 0.7); background: rgba(255, 255, 255, 0.07); }
.mz-spotlight-chip.active { color: rgba(255, 255, 255, 0.9); background: rgba(99, 102, 241, 0.18); border-color: rgba(99, 102, 241, 0.35); }

/* Results body */
.mz-spotlight-body { max-height: 400px; overflow-y: auto; padding: 4px 0; }
.mz-spotlight-body::-webkit-scrollbar { width: 4px; }
.mz-spotlight-body::-webkit-scrollbar-track { background: transparent; }
.mz-spotlight-body::-webkit-scrollbar-thumb { background: rgba(255, 255, 255, 0.08); border-radius: 2px; }

/* Group header */
.mz-spotlight-group { padding: 4px 0; }
.mz-spotlight-group-header { display: flex; align-items: center; gap: 8px; padding: 8px 20px 4px; font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.06em; color: rgba(255, 255, 255, 0.3); }
.mz-spotlight-group-header svg { width: 13px; height: 13px; }

/* Result item */
.mz-spotlight-item { display: flex; align-items: center; padding: 9px 20px; text-decoration: none !important; color: rgba(255, 255, 255, 0.75); cursor: pointer; transition: background 0.1s; gap: 8px; }
.mz-spotlight-item:hover, .mz-spotlight-item.active { background: rgba(255, 255, 255, 0.05); color: rgba(255, 255, 255, 0.95); }
.mz-spotlight-item.active { background: rgba(99, 102, 241, 0.12); }
.mz-spotlight-item-title { flex: 1; font-size: 13.5px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: 450; }
.mz-spotlight-item-meta { font-size: 12px; color: rgba(255, 255, 255, 0.3); flex-shrink: 0; max-width: 220px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mz-spotlight-item-arrow { width: 14px; height: 14px; color: rgba(255, 255, 255, 0.15); flex-shrink: 0; opacity: 0; transition: opacity 0.15s; }
.mz-spotlight-item:hover .mz-spotlight-item-arrow, .mz-spotlight-item.active .mz-spotlight-item-arrow { opacity: 1; }

/* Empty / Loading states */
.mz-spotlight-empty { display: flex; flex-direction: column; align-items: center; gap: 10px; padding: 48px 20px; color: rgba(255, 255, 255, 0.25); font-size: 14px; }
.mz-spotlight-empty-icon { width: 32px; height: 32px; opacity: 0.4; }
.mz-spotlight-loading { display: flex; justify-content: center; padding: 48px 20px; }
.mz-spotlight-spinner { width: 24px; height: 24px; border: 2px solid rgba(255, 255, 255, 0.08); border-top-color: rgba(99, 102, 241, 0.5); border-radius: 50%; animation: mz-spin 0.6s linear infinite; }
@keyframes mz-spin { to { transform: rotate(360deg); } }

/* Footer */
.mz-spotlight-footer { display: flex; gap: 16px; padding: 10px 20px; border-top: 1px solid rgba(255, 255, 255, 0.06); font-size: 11px; color: rgba(255, 255, 255, 0.22); }
.mz-spotlight-footer kbd { display: inline-block; padding: 1px 5px; font-size: 10px; font-family: inherit; background: rgba(255, 255, 255, 0.06); border: 1px solid rgba(255, 255, 255, 0.08); border-radius: 3px; color: rgba(255, 255, 255, 0.35); margin-right: 2px; }

/* Spotlight responsive */
@media (max-width: 768px) {
    .mz-spotlight-active .modal-dialog { margin: 20px 12px 0; max-width: none; }
    .mz-spotlight-body { max-height: 60vh; }
    .mz-spotlight-footer { display: none; }
}

/* ═══════════════════════════════════════════════════════════
   GLASSMORPHIC LOADER — Replaces legacy blue spinners
   ═══════════════════════════════════════════════════════════ */

/* Page pre-loader */
#pre-loader {
    background: rgba(9, 9, 11, 0.98);
    display: flex;
    align-items: center;
    justify-content: center;
}

/* Conic-gradient spinner — replaces blue border circle */
.app-loader {
    background: transparent;
    display: flex;
    align-items: center;
    justify-content: center;
}

.app-loader .loading {
    width: 40px;
    height: 40px;
    border: none;
    border-radius: 50%;
    background: conic-gradient(from 0deg, transparent 30%, rgba(139, 92, 246, 0.7));
    -webkit-mask: radial-gradient(farthest-side, transparent calc(100% - 3px), #000 calc(100% - 2.5px));
    mask: radial-gradient(farthest-side, transparent calc(100% - 3px), #000 calc(100% - 2.5px));
    animation: mz-loader-spin 0.75s linear infinite;
}

.circle-loader {
    width: 40px;
    height: 40px;
    border: none;
    border-radius: 50%;
    background: conic-gradient(from 0deg, transparent 30%, rgba(139, 92, 246, 0.7));
    -webkit-mask: radial-gradient(farthest-side, transparent calc(100% - 3px), #000 calc(100% - 2.5px));
    mask: radial-gradient(farthest-side, transparent calc(100% - 3px), #000 calc(100% - 2.5px));
    animation: mz-loader-spin 0.75s linear infinite;
    margin: 10px auto;
}

.table-loader .loading {
    width: 32px;
    height: 32px;
    border: none;
    border-radius: 50%;
    background: conic-gradient(from 0deg, transparent 30%, rgba(139, 92, 246, 0.6));
    -webkit-mask: radial-gradient(farthest-side, transparent calc(100% - 2.5px), #000 calc(100% - 2px));
    mask: radial-gradient(farthest-side, transparent calc(100% - 2.5px), #000 calc(100% - 2px));
    animation: mz-loader-spin 0.75s linear infinite;
}

.inline-loader {
    width: 18px !important;
    height: 18px !important;
    border: none !important;
    border-radius: 50% !important;
    background: conic-gradient(from 0deg, transparent 30%, rgba(139, 92, 246, 0.6)) !important;
    -webkit-mask: radial-gradient(farthest-side, transparent calc(100% - 2px), #000 calc(100% - 1.5px));
    mask: radial-gradient(farthest-side, transparent calc(100% - 2px), #000 calc(100% - 1.5px));
    animation: mz-loader-spin 0.75s linear infinite;
    padding: 0 !important;
}

@keyframes mz-loader-spin {
    to { transform: rotate(360deg); }
}

/* Modal loader glass card with tips */
.mz-loader-wrap {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 20px;
    padding: 48px 24px;
}

.mz-loader-ring {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    background: conic-gradient(from 0deg, transparent 25%, rgba(139, 92, 246, 0.7) 75%, transparent 100%);
    -webkit-mask: radial-gradient(farthest-side, transparent calc(100% - 3px), #000 calc(100% - 2.5px));
    mask: radial-gradient(farthest-side, transparent calc(100% - 3px), #000 calc(100% - 2.5px));
    animation: mz-loader-spin 0.75s linear infinite;
}

.mz-loader-tip {
    font-size: 13px;
    color: rgba(255, 255, 255, 0.35);
    text-align: center;
    max-width: 320px;
    line-height: 1.5;
    transition: opacity 0.3s ease;
    min-height: 20px;
    margin: 0;
}

/* Glass modal content/header/footer in dark theme */
#ajaxModal .modal-content {
    background: rgba(18, 18, 30, 0.97);
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
    border: 1px solid rgba(255, 255, 255, 0.06);
    border-radius: var(--radius);
}
#ajaxModal .modal-header {
    border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}
#ajaxModal .modal-header .modal-title {
    color: var(--text);
}
#ajaxModal .modal-header .btn-close {
    filter: invert(1) brightness(0.6);
}
#ajaxModal .modal-footer {
    border-top: 1px solid rgba(255, 255, 255, 0.06);
}
#ajaxModal .modal-footer .btn-default {
    color: var(--text-secondary);
    background: var(--surface);
    border-color: var(--border);
}
#ajaxModal .modal-footer .btn-default:hover {
    background: var(--surface-hover);
    border-color: var(--border-hover);
}

/* ═══════════════════════════════════════════════════════════════
   MOBILE-FIRST AUDIT — Phase 1 (2026-03-10)
   Comprehensive responsive fixes for <768px and 501-768px
   ═══════════════════════════════════════════════════════════════ */

/* ── Tablet Breakpoint (501-768px) ── */
@media (min-width: 501px) and (max-width: 768px) {
  .mz-bento {
    grid-template-columns: repeat(2, 1fr);
    gap: 10px;
    padding: 10px;
  }
  .mz-cell { grid-column: span 1; }
  .mz-cell--wide,
  .mz-cell--greeting { grid-column: span 2; }
  .mz-cell--full { grid-column: span 2; }

  .mz-status-grid { grid-template-columns: repeat(4, 1fr); gap: 8px; }
}

/* ── Small Screens (≤500px) ── */
@media (max-width: 500px) {
  .mz-bento {
    padding: 8px;
    gap: 8px;
  }

  .mz-glass {
    padding: 14px;
    border-radius: 10px;
  }

  .mz-status-grid { grid-template-columns: repeat(2, 1fr); gap: 6px; }
  .mz-status-num { font-size: 16px; }
  .mz-status-label { font-size: 9px; }

  .mz-metric-value { font-size: 20px; }
  .mz-greeting-title { font-size: 16px; }
}

/* ── Modals: Fullscreen on mobile with safe-area ── */
@media (max-width: 768px) {
  #ajaxModal .modal-dialog,
  .modal .modal-dialog {
    margin: 0;
    max-width: 100%;
    min-height: 100vh;
  }
  #ajaxModal .modal-content,
  .modal .modal-content {
    min-height: 100vh;
    border-radius: 0;
    border: none;
    padding-top: env(safe-area-inset-top, 0px);
    padding-bottom: env(safe-area-inset-bottom, 0px);
  }
  #ajaxModal .modal-body {
    max-height: calc(100vh - 120px - env(safe-area-inset-top, 0px));
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
  }
}

/* ── Forms: Touch-friendly inputs ── */
@media (max-width: 768px) {
  .form-control,
  .form-select,
  .select2-container .select2-selection--single {
    min-height: 44px !important;
    font-size: 16px !important; /* prevents iOS zoom on focus */
  }

  .btn {
    min-height: 44px;
    min-width: 44px;
    padding: 10px 16px;
  }

  .form-check-input {
    width: 22px;
    height: 22px;
  }

  .form-check-label {
    padding-left: 6px;
    line-height: 22px;
  }

  textarea.form-control {
    min-height: 88px;
  }
}

/* ── DataTables: Responsive columns ── */
@media (max-width: 768px) {
  .dataTables_wrapper {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  table.dataTable {
    min-width: 100%;
  }

  /* Hide low-priority columns on mobile */
  table.dataTable th.w10p,
  table.dataTable td.w10p,
  table.dataTable th:nth-child(n+5),
  table.dataTable td:nth-child(n+5) {
    display: none;
  }

  /* Compact table cells */
  table.dataTable td,
  table.dataTable th {
    padding: 8px 6px !important;
    font-size: 13px;
  }

  .dataTables_filter input {
    min-height: 44px !important;
    font-size: 16px !important;
  }

  .dataTables_length select {
    min-height: 44px !important;
  }

  /* Stack filter + length controls */
  .dataTables_filter,
  .dataTables_length {
    float: none !important;
    text-align: left !important;
    margin-bottom: 8px;
  }
}

/* ── Sidebar: Additional mobile fixes ── */
@media (max-width: 768px) {
  .sidebar .sidebar-scroll {
    height: 100vh !important;
  }

  .sidebar .sidebar-scroll::-webkit-scrollbar {
    width: 0;
    display: none;
  }

  /* Content push down for tab bar (scrollable-page only, page-container has header padding) */
  .scrollable-page {
    padding-bottom: calc(72px + env(safe-area-inset-bottom, 0px)) !important;
  }
}

/* ── Top bar: Simplified on mobile ── */
@media (max-width: 768px) {
  #left-menu-topbar-button-container {
    display: none !important;
  }

  .page-title {
    font-size: 16px !important;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 70vw;
  }

  .breadcrumb {
    display: none !important;
  }
}

/* ── Cards & Panels: Stack nicely ── */
@media (max-width: 768px) {
  .card,
  .box {
    margin-bottom: 8px !important;
  }

  .row > [class*="col-"] {
    margin-bottom: 8px;
  }

  /* Horizontal scroll prevention */
  body,
  .page-container,
  .scrollable-page {
    overflow-x: hidden;
  }
}

/* ── Mozart AI Chat: Fullscreen on mobile with safe-area ── */
@media (max-width: 768px) {
  .mz-ai-overlay {
    border-radius: 0 !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    width: 100% !important;
    height: 100% !important;
    max-height: 100vh !important;
  }

  .mz-ai-panel {
    padding-top: 0 !important; /* safe-area handled by chat-header */
    padding-bottom: 0 !important; /* safe-area handled by input-area */
  }

  .mz-ai-chat-input {
    font-size: 16px !important; /* prevent iOS zoom */
  }
}

/* ═══════════════════════════════════════
   TASK MODAL v2 — Horizontal metadata + tabs
   ═══════════════════════════════════════ */

/* Header area */
.mz-task-header { padding: 20px 24px 0; }
.mz-task-header-top {
  display: flex; align-items: center; gap: 10px; margin-bottom: 14px;
}
.mz-task-id { font-size: 11px; font-weight: 600; color: var(--text-muted); font-variant-numeric: tabular-nums; flex-shrink: 0; }
.mz-task-breadcrumb { display: flex; align-items: center; gap: 6px; font-size: 11px; color: var(--text-muted); flex: 1; min-width: 0; }
.mz-task-breadcrumb a { color: var(--text-muted); text-decoration: none; transition: var(--transition); }
.mz-task-breadcrumb a:hover { color: var(--text-secondary); }
.mz-task-breadcrumb-sep { opacity: 0.4; font-size: 10px; }

.mz-task-title-row { display: flex; align-items: flex-start; gap: 10px; margin-bottom: 16px; }
.mz-task-priority-dot { width: 10px; height: 10px; min-width: 10px; border-radius: 50%; margin-top: 7px; flex-shrink: 0; }
.mz-task-title { flex: 1; font-size: 20px; font-weight: 700; color: var(--text); letter-spacing: -0.03em; line-height: 1.3; }
.mz-task-title .parent-task-link { font-size: 12px; color: var(--text-muted); font-weight: 400; display: block; margin-top: 4px; }
.mz-task-title .parent-task-link a { color: var(--text-secondary); }
.mz-task-status-wrap { flex-shrink: 0; margin-top: 4px; }

/* Metadata bar */
.mz-task-meta {
  display: flex; flex-wrap: wrap; gap: 0; padding: 0 24px 16px;
  border-bottom: 1px solid var(--border);
}
.mz-task-meta-item {
  display: flex; align-items: center; gap: 8px;
  padding: 8px 16px 8px 0; border-right: 1px solid var(--border);
}
.mz-task-meta-item:first-child { padding-left: 0; }
.mz-task-meta-item:last-child { border-right: none; }
.mz-task-meta-label {
  font-size: 10px; font-weight: 600; text-transform: uppercase;
  letter-spacing: 0.5px; color: var(--text-muted);
}
.mz-task-meta-value { font-size: 12px; color: var(--text-secondary); display: flex; align-items: center; gap: 6px; }
.mz-task-meta-value a { color: var(--text-secondary); text-decoration: none; }
.mz-task-meta-value a:hover { color: var(--text); }

/* Tabs inside task modal */
.mz-task-tabs {
  display: flex; gap: 0; border-bottom: 1px solid var(--border); margin-bottom: 16px;
}
.mz-task-tab {
  padding: 8px 14px; font-size: 11px; font-weight: 600;
  color: var(--text-muted); cursor: pointer; transition: var(--transition);
  border-bottom: 2px solid transparent; margin-bottom: -1px;
  display: flex; align-items: center; gap: 5px; white-space: nowrap;
}
.mz-task-tab:hover { color: var(--text-secondary); }
.mz-task-tab.active { color: var(--text); border-bottom-color: var(--text); }
.mz-task-tab-count {
  font-size: 9px; padding: 1px 5px; border-radius: 8px;
  background: var(--surface-active); color: var(--text-secondary); font-weight: 700;
}

.mz-task-tab-content { display: none; }
.mz-task-tab-content.active { display: block; }

/* Description */
.mz-task-description {
  font-size: 13px; line-height: 1.7; color: var(--text-secondary); margin-bottom: 24px;
}
.mz-task-description p { margin-bottom: 10px; }
.mz-task-description img { max-width: 100%; border-radius: 8px; margin: 8px 0; }

/* Section headers inside tabs */
.mz-task-section-title {
  font-size: 10px; font-weight: 700; text-transform: uppercase;
  letter-spacing: 0.8px; color: var(--text-muted);
  margin-bottom: 8px; padding-bottom: 6px; border-bottom: 1px solid var(--border);
}

/* Timer inline in meta */
.mz-task-timer-inline {
  display: flex; align-items: center; gap: 6px; font-variant-numeric: tabular-nums;
}
.mz-task-timer-dot {
  width: 6px; height: 6px; border-radius: 50%;
  background: var(--green, #10b981);
  animation: mzTimerPulse 2s ease-in-out infinite;
}
@keyframes mzTimerPulse { 0%,100% { opacity: 0.4; } 50% { opacity: 1; } }

/* Responsive task modal */
@media (max-width: 768px) {
  .mz-task-meta { flex-direction: column; padding: 0 16px 12px; }
  .mz-task-meta-item { border-right: none; padding: 6px 0; border-bottom: 1px solid var(--border); }
  .mz-task-meta-item:last-child { border-bottom: none; }
  .mz-task-header { padding: 16px 16px 0; }
  .mz-task-title { font-size: 17px; }
}
