/* ----------------------------------------------------------------------------
main CSS bundle
---------------------------------------------------------------------------- */
@layer base, components, utilities;

@import '_base/@media.css';
@import '_base/_base.css' layer(base);
@import '_components/_components.css' layer(components);
@import '_utilities/_utilities.css' layer(utilities);

:root {
  /* --color-bg: light-dark(white, oklch(from var(--primary) var(--700) / 50%)); */
  --color-success: green;
  --color-error: lab(24.61% 34.66 27.12);
}

.centred-content {
  display: grid;
  place-content: center;
  flex-grow: 1;
}

.login-form {
  max-width: 30em;
  width: 100%;
}

.invite-grid {
  display: grid;
  grid-template-columns: repeat(3, max-content);
  align-content: center;
  gap: var(--space-md);
  margin: auto;

  button {
    justify-content: center;
  }
}

#main-header {
  width: 12rem;
  height: 100vh;
  /* background-image: linear-gradient(
    oklch(0.6 0.118 184.704) 0%,
    oklch(0.715 0.143 215.221) 50%,
    oklch(0.623 0.214 259.815) 100%
  ); */
  background-color: oklch(60.853% 0.08969 187.382);
  padding: var(--space-sm) 0;
  position: relative;

  > h1 {
    font-size: var(--font-size-xl);
    padding: 0 var(--space-sm);
    color: oklch(47.898% 0.15376 37.745);
  }

  /* background-color: light-dark(
    oklch(from var(--primary) var(--700)),
    oklch(from var(--primary) var(--800) / 50%)
  );
  color: light-dark(
    oklch(from var(--primary) var(--700)),
    oklch(from var(--primary) var(--300) / 50%)
  ); */
}

nav {
  > ul {
    list-style: none;
    margin: var(--space-sm) 0;
    padding: 0;
  }
  li {
    padding: calc(var(--line-height-fluid) / 2) var(--space-sm);
    /* border-top: solid 1px var(--color-accent); */
  }
  a {
    text-decoration: none;
    display: block;
    color: white;
    font-weight: var(--font-weight-md);
  }

  a:hover,
  a.active {
    color: oklch(from var(--neutral) var(--800));
    border-right: solid 4px oklch(from var(--neutral) var(--800));
  }

  li:last-child {
    position: absolute;
    bottom: 0;
    width: 100%;
  }
}

h3 {
  margin-bottom: var(--space-sm);
}

main {
  flex-grow: 1;
  padding: var(--space-sm);
  height: 100vh;
  padding-right: calc(100% - 75rem);
  overflow-y: scroll;
  display: flex;
  flex-direction: column;
}

form label + button {
  align-self: self-end;
}

.filters {
  align-items: flex-end;
  justify-content: center;
  inline-size: auto;

  label {
    gap: var(--space-sm);
    justify-content: center;
    align-items: center;
  }

  select {
    inline-size: auto;
    padding-right: 3rem;
  }
}

.page-header {
  margin-bottom: var(--space-xs);
}

.locker-grid {
  display: grid;
  grid-auto-columns: minmax(35em, 100%);
  grid-auto-rows: 150px;
  gap: var(--space-xs);
  padding: var(--space-xs);
  background-color: oklch(from var(--color-bg-dark) var(--100));
  width: fit-content;
  margin-inline: auto;

  > * {
    border: solid 1px var(--color-border);
    background-color: var(--color-bg);
    padding: var(--space-xs);
  }

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

  .screen {
    display: none;
    grid-column: 2;
    grid-row: 6 / span 2;
    background-image: linear-gradient(
      45deg,
      rgba(0, 0, 0, 0.5) 25%,
      transparent 25%,
      transparent 50%,
      rgba(0, 0, 0, 0.5) 50%,
      rgba(0, 0, 0, 0.5) 75%,
      transparent 75%,
      transparent
    );
    background-size: 5px 5px;

    span {
      background-color: rgba(255, 255, 255, 0.3);
      backdrop-filter: blur;
    }
  }
}

.locker-contents {
  list-style: none;
}

.locker-contents li {
  display: flex;
  align-items: center;
  gap: var(--space-sm);
}

.locker-contents form {
  inline-size: auto;
}

.quantity-form {
  flex-direction: row;
}

.quantity-form > label {
  width: 10rem;
}

.consumable-contents-name {
  align-self: center;
  padding-top: var(--line-height-fluid);
}

.locker {
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
}

.locker header {
  background-color: transparent;
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: auto;
  height: auto;
  padding: 0;
}

.locker_actions {
  display: flex;
  gap: var(--space-sm);
  margin-left: var(--space-sm);
}

.locker ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

section {
  margin-bottom: var(--space-md);
}

section > header {
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  align-items: center;
  margin-bottom: var(--space-sm);
  padding: 0;
  gap: var(--space-sm);
}

section > header *:first-child {
  flex-grow: 1;
}

dl {
  display: grid;
  /* grid-auto-columns: max-content; */
  grid-auto-flow: column;
  gap: var(--space-md);

  > div {
    border-radius: 10px;
    border: 1px solid var(--color-border);
    background-color: light-dark(
      var(--color-bg-dark),
      oklch(from var(--color-bg-dark) var(--800))
    );
    overflow: hidden;
  }

  dt {
    padding: var(--space-xs);
    padding-bottom: var(--space-xxs);

    background-color: light-dark(
      oklch(from var(--color-bg-dark) var(--100)),
      var(--color-bg-dark)
    );
  }

  dd {
    padding: var(--space-xs);
    padding-top: var(--space-xxs);
  }
}

.header-with-actions {
  display: flex;
  gap: var(--space-md);
  align-items: center;
  margin-bottom: var(--space-sm);
  h3 {
    margin-bottom: 0;
  }
}

iframe.locker-configuration {
  height: 100%;
  width: 100%;
}

:is([up-flashes]) {
  position: absolute;
  right: 0;
}

.toast {
  padding: var(--space-xs);
  border: solid 1px var(--color-border);

  &:popover-open {
    inset: unset;
    bottom: var(--space-md);
    right: var(--space-md);
  }

  &.--success {
    background-color: var(--color-success);
  }

  &.--error {
    background-color: var(--color-error);
  }
}
