@layer components {
  .flash {
    display: flex;
    inset-block-start: var(--block-space);
    inset-inline-start: 50%;
    justify-content: center;
    position: fixed;
    transform: translate(-50%);
    z-index: var(--z-flash);
  }

  .flash--alert {
    --flash-text-color: var(--color-theme-rose-darker);
    --flash-border-color: var(--color-theme-rose-dark);
  }

  .flash--notice {
    --flash-text-color: var(--color-theme-blue-darker);
    --flash-border-color: var(--color-theme-blue-medium);
  }

  .flash--success {
    --flash-text-color: var(--color-theme-moss-dark);
    --flash-border-color: var(--color-theme-moss-medium);
  }

  .flash__inner {
    --flash-shadow: var(--shadow);

    animation: appear-then-fade 4s 300ms both;
    color: var(--flash-text-color, var(--color-ink));
    background-color: var(--flash-background, var(--color-white));
    border: var(--flash-border-color, var(--color-ink)) solid 2px;
    border-radius: 0.5em;
    box-shadow: var(--flash-shadow, none);
    display: inline-flex;
    font-size: var(--font-size-medium, 1rem);
    margin: 0 auto;
    padding: 0.7em 1.4em;
    font-weight: bold;
  }
}
