@import '~elements-sk/colors.css';

html {
  --dark-gray: rgb(49, 49, 49);
  --gray-text: rgb(204, 204, 204);
  --border: rgb(120, 120, 120);
}

section {
  margin: 1rem;
}

section li {
  line-height: 1.4rem;
  max-width: 30rem;
  overflow-wrap: break-word;
}

section p {
  font-style: italic;
}

section h2 {
  color: var(--dark-white);
}

header,
header a {
  padding: 0.4rem;
  color: var(--light-gray);
  background: var(--gray);
  font-size: 1.2rem;
}

header {
  border-bottom: solid thin var(--border);
}

body {
  background: var(--dark-gray);
  color: var(--gray-text);
  font-family: helvetica, 'helvetica neue', ubuntu, roboto, noto, 'segoe ui', arial, sans-serif;
  margin: 0;
  padding: 0;
}

a {
  color: var(--gray-text);
  text-decoration: underline;
}

form.search {
  display: block;
  margin: 1rem;

  label {
    margin: 0.4rem 0;
  }

  .range label {
    display: block;
  }

  .value {
    display: block;
  }

  h3 {
    font-size: 1.2rem;
  }

  .custom {
    margin-left: 2rem;
  }
}

main {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
}

main details {
  background: var(--gray);
  position: absolute;
  top: 2.8rem;
  left: 1rem;
}

main details h2 {
  margin-left: 1rem;
}

main summary {
  background: var(--dark-gray);
}

main.search {
  justify-content: center;

  > section {
    margin: 0 4rem;
  }
}

li form {
  display: inline-block;
}

li.hidden {
  display: none;
}

li button {
  font-weight: bold;
  font-size: 110%;
  background: var(--dark-gray);
  border-style: ridge;
  margin-bottom: 2px;
}

/* Hide the buttons that toggle the hidden state of an Artifact by default. */
button.hidden,
button.nothidden {
  display: none;
}

button.hidden {
  color: var(--red);
}

button.nothidden {
  color: var(--green);
}

/* When are in edit mode then display the correct buttons for toggling hidden
   state. */
main.edit-mode button.nothidden {
  display: inline-block;
}

main.edit-mode li.hidden button.hidden {
  display: inline-block;
}

main.edit-mode li.hidden button.nothidden {
  display: none;
}

main.edit-mode li.hidden {
  display: list-item;
}

.edit-toggle {
  background: var(--gray);
  position: absolute;
  top: 2.8rem;
  right: 1rem;
  border-style: outset;
  padding: 3px;
  color: var(--white);
}

main.edit-mode .edit-toggle {
  border-style: inset;
}

.edit-toggle input {
  display: none;
}
