/*
 * SSN theme overrides — matches the reference site screenshots.
 * This file is purely additive: it changes nothing in the existing CSS files.
 * To revert to the previous look, remove the <link> to this file from the
 * shared layouts (admin/layout/main_view.php and customers/layout/main_view.php).
 */

:root {
  /* Sampled directly from the reference screenshots (screenshots/Admin/Home/01_SSNM_AUTO_TECH.png) */
  --ssn-primary: #3b82f6;
  --ssn-primary-dark: #2563eb;
  --ssn-primary-light: #eff6ff;
  --ssn-sidebar-bg: #ffffff;
  --ssn-sidebar-text: #4b4b5a;
  --ssn-sidebar-border: #f0f0f5;
}

/* ---------- Sidebar ---------- */

.main-menu.menu-fixed {
  background-color: var(--ssn-sidebar-bg) !important;
  background-image: none !important;
  border-right: 1px solid var(--ssn-sidebar-border) !important;
}

.main-menu.menu-dark .navigation > li > a {
  color: var(--ssn-sidebar-text) !important;
}

.main-menu.menu-dark .navigation > li.active > a {
  background: var(--ssn-primary-light) !important;
  box-shadow: none !important;
  color: var(--ssn-primary-dark) !important;
  border-left: 3px solid var(--ssn-primary) !important;
  font-weight: 500 !important;
}

.main-menu.menu-dark .navigation > li.open:not(.menu-item-closing) > a,
.main-menu.menu-dark .navigation > li.sidebar-group-active > a {
  color: var(--ssn-sidebar-text) !important;
}

.main-menu.menu-dark .navigation > li .active {
  background: var(--ssn-primary-light) !important;
}

.main-menu.menu-dark .navigation > li .active > a {
  color: var(--ssn-primary-dark) !important;
}

.main-menu.menu-dark .navigation > li .active .hover > a,
.main-menu.menu-dark .navigation > li .active :hover > a {
  background: var(--ssn-primary) !important;
}

.main-menu .navigation-header span {
  color: #9a9aa8 !important;
}

/* Submenu active item (was an orange glow via box-shadow) */
.main-menu.menu-dark .navigation > li ul .active {
  background: var(--ssn-primary-light) !important;
  box-shadow: none !important;
  border-radius: 4px;
}

.main-menu.menu-dark .navigation > li ul .active > a {
  color: var(--ssn-primary-dark) !important;
}

/* menu-light variants (defensive - not currently used, but kept in sync) */
.main-menu.menu-light .navigation > li.active > a {
  background: var(--ssn-primary-light) !important;
  box-shadow: none !important;
  color: var(--ssn-primary-dark) !important;
  border-left: 3px solid var(--ssn-primary) !important;
}

.main-menu.menu-light .navigation > li .active > a {
  color: var(--ssn-primary-dark) !important;
}

.main-menu.menu-light .navigation > li ul .active,
.main-menu.menu-light .navigation > li ul .sidebar-group-active > a {
  background: var(--ssn-primary-light) !important;
  box-shadow: none !important;
}

/* ---------- Sidebar brand text (next to logo) ---------- */

.header .header-left {
  width: 260px !important;
  display: flex !important;
  align-items: center !important;
  height: 100% !important;
}

.header .header-left .logo {
  display: flex !important;
  align-items: center !important;
  height: 100% !important;
}

.header .header-left .logo img {
  width: 38px !important;
  height: 38px !important;
}

.ssn-brand-text {
  margin-left: 10px;
  font-weight: 700;
  font-size: 14px;
  color: #2b2b38;
  white-space: nowrap;
  line-height: 1.2;
}

/* ---------- Header ---------- */

.header {
  background: #ffffff !important;
  border-bottom: 1px solid var(--ssn-sidebar-border) !important;
}

.ssn-header-icon-btn {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  border-radius: 50%;
  color: #6b6b78 !important;
  transition:
    background-color 0.15s ease,
    color 0.15s ease;
}

.ssn-header-icon-btn:hover {
  background: var(--ssn-primary-light);
  color: var(--ssn-primary) !important;
}

.ssn-user-namerole {
  display: inline-flex;
  flex-direction: column;
  line-height: 1.25;
  margin-left: 6px;
  text-align: left;
}

.ssn-user-name {
  font-weight: 600;
  color: #2b2b38;
  font-size: 14px;
}

.ssn-user-role {
  font-size: 11.5px;
  color: #9a9aa8;
}

/* ---------- Buttons: harmonize every variant, not just primary ---------- */

.btn {
  border-radius: 8px !important;
}

.btn-secondary,
.btn-success,
.btn-info,
.btn-warning,
.btn-danger,
.btn-dark {
  box-shadow: none !important;
}

/* Info buttons (e.g. "Search"): neutralize to blue instead of cyan */
.btn-info {
  background-color: var(--ssn-primary) !important;
  border-color: var(--ssn-primary) !important;
  color: #fff !important;
}

.btn-info:hover {
  background-color: var(--ssn-primary-dark) !important;
  border-color: var(--ssn-primary-dark) !important;
}

/* Cancel/warning buttons: neutralize to white+blue palette (was orange) */
.btn-warning {
  background-color: #fff !important;
  border-color: var(--ssn-sidebar-border) !important;
  color: #4b4b5a !important;
}

.btn-warning:hover {
  border-color: var(--ssn-primary) !important;
  color: var(--ssn-primary) !important;
  background-color: var(--ssn-primary-light) !important;
}

.btn-flat-primary,
.btn-outline-primary {
  color: var(--ssn-primary) !important;
}

/* ---------- Forms: consistent rounded inputs with blue focus ring ---------- */

.form-control,
.form-select,
.select2-container--default .select2-selection--single,
.select2-container--default .select2-selection--multiple {
  border-radius: 8px !important;
  border-color: var(--ssn-sidebar-border) !important;
}

.form-control:focus,
.form-select:focus {
  border-color: var(--ssn-primary) !important;
  box-shadow: 0 0 0 3px var(--ssn-primary-light) !important;
}

.select2-container--default.select2-container--focus .select2-selection--single,
.select2-container--default.select2-container--open .select2-selection--single {
  border-color: var(--ssn-primary) !important;
}

.select2-container--default
  .select2-results__option--highlighted[aria-selected] {
  background-color: var(--ssn-primary) !important;
  color: #ffffff !important;
}

.form-check-input:checked {
  background-color: var(--ssn-primary) !important;
  border-color: var(--ssn-primary) !important;
}

/* ---------- Dropdown menus ---------- */

.dropdown-menu {
  border-radius: 10px !important;
  border: 1px solid var(--ssn-sidebar-border) !important;
  box-shadow: 0 8px 24px 0 rgba(34, 41, 47, 0.1) !important;
}

.dropdown-item:hover,
.dropdown-item:focus,
.dropdown-item.active {
  background-color: var(--ssn-primary-light) !important;
  color: var(--ssn-primary-dark) !important;
}

/* ---------- Nav tabs ---------- */

.nav-tabs .nav-link.active {
  color: var(--ssn-primary) !important;
  border-color: transparent transparent var(--ssn-primary) !important;
  border-bottom-width: 2px !important;
}

.nav-tabs .nav-link:hover:not(.active) {
  color: var(--ssn-primary) !important;
}

/* ---------- Badges / alerts / progress ---------- */

.badge.bg-primary,
.bg-light-primary {
  background-color: var(--ssn-primary-light) !important;
  color: var(--ssn-primary-dark) !important;
}

.alert-primary {
  background-color: var(--ssn-primary-light) !important;
  color: var(--ssn-primary-dark) !important;
  border-color: var(--ssn-primary-light) !important;
}

.progress-bar {
  background-color: var(--ssn-primary) !important;
}

/* ---------- Modals ---------- */

.modal-content {
  border-radius: 12px !important;
  border: none !important;
}

.modal-header {
  border-bottom: 1px solid var(--ssn-sidebar-border) !important;
}

/* ---------- Breadcrumb ---------- */

.breadcrumb-item a {
  color: var(--ssn-primary) !important;
}

/* ---------- Scrollbar (webkit) — subtle, matches clean look ---------- */

::-webkit-scrollbar {
  width: 8px;
  height: 8px;
}

::-webkit-scrollbar-thumb {
  background: #d7dbea;
  border-radius: 8px;
}

::-webkit-scrollbar-thumb:hover {
  background: var(--ssn-primary);
}

/* ---------- Primary accent (buttons, links, badges) ---------- */

.btn-primary,
.btn-primary:hover,
.btn-primary:focus {
  background-color: var(--ssn-primary) !important;
  border-color: var(--ssn-primary) !important;
}

.btn-outline-primary {
  color: var(--ssn-primary) !important;
  border-color: var(--ssn-primary) !important;
}

.btn-outline-primary:hover {
  background-color: var(--ssn-primary) !important;
  color: #fff !important;
}

.text-primary {
  color: var(--ssn-primary) !important;
}

.bg-primary {
  background-color: var(--ssn-primary) !important;
}

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

.badge-light-primary {
  background-color: var(--ssn-primary-light) !important;
  color: var(--ssn-primary-dark) !important;
}

/* ---------- List page row/card hover (was orange) ---------- */

.driver_details .driver_list table.table tr.table-active,
.driver_details .table-hover > tbody > tr:hover,
.driver_details .driver_list table.table > tbody > tr:hover {
  background: var(--ssn-primary-light) !important;
  color: inherit !important;
  --bs-table-accent-bg: var(--ssn-primary-light) !important;
}

.driver_details .driver_list table.table tr.table-active td,
.driver_details .table-hover > tbody > tr:hover td,
.driver_details .driver_list table.table > tbody > tr:hover td {
  color: inherit !important;
}

.driver_details .table-hover > tbody > tr:hover .progress {
  background-color: transparent !important;
}

.driverlist .card-header:hover {
  background-color: var(--ssn-primary-light) !important;
  color: inherit !important;
}

.driverlist .card-header:hover .bg-light-primary {
  background: var(--ssn-primary) !important;
  color: #fff !important;
}

.driverlist .card-header:hover h3,
.driverlist .card-header:hover h4 {
  color: inherit !important;
}

/* ---------- Action cards (Add/Download/Reports row) ---------- */

.ssn-action-card {
  display: flex;
  flex-direction: row;
  align-items: center;
  flex-wrap: nowrap;
  gap: 10px;
  background: #fff;
  border: 1px solid var(--ssn-sidebar-border);
  border-radius: 10px;
  padding: 12px 14px;
  height: 100%;
  min-height: 70px;
  box-sizing: border-box;
  overflow: hidden;
  transition:
    box-shadow 0.2s ease,
    transform 0.2s ease,
    border-color 0.2s ease;
}

.ssn-action-card:hover {
  box-shadow: 0 8px 20px 0 rgba(59, 130, 246, 0.14);
  border-color: var(--ssn-primary);
  transform: translateY(-2px);
}

.ssn-action-icon {
  flex: 0 0 40px;
  width: 40px;
  height: 40px;
  min-width: 40px;
  border-radius: 10px;
  background: var(--ssn-primary-light);
  color: var(--ssn-primary);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 16px;
  line-height: 1;
}

.ssn-action-icon i {
  font-size: 16px !important;
  line-height: 1 !important;
  width: auto !important;
  height: auto !important;
}

.ssn-action-text {
  flex: 1 1 0;
  min-width: 0;
  overflow: hidden;
}

.ssn-action-text h3 {
  font-size: 13.5px !important;
  font-weight: 600 !important;
  color: #2b2b38 !important;
  margin: 0 !important;
  padding: 0 !important;
  line-height: 1.3 !important;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.ssn-action-text h4 {
  font-size: 11px !important;
  font-weight: 400 !important;
  color: #9a9aa8 !important;
  margin: 2px 0 0 !important;
  padding: 0 !important;
  line-height: 1.3 !important;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.ssn-action-text .ssn-title,
.ssn-action-text .ssn-sub {
  display: block;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.ssn-action-text .ssn-title {
  font-size: 13.5px;
  font-weight: 600;
  color: #2b2b38;
  line-height: 1.3;
}

.ssn-action-text .ssn-sub {
  font-size: 11px;
  font-weight: 400;
  color: #9a9aa8;
  line-height: 1.3;
  margin-top: 2px;
}

.ssn-action-plus {
  flex: 0 0 24px;
  width: 24px;
  height: 24px;
  min-width: 24px;
  max-width: 24px;
  border-radius: 6px;
  background: var(--ssn-primary);
  color: #fff !important;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  align-self: center;
  margin-left: auto;
  flex-shrink: 0;
}

.ssn-action-plus i {
  font-size: 10px !important;
  line-height: 1 !important;
  width: auto !important;
  height: auto !important;
  color: #fff !important;
}

/* ---------- Table row number badge + icon action buttons ---------- */

.ssn-sno-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: var(--ssn-primary-light);
  color: var(--ssn-primary-dark);
  font-weight: 600;
  font-size: 12.5px;
}

.ssn-icon-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  border-radius: 8px;
  border: none;
  transition:
    transform 0.15s ease,
    box-shadow 0.15s ease;
}

.ssn-icon-btn i,
.ssn-icon-btn svg {
  width: 15px;
  height: 15px;
}

.ssn-icon-btn:hover {
  transform: translateY(-1px);
}

.ssn-icon-btn-edit {
  background: var(--ssn-primary-light);
  color: var(--ssn-primary);
}

.ssn-icon-btn-edit:hover {
  background: var(--ssn-primary);
  color: #fff;
}

.ssn-icon-btn-delete {
  background: #fef2f2;
  color: #ef4444;
}

.ssn-icon-btn-delete:hover {
  background: #ef4444;
  color: #fff;
}

/* ---------- DataTables pagination: rounded blue pills ---------- */

.dataTables_wrapper .pagination .page-item .page-link {
  border-radius: 8px !important;
  margin: 0 3px;
  border: 1px solid var(--ssn-sidebar-border);
  color: #4b4b5a;
}

.dataTables_wrapper .pagination .page-item.active .page-link {
  background-color: var(--ssn-primary) !important;
  border-color: var(--ssn-primary) !important;
  color: #fff !important;
  box-shadow: 0 2px 8px 0 rgba(59, 130, 246, 0.35);
}

.dataTables_wrapper .pagination .page-item .page-link:hover {
  background-color: var(--ssn-primary-light);
  border-color: var(--ssn-primary);
}

/* ---------- DataTables default search box + length control ---------- */

.dataTables_filter input,
.dataTables_length select {
  border-radius: 8px !important;
  border: 1px solid var(--ssn-sidebar-border) !important;
  padding: 6px 12px !important;
}

.dataTables_filter input:focus,
.dataTables_length select:focus {
  border-color: var(--ssn-primary) !important;
  box-shadow: 0 0 0 3px var(--ssn-primary-light) !important;
}

/* ---------- Search input + filter button ---------- */

.ssn-search-input {
  border-radius: 8px 0 0 8px !important;
  border: 1px solid var(--ssn-sidebar-border) !important;
}

.ssn-search-btn {
  border-radius: 0 8px 8px 0 !important;
}

.ssn-filter-btn {
  border-radius: 8px !important;
  border: 1px solid var(--ssn-sidebar-border) !important;
  background: #fff !important;
  color: #4b4b5a !important;
}

.ssn-filter-btn:hover {
  border-color: var(--ssn-primary) !important;
  color: var(--ssn-primary) !important;
}

/* ---------- Cards: soften to match reference's clean white panels ---------- */

.card {
  border-radius: 10px !important;
  box-shadow: 0 2px 10px 0 rgba(34, 41, 47, 0.06) !important;
  border: 1px solid var(--ssn-sidebar-border) !important;
  transition:
    box-shadow 0.2s ease,
    transform 0.2s ease !important;
}

.card:hover {
  box-shadow: 0 8px 24px 0 rgba(59, 130, 246, 0.12) !important;
  transform: translateY(-2px);
}

/* ---------- Motion polish ---------- */

.main-menu.menu-dark .navigation > li > a {
  transition:
    background-color 0.15s ease,
    color 0.15s ease,
    border-color 0.15s ease !important;
}

.main-menu.menu-dark .navigation > li:not(.active) > a:hover {
  background: var(--ssn-primary-light) !important;
  color: var(--ssn-primary-dark) !important;
  border-radius: 6px;
}

.btn-primary {
  transition:
    box-shadow 0.2s ease,
    transform 0.15s ease !important;
  box-shadow: 0 2px 8px 0 rgba(59, 130, 246, 0.28) !important;
}

.btn-primary:hover {
  box-shadow: 0 6px 16px 0 rgba(59, 130, 246, 0.38) !important;
  transform: translateY(-1px);
}

.btn-primary:active {
  transform: translateY(0);
}

/* Round icon badges (the colorful stat-card icons) get a soft ring + gentle scale on card hover */
.card .avatar,
.card [class*="avatar-"] {
  transition: transform 0.2s ease !important;
}

.card:hover .avatar,
.card:hover [class*="avatar-"] {
  transform: scale(1.06);
}

/* Buttons/links in general get a quick, consistent hover feel */
.btn {
  transition:
    box-shadow 0.2s ease,
    transform 0.15s ease,
    background-color 0.15s ease,
    color 0.15s ease !important;
}

/* ---------- Search box alignment fix (all list pages) ---------- */

/* New ssn-action-card search wrapper */
.ssn-action-card.p-2 {
  padding: 12px 14px !important;
  align-items: center;
}

.ssn-action-card .input-group {
  width: 100%;
}

.ssn-action-card .input-group .form-control {
  height: 38px !important;
  border-radius: 8px 0 0 8px !important;
}

.ssn-action-card .input-group .btn {
  height: 38px !important;
  border-radius: 0 8px 8px 0 !important;
  padding: 0 14px;
}

/* Old search_box card — remove hardcoded heights */
.search_box .card-header {
  padding: 8px 12px !important;
  height: auto !important;
}

.search_box .input-group,
.search_box .input-group .form-control,
.search_box .input-group .searchbtn,
.search_box .input-group .input-group-text {
  height: 38px !important;
}

/* Remove old orange avatar overrides leaking from old theme */
.avatar {
  background-color: var(--ssn-primary-light) !important;
}
.avatar:hover {
  background-color: var(--ssn-primary) !important;
}
.progress-bar {
  background-color: var(--ssn-primary) !important;
}

/* ---------- Sidebar menu icon color — blue ---------- */
.main-menu .navigation li > a i,
.main-menu .navigation li > a svg {
  color: var(--ssn-primary) !important;
  fill: none;
}
.main-menu .navigation li.active > a i,
.main-menu .navigation li.active > a svg {
  color: var(--ssn-primary-dark) !important;
}

/* ---------- Action card used as <a> wrapper — fix link color ---------- */
a.ssn-action-card,
a.ssn-action-card:hover {
  text-decoration: none;
  color: inherit;
}

/* ---------- Page header (title + icon block) ---------- */

.ssn-page-header {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 6px 0 2px;
}

.ssn-page-header-icon {
  flex: 0 0 44px;
  width: 44px;
  height: 44px;
  border-radius: 12px;
  background: linear-gradient(
    135deg,
    var(--ssn-primary) 0%,
    var(--ssn-primary-dark) 100%
  );
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 4px 12px rgba(59, 130, 246, 0.35);
}

.ssn-page-header-icon svg {
  width: 20px;
  height: 20px;
  stroke: #fff;
}

.ssn-page-title {
  font-size: 20px !important;
  font-weight: 700 !important;
  color: #1e293b !important;
  margin: 0 !important;
  line-height: 1.25 !important;
}

.ssn-page-sub {
  font-size: 12px !important;
  color: #9a9aa8 !important;
  margin: 2px 0 0 !important;
  line-height: 1.3 !important;
}

/* ---------- Status badge pills ---------- */

.ssn-status-badge {
  display: inline-flex;
  align-items: center;
  padding: 3px 10px;
  border-radius: 20px;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.3px;
}

.ssn-status-active {
  background: #dcfce7;
  color: #16a34a;
}

.ssn-status-inactive {
  background: #fee2e2;
  color: #dc2626;
}

.ssn-status-pending {
  background: #fef9c3;
  color: #ca8a04;
}

/* ---------- Empty table row ---------- */

.ssn-empty-row {
  padding: 28px 0 !important;
  color: #9a9aa8 !important;
  font-size: 13px !important;
}

/* ---------- Table thead: styled header row ---------- */

.driver_details .driver_list table.table thead tr th {
  background: var(--ssn-primary-light) !important;
  color: var(--ssn-primary-dark) !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  letter-spacing: 0.5px !important;
  border-bottom: 2px solid var(--ssn-primary) !important;
  padding: 10px 12px !important;
  white-space: nowrap;
}

/* ---------- Action card: blue left accent bar — always visible ---------- */

.ssn-action-card {
  position: relative;
}

.ssn-action-card::before {
  content: "";
  position: absolute;
  left: 0;
  top: 20%;
  height: 60%;
  width: 3px;
  border-radius: 0 3px 3px 0;
  background: var(--ssn-primary);
  opacity: 1;
  transition:
    height 0.2s ease,
    top 0.2s ease;
}

.ssn-action-card:hover::before {
  top: 10%;
  height: 80%;
}

/* ---------- Feather SVG sizing inside action-plus (immune to cascade) ---------- */

.ssn-action-plus svg {
  width: 14px !important;
  height: 14px !important;
  stroke: #fff !important;
  flex-shrink: 0;
}

.ssn-action-icon svg {
  width: 18px !important;
  height: 18px !important;
  stroke: var(--ssn-primary) !important;
  flex-shrink: 0;
}

/* ---------- Transactions label in sidebar ---------- */

.main-menu .navigation-header span {
  font-size: 10px !important;
  font-weight: 700 !important;
  letter-spacing: 0.8px !important;
  text-transform: uppercase !important;
}

/* ---------- Pace page-load progress bar ---------- */
html .pace .pace-progress {
  background: var(--ssn-primary) !important;
}

/* ============================================================
   SSN GLOSSY ENHANCEMENT LAYER — v2
   Pure additive overrides. Remove this block to revert.
   ============================================================ */

/* ---------- Google Font upgrade: Inter (sharper, more modern) ---------- */
@import url("https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap");

:root {
  --ssn-font: "Inter", "Montserrat", sans-serif;
  --ssn-glass-bg: rgba(255, 255, 255, 0.72);
  --ssn-glass-border: rgba(255, 255, 255, 0.55);
  --ssn-shadow-card:
    0 4px 24px rgba(59, 130, 246, 0.08), 0 1px 4px rgba(0, 0, 0, 0.04);
  --ssn-shadow-hover:
    0 12px 32px rgba(59, 130, 246, 0.18), 0 2px 8px rgba(0, 0, 0, 0.06);
  --ssn-gradient-primary: linear-gradient(135deg, #3b82f6 0%, #6366f1 100%);
  --ssn-gradient-soft: linear-gradient(135deg, #eff6ff 0%, #f0f4ff 100%);
}

/* ---------- Global font upgrade ---------- */
body,
.main-menu .navigation li > a,
.card,
.table,
.form-control,
.btn,
h1,
h2,
h3,
h4,
h5,
h6,
.ssn-page-title,
.ssn-action-text h3,
.ssn-action-text h4 {
  font-family: var(--ssn-font) !important;
}

/* ---------- Body background: clean soft white ---------- */
body {
  background: #f5f7ff !important;
  min-height: 100vh;
}

/* ---------- Sidebar: glassmorphism ---------- */
.main-menu.menu-fixed {
  background: var(--ssn-glass-bg) !important;
  backdrop-filter: blur(18px) saturate(180%) !important;
  -webkit-backdrop-filter: blur(18px) saturate(180%) !important;
  border-right: 1px solid var(--ssn-glass-border) !important;
  box-shadow: 4px 0 24px rgba(59, 130, 246, 0.07) !important;
}

/* Sidebar brand/logo
   Note: sidebar.css (vendor) has an unconditional rule
   ".main-menu .expanded .icon-logo { display: none; }" that fires
   whenever the sidebar/logo is hovered (a leftover JS hover-to-expand
   handler adds .expanded on mouseenter). Every property below is
   forced with !important and higher specificity so it can never be
   hidden or mis-padded by that vendor rule. */
.main-menu .navbar-header.ssn-sidebar-brand {
  width: 260px !important;
  display: flex !important;
  align-items: center !important;
  padding: 18px 20px 14px 20px !important;
  height: auto !important;
}

/* Vertical centering: align-items:center sizes each child to its own
   natural height (the 34px logo stays 34px; the text stays its natural
   ~18px) and centers both within the row. margin:auto 0 on the text
   below is a belt-and-suspenders backup — but align-items MUST be
   "center", not "stretch": stretch forces the text's box to fill the
   entire 34px row, leaving zero leftover space for margin:auto to
   distribute, which is exactly what made the text render top-heavy. */
.ssn-sidebar-brand .navbar-brand {
  display: flex !important;
  align-items: center !important;
  height: 34px !important;
  gap: 10px !important;
  margin-top: 0 !important;
  text-decoration: none !important;
}

.main-menu .expanded.ssn-sidebar-brand .icon-logo,
.ssn-sidebar-brand .icon-logo {
  display: block !important;
  width: 34px !important;
  height: 34px !important;
  max-width: 34px !important;
  /* logo_icon.png is 688x724 — not perfectly square. object-fit:contain
     fits it by the constraining dimension, which can letterbox it
     slightly off-center inside this square box on top of whatever
     margin the source artwork already has. cover fills the full 34x34
     box edge-to-edge with no letterboxing, so there's no ambiguity left
     for the badge's position within its own box. */
  object-fit: cover !important;
  object-position: center !important;
  flex-shrink: 0 !important;
  margin: 0 !important;
}

.ssn-sidebar-brand .ssn-brand-text {
  display: block !important;
  margin: auto 0 !important;
  color: #1e293b;
  font-size: 15px;
  font-weight: 800;
  letter-spacing: 0.2px;
  white-space: nowrap;
  line-height: normal !important;
  padding: 0 !important;
}

/* Sidebar links must never show the browser's default underline */
.main-menu .navigation a,
.main-menu .navigation a:hover,
.main-menu .navigation a:focus,
.main-menu .navigation-header span {
  text-decoration: none !important;
}

/* Sidebar nav items: smoother, rounder */
.main-menu .navigation > li > a {
  border-radius: 10px !important;
  margin: 2px 10px !important;
  padding: 10px 14px !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  letter-spacing: 0.1px !important;
  transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1) !important;
}

.main-menu .navigation > li > a:hover {
  background: var(--ssn-gradient-soft) !important;
  padding-left: 18px !important;
}

/* Active sidebar item: gradient pill */
.main-menu.menu-dark .navigation > li.active > a {
  background: var(--ssn-gradient-primary) !important;
  color: #fff !important;
  border-left: none !important;
  box-shadow: 0 4px 14px rgba(59, 130, 246, 0.38) !important;
  font-weight: 600 !important;
}

.main-menu.menu-dark .navigation > li.active > a i,
.main-menu.menu-dark .navigation > li.active > a svg {
  color: #fff !important;
  stroke: #fff !important;
}

/* Sidebar section labels */
.main-menu .navigation-header {
  padding: 18px 20px 6px !important;
}

.main-menu .navigation-header span {
  font-size: 9.5px !important;
  font-weight: 800 !important;
  letter-spacing: 1.2px !important;
  text-transform: uppercase !important;
  color: #b0b8d0 !important;
}

/* ---------- Header: frosted glass ---------- */
.header,
nav.header-navbar {
  background: rgba(255, 255, 255, 0.85) !important;
  backdrop-filter: blur(16px) saturate(160%) !important;
  -webkit-backdrop-filter: blur(16px) saturate(160%) !important;
  border-bottom: 1px solid rgba(59, 130, 246, 0.1) !important;
  box-shadow: 0 2px 16px rgba(59, 130, 246, 0.07) !important;
}

/* ---------- Top bar: search + action icons (Admin_Dashboard.png) ---------- */
.header {
  display: flex !important;
  align-items: center !important;
  gap: 14px !important;
  padding-right: 24px !important;
  height: 62px !important;
}
.header .header-left {
  float: none !important;
  width: auto !important;
  height: 62px !important;
  padding: 0 8px 0 18px !important;
  flex-shrink: 0;
  text-align: left !important;
}
.header .header-left .logo {
  line-height: 62px !important;
}
.header #toggle_btn,
.header #mobile_btn,
.header .ssn-hamburger-btn,
.header .modern-nav-toggle,
.header .menu-toggle {
  flex-shrink: 0 !important;
  width: 38px !important;
  min-width: 38px !important;
  max-width: 38px !important;
  height: 38px !important;
  min-height: 38px !important;
  max-height: 38px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  border-radius: 8px !important;
  color: #334155 !important;
  background: #f8fafc !important;
  border: 1px solid #e2e8f0 !important;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04) !important;
  padding: 0 !important;
  margin: 0 10px 0 0 !important;
  position: static !important;
  float: none !important;
  line-height: 1 !important;
  font-size: 16px !important;
  text-decoration: none !important;
  box-sizing: border-box !important;
  cursor: pointer !important;
}

.header #toggle_btn:hover,
.header .ssn-hamburger-btn:hover {
  background: #f1f5f9 !important;
  color: #0f172a !important;
  border-color: #cbd5e1 !important;
}

.header #toggle_btn i,
.header #toggle_btn svg,
.header .ssn-hamburger-btn i,
.header .ssn-hamburger-btn svg {
  font-size: 16px !important;
  width: 16px !important;
  height: 16px !important;
  line-height: 1 !important;
  display: inline-block !important;
  margin: 0 !important;
  padding: 0 !important;
  color: inherit !important;
}

.header #mobile_btn,
.header #toggle_btn .bar-icon {
  display: none !important;
}

.header .ssn-topbar-search {
  flex: 1 1 auto;
  max-width: 420px;
  display: flex;
  align-items: stretch;
  background: #ffffff;
  border: 1px solid #e2e8f0;
  border-radius: 10px;
  height: 42px;
  overflow: hidden;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
}
.header .ssn-topbar-search input {
  border: 0;
  outline: 0;
  background: transparent;
  flex: 1 1 auto;
  width: auto;
  min-width: 0;
  height: 100%;
  padding: 0 14px;
  font-size: 13px;
  color: #334155;
}
.header .ssn-topbar-search input::placeholder {
  color: #94a3b8;
}
.header .ssn-topbar-search:focus-within {
  border-color: #c7d2fe;
  box-shadow: 0 0 0 3px rgba(99, 102, 241, 0.08);
}
.header .ssn-topbar-search-btn {
  flex-shrink: 0;
  width: 42px;
  height: 100%;
  border: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--ssn-primary);
  color: #ffffff;
  font-size: 13px;
  cursor: pointer;
  transition: background 0.15s ease;
}
.header .ssn-topbar-search-btn:hover {
  background: var(--ssn-primary-dark);
}

.header .user-menu {
  float: none !important;
  margin-left: auto !important;
  display: flex !important;
  align-items: center !important;
  gap: 4px !important;
  flex-shrink: 0;
}

.header .user-menu.nav > li.ssn-hdr-action > a {
  width: 40px;
  height: 40px;
  padding: 0 !important;
  line-height: 40px !important;
  border-radius: 10px;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  color: #475569 !important;
  position: relative;
}
.header .user-menu.nav > li.ssn-hdr-action > a:hover {
  background: #f1f5f9;
  color: #1e293b !important;
}
.header .user-menu.nav > li.ssn-hdr-action > a i {
  font-size: 16px !important;
  line-height: 1 !important;
}
.header .user-menu.nav > li.ssn-hdr-action > a .badge {
  top: 4px !important;
  right: 4px !important;
  background-color: #ef4444 !important;
  min-width: 15px;
  height: 15px;
  padding: 0 3px;
  font-size: 9px;
  line-height: 15px;
  border: 2px solid #fff;
}

.header .main-drop > a {
  display: flex !important;
  align-items: center;
  gap: 8px;
  padding: 4px 6px !important;
}
.ssn-user-caret {
  font-size: 10px;
  color: #94a3b8;
  margin-left: 2px;
}

@media (max-width: 991.98px) {
  .header .ssn-topbar-search {
    max-width: none;
    height: 38px;
  }
  .header .user-menu {
    display: flex !important;
  }
}
@media (max-width: 575.98px) {
  .header .ssn-topbar-search {
    display: none;
  }
}

/* Brand text polish */
.ssn-brand-text {
  font-family: var(--ssn-font) !important;
  font-weight: 800 !important;
  font-size: 15px !important;
  background: var(--ssn-gradient-primary);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  letter-spacing: -0.3px;
}

/* ---------- Cards: glossy depth ---------- */
.card {
  background: rgba(255, 255, 255, 0.92) !important;
  backdrop-filter: blur(8px) !important;
  border: 1px solid rgba(255, 255, 255, 0.8) !important;
  box-shadow: var(--ssn-shadow-card) !important;
  border-radius: 14px !important;
}

.card:hover {
  box-shadow: var(--ssn-shadow-hover) !important;
  transform: translateY(-3px) !important;
  border-color: rgba(59, 130, 246, 0.18) !important;
}

/* Card header: subtle gradient top strip */
.card .card-header {
  background: linear-gradient(
    180deg,
    rgba(239, 246, 255, 0.6) 0%,
    rgba(255, 255, 255, 0) 100%
  ) !important;
  border-bottom: 1px solid rgba(59, 130, 246, 0.07) !important;
  border-radius: 14px 14px 0 0 !important;
}

/* ---------- Action cards: glossy glass ---------- */
.ssn-action-card {
  background: rgba(255, 255, 255, 0.9) !important;
  backdrop-filter: blur(10px) !important;
  border: 1px solid rgba(255, 255, 255, 0.75) !important;
  box-shadow:
    0 2px 12px rgba(59, 130, 246, 0.07),
    0 1px 3px rgba(0, 0, 0, 0.04) !important;
  border-radius: 14px !important;
}

.ssn-action-card:hover {
  background: rgba(255, 255, 255, 0.98) !important;
  box-shadow:
    0 10px 28px rgba(59, 130, 246, 0.16),
    0 2px 6px rgba(0, 0, 0, 0.05) !important;
  border-color: rgba(59, 130, 246, 0.25) !important;
  transform: translateY(-3px) !important;
}

/* Action icon: gradient background */
.ssn-action-icon {
  background: var(--ssn-gradient-primary) !important;
  box-shadow: 0 4px 12px rgba(59, 130, 246, 0.3) !important;
  border-radius: 12px !important;
}

.ssn-action-icon svg {
  stroke: #fff !important;
}

/* Action plus badge: gradient */
.ssn-action-plus {
  background: var(--ssn-gradient-primary) !important;
  box-shadow: 0 2px 8px rgba(59, 130, 246, 0.35) !important;
  border-radius: 8px !important;
}

/* ---------- Page header icon: already gradient, add glow ---------- */
.ssn-page-header-icon {
  box-shadow: 0 6px 18px rgba(59, 130, 246, 0.4) !important;
}

/* ---------- Typography: sharper, more readable ---------- */
.ssn-page-title {
  font-size: 22px !important;
  font-weight: 800 !important;
  letter-spacing: -0.4px !important;
  background: linear-gradient(135deg, #1e293b 0%, #3b4a6b 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

.ssn-page-sub {
  font-size: 12.5px !important;
  font-weight: 400 !important;
  color: #94a3b8 !important;
  letter-spacing: 0.1px !important;
}

/* Table: sharper text */
.driver_details .driver_list table.table {
  font-size: 13px !important;
  font-weight: 400 !important;
  color: #334155 !important;
}

.driver_details .driver_list table.table thead tr th {
  font-size: 10.5px !important;
  font-weight: 700 !important;
  letter-spacing: 0.8px !important;
  color: #3b82f6 !important;
  background: linear-gradient(180deg, #eff6ff 0%, #e8f0fe 100%) !important;
  border-bottom: 2px solid rgba(59, 130, 246, 0.2) !important;
}

.driver_details .driver_list table.table tbody tr td {
  font-size: 13px !important;
  font-weight: 500 !important;
  color: #334155 !important;
  vertical-align: middle !important;
  padding: 10px 12px !important;
}

/* Row hover: soft blue glow */
.driver_details .table-hover > tbody > tr:hover td {
  background: linear-gradient(
    90deg,
    rgba(239, 246, 255, 0.8) 0%,
    rgba(240, 244, 255, 0.8) 100%
  ) !important;
  color: #1e40af !important;
}

/* ---------- Buttons: glossy gradient ---------- */
.btn-primary,
.btn-primary:hover,
.btn-primary:focus {
  background: var(--ssn-gradient-primary) !important;
  border: none !important;
  box-shadow: 0 4px 14px rgba(59, 130, 246, 0.38) !important;
  font-weight: 600 !important;
  letter-spacing: 0.2px !important;
}

.btn-primary:hover {
  box-shadow: 0 8px 20px rgba(59, 130, 246, 0.48) !important;
  transform: translateY(-1px) !important;
}

/* ---------- Status badges: glossy pills ---------- */
.ssn-status-active {
  background: linear-gradient(135deg, #d1fae5 0%, #a7f3d0 100%) !important;
  color: #065f46 !important;
  box-shadow: 0 2px 6px rgba(16, 185, 129, 0.2) !important;
  font-weight: 600 !important;
}

.ssn-status-inactive {
  background: linear-gradient(135deg, #fee2e2 0%, #fecaca 100%) !important;
  color: #991b1b !important;
  box-shadow: 0 2px 6px rgba(239, 68, 68, 0.2) !important;
  font-weight: 600 !important;
}

/* ---------- Form inputs: polished ---------- */
.form-control,
.form-select {
  font-family: var(--ssn-font) !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  color: #334155 !important;
  background: rgba(255, 255, 255, 0.9) !important;
  border: 1.5px solid #e2e8f0 !important;
  border-radius: 10px !important;
  transition: all 0.2s ease !important;
}

.form-control:focus,
.form-select:focus {
  border-color: var(--ssn-primary) !important;
  box-shadow: 0 0 0 4px rgba(59, 130, 246, 0.12) !important;
  background: #fff !important;
}

/* ---------- Dropdown menus: glass ---------- */
.dropdown-menu {
  background: rgba(255, 255, 255, 0.95) !important;
  backdrop-filter: blur(16px) !important;
  border: 1px solid rgba(255, 255, 255, 0.7) !important;
  box-shadow:
    0 16px 40px rgba(59, 130, 246, 0.14),
    0 2px 8px rgba(0, 0, 0, 0.06) !important;
  border-radius: 14px !important;
}

.dropdown-item {
  font-family: var(--ssn-font) !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  border-radius: 8px !important;
  margin: 2px 6px !important;
  padding: 8px 12px !important;
  transition: all 0.15s ease !important;
}

/* ---------- Pagination: pill style ---------- */
.pagination .page-link {
  font-family: var(--ssn-font) !important;
  font-size: 12.5px !important;
  font-weight: 600 !important;
  border-radius: 8px !important;
  margin: 0 2px !important;
}

/* ---------- Show entries select ---------- */
#sort {
  font-family: var(--ssn-font) !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  border: 1.5px solid #e2e8f0 !important;
  border-radius: 8px !important;
  padding: 4px 10px !important;
  color: #334155 !important;
  background: #fff !important;
}

/* ---------- Scrollbar: thinner, blue thumb ---------- */
::-webkit-scrollbar {
  width: 5px;
  height: 5px;
}
::-webkit-scrollbar-track {
  background: transparent;
}
::-webkit-scrollbar-thumb {
  background: linear-gradient(180deg, #93c5fd, #6366f1);
  border-radius: 10px;
}

/* ---------- Smooth page transitions ---------- */
.app-content {
  animation: ssn-fadein 0.3s ease forwards;
}

@keyframes ssn-fadein {
  from {
    opacity: 0;
    transform: translateY(6px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* ---------- Navigation header label separator line ---------- */
.main-menu .navigation-header::before {
  content: "";
  display: block;
  height: 1px;
  background: linear-gradient(
    90deg,
    transparent,
    rgba(59, 130, 246, 0.15),
    transparent
  );
  margin-bottom: 8px;
}

/* ---------- User name in header: bolder ---------- */
.user-name,
.ssn-user-name {
  font-family: var(--ssn-font) !important;
  font-weight: 700 !important;
  font-size: 13.5px !important;
  color: #1e293b !important;
}

.user-status,
.ssn-user-role {
  font-family: var(--ssn-font) !important;
  font-size: 11px !important;
  font-weight: 500 !important;
  color: #94a3b8 !important;
}

/* ---------- ssn-icon-btn: glossy ---------- */
.ssn-icon-btn-edit {
  background: linear-gradient(135deg, #eff6ff, #dbeafe) !important;
  box-shadow: 0 2px 6px rgba(59, 130, 246, 0.15) !important;
}

.ssn-icon-btn-edit:hover {
  background: var(--ssn-gradient-primary) !important;
  box-shadow: 0 4px 12px rgba(59, 130, 246, 0.35) !important;
}

.ssn-icon-btn-delete {
  background: linear-gradient(135deg, #fef2f2, #fee2e2) !important;
  box-shadow: 0 2px 6px rgba(239, 68, 68, 0.12) !important;
}

.ssn-icon-btn-delete:hover {
  background: linear-gradient(135deg, #ef4444, #dc2626) !important;
  box-shadow: 0 4px 12px rgba(239, 68, 68, 0.35) !important;
}

/* ---------- Toastr notifications: rounded glass ---------- */
.toast {
  border-radius: 12px !important;
  backdrop-filter: blur(12px) !important;
  font-family: var(--ssn-font) !important;
  font-size: 13px !important;
  font-weight: 500 !important;
}

/* ============================================================
   SSN SIDEBAR REDESIGN — v4 LIGHT/WHITE
   Clean white, soft blue accents, professional feel.
   ============================================================ */

/* ---------- Sidebar container: pure white with soft shadow ---------- */
.main-menu.menu-fixed {
  background: #ffffff !important;
  backdrop-filter: none !important;
  border-right: 1px solid #eef2ff !important;
  box-shadow: 4px 0 20px rgba(59, 130, 246, 0.06) !important;
  width: 260px !important;
}

/* ---------- All nav links base ---------- */
.main-menu.menu-dark .navigation li a,
.main-menu.menu-dark .navigation > li > a {
  color: #4b5563 !important;
  font-family: var(--ssn-font) !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  letter-spacing: 0.1px !important;
  border-radius: 10px !important;
  margin: 1px 10px !important;
  padding: 10px 14px !important;
  transition: all 0.18s cubic-bezier(0.4, 0, 0.2, 1) !important;
}

/* ---------- Icon color: theme blue ---------- */
.main-menu.menu-dark .navigation li > a i,
.main-menu.menu-dark .navigation li > a svg {
  color: var(--ssn-primary) !important;
  stroke: var(--ssn-primary) !important;
  transition: all 0.18s ease !important;
  margin-right: 10px !important;
}

/* ---------- HOVER: very soft blue tint ---------- */
.main-menu.menu-dark .navigation > li:not(.active) > a:hover {
  background: #eff6ff !important;
  color: #2563eb !important;
  padding-left: 18px !important;
  box-shadow: none !important;
}

.main-menu.menu-dark .navigation > li:not(.active) > a:hover i,
.main-menu.menu-dark .navigation > li:not(.active) > a:hover svg {
  color: #3b82f6 !important;
  stroke: #3b82f6 !important;
}

/* ---------- ACTIVE: gradient blue pill with soft glow ---------- */
.main-menu.menu-dark .navigation > li.active > a,
.main-menu.menu-dark .navigation > li.active > a:hover {
  background: linear-gradient(135deg, #3b82f6 0%, #6366f1 100%) !important;
  color: #fff !important;
  font-weight: 600 !important;
  border-radius: 10px !important;
  box-shadow: 0 4px 16px rgba(59, 130, 246, 0.3) !important;
  padding-left: 14px !important;
}

.main-menu.menu-dark .navigation > li.active > a i,
.main-menu.menu-dark .navigation > li.active > a svg {
  color: #fff !important;
  stroke: #fff !important;
}

/* ---------- Open/expanded parent ---------- */
.main-menu.menu-dark .navigation > li.open:not(.menu-item-closing) > a,
.main-menu.menu-dark .navigation > li.sidebar-group-active > a {
  background: #eff6ff !important;
  color: #2563eb !important;
  border-radius: 10px !important;
  box-shadow: none !important;
}

.main-menu.menu-dark .navigation > li.open > a i,
.main-menu.menu-dark .navigation > li.open > a svg {
  color: #3b82f6 !important;
  stroke: #3b82f6 !important;
}

/* ---------- Submenu container ---------- */
.main-menu.menu-dark .navigation > li > ul {
  background: #f8faff !important;
  border-radius: 10px !important;
  margin: 2px 10px !important;
  padding: 4px 0 !important;
  border: 1px solid #eef2ff !important;
}

/* Submenu items */
.main-menu.menu-dark .navigation > li > ul li > a {
  color: #6b7280 !important;
  font-size: 12.5px !important;
  font-weight: 500 !important;
  padding: 8px 14px 8px 36px !important;
  margin: 1px 4px !important;
  border-radius: 8px !important;
}

.main-menu.menu-dark .navigation > li > ul li > a:hover {
  background: #eff6ff !important;
  color: #2563eb !important;
  padding-left: 40px !important;
}

/* Submenu active */
.main-menu.menu-dark .navigation > li ul .active {
  background: #dbeafe !important;
  box-shadow: none !important;
  border-radius: 8px !important;
}

.main-menu.menu-dark .navigation > li ul .active > a {
  color: #1d4ed8 !important;
  font-weight: 600 !important;
  background: transparent !important;
}

/* ---------- Section header labels ---------- */
.main-menu.menu-dark .navigation .navigation-header,
.main-menu .navigation li.navigation-header {
  margin: 18px 0 4px 22px !important;
  padding: 0 !important;
  list-style: none !important;
}

.main-menu.menu-dark .navigation .navigation-header span,
.main-menu .navigation li.navigation-header span,
.main-menu .navigation li.navigation-header {
  font-size: 9.5px !important;
  font-weight: 700 !important;
  letter-spacing: 1.2px !important;
  text-transform: uppercase !important;
  color: #9ca3af !important;
  font-family: var(--ssn-font) !important;
}

.main-menu .navigation li.navigation-header {
  border-top: 1px solid #f1f5f9 !important;
  padding-top: 10px !important;
  margin-top: 6px !important;
}

/* ---------- Brand / logo area: white ---------- */
.header .header-left,
.header-left {
  background: #ffffff !important;
  border-bottom: 1px solid #eef2ff !important;
  border-right: 1px solid #eef2ff !important;
}

.ssn-brand-text {
  font-family: var(--ssn-font) !important;
  font-weight: 800 !important;
  font-size: 14px !important;
  background: linear-gradient(135deg, #2563eb 0%, #6366f1 100%) !important;
  -webkit-background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  background-clip: text !important;
  letter-spacing: 0.3px !important;
}

/* ---------- Scrollbar inside sidebar ---------- */
.main-menu-content::-webkit-scrollbar {
  width: 3px;
}
.main-menu-content::-webkit-scrollbar-track {
  background: transparent;
}
.main-menu-content::-webkit-scrollbar-thumb {
  background: #bfdbfe;
  border-radius: 10px;
}

/* ---------- Shadow-bottom ---------- */
.main-menu .shadow-bottom {
  background: linear-gradient(
    180deg,
    rgba(255, 255, 255, 0.95) 0%,
    transparent 100%
  ) !important;
}

/* ---------- Body left offset (Desktop Only) ---------- */
@media (min-width: 1200px) {
  .vertical-layout.vertical-menu-modern .app-content,
  .vertical-layout.vertical-menu-modern .footer {
    margin-left: 260px !important;
  }
}

/* ============================================================
   CLEAN CARD SYSTEM (Matching Admin_Dashboard.png)
   ============================================================ */

.app-content .card {
  position: relative;
  overflow: hidden;
  border-left: none !important;
  border-radius: 12px !important;
  background: #ffffff !important;
  border: 1px solid #f1f5f9 !important;
  box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.04) !important;
}

.app-content .card:hover {
  transform: translateY(-2px) !important;
  box-shadow: 0 6px 18px 0 rgba(0, 0, 0, 0.06) !important;
}

/* ---------- ssn-action-card: keep its own left border, not the global one ---------- */
.ssn-action-card {
  border-left-width: 0 !important;
}

/* ============================================================
   ADMIN DASHBOARD REDESIGN (Admin_Dashboard.png Reference)
   ============================================================ */

.admin-dashboard-container {
  padding: 0 4px;
}

/* tight vertical rhythm between dashboard rows (matches reference) */
.admin-dashboard-container .adm-dash-row {
  margin-bottom: 12px !important;
}
.admin-dashboard-container .adm-dash-row:last-of-type {
  margin-bottom: 0 !important;
}
.admin-dashboard-container .adm-card-panel {
  margin-bottom: 0 !important;
}

/* Header Welcome Bar */
.adm-dash-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 12px;
  flex-wrap: wrap;
  gap: 12px;
}

.adm-dash-header .welcome-text h3 {
  font-size: 22px !important;
  font-weight: 700 !important;
  color: #1e293b !important;
  margin: 0 0 4px 0 !important;
}

.adm-dash-header .welcome-text p {
  font-size: 13px !important;
  color: #64748b !important;
  margin: 0 !important;
}

.adm-dash-header .header-actions {
  display: flex;
  align-items: center;
  gap: 12px;
}

.adm-date-btn {
  background: #ffffff !important;
  border: 1px solid #e2e8f0 !important;
  border-radius: 8px !important;
  padding: 8px 16px !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  color: #334155 !important;
  display: flex;
  align-items: center;
  gap: 8px;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04) !important;
  cursor: pointer;
}

.adm-export-btn {
  background: #4f46e5 !important;
  color: #ffffff !important;
  border: none !important;
  border-radius: 8px !important;
  padding: 8px 18px !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  display: flex;
  align-items: center;
  gap: 8px;
  box-shadow: 0 4px 12px rgba(79, 70, 229, 0.25) !important;
  cursor: pointer;
  transition: all 0.2s ease;
}

.adm-export-btn:hover {
  background: #4338ca !important;
  transform: translateY(-1px);
}

/* Metric Cards Top Row */
.adm-stat-card {
  background: #ffffff !important;
  border-radius: 12px !important;
  border: 1px solid #f1f5f9 !important;
  padding: 13px 13px !important;
  box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.04) !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: space-between !important;
  height: 100% !important;
  min-height: 112px !important;
  transition: all 0.2s ease !important;
}

.adm-stat-card:hover {
  transform: translateY(-2px) !important;
  box-shadow: 0 6px 18px 0 rgba(0, 0, 0, 0.06) !important;
}

.adm-stat-card .card-top {
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  margin-bottom: 8px !important;
  min-height: 40px !important;
}

.adm-icon-box {
  width: 34px !important;
  height: 34px !important;
  border-radius: 10px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  flex-shrink: 0 !important;
}

.adm-icon-box.purple {
  background: #f3e8ff !important;
  color: #7e22ce !important;
}
.adm-icon-box.green {
  background: #dcfce7 !important;
  color: #15803d !important;
}
.adm-icon-box.blue {
  background: #dbeafe !important;
  color: #1d4ed8 !important;
}
.adm-icon-box.orange {
  background: #ffedd5 !important;
  color: #c2410c !important;
}
.adm-icon-box.red {
  background: #ffe4e6 !important;
  color: #be123c !important;
}
.adm-icon-box.pink {
  background: #fae8ff !important;
  color: #a21caf !important;
}

.adm-stat-card .card-meta {
  flex: 1 !important;
  min-width: 0 !important;
}

.adm-stat-card .card-meta label {
  font-size: 9px !important;
  font-weight: 500 !important;
  color: #64748b !important;
  margin: 0 0 3px 0 !important;
  display: block !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  letter-spacing: -0.1px;
}

.adm-stat-card .card-meta .val {
  font-size: 18px !important;
  font-weight: 700 !important;
  color: #0f172a !important;
  line-height: 1.1 !important;
  white-space: nowrap !important;
}

.adm-stat-card .card-bottom {
  font-size: 10.5px !important;
  color: #64748b !important;
  display: flex !important;
  align-items: center !important;
  gap: 4px !important;
  white-space: nowrap !important;
  margin-top: auto !important;
  padding-top: 4px !important;
}

.adm-trend-up {
  color: #16a34a !important;
  font-weight: 600 !important;
  display: inline-block !important;
}

/* Compact stat card - bottom 7-across KPI row */
.adm-stat-card.compact {
  padding: 11px 12px !important;
  min-height: 86px !important;
}
.adm-stat-card.compact .card-top {
  gap: 8px !important;
  margin-bottom: 5px !important;
  min-height: 30px !important;
}
.adm-stat-card.compact .adm-icon-box {
  width: 30px !important;
  height: 30px !important;
  border-radius: 8px !important;
}
.adm-stat-card.compact .card-meta label {
  font-size: 9.5px !important;
}
.adm-stat-card.compact .card-meta .val {
  font-size: 17px !important;
}
.adm-stat-card.compact .card-bottom {
  font-size: 10px !important;
}
.adm-kpi-row > [class*="col-"] > .adm-stat-card {
  width: 100%;
}

/* 7 equal, edge-to-edge KPI cards on wide screens */
@media (min-width: 1200px) {
  .adm-kpi-row {
    flex-wrap: nowrap !important;
  }
  .adm-kpi-row > [class*="col-"] {
    flex: 1 1 0 !important;
    width: auto !important;
    max-width: none !important;
    min-width: 0 !important;
  }
}

/* Card Boxes styling */
.adm-card-panel {
  background: #ffffff !important;
  border-radius: 12px !important;
  border: 1px solid #f1f5f9 !important;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.03) !important;
  margin-bottom: 0;
  overflow: hidden;
  height: 100%;
  display: flex;
  flex-direction: column;
}
.adm-card-panel .panel-head {
  flex-shrink: 0;
}
.adm-card-panel .panel-body {
  flex: 1 1 auto;
}

.adm-card-panel .panel-head {
  padding: 11px 14px;
  border-bottom: 1px solid #f1f5f9;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.adm-card-panel .panel-head h5 {
  font-size: 12px !important;
  font-weight: 700 !important;
  color: #1e293b !important;
  margin: 0 !important;
  line-height: 1.25 !important;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  min-width: 0;
  letter-spacing: -0.1px;
}

.adm-card-panel .panel-head .head-link {
  font-size: 11.5px !important;
  font-weight: 600 !important;
  color: #4f46e5 !important;
  text-decoration: none;
  white-space: nowrap;
  flex-shrink: 0;
}

/* small pill dropdown ("Today v") in panel heads */
.adm-card-panel .panel-head .btn,
.adm-period-btn {
  font-size: 10.5px !important;
  border: 1px solid #e2e8f0 !important;
  border-radius: 7px !important;
  color: #64748b !important;
  background: #fff !important;
  padding: 4px 8px !important;
  white-space: nowrap;
  flex-shrink: 0;
  display: inline-flex !important;
  align-items: center;
  gap: 4px;
  font-weight: 500 !important;
  line-height: 1 !important;
}
.adm-period-btn svg {
  color: #94a3b8;
}

.adm-card-panel .panel-body {
  padding: 12px 14px;
}

/* Alert Summary grid inside card */
.alert-summary-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
}

.alert-summary-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 10px;
  height: 100%;
  align-content: stretch;
}

.alert-subcard {
  border-radius: 10px;
  padding: 13px 12px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.alert-subcard.critical {
  background: #fff5f5;
  border: 1px solid #ffe3e3;
}
.alert-subcard.unresolved {
  background: #fffaf0;
  border: 1px solid #feebc8;
}
.alert-subcard.this-week {
  background: #f8f5ff;
  border: 1px solid #e9d8fd;
}
.alert-subcard.this-month {
  background: #f0f7ff;
  border: 1px solid #c3dafe;
}

.alert-subcard .sub-header {
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.1px;
  color: #64748b;
  margin-bottom: 6px;
  display: flex;
  align-items: center;
  gap: 4px;
  white-space: nowrap;
}

.alert-subcard .sub-header svg {
  flex-shrink: 0;
  width: 10px !important;
  height: 10px !important;
}

.alert-subcard .sub-header.critical {
  color: #e53e3e;
}
.alert-subcard .sub-header.unresolved {
  color: #dd6b20;
}
.alert-subcard .sub-header.this-week {
  color: #805ad5;
}
.alert-subcard .sub-header.this-month {
  color: #3182ce;
}

.alert-subcard .sub-val {
  font-size: 20px;
  font-weight: 700;
  color: #1a202c;
  line-height: 1;
}

.alert-subcard .sub-trend {
  font-size: 8.5px;
  color: #16a34a;
  margin-top: 4px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* Recent Activities Timeline */
.act-feed {
  display: flex;
  flex-direction: column;
  gap: 11px;
}

.act-item {
  display: flex;
  align-items: flex-start;
  gap: 9px;
}

.act-icon-badge {
  width: 27px;
  height: 27px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.act-icon-badge svg {
  width: 13px !important;
  height: 13px !important;
}

.act-icon-badge.blue {
  background: #dbeafe;
  color: #2563eb;
}
.act-icon-badge.green {
  background: #dcfce7;
  color: #16a34a;
}
.act-icon-badge.amber {
  background: #fef3c7;
  color: #d97706;
}
.act-icon-badge.purple {
  background: #f3e8ff;
  color: #9333ea;
}
.act-icon-badge.red {
  background: #fee2e2;
  color: #dc2626;
}

.act-content {
  flex: 1;
  min-width: 0;
}

.act-title {
  font-size: 11.5px;
  font-weight: 600;
  color: #1e293b;
  margin-bottom: 0;
  line-height: 1.25;
}

.act-sub {
  font-size: 10px;
  color: #94a3b8;
  line-height: 1.2;
}

.act-time {
  font-size: 10px;
  color: #94a3b8;
  white-space: nowrap;
  margin-left: 6px;
  flex-shrink: 0;
  padding-top: 1px;
}

/* Table styling for Top Alert Vehicles */
.top-alert-table {
  width: 100%;
  border-collapse: collapse;
}

.top-alert-table th {
  font-size: 9px;
  font-weight: 700;
  color: #94a3b8;
  letter-spacing: 0.1px;
  text-transform: uppercase;
  padding: 8px 7px;
  border-bottom: 1px solid #f1f5f9;
  text-align: left;
  white-space: nowrap;
}

.top-alert-table td {
  font-size: 11px;
  color: #334155;
  padding: 10px 8px;
  border-bottom: 1px solid #f8fafc;
  vertical-align: middle;
  white-space: nowrap;
}

.top-alert-table td strong {
  font-weight: 600;
}

.top-alert-table tr:last-child td {
  border-bottom: 0;
}

.alert-badge {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 3px 9px;
  border-radius: 20px;
  font-size: 10px;
  font-weight: 600;
  white-space: nowrap;
}

.alert-badge svg {
  width: 11px;
  height: 11px;
  flex-shrink: 0;
}

.alert-badge.red {
  background: #fef2f2;
  color: #ef4444;
}
.alert-badge.orange {
  background: #fff7ed;
  color: #f97316;
}
.alert-badge.purple {
  background: #faf5ff;
  color: #9333ea;
}

/* Sidebar Support Widget */
.sidebar-help-widget {
  margin: 16px 12px 12px 12px;
  background: linear-gradient(135deg, #f5f3ff 0%, #ede9fe 100%);
  border-radius: 12px;
  padding: 16px;
  text-align: center;
}

.sidebar-help-widget .help-icon-circle {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: #ffffff;
  color: #4f46e5;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 10px auto;
  box-shadow: 0 4px 12px rgba(79, 70, 229, 0.15);
}

.sidebar-help-widget h6 {
  font-size: 14px;
  font-weight: 700;
  color: #1e293b;
  margin: 0 0 4px 0;
}

.sidebar-help-widget p {
  font-size: 11px;
  color: #64748b;
  margin: 0 0 12px 0;
}

.sidebar-help-widget .btn-support {
  background: #ffffff;
  border: 1px solid #c7d2fe;
  color: #4f46e5;
  border-radius: 8px;
  padding: 6px 16px;
  font-size: 12px;
  font-weight: 600;
  width: 100%;
  cursor: pointer;
  transition: all 0.2s ease;
}

.sidebar-help-widget .btn-support:hover {
  background: #4f46e5;
  color: #ffffff;
}

/* Map styling */
#live-vehicle-map {
  width: 100%;
  height: 100%;
  min-height: 210px;
  border-radius: 8px;
  z-index: 1;
}
.adm-card-panel .panel-body.p-2 {
  display: flex;
}

/* Donut chart side-by-side flex layout fixes */
.donut-side-layout {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  width: 100%;
  height: 100%;
  min-height: 190px;
}

.donut-chart-box {
  width: 150px !important;
  height: 150px !important;
  min-width: 150px !important;
  min-height: 150px !important;
  position: relative;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}

.donut-chart-box #vehicle-status-chart,
.donut-chart-box #dealer-overview-chart {
  width: 150px !important;
  height: 150px !important;
}

/* donut legend rows (right of the chart) */
.donut-side-layout .flex-grow-1 {
  font-size: 10px !important;
  padding-left: 0 !important;
}
.donut-side-layout .flex-grow-1 > div {
  margin-bottom: 10px;
  gap: 3px;
}
.donut-side-layout .flex-grow-1 > div:last-child {
  margin-bottom: 0;
}
.donut-side-layout .flex-grow-1 span,
.donut-side-layout .flex-grow-1 strong {
  white-space: nowrap;
}
.donut-side-layout .flex-grow-1 strong {
  font-size: 10px;
}
.donut-side-layout .flex-grow-1 .text-muted {
  font-size: 8.5px;
}
.dot-indicator {
  width: 7px;
  height: 7px;
  margin-right: 4px;
}

/* Dealer/Distributor card legend has longer labels - give it more room */
.distributor-count .donut-chart-box,
.distributor-count .donut-chart-box #dealer-overview-chart {
  width: 122px !important;
  height: 122px !important;
  min-width: 122px !important;
  min-height: 122px !important;
}
.distributor-count .donut-side-layout .flex-grow-1 {
  font-size: 9.5px !important;
}
.distributor-count .donut-side-layout .flex-grow-1 strong {
  font-size: 9.5px;
}
.distributor-count .donut-side-layout .flex-grow-1 .text-muted {
  font-size: 8px;
}

.donut-chart-box .apexcharts-canvas {
  margin: 0 auto !important;
}

.donut-center-label {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  text-align: center;
  pointer-events: none;
  line-height: 1.1;
}

.donut-center-label .num {
  font-size: 20px;
  font-weight: 800;
  color: #1e293b;
}

.donut-center-label .lbl {
  font-size: 10px;
  color: #64748b;
}
.distributor-count .donut-center-label .num {
  font-size: 17px;
}
.distributor-count .donut-center-label .lbl {
  font-size: 8.5px;
}

.dot-indicator {
  width: 9px;
  height: 9px;
  border-radius: 50%;
  display: inline-block;
  margin-right: 6px;
}

.dot-indicator.bg-success {
  background-color: #10b981 !important;
}
.dot-indicator.bg-warning {
  background-color: #f59e0b !important;
}
.dot-indicator.bg-danger {
  background-color: #ef4444 !important;
}
.dot-indicator.bg-secondary {
  background-color: #94a3b8 !important;
}
.dot-indicator.bg-purple {
  background-color: #8b5cf6 !important;
}

/* Hide scrollbar for recent activities */
.panel-body-scrollable {
  flex: 0 1 auto;
  min-height: 0;
  max-height: 250px;
  overflow-y: auto;
  scrollbar-width: none;
  -ms-overflow-style: none;
}
.panel-body-scrollable::-webkit-scrollbar {
  display: none;
}

/* ============================================================
   LIST PAGE STYLING (List-Page.png Reference)
   ============================================================ */

.list-page-container {
  padding: 0 4px;
}

.list-page-header,
.list-page-header .header-left,
.list-page-header .header-right,
.list-breadcrumb {
  background: transparent !important;
  box-shadow: none !important;
  border: none !important;
}

.list-page-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  margin-bottom: 14px;
  padding-top: 0 !important;
  flex-wrap: wrap;
  gap: 12px;
}

.list-page-header .header-left h2 {
  font-size: 22px !important;
  font-weight: 800 !important;
  color: #1e293b !important;
  margin: 0 0 6px 0 !important;
}

.list-breadcrumb {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  color: #64748b;
  font-weight: 500;
}

.list-breadcrumb a {
  color: #3b82f6;
  text-decoration: none;
  font-weight: 600;
}

.list-page-header .header-right {
  display: flex;
  align-items: center;
  gap: 12px;
}

.btn-list-export {
  background: #ffffff !important;
  color: #334155 !important;
  border: 1px solid #e2e8f0 !important;
  border-radius: 8px !important;
  padding: 9px 18px !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.03) !important;
  cursor: pointer;
}

.btn-list-add {
  background: #3b82f6 !important;
  color: #ffffff !important;
  border: none !important;
  border-radius: 8px !important;
  padding: 9px 20px !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  box-shadow: 0 4px 14px rgba(59, 130, 246, 0.35) !important;
  cursor: pointer;
  text-decoration: none;
}

.btn-list-add:hover {
  background: #2563eb !important;
  color: #ffffff !important;
}

/* 4 Action Cards Top Row */
.list-action-card {
  background: #ffffff !important;
  border-radius: 12px !important;
  border: 1px solid #f1f5f9 !important;
  padding: 16px 18px !important;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.03) !important;
  display: flex;
  align-items: center;
  justify-content: space-between;
  transition: all 0.2s ease !important;
  text-decoration: none !important;
  height: 100%;
}

.list-action-card:hover {
  transform: translateY(-2px) !important;
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.06) !important;
  border-color: #cbd5e1 !important;
}

.list-action-card .card-main {
  display: flex;
  align-items: center;
  gap: 14px;
}

.list-action-card .icon-wrap {
  width: 44px;
  height: 44px;
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.list-action-card .icon-wrap.blue {
  background: #dbeafe;
  color: #2563eb;
}
.list-action-card .icon-wrap.teal {
  background: #d1fae5;
  color: #059669;
}
.list-action-card .icon-wrap.orange {
  background: #ffedd5;
  color: #ea580c;
}
.list-action-card .icon-wrap.purple {
  background: #f3e8ff;
  color: #9333ea;
}

.list-action-card .text-wrap h4 {
  font-size: 14px !important;
  font-weight: 700 !important;
  color: #1e293b !important;
  margin: 0 0 2px 0 !important;
}

.list-action-card .text-wrap p {
  font-size: 11.5px !important;
  color: #64748b !important;
  margin: 0 !important;
}

.list-action-card .plus-btn {
  width: 28px;
  height: 28px;
  border-radius: 8px;
  background: #f1f5f9;
  color: #4f46e5;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

/* List Table Card Container */
.list-table-card {
  background: #ffffff !important;
  border-radius: 14px !important;
  border: 1px solid #f1f5f9 !important;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.04) !important;
  padding: 20px !important;
  margin-top: 20px;
}

.list-table-card .table-top-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 16px;
  flex-wrap: wrap;
  gap: 12px;
}

/* Styled Table */
.ssn-list-table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
}

.ssn-list-table thead tr th {
  background: #f8fafc !important;
  color: #475569 !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  letter-spacing: 0.5px !important;
  text-transform: uppercase !important;
  padding: 14px 16px !important;
  border-bottom: 1px solid #e2e8f0 !important;
  border-top: 1px solid #e2e8f0 !important;
  white-space: nowrap !important;
}

/* Same fix for list pages using a plain Bootstrap .table instead of
   .ssn-list-table — column headers must never wrap to two lines. */
.card-datatable table.table thead th,
.driver_list table.table thead th,
table.dataTable thead th {
  white-space: nowrap !important;
}

.ssn-list-table tbody tr td {
  padding: 16px !important;
  border-bottom: 1px solid #f1f5f9 !important;
  vertical-align: middle !important;
  font-size: 13px !important;
  color: #334155 !important;
}

.ssn-list-table tbody tr:hover td {
  background: #f8fafc !important;
}

.model-badge {
  display: inline-block;
  background: #eff6ff;
  color: #2563eb;
  font-size: 10.5px;
  font-weight: 600;
  padding: 2px 8px;
  border-radius: 6px;
  margin-top: 4px;
}

.pill-badge {
  display: inline-flex;
  align-items: center;
  padding: 4px 12px;
  border-radius: 20px;
  font-size: 11.5px;
  font-weight: 600;
}

.pill-badge.new {
  background: #dcfce7;
  color: #16a34a;
}
.pill-badge.sold {
  background: #dbeafe;
  color: #2563eb;
}
.pill-badge.active {
  background: #ffedd5;
  color: #c2410c;
}
.pill-badge.expired {
  background: #fee2e2;
  color: #dc2626;
}

.action-square-btn {
  width: 32px;
  height: 32px;
  border-radius: 8px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-decoration: none !important;
  transition: all 0.15s ease;
  margin-right: 4px;
}

.action-square-btn.edit {
  background: #eff6ff;
  color: #2563eb;
}

.action-square-btn.edit:hover {
  background: #2563eb;
  color: #ffffff;
}

.action-square-btn.delete {
  background: #fef2f2;
  color: #ef4444;
}

.action-square-btn.delete:hover {
  background: #ef4444;
  color: #ffffff;
}

/* Pagination Pills */
.custom-pagination {
  display: flex;
  align-items: center;
  gap: 4px;
}

.custom-pagination a,
.custom-pagination span {
  width: 32px;
  height: 32px;
  border-radius: 8px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 12.5px;
  font-weight: 600;
  color: #475569;
  text-decoration: none;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
}

.custom-pagination .active a,
.custom-pagination .active span {
  background: #3b82f6 !important;
  color: #ffffff !important;
  border-color: #3b82f6 !important;
  box-shadow: 0 2px 8px rgba(59, 130, 246, 0.35);
}

/* ============================================================
   LIST PAGE ENHANCEMENTS — quick-filter tabs, summary stat
   cards, and per-column header search/sort. Pure additive,
   shared across every list page (drop-in via list-toolbar.js).
   ============================================================ */

/* Summary stat cards (Total / New / Sold / Expired, etc.) */
.list-stat-row {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  margin-bottom: 18px;
}

.list-stat-card {
  flex: 1 1 160px;
  background: #ffffff;
  border: 1px solid #f1f5f9;
  border-radius: 12px;
  padding: 14px 16px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.03);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.list-stat-card .stat-main .stat-value {
  font-size: 22px;
  font-weight: 800;
  color: #1e293b;
  line-height: 1.1;
}

.list-stat-card .stat-main .stat-label {
  font-size: 12px;
  font-weight: 600;
  color: #64748b;
  margin-top: 3px;
}

.list-stat-card .stat-main .stat-delta {
  font-size: 10.5px;
  color: #94a3b8;
  margin-top: 2px;
}

.list-stat-card .stat-icon {
  width: 38px;
  height: 38px;
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.list-stat-card .stat-icon.blue {
  background: #dbeafe;
  color: #2563eb;
}
.list-stat-card .stat-icon.teal {
  background: #d1fae5;
  color: #059669;
}
.list-stat-card .stat-icon.orange {
  background: #ffedd5;
  color: #ea580c;
}
.list-stat-card .stat-icon.purple {
  background: #f3e8ff;
  color: #9333ea;
}
.list-stat-card .stat-icon.red {
  background: #fee2e2;
  color: #dc2626;
}

/* Stat cards doubling as clickable quick-filters */
a.list-stat-card {
  text-decoration: none !important;
  cursor: pointer;
  transition: all 0.15s ease;
}
a.list-stat-card:hover {
  border-color: #cbd5e1;
  transform: translateY(-1px);
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.06);
}
a.list-stat-card.active {
  border-color: #3b82f6;
  box-shadow:
    0 0 0 2px rgba(59, 130, 246, 0.15),
    0 6px 16px rgba(59, 130, 246, 0.1);
}

/* Compact secondary action buttons in the list header (Transfer / Reports etc.) */
.btn-list-secondary {
  background: #ffffff !important;
  color: #334155 !important;
  border: 1px solid #e2e8f0 !important;
  border-radius: 8px !important;
  padding: 9px 16px !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.03) !important;
  cursor: pointer;
  text-decoration: none !important;
}
.btn-list-secondary:hover {
  background: #f8fafc !important;
  border-color: #cbd5e1 !important;
  color: #1e293b !important;
}

/* Quick-filter tab pills with live counts */
.quick-filter-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 16px;
}

.quick-filter-tab {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 7px 14px;
  border-radius: 20px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  color: #475569;
  font-size: 12.5px;
  font-weight: 600;
  cursor: pointer;
  text-decoration: none !important;
  transition: all 0.15s ease;
}

.quick-filter-tab:hover {
  border-color: #cbd5e1;
  color: #1e293b;
}

.quick-filter-tab.active {
  background: #3b82f6;
  border-color: #3b82f6;
  color: #ffffff;
}

.quick-filter-tab .count {
  background: rgba(0, 0, 0, 0.08);
  border-radius: 10px;
  padding: 1px 7px;
  font-size: 11px;
}

.quick-filter-tab.active .count {
  background: rgba(255, 255, 255, 0.25);
}

/* Per-column header search/sort dropdown */
.ssn-list-table thead th {
  position: relative;
}

.col-filter-trigger {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 16px;
  height: 16px;
  margin-left: 4px;
  border-radius: 4px;
  cursor: pointer;
  color: #94a3b8;
  vertical-align: middle;
}

.col-filter-trigger:hover,
.col-filter-trigger.active {
  color: #2563eb;
  background: #eff6ff;
}

.col-filter-popover {
  position: absolute;
  top: 100%;
  left: 0;
  z-index: 40;
  background: #ffffff;
  border: 1px solid #e2e8f0;
  border-radius: 10px;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.12);
  padding: 10px;
  min-width: 190px;
  text-transform: none;
  font-weight: 400;
  letter-spacing: normal;
  display: none;
}

.col-filter-popover.show {
  display: block;
}

.col-filter-popover input[type="text"] {
  width: 100%;
  padding: 6px 8px;
  border: 1px solid #e2e8f0;
  border-radius: 6px;
  font-size: 12.5px;
  margin-bottom: 8px;
}

.col-filter-popover .cf-action {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 6px 4px;
  font-size: 12.5px;
  color: #334155;
  cursor: pointer;
  border-radius: 6px;
}

.col-filter-popover .cf-action:hover {
  background: #f1f5f9;
}

.col-filter-popover .cf-divider {
  height: 1px;
  background: #f1f5f9;
  margin: 6px 0;
}

/* ============================================================
   LAYOUT: Desktop Fixed Sidebar and Offset Header/Content
   ============================================================ */
@media (min-width: 1200px) {
  .main-menu.menu-fixed,
  .main-menu {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    width: 260px !important;
    height: 100vh !important;
    overflow: hidden !important;
    z-index: 1030 !important;
    transform: none !important;
    visibility: visible !important;
  }

  .header.header-navbar {
    position: fixed !important;
    top: 0 !important;
    left: 260px !important;
    right: 0 !important;
    width: auto !important;
    height: 62px !important;
    min-height: 62px !important;
    max-height: 62px !important;
    margin: 0 !important;
    border-radius: 0 !important;
    z-index: 999 !important;
  }

  .app-content {
    margin-left: 260px !important;
    padding: 68px 24px 20px 24px !important;
    width: auto !important;
  }
}

/* Sidebar section labels (Masters / Transactions) must always be
   visible. A leftover hover-to-expand handler from the old
   collapsed-sidebar feature toggles an "expanded" class on hover;
   nothing in this app relies on that feature, so force labels
   visible regardless of it. */
.main-menu .navigation li.navigation-header,
.main-menu .navigation li.navigation-header span {
  display: block !important;
  opacity: 1 !important;
  visibility: visible !important;
  width: auto !important;
  height: auto !important;
  overflow: visible !important;
}

/* ============================================================
   SITE-WIDE LIST TABLE CARD (matches Device List's .list-table-card)
   Older list pages still wrap their table in a plain Bootstrap
   .card. Rather than rewrite every page's table markup, give any
   .card that contains the legacy .driver_list table-header the
   same white/rounded/shadow treatment as .list-table-card, and
   style its "Show entries" control to match.
   ============================================================ */
.card:has(.driver_list),
.card:has(.card-datatable),
.card:has(table),
.table-responsive,
.card-datatable,
.driver_list {
  background: #ffffff !important;
  border-radius: 14px !important;
  border: 1px solid #f1f5f9 !important;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.04) !important;
  padding: 20px !important;
  margin-top: 20px !important;
  width: 100% !important;
  max-width: 100% !important;
  overflow-x: auto !important;
  -webkit-overflow-scrolling: touch !important;
  box-sizing: border-box !important;
}
.card:has(.driver_list) .card-header.driver_list,
.driver_list .table-block {
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  width: 100% !important;
  overflow-x: auto !important;
  -webkit-overflow-scrolling: touch !important;
}
.card:has(.card-datatable) .card-body,
.card:has(table) .card-body {
  padding: 0 !important;
  width: 100% !important;
  overflow-x: auto !important;
  -webkit-overflow-scrolling: touch !important;
}
.list-page-container2 .content-wrapper {
  padding: 0 !important;
}
.list-page-container .row.dashboard:has(#sort) {
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  margin: 0 0 12px 0 !important;
  font-size: 13px !important;
  color: #64748b !important;
}
.list-page-container select#sort {
  width: auto !important;
  display: inline-block !important;
  border-radius: 8px !important;
  border-color: #e2e8f0 !important;
  padding: 4px 8px !important;
  font-size: 13px !important;
}

/* ============================================================
   MASTER LIST PAGES — UNIFORM DESIGN PASS
   Pure CSS fixes. No PHP changes.
   ============================================================ */

/* 1. Hide the bare "Show X Entries" block that sits OUTSIDE the
      table card on older list pages (sim, admin, device_model,
      zone, card, company). The select#sort inside .list-table-card
      (device list) is kept; only the orphaned one is hidden.
      Selector: any direct text node + select#sort that is NOT
      inside .list-table-card — achieved by targeting the select
      when it is a sibling/descendant of .list-page-container but
      NOT inside .list-table-card. */
.list-page-container > select#sort,
.driver_details > select#sort,
.app-content > select#sort {
  display: none !important;
}

/* Hide the <br><br> spacers that follow the Show/Entries block */
.list-page-container > br,
.driver_details > br,
.app-content.driver_details > br {
  display: none !important;
}

/* 2. Pages that use the old content-wrapper layout
      (driver_group, vehicle_group, vehicle_type, vehicle_status,
       hub, icon, alert, vehicle, customer) — give the
      content-wrapper zero padding so the list-page-header
      sits flush, and ensure the card inside gets the same
      list-table-card look via the existing :has() rule. */
.list-page-container .content-wrapper,
.list-page-container .content-body {
  padding: 0 !important;
}

/* 3. DataTable pages: hide the default DT length/search controls
      that DataTables injects above the table (the manager asked
      to remove "Show 25 Entries" and the search bar). */
.list-page-container .dataTables_length,
.list-page-container .dataTables_filter,
.driver_details .dataTables_length,
.driver_details .dataTables_filter {
  display: none !important;
}

/* 4. DataTable info + pagination: keep them but style consistently */
.list-page-container .dataTables_info,
.driver_details .dataTables_info {
  font-size: 13px !important;
  color: #64748b !important;
  padding: 8px 0 0 0 !important;
}

.list-page-container .dataTables_paginate,
.driver_details .dataTables_paginate {
  padding: 8px 0 0 0 !important;
}

/* 5. Old-style pages that use content-header-left / breadcrumb-wrapper
      instead of list-page-header: hide the old header block so
      the list-page-header (already present on those pages) shows
      cleanly without duplication. */
.list-page-container .content-header.row {
  display: none !important;
}

/* 6. Ensure the card wrapping .card-datatable gets the same
      list-table-card spacing even when inside .content-body */
.list-page-container .content-body .card,
.list-page-container .app-user-list .card {
  background: #ffffff !important;
  border-radius: 14px !important;
  border: 1px solid #f1f5f9 !important;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.04) !important;
  padding: 20px !important;
  margin-top: 0 !important;
  transform: none !important;
}

.list-page-container .content-body .card:hover,
.list-page-container .app-user-list .card:hover {
  transform: none !important;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.04) !important;
}

.list-page-container .content-body .card-body,
.list-page-container .app-user-list .card-body {
  padding: 0 !important;
}

/* 7. Column-header filter trigger: inject into ALL ssn-list-table
      headers (the JS in list-toolbar.js already handles device list;
      this ensures the CSS is ready for all pages). Already defined
      above — no duplicate needed. */

/* 8. Pagination row on PHP-rendered pages: align right */
.list-page-container .row > .col-md-4 > .pagination,
.driver_details .row > .col-md-4 > .pagination {
  justify-content: flex-end !important;
  margin-top: 12px !important;
}

/* 9. Suppress card hover lift on table cards to avoid jitter */
.card:has(.driver_list):hover,
.card:has(.card-datatable):hover {
  transform: none !important;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.04) !important;
}

/* 10. Old content-wrapper pages that DON'T have list-page-container:
       give them the same header style via the content-header-left h2 */
.app-content .content-header-title {
  font-size: 22px !important;
  font-weight: 800 !important;
  color: #1e293b !important;
}

/* 11. Column Header Filter & Popover Styles + DataTables Sort Arrow Overrides */
table.ssn-list-table thead th:before,
table.ssn-list-table thead th:after,
table.dataTable.ssn-list-table thead > tr > th.sorting:before,
table.dataTable.ssn-list-table thead > tr > th.sorting:after,
table.dataTable.ssn-list-table thead > tr > th.sorting_asc:before,
table.dataTable.ssn-list-table thead > tr > th.sorting_asc:after,
table.dataTable.ssn-list-table thead > tr > th.sorting_desc:before,
table.dataTable.ssn-list-table thead > tr > th.sorting_desc:after {
  display: none !important;
  content: "" !important;
  opacity: 0 !important;
}

table.ssn-list-table thead th {
  position: relative !important;
  padding-right: 28px !important;
}

.col-filter-trigger {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 20px !important;
  height: 20px !important;
  border-radius: 4px !important;
  color: #64748b !important;
  cursor: pointer !important;
  margin-left: 6px !important;
  vertical-align: middle !important;
  transition: all 0.15s ease !important;
}

.col-filter-trigger:hover,
.col-filter-trigger.active {
  background-color: #e2e8f0 !important;
  color: #1e293b !important;
}

.col-filter-popover {
  display: none;
  position: absolute !important;
  top: 100% !important;
  left: 0 !important;
  z-index: 9999 !important;
  min-width: 180px !important;
  background: #ffffff !important;
  border: 1px solid #cbd5e1 !important;
  border-radius: 8px !important;
  padding: 8px !important;
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.12) !important;
  font-weight: normal !important;
  text-transform: none !important;
  color: #1e293b !important;
}

.col-filter-popover.show {
  display: block !important;
}

.col-filter-popover input[type="text"] {
  width: 100% !important;
  padding: 5px 8px !important;
  font-size: 12px !important;
  border: 1px solid #cbd5e1 !important;
  border-radius: 4px !important;
  margin-bottom: 6px !important;
  outline: none !important;
}

.col-filter-popover input[type="text"]:focus {
  border-color: #3b82f6 !important;
}

.col-filter-popover .cf-action {
  padding: 5px 8px !important;
  font-size: 12px !important;
  color: #334155 !important;
  border-radius: 4px !important;
  cursor: pointer !important;
  display: flex !important;
  align-items: center !important;
  gap: 6px !important;
}

.col-filter-popover .cf-action:hover {
  background: #f1f5f9 !important;
  color: #2563eb !important;
}

.col-filter-popover .cf-divider {
  height: 1px !important;
  background: #e2e8f0 !important;
  margin: 4px 0 !important;
}

/* 12. Sidebar Vertical Scrolling Guarantee (Desktop) */
@media (min-width: 1200px) {
  .main-menu {
    overflow: hidden !important;
    position: fixed !important;
    top: 0 !important;
    bottom: 0 !important;
    left: 0 !important;
    height: 100vh !important;
    z-index: 1030 !important;
  }

  .main-menu .main-menu-content {
    position: relative !important;
    height: calc(100vh - 65px) !important;
    max-height: calc(100vh - 65px) !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none !important;
    -ms-overflow-style: none !important;
  }

  .main-menu .main-menu-content::-webkit-scrollbar {
    display: none !important;
    width: 0 !important;
    height: 0 !important;
  }

  .main-menu .main-menu-content .navigation-main {
    transform: none !important;
    top: 0 !important;
  }
}

/* ============================================================
   MOBILE & TABLET RESPONSIVE SYSTEM (<= 1199px)
   ============================================================ */

@media (max-width: 1199.98px) {
  /* 1. Disable all slide/horizontal transitions on mobile so page clicks/reloads never cause content to slide from right */
  html,
  body,
  html body,
  html .content,
  body .content,
  .app-content,
  .app-content.content,
  .content-wrapper,
  .content-body,
  .content-header,
  .admin-dashboard-container,
  .list-page-container,
  .header.header-navbar,
  .header.header-navbar.navbar,
  .vertical-layout.vertical-menu-modern .app-content,
  .vertical-layout.vertical-menu-modern .content,
  .vertical-layout.vertical-menu-modern .footer,
  .vertical-layout.vertical-overlay-menu .app-content,
  .vertical-layout.vertical-overlay-menu .content,
  .vertical-layout.vertical-overlay-menu .footer {
    -webkit-transition: none !important;
    -moz-transition: none !important;
    -o-transition: none !important;
    transition: none !important;
    -webkit-animation: none !important;
    -moz-animation: none !important;
    -o-animation: none !important;
    animation: none !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    left: 0 !important;
    right: 0 !important;
    -webkit-transform: none !important;
    transform: none !important;
  }

  /* 2. Header navbar full width */
  .header.header-navbar {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
    height: 60px !important;
    min-height: 60px !important;
    max-height: 60px !important;
    margin: 0 !important;
    padding: 0 14px !important;
    border-radius: 0 !important;
    z-index: 1020 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.08) !important;
  }

  /* 3. Main content area: zero margin, full width */
  html .content,
  body .content,
  .app-content,
  .app-content.content,
  .vertical-layout.vertical-menu-modern .app-content,
  .vertical-layout.vertical-overlay-menu .app-content {
    margin-left: 0 !important;
    padding: 70px 14px 24px 14px !important;
    width: 100% !important;
    max-width: 100vw !important;
    box-sizing: border-box !important;
    overflow-x: hidden !important;
  }

  /* 4. Off-canvas sidebar drawer on mobile */
  .main-menu,
  .main-menu.menu-fixed,
  .vertical-layout.vertical-menu-modern .main-menu,
  .vertical-layout.vertical-overlay-menu .main-menu {
    position: fixed !important;
    top: 0 !important;
    bottom: 0 !important;
    left: 0 !important;
    width: 270px !important;
    height: 100vh !important;
    z-index: 1050 !important;
    transform: translate3d(-280px, 0, 0) !important;
    transition: transform 0.28s cubic-bezier(0.4, 0, 0.2, 1), visibility 0.28s !important;
    visibility: hidden !important;
    overflow: hidden !important;
    box-shadow: none !important;
    background: #ffffff !important;
  }

  body.menu-open .main-menu,
  body.menu-open .main-menu.menu-fixed,
  body.menu-open .vertical-layout.vertical-menu-modern .main-menu,
  body.menu-expanded .main-menu {
    transform: translate3d(0, 0, 0) !important;
    visibility: visible !important;
    box-shadow: 0 0 35px rgba(0, 0, 0, 0.3) !important;
  }

  .main-menu .main-menu-content {
    position: relative !important;
    height: calc(100vh - 65px) !important;
    max-height: calc(100vh - 65px) !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none !important;
    -ms-overflow-style: none !important;
  }

  .main-menu .main-menu-content::-webkit-scrollbar {
    display: none !important;
    width: 0 !important;
  }

  /* Backdrop overlay */
  .sidenav-overlay {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    background: rgba(15, 23, 42, 0.45) !important;
    z-index: 1040 !important;
    display: none;
    opacity: 0;
    transition: opacity 0.25s ease !important;
  }

  body.menu-open .sidenav-overlay {
    display: block !important;
    opacity: 1 !important;
  }

  /* Hamburger toggle button */
  .header #toggle_btn,
  .header .ssn-hamburger-btn,
  .header .modern-nav-toggle,
  .header .menu-toggle {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 38px !important;
    min-width: 38px !important;
    max-width: 38px !important;
    height: 38px !important;
    min-height: 38px !important;
    max-height: 38px !important;
    font-size: 16px !important;
    line-height: 1 !important;
    color: #334155 !important;
    border-radius: 8px !important;
    background: #f8fafc !important;
    border: 1px solid #e2e8f0 !important;
    margin: 0 10px 0 0 !important;
    padding: 0 !important;
    flex-shrink: 0 !important;
    box-sizing: border-box !important;
    position: static !important;
    float: none !important;
  }

  .header #toggle_btn i,
  .header .ssn-hamburger-btn i {
    font-size: 16px !important;
    line-height: 1 !important;
    display: block !important;
    margin: 0 !important;
    padding: 0 !important;
    width: 16px !important;
    height: 16px !important;
  }

  .header #mobile_btn {
    display: none !important;
  }

  .header .user-menu {
    margin-left: auto !important;
    display: flex !important;
    align-items: center !important;
    gap: 4px !important;
  }
}

/* Phones (<= 575px) Header & Navigation */
@media (max-width: 575.98px) {
  .header .ssn-topbar-search {
    display: none !important;
  }

  .header .ssn-user-namerole {
    display: none !important;
  }

  .header .user-menu.nav > li.ssn-hdr-action > a {
    width: 34px !important;
    height: 34px !important;
    line-height: 34px !important;
  }

  .header.header-navbar {
    padding: 0 8px !important;
  }

  .app-content {
    padding: 66px 8px 16px 8px !important;
  }
}

/* Dashboard Responsive Optimizations */
@media (max-width: 767.98px) {
  .admin-dashboard-container {
    padding: 0 !important;
  }

  .adm-dash-header {
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 10px !important;
    margin-bottom: 12px !important;
    padding-top: 2px !important;
  }

  .adm-dash-header .welcome-text h3 {
    font-size: 18px !important;
  }

  .adm-dash-header .welcome-text p {
    font-size: 12px !important;
  }

  .adm-dash-header .header-actions {
    width: 100% !important;
    display: flex !important;
    gap: 8px !important;
  }

  .adm-dash-header .adm-date-btn,
  .adm-dash-header .adm-export-btn {
    flex: 1 !important;
    justify-content: center !important;
    padding: 7px 10px !important;
    font-size: 11.5px !important;
  }

  /* Metric cards: 2 cards per row on mobile */
  .adm-dash-row > [class*="col-"] {
    margin-bottom: 8px;
  }

  .adm-stat-card {
    padding: 10px 11px !important;
    min-height: 96px !important;
    border-radius: 10px !important;
  }

  .adm-stat-card .card-top {
    gap: 6px !important;
    margin-bottom: 6px !important;
    min-height: 32px !important;
  }

  .adm-icon-box {
    width: 30px !important;
    height: 30px !important;
    border-radius: 8px !important;
  }

  .adm-icon-box svg {
    width: 15px !important;
    height: 15px !important;
  }

  .adm-stat-card .card-meta label {
    font-size: 8.5px !important;
  }

  .adm-stat-card .card-meta .val {
    font-size: 15.5px !important;
  }

  .adm-stat-card .card-bottom {
    font-size: 9.5px !important;
  }

  .adm-card-panel {
    border-radius: 10px !important;
    margin-bottom: 8px !important;
  }

  .adm-card-panel .panel-head {
    padding: 9px 11px !important;
  }

  .adm-card-panel .panel-head h5 {
    font-size: 12px !important;
  }

  .adm-card-panel .panel-body {
    padding: 10px 11px !important;
  }

  .alert-summary-grid {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 8px !important;
  }

  .alert-subcard {
    padding: 10px 8px !important;
    border-radius: 8px !important;
  }

  .alert-subcard .sub-header {
    font-size: 8.5px !important;
  }

  .alert-subcard .sub-val {
    font-size: 17px !important;
  }

  /* Compact KPI cards */
  .adm-kpi-row {
    display: flex !important;
    flex-wrap: wrap !important;
  }

  .adm-kpi-row > [class*="col-"] {
    width: 50% !important;
    margin-bottom: 8px !important;
  }

  .adm-stat-card.compact {
    padding: 9px 10px !important;
    min-height: 78px !important;
  }

  .adm-stat-card.compact .card-meta .val {
    font-size: 15px !important;
  }
}

@media (max-width: 440px) {
  .donut-side-layout {
    flex-direction: column !important;
    align-items: center !important;
    gap: 10px !important;
  }

  .donut-side-layout .donut-chart-box {
    margin-bottom: 6px !important;
  }

  .alert-summary-grid {
    grid-template-columns: 1fr !important;
  }
}

/* List Pages Responsive Styles */
@media (max-width: 767.98px) {
  .list-page-header {
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 8px !important;
    margin-bottom: 12px !important;
  }

  .list-page-header .header-left h2 {
    font-size: 18px !important;
  }

  .list-page-header .header-right {
    width: 100% !important;
    display: flex !important;
    gap: 6px !important;
    flex-wrap: wrap !important;
  }

  .list-page-header .btn-list-add,
  .list-page-header .btn-list-export {
    flex: 1 !important;
    justify-content: center !important;
    padding: 7px 10px !important;
    font-size: 12px !important;
  }

  .list-stat-row {
    display: grid !important;
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 8px !important;
    margin-bottom: 12px !important;
  }

  .list-stat-card {
    min-width: 0 !important;
    padding: 10px 12px !important;
    border-radius: 10px !important;
  }

  .list-stat-card .stat-value {
    font-size: 16px !important;
  }

  .list-stat-card .stat-label {
    font-size: 10.5px !important;
  }

  .list-stat-card .stat-icon {
    width: 32px !important;
    height: 32px !important;
  }

  .list-stat-card .stat-icon svg {
    width: 15px !important;
    height: 15px !important;
  }

  .card:has(.driver_list),
  .card:has(.card-datatable),
  .card:has(table),
  .list-page-container .content-body .card {
    padding: 12px 10px !important;
    border-radius: 10px !important;
    margin-top: 10px !important;
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch !important;
    display: block !important;
  }

  /* Universal Mobile Table Horizontal Scroll */
  table.ssn-list-table,
  table.table,
  table.dataTable,
  .table,
  .driver_list table,
  .card-datatable table,
  .widget-response-data table,
  .top-alert-table {
    width: 100% !important;
    min-width: 720px !important;
    display: table !important;
    border-collapse: collapse !important;
  }

  /* Table cells wrap & readable padding on touch screens */
  table.ssn-list-table th,
  table.ssn-list-table td,
  table.table th,
  table.table td,
  table.dataTable th,
  table.dataTable td,
  .top-alert-table th,
  .top-alert-table td {
    white-space: nowrap !important;
    padding: 10px 12px !important;
    font-size: 12px !important;
  }

  /* Table Action Dropdowns & Buttons */
  table.ssn-list-table .btn,
  table.table .btn,
  table.dataTable .btn {
    white-space: nowrap !important;
    padding: 4px 8px !important;
    font-size: 11px !important;
  }

  /* Status Badges */
  table.ssn-list-table .badge,
  table.table .badge,
  table.dataTable .badge {
    font-size: 10.5px !important;
    padding: 4px 8px !important;
    white-space: nowrap !important;
  }
}

@media (max-width: 575.98px) {
  table.ssn-list-table,
  table.table,
  table.dataTable,
  .table,
  .driver_list table,
  .card-datatable table {
    min-width: 680px !important;
  }

  .card:has(table),
  .card:has(.driver_list),
  .card:has(.card-datatable) {
    margin-left: 0 !important;
    margin-right: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
  }
}

/* ============================================================
   SIDEBAR / HEADER: force square corners everywhere, always.
   Vendor Vuexy CSS (bootstrap-extended.css .header-navbar.floating-nav)
   ships a rounded-corner "floating card" navbar by default
   (border-radius: 0.428rem). That radius was only being zeroed
   inside width-specific @media blocks above; any browser
   zoom/DPI scaling or width this app doesn't explicitly cover
   let the vendor's rounded corner show through right where the
   header meets the sidebar, reading as a curved gap between them.
   This unconditional, non-media-query rule removes it for good. */
.main-menu,
.main-menu.menu-fixed,
.navbar-header,
.navbar-header.ssn-sidebar-brand,
.header,
.header.header-navbar,
.header-navbar,
.header-navbar.floating-nav,
.app-content {
  border-radius: 0 !important;
}

/* ============================================================
   DESKTOP: Hamburger toggles the sidebar (slide out + expand content).
   The header's #toggle_btn previously had no effect at
   widths >= 1200px (JS only handled the mobile drawer). This
   makes it functional on desktop too: body.sidebar-hidden slides
   the fixed sidebar off-screen and lets header/content reclaim
   its 260px of space.
   ============================================================ */
@media (min-width: 1200px) {
  .main-menu,
  .main-menu.menu-fixed {
    transition: transform 0.25s cubic-bezier(0.4, 0, 0.2, 1) !important;
  }

  .header.header-navbar,
  .app-content {
    transition: margin-left 0.25s cubic-bezier(0.4, 0, 0.2, 1),
      left 0.25s cubic-bezier(0.4, 0, 0.2, 1) !important;
  }

  body.sidebar-hidden .main-menu,
  body.sidebar-hidden .main-menu.menu-fixed {
    transform: translate3d(-260px, 0, 0) !important;
  }

  body.sidebar-hidden .header.header-navbar {
    left: 0 !important;
  }

  /* Specificity note: .vertical-layout.vertical-menu-modern .app-content
     (3 classes) elsewhere forces margin-left:260px !important — this
     selector must match or beat that (body + 3 classes) or the content
     area will not reclaim the space the sidebar left behind. */
  body.vertical-layout.vertical-menu-modern.sidebar-hidden .app-content,
  body.sidebar-hidden .app-content {
    margin-left: 0 !important;
  }
}

@media (max-width: 420px) {
  .list-stat-row {
    grid-template-columns: 1fr !important;
  }
}
