/* Global compact density for data-heavy HRM screens. */
:root {
  --compact-space: 0.75rem;
  --compact-control-height: 34px;
  --compact-sidebar-width: 330px;
  --compact-header-height: 60px;
}

:root {
  --app-sidebar-width: var(--compact-sidebar-width);
  --app-header-height: var(--compact-header-height);
  --bs-body-line-height: 1.45;
  --bs-card-cap-padding-y: 0.65rem;
  --bs-card-cap-padding-x: var(--compact-space);
  --bs-card-spacer-y: var(--compact-space);
  --bs-card-spacer-x: var(--compact-space);
  --bs-gutter-x: 1rem;
  --bs-gutter-y: 1rem;
}

body {
  font-size: 0.8125rem;
}

.app-wrapper {
  padding-top: var(--compact-space);
  padding-bottom: var(--compact-space);
  padding-left: var(--compact-space);
  padding-right: var(--compact-space);
}

.app-navbar-brand,
.app-header-inner,
.app-header-start,
.app-header-end {
  min-height: var(--compact-header-height);
  height: var(--compact-header-height);
}

.app-navbar-brand {
  padding: 10px 16px;
  gap: 10px;
}

.app-navbar-brand .navbar-brand-logo {
  width: 52px;
  height: 34px;
  flex-basis: 52px;
}

.app-navbar,
.app-menubar .app-navbar {
  padding: var(--compact-space);
}

.app-menubar .menu-item .menu-link {
  padding-top: 6px;
  padding-bottom: 6px;
}

.app-menubar .menu-heading {
  padding-top: 9px;
  padding-bottom: 5px;
}

.app-header .btn-app-nav {
  padding: 6px;
}

.card {
  margin-bottom: var(--compact-space);
}

.card-body {
  padding: var(--compact-space);
}

.card-header,
.card-footer {
  padding: 0.65rem var(--compact-space);
}

.card-title {
  margin-bottom: 0.15rem;
  font-size: 0.9375rem;
}

.table > :not(caption) > * > * {
  padding: 0.45rem 0.6rem;
}

.table thead th {
  font-size: 0.75rem;
  white-space: nowrap;
}

.table tbody td {
  font-size: 0.8125rem;
}

.form-control,
.form-select,
.input-group-text {
  min-height: var(--compact-control-height);
  padding: 0.35rem 0.6rem;
  font-size: 0.8125rem;
}

textarea.form-control {
  min-height: 68px;
}

.btn {
  --bs-btn-padding-y: 0.35rem;
  --bs-btn-padding-x: 0.65rem;
  --bs-btn-font-size: 0.8125rem;
  --bs-btn-line-height: 1.45;
}

.btn-lg {
  --bs-btn-padding-y: 0.45rem;
  --bs-btn-padding-x: 0.8rem;
  --bs-btn-font-size: 0.9rem;
}

.btn-sm {
  --bs-btn-padding-y: 0.25rem;
  --bs-btn-padding-x: 0.5rem;
  --bs-btn-font-size: 0.75rem;
}

.modal-header,
.modal-footer {
  padding: 0.65rem var(--compact-space);
}

.modal-body {
  padding: var(--compact-space);
}

.dropdown-menu {
  --bs-dropdown-padding-y: 0.25rem;
}

.dropdown-item {
  padding: 0.35rem 0.7rem;
  font-size: 0.8125rem;
}

.nav-tabs .nav-link,
.nav-pills .nav-link {
  padding: 0.4rem 0.7rem;
}

.breadcrumb {
  margin-bottom: 0.35rem;
}

.footer-wrapper {
  padding: 10px var(--compact-space);
}

@media (max-width: 1199.98px) {
  :root {
    --compact-sidebar-width: 330px;
  }
}

@media (max-width: 767.98px) {
  :root {
    --compact-space: 0.6rem;
  }

  .app-wrapper {
    padding-left: 0;
    padding-right: 0;
  }

  .app-navbar-brand {
    padding-left: 12px;
    padding-right: 12px;
  }

  .card-body {
    padding: var(--compact-space);
  }

  .table > :not(caption) > * > * {
    padding: 0.4rem 0.5rem;
  }

  .form-control,
  .form-select,
  .input-group-text {
    min-height: 36px;
  }

  .footer-wrapper {
    padding: 10px 0.75rem;
  }
}
