/* ============================================
   QuickCheck Custom Theme Overrides
   ============================================ */

/* ============================================
   Logo Overrides
   ============================================ */

.logo-img-ptf {
  background-color: transparent !important;
  transform: scale(1.5) !important;
  border: none !important;
  border-radius: 0 !important;
  max-height: 70px;
  width: auto;
}

/* Notification Styles */
.notification-item-list {
  transition: transform 0.2s ease-in-out;
}

.notification-item-list:hover {
  transform: scale(1.01);
}

/* ============================================
   Button Overrides
   ============================================ */

/* Primary Button */
.btn-primary {
  background-color: var(--qc-primary);
  border-color: var(--qc-primary);
  color: #fff;
  font-family: var(--qc-font-family);
  font-weight: var(--qc-font-weight-medium);
  transition: all var(--qc-transition);
}

.btn-primary:hover,
.btn-primary:focus {
  background-color: var(--qc-primary-dark);
  border-color: var(--qc-primary-dark);
  color: #fff;
  box-shadow: var(--qc-shadow-primary);
}

.btn-primary:active,
.btn-primary.active {
  background-color: var(--qc-primary-dark) !important;
  border-color: var(--qc-primary-dark) !important;
}

.btn-primary:disabled,
.btn-primary.disabled {
  background-color: var(--qc-primary);
  border-color: var(--qc-primary);
  opacity: 0.65;
}

/* Primary Outline Button */
.btn-outline-primary {
  color: var(--qc-primary);
  border-color: var(--qc-primary);
  font-family: var(--qc-font-family);
  font-weight: var(--qc-font-weight-medium);
  transition: all var(--qc-transition);
}

.btn-outline-primary:hover,
.btn-outline-primary:focus {
  background-color: var(--qc-primary);
  border-color: var(--qc-primary);
  color: #fff;
  box-shadow: var(--qc-shadow-primary);
}

.btn-outline-primary:active,
.btn-outline-primary.active {
  background-color: var(--qc-primary-dark) !important;
  border-color: var(--qc-primary-dark) !important;
  color: #fff !important;
}

/* Secondary Button */
.btn-secondary {
  background-color: var(--qc-secondary);
  border-color: var(--qc-secondary);
  font-family: var(--qc-font-family);
  font-weight: var(--qc-font-weight-medium);
}

.btn-secondary:hover,
.btn-secondary:focus {
  background-color: var(--qc-secondary-dark);
  border-color: var(--qc-secondary-dark);
}

/* Secondary Outline Button */
.btn-outline-secondary {
  color: var(--qc-secondary);
  border-color: var(--qc-secondary);
  font-family: var(--qc-font-family);
  font-weight: var(--qc-font-weight-medium);
}

.btn-outline-secondary:hover,
.btn-outline-secondary:focus {
  background-color: var(--qc-secondary);
  border-color: var(--qc-secondary);
  color: #fff;
}

/* All Buttons - Base */
.btn {
  font-family: var(--qc-font-family);
  font-weight: var(--qc-font-weight-medium);
  border-radius: var(--qc-radius);
  transition: all var(--qc-transition);
}

/* Button Check (Toggle Buttons) */
.btn-check:checked + .btn-outline-primary {
  background-color: var(--qc-primary);
  border-color: var(--qc-primary);
  color: #fff;
}

.btn-check:focus + .btn-outline-primary {
  box-shadow: 0 0 0 0.25rem rgba(var(--qc-primary-rgb), 0.25);
}

/* ============================================
   Sidebar Overrides
   ============================================ */

/* Sidebar Base */
.sidebar {
  font-family: var(--qc-font-family);
  width: 260px;
  transition: width 0.3s ease, left 0.3s ease;
  top: 0 !important;
  z-index: 998;
  background: var(--qc-white);
  box-shadow: 2px 0 10px rgba(0, 0, 0, 0.05);
}

/* Sidebar Logo */
.sidebar-logo {
  padding: 15px 20px;
  border-bottom: 1px solid var(--qc-gray-200);
  display: flex;
  align-items: center;
  justify-content: flex-start;
  min-height: 60px;
}

.sidebar-logo .logo-link {
  display: flex;
  align-items: center;
  text-decoration: none;
  gap: 10px;
}

.sidebar-logo .sidebar-logo-img {
  height: 36px;
  width: auto;
  transition: all 0.3s ease;
}

.sidebar-logo .logo-text {
  font-family: var(--qc-font-family);
  font-weight: var(--qc-font-weight-bold);
  font-size: 1.25rem;
  color: var(--qc-secondary);
  white-space: nowrap;
  transition: opacity 0.3s ease, width 0.3s ease;
}

/* Header Adjustments */
.header {
  left: 260px !important;
  width: calc(100% - 260px) !important;
  transition: left 0.3s ease, width 0.3s ease;
}

#main, #footer {
  margin-left: 260px !important;
  transition: margin-left 0.3s ease;
}

/* Toggle Sidebar Button */
.toggle-sidebar-btn {
  font-size: 24px !important;
  cursor: pointer;
  color: var(--qc-secondary);
  padding: 5px 15px;
  transition: color var(--qc-transition);
}

.toggle-sidebar-btn:hover {
  color: var(--qc-primary);
}

/* ============================================
   Collapsed Sidebar State
   ============================================ */

/* When sidebar is collapsed */
.toggle-sidebar .sidebar {
  width: 70px;
}

.toggle-sidebar .header {
  left: 70px !important;
  width: calc(100% - 70px) !important;
}

.toggle-sidebar #main,
.toggle-sidebar #footer {
  margin-left: 70px !important;
}

/* Logo in collapsed state */
.toggle-sidebar .sidebar-logo {
  padding: 15px 12px;
  justify-content: center;
}

.toggle-sidebar .sidebar-logo .logo-text {
  opacity: 0;
  width: 0;
  overflow: hidden;
}

.toggle-sidebar .sidebar-logo .sidebar-logo-img {
  height: 40px;
}

/* Nav links in collapsed state */
.toggle-sidebar .sidebar-nav .nav-link {
  padding: 12px 0;
  justify-content: center;
  border-left: none;
  border-bottom: 3px solid transparent;
}

.toggle-sidebar .sidebar-nav .nav-link:not(.collapsed),
.toggle-sidebar .sidebar-nav .nav-link:hover {
  border-left: none;
  border-bottom-color: transparent;
}

.toggle-sidebar .sidebar-nav .nav-link span {
  display: none;
}

.toggle-sidebar .sidebar-nav .nav-link i {
  margin-right: 0;
  font-size: 20px;
}

/* Hide dividers and headings when collapsed */
.toggle-sidebar .sidebar-nav .nav-heading {
  display: none;
}

/* Hide sub-nav content when collapsed */
.toggle-sidebar .sidebar-nav .nav-content {
  display: none !important;
}

/* Hide chevron icons when collapsed */
.toggle-sidebar .sidebar-nav .nav-link .bi-chevron-down {
  display: none;
}

/* New Scan button special styling */
.nav-link-new-scan {
  background: linear-gradient(135deg, var(--qc-primary-lighter) 0%, var(--qc-white) 100%);
  border: 1px dashed var(--qc-primary) !important;
  margin: 5px 10px;
  border-radius: var(--qc-radius) !important;
}

.nav-link-new-scan i,
.nav-link-new-scan span {
  color: var(--qc-primary) !important;
}

.nav-link-new-scan:hover {
  background: var(--qc-primary) !important;
  border-style: solid !important;
}

.nav-link-new-scan:hover i,
.nav-link-new-scan:hover span {
  color: var(--qc-white) !important;
}

.toggle-sidebar .nav-link-new-scan {
  margin: 5px;
  padding: 10px !important;
}

/* ============================================
   Mobile Responsiveness
   ============================================ */

@media (max-width: 1199px) {
  .sidebar {
    left: -260px;
  }
  
  .header {
    left: 0 !important;
    width: 100% !important;
  }
  
  #main, #footer {
    margin-left: 0 !important;
  }
  
  .toggle-sidebar .sidebar {
    left: 0;
    width: 260px;
  }
  
  .toggle-sidebar .header {
    left: 0 !important;
    width: 100% !important;
  }
  
  .toggle-sidebar #main,
  .toggle-sidebar #footer {
    margin-left: 0 !important;
  }
  
  /* Show full sidebar on mobile when toggled */
  .toggle-sidebar .sidebar-logo .logo-text {
    opacity: 1;
    width: auto;
  }
  
  .toggle-sidebar .sidebar-nav .nav-link {
    justify-content: flex-start;
    padding: 10px 15px;
  }
  
  .toggle-sidebar .sidebar-nav .nav-link span {
    display: inline;
  }
  
  .toggle-sidebar .sidebar-nav .nav-link i {
    margin-right: 10px;
    font-size: 16px;
  }
}

/* Sidebar Nav Link - Active State */
.sidebar-nav .nav-link {
  color: var(--qc-secondary);
  font-family: var(--qc-font-family);
  font-weight: var(--qc-font-weight-medium);
  border-left: 4px solid transparent;
  transition: all var(--qc-transition);
}

.sidebar-nav .nav-link i {
  color: var(--qc-secondary-light);
  transition: color var(--qc-transition);
}

/* Active Nav Link */
.sidebar-nav .nav-link:not(.collapsed) {
  color: var(--qc-primary);
  background: var(--qc-primary-lighter);
  border-left-color: var(--qc-primary);
}

.sidebar-nav .nav-link:not(.collapsed) i {
  color: var(--qc-primary);
}

/* Collapsed Nav Link (inactive) */
.sidebar-nav .nav-link.collapsed {
  color: var(--qc-secondary);
  background: transparent;
  border-left-color: transparent;
}

.sidebar-nav .nav-link.collapsed i {
  color: var(--qc-gray-500);
}

/* Hover State – text and icon color only, no border */
.sidebar-nav .nav-link:hover {
  color: var(--qc-primary);
  border-left-color: transparent;
}

.sidebar-nav .nav-link:hover i {
  color: var(--qc-primary);
}

/* Nav Content (Sub-menu items) */
.sidebar-nav .nav-content a {
  color: var(--qc-secondary);
  font-family: var(--qc-font-family);
  padding-left: 30px;
  border-left: 4px solid transparent;
  transition: all var(--qc-transition);
}

.sidebar-nav .nav-content a:hover,
.sidebar-nav .nav-content a.active {
  color: var(--qc-primary);
  background: var(--qc-primary-lighter);
  border-left-color: var(--qc-primary);
}

.sidebar-nav .nav-content a i {
  color: var(--qc-primary);
}

/* Nav Heading */
.sidebar-nav .nav-heading {
  font-family: var(--qc-font-family);
  font-weight: var(--qc-font-weight-semibold);
  color: var(--qc-gray-500);
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

/* ============================================
   Header Overrides
   ============================================ */

.header {
  font-family: var(--qc-font-family);
}

/* Logo Text */
.header .logo span {
  font-family: var(--qc-font-family);
  font-weight: var(--qc-font-weight-bold);
  color: var(--qc-secondary);
}

/* Toggle Sidebar Button */
.header .toggle-sidebar-btn {
  color: var(--qc-secondary);
  transition: color var(--qc-transition);
}

.header .toggle-sidebar-btn:hover {
  color: var(--qc-primary);
}

/* Search Input */
.header .search-form input {
  font-family: var(--qc-font-family);
  color: var(--qc-secondary);
  border-color: var(--qc-gray-300);
  transition: all var(--qc-transition);
}

.header .search-form input:focus,
.header .search-form input:hover {
  border-color: var(--qc-primary);
  box-shadow: 0 0 0 0.2rem rgba(var(--qc-primary-rgb), 0.15);
}

.header .search-form input::placeholder {
  color: var(--qc-gray-500);
}

/* Header Nav Icons */
.header-nav .nav-icon {
  color: var(--qc-secondary);
  transition: color var(--qc-transition);
}

.header-nav .nav-icon:hover {
  color: var(--qc-primary);
}

/* Token display in top bar – match nav style, subtle pill */
.header-token-display {
  font-family: var(--qc-font-family);
  font-weight: var(--qc-font-weight-semibold);
  color: var(--qc-secondary) !important;
  padding: 0.35rem 0.6rem !important;
  border-radius: var(--qc-radius);
  background-color: var(--qc-gray-100);
  transition: color var(--qc-transition), background-color var(--qc-transition);
}

.header-token-display:hover {
  color: var(--qc-primary) !important;
  background-color: var(--qc-primary-lighter);
}

.header-token-display .header-token-count {
  margin-right: 0.25rem;
}

.header-token-display i {
  font-size: 1.1rem;
  vertical-align: middle;
}

/* Nav Profile */
.header-nav .nav-profile {
  color: var(--qc-secondary);
  font-family: var(--qc-font-family);
}

.header-nav .nav-profile span {
  font-weight: var(--qc-font-weight-semibold);
}

/* Notification Badge */
.header-nav .badge-number {
  background-color: var(--qc-primary);
  font-family: var(--qc-font-family);
}

/* Dropdown Menus */
.header .dropdown-menu {
  font-family: var(--qc-font-family);
  border-radius: var(--qc-radius);
  box-shadow: var(--qc-shadow-lg);
}

.header .dropdown-item {
  font-family: var(--qc-font-family);
  color: var(--qc-secondary);
  transition: all var(--qc-transition);
}

.header .dropdown-item:hover,
.header .dropdown-item:focus {
  background-color: var(--qc-primary-lighter);
  color: var(--qc-primary);
}

.header .dropdown-item i {
  color: var(--qc-gray-500);
  transition: color var(--qc-transition);
}

.header .dropdown-item:hover i {
  color: var(--qc-primary);
}

/* ============================================
   Form & Input Overrides
   ============================================ */

/* Form Control */
.form-control {
  font-family: var(--qc-font-family);
  border-color: var(--qc-gray-300);
  border-radius: var(--qc-radius);
  transition: border-color var(--qc-transition), box-shadow var(--qc-transition);
}

.form-control:focus {
  border-color: var(--qc-primary);
  box-shadow: 0 0 0 0.2rem rgba(var(--qc-primary-rgb), 0.2);
}

.form-control::placeholder {
  color: var(--qc-gray-500);
}

/* Form Select */
.form-select {
  font-family: var(--qc-font-family);
  border-color: var(--qc-gray-300);
  border-radius: var(--qc-radius);
  transition: border-color var(--qc-transition), box-shadow var(--qc-transition);
}

.form-select:focus {
  border-color: var(--qc-primary);
  box-shadow: 0 0 0 0.2rem rgba(var(--qc-primary-rgb), 0.2);
}

/* Form Label */
.form-label {
  font-family: var(--qc-font-family);
  font-weight: var(--qc-font-weight-medium);
  color: var(--qc-secondary);
}

/* Form Check (Checkbox/Radio) */
.form-check-input:checked {
  background-color: var(--qc-primary);
  border-color: var(--qc-primary);
}

.form-check-input:focus {
  border-color: var(--qc-primary);
  box-shadow: 0 0 0 0.2rem rgba(var(--qc-primary-rgb), 0.2);
}

.form-check-label {
  font-family: var(--qc-font-family);
  color: var(--qc-secondary);
}

/* Form Switch */
.form-switch .form-check-input:checked {
  background-color: var(--qc-primary);
  border-color: var(--qc-primary);
}

/* Input Group */
.input-group-text {
  font-family: var(--qc-font-family);
  background-color: var(--qc-gray-100);
  border-color: var(--qc-gray-300);
}

/* Floating Labels */
.form-floating label {
  font-family: var(--qc-font-family);
  color: var(--qc-gray-600);
}

.form-floating > .form-control:focus ~ label,
.form-floating > .form-control:not(:placeholder-shown) ~ label {
  color: var(--qc-primary);
}

/* Invalid State */
.form-control.is-invalid:focus {
  box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.2);
}

/* Valid State */
.form-control.is-valid:focus {
  box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.2);
}

/* ============================================
   Card Overrides
   ============================================ */

.card {
  font-family: var(--qc-font-family);
  border-radius: var(--qc-radius-lg);
  box-shadow: var(--qc-shadow-sm);
  border: 1px solid var(--qc-gray-200);
}

.card-header {
  font-family: var(--qc-font-family);
  font-weight: var(--qc-font-weight-semibold);
  background-color: var(--qc-white);
  border-bottom: 2px solid var(--qc-primary-light);
}

.card-title {
  font-family: var(--qc-font-family);
  font-weight: var(--qc-font-weight-semibold);
  color: var(--qc-secondary);
}

.card-title i {
  color: var(--qc-primary);
}

.card-body {
  font-family: var(--qc-font-family);
}

/* Dashboard Cards */
.dashboard .card {
  transition: transform var(--qc-transition), box-shadow var(--qc-transition);
}

.dashboard .card:hover {

  box-shadow: var(--qc-shadow);
}

/* Info Cards with colored borders */
.card.border-primary {
  border-color: var(--qc-primary) !important;
}

.card .card-icon {
  color: var(--qc-primary);
}

/* ============================================
   Table Overrides
   ============================================ */

/* Responsive tables (ServerSiteDatatable): full width, wrap content */
.table-server-datatable {
  width: 100%;
  max-width: 100%;
  table-layout: auto;
}
/* Headers stay on one line; only body cells wrap long content */
.table-server-datatable thead th {
  white-space: nowrap;
}
.table-server-datatable tbody td {
  overflow-wrap: break-word;
  word-wrap: break-word;
  word-break: break-word;
}

.table {
  font-family: var(--qc-font-family);
}

.table thead th {
  font-family: var(--qc-font-family);
  font-weight: var(--qc-font-weight-semibold);
  color: var(--qc-secondary);
  background-color: var(--qc-gray-100);
  border-bottom: 2px solid var(--qc-gray-300);
  text-transform: uppercase;
  font-size: 0.85rem;
  letter-spacing: 0.03em;
}

.table tbody td {
  color: var(--qc-secondary);
  vertical-align: middle;
}

.table-hover tbody tr:hover {
  background-color: var(--qc-primary-lighter);
}

/* Striped Table */
.table-striped tbody tr:nth-of-type(odd) {
  background-color: var(--qc-gray-100);
}

.table-striped tbody tr:nth-of-type(odd):hover {
  background-color: var(--qc-primary-lighter);
}

/* Table Primary Row */
.table-primary {
  --bs-table-bg: var(--qc-primary-light);
  --bs-table-hover-bg: var(--qc-primary-light);
}

/* DataTable Overrides */
.dataTables_wrapper {
  font-family: var(--qc-font-family);
}

.dataTables_wrapper .dataTables_paginate .paginate_button.current {
  background: var(--qc-primary) !important;
  border-color: var(--qc-primary) !important;
  color: #fff !important;
}

.dataTables_wrapper .dataTables_paginate .paginate_button:hover {
  background: var(--qc-primary-light) !important;
  border-color: var(--qc-primary) !important;
  color: var(--qc-primary) !important;
}

/* Custom Table Actions */
.table .btn-sm {
  font-size: 0.8rem;
  padding: 0.25rem 0.5rem;
}

/* ============================================
   Badge Overrides
   ============================================ */

.badge {
  font-family: var(--qc-font-family);
  font-weight: var(--qc-font-weight-medium);
  border-radius: var(--qc-radius-sm);
}

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

.badge.text-primary,
.text-primary {
  color: var(--qc-primary) !important;
}

/* Badge Variations */
.badge.bg-primary-light {
  background-color: var(--qc-primary-light);
  color: var(--qc-primary-dark);
}

/* ============================================
   Link Overrides
   ============================================ */

a {
  color: var(--qc-primary);
  text-decoration: none;
  transition: color var(--qc-transition);
}

a:hover {
  color: var(--qc-primary-dark);
}

/* Muted Links */
a.text-muted {
  color: var(--qc-gray-600) !important;
}

a.text-muted:hover {
  color: var(--qc-primary) !important;
}

/* ============================================
   Alert Overrides
   ============================================ */

.alert {
  font-family: var(--qc-font-family);
  border-radius: var(--qc-radius);
}

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

/* ============================================
   Pagination Overrides
   ============================================ */

.pagination {
  font-family: var(--qc-font-family);
}

.page-link {
  color: var(--qc-secondary);
  border-color: var(--qc-gray-300);
  transition: all var(--qc-transition);
}

.page-link:hover {
  color: var(--qc-primary);
  background-color: var(--qc-primary-lighter);
  border-color: var(--qc-primary);
}

.page-item.active .page-link {
  background-color: var(--qc-primary);
  border-color: var(--qc-primary);
  color: #fff;
}

.page-item.disabled .page-link {
  color: var(--qc-gray-500);
}

/* ============================================
   Modal Overrides
   ============================================ */

.modal-content {
  font-family: var(--qc-font-family);
  border-radius: var(--qc-radius-lg);
}

.modal-header {
  border-bottom-color: var(--qc-gray-200);
}

.modal-title {
  font-family: var(--qc-font-family);
  font-weight: var(--qc-font-weight-semibold);
  color: var(--qc-secondary);
}

.modal-footer {
  border-top-color: var(--qc-gray-200);
}

/* ============================================
   Progress Bar Overrides
   ============================================ */

.progress-bar {
  background-color: var(--qc-primary);
}

/* ============================================
   Spinner Overrides
   ============================================ */

.spinner-border.text-primary {
  color: var(--qc-primary) !important;
}

/* ============================================
   Breadcrumb Overrides
   ============================================ */

.breadcrumb {
  font-family: var(--qc-font-family);
}

.breadcrumb-item a {
  color: var(--qc-primary);
}

.breadcrumb-item.active {
  color: var(--qc-secondary);
}

/* ============================================
   Nav Tabs/Pills Overrides
   ============================================ */

.nav-tabs .nav-link,
.nav-pills .nav-link {
  font-family: var(--qc-font-family);
  color: var(--qc-secondary);
  transition: all var(--qc-transition);
}

.nav-tabs .nav-link:hover,
.nav-pills .nav-link:hover {
  color: var(--qc-primary);
}

.nav-tabs .nav-link.active {
  color: var(--qc-primary);
  border-color: var(--qc-gray-300) var(--qc-gray-300) #fff;
}

.nav-pills .nav-link.active {
  background-color: var(--qc-primary);
  color: #fff;
}

/* ============================================
   Accordion Overrides
   ============================================ */

.accordion {
  font-family: var(--qc-font-family);
}

.accordion-button {
  font-family: var(--qc-font-family);
  font-weight: var(--qc-font-weight-medium);
  color: var(--qc-secondary);
}

.accordion-button:not(.collapsed) {
  color: var(--qc-primary);
  background-color: var(--qc-primary-lighter);
}

.accordion-button:focus {
  border-color: var(--qc-primary);
  box-shadow: 0 0 0 0.2rem rgba(var(--qc-primary-rgb), 0.15);
}

/* ============================================
   Toast Overrides
   ============================================ */

.toast {
  font-family: var(--qc-font-family);
  border-radius: var(--qc-radius);
}

/* ============================================
   Tooltip/Popover Overrides
   ============================================ */

.tooltip {
  font-family: var(--qc-font-family);
}

.popover {
  font-family: var(--qc-font-family);
  border-radius: var(--qc-radius);
}

/* ============================================
   Utility Classes
   ============================================ */

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

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

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

.text-secondary {
  color: var(--qc-secondary) !important;
}

/* Custom Utility */
.bg-primary-light {
  background-color: var(--qc-primary-light) !important;
}

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