/* The logged-in account shell: the sidebar layout and its navigation from
   shared/_account_navigation, and the flash and error-summary messages from
   shared/_account_flash and shared/_account_error_summary. Shared by every
   signed-in page. */

.account-layout {
  display: grid;
  grid-template-columns: 10.5rem minmax(0, 1fr);
  align-items: start;
  gap: clamp(var(--space-6), 6vw, var(--space-9));

  .navigation {
    position: sticky;
    top: var(--space-5);
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
    padding-top: var(--space-1);

    > a {
      color: var(--color-black);
      font-size: var(--font-size-3);
      font-weight: 700;
      line-height: var(--line-height-body);
      text-decoration: none;

      &:hover,
      &:focus-visible,
      &.is-current {
        color: var(--color-text-primary-hover);
      }

      &:focus-visible {
        outline: 2px solid var(--color-primary);
        outline-offset: 3px;
      }
    }

    > .logout { margin-top: var(--space-5); }
  }

  @media (max-width: 32rem) {
    grid-template-columns: 1fr;
    gap: var(--space-5);

    .navigation {
      position: static;
      flex-direction: row;
      flex-wrap: wrap;
      align-items: baseline;
      gap: var(--space-2) var(--space-4);

      > .logout { flex-basis: 100%; margin-top: var(--space-1); }
    }
  }
}

.account-message {
  margin-bottom: var(--space-6);
  padding: var(--space-4);
  border-radius: var(--radius-2);
  color: var(--color-black);
  font-size: var(--font-size-3);
  line-height: var(--line-height-body);

  &.notice {
    border: 1px solid var(--color-primary);
    background-color: var(--color-primary-tint);
  }

  &.alert {
    border: 1px solid var(--color-secondary);
    background-color: var(--color-secondary-tint);
    animation: account-error-arrive var(--motion-duration-standard) cubic-bezier(.25, 1, .5, 1);

    a { text-decoration: underline; text-underline-offset: 2px; }
  }

  &.error-summary {
    border: 1px solid var(--color-red);
    background-color: #fdf3f3;
    animation: account-error-arrive var(--motion-duration-standard) cubic-bezier(.25, 1, .5, 1);

    h2 {
      margin-bottom: var(--space-2);
      color: #a30000;
      font-size: var(--font-size-3);
      font-weight: 700;
    }

    ul { margin: 0; padding-left: var(--space-4); list-style: disc; }
    li { margin-block: var(--space-1); }

    a {
      color: #a30000;
      font-weight: 700;
      text-decoration: underline;
      text-underline-offset: 2px;
    }
  }
}
