@font-face {
  font-family: 'Google Sans';
  font-style: normal;
  font-weight: 400;
  src:
    url('../fonts/GoogleSans-Regular.woff2') format('woff2'),
    url('../fonts/GoogleSans-Regular.woff') format('woff');
}
@font-face {
  font-family: 'Google Sans';
  font-style: normal;
  font-weight: 500;
  src:
    url('../fonts/GoogleSans-Medium.woff2') format('woff2'),
    url('../fonts/GoogleSans-Medium.woff') format('woff');
}
@font-face {
  font-family: 'Google Sans';
  font-style: normal;
  font-weight: 600;
  src:
    url('../fonts/GoogleSans-SemiBold.woff2') format('woff2'),
    url('../fonts/GoogleSans-SemiBold.woff') format('woff');
}
@font-face {
  font-family: 'Google Sans';
  font-style: normal;
  font-weight: 700;
  src:
    url('../fonts/GoogleSans-Bold.woff2') format('woff2'),
    url('../fonts/GoogleSans-Bold.woff') format('woff');
}

/* Enforce Google Sans font-family globally */
:root {
  --bs-font-sans-serif: 'Google Sans', sans-serif !important;
  --bs-body-font-family: 'Google Sans', sans-serif !important;
  --kt-body-font-family: 'Google Sans', sans-serif !important;
}

body,
html,
.app-default,
.menu-link,
.menu-title,
.btn,
.form-control,
.form-select,
.card,
table,
.modal-title,
h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: 'Google Sans', sans-serif !important;
}

/* Layout adjustments to bridge old content-wrapper/page-wrapper to Metronic app-content */
.page-wrapper {
  padding: 0 !important;
  margin: 0 !important;
  background: transparent !important;
  min-height: auto !important;
}
.content {
  padding: 0 !important;
}

/* Page Header compatibility */
.page-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 1.5rem;
  flex-wrap: wrap;
  gap: 1rem;
}
.page-title h4 {
  font-size: 1.5rem;
  font-weight: 600;
  color: var(--bs-gray-900);
  margin: 0;
}
.page-title h6 {
  font-size: 0.9rem;
  color: var(--bs-gray-500);
  margin: 0.25rem 0 0 0;
  font-weight: 400;
}

/* Breadcrumb styling */
.breadcrumb {
  margin: 0;
  padding: 0;
  background: transparent;
}
.breadcrumb-item a {
  color: var(--bs-primary);
  text-decoration: none;
}
.breadcrumb-item.active {
  color: var(--bs-gray-500);
}

/* Dash Widget compatibility (Stats Cards) */
.dash-widget {
  background-color: var(--bs-body-bg);
  border: 1px solid var(--bs-border-color);
  border-radius: 0.75rem;
  padding: 1.5rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  transition: all 0.2s ease;
  box-shadow: 0 0 20px 0 rgba(76, 87, 125, 0.02);
}
.dash-widget:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 20px 0 rgba(76, 87, 125, 0.05);
}
.dash-widgetimg {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 3.5rem;
  height: 3.5rem;
  border-radius: 0.5rem;
  background-color: rgba(var(--bs-primary-rgb), 0.1);
  color: var(--bs-primary);
}
.dash-widgetimg i {
  font-size: 1.75rem;
}
.dash-widgetcontent {
  text-align: right;
}
.dash-widgetcontent h5 {
  font-size: 1.75rem;
  font-weight: 700;
  margin: 0;
  color: var(--bs-gray-900);
}
.dash-widgetcontent h6 {
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--bs-gray-500);
  margin: 0.25rem 0 0 0;
}

/* Table Actions compat (.table-top, .search-set, etc) */
.table-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 1.25rem;
  flex-wrap: wrap;
  gap: 1rem;
}
.search-set {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.search-input {
  position: relative;
}
.search-input input[type='search'],
.search-input input[type='text'] {
  padding-left: 2.5rem;
  border-radius: 0.475rem;
  border: 1px solid var(--bs-gray-300);
  background-color: var(--bs-body-bg);
  color: var(--bs-gray-700);
  transition:
    color 0.2s ease,
    border-color 0.2s ease;
  height: 2.5rem;
}
.search-input input[type='search']:focus,
.search-input input[type='text']:focus {
  border-color: var(--bs-primary);
  outline: none;
}
.search-input .btn-searchset {
  position: absolute;
  left: 0.75rem;
  top: 50%;
  transform: translateY(-50%);
  background: none;
  border: none;
  padding: 0;
  color: var(--bs-gray-500);
}

/* Buttons compatibility */
.btn-added {
  background-color: var(--bs-primary);
  color: #fff !important;
  font-weight: 500;
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.6rem 1.25rem;
  border-radius: 0.475rem;
  transition:
    color 0.2s ease,
    background-color 0.2s ease;
  border: none;
}
.btn-added:hover {
  background-color: var(--bs-primary-active);
}

/* Table styling fixes */
.table-responsive {
  border: none !important;
}
.table.custom-table {
  border-collapse: separate;
  border-spacing: 0;
  width: 100%;
}
.table.custom-table thead th {
  background-color: var(--bs-gray-100);
  color: var(--bs-gray-700);
  font-weight: 600;
  text-transform: uppercase;
  font-size: 0.75rem;
  letter-spacing: 0.05em;
  padding: 0.75rem 1rem;
  border-bottom: 1px solid var(--bs-gray-200);
}
.table.custom-table tbody td {
  padding: 1rem;
  vertical-align: middle;
  border-bottom: 1px solid var(--bs-gray-200);
  color: var(--bs-gray-800);
}
.table.custom-table tbody tr:hover {
  background-color: var(--bs-gray-50);
}

/* Card overrides */
.card {
  border: 1px solid var(--bs-border-color);
  box-shadow: 0 0 20px 0 rgba(76, 87, 125, 0.02);
  border-radius: 0.75rem;
}
.card .card-header {
  border-bottom: 1px solid var(--bs-border-color);
  background-color: transparent;
  padding: 1.25rem 1.5rem;
}
.card .card-body {
  padding: 1.5rem;
}

/* Select2 overrides to blend with Metronic */
.select2-container--default .select2-selection--single {
  border: 1px solid var(--bs-gray-300) !important;
  border-radius: 0.475rem !important;
  height: 2.5rem !important;
  display: flex !important;
  align-items: center !important;
  background-color: var(--bs-body-bg) !important;
}
.select2-container--default
  .select2-selection--single
  .select2-selection__rendered {
  color: var(--bs-gray-700) !important;
  padding-left: 0.75rem !important;
}
.select2-container--default
  .select2-selection--single
  .select2-selection__arrow {
  height: 2.4rem !important;
}

/* Badges alignment */
.badge {
  font-weight: 600;
  line-height: 1.6;
  padding: 0.125rem 0.5rem;
}

/* Card flush pattern (Metronic standard) */
.card.card-flush {
  border: 0 !important;
  box-shadow: 0 0 20px 0 rgba(76, 87, 125, 0.02);
}
.card.card-flush > .card-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 0.75rem;
  padding: 1.25rem 1.5rem;
  border-bottom: 1px solid var(--bs-border-color);
  background: transparent;
  min-height: auto;
}
.card.card-flush > .card-header .card-title {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin: 0;
  font-weight: 600;
}
.card.card-flush > .card-header .card-toolbar {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.5rem;
}
.card.card-flush > .card-body {
  padding: 1.25rem 1.5rem;
}

/* Metronic-style solid search input */
.form-control-solid {
  background-color: var(--bs-gray-100) !important;
  border: 0 !important;
  color: var(--bs-gray-700);
  transition: color 0.2s ease;
}
.form-control-solid:focus {
  background-color: var(--bs-gray-200) !important;
  color: var(--bs-gray-700);
}
.form-control-solid::placeholder {
  color: var(--bs-gray-500);
}

/* Metronic-style solid select */
.form-select-solid {
  background-color: var(--bs-gray-100) !important;
  border: 0 !important;
  color: var(--bs-gray-700);
  font-weight: 500;
}
.form-select-solid:focus {
  background-color: var(--bs-gray-200) !important;
}

/* Improved table row dashed */
.table.table-row-dashed tr {
  border-bottom: 1px dashed var(--bs-border-color);
}
.table.table-row-dashed tr:last-child {
  border-bottom: 0;
}
.table.table-row-dashed thead th {
  font-weight: 600;
  text-transform: uppercase;
  font-size: 0.9rem;
  letter-spacing: 0.05em;
  color: var(--bs-gray-500);
  border-bottom: 1px dashed var(--bs-border-color);
  padding: 0.75rem 1rem;
}
.table.table-row-dashed tbody td {
  padding: 1rem;
  vertical-align: middle;
  color: var(--bs-gray-800);
}

/* Stat card color schemes */
.stat-card-primary {
  background: linear-gradient(135deg, #3e97ff 0%, #1b74e4 100%);
}
.stat-card-warning {
  background: linear-gradient(135deg, #f6b100 0%, #e09200 100%);
}
.stat-card-success {
  background: linear-gradient(135deg, #47be7d 0%, #2ba566 100%);
}
.stat-card-danger {
  background: linear-gradient(135deg, #f1416c 0%, #d91448 100%);
}
.stat-card-primary,
.stat-card-warning,
.stat-card-success,
.stat-card-danger {
  border-radius: 0.75rem;
  padding: 1.5rem;
  color: #fff;
  transition: transform 0.2s ease;
}
.stat-card-primary:hover,
.stat-card-warning:hover,
.stat-card-success:hover,
.stat-card-danger:hover {
  transform: translateY(-2px);
}

/* Progress bar subtle styling */
#pgload {
  border-radius: 0.475rem;
  overflow: hidden;
  background-color: var(--bs-gray-100);
}

/* Modal fix — remove old effect class */
.modal.effect-flip-horizontal .modal-dialog {
  transform: none !important;
}

/* Dark mode custom support rules for compatibility classes */
[data-bs-theme='dark'] .dash-widget {
  background-color: var(--bs-body-bg);
}
[data-bs-theme='dark'] .table.custom-table thead th {
  background-color: var(--bs-gray-100);
}
[data-bs-theme='dark'] .table.custom-table tbody tr:hover {
  background-color: var(--bs-gray-100);
}
[data-bs-theme='dark'] .form-control-solid {
  background-color: var(--bs-gray-200) !important;
}
[data-bs-theme='dark'] .form-select-solid {
  background-color: var(--bs-gray-200) !important;
}
[data-bs-theme='dark'] .stat-card-primary,
[data-bs-theme='dark'] .stat-card-warning,
[data-bs-theme='dark'] .stat-card-success,
[data-bs-theme='dark'] .stat-card-danger {
  opacity: 0.9;
}

/* Academicwork custom overrides for dark mode */
[data-bs-theme='dark'] .aw-card {
  background: var(--bs-body-bg);
  border-color: var(--bs-border-color);
}
[data-bs-theme='dark'] .aw-filter-wrap {
  background: var(--bs-body-bg);
  border-color: var(--bs-border-color);
}
[data-bs-theme='dark'] .aw-section-title,
[data-bs-theme='dark'] .aw-card-title {
  color: var(--bs-gray-100);
}
[data-bs-theme='dark'] .around-summary-item {
  background: var(--bs-gray-200);
}

/* Adjust table responsive padding to prevent columns from touching edges too closely */
.table-responsive .table th:first-child,
.table-responsive .table td:first-child {
  padding-left: 14px !important;
}
.table-responsive .table th:last-child,
.table-responsive .table td:last-child {
  padding-right: 14px !important;
}

/* Sidebar z-index & layer fixes for minimized hover state */
.app-sidebar,
.app-sidebar-logo {
  background-color: var(--bs-app-sidebar-base-bg, var(--bs-body-bg, #ffffff));
}

[data-kt-app-sidebar-minimize='on'] .app-sidebar:hover,
body[data-kt-app-sidebar-minimize='on'] .app-sidebar:hover {
  z-index: 1050 !important;
  background-color: var(
    --bs-app-sidebar-base-bg,
    var(--bs-body-bg, #ffffff)
  ) !important;
  box-shadow: 5px 0 25px rgba(0, 0, 0, 0.12) !important;
}

[data-kt-app-sidebar-minimize='on'] .app-sidebar:hover .app-sidebar-logo,
body[data-kt-app-sidebar-minimize='on'] .app-sidebar:hover .app-sidebar-logo {
  background-color: var(
    --bs-app-sidebar-base-bg,
    var(--bs-body-bg, #ffffff)
  ) !important;
  z-index: 1051 !important;
}
