:root {
  --colorPrimary: #002147;
  --colorLightPrimary: #122f53;

  --colorDarkBlue: #001c3d;
  --colorWashedOutBlue: #193658;
  --colorVeryLightBlue: #f0f5f8;

  --colorLink: #2f72a8;
  --colorLinkHover: #44687d;
  --colorLinkHeader: #70a9d6;

  --colorWarning: #bc9a23;

  --colorOffBlack: #333333;
  --colorLightGrey: #e0ded9;
  --colorVLightGrey: #f9f8f5;
  --colorWhite: #ffffff;
}

[data-md-color-scheme="opensafely"] {
  --md-accent-fg-color: var(--colorWashedOutBlue);
  --md-admonition-bg-color: var(--colorVeryLightBlue);
  --md-code-bg-color: var(--colorVLightGrey);
  --md-default-fg-color--light: #77706b;
  --md-footer-bg-color--dark: var(--colorDarkBlue);
  --md-footer-bg-color: var(--colorPrimary);
  --md-primary-fg-color--dark: var(--md-primary-fg-color);
  --md-primary-fg-color--light: var(--md-primary-fg-color);
  --md-primary-fg-color: var(--colorPrimary);
  --md-code-hl-generic-color: #77706b;
  --md-code-hl-variable-color: #756e69;
  --md-default-bg-color: var(--colorVeryLightBlue);
}

body {
  color: var(--colorOffBlack);
  font-family: "Public Sans", -apple-system, BlinkMacSystemFont, "Segoe UI",
    Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
  letter-spacing: -0.02em;
  -webkit-font-smoothing: unset;
  -moz-osx-font-smoothing: unset;
}

.md-header[data-md-state="shadow"] {
  box-shadow: none;
}

.md-header-nav__topic {
  font-weight: 600;
}

.md-nav__link:focus,
.md-nav__link:hover {
  text-decoration: underline;
}

.md-nav__item .md-nav__link--active {
  text-decoration: underline;
}

.md-typeset h1,
.md-typeset h2,
.md-typeset h3,
.md-typeset h4,
.md-typeset h5,
.md-typeset h6 {
  color: var(--colorBodyCopy);
  font-weight: 700;
}

.md-typeset a {
  color: var(--colorLink);
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 2px;
  text-decoration-color: var(--colorLinkHeader);
}

.md-typeset a:hover,
.md-typeset a:focus {
  color: var(--colorLinkHover);
  text-decoration-color: var(--colorLinkHover);
  outline-offset: 2px;
  outline-color: var(--colorLinkHeader);
}

.md-typeset .headerlink {
  text-decoration: none;
}

.md-content {
  margin-bottom: 2rem;
}

.md-main {
  background-color: var(--colorVeryLightBlue);
}

.md-content {
  box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06);
  background: var(--colorWhite);
  border-radius: 8px;
}

.md-footer-copyright {
  color: var(--colorCopyrightGrey);
}

.md-footer-copyright__highlight {
  color: var(--colorCopyrightGrey);
  margin: 1em 0;
}

.md-header-nav__title {
  padding-left: 0.5rem;
}

.md-header__button.md-logo {
  margin: 0 0.25rem 0 0;
  padding: 0.25rem;
}

.md-header__button.md-logo img,
.md-header__button.md-logo svg {
  height: 1.75rem;
}

[dir=ltr] .md-header__title {
  margin-left: 0;
}

/* Details element */
.md-typeset .admonition {
  background-color: var(--colorVLightGrey);
  box-shadow: none;
  border-color: var(--colorLightGrey) !important;
  font-size: 0.95em;
}

.md-typeset .note .admonition-title {
  background-color: var(--colorLightPrimary);
  color: var(--colorWhite);
}

.md-typeset .note .admonition-title a {
  color: var(--colorWhite);
}

.md-typeset .note > .admonition-title::before {
  background-color: var(--colorWhite);
}

.md-typeset .warning > .admonition-title::before {
  background-color: var(--colorWarning);
}

.md-nav--secondary {
  background-color: transparent;
}

.md-nav--secondary .md-nav {
  background-color: transparent;
}

.md-header-nav__source .md-source__facts {
  display: none;
}

.highlight .gp, .highlight .go { /* Generic.Prompt, Generic.Output */
  user-select: none;
}

.md-sidebar {
  padding: 0;
}

.footer-nav-buttons {
  border-top: 1px solid var(--colorLightGrey);

  .md-footer__link {
    color: var(--colorLink);
    font-weight: 600;
    text-decoration-color: var(--colorLinkHeader);
    text-underline-offset: 2px;

    .md-footer__title {
      font-size: 0.8rem;
    }

    .md-footer__direction {
      opacity: 0.9;
    }

    .md-ellipsis {
      text-decoration: underline;
    }
  }
}

.feedback-form {
  --color-green-50: oklch(98.2% 0.018 155.826);
  --color-green-600: oklch(62.7% 0.194 149.214);
  --color-green-700: oklch(52.7% 0.154 150.069);

  --color-blue-50: oklch(97% 0.014 254.604);
  --color-blue-700: oklch(48.8% 0.243 264.376);
  --color-blue-900: oklch(37.9% 0.146 265.522);

  --color-neutral-50: oklch(98.5% 0 0);
  --color-neutral-200: oklch(92.2% 0 0);

  --shadow-sm: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);
  --shadow-xl: 0 20px 25px -5px rgb(0 0 0 / 0.1),
    0 8px 10px -6px rgb(0 0 0 / 0.1);

  align-items: center;
  border: 1px solid transparent;
  bottom: 2rem;
  display: flex;
  flex-direction: column;
  position: fixed;
  right: 2vw;
  z-index: 1;

  box-sizing: border-box;

  > * {
    box-sizing: border-box;
  }
}

.feedback-form__summary {
  align-items: center;
  background-color: var(--color-green-600);
  border-radius: 0.5rem;
  box-shadow: var(--shadow-sm);
  color: var(--color-green-50);
  cursor: pointer;
  display: flex;
  flex-direction: row;
  font-size: 0.9rem;
  font-weight: 700;
  gap: 0.5rem;
  line-height: 1;
  outline-offset: 2px;
  padding: 0.75rem;
  transition-duration: 0.15s;
  transition-property: background-color, color, transform;
  transition-timing-function: ease-out;
  white-space: nowrap;
  width: fit-content;
  will-change: transform;

  &::marker {
    content: "";
  }

  &:hover {
    background-color: var(--color-green-700);
    color: white;
    transform: scale(1.05);
  }
}

.feedback-form__content {
  background-color: var(--color-neutral-50);
  font-size: 0.8rem;
  line-height: 1.4;
  padding: 0.5rem 1rem;
  text-wrap-style: pretty;
  width: 35ch;

  a:not([class]) {
    color: var(--color-blue-700);
    font-weight: 600;
    text-decoration: underline 2px
      color-mix(in srgb, currentColor, transparent 75%);
    text-underline-offset: 2px;
    transition: color 0.2s ease-in-out, text-decoration 0.2s ease-in-out;

    &:hover {
      text-decoration-color: currentColor;
    }
  }
}

.feedback-form__button {
  background-color: var(--color-blue-700);
  border-radius: 0.5rem;
  color: var(--color-blue-50);
  display: flex;
  font-size: 0.8rem;
  font-weight: 700;
  line-height: 1;
  margin: 1rem 0;
  outline-offset: 2px;
  padding: 0.5rem 0.65rem;
  transition-duration: 0.15s;
  transition-property: background-color, color, transform;
  transition-timing-function: ease-out;
  width: fit-content;

  &:hover,
  &:focus {
    background-color: var(--color-blue-900);
    color: white;
    text-decoration: none;
    transform: scale(1.05);
  }
}

.feedback-form[open] {
  border-color: var(--color-neutral-200);
  border-radius: 0.5rem;
  box-shadow: var(--shadow-xl);
  overflow: hidden;

  .feedback-form__summary {
    border-radius: 9px 9px 0 0;
    box-shadow: none;
    outline-offset: -1px;
    width: 100%;

    &:hover {
      transform: none;
    }

    &:focus {
      transition: none;
    }
  }
}
