/* Theme variables */

:root {
  --brand-color-primary: #1e293d;
  --brand-color-accent: #41c4ee;
  --brand-color-muted: #6a8898;
  --brand-color-highlight: #ff5000;

  --brand-color-link: hsl(from var(--brand-color-accent) h s calc(l - 25));
  --brand-color-link-hover: #75a5ff;
}

[data-md-color-scheme="energoatlas"] {
  --md-primary-fg-color: var(--brand-color-primary);

  --md-footer-bg-color: rgb(from var(--brand-color-primary) r g b / 0.03);
  --md-footer-bg-color--dark: #0000;
  --md-footer-fg-color: var(--brand-color-muted);
  --md-footer-fg-color--light: var(--brand-color-muted);
  --md-footer-fg-color--lighter: var(--brand-color-muted);

  --md-typeset-a-color: var(--brand-color-link);
}


/* Element defaults */

a {
  text-decoration: underline;
  text-underline-offset: 0.3ex;
}

a:is(:focus, :hover, :active) {
  --md-accent-fg-color: var(--brand-color-highlight);
}


/* Header */

.md-header {
  background: linear-gradient(90deg, var(--brand-color-primary), hsl(from var(--brand-color-primary) h s calc(l + 3)) 70%);
}

.md-header__inner {
  gap: 20px;
  padding-inline: 20px;
}

.md-header :is(.md-logo, .md-tabs) {
  display: block; /* forced visibility even for mobile screens */
}

.md-header .md-logo {
  img {
    height: 37px;
  }

  @media (width <= 768px) {
    margin-inline-start: 0;

    img {
      display: none;
    }

    &::after {
      background: url(../img/logo_mini_inv.svg) 50% 50% / contain no-repeat;
      content: "";
      display: block;
      height: 37px;
      width: 37px;
    }
  }
}

.md-header .md-tabs {
  background: #0000;
  margin-inline-start: auto;
  width: auto;
  z-index: auto;
}

.md-header .md-tabs__link {
  opacity: unset;
  text-decoration: none;
}

.md-header .md-tabs__link:is(:focus, :hover) {
  color: var(--brand-color-accent);
}

.md-header__button[for='__drawer'] {
  background: var(--brand-color-accent);
  border-radius: 6px;
  order: 1;
}


/* Search */

@media screen and (min-width: 60em) {
  .md-search {
    padding-block: 12px;
  }

  .md-search__inner {
    width: 312px;
  }

  .md-search__form {
    background-color: #ffffff14;
    border: 1px solid #ffffff0f;
    border-radius: 100px;
    height: 48px;
  }
  
  .md-search__input::placeholder {
    color: #fff5;
  }

  .md-search__icon {
    --md-primary-bg-color: #fff5;
  }

  .md-search__output {
    top: 50px;
  }
}

.md-search__icon[for='__search'] {
  top: 50%;
  translate: 0 -50%;
}


/* Main section */

.md-main {
  align-items: center;
  display: flex;
  flex-direction: column;
}

.md-main__inner {
  flex-grow: 1;
  gap: 18px;
  max-width: 1920px;
  width: 100%;

  @media (width >= 60em) {
    margin-block: 25px 8px;
    padding-inline: 24px;
  }

  @media (width < 60em) {
    margin-block: 0;
  }
}


/* Sidebar */

.md-sidebar--primary {
  @media (width >= 1600px) {
    width: 470px;
  }

  @media (76.2344em < width < 1600px) {
    width: 330px;
  }

  @media (width > 76.2344em) {
    padding-block: 8px;

    .md-sidebar__scrollwrap {
      --md-default-bg-color: color-mix(in srgb, var(--brand-color-primary) 3%, #fff);
      background: var(--md-default-bg-color);
      border: 1px solid rgb(from var(--brand-color-primary) r g b / 0.06);
      border-radius: 12px;
    }
  }

  @media (width <= 76.2344em) {
    .md-sidebar__scrollwrap {
      /* Original theme uses `overflow: hidden` which results in quirky issues during keyboard navigation (tabbing) */
      overflow: clip;
    }
  }

  /* Hide the sidebar if there is nothing to display in it (but only for wide screens where the sidebar is static) */
  @media (width >= 76.25em) {
    &:not(:has(.md-nav__item--active .md-nav)) {
      display: none;
    }
  }

  .md-sidebar__inner {
    padding: 0;
  }

  a {
    text-decoration: none;
  }
}

.md-sidebar__scrollwrap:is(*, :hover, :focus-within) {
  scrollbar-color: var(--brand-color-primary) #0000;
}


/* Primary navigation */

.md-nav {
  font-size: var(--nav-font-size, 0.75rem);

  @media (width > 76.2344em) {
    &[data-md-level="3"] {
      --nav-font-size: 0.65rem;
    }

    &[data-md-level="4"] {
      --nav-font-size: 0.6rem;
    }
  }
}

@media (width > 76.2344em) {
  .md-nav__container:where(:not(.md-nav[data-md-level="1"] *)) {
    border-top: 12px solid var(--md-default-bg-color);

    .md-nav__link {
      background: var(--brand-color-primary);
      color: #fff;
      font-size: 1.1rem;
      padding-inline: 10px;
  
      &:is(:focus, :hover, :active) {
        background: var(--brand-color-muted);
        color: #fff;
      }
    }
  }

  .md-nav[data-md-level="1"] .md-nav__list {
    list-style: var(--nav-list-marker-style, square);
    padding-bottom: 0;
    padding-inline-start: 44px;

    .md-nav__item::marker {
      color: var(--nav-list-color, var(--brand-color-highlight));
      font-size: var(--nav-list-marker-size, 1em);
      line-height: 12px;
    }

    .md-nav__link {
      color: var(--nav-list-color, var(--brand-color-primary));

      &.md-nav__link--active,
      &:hover {
        color: var(--brand-color-highlight);
      }
    }
  }
  
  .md-nav.md-nav--secondary .md-nav__list {
    list-style: none;
  }

  .md-nav[data-md-level="2"] .md-nav__list {
    padding-inline-start: 30px;
  }

  :is(.md-nav.md-nav--secondary, .md-nav[data-md-level="3"]) .md-nav__list {
    padding-inline-start: 20px;
  }

  [data-md-level="1"] {
    --nav-list-marker-size: 1.3em;
    --nav-list-marker-style: circle;
  }

  [data-md-level="2"] {
    --nav-list-color: #1d4389;
    --nav-list-marker-style: disc;
  }

  [data-md-level="3"] {
    --nav-list-color: #1e80a7;
    --nav-list-marker-style: square;
  }

  [data-md-level="4"] {
    --nav-list-color: #471402;
    --nav-list-marker-size: 1em;
  }

  [data-md-level="5"] {
    --nav-list-color: #3139a7;
  }

  .md-nav__item {
    margin-block: 14px;
  }

  .md-nav__item--section {
    display: list-item;
  }

  .md-nav__link:where(.md-nav[data-md-level="1"] :not(.md-nav[data-md-level="2"] *, .md-nav--secondary *)) {
    font-weight: 700;
    text-transform: uppercase;
  }
}


/* Breadcrumbs */

.md-path {
  font-size: 0.65rem;
  mask: linear-gradient(-90deg, #0000, #000 15px) 100% 0 no-repeat content-box;
  padding-bottom: 1em;
  scrollbar-width: none;

  @media not print {
    @media (width > 530px) {
      body:has(.page-controls button) & {
        /* Reserving space on the right end for the page control buttons (if any). Using border to not affect existing margins */
        border-inline-end: var(--page-ctrl-btns-width, 40px) solid #0000;
      }

      body:has(.page-controls button:nth-child(2)) & {
        --page-ctrl-btns-width: 75px;
      }
    }
  }
}

.md-path__item:last-child {
  padding-inline-end: 15px;
}

.md-path__link {
  &:any-link {
    color: var(--md-typeset-a-color);
  }

  &:not(:hover) {
    text-decoration: none;
  }
}


/* Page controls */

.page-controls {
  display: flex;
  gap: 0.4ch;
  inset: calc(1.2rem - 0.25lh) 1.2rem auto auto;
  justify-content: end;
  position: absolute;

  @media print, (width <= 530px) {
    display: none;
  }

  button {
    align-items: center;
    color: var(--brand-color-primary);
    display: flex;
    font-size: 22px;
    justify-content: center;
    padding: 5px;

    &:not(:disabled):hover {
      color: var(--brand-color-highlight);
      cursor: pointer;
    }
  }
}


/* Content */

.md-content {
  position: relative;

  @media (width >= 60em) {
    border-radius: 12px;
    box-shadow: 0 6px 18px rgb(16 24 40 / 0.04);
    border: 1px solid rgb(15 23 42 / 0.03);
    margin-top: 8px;
  }

  &:has(.md-path) .md-content__inner {
    border-top: 1px solid #ddd;
  }
}

.md-typeset :is(h1, h2) {
  color: inherit;
  font-weight: 700;
}

.md-typeset h1 {
  margin-bottom: 0.4em;

  + hr {
    display: none;
  }
}


/* Footer */

.md-footer a {
  --md-footer-fg-color: var(--brand-color-link-hover);
  --md-footer-fg-color--light: var(--brand-color-link);
}

.md-footer-meta__inner:has(> :only-child) {
  justify-content: center;
}

.md-copyright {
  font-size: 0.55rem;

  p:first-child {
    margin-top: 0;
  }

  p:last-child {
    margin-bottom: 0;
  }
}
