/* Layout only: places elements like the mockup, leaves their look to the browser. */
body {
  max-width: none;
  margin: 0;
  padding: 0;
}

.panel {
  box-sizing: border-box;
  height: 100vh;
  padding: 3vh 2vw;
  display: grid;
  /* Columns fit their content; the text column takes the leftover width. */
  grid-template-columns: auto 1fr auto auto auto;
  grid-template-rows: 16vh auto 1fr;
  grid-template-areas:
    "bar   bar   bar   steps slider"
    "light text  add   steps slider"
    "event text  .     steps slider";
  gap: 3vh 2vw;
}

.bar {
  grid-area: bar;
  width: 100%;
  height: 100%;
}

.light {
  grid-area: light;
  justify-self: center;
}

.event {
  grid-area: event;
  justify-self: center;
  align-self: center;
}

.text {
  grid-area: text;
  box-sizing: border-box;
  width: 100%;
  resize: none;
}

.add {
  grid-area: add;
  justify-self: center;
}

/* + buttons at the top, - buttons at the bottom */
.steps {
  grid-area: steps;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1vh;
}
.steps button:nth-child(4) {
  margin-top: auto;
}

/* Vertical slider with 0 at the top, labels on the left */
.slider {
  grid-area: slider;
  display: flex;
  gap: 0.5vw;
}
.ticks {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}
.slider input {
  writing-mode: vertical-lr;
  margin: 0;
}
