@layer base {
  body {
    display: grid;
    grid-template-rows: auto 1fr auto;
  }

  :where(#header) {
    border-block-end: 1px solid var(--color-ink-lighter);
    position: relative;
    z-index: var(--z-nav);
  }

  .nav {
    align-items: center;
    block-size: var(--header-height);
    display: flex;
    justify-content: space-between;
  }

  .topbar {
    align-items: center;
    display: flex;
    justify-content: space-between;
    margin-block-end: var(--block-space);
  }

  .nav__brand {
    color: var(--color-ink);
    font-weight: 700;
    text-decoration: none;
  }

  .avatar {
    aspect-ratio: 1;
    border-radius: 50%;
    object-fit: cover;
    vertical-align: middle;
  }

  .profile-menu {
    align-items: center;
    display: flex;
    position: relative;
  }

  .profile-menu > summary {
    list-style: none;

    &::-webkit-details-marker {
      display: none;
    }
  }

  .profile-menu__dropdown {
    --panel-padding-block: var(--block-space-half);
    --panel-padding-inline: var(--block-space-half);

    inline-size: max-content;
    min-inline-size: min(14rem, calc(100vw - var(--main-padding) * 2));
    max-inline-size: min(22rem, calc(100vw - var(--main-padding) * 2));
    inset-block-start: calc(100% + 0.5rem);
    inset-inline-end: 0;
    position: absolute;
    z-index: var(--z-popup);

    form {
      display: contents;
    }
  }

  .resource-menu .profile-menu__dropdown {
    inset-inline-end: auto;
    inset-inline-start: 0;
  }

  .resource-menu__trigger {
    align-items: center;
    cursor: pointer;
    display: flex;
    gap: 0.3em;
  }

  .profile-menu__item {
    background: none;
    border: 0;
    border-radius: 0.4em;
    color: var(--color-ink);
    cursor: pointer;
    display: block;
    font-size: var(--text-small);
    font-weight: 500;
    inline-size: 100%;
    padding: 0.4em 0.5em;
    text-align: start;
    text-decoration: none;
    white-space: nowrap;

    @media (any-hover: hover) {
      &:hover {
        background-color: var(--color-ink-lightest);
      }
    }
  }

  .profile-menu__item--active {
    background-color: var(--color-ink-lightest);
    font-weight: 700;
  }

  /* Destructive menu actions (Delete): red text, light red hover. */
  .profile-menu__item--negative {
    color: var(--color-negative);

    @media (any-hover: hover) {
      &:hover {
        background-color: var(--color-negative-subtle);
      }
    }
  }

  :where(#main) {
    inline-size: 100%;
    max-inline-size: var(--main-width);
    margin-inline: auto;
    padding-block: var(--block-space-double);
    padding-inline: var(--main-padding);
  }

  :where(#footer) {
    max-inline-size: 100%;
  }

  :is(#header, #footer) {
    @media print {
      display: none;
    }
  }

  .container {
    max-inline-size: var(--main-width);
    margin-inline: auto;
    padding-inline: var(--main-padding);
  }
}
