@import '../themes/themes.scss';

explore-sk {
  display: block;

  h3 {
    margin: 0.5em 0 0 0;
  }

  #selections {
    margin: 0 1em;
  }

  #commits,
  #paramset {
    display: inline-block;
    margin: 0.5em;
    overflow-y: auto;
  }

  #paramset {
    height: 480px;
  }

  .formulas {
    display: flex;
    align-items: center;
  }

  help-icon-sk {
    fill: var(--primary);
  }

  .query-parts {
    display: flex;
  }

  .query-counts {
    height: 2.5em;
  }

  query-values-sk {
    display: flex;
    flex-direction: column;

    #values {
      height: 20em;
    }
  }

  #bottomButtons {
    display: flex;
    flex-direction: row;
    justify-content: space-evenly;
  }

  checkbox-sk,
  domain-picker-sk {
    display: inline-block;
  }

  #commits {
    margin: 1em;
  }

  #simple_paramset {
    margin: 1em 0 1em 1em;
  }

  #percent {
    margin: 0.6em;
    font-family: 'Roboto Mono', monospace;
    font-size: 36px;
    color: var(--on-surface);
  }

  #tabs[hide_if_no_data],
  #calcButtons[hide_if_no_data],
  #shiftButtons[hide_if_no_data],
  #traceButtons[hide_if_no_data],
  #plot[hide_if_no_data] {
    display: none;
  }

  #plot {
    display: block;
    height: 400px;
    width: 100%;
  }

  #spin-overlay {
    position: relative;
    display: block;
  }

  #buttons {
    font-size: 11px;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    padding: 0;
    margin: 0;
  }

  #traceButtons {
    display: flex;
    align-items: center;
  }

  button {
    padding: 0.4em;
    text-transform: none;
  }

  #spinner[aria-hidden='true'] {
    display: none;
  }

  #spin-container spinner-sk {
    width: 128px;
    height: 128px;
    border-width: 4px;
  }

  #spin-container {
    display: none;
  }

  #spin-container[spinning] {
    position: absolute;
    top: 0;
    left: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    background: var(--surface-1dp);
  }

  #trace_id {
    display: inline-block;
  }

  json-source-sk {
    padding: 1em;
  }

  dialog {
    padding: 16px;
    border: solid var(--on-background) 1px;
    color: var(--on-background);
    background: var(--background);
  }

  #help table * {
    border: 0;
  }

  #help table {
    border-spacing: 0.6em;
  }

  #help table td.mono {
    font-family: 'Courier New', Courier, monospace;
  }

  #help h2 {
    margin-top: 0;
  }

  #help sup,
  #help .footnote {
    font-size: 80%;
  }

  #help .footnote {
    padding: 1em;
  }

  tabs-panel-sk {
    border-radius: 0;
  }

  #query-dialog {
    overflow: auto;
    width: 50%;

    paramset-sk {
      display: inline-block;

      div {
        display: block;
      }
    }
  }

  textarea {
    background: var(--surface);
    color: var(--on-surface);
    border: solid 1px var(--on-surface);
  }

  #commitsTab[disabled] {
    display: none;
  }
}
