main > .container, main > .container-fluid
{
  padding: 70px 15px 20px;
}

.footer {
  background-color: #f5f5f5;
  font-size: .9em;
  min-height: 60px;
}

.footer > .container, .footer > .container-fluid {
  padding-right: 15px;
  padding-left: 15px;
}

.footer__inner {
  align-items: center;
  display: grid;
  gap: 1rem;
  grid-template-columns: 1fr auto 1fr;
}

.footer__theme {
  justify-self: center;
}

.footer__links {
  align-items: center;
  display: flex;
  gap: 1rem;
  justify-self: end;
}

.footer__links a {
  text-decoration: none;
}

.footer .frontend-theme-toggle {
  color: inherit;
  font-size: inherit;
  padding: 0;
}

.footer .frontend-theme-toggle:focus,
.footer .frontend-theme-toggle:hover {
  color: var(--bs-body-color);
  text-decoration: none;
}

.not-set {
  color: #c55;
  font-style: italic;
}

/* add sorting icons to gridview sort links */
a.asc:after, a.desc:after {
  content: '';
  left: 3px;
  display: inline-block;
  width: 0;
  height: 0;
  border: solid 5px transparent;
  margin: 4px 4px 2px 4px;
  background: transparent;
}

a.asc:after {
  border-bottom: solid 7px #212529;
  border-top-width: 0;
}

a.desc:after {
  border-top: solid 7px #212529;
  border-bottom-width: 0;
}

.grid-view th,
.grid-view td:last-child {
  white-space: nowrap;
}

.grid-view .filters input,
.grid-view .filters select {
  min-width: 50px;
}

.hint-block {
  display: block;
  margin-top: 5px;
  color: #999;
}

.error-summary {
  color: #a94442;
  background: #fdf7f7;
  border-left: 3px solid #eed3d7;
  padding: 10px 20px;
  margin: 0 0 15px 0;
}

.auth__block {
  max-width: 480px;
}

.auth__form .input__group {
  margin-bottom: 1rem;
}

.auth__form .form-control {
  min-height: 42px;
}

.auth__form .input__checkbox {
  margin-bottom: 1rem;
}

.auth__form .input__checkbox .form-check {
  margin-bottom: 0;
}

.auth__footer {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem 1rem;
}

.auth__footer a {
  text-decoration: none;
}

/* align the logout "link" (button in form) of the navbar */
.navbar .frontend-profile-toggle,
.navbar .login,
.navbar form > button.logout {
  padding-top: 7px;
  color: rgba(255, 255, 255, 0.5);
}

.frontend-server-time {
  align-items: baseline;
  color: rgba(255, 255, 255, 0.62);
  display: inline-flex;
  font-size: .875rem;
  gap: .35rem;
  line-height: 1.4;
  white-space: nowrap;
}

.frontend-server-time-value {
  color: rgba(255, 255, 255, 0.82);
  font-variant-numeric: tabular-nums;
}

.opscenter-goal-history {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  margin: -.35rem 0 1rem;
}

.opscenter-goal-history-label {
  color: #6c757d;
  font-size: .875rem;
}

.opscenter-goal-pill {
  max-width: min(100%, 360px);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.sql-query-breakable,
.sql-query-result-grid .sql-query-result-cell,
.sql-query-result-grid .table td:last-child {
  overflow-wrap: anywhere;
  white-space: normal;
  word-break: break-word;
}

.sql-query-result-grid {
  max-width: 100%;
  overflow-x: auto;
}

.sql-query-result-grid .table {
  width: 100%;
}

.sql-query-result-grid .sql-query-result-cell {
  min-width: 120px;
  vertical-align: top;
}

@media(max-width:767px) {
  .frontend-server-time {
    display: flex;
    justify-content: flex-start;
    padding: 10px 0;
    width: 100%;
  }

  .navbar .frontend-profile-toggle,
  .navbar .login,
  .navbar form > button.logout {
    display:block;
    text-align: left;
    width: 100%;
    padding: 10px 0;
  }

  .footer__inner {
    grid-template-columns: 1fr;
    justify-items: start;
  }

  .footer__theme,
  .footer__links {
    justify-self: start;
  }
}

.navbar .frontend-profile-toggle:focus,
.navbar .frontend-profile-toggle:hover,
.navbar .login:focus,
.navbar .login:hover,
.navbar form > button.logout:focus,
.navbar form > button.logout:hover {
  text-decoration: none;
  color: rgba(255, 255, 255, 0.75);
}

.navbar .frontend-profile-toggle:focus,
.navbar form > button.logout:focus {
  outline: none;
}

/* style breadcrumb widget as in previous bootstrap versions */
.breadcrumb {
  background-color: var(--bs-gray-200);
  border-radius: .25rem;
  padding: .75rem 1rem;
}

.breadcrumb-item > a
{
  text-decoration: none;
}

.opscenter-home code {
  display: inline-block;
  padding: .45rem .65rem;
  color: #213547;
  background: #eef3f8;
  border: 1px solid #d8e2ec;
  border-radius: .35rem;
}

.opscenter-status,
.opscenter-feature {
  border: 1px solid #d8e2ec;
  border-radius: .5rem;
  background: #fff;
  box-shadow: 0 10px 24px rgba(15, 23, 42, .06);
}

.opscenter-status {
  padding: 1.25rem;
}

.opscenter-status > div {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  padding: .75rem 0;
  border-bottom: 1px solid #eef3f8;
}

.opscenter-status > div:last-child {
  border-bottom: 0;
}

.opscenter-status span,
.opscenter-feature p {
  color: #6c757d;
}

.opscenter-feature {
  min-height: 160px;
  padding: 1.25rem;
}

.opscenter-feature h2 {
  font-size: 1.15rem;
}

.server-monitor-card {
  border-radius: .5rem;
}

.server-monitor-kpis {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .75rem;
}

.server-monitor-kpis > div {
  border: 1px solid #d8e2ec;
  border-radius: .45rem;
  padding: .65rem;
}

.server-monitor-kpis span {
  display: block;
  color: #6c757d;
  font-size: .8rem;
}

.server-monitor-kpis strong {
  display: block;
  font-size: 1.05rem;
}

.server-monitor-chart-wrap {
  border: 1px solid #d8e2ec;
  border-radius: .5rem;
  padding: .85rem;
  background: #fff;
}

.server-monitor-chart-heading {
  align-items: flex-start;
  display: flex;
  gap: .75rem;
  justify-content: space-between;
  margin-bottom: .35rem;
}

.server-monitor-chart-intervals {
  min-width: 240px;
}

.server-monitor-chart-wrap-lg {
  border: 0;
  height: 100%;
  padding: 0;
}

.server-monitor-chart-modal .modal-body {
  display: flex;
  min-height: 0;
  padding: 1rem;
}

.server-monitor-chart {
  display: block;
  width: 100%;
  height: auto;
}

.server-monitor-chart-modal .server-monitor-chart-wrap-lg {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  min-height: 0;
  min-width: 0;
  width: 100%;
}

.server-monitor-chart-modal .server-monitor-chart-wrap-lg .server-monitor-chart-heading {
  flex: 0 0 auto;
}

.server-monitor-chart-modal .server-monitor-chart-wrap-lg .server-monitor-chart {
  flex: 1 1 auto;
  height: 100%;
  min-height: 0;
}

.server-monitor-chart-grid {
  stroke: #d8e2ec;
  stroke-width: 1;
}

.server-monitor-chart-grid-muted {
  opacity: .65;
}

.server-monitor-chart-line {
  fill: none;
  stroke: #0d6efd;
  stroke-width: 3;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.server-monitor-chart-point {
  cursor: pointer;
  fill: transparent;
  opacity: .18;
  stroke: #0d6efd;
  stroke-width: 1.5;
}

.server-monitor-chart-point:hover,
.server-monitor-chart-point:focus {
  fill: #0d6efd;
  opacity: 1;
  outline: none;
  stroke: #084298;
}

.server-monitor-chart-label {
  fill: #6c757d;
  font-size: 11px;
}

.server-monitor-chart-tooltip {
  position: fixed;
  z-index: 1080;
  max-width: 240px;
  padding: .55rem .7rem;
  color: #fff;
  background: rgba(17, 19, 21, .94);
  border: 1px solid rgba(255, 255, 255, .14);
  border-radius: .45rem;
  box-shadow: 0 10px 24px rgba(15, 23, 42, .18);
  font-size: .85rem;
  line-height: 1.35;
  opacity: 0;
  pointer-events: none;
  transform: translateY(4px);
  transition: opacity .12s ease, transform .12s ease;
}

.server-monitor-chart-tooltip.is-visible {
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0);
}

.server-monitor-chart-tooltip-title {
  color: #9fd0ff;
  font-weight: 700;
}

.server-monitor-chart-tooltip-time {
  color: #c7ccd2;
  margin-top: .15rem;
}

/* Заголовок длинной таблицы, закреплённый при вертикальной прокрутке страницы.
   top равен высоте .navbar.fixed-top (56px), поэтому заголовок встаёт под меню и не
   перекрывает его. Фон и линия берутся из переменных Bootstrap и потому верны в обеих темах.
   Таблице нужна обёртка без overflow (.table-responsive-lg вместо .table-responsive):
   у контейнера с overflow-x заголовок прилипает к самому контейнеру, а не к окну. */
.table-sticky-head > thead > tr > th {
  position: sticky;
  top: 56px;
  z-index: 2;
  background-color: var(--bs-body-bg);
  box-shadow: inset 0 -1px 0 var(--bs-border-color);
}

[data-bs-theme="dark"] {
  color-scheme: dark;
}

[data-bs-theme="dark"] body {
  background: #111315;
}

[data-bs-theme="dark"] .footer {
  background-color: #16191d;
  border-top: 1px solid #2b3036;
  color: #aeb4bc !important;
}

[data-bs-theme="dark"] .breadcrumb {
  background-color: #1c2025;
  border: 1px solid #30363d;
}

[data-bs-theme="dark"] .breadcrumb-item.active {
  color: #aeb4bc;
}

[data-bs-theme="dark"] .breadcrumb-item + .breadcrumb-item::before {
  color: #7f8790;
}

[data-bs-theme="dark"] .bg-light {
  background-color: #1c2025 !important;
}

[data-bs-theme="dark"] .border {
  border-color: #30363d !important;
}

[data-bs-theme="dark"] .text-muted {
  color: #aeb4bc !important;
}

[data-bs-theme="dark"] code {
  color: #9fd0ff;
}

[data-bs-theme="dark"] pre {
  color: #e6e9ed;
}

[data-bs-theme="dark"] .opscenter-home code {
  color: #d8e8ff;
  background: #182331;
  border-color: #314158;
}

[data-bs-theme="dark"] .opscenter-status,
[data-bs-theme="dark"] .opscenter-feature {
  background: #191d22;
  border-color: #30363d;
  box-shadow: 0 10px 24px rgba(0, 0, 0, .22);
}

[data-bs-theme="dark"] .opscenter-status > div {
  border-bottom-color: #2b3036;
}

[data-bs-theme="dark"] .opscenter-status span,
[data-bs-theme="dark"] .opscenter-feature p {
  color: #aeb4bc;
}

[data-bs-theme="dark"] .server-monitor-kpis > div,
[data-bs-theme="dark"] .server-monitor-chart-wrap {
  background: #191d22;
  border-color: #30363d;
}

[data-bs-theme="dark"] .server-monitor-kpis span {
  color: #aeb4bc;
}

[data-bs-theme="dark"] .server-monitor-chart-grid {
  stroke: #30363d;
}

[data-bs-theme="dark"] .server-monitor-chart-line {
  stroke: #7ab7ff;
}

[data-bs-theme="dark"] .server-monitor-chart-point {
  fill: transparent;
  opacity: .25;
  stroke: #7ab7ff;
}

[data-bs-theme="dark"] .server-monitor-chart-point:hover,
[data-bs-theme="dark"] .server-monitor-chart-point:focus {
  fill: #7ab7ff;
  stroke: #d8e8ff;
}

[data-bs-theme="dark"] .server-monitor-chart-label {
  fill: #aeb4bc;
}

[data-bs-theme="dark"] .server-monitor-chart-tooltip {
  color: #f2f4f6;
  background: rgba(10, 12, 14, .96);
  border-color: #30363d;
  box-shadow: 0 10px 24px rgba(0, 0, 0, .28);
}

[data-bs-theme="dark"] .table {
  --bs-table-color: #e6e9ed;
  --bs-table-bg: transparent;
  --bs-table-border-color: #30363d;
  --bs-table-striped-color: #e6e9ed;
  --bs-table-striped-bg: rgba(255, 255, 255, .035);
  --bs-table-hover-color: #f2f4f6;
  --bs-table-hover-bg: rgba(255, 255, 255, .055);
}

[data-bs-theme="dark"] .grid-view .filters input,
[data-bs-theme="dark"] .grid-view .filters select {
  background-color: #111315;
  border-color: #3a414a;
  color: #e6e9ed;
}

[data-bs-theme="dark"] .grid-view .filters input::placeholder {
  color: #8b949e;
}

[data-bs-theme="dark"] a.asc:after {
  border-bottom-color: #e6e9ed;
}

[data-bs-theme="dark"] a.desc:after {
  border-top-color: #e6e9ed;
}

[data-bs-theme="dark"] .hint-block {
  color: #aeb4bc;
}

[data-bs-theme="dark"] .opscenter-goal-history-label {
  color: #aeb4bc;
}

[data-bs-theme="dark"] .error-summary {
  color: #ffb4b4;
  background: #2a181a;
  border-left-color: #7f343b;
}
