@import url('https://fonts.googleapis.com/css2?family=Fira+Code:wght@400;500&family=Lato:wght@400;700&family=Roboto+Slab:wght@700&display=swap');

:root {
  /* Color Settings */
  --border-light: #DADFE6;
  --border-medium: #abc;

  --code-bg: #F4F5FA;
  --symbol-fg: #333;
  --link-fg: #00607D;
  --link-hover-fg: #00A0D0;
  --inactive-fg: #777;
  --title-fg: #00485E;

  --leftbar-bg: #003048;
  --leftbar-fg: #fff;
  --leftbar-current-bg: #0090BB;
  --leftbar-current-fg: #fff;
  --leftbar-hover-bg: #00485E;
  --leftbar-hover-fg: #fff;
  --logo-fg: var(--leftbar-fg);

  --icon-color: #00485E;
  --active-tab-color: #00A0D0;
  --selected-fg: #00303E;
  --selected-bg: #BFE7F3;

  /* Font Settings */
  --mono-font: "Fira Code", monospace;
  --text-font: "Lato", sans-serif;
  --title-font: "Roboto Slab", serif;
  --leftbar-font-size: 15px;

  /* Layout Settings (changes on small screens) */
  --side-width: 255px;
  --content-padding: 24px 42px;
  --footer-height: 42px;
}

body {
  margin: 0;
  padding: 0;
  font-family: "Lato", sans-serif;
  font-size: 16px;
}

/* Page layout */
#container {
  min-height: 100%;
}
#leftColumn {
  position: fixed;
  width: var(--side-width);
  height: 100%;
  border-right: none;
  background: var(--leftbar-bg);
  display: flex;
  flex-direction: column;
  z-index: 5;
}
main {
  min-height: calc(100vh - var(--footer-height) - 24px);
}
#content {
  margin-left: var(--side-width);
  padding: var(--content-padding);
  padding-bottom: calc(24px + var(--footer-height));
}

/* Text */
h1, h2, h3 {
  font-family: var(--title-font);
  color: var(--title-fg);
}
pre, code, .monospace, .hljs {
  font-family: var(--mono-font);
  background: var(--code-bg);
  font-variant-ligatures: none;
}
code {
  font-size: .8em;
  padding: 0 .3em;
}
pre code, pre code.hljs {
  font-size: 1em;
  padding: 0;
}
pre, .symbol.monospace {
  padding: 10px 8px 10px 12px;
  font-weight: 500;
  font-size: 12px;
}
a, a:visited, span[data-unresolved-link] {
  text-decoration: none;
  color: var(--link-fg);
}
a:hover, a:active {
  color: var(--link-hover-fg);
  text-decoration: underline;
}

/* Tables */
table {
  border-collapse: collapse;
  min-width: 400px;
}
td, th {
  border: 1px solid var(--border-medium);
  padding: .5rem;
}
th {
  border-bottom: 2px solid var(--border-medium);
}

/* Left bar toggler, only on small screens */
#leftToggler {
  display: none;
  color: var(--icon-color);
  cursor: pointer;
}

/* Left bar */
#sideMenu {
  overflow-y: auto;
  scrollbar-width: thin;
  height: 100%;
  font-size: var(--leftbar-font-size);
}
#paneSearch {
  display: none;
}
#logo>span {
  display: inline-block;
  padding: 8px 8px 8px 8px;
  vertical-align: middle;
}

#logo img {
  max-height: 54px;
  max-width: 54px;
  cursor: pointer;
}

#logo .projectName {
  color: var(--leftbar-fg);
  font-size: 28px;
  font-weight: bold;
}

#logo .projectVersion {
  color: var(--leftbar-fg);
  font-size: 12px;
}

.scala3doc_logo {
  width: 116px;
}

.sideMenuPart {
  padding-left: 1em;
}
.sideMenuPart a {
  align-items: center;
  flex: 1;
  overflow-x: hidden;
  overflow-wrap: anywhere;
  color: var(--leftbar-fg);
  margin-right: .5rem;
  padding: 7px 0;
}
.sideMenuPart > .overview {
  display: flex;
  align-items: center;
  position: relative;
  user-select: none;
}
.sideMenuPart > .overview::before {
  width: var(--side-width);
  box-sizing: border-box;
  content: '';
  top: 0;
  right: 0;
  bottom: 0;
  position: absolute;
  z-index: 1;
}
.sideMenuPart > .overview:hover::before {
  background: var(--leftbar-hover-bg);
}
.sideMenuPart > .overview:hover > a {
  color: var(--leftbar-hover-fg);
}
.sideMenuPart[data-active] > .overview::before {
  background: var(--leftbar-current-bg);
}
.sideMenuPart[data-active] > .overview > a  {
  font-weight: bold;
  color: var(--leftbar-current-fg);
}
.sideMenuPart.hidden > .sideMenuPart {
  height: 0;
  visibility: hidden;
}
.overview a, .overview .navButton {
  z-index: 3;
}
.sideMenuPart .navButton {
  height: 100%;
  align-items: center;
  display: flex;
  justify-content: flex-end;
  padding: 7px 10px;
  cursor: pointer;
}
.sideMenuPart .navButtonContent::before {
  content: "\e905"; /* arrow up */
  font-family: "dotty-icons" !important;
  font-size: 20px;
  line-height: var(--leftbar-font-size);
  color: var(--leftbar-fg);
  height: 100%;
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: center;
}
.sideMenuPart.hidden .navButtonContent::before {
  content: "\e903"; /* arrow down */
}
.sideMenuPart .navButton:hover .navButtonContent::before {
  color: var(--leftbar-current-bg);
}

/* Cover */
.cover h1 {
  font-size: 38px;
  margin-top: 1rem;
  margin-bottom: .25rem;
}

/* Tabs */
.section-tab {
  border: none;
  outline: none;
  background: transparent;
  padding: 0 6px 4px 6px;
  margin: 1rem 1rem 0 0;
  border-bottom: 1px solid grey;
  cursor: pointer;
}
.section-tab[data-active=""] {
  color: unset;
  font-weight: bold;
  border-bottom: 2px solid var(--active-tab-color);
}
.tabs-section-body > :not([data-active]) {
  display: none;
}

/* Tabs content */
.table {
  /*! display: flex; */
  flex-direction: column;
}
.table-row {
  border-bottom: 2px solid var(--border-light);
  padding: 8px 24px 8px 0;
}
.main-subrow  {
  margin-bottom: .5em;
}
.main-subrow > span > a, .main-subrow > span > span[data-unresolved-link] {
  text-decoration: none;
  font-style: normal;
  font-weight: bold;
  color: unset;
  font-size: 18px;
}
.main-subrow .anchor-icon { /* Link Anchor */
  margin-left: .25rem;
  opacity: 0;
  transition: 0.2s 0.5s;
  cursor: pointer;
}
.main-subrow .anchor-icon > svg {
  margin-bottom: -5px;
  fill: var(--link-fg);
}
.main-subrow:hover .anchor-icon {
  opacity: 1;
  transition: 0.2s;
}
.brief-with-platform-tags ~ .main-subrow {
  padding-top: 0;
}

.brief {
  white-space: pre-wrap;
  overflow: hidden;
  margin-bottom: .5em;
}
/* Declarations */
.symbol.monospace {
  color: var(--symbol-fg);
  display: block;
  white-space: normal;
  position: relative;
  padding-right: 24px; /* avoid the copy button */
  margin: 1em 0;
}
.symbol .top-right-position {
  position: absolute;
  top: 8px;
  right: 8px;
}
/* "copy to clipboard" button */
.copy-popup-wrapper {
  display: none;
  position: absolute;
  z-index: 1000;
  background: white;
  width: max-content;
  cursor: default;
  border: 1px solid var(--border-light);
  box-sizing: border-box;
  box-shadow: 0px 5px 10px var(--border-light);
  border-radius: 3px;
  font-weight: normal;
}
.copy-popup-wrapper.active-popup {
  display: flex;
  align-items: center;
}
.copy-popup-wrapper.popup-to-left {
  left: -14rem;
}
.copy-popup-wrapper svg {
  padding: 8px;
}
.copy-popup-wrapper:last-child {
  padding-right: 14px;
}

/* Lists of definitions, e.g. doc @tags */
dl {
  background: transparent;
  -webkit-box-shadow: none;
  box-shadow: none;
}
dl > div > ol {
  list-style-type: none;
}

dl.attributes > dt {
  display: block;
  float: left;
  font-style: italic;
  font-weight: bold;
}
dl.attributes > dt.implicit {
  font-weight: bold;
  color: darkgreen;
}
dl.attributes > dd {
  display: block;
  padding-left: 10em;
  margin-bottom: 5px;
  min-height: 15px;
}

/* params list documentation */
dl.paramsdesc {
  display: flex;
  flex-flow: row wrap;
}
dl.paramsdesc dt {
  flex-basis: 20%;
  padding: 2px 0;
  text-align: left;
  font-weight: bold;
}
dl.paramsdesc dd {
  flex-basis: 80%;
  flex-grow: 1;
  margin: 0;
  padding: 2px 0;
}

.platform-dependent-row dl.attributes > dd {
  padding-left: 3em;
}

/* Workaround for dynamically rendered content inside hidden tab.
There's some limitation of css/html that causes wrong width/height property of elements that are rendered dynamically inside element with display:none;
Same solution is already used in Dokka.
*/
.platform-hinted[data-togglable="Type hierarchy"] > .content:not([data-active]),
.tabs-section-body > *[data-togglable="Type hierarchy"]:not([data-active]) {
    display: block !important;
    visibility: hidden;
    height: 0;
    position: fixed;
    top: 0;
}


/* Footer */
footer {
  display: flex;
  align-items: center;
  position: relative;
  margin-top: 1rem;
  margin-left: var(--side-width);
  width: calc(100% - var(--side-width));
  min-height: var(--footer-height);
  border-top: 1px solid var(--border-light);
}
footer span.go-to-top-icon {
  background-color: white;
}
footer > span:first-child {
  margin-left: 24px;
  padding-left: 0;
}
footer > span:last-child {
  margin-right: 24px;
  padding-right: 0;
}
footer > span {
  padding: 0 16px;
}
footer .padded-icon {
  padding-left: 0.5em;
}
footer .pull-right {
  margin-left: auto;
}

.modifiers {
  width: 12em;
  display: table-cell;
  text-align: right;
  padding-right: 0.5em;
}

.documentableElement {
  width: 100%;
  color: var(--symbol-fg);
  white-space: normal;
  position: relative;
  margin: 0;
  padding: 5px 4px 5px 4px;
  font-weight: 500;
  font-size: 12px;
  background: var(--code-bg);
}

.documentableElement>div {
  display: table;
}

.annotations {
  margin-left: 9em;
}
.documentableAnchor {
  position: absolute;
}

.documentableBrief {
  font-size: 14px;
}

.documentableBrief>p{
  margin: .5em 0 0 0;
}

/* Large Screens */
@media(min-width: 1100px) {
  :root {
    --content-padding: 24px 64px;
  }
}
/* Landscape phones, portait tablets */
@media(max-width: 768px) {
  :root {
    --content-padding: 12px 12px;
  }
  .cover h1 {
    font-size: 32px;
  }
  table {
    width: 100%;
  }
  pre, .symbol.monospace {
    overflow-x: auto;
  }
  .symbol .top-right-position {
    /* The "copy content" button doesn't work well with overflow-x */
    display: none;
  }
  footer > span:first-child {
    margin-left: 12px;
  }
  footer > span:last-child {
    margin-right: 12px;
  }
}
/* Portrait phones */
@media(max-width: 576px) {
  :root {
    --side-width: 0;
    --content-padding: 48px 12px;
  }

  /* Togglable left column */
  #leftColumn {
    --side-width: 85vw;
    margin-left: -85vw; /* closed by default */
    transition: margin .25s ease-out;
  }
  #leftColumn.open {
    margin-left: 0;
  }
  #leftColumn.open ~ #main #searchBar {
    display: none;
  }

  #leftToggler {
    display: unset;
    position: absolute;
    top: 5px;
    left: 12px;
    z-index: 5;
    font-size: 30px;
  }
  #leftColumn.open ~ #main #leftToggler {
    left: unset;
    right: 5vw;
  }
  .icon-toggler::before {
    content: "\e90a"; /* menu icon */
  }
  #leftColumn.open ~ #main .icon-toggler::before {
    content: "\e900"; /* clear icon */
  }
  /* --- */
  .cover h1 {
    margin-top: 0;
  }
  .table-row {
    padding-right: 0;
  }
  .main-subrow .anchor-icon {
    display: none;
  }
}

