@layer components {
  /* ------------------ Botones ------------------------------- */
  .btn {
    font-family: var(--font-heading);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;

    min-height: 42px;
    padding: 10px 18px;

    border: 1px solid transparent;
    border-radius: var(--radius-md);

    background: var(--color-surface);
    color: var(--color-text);

    font-weight: 700;
    font-size: 0.92rem;
    letter-spacing: -0.01em;

    cursor: pointer;
    user-select: none;

    box-shadow: var(--shadow-xs);
    transition:
      transform var(--transition-fast),
      box-shadow var(--transition-fast),
      background var(--transition-fast),
      border-color var(--transition-fast),
      color var(--transition-fast);
  }

  .btn:hover {
    transform: translateY(-1px);
    box-shadow: var(--shadow-sm);
  }

  .btn:active {
    transform: translateY(0);
  }

  .btn:disabled {
    opacity: 0.55;
    cursor: not-allowed;
    transform: none;
    box-shadow: none;
  }

  .btn-primary {
    background: var(--color-primary);
    color: #ffffff;
    border-color: var(--color-primary);
    box-shadow: var(--shadow-primary);
  }

  .btn-primary:hover {
    background: var(--color-primary-hover);
    border-color: var(--color-primary-hover);
  }

  .btn-accent {
    background: linear-gradient(135deg, var(--color-primary), #42d6bd);
    color: #ffffff;
    border-color: transparent;
    box-shadow: var(--shadow-primary);
  }

  .btn-accent:hover {
    filter: brightness(1.02);
  }

  .btn-outline {
    background: var(--color-surface);
    color: var(--color-text);
    border-color: var(--color-border);
    box-shadow: var(--shadow-xs);
  }

  .btn-outline:hover {
    background: var(--color-primary-soft);
    color: var(--color-primary-hover);
    border-color: rgba(34, 199, 169, 0.35);
  }

  .btn-danger {
    background: var(--color-danger);
    color: #ffffff;
    border-color: var(--color-danger);
  }

  .btn-danger-light {
    background: var(--color-danger-soft);
    color: var(--color-danger);
    border-color: #fecdd3;
  }

  /* Comportamiento adaptable de los botones base */
  @media (max-width: 768px) {
    .btn {
      width: 100%;
    }
  }
}
