@layer layout {
  .button {
    display: inline-flex;
    align-items: center;
    gap: 0.5em;
    padding: var(--block-space-half) var(--block-space);
    font-size: var(--text-normal);
    font-weight: normal;
    color: white;
    background: var(--color-secondary);
    border: none;

    cursor: pointer;
    transition: filter 150ms ease;
    
    &:hover {
      filter: brightness(0.90);
    }
    
    svg {
      width: 1.1em;
      height: 1.1em;
      flex-shrink: 0;
    }
  }

  .button--outline {
    border: 0;
    background: transparent;
    color: var(--color-secondary);
  }

  .button--primary {
    font-weight: 600;
    background: var(--color-primary);
    border-radius: 1.25rem;
  }

  .button--secondary {
    background: var(--color-canvas);
    border: 1px solid var(--color-border);
    color: var(--color-ink);
    font-weight: 500;
    border-radius: 6px;

    &:hover {
      filter: none;
      background: var(--color-primary-soft);
      border-color: color-mix(in oklch, var(--color-primary) 30%, var(--color-border));
    }
  }

  .button--delete[disabled] {
    color: var(--color-disabled);
    background-color: var(--color-canvas-light);
  }

  .button--danger {
    background-color: var(--color-negative-soft);
    color: var(--color-negative);
    border: 1px solid var(--color-negative);
  }

  .button--danger:hover {
    background-color: color-mix(in oklch, var(--color-negative) 85%, black);
  }

  .button--small {
    padding: var(--block-space-quarter, 0.25rem) var(--block-space-half);
    font-size: var(--text-x-small);
  }

  .button--ghost {
    background: transparent;
    border: none;
    color: var(--color-ink-muted);
    padding: var(--block-space-quarter, 0.25rem) var(--inline-space-half);
    font-size: var(--text-x-small);

    &:hover {
      filter: none;
      color: var(--color-ink);
      background: var(--color-border-light);
    }
  }

  .button--ghost.button--danger {
    color: var(--color-ink-muted);
    background: transparent;

    &:hover {
      color: var(--color-negative);
      background: var(--color-negative-soft);
    }
  }
}